From cdf1a15762f653e3d7040444ea5ca14a17237034 Mon Sep 17 00:00:00 2001 From: pvvx Date: Mon, 19 Feb 2024 17:34:16 +0300 Subject: [PATCH] add test TH05_V1.3 --- bthome_phy6222/.gitignore | 1 - bthome_phy6222/Makefile | 3 +- .../SDK/components/ble/include/att.h | 2 +- .../SDK/components/driver/flash/flash.c | 41 +- .../SDK/components/driver/flash/flash.h | 9 +- bthome_phy6222/SDK/lib/rf/patch.c | 54 +- bthome_phy6222/bin/BOOT_TH05V13_v13.hex | 3161 +++++++++++++++++ bthome_phy6222/bin/TH05V13_v13.bin | Bin 0 -> 50932 bytes bthome_phy6222/mk_windows.cmd | 20 + bthome_phy6222/source/cmd_parser.c | 59 +- bthome_phy6222/source/cmd_parser.h | 3 +- bthome_phy6222/source/config.h | 50 +- bthome_phy6222/source/lcd.h | 30 +- bthome_phy6222/source/lcd_th05.c | 2 +- bthome_phy6222/source/lcd_th05.h | 92 - bthome_phy6222/source/lcd_th05v13.c | 406 +++ bthome_phy6222/source/main.c | 28 + 17 files changed, 3800 insertions(+), 161 deletions(-) create mode 100644 bthome_phy6222/bin/BOOT_TH05V13_v13.hex create mode 100644 bthome_phy6222/bin/TH05V13_v13.bin delete mode 100644 bthome_phy6222/source/lcd_th05.h create mode 100644 bthome_phy6222/source/lcd_th05v13.c diff --git a/bthome_phy6222/.gitignore b/bthome_phy6222/.gitignore index a3bb0a0..2ad3804 100644 --- a/bthome_phy6222/.gitignore +++ b/bthome_phy6222/.gitignore @@ -1,4 +1,3 @@ -bin Listings Objects TestTHB2.asm diff --git a/bthome_phy6222/Makefile b/bthome_phy6222/Makefile index 5d45856..970e064 100644 --- a/bthome_phy6222/Makefile +++ b/bthome_phy6222/Makefile @@ -24,6 +24,7 @@ SRC_PRJ += thb2_peripheral.c SRC_PRJ += thservice.c SRC_PRJ += flash_eep.c SRC_PRJ += lcd_th05.c +SRC_PRJ += lcd_th05v13.c SRC_PRJ += lcd_thb1.c SRC_PRJ += ble_ota.c SRC_PRJ += logger.c @@ -36,7 +37,7 @@ DEFINES = -D__GCC DEFINES += $(POJECT_DEF) DEFINES += -DDEBUG_INFO=0 DEFINES += -DMTU_SIZE=247 -DEFINES += -DTEST_RTC_DELTA=1 +#DEFINES += -DTEST_RTC_DELTA=1 DEFINES += -DCFG_SLEEP_MODE=PWR_MODE_SLEEP DEFINES += -DADV_NCONN_CFG=0x01 DEFINES += -DADV_CONN_CFG=0x02 diff --git a/bthome_phy6222/SDK/components/ble/include/att.h b/bthome_phy6222/SDK/components/ble/include/att.h index 25efe1f..c833655 100644 --- a/bthome_phy6222/SDK/components/ble/include/att.h +++ b/bthome_phy6222/SDK/components/ble/include/att.h @@ -1223,7 +1223,7 @@ extern uint16 ATT_GetParamValue( void ); extern uint16 ATT_GetCurrentMTUSize( uint16 connHandle ); extern void ATT_UpdateMtuSize(uint16 connHandle, uint16 mtuSize); extern void ATT_SetMTUSizeMax(uint16 mtuSize); -extern void ATT_MTU_SIZE_UPDATE(uint8 mtuSize); +//extern void ATT_MTU_SIZE_UPDATE(uint8 mtuSize); extern void ATT_InitMtuSize(void); diff --git a/bthome_phy6222/SDK/components/driver/flash/flash.c b/bthome_phy6222/SDK/components/driver/flash/flash.c index 929ad68..b3564cb 100644 --- a/bthome_phy6222/SDK/components/driver/flash/flash.c +++ b/bthome_phy6222/SDK/components/driver/flash/flash.c @@ -179,16 +179,14 @@ int hal_get_flash_info(void) { return PPlus_SUCCESS; } -#if(FLASH_PROTECT_FEATURE == 1) -int hal_flash_lock(void) -{ +int hal_flash_wr_status(uint8_t status) { uint32_t cs = spif_lock(); SPIF_STATUS_WAIT_IDLE(SPIF_WAIT_IDLE_CYC); spif_wait_nobusy(SFLG_WIP, SPIF_TIMEOUT, PPlus_ERR_BUSY); AP_SPIF->fcmd = 0x6000001; SPIF_STATUS_WAIT_IDLE(SPIF_WAIT_IDLE_CYC); spif_wait_nobusy(SFLG_WIP, SPIF_TIMEOUT, PPlus_ERR_BUSY); - AP_SPIF->fcmd_wrdata[0] = 0x7c; + AP_SPIF->fcmd_wrdata[0] = status; SPIF_STATUS_WAIT_IDLE(SPIF_WAIT_IDLE_CYC); spif_wait_nobusy(SFLG_WIP, SPIF_TIMEOUT, PPlus_ERR_BUSY); AP_SPIF->fcmd = 0x1008001; @@ -198,22 +196,15 @@ int hal_flash_lock(void) return PPlus_SUCCESS; } +// #if(FLASH_PROTECT_FEATURE == 1) +int hal_flash_lock(void) +{ + return hal_flash_wr_status(0x7c); +} + int hal_flash_unlock(void) { - uint32_t cs = spif_lock(); - SPIF_STATUS_WAIT_IDLE(SPIF_WAIT_IDLE_CYC); - spif_wait_nobusy(SFLG_WIP, SPIF_TIMEOUT, PPlus_ERR_BUSY); - AP_SPIF->fcmd = 0x6000001; - SPIF_STATUS_WAIT_IDLE(SPIF_WAIT_IDLE_CYC); - spif_wait_nobusy(SFLG_WIP, SPIF_TIMEOUT, PPlus_ERR_BUSY); - AP_SPIF->fcmd_wrdata[0] = 0x00; - SPIF_STATUS_WAIT_IDLE(SPIF_WAIT_IDLE_CYC); - spif_wait_nobusy(SFLG_WIP, SPIF_TIMEOUT, PPlus_ERR_BUSY); - AP_SPIF->fcmd = 0x1008001; - SPIF_STATUS_WAIT_IDLE(SPIF_WAIT_IDLE_CYC); - spif_wait_nobusy(SFLG_WIP, SPIF_TIMEOUT, PPlus_ERR_BUSY); - spif_unlock(cs); - return PPlus_SUCCESS; + return hal_flash_wr_status(0); } uint8_t hal_flash_get_lock_state(void) @@ -226,7 +217,7 @@ uint8_t hal_flash_get_lock_state(void) spif_unlock(cs); return status; } -#endif +// #endif static void hw_spif_cache_config(void) @@ -343,7 +334,7 @@ int hal_flash_write_by_dma(uint32_t addr, uint8_t *data, uint32_t size) { } int hal_flash_erase_sector(unsigned int addr) { - uint8_t retval; + uint8_t retval = PPlus_SUCCESS; #if(FLASH_PROTECT_FEATURE == 1) hal_flash_unlock(); #endif @@ -352,7 +343,15 @@ int hal_flash_erase_sector(unsigned int addr) { HAL_CACHE_ENTER_BYPASS_SECTION(); SPIF_STATUS_WAIT_IDLE(SPIF_WAIT_IDLE_CYC); spif_wait_nobusy(SFLG_WIP, SPIF_TIMEOUT, PPlus_ERR_BUSY); +#if 0 retval = spif_erase_sector(addr); +#else + AP_SPIF->fcmd = 0x6000001; + SPIF_STATUS_WAIT_IDLE(SPIF_WAIT_IDLE_CYC); + spif_wait_nobusy(SFLG_WIP, SPIF_TIMEOUT, PPlus_ERR_BUSY); + AP_SPIF->fcmd_addr = addr; + spif_cmd(0x20,3,0,0,0,0); +#endif SPIF_STATUS_WAIT_IDLE(SPIF_WAIT_IDLE_CYC); spif_wait_nobusy(SFLG_WELWIP, SPIF_TIMEOUT, PPlus_ERR_BUSY); HAL_CACHE_EXIT_BYPASS_SECTION(); @@ -431,7 +430,7 @@ CHIP_ID_STATUS_e read_chip_mAddr(uint8_t * mAddr) { uint8_t b; for (int i = 0; i < CHIP_MADDR_LEN; i++) { ret = chip_id_one_bit_hot_convter(&b, - read_reg(CHIP_MADDR_FLASH_ADDRESS+(i<<2))); + read_reg(CHIP_MADDR_FLASH_ADDRESS + (i << 2))); if (ret == CHIP_ID_VALID) { mAddr[CHIP_MADDR_LEN - 1 - i] = b; diff --git a/bthome_phy6222/SDK/components/driver/flash/flash.h b/bthome_phy6222/SDK/components/driver/flash/flash.h index f188937..c201006 100644 --- a/bthome_phy6222/SDK/components/driver/flash/flash.h +++ b/bthome_phy6222/SDK/components/driver/flash/flash.h @@ -124,11 +124,12 @@ extern void spif_rddata(uint8_t* data, uint8_t len); extern int spif_config(sysclk_t ref_clk, uint8_t div, uint32_t rd_instr, uint8_t mode_bit, uint8_t QE); int hal_spif_cache_init(sysclk_t spif_ref_clk, uint32_t rd_instr); //static void hal_cache_tag_flush(void); -#if(FLASH_PROTECT_FEATURE == 1) +//#if(FLASH_PROTECT_FEATURE == 1) + int hal_flash_wr_status(uint8_t status); int hal_flash_lock(void); int hal_flash_unlock(void); uint8_t hal_flash_get_lock_state(void); -#endif +//#endif int hal_flash_write(uint32_t addr, uint8_t* data, uint32_t size); int hal_flash_write_by_dma(uint32_t addr, uint8_t* data, uint32_t size); int hal_flash_read(uint32_t addr, uint8_t* data, uint32_t size); @@ -138,9 +139,9 @@ int flash_write_word(unsigned int offset, uint32_t value); CHIP_ID_STATUS_e chip_id_one_bit_hot_convter(uint8_t* b,uint32_t w); -void LL_PLUS_LoadMACFromFlash(uint32_t addr); +//void LL_PLUS_LoadMACFromFlash(uint32_t addr); -CHIP_ID_STATUS_e LL_PLUS_LoadMACFromChipMAddr(void); +//CHIP_ID_STATUS_e LL_PLUS_LoadMACFromChipMAddr(void); CHIP_ID_STATUS_e read_chip_mAddr(uint8_t * mAddr); int hal_get_flash_info(void); diff --git a/bthome_phy6222/SDK/lib/rf/patch.c b/bthome_phy6222/SDK/lib/rf/patch.c index 2e8d46e..ad0d4d1 100644 --- a/bthome_phy6222/SDK/lib/rf/patch.c +++ b/bthome_phy6222/SDK/lib/rf/patch.c @@ -5602,8 +5602,8 @@ void config_RTC1(uint32 time) sleep_tick = AP_AON->RTCCNT; // *(volatile uint32_t*) 0x4000f028; read current RTC counter #endif - g_TIM2_IRQ_to_Sleep_DeltTick = (g_TIM2_IRQ_TIM3_CurrCount>(AP_TIM3->CurrentCount)) - ? (g_TIM2_IRQ_TIM3_CurrCount-(AP_TIM3->CurrentCount)): 0; + g_TIM2_IRQ_to_Sleep_DeltTick = (g_TIM2_IRQ_TIM3_CurrCount > (AP_TIM3->CurrentCount)) + ? (g_TIM2_IRQ_TIM3_CurrCount - (AP_TIM3->CurrentCount)) : 0; AP_AON->RTCCC0 = sleep_tick + time; //set RTC comparatr0 value // *(volatile uint32_t *) 0x4000f024 |= 1 << 20; //enable comparator0 envent // *(volatile uint32_t *) 0x4000f024 |= 1 << 18; //counter overflow interrupt @@ -5751,18 +5751,9 @@ void wakeupProcess1(void) // sleep_total = ((((dlt_tick &0xffff0000)>>16)*counter_tracking)<<9) // + (((dlt_tick &0xffff)*counter_tracking)>>7); //counter_tracking default 16 cycle -#if TEST_RTC_DELTA - // надо перевести в systick 625us - // dlt_tick - в 1/32768 - // counter_tracking - в 16/32768 - // sleep_total = ; - //counter_tracking = STD_RC32_8_CYCLE_16MHZ_CYCLE; +// TEST_RTC_DELTA sleep_total = ((((dlt_tick &0xffff0000)>>16)*counter_tracking)<<8) + (((dlt_tick &0xffff)*counter_tracking)>>8); -#else - sleep_total = ((((dlt_tick &0xffff0000)>>16)*counter_tracking)<<8) - + (((dlt_tick &0xffff)*counter_tracking)>>8); -#endif } else { @@ -8301,37 +8292,33 @@ hciStatus_t HCI_LE_ConnUpdateCmd( uint16 connHandle, } __ATTR_SECTION_XIP__ -CHIP_ID_STATUS_e chip_id_one_bit_hot_convter(uint8_t* b,uint32_t w) +CHIP_ID_STATUS_e chip_id_one_bit_hot_convter(uint8_t* b, uint32_t w) { - uint16 dh = w>>16; - uint16 dl = w&0xffff; - uint16 h1,h0,l1,l0; - h0=l0=0xff; - h1=l1=0; + uint16 dh = w >> 16; + uint16 dl = w & 0xffff; + uint16 h1, h0, l1, l0; + h0 = l0 = 0xff; + h1 = l1 = 0; - for(int i=0; i<16; i++) + for(int i = 0; i < 16; i++) { - l1+=((dl&(1<>i); + l1 += ((dl & (1 << i)) >> i); - if(l0==0xff && l1==1) - { - l0=i; - } + if(l0 == 0xff && l1 == 1) + l0 = i; - h1+=((dh&(1<>i); + h1 += ((dh & (1 << i)) >> i); - if(h0==0xff && h1==1) - { - h0=i; - } + if(h0 == 0xff && h1 == 1) + h0 = i; } - if(l1==1 && h1==1) + if(l1 == 1 && h1 == 1) { - *b=((h0<<4)+l0); + *b = ((h0 << 4) + l0); return CHIP_ID_VALID; } - else if(l1==16 && h1==16) + else if(l1 == 16 && h1 == 16) { return CHIP_ID_EMPTY; } @@ -8356,6 +8343,7 @@ CHIP_ID_STATUS_e chip_id_one_bit_hot_convter(uint8_t* b,uint32_t w) @return None. */ +/* void LL_PLUS_LoadMACFromFlash(uint32_t addr) { volatile uint8_t* p_ownPublicAddr = (volatile uint8_t*)0x1fff0965; @@ -8369,7 +8357,7 @@ void LL_PLUS_LoadMACFromFlash(uint32_t addr) *(p_ownPublicAddr++) = BREAK_UINT32(macAddr[1],1); *(p_ownPublicAddr++) = BREAK_UINT32(macAddr[1],0); } - +*/ /******************************************************************************* @fn pplus_LoadMACFromChipMAddr diff --git a/bthome_phy6222/bin/BOOT_TH05V13_v13.hex b/bthome_phy6222/bin/BOOT_TH05V13_v13.hex new file mode 100644 index 0000000..7ab70e1 --- /dev/null +++ b/bthome_phy6222/bin/BOOT_TH05V13_v13.hex @@ -0,0 +1,3161 @@ +:020000041100E9 +:10300000002373B52B4D2C4C28006361022601F080 +:103010005FFA4021FE2221742800284B009601F01F +:10302000A9FA002836D1217CFF222800244B0096E3 +:1030300001F0A0FA00282DD1224BA2899A4226D174 +:10304000E389214A93420DD1204B6361204B2268D2 +:10305000002A03D1002B01D043CB43C4280001F048 +:1030600075FA73BD1B4A934201D00023EFE71A4B58 +:103070001A4A1B68934206D9C02304222800217CE7 +:103080009B0001F0EDFA114B6361154BDFE7002364 +:103090002374EAE7CC233821AC2228009B01217459 +:1030A00001F0DEFA0028F2D10E4B63610E4BE38192 +:1030B0000E4BCCE7E444FF1F9464FF1FA064FF1F86 +:1030C000A264FF1F5959000083050000FD42001152 +:1030D000A0BF001182150000B864FF1F8713000015 +:1030E000ACBF0011B5430011AAAAFFFF94BF0011A5 +:1030F000F7B5164B0192C318021D002000938823D8 +:103100005B05D3181B685C1C1AD09CB2402C18D8E5 +:103110008D781E0CAC466746CD782D023D43AE42FD +:1031200006D1019800280ED110000C70240A4C70B2 +:1031300003249BB20733A343D218009B9A42DED3E9 +:10314000FEBD4432F9E71000FAE7C046FC0F00006C +:10315000802213B503000324019189B25201073183 +:103160009B18A14304305A1A88235B05C3181B68B7 +:10317000591C03D190429241104016BD99B240298A +:1031800007D80B000733A343C0189042ECD30020AC +:10319000F3E74430F9E7134B134A1B68126810B584 +:1031A000FA24934201D81A00F824104BE4021B6859 +:1031B0009A4210D813000E4A12689A420ED3013375 +:1031C00007D1F823DB029C4203D10A49054808F0E5 +:1031D0002BFB200010BDFC24E402ECE7FE24E402FB +:1031E000F7E7C04600C0071100D0071100E0071143 +:1031F00000F00711FFFFFF7FF0B59BB015000490B2 +:103200000391402A00D9A0E006AB59801A80FFF74D +:10321000C2FF0400042816D9002206A9FFF768FFA0 +:10322000052810D906AB1B88AB420CD1002D07D066 +:10323000514B2A000499C01808F0CEFD002802D195 +:1032400001201BB0F0BD06AB1D8020000699FFF7E2 +:103250007FFF041E7BD1069B0793FFF79CFF802313 +:103260005B01C618802307001B039E4201D3F8268A +:10327000F60288235B05F31801931B68013302D023 +:10328000019808F089FB3D49019808F0CDFA3B1DF3 +:103290000293331D05938822029B52059B181B68DD +:1032A00008935A1C3CD044219AB20091402A04D879 +:1032B0000320D11D814389B2009103991B0C8B42DD +:1032C00024D0402A22D80122300008A9FFF710FF9D +:1032D000021E1BD1380008A9FFF70AFF04000428CA +:1032E00031D9009A059B9B1880225201B218934253 +:1032F00040D288235B05C118009A09A808F03CFB5E +:103300001D4B009A09A9F01808F086FB009A029B51 +:103310009446634402931A4B029AFB189A42BAD31A +:1033200088235B05FC1821680198013908F07CFAB4 +:10333000200008F031FB039A07AB5A803000079950 +:10334000FFF706FF0400002C03D1002079E70428D2 +:10335000FBD988235B05E018069908F065FA03237A +:10336000EA1C9A4300D16BE7034B0499E01808F07C +:1033700053FB65E70424ECE704000011FFFFFF7F27 +:10338000F80F0000F7B505001400402A21D80027E7 +:1033900001AE71803780FFF7FEFE042816D93A008F +:1033A0003100FFF7A5FE042810D93688BC420BD0A7 +:1033B000BD4209D0221CB44200D9321C064B92B245 +:1033C000C118280008F0D8FA30B2FEBDC04300B2E0 +:1033D000FBE703204042F8E70400001137B5042260 +:1033E00004000D0001A81649FFF7CCFF02000428D5 +:1033F0000BD1019BA34208D3AB4204D0104901A8D2 +:103400000195FFF7F9FE01203EBD0E4C2368200018 +:10341000019308F0C1FA019920000139019108F0E7 +:1034200003FA80235B01E418074B9C42EED104228F +:10343000034901A80195FFF7DFFE0020E4E7C0463D +:103440005555000000C007110000081130B589B0C3 +:1034500008F02AFC10226946254808F0FDFB254BA0 +:10346000009A9A420ED1019B029A0F2B33D8002169 +:1034700001240698013B08D2002900D00292029B49 +:10348000013331D10023029325E0551CF2D1020013 +:103490002100EFE710341022200004A908F0DCFB23 +:1034A000029B013301D1069B0293882304995B059B +:1034B000C918059B06981A03120B049105928142C4 +:1034C00003D02B4201D108F057FA019B013B019335 +:1034D000019B002BDED1029B002B03D004930498A8 +:1034E0004168084709B030BDE025014C2D03EFE7E6 +:1034F0000000011150485936F7B50F4F0F4BFA6DC8 +:1035000004001A4084235B001343FB65030010335F +:10351000019300252E00112008F0C6FC0322BB6E8B +:103520001340AB4002351E43202DF4D1019B40C413 +:10353000A342EED1F7BDC04600F0004000FEFEFF02 +:10354000802270B5AD4CAE4BD200002120001C6033 +:1035500008F0FAF92300AB4A88331A60AA4B1A78AC +:103560006E23002A00D01133E3620A232365A74BA0 +:103570001878A74BA0630138E361C3B2032B01D8CD +:1035800010232362A34B37226361C823DB00A361AE +:1035900023008C331A60082336210F3AE518E163C3 +:1035A00023646264E9670439251DE96725003B2629 +:1035B000BC352E602500C0352B602500C4352A603F +:1035C00025000636CC352E602500083EC8352E6015 +:1035D0002500D03529602100D4310B602100D8317D +:1035E0000A6021000225E0310D6025004221DC3512 +:1035F000296025001B3EE4352E602500E8352B6050 +:103600002500EC352A6022000525F43215602200E1 +:10361000F032116022001831903211602200943291 +:10362000136023003C2298331A60AF23DB00236031 +:10363000794B2363032805D808F0C6FB33023537DE +:103640001523636096232100FA225B00A360E360E8 +:10365000C8332361714BFC319200A3640A6062623B +:103660006F4A704DA2627322E2656D3A6265A2658F +:103670000232E5644A600221616696218900A166F2 +:10368000626709210022E166A2676749674A684EBE +:103690002167E2673560032811D808F095FB96088A +:1036A0009EA61023CDE70E23CBE70C23C9E720000D +:1036B0001A259C30056020000735A03005602000E9 +:1036C000A83003602300FA20F8338000186023003C +:1036D0006420A433186023005F38AC3318602300E3 +:1036E0000338B03318602300C630B43318602300A9 +:1036F0000020B833186023003825FC339D604D4D01 +:103700005A665D644C4D9A64DD619625AD001D627C +:103710004A4D9A675D62F53DFF3D9D621E25484A10 +:10372000DD6618675867D9651966DA67BE23C02158 +:10373000444A5B00E250444B4900635004316250FC +:10374000C4225200A350FA23E4205B000432A350A9 +:103750000432A3503D493E4A3E4BD1603E49800071 +:1037600019503E49E938FF3819503D490430195085 +:103770003C491038D1613C4911633C4951633C4993 +:1037800011603C49195019003B48F83108603B4929 +:10379000D16582213A4A89005A501A0039490832C3 +:1037A000D1671A003849B43211608821374A89003C +:1037B0005A501A00364988321160364ADA6408F0E5 +:1037C0000BFA012008F080FA70BD200014259C300F +:1037D000056020000435A03070E7200010259C30E3 +:1037E000056020000335A03068E720000E259C30DE +:1037F000056020000235A03060E7C0460004FF1FCE +:103800007067FF1F6072FF1F2847FF1F4A0AFF1FD4 +:103810003A07000080C3C9019A02000050C30000AB +:103820006A180000280A0000204E000088130000DB +:10383000F009FF1F001F001168100000C4090000FC +:10384000DC05000040420F0010270000FD1BFF1F99 +:10385000FC00FF1F0000FF1F012FFF1F2932FF1F69 +:10386000C130FF1FD51FFF1FF11FFF1F9D21FF1F2D +:10387000491FFF1FC128FF1F692CFF1FD918FF1FF9 +:10388000CD27FF1F3525FF1F4125FF1F491EFF1FA5 +:10389000011FFF1FC11DFF1FF7B50B0CFF270122E2 +:1038A000009300233C001E001D009446019089B245 +:1038B00062469A401000084018413618B6B2FF2FF1 +:1038C00002D1012E00D19FB2009802401A41AD18DA +:1038D000ADB2FF2C02D1012D00D19CB20133102BCF +:1038E000E6D10320012E07D1012D04D1019B240133 +:1038F000E4191C700138FEBD102EFCD10238102DC9 +:10390000F9D00230F7E710B5064C2378002B07D129 +:103910000548FFF7F1FD0548FFF7EEFD0123237091 +:1039200010BDC0463267FF1F4467FF1F3467FF1F8B +:10393000F0B58BB00D0001230190102936D8FFF7A8 +:10394000E2FF00231A001B48C15C01335218102B00 +:10395000FAD1023B002A29D0174B184C1F680023CC +:1039600006A9E25C1600FA5C56405E540133102B47 +:10397000F7D102AA07F070FF2A0002A9019808F007 +:1039800083F907F071FF23681B18236007F06CFFB1 +:1039900063681B18636007F067FFA3681B18A360C8 +:1039A00007F062FFE3681B18E360002318000BB008 +:1039B000F0BDC0464467FF1FC845FF1F3467FF1FA7 +:1039C000F0B5022001245C4B5C4D5D4E91B0287037 +:1039D0001C705C4F03933368BB7006F0FBFC002344 +:1039E000984205D0BA78552A02D0332A00D096E002 +:1039F0003360002006F05CFF08F03EF9FFF7A0FD01 +:103A000007F092FF1F22012400214F4B36261A7027 +:103A10004E4B1C704E4B19704E4B19689143163A21 +:103A20000A431A60602219689143403A0A431A60B7 +:103A300007F04AFF08F0D8F8C120FF21464B80006C +:103A40001A588A431A50C522920098588843BF39A1 +:103A5000014399509858414908408021C9010143C8 +:103A6000802099509958C0050902090A01439950CC +:103A700080213B48490107F0CFFE03232200009339 +:103A800038490194384808F0C7F92E22374904A86C +:103A900007F072FF02AB04ACF618617820780234AC +:103AA00006F0B8FCA642F8D1314B324A196803201F +:103AB0001140A022D2020A431A608022196892049F +:103AC0000A431A6019682C4A1140802292030A4363 +:103AD0001A602A4B2A4A934200D8012008F04CF978 +:103AE00008F0AAF807F008FF287807F0ADFE039B5E +:103AF0001878C0B208F0C0F907F0F6FF2149042099 +:103B000007F0B2FF06F0A0FE00F0B2F800F0FEFDF4 +:103B100000F090FE00F01EFA002011B0F0BD0093FE +:103B20002100184A042008F067F98023DB059C6215 +:103B3000FFF78CFC5DE7C0462847FF1F4A0AFF1FBE +:103B400034F00040C464FF1F480AFF1F490AFF1FEA +:103B5000680AFF1FBCF0004000E100E0FF00FFFF2B +:103B60002C47FF1FB059FF1F2C57FF1FB8BE001175 +:103B700014F00040FF7FF8FFFFFF9FFF6072FF1F00 +:103B80000080FF1F3B00010870B5002529492A4A23 +:103B90002A484D6308CA1B051B0DED188242F9D156 +:103BA0000022274B8B63274B08211A628022264B69 +:103BB0009205DA67254BDA688A43DA60244A12787C +:103BC000012A03D09A6823490A409A6004202249B6 +:103BD000EE240A68E40082430A600121DA686C433B +:103BE0008A43DA600D3008F057F8112007F084FF9F +:103BF000112007F089FE194A200C0400642390422A +:103C00000AD8FA220023D200904205D9144B0A2187 +:103C1000C01808F0A1F8C3B2124A1372124BD48034 +:103C20001B78002B04D1114B1021187807F004FFEA +:103C300070BDC046000005408807054000080540EB +:103C4000FF01000000F0004004E100E03CF0004013 +:103C50004A0AFF1FFFDFFFFF00380040B70B0000DC +:103C600030F8FFFFAC64FF1FE866FF1FE464FF1F2E +:103C7000002210B51100112007F026FF10BD000032 +:103C8000F8B50023012508263A4F3B4C3B62E36818 +:103C90001120AB43E360E368B343E36007F02CFF1C +:103CA000112007F0F9FF112007F0DEFF4023226802 +:103CB00029001343236080236268DB0213438022C0 +:103CC0006360A36809201343A360A3682B4A1340D1 +:103CD000A3608023A2689B0113431022A360236C7E +:103CE00093432364236C2B43236480235B013B6257 +:103CF000226B234B1A402263626B1A406263A26BF1 +:103D00001A40A263E26B1340E3631E4AE368134068 +:103D1000E36006F065FC2900092006F08FFC802393 +:103D2000194A9B00516C11200B43536408F09CF816 +:103D3000FD21164B164A89005A508023C720E26B9A +:103D40005B031343E363E36880001E43E660E368BC +:103D5000104A1D43104BE560195811408022120291 +:103D60000A431A50802292051A6080220B4B5A6334 +:103D7000F8BDC04600F000403CF00040FFFFDFFF10 +:103D8000EFFFEFFFFFFF7FFF003800400000FF1F45 +:103D9000893B0011FF00FFFF00E100E0000005404B +:103DA00030B503A804880B20002C0ED14968074DBC +:103DB00008784978090201430A20A94205D1012166 +:103DC00020001980024B1B7A137030BD192A0000A5 +:103DD000AC64FF1FF7B5150008AA16884A680F4F94 +:103DE00014785278120222430A24BA4214D10122D2 +:103DF000DBB2019200962A0007F076FC041E0BD17C +:103E0000074B1B68002B07D068782A780002104304 +:103E100042425041013098472000FEBD0229000077 +:103E20003064FF1F30B5012503790400BFB02B4279 +:103E300012D00A49408806F0C3FF28420CD06A46D7 +:103E4000074B69465B8D55801380064B60881B7A53 +:103E50001371002204F0A6F83FB030BD2864FF1FA4 +:103E60005843FF1FAC64FF1F10B50549054806F015 +:103E70005DFF0421044A054806F01AFF10BDC04644 +:103E80002864FF1FFFFF0000E8BE00115843FF1F1A +:103E900010B5024804F008FF10BDC046253E0011D1 +:103EA000062310B5837010330371443B43712A33EA +:103EB00083714433C37100230222012103720E4B2C +:103EC000027041701C8881724472197A0273C17247 +:103ED0009A784273DA7882730322C2731A79027471 +:103EE0005A7942740C2282749A79C274DB79037510 +:103EF0001123C370152010BDAC64FF1F10B5142032 +:103F000007F0EAFD124B14220021186007F01CFD97 +:103F1000002007F071FC012007F056FE022007F098 +:103F2000F3FD032004F064F9042006F079F905207C +:103F300003F0A2FB062004F06FF8072001F034FA2A +:103F4000082006F095FE092001F01CF810BDC046BF +:103F50003464FF1F10B507F017FD012007F024FFA0 +:103F600007F07AFF002010BD094B10B504009842FD +:103F700005D0012904D12000064906F0D7FE10BD66 +:103F80000229FCD1013904F04DFE0028F3D0F6E7F8 +:103F9000FEFF00005A64FF1F70B50D7A100004AADE +:103FA0002C00168810221440154220D1002E20D15A +:103FB0000A78022A18D14A68517815780E4A0902FF +:103FC0002943914205D00D4A914209D01C800A2410 +:103FD00004E014220A491A8007F0CEFC200070BDCC +:103FE0000C2208491A80F7E71C800124F6E7082410 +:103FF000F4E70B24F2E7C046F3FF0000F4FF0000F3 +:10400000AC45FF1FC4BF001110B5040007490848A4 +:1040100006F08CFE074804F087FD0020E40704D575 +:104020000721054A054806F043FE10BD5A64FF1FEC +:10403000FFFF0000693F00112CBF00119C43FF1FD0 +:1040400000B50C4BBFB01A780B4901A800F0ACFCCE +:104050006B4680B25880002809D06A46074B6946F3 +:104060001B881380064B0022188803F09BFF3FB08B +:1040700000BDC0463864FF1F3964FF1FF643FF1FB1 +:10408000FE44FF1F00B50C4BBFB01A780B4901A8C6 +:1040900001F0CEFE6B4680B25880002809D06A46F7 +:1040A000074B69465B8D1380064B0022188803F08E +:1040B00079FF3FB000BDC0466264FF1F6364FF1F0D +:1040C0009C43FF1FFE44FF1FF7B50E00377A1C000C +:1040D00008AB11003D001A8820231D401F423CD12F +:1040E0003378022B3BD173681F785B781B023B430C +:1040F0001E4FBB4208D01E4FBB4214D01D4DAB42D9 +:1041000021D00A252800FEBD002A2AD1142C2AD845 +:104110002200F06807F030FC174B1C70012CF1D91D +:10412000FFF7B0FFEEE7002A1BD1202C1BD822009E +:10413000F06807F021FC114B04211C70104B18781B +:1041400007F07AFCDEE7E3B20124009201940A0052 +:10415000310007F0C9FA0500D4E70825D2E70125A8 +:10416000D0E70B25CEE70D25CCE7C046F3FF0000D6 +:10417000F4FF0000022900006264FF1F3864FF1F83 +:10418000E464FF1F332310B5040003700A220749BB +:10419000013007F0F1FB064B0F201B681A0AE3728F +:1041A00022731A0C1B0E6273A37310BDAC64FF1F45 +:1041B000D464FF1F30B5012503790400BFB02B4242 +:1041C00013D00B49408806F0FBFD28420DD06A460B +:1041D000084B01A81B881380FFF7D4FF6B4658805B +:1041E00000226946608803F0DDFE3FB030BDC04666 +:1041F0005A64FF1FF643FF1F10B5024804F054FD38 +:1042000010BDC046B541001170B5160004AA14884F +:1042100005AA15784A685078117800022A4A08439E +:10422000801805284BD807F0CFFD03131E29343F13 +:104230000720032C0BD80422121BAA4200D92A0003 +:1042400022491A803000091907F096FB002070BD42 +:104250000720112CFBD81222121BAA4200D92A00D7 +:104260001B491A80EEE707200E2CF0D80F22121BF4 +:10427000AA4200D92A0017491A80E3E70720032C35 +:10428000E5D80422121BAA4200D92A0012491A803A +:10429000D8E70720032CDAD80422121BAA4200D93F +:1042A0002A000E491A80CDE70720032CCFD804221C +:1042B000121BAA4200D92A0009491A80C2E700222B +:1042C0000A201A80C3E7C046DCD5FFFF77BF001184 +:1042D0008064FF1F67BF001162BF00115DBF001146 +:1042E00058BF001110B50D21024A034806F0E0FC4A +:1042F00010BDC0464CBF00110C44FF1FF0B5002498 +:10430000274E85B03000B47100F0E2F8254D264B01 +:10431000EA89297C9A422FD10423300003AA00F0B5 +:1043200057F90400300000F011F90123B371002C9B +:1043300034D16B4699892B68C9BA4B4329891B4AEA +:104340001B145B1853806B46D9896B6849BA89B2D4 +:104350004B4369891B0C5B181548191C1BB283421F +:1043600000DD011C0B0400D500211388918001336E +:104370001380200005B0F0BD0227220003AB3000FF +:10438000009700F0F7F80E230400297C012230008A +:1043900000976B4400F0EEF80443C3E71C00E8E725 +:1043A000E444FF1F9464FF1F83050000AC64FF1FFB +:1043B0000F27000073B5234E300000F089F8224D1E +:1043C00007236A463000297C00F002F9040030001F +:1043D000002C33D16B461B787F2B2FD800F0B6F81A +:1043E0006B46D878F02302041B031A406B469B8867 +:1043F00016495BBA9BB21A432B68000953432A89BA +:104400001B0C9B184B806B465A789B7812031B0140 +:104410001A436B68024353436A891B0C9B180C4870 +:104420001A1C1BB2834200DD021C130400D50022BB +:104430000B888A8001330B80200076BD00F086F85F +:104440000124F9E7E444FF1F9464FF1FAC64FF1FDD +:104450000F27000070B5114C237C002B0FD0382B98 +:104460000ED10F4D280000F033F8CC23AC222800E9 +:10447000217C9B0100F0F4F8280000F067F870BD83 +:10448000084BE2899A42FAD1054D280000F020F845 +:1044900000222800217C00F0C5F8EDE79464FF1F9E +:1044A000E444FF1F8305000010B5084B1A7C002A66 +:1044B00009D05B69002B06D09847041E01D0FEF797 +:1044C0009FFD200010BD0124F9E7C0469464FF1F42 +:1044D00070B5C17905000C00631E9C411A4BE402C3 +:1044E000E41849000460C9B2007906F0DDF8E97902 +:1044F000687949000131C9B206F0D6F8E879093087 +:10450000C0B207F0B1FB0023E36661332360AA79F0 +:104510005B3B002A0ED022689A43023B1343236080 +:104520000A23E3610733236200232363A363013378 +:10453000E36370BD22689A4302231343236046233A +:1045400063610633A361EFE70050004070B50025BA +:1045500004000368DD66C0790930C0B207F0CCFA08 +:104560002900207906F03CF82900607906F038F837 +:1045700070BD0000F8B51E0006AB1D78002304686E +:104580001700E366616007F08FFB01238022E3667A +:104590002B0027615200013B08D207F0A5F9082043 +:1045A0000A4A1168002D03D12800F8BD2261F2E704 +:1045B000236F034203D02369013D33700136136832 +:1045C0005B1A032BEED90125EEE7C0466008FF1FFA +:1045D00070B51C00002305681600EB66696007F0E3 +:1045E00063FB01238022EB6623005200013B08D2CB +:1045F00007F07AF908200A4A1168002C03D120003C +:1046000070BD2A61F2E72B6F034203D02B69013C96 +:104610003370013613685B1A032BEED90124EEE7E1 +:104620006008FF1F002370B504681500E366616031 +:1046300007F03AFB0123E366256107F055F9802076 +:10464000064A80001168636B034205D113685B1A48 +:10465000032BF8D9012070BD0020FCE76008FF1F84 +:1046600070B51D00002304681600E366616007F062 +:104670001BFB0123E36626610F33626B1A42FCD0F9 +:104680002B0A23611023626B1A42FCD0EDB2256124 +:1046900007F02AF98020074A80001168636B034203 +:1046A00005D113685B1A032BF8D9012070BD0020D7 +:1046B000FCE7C0466008FF1F70B51E0000230568B8 +:1046C0001400EB66696007F0EFFA0123A619EB66A8 +:1046D0000F33B4420ED107F007F980200A4A800058 +:1046E00011686B6B03420CD113685B1A032BF8D96A +:1046F000012070BD21782961696B1942FCD0013419 +:10470000E7E70020F5E7C0466008FF1F10B5084C3A +:10471000E368002B08D1074B1B685B045B0C0A3372 +:104720006360054B1B68236007F0AEFBA06010BD03 +:10473000D464FF1FC8F00040CCF0004010B507F073 +:10474000B3FA0F4B996A9A6A8A42FBD10D4C6268A0 +:10475000A0688A18121A531E884200D31300A16061 +:104760002168DA0B52185B0407495B0C6360226016 +:104770000B60064B1A6007F0B7F8206810BDC04602 +:1047800000F00040D464FF1FC8F00040CCF00040AF +:1047900070B51F4C23793F2B01D93F2323711D4B4B +:1047A00022791A701878C0B207F0B6FA18231A499D +:1047B0001A4A0B801A4913800B805380A379194938 +:1047C00080200B800C21938001334B430001191C86 +:1047D000834200D9011C144BD18019806379002BCE +:1047E00011D101336371237A012B01D80223237283 +:1047F0006279237A0D4853430A21584307F0ACFAF3 +:104800000B4D286070BDA02BEDD9A023EAE7C04670 +:10481000C864FF1F480AFF1FFC44FF1FD446FF1F48 +:10482000FA44FF1FB466FF1FF844FF1F7102000027 +:10483000B864FF1FF8B513210020FEF7CFFD114C1F +:10484000011E114D09D10C22104BC1CBC1C428004F +:1048500007F07AF8FFF79CFFF8BD0C2220000C4906 +:10486000FEF790FD0C2802D0084B43CB43C40C222A +:1048700028000849FEF786FD0C28EBD00C22002109 +:10488000E5E7C046C864FF1F9464FF1FB8BF00116E +:10489000FC0C0000F50C0000F0B51D4C8022A54476 +:1048A0000400882069465201400507F05DF9902216 +:1048B00012016A441300200032C832C316C816C35E +:1048C0008023144C144FA6689B033343A3603B60C2 +:1048D00007F042F88823A0685B05C01807F05CF871 +:1048E0000025882329008022A0685B05C018401994 +:1048F0006944520007F090F880230135FF355B01D1 +:104900009D42EED1A6603E60044B9D44F0BDC04682 +:10491000FCEFFFFF4446FF1F9808FF1F0410000034 +:10492000F0B5040087B0002825D0684606F06CFF7B +:104930001B4C022806D106226946200007F04CFADB +:10494000002816D06946002301250F262F00E25CBF +:10495000013310091030874038002F003240974053 +:104960003A0002434A610439062BEFD16846FFF74B +:1049700093FF07B0F0BD182269460A4807F0F4F823 +:104980006A46A300D358013305D01822FF21684698 +:1049900006F0DAFFEAE70134062CF1D1E9E7C04678 +:1049A0006509FF1F00090011F0B5002504000E0085 +:1049B00085B0AA4200D186E04B1C087801934B7861 +:1049C0008978377909021943F3783F061B040B43B2 +:1049D0001F43039720706570252800D196E033D8D7 +:1049E000112813D807F060F8690022012201220182 +:1049F0002201AA00B800B1002201220122012201F5 +:104A00002201220122012201FC001C01232800D1E5 +:104A1000D5E0DB2800D02BE1042A00D8ACE010253B +:104A2000052A05D0551F2A003800711D06F0A4FF85 +:104A300005223100200006F09FFF2A003900601D8A +:104A400006F09AFF05353EE0562859D010D8332895 +:104A500000D19DE0552839D02628DAD19A4B29007B +:104A6000132218001D0006F06FFFFEF7C9FA5CE084 +:104A7000712800D177E0722800D180E0602800D151 +:104A80008BE0DC28C5D1022A00D875E07378BFB26C +:104A90006370B378A370032A05D0033A390092B249 +:104AA000F01CFEF7A9FB10223900E01CFEF76AFC9F +:104AB000C51C002807DA60705CE00C2220008349E6 +:104AC00006F05AFF0C25280005B0F0BD013A804DD4 +:104AD0000C2A13D8002A0AD02800019906F04CFFAE +:104AE000FFF756FE0C2228007A49FEF785FB2900C5 +:104AF0000C22601C06F040FF0D25E4E70C22EBE7DA +:104B0000734D754B2A0043CB43C2E9E7013A6E4D22 +:104B10000C2A11D8002A08D00199280006F02CFF91 +:104B20000C2228006D49FEF767FB29001322601C48 +:104B300006F022FF1425C6E70C22EDE7052268499E +:104B4000601C06F019FF0625BDE712226549601CAE +:104B500006F012FF1325B6E708226349601C06F031 +:104B60000BFF0925AFE77178F72905D85F4B188847 +:104B700001F0BAFD0225A6E7FF236370FAE75C4B5C +:104B8000012A03D072785A706270F3E75B78F4E719 +:104B90002000FFF7F7FA050095E7013A554D082A7E +:104BA0000BD8002A05D00199280006F0E5FE01F097 +:104BB00071F808222900601CD1E70822F3E7042AD3 +:104BC00004D94D4D2F6007F05FF9A860FFF7B6FDDF +:104BD0000422039003A9601C06F0CEFE052572E7AF +:104BE000464D062A15D906222800019907F0F4F847 +:104BF00000280ED006220199280006F0BDFE0622EC +:104C00003F492800FEF7F8FA0123394A51780B434F +:104C1000537029000622601C06F0AEFE072552E7FD +:104C2000012AA9D07078FFF77BFEA3E7012800D006 +:104C3000EFE6931E334F1A2B04D87378002B09D15B +:104C400000F014F9304B39001D78601C6A1E06F024 +:104C500093FE38E7551E2A000199380006F08CFEB5 +:104C60002A49AAB23800FEF7C7FA00F035F9E9E799 +:104C7000DA281DD1042A00D87EE7082A15D9B3798D +:104C800072791B021343F27912041A43337A1B061A +:104C900013433B603B68052231002000039306F07C +:104CA0006BFE0422601D03A959E7FE236370F1E740 +:104CB000DE2800D060E7511E012A01D1002502E75D +:104CC000019800F0CDFFF9E79464FF1FC4BF001105 +:104CD000C864FF1FFC0C0000B8BF0011F50C0000F9 +:104CE000A064FF1F8064FF1F4846FF1FFE44FF1F94 +:104CF000C464FF1F9945FF1FD464FF1F6509FF1F90 +:104D0000ADAC0000C766FF1FC566FF1FAEDE00002A +:104D100070477047020010B5094B0A32094C92B235 +:104D2000DA815A8298811882207802F043FB0422AB +:104D3000054B012120781A7006F07EFE10BDC0469A +:104D4000D245FF1F1267FF1F1167FF1F013870B5A3 +:104D5000042809D807F038F8030928081200234B63 +:104D60000221187806F068FE70BD204B08211878E3 +:104D700006F0EAFF00221E4B1A72F5E7802200249B +:104D80001B4B1A4D52001A8108211A682878DC72D0 +:104D900006F0D2FF2100287806F0F6FF012000F08F +:104DA00065FE00F077FFDFE7104B0821187806F06A +:104DB000CBFF1048FFF774F80F4B104A9B79002087 +:104DC00093800F4A13808022094B5200D8721A81B7 +:104DD00000F04CFE00F05EFF0A4B5B78002BC3D066 +:104DE000094A136006F0C0FDBEE7C046E464FF1F39 +:104DF000B864FF1F0745FF1FC864FF1FD446FF1F8D +:104E0000B466FF1FC464FF1F34F0004010B50129D1 +:104E10000BD1022809D1054B1B78002B05D0262287 +:104E2000034B04485A72FFF775FF10BDE866FF1F79 +:104E3000B864FF1FC40900000300F0B50A4D8E18C6 +:104E4000B14202D152008018F0BD0C782F682409BD +:104E50003C5D0F271C700C7801313C402F683C5D95 +:104E60005C700233ECE7C046F444FF1F0D22114B87 +:104E700010B51A700C23104C10492370093A033BEB +:104E80000F48637006F078FD2D2301220D490E486E +:104E9000A371FFF7D1FF01220C49FFF7CDFF0122DB +:104EA0000B49FFF7C9FF00220A491000FEF7A4F9D9 +:104EB00010BDC046E466FF1FC566FF1F77BF001127 +:104EC000C766FF1F6709FF1FCC66FF1F6609FF1F2C +:104ED0006509FF1FAEDE000070B5124C13222000E2 +:104EE0001149FEF74FFA114D002817DDAB78002B62 +:104EF00014D0431C2B7009236B700023001903701E +:104F0000287829000130C0B206F05EFD2978220021 +:104F10000139C9B2002005F0E9FD70BDFFF7A6FF19 +:104F2000EEE7C046C766FF1FAEDE0000C566FF1F86 +:104F300010B5114B1A781870002A0ED000280BD12A +:104F40000E4B1A78062A07D85423D340DB0703D523 +:104F50000B4B187802F02EFA10BD0028FCD0074B3E +:104F60001B78012B02D0033B022BF5D8044B012107 +:104F7000187806F061FDEFE7E866FF1F1167FF1F75 +:104F80001267FF1F70B54A4E4A4A4B4930700220E3 +:104F900005F038FC00F0E8FEFEF732F806F004FEFB +:104FA000032246494648FFF747FF2D240300042209 +:104FB0001C7044490130FFF73FFF30230470424D1D +:104FC000424C437083702E3B062220004049EB8701 +:104FD000FEF7D8F9062813D0200006F015FC0228A9 +:104FE00009D00321200006F057FD8D23E3706E3BAE +:104FF000237119336371062220003549FEF7FCF84E +:10500000344B1B68FC335C64FFF766FF0020FFF73E +:105010008FFF314C314A0121314B1278207802F058 +:105020008BF9304A304B12780021207802F084F955 +:1050300001222E4B1A702E4B9B78552B31D12D4BC4 +:105040003B325A722C4B2D4AAB81EA812B826A8209 +:105050002021307806F040FE0120404205F092FD0C +:105060000120404205F02EFEFFF73CF9FEF7FCFE62 +:1050700000F0A6FC01204042FEF7C6FF012006F02A +:105080005BFCF72001F014FB0121307806F0D4FC22 +:10509000307802F0EBFA1A4806F0CEFBFEF7F0FD8E +:1050A00070BD6422174B5B7953431A000A32CBE779 +:1050B000E464FF1F114D00110D4E00114846FF1F03 +:1050C0008064FF1FA064FF1FD245FF1F6509FF1FFB +:1050D000ADAC00007067FF1F1267FF1F2645FF1F62 +:1050E0000745FF1FE466FF1FC566FF1FB666FF1F6B +:1050F000C464FF1FB864FF1FC4090000CE0900008C +:10510000E664FF1FC864FF1FF8B50A0020230D00E6 +:105110001A40194257D0574B1B78002B50D0FFF73D +:105120000DFB554B554C564E99686268737A8A1A36 +:10513000DB039A4202D36160FEF7A2FD327A217A44 +:10514000531EDBB2994205D1FFF784F9002000F02D +:10515000DDFD0FE09142F9D300232372FFF7A4F99C +:10516000012000F0D3FD474F3800FEF799FE3900CB +:1051700006F06AFE637A002B1FD0013BDBB263723C +:10518000002B1AD1404B9B78552B01D106F0ECFB3C +:10519000E37A002B0CD000233C4A3A4FE372138889 +:1051A000380001331380FEF77BFE390006F04CFE19 +:1051B000642370795843FFF7ADFD237A01332372DE +:1051C00020206840F8BD0BB2002B0ADA304B18786B +:1051D00006F00AFE002801D006F096FD80200002AD +:1051E000EFE70224214206D0244B01201A72FFF778 +:1051F0009FFE2000E5E70B071ED5FFF79FFA1E4B29 +:105200001E491F4C98684A68637A821ADB039A42E7 +:1052100002D34860FEF734FDFFF746F9FFF71AF9AD +:10522000012000F073FD00F0E5FB2368DB0701D5EA +:10523000FEF7E2FF0820C4E71024214206D00D4B00 +:105240001B78002BD5D1FEF723FED2E701242142A3 +:1052500007D0104800F06CF806F0AEFB00F036FD09 +:10526000C7E70424080020402142ABD0FEF7E8FE47 +:10527000BFE7C046E866FF1FD464FF1FB864FF1F86 +:10528000C864FF1F0745FF1FC464FF1FAC64FF1FF6 +:10529000E464FF1FEC44FF1FF0B51B4B1B4F1B8842 +:1052A0003A8804001A4E1B4D85B09A420DD83288B8 +:1052B0009A420AD3184B1A882B889A4205D1174A6A +:1052C000174B12881B889A421BD0052001F046FA22 +:1052D0003B8802AA13803388019053802B88114D9C +:1052E00093800F4B02A91B88D3800F4B2A78188814 +:1052F00002F062FF0D4B08212878019A1C7006F01D +:10530000A3FB05B0F0BDC046B266FF1FFC44FF1F03 +:10531000FA44FF1FB466FF1FB066FF1FAE66FF1F93 +:10532000F844FF1F1267FF1FFE44FF1FAC66FF1FFC +:1053300013B50C4B1C78002C11D1002801D00A4B5E +:1053400018600A4A0A4B11780A4A10780A4A0192F0 +:105350000A4A0092002205F0C1FA200016BD11246D +:10536000FBE7C0461167FF1FA866FF1F1067FF1FFE +:105370000067FF1F1267FF1FEC66FF1FF066FF1F2D +:1053800010B5064B12201B78052B06D1044B1322B7 +:105390001988044B187801F0BDFB10BD1167FF1F81 +:1053A000FE44FF1F1267FF1F10B500240122114B9E +:1053B00052421870104B1C70104B1A8002F056F9B4 +:1053C00004220F4B21001A700E480C3206F064FDC7 +:1053D000102221000C4806F05FFD07220B4B1C60D9 +:1053E0000B4B1C700B4B1C700B4B1A700B4B1C7037 +:1053F00010BDC0461267FF1F1167FF1FFE44FF1F4D +:105400001067FF1F0067FF1FF066FF1FEC66FF1F9E +:10541000C466FF1FC366FF1F0045FF1FC266FF1F54 +:10542000F8B5174C0600257806A814240078052D39 +:1054300023D1B41F134FA5B21824BD421DD88D1F10 +:10544000ADB2BD4219D8FA256D00AA4215D21D0091 +:105450000D4F0A3DADB2BD420FD80C4C26800C4C0E +:1054600021800C4900240A800B4A1380FFF714FFA7 +:105470000A4B0421187806F067FC2000F8BDC046EE +:105480001167FF1F790C0000750C0000FC44FF1F22 +:10549000FA44FF1FB466FF1FF844FF1F1267FF1F87 +:1054A000F0B50BB20D0089B0002B00DB70E1A44E0B +:1054B000307806F099FC041E50D00378A22B00D15E +:1054C00022E1D02B1AD0912B45D143780E2B42D11B +:1054D0009C4B82889A423ED19B4A83681278052A67 +:1054E00039D1032018567F2835D0984B1B68002BE4 +:1054F00031D05B68002B2ED098472CE080780728AD +:1055000029D806F061FC0428183F3F74A8D86378B6 +:10551000002B0CD101218C4B19708D4B1A78002A6D +:105520005BD08C4B307801F007FF002855D0072264 +:10553000854B1A7051E061780029F8D1E378002B8F +:1055400011D0854A854B1278307801F0F5FE6070F5 +:105550006378002BEBD1200006F0D6FB8020000200 +:10556000684009B0F0BD784B1B78022BF3D00121C5 +:10557000307806F021FB0028EAD10121307806F0CE +:105580005BFAE5E76378002BD1D16F4F032807D191 +:105590003B78052B02D101333B701EE00223FBE771 +:1055A0006F4B1A886F4B0293002A0BD01B78002B8D +:1055B00003D00121307806F047FA3B78062B04D15E +:1055C000013BE9E7029B1A70F7E7042B41D1012167 +:1055D000029B3078197006F02FFA5C4B1B68002B89 +:1055E000B9D01B68002BB6D0574A107884E763788F +:1055F000554F002B27D10622211D5B4806F0BCF930 +:1056000062895A4B5A491A80A2895A4B1A80E389F7 +:105610000B800521397058490A80584A1380228A24 +:10562000574B1A80574B1B78012B09D11F2001F0D3 +:1056300095F8FA22920042430421307806F004FAE9 +:105640000022484B75E7312B00D070E70022454B14 +:105650001A700323A0E706220021434806F01CFC31 +:105660000023454A04211380444A30781380444A79 +:10567000138006F069FB0821307806F065FBA379FA +:10568000083B5A425341304A03331370304B1B7866 +:10569000002B06D0334B30781A78002A06D001F060 +:1056A00089FE0122314B52421A8096E7012119707E +:1056B00006F0C2F9F5E70821307806F045FB63787B +:1056C000002B00D047E72C4B2D4F0293E388029A22 +:1056D00004211380294B307803932389039A138084 +:1056E00063893B8006F068FA002800D033E7264B38 +:1056F0001B68002B00D12EE7039902983A8809888D +:1057000000881B68984726E74379132B00D022E7CF +:105710000389012B0AD11D4B1B78022B06D10821CE +:10572000307806F011FBFFF72BFE14E7052001F09F +:1057300015F808210200307806F086F90BE7C0461C +:105740001267FF1F051400001167FF1FA866FF1FE7 +:105750002645FF1F0745FF1FE466FF1FC566FF1FA5 +:10576000E666FF1FE866FF1FB766FF1FFE44FF1FC8 +:10577000BE66FF1FC066FF1FB266FF1FB066FF1F39 +:10578000AE66FF1FB666FF1FA466FF1FAC66FF1F55 +:105790008020C001014200D0E2E6CB0731D5324B78 +:1057A0001B78002B1DD0314E05AC3378052B1AD158 +:1057B000023B23702E4B21001B7823722D4B1B784C +:1057C00063722D4B187801F05BFD002809D007208B +:1057D0002A4B30701B68002B03D01B68002B00D0B5 +:1057E00098470120BCE60E20254B06221B78254950 +:1057F0002370254B1B78637002ABC01806F0BCF811 +:10580000D8E7022308001840194209D0174B1B782B +:10581000052B03D11D4B188806F086FA02209FE65F +:105820000424214203D0FFF737FD200098E6082327 +:1058300008001840194200D193E6154B1C78012C42 +:1058400003D0022C0DD008208AE6124B124A1349CD +:1058500013481B881288098800880094FFF7E0FD30 +:10586000F1E7FFF78DFDEEE7E866FF1F1167FF1F09 +:105870000045FF1FC266FF1F1267FF1FA866FF1FBC +:10588000C466FF1F0145FF1FC366FF1FFE44FF1FC5 +:10589000AC66FF1FF844FF1FB466FF1FFA44FF1FEA +:1058A000FC44FF1F10B502A804880B20002C10D167 +:1058B000496808784978090201430C48814209D1B6 +:1058C000022119800A4B59881170DB7800205BB2E5 +:1058D000537010BD074C0A20A142FAD10221198051 +:1058E000034B998811705B79F0E7C0466E2A00007F +:1058F000AC64FF1F6F2A0000F7B5150008AA1688D0 +:105900004A680F4F14785278120222430A24BA428E +:1059100014D10122DBB2019200962A0005F0E4FEC8 +:10592000041E0BD1074B1B68002B07D068782A7820 +:105930000002104342425041013098472000FEBD12 +:10594000022900002467FF1F30B5012503790400F8 +:10595000BFB02B4227D01549408805F031FA2842C4 +:105960000DD06A46124B69465B8D1380022353802B +:10597000104B5B8893806088002202F013FB0E4975 +:10598000608805F01DFAC0070DD56A460B4B6946C5 +:105990001B88138002235380064B9B88938060886A +:1059A000002202F0FFFA3FB030BDC0461C67FF1F67 +:1059B0002845FF1FAC64FF1F1467FF1F8245FF1FB0 +:1059C00010B5074C0749200005F0B0F92000064942 +:1059D00005F0ACF90721054A054805F069F910BD45 +:1059E000FFFF00001C67FF1F1467FF1F44C000116A +:1059F0002845FF1F10B5024803F056F910BDC046F8 +:105A000049590011082110B50E240A4AC307DB17B3 +:105A10000B405179A1430B4353710223184202D02A +:105A200051790B4353710423184202D051790B432F +:105A3000537110BD9945FF1F0A2110B50F240A4A62 +:105A4000C307DB170B401178A1430B431370830787 +:105A500003D5062311780B431370400703D50123A8 +:105A600011780B43137010BD9945FF1F10B5054BFE +:105A7000102419780A00A243002801D022000A430A +:105A80001A7010BD9945FF1F662110B52024134BD5 +:105A9000DA788A431979DA70A14324190C431C710E +:105AA000542812D960200143197102210A43DA7087 +:105AB0000422D9780A43DA702022D9780A43DA70AE +:105AC0004022D9780A43DA7007E04428EDD8342818 +:105AD000EED82428F0D81428F2D810BD9945FF1F1D +:105AE000F8B50E23384C0500627926791A40113337 +:105AF0009E43364B62712671984204DD6E23E3713A +:105B00006C3BA371F8BD324B984203DA1A23E37160 +:105B10001C33F6E700232F49A371E37183B25918B0 +:105B20002D4889B2814224D9681D0A2100B206F0AD +:105B300013F92A4B00B29D4244DC05006421280081 +:105B400006F00AF90A2100B206F026F8244F09B23D +:105B5000E2797B5C1343E3710A21280006F0FCF82C +:105B60000A2100B206F018F81D4F09B27B5CA27939 +:105B70000EE001210A436271002D1CDA5B421DB266 +:105B80000423A371A379632DD8DCFA22092DE3DC69 +:105B90001343A3710A21280005F0FEFF0F22114FC5 +:105BA00009B27B5C1A4016431F2293436279267127 +:105BB00013436371A6E7FA239B009D42E2DB0123B6 +:105BC000E371BBE70500FAE79945FF1F1B4E000094 +:105BD0001DFCFFFFCB070000960F00000A27000006 +:105BE0008EC000117EC0001170B51B4D04002B79D2 +:105BF00000290DD0802213432B71632C0BDD7623FB +:105C00006A7813436B704023AA781343AB7070BD5E +:105C10007F221340F0E72300093306DA58236A781D +:105C200013436B70AA786C23EFE70C4E002C0ADA52 +:105C30002023644224B26B700A21200005F0ACFFDF +:105C400009B2735CE2E7092CF6DD0A21200006F0B8 +:105C500083F800B2335CEEE79945FF1F6EC0001178 +:105C6000F8B50A4F05003B780E00002B0CD0084C0D +:105C70002000FEF72DFC33002A0020003978FEF7C3 +:105C80001BFD2000FEF762FCF8BDC0463167FF1F18 +:105C9000A445FF1F70B50A4E0A4D082231002800A6 +:105CA00006F09AF8002809D0074C31000822280095 +:105CB00005F062FE09212000FFF7D2FF70BDC0464B +:105CC0009945FF1F2967FF1F2867FF1F102110B587 +:105CD0000D4B1A780A401A70DA7856310A40DA7099 +:105CE000602219791140223ADA71083A9A71AA327F +:105CF0005A71DF3A0A431A7106225A7029329A7091 +:105D0000FFF7C8FF10BDC0469945FF1F10B500281A +:105D100024D0134C0A210223E05E06F01DF800B2E5 +:105D2000FFF7DEFE0423E05E642106F015F8012192 +:105D300000B2FFF759FF207AFFF7A6FE0320FFF716 +:105D400061FE0020FFF778FE064B187805384342C5 +:105D50005841C0B2FFF78AFEFFF79CFF10BDC04656 +:105D6000AC64FF1F1167FF1F70B500250A4C2000AF +:105D7000A571FEF7ADFB10233E212000074AFEF778 +:105D80009BFCA84200D13E35054B20001D70FEF75C +:105D9000DDFB0123A37170BDA445FF1F5EC0001190 +:105DA0003167FF1F0200F0B501270A480A4E51185B +:105DB0008B1A002B00DCF0BD0824157843086840DE +:105DC00038404000805B013C58406D08002CF5D104 +:105DD0000132EDE7FFFF00009EC00011F0B5002585 +:105DE0000F269D4200DBF0BD4C5D07094440344066 +:105DF000A400A05801357840F3E70000F0B589B061 +:105E00006A460D000B000F27110010351C78013376 +:105E1000260024093E40167054700232AB42F5D180 +:105E20002023024AFFF7DAFF09B0F0BDA4C0001139 +:105E3000F0B54E780B7889B036020C00170001904F +:105E40001E43012A61D9954B9E4200D877E0013369 +:105E50009E421CD1062A17D1CA788B7812021A43A7 +:105E60000B791B0413434A7912061A438C4B5A616F +:105E700000221A705A808B4A5A608B4A9A608B4A69 +:105E8000DA60002009B0F0BD88225205EEE7884BA9 +:105E90009E423CD182498B78002B00D0F6E00C2A40 +:105EA00031D10F22A3789343E2781202134322796F +:105EB000120413436279120613434B60E279A0790E +:105EC00012020243207A00041043627A120602434F +:105ED000CA60E27AA07A1202024376484A8183427B +:105EE00008D804236E49142201980B7005F044FD74 +:105EF0001420C7E71201D21889235B059A42F0D813 +:105F000001238B70BDE7022AFAD00523EAE76A4A2B +:105F100001239642E6D1FFF733FA052F0CD9E37837 +:105F2000A2781B021343227912041A4363791B06D9 +:105F30001343624A0393136005F016FDA1E7584D21 +:105F40002B78002B9DD1AB78002B00D1A0E02B89C2 +:105F500001339BB20093B34200D091E0132AD4D90D +:105F6000CF7C8B7C3F02122120001F43FFF71AFFDA +:105F7000874200D08EE0002E3DD1E378A2781B024C +:105F800013432279E96812041A4363791B06134309 +:105F900003930A228B4212D1FF23A370E370237173 +:105FA00063716B89002B09D1E37B227C1B021204F5 +:105FB0001343A27B13431B0901336B8100226B89BE +:105FC000002B8ED0002A67D1686837013818000B83 +:105FD0006B6900030390984205D9686105F0DCFC09 +:105FE000EB780133EB7068681022A11C381805F0BB +:105FF00013FD2E8145E76F89009A7B1E9BB2934269 +:106000003AD1E278A37812021A43237905A81B0437 +:10601000134362796C6812061A43EB68009203928C +:10602000211D0C22049305F0A7FC0120260004A9E1 +:1060300040421036FFF7E2FE013F012F17D1009AD0 +:106040000B232861824200D04CE704221C49200027 +:1060500005F0E2FC042203A9686805F085FDE96803 +:10606000039AFF23914200D13CE7F73B3AE7310026 +:10607000FFF7C4FE1036DFE70923B742A4D831E7A3 +:10608000009BB34200D9FCE607232BE7022329E754 +:10609000032327E7062325E70A2323E7FFFE000063 +:1060A000AC45FF1F00000111FFFF000050485936AA +:1060B00001FF0000FFFF001102FF000034F000406C +:1060C000B845FF1F10B5034C0B000122210000F062 +:1060D0006BFA10BD856200110B8870B506000D00CB +:1060E0000224162B11D92B000322094900F05CFA77 +:1060F000041E0AD1074B2A881B88191C934200D919 +:10610000111C300089B200F0EFFA200070BDC046CB +:10611000B16200118A67FF1F10B54A780400013A86 +:106120000B000220012A07D80A78002A04D0052291 +:106130002000024900F038FA10BDC046DF620011AD +:106140000A7810B50B0004000220002A04D00722B0 +:106150002000024900F028FA10BDC0468B630011F0 +:106160000A7810B50B0004000220002A04D009228E +:106170002000024900F018FA10BDC046F16300117A +:1061800010B5034C0B000B22210000F00DFA10BDDE +:106190002164001110B5034C0B000D22210000F00A +:1061A00003FA10BD9364001110B5034C0B000F22CD +:1061B000210000F0F9F910BDED6400110A7810B566 +:1061C0000B0004000220002A04D011222000024902 +:1061D00000F0EAF910BDC046FD640011002310B5BF +:1061E0001322190000F0E0F910BD000010B5034CB7 +:1061F0000B001722210000F0D7F910BD4F650011E8 +:10620000002310B51922190000F0CEF910BD0000CE +:1062100010B5034C0B001B22210000F0C5F910BD86 +:1062200089650011F7B584890D0006000121002C55 +:1062300022D000238268D3561778002B1EDA0C2C4C +:106240001AD90C3CA4B2131940880093230002F021 +:1062500086FE431E984101307B06DB0F6B703F23A7 +:10626000013C1F40A4B22870AF70AC80002C07D056 +:10627000B3680133AB6000210800FEBD0020EBE7EE +:10628000AC60F8E70B7803704B8843704B881B0AAF +:1062900083700B79C370042070470420022B06D151 +:1062A0000020537811781B02009A0B43138070472B +:1062B0000B8803700B881B0A437002207047042070 +:1062C000009983420AD1537810781B0203430B8054 +:1062D000D37890781B02034300204B807047F8B5B9 +:1062E0000D004B7801240021461C03702B788B4253 +:1062F00001D82000F8BD6B78B01C4F1C012B10D1C9 +:10630000890069184B88022233704B88B9001B0A38 +:106310007370691805F0B8FC04360434A4B2F9B2FD +:10632000E4E7122359436B185A88043132705B88B2 +:1063300010221B0A7370691805F0A6FC123612347D +:10634000ECE770B5049D14001E00052B01D8042055 +:1063500070BD637812781B0213432B80E378A27818 +:106360001B02134302226B802A71211D681D063E09 +:1063700005F08AFCB2B22A81F02AE8D82800A11DD3 +:106380000A3005F081FC0020E2E7002310B50A780E +:106390009A4201D8900010BD9A008A18548801339F +:1063A00004705488DBB2240A447094888470928804 +:1063B000120AC2700430EAE710B51100029C062BE5 +:1063C00004D004201022142B01D010BD022222710F +:1063D0004B7808781B0203432380CB7888781B0214 +:1063E000034363800431601D05F04EFC0020ECE7A0 +:1063F00010B50C788B7804315C43E4B20370220052 +:10640000013005F041FC601C10BD0420022B06D1B8 +:106410000020537811781B02009A0B4313807047B9 +:1064200010B50C000A88023105F02EFC208810BD42 +:1064300070B504000D0004981100012B01D8042050 +:1064400070BD167852781202324302800200F83290 +:1064500055701470E825002C00D10C35023B9AB21F +:106460004280AA42EBD80231043005F00DFC002036 +:10647000E6E70420009983420AD1537810781B0282 +:1064800003430B80D37890781B02034300204B809A +:10649000704710B50C000A88023105F0F5FB208822 +:1064A00010BD000070B501211E000420049C0E40A8 +:1064B0000B4218D1CB40DDB28D4214D90A49DBB270 +:1064C000098899420FD32300F6331D70330058001A +:1064D00011184978165C0902314301332152D9B2AF +:1064E0008D42F4D8002070BDCC45FF1F10B50C00C4 +:1064F0000A88023105F0C8FB208810BD10B50C7861 +:106500008B7804315C43E4B203702200013005F063 +:10651000BBFB601C10BD10B511000298032B01D805 +:10652000042010BD14785278043B120222430280EA +:10653000CA788C781202224342809AB28280F22A70 +:10654000EED80431063005F09FFB0020E9E710B5D6 +:106550000C000B8803700B881B0A43704B888370F8 +:106560004B881B0AC3708A880430063105F08CFB07 +:10657000A088043080B210BD0420012B03D100207C +:106580001378009A1370704710B50C000B880370D5 +:106590000B881B0A43704A880230043105F074FBF3 +:1065A0006088023080B210BDF0B589B003931E4BF5 +:1065B000029242000700D05A019102F020F8132500 +:1065C000061E2DD0029B01240370019B002B04D0DA +:1065D000001903999847001984B26B461B7A5BB285 +:1065E000002B0FDA1021380002F01CFB19250028BF +:1065F00013D130003219E1B202F066FC051E0CD155 +:106600000C34A4B2042304AA380005A9938006968A +:10661000948101F0AFFD051E02D0300005F0DCF9D9 +:10662000280009B0F0BDC0468867FF1F70B505009F +:106630000C0000280CD00020814209D0102220003C +:10664000044905F021FB01202B7823736B786373D9 +:1066500070BDC046E4C00011F0B506000D00170083 +:106660001C0085B002291BD00020102907D1022B65 +:1066700007D0102B03D115E00020102C08D005B056 +:10668000F0BD69463800FFF7D1FF2A0069460BE0EC +:1066900069463000FFF7CAFF22006946380004E06F +:1066A000022BE9D12A003900300005F07DF9E6E738 +:1066B000031CF72800D9F723032008499AB2013AAE +:1066C0000B80D317034006499B189B100B80D30FF8 +:1066D00004499B185B100B807047C046D045FF1FD4 +:1066E000CE45FF1FCC45FF1F034B1B888B4202D3B7 +:1066F000024B4000C1527047D045FF1F8867FF1F03 +:10670000014B4000185A70478867FF1F1722014B42 +:106710001A8070478867FF1F70B505000E2005F0CE +:106720004BFB041E13D0D02303700023062283707A +:1067300007494570033005F0A7FA064B2100DA8AB5 +:1067400062811B7E2373044B187805F05DFA70BDDF +:10675000A467FF1F9467FF1F2046FF1F262803D84A +:10676000024B4000C05A70470148FCE7D245FF1F6A +:10677000FFFF000070B506000C00094D1C2200212F +:10678000280005F089FB074B1E70074B1C7005F0B5 +:106790002BF90123002801D0002312202B7070BD9B +:1067A0009467FF1F2046FF1FB567FF1F70B50500E8 +:1067B0000D4C0800E260A16010220021656005F028 +:1067C0001BF9012803D11021A06802F058FD102206 +:1067D0000021280005F010F9012803D1102160687C +:1067E00002F04DFD70BDC0469467FF1F70B5041EDA +:1067F00005D1002903D006220D4805F045FA0D4BBE +:106800001D78012D11D1002C05D102221A7005F03E +:1068100033F9280070BD00221A70074B1B78FF2B3C +:10682000F7D02000FFF778FFF3E70025F1E7C04637 +:10683000A467FF1F9467FF1F2046FF1F030010B5CA +:10684000002801D1002010BD00780B4A002803D198 +:106850005988D1821B7913761378022BF2D1002349 +:10686000984200D103331370044B1B78FF2B01D0E7 +:10687000FFF752FF0120E6E79467FF1F2046FF1F46 +:10688000002911D000280CD04B79012803D14022D7 +:106890005242134303E03F221340032802D0012059 +:1068A0004B7170474022F4E70800FAE770B5094DD4 +:1068B0000100287800280BD0074C0622200005F0A4 +:1068C000E3F921002878FFF7DBFF200004F0ECFF5C +:1068D00070BDC046B467FF1F8E67FF1F00290AD036 +:1068E000012808D13F224B799343C02B03D0403B72 +:1068F0005A425341981C704770B5174D06002B78CB +:10690000FF2B15D00A2005F057FA041E10D0D02313 +:106910000370C83B8370114B11491B784670C370DC +:106920000622043005F0B0F92100287805F06CF952 +:106930000C4B1B78012B0DD10B4B1B68002B03D08C +:106940009B68002B00D09847084B04211878084A10 +:1069500005F0F2F970BDC0462046FF1FB467FF1F67 +:106960008E67FF1FB067FF1FDC67FF1FE067FF1F19 +:1069700060EA0000014B98687047C0469467FF1FAB +:10698000014BDB68186870479467FF1F074B10B511 +:10699000DA68136801331360054B1878FF2803D0B9 +:1069A0008021C90105F048F810BDC0469467FF1F5B +:1069B0002046FF1FF7B50E0002F0C8F8051E1CD0D8 +:1069C0000E4B06621F78002F00D10778AB7910209C +:1069D000019305F0F1F9041E0FD0D0230380C73BCB +:1069E0008370019BE91DC3700622043005F04CF949 +:1069F00021003800E66005F007F9F7BD1E46FF1FCD +:106A0000014B18787047C046B467FF1F054B00283C +:106A100005D1054B1A78054B002A00D1014B18000F +:106A20007047C046A467FF1FB467FF1F8E67FF1F34 +:106A3000014B58687047C0469467FF1F024B1868A7 +:106A4000431E9841C0B27047B867FF1F421E030043 +:106A50000120152A03D9FF3B5A425341D8B270474F +:106A6000F0B51C0000230E0085B0039002920B705D +:106A7000029A934201D3002019E0E55C5A1CD2B27D +:106A8000002DF8D0029851198142F4DC0233DFB2B4 +:106A9000A35C18000193FFF7D9FF002807D0013D40 +:106AA000019A0399EBB233708A4202D1E01905B022 +:106AB000F0BDDB19DBB2DBE710B50C0002F09EF88D +:106AC00003001220002B03D02100588805F05CF849 +:106AD00010BD000070B50E4D84006359002B15D019 +:106AE000186A002801D004F0B7FF2B59586A002813 +:106AF00001D004F0B1FF2B59986A002801D004F0AE +:106B0000ABFF285904F0A8FF00232B5170BDC046ED +:106B1000C467FF1F1C4B70B504000E00150099429E +:106B20000AD11A4B1B68002B01D1122070BD1B68C3 +:106B3000002BFAD09847F9E7154B994215D1134B22 +:106B40001B68002B0AD01B68002B07D09847002831 +:106B500004D1104B1C70104B1D70E7E7290020007A +:106B6000FFF7AAFF0028E1D1F3E7080001F0EEFFEC +:106B70000028DAD003780320A342D7D129003000BF +:106B800005F002F8D2E7C046FEFF0000C067FF1F15 +:106B9000FFFF0000BD67FF1FBC67FF1FF7B50400C4 +:106BA000808801F0D3FF0025A84203D00578A08893 +:106BB00002F008F81C4E3378002B1FD0AB421DD1D9 +:106BC0001A4B28001978FFF777FF002818D0002308 +:106BD0003370A3790820A778A688019305F0ECF814 +:106BE000011E0DD0D0230370CA3B8370019B4770F8 +:106BF00086808371280005F007F801E0002DE8D1B8 +:106C0000A0880B4B8200D358002B01D0FFF762FF06 +:106C10001721A088FFF768FDA08801F027FDA08854 +:106C200001F0FEFDF7BDC046BD67FF1FBC67FF1F3B +:106C3000C467FF1FF0B587B01D000CAB1B880700B1 +:106C400001930DAB1B88142002930EAB1B8816001A +:106C500003930FAB1B880091049310AB1B88059323 +:106C600005F0AAF8041E1AD0D0230370CB3B47705E +:106C70008370C670062229000430002D11D005F063 +:106C800003F8019B21006381029B0098A381039B71 +:106C9000E381049B2382059BA37404F0B5FF07B036 +:106CA000F0BD05F0F9F8ECE7F7B5009308AB1B88E9 +:106CB00007000C200D001600019305F07DF8041E5E +:106CC00013D0280001F042FF00280FD00078D02315 +:106CD0002370C93BA370009B21002381019B677037 +:106CE000A580E680638104F08FFFF7BD014B187823 +:106CF000EDE7C0462046FF1F13B5040064890389F1 +:106D0000C2888188C0780094FFF7CEFF13BD0000D1 +:106D100010B5044C2068002803D004F09DFE002329 +:106D2000236010BDC867FF1FA122F0B581889200C3 +:106D30004A43384B384F1B6804009B189D22920031 +:106D40009B18827989B01A603B68002B5FD01D7850 +:106D5000324B1B68002B04D05B68002B01D0002055 +:106D60009847260008363100E079FFF7B7FD237D0C +:106D7000E0710200E0780493638A29000393238A78 +:106D80000293E3890193A38800933300FFF752FF36 +:106D9000E378002B0BD1E289A379A18802920196B6 +:106DA000E27928000092012201F0DAFEE0703B68EF +:106DB000002B20D0FFF7ACFF194D287800281AD0FF +:106DC000184B1978FFF778FE002814D02B78E67856 +:106DD00008200793A78804F0EFFF011E09D0D023F5 +:106DE0000370CA3B4670837087808671079804F0F1 +:106DF0000BFF00232B701721A088FFF775FCA088DC +:106E000001F034FCA08801F00BFD09B0F0BD064B89 +:106E10009DE7C0463409FF1FC867FF1FDC67FF1FDF +:106E2000BD67FF1FBC67FF1F2046FF1FF8B50700A7 +:106E300008000E0001F08AFE041E18D02620FFF77D +:106E40008DFC051E00D12578062004F0B5FF041E38 +:106E50000DD00021062205F01FF8D0232370C23B7D +:106E600021006770A370A680E8B204F0CDFEF8BDE3 +:106E7000F0B585B001930AAB1B78070002930BAB0A +:106E80001B7808000D000092039301F05FFE061EC0 +:106E900022D0102004F090FF041E1DD010220021EB +:106EA00004F0FAFF2620FFF759FC002800D13078C3 +:106EB000D0232370C13BA370009B21002372019B50 +:106EC00067706372029BA580A372039BC0B2E372DA +:106ED0000C9BE36004F098FE05B0F0BDF7B50D0023 +:106EE000019001F033FE071E20D00E2004F064FF55 +:106EF000041E1BD02620FFF731FC061E00D13E7871 +:106F0000D0232380C53B0622A370F91DE01C04F0AA +:106F1000BBFE019B2A0063810123DD401A401D4016 +:106F2000210022736573F0B204F06EFEF7BD00001D +:106F3000F0B585B0029010000D0017000A9E039373 +:106F400001F004FE041E31D0029B002B2ED1039BC6 +:106F500002795B0724D5122313430422002E08D1A3 +:106F60000B99002905D10C99002902D10D9900290E +:106F70001AD01A430D9B2271002B00D0C9E0002EBD +:106F800000D1CFE0002D00D0CCE0606A002801D015 +:106F900004F062FD1C21300004F0BEFD606205E0DB +:106FA00002239A430E33D7E793432371654BBA000C +:106FB000D458002C00D1AAE0002E10D0236A002B58 +:106FC00003D11C2004F088FD20625E4BBA00D35828 +:106FD000186A002803D01C22310004F055FE0C9BD7 +:106FE000002B12D0574CBB001D596B6A002B03D1EC +:106FF000162004F071FD6862BB00E358586A00284F +:1070000003D016220C9904F03FFE0D9B002B11D0EB +:107010004C4DBC006659B36A002B03D1142004F018 +:107020005BFDB0622B59986A002803D014220D9999 +:1070300004F02AFE380001F089FD051E67D0414B9F +:10704000BA00D358002B62D01A6A3420002A00D12B +:107050001C389A6A002A01D0143080B20B9A002A98 +:1070600001D01C3080B25B6A002B01D0163080B298 +:1070700004F0A2FE041E4AD01822002104F00CFFE6 +:107080002620FFF76BFB0190002801D12B7801939C +:10709000D0232370029B200063700A23294EA37023 +:1070A000039BBD00A371AB59A780196A1830002952 +:1070B00005D01C22A06004F0E7FD20003430735995 +:1070C000996A002907D0030014221433E060029368 +:1070D00004F0DAFD02980B9B002B08D003001C2261 +:1070E0001C330B992061029304F0CEFD0298735972 +:1070F000596A002903D01622606104F0C5FD6B4671 +:107100002100187904F080FD3800FFF7E3FC05B09A +:10711000F0BD10220D9B0D991B69A018236204F08D +:10712000B3FD2CE70B9B002B00D13FE7012D00D0D6 +:107130003CE7606A002801D004F08EFC1C210B980B +:107140002AE7C046C467FF1F10B5044C206800281A +:1071500003D004F081FC0023236010BDB867FF1F3B +:107160000B4B07B51A68002A01D100200EBD6946F5 +:10717000531C012012780731FFF772FC0028F4D06D +:1071800002780123100018401A42EED0EEE7C04604 +:10719000D467FF1FF0B51F4F01203B6887B0002B5D +:1071A00025D09B78059300F0B3FB002821D00A205E +:1071B000FFF7D4FA04000B20FFF7D0FA164B0500B6 +:1071C0001E78731E9E413B68F6B2191DD878FFF7F2 +:1071D00057FB3B682900DA7A043303929A790193CA +:1071E0000292009033002000059A04F04DFB07B096 +:1071F000F0BDFFF7B5FF002805D00620FFF7AEFA77 +:1072000004000720D8E70820FFF7A8FA04000920A7 +:10721000D2E7C046B867FF1FB467FF1F70B50A4EBC +:10722000040033780D00FF2B0DD0042004F0C4FDC2 +:10723000011E08D0D0230370CE3B45708370C4700C +:10724000307804F0E1FC70BD3046FF1F70B50400DB +:1072500006200D0004F0B0FD011E0AD0D0230370FB +:10726000CD3B8370054B44701B688580187804F013 +:10727000CBFC002C01D0FFF767FF70BDB867FF1F84 +:10728000F8B5264F06003B680D001124002B05D1F0 +:107290000522234B1B78134202D112242000F8BD93 +:1072A000204A10241268002AF8D01278002AF5D05B +:1072B000DB0719D52B789A1E012A1AD80C2004F066 +:1072C0000BFC132438600028E8D000230A22437006 +:1072D00029000670023004F0D7FCFFF75BFF041EA4 +:1072E0000AD0FFF731FFD9E700F012FB0028E1D107 +:1072F000E4E7002BE2D0D0E70B4B1B78032BCDD17A +:107300001D20FFF72BFA094B18800028C6D0084B28 +:1073100004211878074A04F00FFDBFE7B867FF1F84 +:10732000B567FF1FD467FF1FB467FF1FB267FF1F5A +:10733000E067FF1F60EA0000F7B50193194B1400E6 +:107340001A78052306000F0012201A4221D00129C5 +:1073500020D1154B1D68002D1BD002201F2C18D8E2 +:10736000002C02D0019B002B13D0104B1F221E704B +:107370006E1C0021300004F08FFD019922003000C6 +:1073800004F082FC310020002C70002F06D004F0A5 +:1073900093FCFEBD064B12201D68DCE704F014FBD5 +:1073A000F7E7C046B567FF1FD467FF1F3046FF1FD2 +:1073B000D067FF1FF8B50F4E12243368002B17D08B +:1073C0001B780F3C834213D100250B4F02213878E4 +:1073D00004F0BAFC094B042138781D8004F0B4FC99 +:1073E000074B28001D8033685C7004F025FD040005 +:1073F0002000F8BDB867FF1FE067FF1FCC67FF1FC5 +:10740000B267FF1F70B5012823D11B4C2388002BC6 +:1074100003D01A4A1578002D07D0194B1B68002B92 +:1074200002D01878FFF7C6FF70BD3B2B02D93C3B5A +:107430002380F9E7134E0221307804F085FCFA220C +:107440002388920002215A43307804F0FDFA258007 +:10745000EAE70B4B1B68002BE6D00B4B1B785B0756 +:10746000E2D5084B0221187804F06EFC0022024B92 +:107470001A80FFF769FED7E7CC67FF1FB067FF1FD1 +:10748000B867FF1FE067FF1FB567FF1FF8B51E4D08 +:107490002868002803D004F0DFFA00232B601B4E7D +:1074A0003068002803D004F0D7FA00233360184F67 +:1074B00005243B7818002040234221D0154800F0D5 +:1074C0002BFA3B78234213D0202004F005FB2860E0 +:1074D000002813D02022002104F0DEFC202004F03C +:1074E000FBFA041E306005D02022002104F0D4FCF9 +:1074F000002004E0286804F0AFFA2C601320F8BDE7 +:1075000000F00AFAF4E7C046D467FF1FD067FF1FF8 +:10751000B567FF1F2446FF1F10B50A4C23681A1ECB +:107520000ED0002808D10130587004F085FC0028E6 +:1075300005D02368002B02D00021FFF787FE01222F +:10754000100010BDB867FF1FF7B5274E0500336860 +:107550000191181E21D05C78244F012C30D1FFF707 +:10756000FFFD002825D02000FFF7F8F8040041288F +:1075700014D91F4B022118781E4A04F0DDFB1E4B64 +:107580003C3C1C80022233685A703B78002B14D19B +:1075900028000199FFF75AFE0120FEBDFA22920051 +:1075A0004243002AEED0124B0221187804F04CFA24 +:1075B000E8E7FFF7D3F80200F3E700233B70EBE7BF +:1075C0003B78002BE8D1032004F0F6FB011E08D025 +:1075D000D0230370CC3B457083703368187804F077 +:1075E00013FBFFF7B1FDD7E7B867FF1FB067FF1FB9 +:1075F000E067FF1F60EA0000CC67FF1F10B5174966 +:10760000838802008B4220D011D815498B4217D0B5 +:10761000144900205B1899B2012907D892681178A3 +:107620005A425341D8B2FFF7F9FD012010BD0E4A6E +:1076300000209B1807229BB29A424041C0B2F5E756 +:1076400083681878FFF768FFF0E7836899785A78BD +:10765000090218781143FFF777FFE7E70A200000D7 +:1076600006200000F8DFFFFFAFDFFFFF014B1870BF +:107670007047C0463146FF1F10B5064C207001F020 +:1076800041FA207804F018F90521207800F062FD15 +:1076900010BDC046E067FF1F0BB273B50D00002B95 +:1076A00000DBC4E0884B187804F09EFB041E0ED06B +:1076B0000378912B0FD0A22B00D1A1E0834B187837 +:1076C000FF2852D0210004F09FFA00284DD18020DD +:1076D0000002684076BD43780F2B76D013D8052B77 +:1076E00070D00E2BEAD18088794B98422BD8794BF9 +:1076F00098421BD8784B9842E0D1A3681878591C5F +:10770000FFF774F838E03E2BD8D18378032B74D080 +:107710006CD8012B6ED0022BD0D1704B1B68002B84 +:1077200023D05B68002B20D098471EE06C4BC0181C +:107730000C28C3D804F078FA1DC2C2150BC20B0B7B +:107740000B3223C23C00674BC0180728B6D8664BE3 +:107750001B68002B09D01B68002B06D0200098471F +:107760000AE0A3681878FFF7C7F8200004F0CCFA05 +:10777000ADE7A068FFF762F800289FD0F5E7A3689F +:107780001B78002BF1D0554B1B68002BEDD01B68EC +:10779000002BEAD0210055489847EDE74F4B1B6876 +:1077A000002BE2D01B68002BDFD021005048F3E70C +:1077B000504B1B68002BD8D05B68002BD5D0210024 +:1077C0004348E9E7FFF7EAF9CFE780884A4B984258 +:1077D00003D04A4B984200D070E7464B1B68002B01 +:1077E000C3D05B68002BC0D02100D5E7153B012B2F +:1077F000BBD963E7FFF798FAB7E7FFF77DFAB4E77D +:107800003F4B1B78042B07D100236A461380017974 +:10781000408800F0C5FCA8E7364B1B68002BA4D0BD +:107820005B68002BA1D00100364898479DE70124F2 +:1078300021420AD0294B1B68002B04D05B68002B27 +:1078400001D000209847012043E78B070AD5264B3B +:107850001B68002B04D05B68002B01D020009847E8 +:10786000022036E70421280008400D4200D131E70C +:10787000254E3388002B21D0013B9BB23380002B57 +:107880001AD1FFF7DBF800280AD0204B1C70164BEA +:107890001B68002B04D05B68002B01D020009847A8 +:1078A000FFF7C6F8694601F001FD6846FEF7FEFFE6 +:1078B0001D20FEF753FF308004200AE7024B1878A2 +:1078C00004F042FAF8E7C046E067FF1F3146FF1FA9 +:1078D0000E2000000120000009100000D867FF1FE3 +:1078E000FEDFFFFFAFDFFFFFDC67FF1F0C200000A4 +:1078F0000B200000C067FF1F0D20000013200000B8 +:10790000B567FF1FFFFF0000B267FF1FB067FF1FD3 +:1079100010B501F09BF910BD014B18607047C046CF +:10792000DC67FF1F0B880020162B01D817230420CB +:10793000014A13807047C0468A67FF1F00207047C6 +:10794000074A03001188814207D09188002099429C +:1079500002D101308000101870470020FAE7C046BD +:10796000E867FF1FF0B58F7806000D00C7B01E2F27 +:1079700015D1FFF7E5FF051E03D10024200047B015 +:10798000F0BD00223B003100C078009200F0B2FB55 +:107990000400A81C00F0D3FBFF23EB70EEE7264B9E +:1079A000062403931B78FF2BE8D0182FE6D87B081A +:1079B000224A013BDB0002929A589446002ADDD00D +:1079C000029AD3185B68002BD8D00878002802D11F +:1079D0004B78012B02D10624122FCFD107AFAB88F1 +:1079E000697800976446AA68A047041EC6D1AB78A0 +:1079F000029A5B08013BDB00D318390030005B685A +:107A00009847041E0BD1AB78042BB6D0039A3100F3 +:107A100010782200009700F06DFB0400AEE76A7852 +:107A2000002AABD1AA7805A93B88087130000A70FA +:107A30004B80FEF747FBA0E73446FF1FF4C0001160 +:107A40001D4B37B5050098420BD000290AD1FFF72E +:107A500077FF002805D11948FFF772FF002800D0F2 +:107A6000058037BD01291AD1FFF76AFF041EF8D03F +:107A700001235B420380A378FF2BF2D0FE2B07D0BB +:107A80000023E0781422009329001E3300F032FB1B +:107A9000A01C00F054FB01235B426380E1E7022954 +:107AA000DFD1013901F0BEF80028DAD12800FFF754 +:107AB00047FF041EDFD1D4E7FEFF0000FFFF0000F8 +:107AC000022210B5074B52421A80074801325A80F1 +:107AD0009A80DA8000F07EFA044801F025F8002050 +:107AE00010BDC046E867FF1F65790011417A00119B +:107AF0000388F7B50400002B02D102252800FEBD43 +:107B000042680221137825485268FEF7A5FD002837 +:107B10002ED0234F01253A88002AEFD080232188D8 +:107B20005B0201259B1A9942E8DC0C2003F0D4FF8C +:107B3000061E31D03B8822889C4600231800019500 +:107B400061469DB2491989B2AA421BD8002801D0CA +:107B500062443A8000233000082208C0210004F06B +:107B600093F8104A1368002B13D100251660C5E75F +:107B70006268022113780C485268FEF76DFD0028F8 +:107B8000C7D1BAE760681D014019418101330198EE +:107B9000D6E71A001B68E6E71325AFE762C10011BC +:107BA0003246FF1FE467FF1F60C10011014B1870D0 +:107BB0007047C0463446FF1F14230A0010B51A4010 +:107BC000194204D00122102101F048F810BD4B06E3 +:107BD000F9D4012088434000F8E710B514008B0663 +:107BE00004D50122102101F039F810BD08230A0044 +:107BF0001A40194202D14BB2002B0FDA102101F0CA +:107C00002DF8002808D02300F9331B78002BECD086 +:107C1000F8342378012BE8D10020E6E70320890718 +:107C2000FAD4E2E7F0B51F00184B85B01C6801904C +:107C300002910392002C27D1200005B0F0BDA56869 +:107C40003301ED186B89019A934211D3029A934242 +:107C50000ED8002F04D10A9B002B10D12C00EBE78B +:107C60003B002978039A6868FEF7F6FC0028F2D1F9 +:107C70000136B6B2A388B342E1D82468DAE7A36834 +:107C80000A9A5B891380E9E70026F3E7E467FF1FA0 +:107C900037B50C000A8849880123914217D3002A7E +:107CA00015D0651D23792A0002210A48FEF7D4FC6D +:107CB000102300280BD023796188208800242A0013 +:107CC0000094FFF7AFFF0A23A04200D02300180062 +:107CD0003EBDC04662C1001113B50A00088849883C +:107CE000012388420BD8002809D0002413790532DB +:107CF0000094FFF797FF0A23A04200D0230018004A +:107D000016BD13B50A0008884988012388420BD89C +:107D1000002809D00024137905320094FFF782FF70 +:107D20000A23A04200D02300180016BDF0B58BB086 +:107D300003904A8808880E000123824255D3002808 +:107D400053D00023012704AC237000227188130054 +:107D50000092FFF767FF051E3ED02078002835D13E +:107D60002B78022B18D167706A8983000130E318E1 +:107D700080005A8069680222201803F085FF23786A +:107D80000133DBB22370042B19D93B006889013021 +:107D900080B2002BD9D01FE0022363701223584316 +:107DA0006A89231804305A8069681022201803F069 +:107DB0006BFF23780133DBB22370002BE5D10C4A33 +:107DC0006B899B185A425341DBB2DFE76378012B82 +:107DD000E4D12B78022BC7D022780A23002A04D0C2 +:107DE00021000398FEF798F9002318000BB0F0BDAE +:107DF0000100FFFF0F4BF0B504001868002816D0F3 +:107E000083685D89A54207D88288AE18B44203DA38 +:107E100012019A18934201D10068EFE71E005F89B2 +:107E20001036A74204D1002900D00D801800F0BD03 +:107E30003300EFE7E467FF1F70B505000C0008880A +:107E40000021FFF7D7FF03000120002B04D0220000 +:107E50002800197AFFF7C1FE70BDF7B50C000025A8 +:107E600001902300F6331B78AB4201D800200AE0D2 +:107E70006B00E65A00213000E718FFF7BBFF00282F +:107E800002D126800130FEBD017A0198FFF794FEF1 +:107E9000002802D03B882380F5E70135EDB2E0E70A +:107EA00010B5040008880021FFF7A4FF030001209B +:107EB000002B03D02000197AFFF77EFE10BD0000D2 +:107EC000054B1B68002B01D1180004E09A68528909 +:107ED0008242F6D198887047E467FF1FF0B50E27FD +:107EE000002687B0039302ABFF183E8005001F4BAE +:107EF00040891400984207D02B78013000976A68B7 +:107F000080B2FFF78FFE060002212B7818486A68BE +:107F1000FEF7A2FB00280FD06C892000FFF7D0FFEE +:107F2000002802D0013C0419A4B2039B002B00D00E +:107F30001C80300007B0F0BD02212B780D486A6824 +:107F4000FEF78AFB0028E7D102212B780A486A68ED +:107F5000FEF782FB002807D0002EDED03B88A3422C +:107F6000DBD17489013CDFE76C89DEE7FFFF0000AD +:107F700062C1001160C100115EC1001110B50C009A +:107F8000FFF7DEFC03000220002B0AD0002C00D0FB +:107F900023609B781720FE2B03D00138FF2B00D1E4 +:107FA000002010BD73B50D0001A904001600FFF7F5 +:107FB000E5FF172805D0002E04D129002000FEF788 +:107FC00027F976BD01221021200000F047FE00288D +:107FD000F3D0F6E7014B18607047C046F467FF1F07 +:107FE00037B56B469D1D010004000222280003F0F6 +:107FF000C3FC2B88B02B0ED12379122B09D123007F +:10800000FF339B78012B06D10121608800F0E0F856 +:1080100001E01B2BF8D037BD10B5054B04211870BB +:1080200000F098F8FFF74CFDFEF770FB10BDC0465E +:10803000F867FF1F0020F0B50BB20F0087B0834236 +:1080400034DA274B187803F0CFFE051E2BD00378C7 +:10805000A02B25D103AE3100FEF7E4F8041E0BD1AE +:10806000B378DB0724D51F4B06341B68002B03D0E5 +:108070003100688898470400A868002801D003F000 +:10808000ABFC002C08D1184A039B1340174A9342BB +:1080900006D0B3781B2B03D00121688800F098F834 +:1080A000280003F031FE80200002784007B0F0BDC8 +:1080B0000F4B1B68002B10D0310068889847041EB6 +:1080C000DAD07378002BD7D1B27801A90A704B802F +:1080D0000C716888FDF7F6FFCEE70624F1E7C0468D +:1080E000F867FF1FF067FF1F00FFFF00000112008D +:1080F000F467FF1FF7B50190822040000D001700C4 +:108100001E0003F059FE04001320002C12D0B023EF +:1081100020002370089BFC22677065802671083060 +:10812000002B08D0190003F0AFFD2100019803F0E7 +:108130006BFD0020FEBD089903F0AEFEF5E710B51B +:10814000041E06D00078FD2803D803F005FDFF23A8 +:10815000237010BD0A1F93B210B504000220032B38 +:1081600005D882400020024BD1529B189C7010BD54 +:108170001868FF1F0B8870B5043B04000D00022037 +:10818000032B0BD80121200000F04CFD030014202C +:10819000002B03D02900200000F0DEFB70BD0000A2 +:1081A00007B51300034A00920A00012100F02CFCDD +:1081B0000EBDC046DD83001107B501920322009277 +:1081C000024B0A00122100F049FC0EBD5B84001135 +:1081D00007B56B4601AA11800449D8800878063398 +:1081E000012802D1190003F09FFC07BDF967FF1FAA +:1081F0000C4B10B518700023FF210B4A138013811C +:1082000093819380094A53801370517293819372C2 +:10821000D174D3821375517703F066FD00F0FCF939 +:1082200010BDC0462868FF1F1868FF1FFA67FF1FB0 +:10823000F0B58DB06B46002003910C229B5E83420B +:1082400000DBB0E05D4B187803F0CEFD051E00D1D9 +:10825000A4E00378902B00D09DE006AF0100468893 +:10826000380000F013FA79680400002900D19CE07E +:108270003B88052B6ED13B89032B1CD905AC200014 +:1082800000F0A2F86288172A61D83989131D994233 +:1082900031D17968237804310291D90738D56078D3 +:1082A00000F08EF9071E06D0002303712378012BFE +:1082B00008D0132B23D0A868002800D178E003F061 +:1082C0008BFB75E06288029909A800F0A6F802907D +:1082D000380000F08BF909AA2378387A019200223D +:1082E00031000092029A00F012F9380000F064F9AF +:1082F000029B002BDFD0300000F080F9DBE7037831 +:10830000032BD8D16288029909A800F0D6F8DEE7DD +:10831000122B13D1029909A800F0B5F8021EEAD178 +:1083200027498B88002BC6D0887909A92378019129 +:1083300061780091310000F0EAF8BCE7002302AA5E +:1083400093833000617809AAFFF72AFFB3E71D4B3A +:108350000993F6E7042B02D09A1F012AABD8184ADA +:10836000043B9B00995A0029A5D0D218907831007F +:108370003A0000F0AEF800289DD13B88042B03D0D2 +:1083800001213000FFF724FF012C04D1A868002848 +:1083900001D003F021FB280003F0B6FC8020039BF2 +:1083A0000002434018000DB0F0BD012800D182E763 +:1083B00001213000FFF70CFFEDE7C0462868FF1FE2 +:1083C0001868FF1F010017000B7803704B7843708B +:1083D000CB788A781B021343438070470A880300D6 +:1083E00002700A88120A42700A88012A06D14A8855 +:1083F00082704A88120AC2700420704702208242AA +:10840000FBD14A8804309A704A88120ADA708A8846 +:108410001A718A88120A5A71EFE710B50400012018 +:1084200082420CD94B780A781B0213432380834283 +:1084300006D1CB788A781B0213436380002010BDDD +:10844000022BFBD1CB788A781B02134363804B79D4 +:108450000A791B021343A380F0E70B8803700B8893 +:108460001B0A43704B8883704B881B0AC3708B8830 +:1084700003718B881B0A4371CB888371CB881B0ADD +:10848000C3710820704703000120082A14D14A78DC +:108490000878120202431A80CA78887812020243CE +:1084A0005A804A790879120202439A80CA798879F7 +:1084B000120202430020DA80704710B50400012048 +:1084C000022A05D100204B780A781B02134323802F +:1084D00010BDF8B5060010200F00150003F06CFC6D +:1084E00004000120002C0ED0A0230C2229002380A0 +:1084F0006780201D002D07D003F0C6FB210030004F +:1085000003F082FB0020F8BD03F0C6FCF6E7F7B5E8 +:108510001E00009008AB142017001D78019103F095 +:108520004BFC041E12D0A2230370019B47704380B2 +:10853000099B057146710C220830002B07D01900E9 +:1085400003F0A2FB2100009803F05EFBF7BD099940 +:1085500003F0A2FCF6E737B5041E0FD04388002BCA +:108560000CD00025C1881323007A172201950095AD +:10857000FFF7CDFFFF2365806372257037BD0000D4 +:1085800010B50C4904004A88002A09D08B89002BB9 +:1085900005D00020CB8A0222834201D010BD0122E7 +:1085A00013000A20434300204032C854C8184280B8 +:1085B0000472F3E7FA67FF1F0023438003707047DC +:1085C000094B00211A0010B55C88002C06D01C79DC +:1085D000844203D10A234B43D01810BD01310A3322 +:1085E0000329F1D10020F8E7FA67FF1F10B5040056 +:1085F000407A03F0B1FAFF23637210BD7047043074 +:1086000010B580B203F058FA002803D00421494283 +:1086100003F09AFA10BD000070B50025104CA06858 +:108620002580A581A580A84202D003F0D5F9A560D8 +:1086300000250C4C0C4B606D1D80230058331D70C1 +:10864000A84202D003F0C8F96565002560680028DB +:1086500001D003F0C1F9013508340A2DF6D170BDFF +:10866000C068FF1F6468FF1FB468FF1F70B5041E59 +:1086700009D1054D2880A881A880A868002802D0CB +:1086800003F0AAF9AC6070BDC068FF1FF0B54B885D +:1086900085B00193002343600A7905000F00022A88 +:1086A00000D07BE0CA88032A17D98B685E781978D6 +:1086B0003602DC78D8790E4399781B7A24021B02A3 +:1086C0000C43034353495BBA0B80331D93421ED1C5 +:1086D000042C04D0631F022B0ED9012015E0019A4F +:1086E0004D4B1201D35A002B06D00198FFF7BEFF65 +:1086F0004A4A1369013313610421B8682E812C8022 +:10870000494203F021FA6860002005B0F0BD434DF6 +:10871000042C06D0631F022B0FD9EB680133EB60EA +:10872000DBE7019A3C4B1201D35A002B05D001988C +:10873000FFF79CFF2B6901332B61374B300002930D +:10874000019B029A1B010193002301998C468B52D5 +:10875000130063449C8003939E81FFF750FF039BAB +:10876000041E986016D00421B868494203F0ECF961 +:10877000FA880100043A200003F086FA0199029A6F +:10878000FB888A5A043B9B18029A8B522B68013350 +:108790002B60A2E7AB690133AB619EE71E4B0293EE +:1087A000019B1E01029BF35A002B2DD002998C19BC +:1087B000A068002828D0012A26D1FA889B189BB2ED +:1087C0007352A189994217D39B1AC018B96803F054 +:1087D0005BFA029BA289F35A934200D07DE7002204 +:1087E0002B81A3882B80A3686B60029BF2520B4AFB +:1087F00053680133536070E7084A9368013393600C +:108800000198FFF733FF68E7044A53690133536166 +:10881000F6E7C0462A68FF1FC068FF1F3068FF1FC9 +:1088200070B5051E15D10B4C0B4B18802300583327 +:108830001870606D002802D003F0CEF86565250041 +:1088400050356068002801D003F0C6F80834AC4207 +:10885000F7D170BD6468FF1FB468FF1FF0B5170043 +:10886000A12285B0920001934243394B06001B6858 +:108870000C009B18D933FF331D78FDF741FF0430FE +:10888000854204DD3000FDF73BFF0430C5B2BD4238 +:1088900007D33A0000213000019B03F02DFA05B008 +:1088A000F0BD2900380002F0E7FF2300C6B25033C4 +:1088B0001E700393019B29006365380003F0B4FA2E +:1088C000CBB20293002B02D0039B01361E70002610 +:1088D0002300503303931B78B34204D8606D002803 +:1088E00031D10020DBE7029A2800002A04D0013BA6 +:1088F0001000B34200D02800F700E719387002F0EA +:10890000EBFF786000280ED03A78019903F0BCF9AB +:10891000019A3B780136D3180E4A0193D369F6B217 +:108920000133D361D4E7039B18706065A74205D17A +:10893000084A1320D36A0133D362B0E7606803F0BA +:108940004BF80834F2E703F047F800236365C8E703 +:108950003409FF1F3068FF1FF7B50D000700042121 +:10896000686803F0F1F82B89040003702B891B0A57 +:1089700043702B8883702B881B0AC3702E890225B5 +:108980000436F6B2FB2E15D81B4B9F4214D10C2097 +:1089900003F012FA1135011E0CD0902303708E3BA8 +:1089A0000371043B4380154B8460C680187803F044 +:1089B0002BF900252800FEBD5C237B43104AD31809 +:1089C0000093583301931B78002B0FD10300320022 +:1089D00038000099FFF742FF019B05001B78002B30 +:1089E000E8D13800009903F0A7F8E3E7054A072526 +:1089F000536A01335362DDE7FEFF00002868FF1F62 +:108A00006468FF1F3068FF1FF0B587B00090172023 +:108A10000F0016000193FFF7F2FD1325041E19D075 +:108A20000C98031E02D00199201D9847030AE37099 +:108A3000052302AAA0700430908127700098667008 +:108A400003A993800494FFF787FF051E02D020003E +:108A500002F0C2FF280007B0F0BD0000F0B587B0FB +:108A60001F000CAB1B780391059301210DAB060091 +:108A70001C78049200F0D6F81425002821D020009C +:108A8000FFF77EFD0135041E1BD01149059B0A78B6 +:108A900003700132D2B2131EC68001D101231A0025 +:108AA0000B7022713000049B03990097FFF7ACFF15 +:108AB000051E09D1230021000648074A093302F0A8 +:108AC000B3FF280007B0F0BD002363802370F8E7F0 +:108AD0002C68FF1F5785001130750000F8B50500A0 +:108AE0000E00064C064F2368002B02D031002800F0 +:108AF00098470434BC42F6D1F8BDC046D068FF1F89 +:108B0000E468FF1F0123064A5B4253800023137170 +:108B10005362044A136053609360D36013617047DB +:108B2000E468FF1FD068FF1F0200002310B506494C +:108B30009C000859002801D1625010BD0133052B5B +:108B4000F6D11320F9E7C046D068FF1F034A5388C7 +:108B5000181A43425841404210407047E468FF1FD2 +:108B6000F0B585B002930AAB1F780CAB1B88009060 +:108B700008000E0001920393FFF7E8FF05001120A3 +:108B8000002D1BD10E48FFF7E1FF04001520002C3B +:108B900014D006220B99A771E01D03F075F8019B14 +:108BA00030002371029B29006371009B6680237053 +:108BB000039B6562E381FFF791FF280005B0F0BDDC +:108BC000FFFF000010B5FFF7C1FF04000220002CDA +:108BD00012D060880121FFF781FF606A002801D070 +:108BE00002F03AFF28220021200003F055F901236A +:108BF00000205B426380207110BD000030B5074A41 +:108C0000074C5588010013780020A54204D05B1A58 +:108C100059424B415842104030BDC046E468FF1FE6 +:108C2000FFFF0000084A10B501230C00904208D055 +:108C3000FFF78CFF031E04D0037923405A1E934193 +:108C4000DBB2180010BDC046FEFF0000024B1879D1 +:108C5000431E9841C0B27047E468FF1F70B504001E +:108C60000D001600FFF772FF002804D10D4B9C4247 +:108C700000D0143070BD416A03790520002907D067 +:108C800012221A40102A02D10520002EF2D10F2004 +:108C9000DB06EFD5897E0C20A94289414942494231 +:108CA0000840E7E7FEFF0000030010B5002800D1F0 +:108CB00010BD0348034A41889142F9D09847F7E72D +:108CC000E468FF1FFFFF0000002330B5C45CCD5CEB +:108CD0006C40D4540133102BF8D130BD0F23002247 +:108CE00010B5C45C64002243CA54C25CD209013B83 +:108CF000F7D210BD0200010010B52032103102F091 +:108D00000BFE10BDF0B58BB003901020059317003B +:108D1000049102F0E1FE0090102002F0DDFE009BC5 +:108D200013240190002B05D000280CD113240098A7 +:108D300002F092FE019B002B02D0180002F08CFE84 +:108D400020000BB0F0BD102002F0C6FE060010207F +:108D500002F0C2FE13240500002E00D1AEE0002870 +:108D600019D01022002103F097F83200290003984F +:108D700002F0D2FD041E0ED133787F2B51D8300083 +:108D80000099FFF7ABFF009B1B787F2B53D801990D +:108D90000098FFF7A3FF300002F05EFE002D02D026 +:108DA000280002F059FE002CC1D1102002F094FEE0 +:108DB0000600102002F090FE0290002E7CD00028C9 +:108DC00078D03A000F3223000125121105D00F335D +:108DD0003B4015B25A4253411BB26A1E1201002B8E +:108DE00033D0049BD2B298180099029AFFF76CFF17 +:108DF000013D10220021300003F04EF8ADB2049F77 +:108E00002D017D19AF4242D0002C33D0300002F04A +:108E100023FE029B002B00D189E7180002F01CFE04 +:108E200085E729003000FFF759FF28002549009AFF +:108E3000FFF74AFFA7E729000098FFF74FFF280038 +:108E40002049019AFFF740FFA5E70F210F40049941 +:108E50008A18D9B28F4208D9D15C06A819540133B7 +:108E6000102BF6D1029A0199C0E7791A4842414184 +:108E7000C901F2E73900300006AAFFF725FF3200EA +:108E8000039806A902F048FD10370400BAE7002C49 +:108E9000BCD13000029906AAFFF716FF320006A9DE +:108EA000039802F039FD082204003100059802F011 +:108EB000EBFEABE71324A9E71324AAE7002800D0B0 +:108EC0006EE733E768C10011F0B58BB00F001600F4 +:108ED0000225009000283FD0002A3DD00B1DDBB2B8 +:108EE0001800029302F0F8FD1135041E34D0FDF78E +:108EF00047FD05003A000099201D02F07DFEEBB20F +:108F00000393E3702B0CDBB22F0A00936370FFB264 +:108F10002B0E2370A7700193FDF72CFD102201008A +:108F200006A802F069FE2100029A04AB06A8FFF72A +:108F3000E9FE051E0DD1039B08223370009B04A996 +:108F4000B370019B7770F370301D02F055FEFDF792 +:108F50001DFD200002F080FD28000BB0F0BDF0B533 +:108F60008FB00D00149E039004920593002A03D144 +:108F7000022420000FB0F0BD002EF9D00398FFF7B7 +:108F8000E5FD1424071EF4D07278337812021A43D8 +:108F9000B3781B041343F27812061A43036A019252 +:108FA000934201D30133E3D1002D03D03B79012457 +:108FB0009B07DED50822002106A802F06DFF059B65 +:108FC00013240433DBB21800029302F085FD051E62 +:108FD000CFD0059A0499043002F00EFE042231002D +:108FE000280002F009FE3900102210310AA802F010 +:108FF00003FE2900029A06AB0AA8FFF783FE041EAF +:109000000FD1082206A908A802F0F6FD0822311D9A +:1090100008A802F0C9FC012807D101990398FDF7BF +:10902000C9FC280002F018FDA3E70124F9E70000BD +:1090300070B51C4C05002368181E10D0002D14D1EB +:109040001A78002A0CD1981C083202F01DFE02F09A +:109050001BFD0135002808D123681D70012070BD5B +:109060000A331800082202F00FFE2368002BF5D007 +:10907000122002F0A1FE061E0DD0C123216803704C +:10908000457002311022023002F0FEFD23683100EB +:10909000587802F0B9FD206802F0DEFC002323605E +:1090A000DCE7C0460C69FF1FF8B504002020FDF77F +:1090B00055FB0D4EA700BB590500002B0DD0002815 +:1090C0000BD0D878FF2809D108492A000C55F3594C +:1090D00007480333611802F0A7FCF8BD290002F02D +:1090E0009BFD0028F0D1F8E72869FF1F1069FF1FDA +:1090F00001A3001170B5064D84006359002B05D003 +:10910000D87802F029FDFF226359DA7070BDC0469D +:109110002869FF1F70B506008CB00C0015000021F7 +:109120003022684602F0B8FE31001022684602F094 +:1091300063FD1D2021000322684402F05DFD6846A6 +:10914000FFF7D8FD2D21040003222800694402F016 +:1091500053FD20000CB070BDF0B50700160097B0AD +:1091600001931CAB1D7830221EAB00910AA8002190 +:109170001C7802F091FE102239000AA802F03CFD92 +:109180001022002102A802F087FE0722310002A867 +:1091900002F032FD072202AB9818631E9C41019930 +:1091A00002F02AFD02AB9C732B005A1E934102AAC7 +:1091B000D3730021102206A802F06EFE06221D992C +:1091C00007A802F019FD1A2002ABC01806221F9949 +:1091D00002F012FD102200990EA802F00DFD1022DF +:1091E00002AB0EA908781C78013A6040D2B2087030 +:1091F00001330131002AF5D10AA8FFF77BFD1022C7 +:1092000012A904000EA802F03FFD102206AB0EA921 +:1092100008781D78013A6840D2B2087001330131F4 +:10922000002AF5D10AA8FFF765FD04431022209813 +:10923000E4B212A902F0E0FC200017B0F0BD70B556 +:109240000E0014008CB00100102268461D0002F0D0 +:10925000D3FC3100082204A802F0CEFC2100082231 +:1092600006A802F0C9FC6846FFF744FD040010227E +:10927000280008A902F0C0FC20000CB070BDF8B5B1 +:1092800006000D0000243719AC4200D3F8BD02F0EF +:1092900073FC030A3B70631CDBB201379D4203D9A8 +:1092A0000234F054E4B2EEE71C00EDE773B50600BB +:1092B0000C000225002819D0002917D0032101A88D +:1092C000FFF7DDFF6B469A793F231A4001331343C2 +:1092D0006A463000937101A92200FFF71BFF051EAB +:1092E00004D10322E01C01A902F0CEFC280076BDC7 +:1092F00003785807DA08C00FD20080009B0710439C +:109300009B0F1843C0B2704707230B40C908C90020 +:109310000B4303707047000070B50400FFF7EAFECE +:10932000134DA4006359002B21D0186A002801D0E6 +:1093300002F092FB2B59986E002801D002F08CFBB2 +:109340002B59D86E002801D002F086FB2B59186FDC +:10935000002801D002F080FB2B59586F002801D063 +:1093600002F07AFB285902F077FB00232B5170BDE5 +:109370002869FF1F0E4B8000C35870B50C00002BEE +:109380000FD09D68002D0CD02B78201D0B706B78B2 +:109390004B70A97CFFF7B8FF2B7E23726B69E360EB +:1093A00070BD10220021200002F076FDF8E7C046D3 +:1093B0002869FF1F014B18607047C0462469FF1FD2 +:1093C000074A03008000825810B5002A06D0D088D2 +:1093D000984203D1012901D1FFF79EFF10BDC0467D +:1093E0002869FF1FF0B5264E95B087000B93BB5937 +:1093F0000500099112200A92002B31D0D888FFF77E +:10940000A5FB04001420002C2AD0280010A9FFF787 +:10941000B1FFBB591E781D6A002E23D00895FDF7B9 +:10942000EFFA07000020FDF7F1FA0790A379E61D97 +:10943000069310AD0CA9089800F0E2FA0EA92800D6 +:1094400000F0D7FA0B9B0A990493069B09980293A4 +:10945000079B0396019300970EAB0CAAFFF77CFEC7 +:1094600015B0F0BDFDF7CCFA06903000FDF7CEFA4E +:10947000E31DA779079310AB06000893DAE7C0460F +:109480002869FF1F30B50C4C85002A59030085B0B0 +:109490000120002A0ED018006946FFF76BFF2B59F8 +:1094A0001A78D888054B002A00D1054B6A46072157 +:1094B00000F0D9FB05B030BD2869FF1FF3990011FA +:1094C000019A001130B5094C8500295985B0102248 +:1094D0006846253102F0D8FB2A591121044BD08867 +:1094E0006A4600F0C0FB05B030BDC0462869FF1FCA +:1094F0009D9A001130B5094C8500295985B010227C +:109500006846353102F0C0FB2A591121044BD0883E +:109510006A4600F0A8FB05B030BDC0462869FF1FB1 +:10952000DB9A0011F7B54D4F86001020F4590D005D +:1095300002F0D2FAF3592062186A132200286CD084 +:10954000033A29009C6802F09FFBF3591A780192B4 +:10955000002A58D11E6A227D317B94465140012257 +:10956000019F114201D167461740217D9143394344 +:109570002175377B4F40BC4660460027800701D4E9 +:109580004F081740012102208F40227D82433A4339 +:109590002275377B5740BC4660460027400701D400 +:1095A00097080F400420227DBF0082433A43227572 +:1095B000627D002794466046727B42400A4201D198 +:1095C00067460F400121627D8A433A436275777B8B +:1095D0005740BC4660460027800701D457080F401B +:1095E0000220627D7F00824317436775767B0022ED +:1095F0007E40760701D4BA080A400426617D9200B5 +:10960000B1430A4362756A78002A08D06278002A5A +:1096100005D005220533DA7700221000FEBD0422B2 +:109620002979114205D1A17C114202D10533033AB7 +:10963000F1E7019A21782C78002A02D10A00210052 +:10964000140018220429E8D8042CE6D80520604329 +:10965000034A05331218525CDDE7C0462869FF1F34 +:1096600078C1001110B50A001121024B00F0FBFA7D +:1096700010BDC046379B00110B0030B587B001AD5F +:109680002B806B4604001100981D082202F0FCFAA2 +:109690002A000B212000024B00F0E5FA07B030BD94 +:1096A0005F9B001110B50A001121024B00F0DBFA9C +:1096B00010BDC046B39B001113B50B0011006A46E4 +:1096C00013706B4604000622581C02F0DDFA6A464D +:1096D00008212000014B00F0C6FA13BDD39B0011F6 +:1096E00010B50A001121024B00F0BDFA10BDC046B2 +:1096F000239C00117FB505000B4BAA00D45808002D +:10970000002C0FD0666F237FE28821780396266FA6 +:109710000296E66E0196A46E0094FDF709FC2800FF +:10972000FFF7FAFD7FBDC0462869FF1F10B517215E +:10973000FFF7E0FF10BD000070B50A000D00064BFA +:109740000221040000F08FFA060029782000FFF7BC +:10975000D1FF300070BDC046039B001170B586B0CC +:1097600000236A461370836804001D78681E0A2867 +:1097700059D801A902F028FB060633373B3F43477F +:109780004B4F5300180000F042F9062312284BD02B +:1097900000281BD16088FFF7D9F90823002813D0CF +:1097A0004279002A47D1264B1A78072312070BD596 +:1097B000244B1A680723002A06D01668002E03D00F +:1097C000290001AAB04703006A4613706B461B7854 +:1097D0006088002B2AD1FFF767FC06B070BD180027 +:1097E00000F06CF9D4E7180000F087F9D0E7180012 +:1097F00000F093F9CCE7180000F0ADF9C8E71800C5 +:1098000000F0C3F9C4E7180000F0F6F9C0E718004B +:1098100000F0F6F9BCE7180000F013FAB8E71800FA +:1098200000F013FAB4E707236A46137069466088AC +:10983000FFF782FFD1E70523012AC5D1024BB8E724 +:10984000B567FF1F2069FF1F2469FF1FF8B52C4F64 +:109850008600F35904000D00002B40D0DA888242C4 +:109860003DD15A78062A33D11A78002A2ED0012009 +:1098700099681A6A097D014206D0157B054203D01A +:1098800007225A700120F8BD0220014204D0157B46 +:10989000054201D00922F4E70420014204D0127BE2 +:1098A000024201D00B22ECE7164B1B68002BE9D0DB +:1098B0005B68002BE6D020009847BB5900215B78FD +:1098C000122BDFD12000FFF715FFDBE70E4BECE793 +:1098D000112A04D1002900D032252900F2E7002DF9 +:1098E00008D12000FFF732F9002803D010230279B5 +:1098F0001343037121002800FDF798FAC2E7C04620 +:109900002869FF1F2069FF1F2469FF1F70B50E4ED5 +:109910008500AB590400002B13D01B78002B11D10C +:109920000A4B1B68002B04D05B68002B01D0200081 +:10993000984773595B78122B03D100212000FFF761 +:10994000D9FE70BD024BECE72869FF1F2469FF1F99 +:109950002069FF1F094B8000C3581020002B0CD03A +:109960001A6A002A09D09B68002B06D0127A1B7E47 +:10997000101C9A4200D9181CC0B270472869FF1FFA +:1099800070B503000D0014000220002A30D0002919 +:109990002ED013700B78081D53704B789370FFF71F +:1099A000A7FCE070012002212B7A23716B7B03401E +:1099B00063716A7B0A401343042263716E7B164015 +:1099C000334363716E7BF608F600334363712B7B80 +:1099D0000340A371287B014000200B43A371297B26 +:1099E0000A401343A3712A7BD208D2001343A37108 +:1099F00070BD10B50A0001000120FFF7C1FF10BDC6 +:109A000010B50A0001000220FFF7BAFF10BD70B5C3 +:109A100006000C000220002E30D000292ED07378D2 +:109A2000201D0B70B3784B70F178FFF76DFC0122AD +:109A30003579257271794B1008001340934010401E +:109A40000343881010408000C9080343C9000B433A +:109A50006373B1794B1008001340934010400343E7 +:109A6000881002409200C9081343C9000B4321200B +:109A70002373FCF773FE854201D2122070BD2220B1 +:109A8000257AFCF76BFE8542F7D823781820042B43 +:109A9000F4D86378012BF1D80020EFE7030010B56C +:109AA0000220002909D0002B07D00322481C0A708D +:109AB00019000D3202F0E8F8002010BD0300022268 +:109AC000080010B5002B06D0002904D00E32591C16 +:109AD00002F0DAF80022100010BD030010B50220D9 +:109AE000002909D0002B07D00422481C0A70190055 +:109AF0000C3202F0C9F8002010BD10B5FFF7DEFFF0 +:109B000010BD03000220002906D0002B04D005223E +:109B100000200A701B784B70704703000220002B56 +:109B200008D0002906D05B7800200B70013B082B81 +:109B300000D918307047030010B50220002909D061 +:109B4000002B07D00622481C0A7019000A3202F0C6 +:109B50009BF8002010BD10B5FFF7B0FF10BD02004C +:109B60000B00022010B500290ED0002A0CD00721CE +:109B70001970118859701188090A997011180822F2 +:109B8000D81C02F081F8002010BD03000A0002205A +:109B900010B5002B0CD000290AD09978587809020A +:109BA00001431180901CD91C082202F06DF800209E +:109BB00010BD030010B50220002909D0002B07D0EA +:109BC0000822481C0A701900921802F05DF8002063 +:109BD00010BD02000B00022010B500290BD0002A96 +:109BE00009D009211970117818185970511C0622D2 +:109BF00002F04AF8002010BD10B5FFF75FFF10BD5E +:109C000002000B00022010B5002A09D0002907D05D +:109C10005178197011180622581C02F035F80020EE +:109C200010BD030010B50220002909D0002B07D079 +:109C30000A22481C0A701900063202F025F800209A +:109C400010BD10B5FFF73AFF10BD02000B00022057 +:109C500010B5002A06D0002904D018005178FFF76B +:109C600053FB002010BDF0B585B017001E006A46FA +:109C700006230500080091819380FEF7C0FC1324A1 +:109C8000011E02900CD03800B047041E05D12800F8 +:109C900001A9FEF76FFA041E02D0029801F09CFEA3 +:109CA0002800FFF701FA200005B0F0BDF0B5040070 +:109CB0008BB0019115000021102202A802F0ECF8EF +:109CC000334EA700B85900283CD0C388A34239D1ED +:109CD0000378002B36D14278062A18D10200010001 +:109CE000553235310C3006ABFFF7A9FA002829D1DF +:109CF0002000FFF72FFE020006A902A801F0C4FF12 +:109D0000200002A902F030F801200BB0F0BD816EF6 +:109D1000002917D00B8A112A28D19D420ED1019813 +:109D20001231093A01F040FE012807D1BB59200049 +:109D30009D6EFFF70FFE29000200DEE732212000B2 +:109D4000FFF7D8FC2000FEF701FF061E1BD0416A7A +:109D5000002918D00B8AAB4215D108220198123184 +:109D600001F022FE01280ED1716A0AE09D42E9D17C +:109D700008220198123101F017FE0128E2D1BB59E7 +:109D8000996E8A7EB9E7200001F05EFFBCE7C0460D +:109D90002869FF1FF0B56B4D87007E5985B0337879 +:109DA00002900393002B00D087E0B368346A0193DC +:109DB0007078062817D101221B7D134202D0217B27 +:109DC000114218D10222134202D0217B114251D1FB +:109DD0000422134203D0237B134200D08BE0019B6B +:109DE0005A7DEB5991E007380428F8D801F0ECFFD0 +:109DF000032E42678300B36E002B03D11C2001F0B9 +:109E00006BFEB066EB599C6E002C1CD0102200211A +:109E1000200002F041F80298FFF79CFD01002000AD +:109E2000FFF72DFA01F0A8FE208220000821123051 +:109E3000FFF725FA0298FFF78DFDA076EB59210078 +:109E4000D888FFF70FFC0822EB591CE0B36E002BFB +:109E500005D01A00198AF0881232FFF70DFC022291 +:109E6000019B197DEB5911423DD0207B10423AD025 +:109E7000073208E0F488FCF7DBFD01002000FFF763 +:109E800011FC0A22EB595A70029B9C002A59537804 +:109E9000073B042B11D8D088FEF758FE00284ED07F +:109EA000C3895A08D2182849029B0298CB542B59CF +:109EB00041180433254801F0B7FD05B0F0BDFCF7AB +:109EC0009FFD03000120834201D100200393EB5941 +:109ED000DE88FCF79BFD039902003000FFF7ECFBE6 +:109EE000019AEB59117D042211420CD0217B1142C1 +:109EF00009D00B22C7E7F688FCF73CFD01003000D3 +:109F0000FFF7EEFB6BE7019A527D01210A4204D074 +:109F1000607B084201D00C22B5E702210A4204D03E +:109F2000607B084201D00E22ADE704210A4204D032 +:109F3000627B0A4201D01022A5E71222A3E7FA228F +:109F40005200B0E72869FF1F2C69FF1F0BA3001107 +:109F500010B5064B1A780423100018401A4200D09E +:109F60000348FFF727FA002010BDC046B567FF1F62 +:109F70003846FF1F70B50400FFF7D4FA051E43D121 +:109F80002000FFF77FFA234EA400A0598268937C3B +:109F9000DB0708D50321036A1B790B40012B02D193 +:109FA000017F0B430377431DD97F8B1E022B0DD8F6 +:109FB000022900D00121C088FCF790FF0421335909 +:109FC0001A7F59700A431A77280070BD01290CD1F5 +:109FD00002231022437000210C3001F05DFF305944 +:109FE00010213530FFF74BF9EEE70529ECD10223BC +:109FF000D118437010220C3001F046FE0423325970 +:10A00000117F0B431377EAE708251828DCD1053DBB +:10A01000DAE7C0462869FF1FF0B58BB00591438889 +:10A020007E4F9E00F45915000493002C15D1012990 +:10A0300002D000200BB0F0BD101D57781678FFF746 +:10A0400057F9EB68320002932B7A04990193009040 +:10A050003B002000FCF70CFFEBE7E388049A9342F7 +:10A0600001D00820E6E72378012B00D1D4E0059B3E +:10A07000581E092800D9CFE001F0A6FE05CE0A2916 +:10A08000CC506C859AB229000498FFF773FFD1E792 +:10A09000200029001022453001F0F6FDB9594B7817 +:10A0A000042B02D1013B4B70C3E70B000A002533A0 +:10A0B00035320C310498FFF795F90498FFF702FA4E +:10A0C0000522431E9841BB59C0005A70B2E72000D8 +:10A0D00029001022553001F0D7FD049B4F4C9D0004 +:10A0E000295904980A0006AB55320C31FFF77AF96A +:10A0F00029591022453106A801F056FC012808D143 +:10A100000498FFF7F7F90590002804D106222B598F +:10A110005A7005988EE708230593FAE763780C2BAD +:10A120007AD1E36E002B03D11C2001F0D5FCE06650 +:10A13000BB59D86E00286FD01022290001F0A4FD71 +:10A14000BB590498DC6EFFF705FC0D22A076BB59C5 +:10A150005A706EE7E06E00285ED063780D2B5BD1FD +:10A160002B8808220382A91C123001F08DFDBB59F7 +:10A170009A68517D0222114226D0186A407B104213 +:10A1800022D00C32E4E763780E2B45D1236F002BED +:10A1900003D1162001F0A0FC2067BB59186F0028DE +:10A1A00003D01022290001F06FFD0F22BB59CFE729 +:10A1B00063780F2B30D1206F0622691C103001F01C +:10A1C00063FDBB599A68517D0422114203D0196A7C +:10A1D000497B1142D5D100210498FFF78BFA28E77B +:10A1E000636F002B0DD0BB59586F0028F3D010229D +:10A1F000290001F049FD0122BB5952425B6F1A61EF +:10A20000E9E7142001F068FCBB5960675B6F002B25 +:10A21000E9D126E72978DFE707200BE72869FF1F48 +:10A2200010B5064C207001F0EFFD06212078FDF7F7 +:10A2300091FF0348FEF778FC10BDC0463B69FF1F45 +:10A24000C193001100200BB270B50D00834216DAE5 +:10A25000264B187801F0C8FD041E0DD00378922B10 +:10A260000ED0A02B37D0224B1878FF283AD02100EF +:10A2700001F0CAFC002835D180200002684070BD82 +:10A2800043780E2B0BD03E2BEDD18378052B12D0CB +:10A29000082BE8D181798088FFF7D8FA08E0154BC0 +:10A2A00082889A42DFD183681878591CFEF7C0FE75 +:10A2B000002817D1D7E7104B1B785B0712D50F4B3F +:10A2C0001B68002B0ED09B68002B0BD0C289811D10 +:10A2D00080889847ECE7FFF741FAA068002801D092 +:10A2E00001F07AFB200001F00FFDC5E73B69FF1F7D +:10A2F0003146FF1F18200000B567FF1F2469FF1FAC +:10A3000010B50078FFF712FA10BD10B50078FFF70E +:10A31000FDFA10BD0C234343084A10B59B185A6838 +:10A32000002A03D0012901D1904710BD9B68002B62 +:10A33000FBD00029F9D19847F7E7C0465869FF1FBD +:10A3400001238340094A10B5946B1C439463506BFE +:10A3500098435063D46B20009843012901D1200019 +:10A360001843D063116B0B43136310BD0080004092 +:10A37000F0B500240127154B85B0DA6B144E03921B +:10A380001A6C0192DA64019BE3403B4217D0039DB3 +:10A39000E5403D400295E5B202992800FFF7BAFF7B +:10A3A000316A736A002908D03900002B01D0029964 +:10A3B00079402800FFF7C4FF01E0002BF9D10134F8 +:10A3C0000C36172CDFD105B0F0BDC0460080004030 +:10A3D0003C69FF1F064B01215A68C2400A4204D063 +:10A3E0001B68C3401800084070471B6DF9E7C04662 +:10A3F000008000400122064B8240002903D0D9682A +:10A400000A43DA607047D9689143D960FAE7C046D9 +:10A410000038004030B5032444430F4BE25C1B1965 +:10A420009C785D7801232D1B0135AB40013BA34097 +:10A43000A140DB430C00122807D8084992005218AB +:10A44000116819402143116030BD054A11680B4065 +:10A4500023431360F8E7C046BFC1001108F0004075 +:10A4600014F00040C21F70B5D4B20623092C0BD8DB +:10A470000125084C9540002908D00021FFF7CAFFAC +:10A4800023682B4323600023180070BD2368AB436F +:10A49000F8E7C04600380040214BF0B51B185B7848 +:10A4A000022B21D1032444431E4A1F4EA35C1219E0 +:10A4B0009478012215008540B76B013CE4B23D431E +:10A4C000A240B563194C122815D89B0000290CD165 +:10A4D00017495B1899680A439A600123205C154A62 +:10A4E000834011680B431360F0BD11495B189968F4 +:10A4F00091439960F1E70E4B00290DD159690A4348 +:10A500005A61225C1328E8D00123203A93400A497B +:10A51000086803430B60E7E7596991435961F0E725 +:10A520003C69FF1FBFC100110080004004C2001140 +:10A5300000F00040A0F00040A4F00040F8B5002476 +:10A540001B4E1C4D1C4B1B5D012B1FD1194A9269E0 +:10A55000E2401A420BD00122B25693402200143A34 +:10A56000D2B2022A09D815494A6913434B61013412 +:10A5700002360C35172CE5D1F8BD0022B2560F4932 +:10A580009200521891680B439360F0E7022BEED1D2 +:10A59000E7B23800FFF71EFF01235840C1B2380070 +:10A5A000FFF77AFF3800FFF715FF6877DFE7C0464F +:10A5B00091C100113C69FF1F3D69FF1F00F0004081 +:10A5C000012202388240054B002903D059690A4311 +:10A5D0005A617047596991435961FAE70038004060 +:10A5E000F8B50E0001210F008740114A0400D3681E +:10A5F000FD43BB43D360831E8B4201D8FFF7E0FFCE +:10A6000000212000FFF72EFF0A4A0B4B5168012E54 +:10A6100005D139431B1951605E700020F8BD2940F7 +:10A62000516002221C1962709A6915409D61F4E71D +:10A6300000380040008000403C69FF1F012210B537 +:10A640008240074B002906D019680A431A6001218D +:10A65000FFF7C6FF10BD196891431960F7E7C046C0 +:10A66000008000400C2370B5002543430A4A2900AE +:10A670009B181D70094B04001B185D70FFF7B0FF9D +:10A680000123A340064928000A681A430A600549C5 +:10A690000A689A430A6070BD5869FF1F3C69FF1F32 +:10A6A000348000403080004070B504000E00FF2868 +:10A6B00013D003250540FFF7D5FF084AA3089B00E8 +:10A6C0009B183F22ED00AA40AE401968200091433C +:10A6D000314319600121FFF78DFE70BD183800402D +:10A6E000F8B50C244443134B0500E4186368002BB1 +:10A6F00003D1A3681220002B1AD0022201270E4B8F +:10A7000000215B195A7028002770FFF769FF636802 +:10A710001E1E08D0A3683E00002B04D02800FFF7BF +:10A7200059FE4640F6B228003100FFF709FE00202E +:10A73000F8BDC0465869FF1F3C69FF1FF7B5C4202C +:10A74000FF222B4B80001958002491433F3A0A43C3 +:10A750001A508022274F5202274E1A60274B1D5D48 +:10A76000002D21D0A31E012B03D80121E0B2FFF759 +:10A7700027FF012D18D11F4B9B69E3402B4213D0BB +:10A78000E3B218000193FFF725FE01000198FFF7DF +:10A7900055FFE3B2143B022B1DD801217156184A14 +:10A7A0008D405369AB4353613B7F002B0DD0E5B225 +:10A7B0002800FFF795FF2800FFF70CFE7B7F0100C4 +:10A7C000834202D02800FFF7A5FD01340C37023682 +:10A7D000172CC3D1F7BD012100237156F3568D40CC +:10A7E000074A9B009B189A68AA439A60DCE7C04618 +:10A7F00000E100E03C69FF1F91C100113D69FF1FAE +:10A8000000F0004070B50E0015000400FFF72AFFAD +:10A810000C236343094A20009B189D605E60FFF78C +:10A820005FFFF021064B074A8900051E5A5002D0EF +:10A830002000FFF717FF280070BDC0465869FF1FB2 +:10A840000000FF1F71A3001170B5134D07202C7875 +:10A85000002C1FD1982221005200280001F074F82A +:10A860000123C420FF222B700C4B80001C635C630F +:10A870000B4B1C605C600B4B195891433F3A0A43E9 +:10A880001A50802252021A600D20074A074901F02F +:10A890001BF9200070BDC0463C69FF1F00800040CE +:10A8A000A0F0004000E100E03DA700113DA500112F +:10A8B000030010B50620072B09D8054A137001F0D4 +:10A8C000A3F8D7210020034B034A89005A5010BD3A +:10A8D0006046FF1F0000FF1F151BFF1F70B51D0006 +:10A8E00002240C2910D8094ACA40D2070CD5FBF71C +:10A8F00041FF041E08D1059A04992800FBF756FF72 +:10A90000FCF7C4FDFFF724FB200070BD121000000F +:10A9100030B50D7802232C009C43184201D02B4304 +:10A920001C0008252300AB43284201D02B00234301 +:10A9300020241D00A543204201D01C4325002A23CA +:10A940000D70184204D011781E3B0B43137030BDBC +:10A950000028FCD10C2113788B43F7E7F8B51D00D4 +:10A9600006AB1B88140007AA0E000B201778002BDB +:10A9700027D10A78022A49D14A6850781178000212 +:10A98000244A08438018042840D801F01DFA031215 +:10A990001D1B2300F06800F07FFF021CC0B2B8420C +:10A9A00000D93A1CD2B22000F1682A8001F06CF97B +:10A9B00006E00222F3681B882A8023701B0A63705A +:10A9C0000020F8BD0622EEE701232B80F3681B78F8 +:10A9D0002370F5E7F368002B16D008222A801A8826 +:10A9E00022701A88120A62705A88A2705A88120A53 +:10A9F000E2709A8822719A88120A6271DA88A271CA +:10AA0000DB881B0AE371DBE72B80D9E701202B8071 +:10AA1000D7E7C04600D6FFFFF7B516000A781D003D +:10AA200008AB1F880C000123022A18D14A6850780D +:10AA3000117800022B4A0843801803280FD801F030 +:10AA4000C3F902254439E06800F026FFC0B20723AD +:10AA5000B84204D37B190193152B02DD0D23180096 +:10AA6000FEBDE0682A003100C01901F00DF96B4607 +:10AA700000209B88E268D0541B4B1B68834203D0A4 +:10AA80001B68834200D098470023E8E70B23002F80 +:10AA9000E5D1022DE2D1737832781B021343E268CC +:10AAA0001380114B1B68002BEED01B68002BEBD0E2 +:10AAB0000120E8E70B23002FD1D1062DCED12A00AB +:10AAC0003100E06801F0E0F8DEE70B23002FC6D18B +:10AAD000012DC3D132787533012AC0D8E3681A70CA +:10AAE000D2E7C04600D6FFFF486BFF1F70B50C00D1 +:10AAF0001500072837D801F067F9041436361B36DD +:10AB0000242E182015290BD8184E162200213000AB +:10AB100001F0C2F922002900300001F0B5F8002050 +:10AB200070BD18200229FBD11288114B1A80F6E75C +:10AB300018200829F4D10A000E48290000F01CFF53 +:10AB4000EDE718200129EBD10B4B10780B49DA699E +:10AB5000FFF7DEFEE3E718200129E1D1064B10786C +:10AB60000749DA6BF4E70220DAE7C046306BFF1FD3 +:10AB7000DE46FF1FD446FF1F6446FF1F8C46FF1FA3 +:10AB8000AC46FF1F030010B50020DB0704D50721EA +:10AB9000024A034800F08CF810BDC0461CC20011E8 +:10ABA0006446FF1F054A03001068002803D082880E +:10ABB0009A4201D1806870470068F6E74C6DFF1F2C +:10ABC0000A88030008009A4204D08A8804309A4216 +:10ABD00000D0002070470000F8B5F82200230D4F88 +:10ABE0000D4E7968050042433370994200D07B6076 +:10ABF0000A4C0021200001F04FF900231A007C606C +:10AC0000AB4202D100203370F8BD01332280DBB2A9 +:10AC1000F834F5E74C6EFF1F486EFF1F506DFF1FA5 +:10AC200073B56B4601900600684615001980FCF765 +:10AC30005FFF041E11D1002D0FD07689002E11D098 +:10AC40000C2000F049FF00280ED0084A0460136869 +:10AC500086808560002B02D11060200076BD1A002E +:10AC60001B68F7E70224F8E71324F6E74C6DFF1F93 +:10AC7000012100220A4B10B549420A4C19809980E3 +:10AC80009A719A70084B2070012019805A60FFF762 +:10AC9000A3FF2078FCF78AFF0448FDF745FF10BDAD +:10ACA000506BFF1F546EFF1F4C6EFF1F5DAD0011F8 +:10ACB000022310B5002802D0FFF7B2FF03001800EE +:10ACC00010BD0000030010B50020DB0704D50421EF +:10ACD000024A0348FFF7A4FF10BDC04630C200116E +:10ACE000E446FF1FF0B50E2687B003930CAB1F8818 +:10ACF00002ABF6180500080031000292FDF77AF861 +:10AD000004000120002C0FD03088FFF74BFF030018 +:10AD10000E20002B08D05E68002E05D021002800F0 +:10AD2000039B029A0097B04707B0F0BD0A4B10B5DD +:10AD3000984207D10122002352420A808B708A80F8 +:10AD40008B7110BDFFF73CFF0028FAD001235B4256 +:10AD5000038000238370F4E7FFFF0000F8B50500CF +:10AD600001290AD1134E00243388F827AB4219D0A9 +:10AD700028001149FFF7DAFF06E0022904D1013962 +:10AD8000FDF750FF0028EDD0F8BD3B00634372682B +:10AD9000D018D35A002B09D03A00002101F07CF8DA +:10ADA0000134E4B2054B1B78A342EED801235B4289 +:10ADB0003380DDE74C6EFF1F506BFF1F486EFF1F97 +:10ADC00010B5FFF7FDFE03000020834200D0987805 +:10ADD00010BD0000F0B589B01C000EAB80CB039015 +:10ADE0001E8810AB1B78049202930B7A0D00DB06D1 +:10ADF00016D42B780593022B24D00498FFF7D2FEAB +:10AE0000002812D003689C46002B0ED0029B220023 +:10AE1000019329003B00644603980096A04705E093 +:10AE20000498FFF7BFFE002802D10E2009B0F0BD44 +:10AE30008368002BF9D00A2229000398984700283C +:10AE4000D7D0F3E76B6858781A786B4B0002104341 +:10AE50009842D2D8043B984210D2684B984242D0D4 +:10AE600015D8674BC0180128C7D80B20002EDDD19C +:10AE7000EB681A7859683A80200028E0614BC018C6 +:10AE8000032800D979E000F09FFF846A789E5E4B2A +:10AE90009842B2D10B20002EC8D101233B80EB6831 +:10AEA00031001B7823706889013080B2FCF7A2FF63 +:10AEB0003A88031E0ED0017802328A183A804289FD +:10AEC00062704289120AA27059680278E01C00F090 +:10AED000DBFE06E004323A8031000422601C00F000 +:10AEE000DBFF0020A2E70B20002E9FD1EB6807A913 +:10AEF0001E8804233B80330A300026706370FCF701 +:10AF000079FF051E28D004AB9A890E2304A95B188B +:10AF10003E49C668FCF7E2FF00280BD12B783C487D +:10AF20006A680599FBF798FB002803D1012304AA5E +:10AF30005B42D3813278022A06D17168201D00F06D +:10AF4000A3FE3B8802333B800E2304AA9B181B8878 +:10AF5000A3701B0AE370C4E704ABDE81F4E70B20A7 +:10AF6000002E00D062E7E9680398FFF729FF02236B +:10AF70003B802070000A6070B3E70B20002E00D0E9 +:10AF800054E70222EB681B883A8023701B0A637027 +:10AF9000A7E7E86800F080FCC2B203000720B242D5 +:10AFA00000D243E70DD00299DBB27118994202DB5F +:10AFB000921BD3B20293029BE9681A003B80891965 +:10AFC0005AE70023F6E70B20002E00D02EE70722D9 +:10AFD000EB683A801A7822705A7862705A88A270A8 +:10AFE0005A88120AE2701A792271DA886271DB8853 +:10AFF0001B0AA37175E7C04604290000022800005F +:10B0000000D8FFFFFFD6FFFF03280000FFFF00006E +:10B0100060C10011F0B58DB06B4600200891202270 +:10B020009B5E83423DDAA64B187800F0DDFE071EDA +:10B0300032D00378B02B2CD10079023816281FD8D3 +:10B0400000F032FD17001E001E001E0031001E0021 +:10B0500096001E001D011E0052011E0073011E00FD +:10B06000CD011E0050021E001E001E008E021E009A +:10B07000E302944B94491B8878880B80FBF72CF8EB +:10B080003800FCF7ADFF914B1B68002B01D0380056 +:10B090009847380000F038FE8020089B00024340AB +:10B0A00018000DB0F0BDF6220021874800F0F4FE34 +:10B0B0000BAA3B7B7989388900923A000D32FCF764 +:10B0C000B1FD0400804B1B78002C3FD146E0804B43 +:10B0D000788805937F4B4100CB5A0BAE073BDBB220 +:10B0E00032880293002301937B4B21000693009347 +:10B0F000059BFFF76FFE744D002810D1069B3A8A1E +:10B100001B889A420BD138000599123000F04CFC94 +:10B11000002804D02B7862899B00EB185A801623F4 +:10B1200006A81B18328820007989FCF7D7FE2B78F7 +:10B1300004009A00AA1851880029C3D00133DBB259 +:10B140002B70002807D006A9C98A9180634A12880B +:10B150009A42BCD802E0012149429180002B04D0E0 +:10B1600059497888FAF7ECFF8AE73E890A2479E0A2 +:10B1700000253E89574B06937B88069A5B009B5AB5 +:10B18000033B9D4202DB002DF0D05BE0162206A8B7 +:10B1900012183B7B798900923A0030000D32FCF79F +:10B1A00041FD0590002858D04689017A7888FCF73F +:10B1B00003FD041E44D1464B78880793069B41004B +:10B1C000C95A454B0439C9B206AAD28A06930291DC +:10B1D000019400930599079BFFF7FCFD041E2FD1F6 +:10B1E000069B39491A88931C002D26D14B807988FB +:10B1F000384B4900CB5A5119033B8B4220DD059B4C +:10B2000031485B8941190B71A91C0135C9B2EDB2F6 +:10B21000059145191B0A2B71059B2D4904331818FC +:10B2200000F032FD2C4B059A1B88D318DDB22C4B55 +:10B230009E4205D00136B6B29CE749889942D6D0E5 +:10B24000002D0CD0204C2800618800F085FD207076 +:10B2500021007888FAF784FF12E7059CF0E7002CBC +:10B2600000D183E77B78142B00D109E716493B799D +:10B270004E800B700C717888FAF724FF00E71624D3 +:10B2800006ABE41821003889FCF7B4FD011E00D19B +:10B29000B7E1788822880F4C45002C5B0A4D013CB1 +:10B2A000E4B2029400240F4B01940095FFF792FD45 +:10B2B000041E00D014E129007888FAF761FFDFE668 +:10B2C000546EFF1FD045FF1F586BFF1F4C6BFF1FB5 +:10B2D000526CFF1F8867FF1F486DFF1FCE45FF1F81 +:10B2E000FFFF00005A6BFF1F162406ABE418210075 +:10B2F0003889FCF77FFD011E00D182E17888228821 +:10B30000AE4C45002C5BAE4D013CE4B202947C890E +:10B31000AC4B01940095FFF75DFD041E00D0DFE00B +:10B3200029007888FAF736FFAAE60025A44B1D808D +:10B330003B00FE331B78A24A78880792AB4208D9BB +:10B340009E4B12880693069943005B5A013B9A4232 +:10B3500003DB0799FAF728FF92E616246B00FB1827 +:10B36000059306ABE418059B21001889FCF742FD04 +:10B37000011E03D1059B01241E8973E77888924B37 +:10B380002288069C099343001B5B904E013BDBB275 +:10B390000293002300960193099BFFF71BFD041EF7 +:10B3A00002D0059B1E895DE77B88069A5B009B5A4D +:10B3B000079A108832881218934202DC1B1A013B4C +:10B3C00033807F4C023032880999001900F05CFC10 +:10B3D0002388328801359B182380EDB2A8E70BAA99 +:10B3E0003B7B7989388900923A000D32FCF71AFCD0 +:10B3F00000250590059B002B04D10A24002D00D1C7 +:10B400006EE060E0059B7888197AFCF7D5FB0100B7 +:10B41000041E63D1694C6C4B788806940993069B93 +:10B420004400E45A694B063CE4B20BAE3288079301 +:10B430000294019100930599099BFFF7CBFC041E30 +:10B440004CD1079B5E491B881A1D002D30D14A80C4 +:10B45000059B5B4C5A8963191A716B1C9BB2E318EC +:10B46000120A1A71162306A832881B1879890598C2 +:10B47000FCF734FDFF21AA1C2E1D03350B0005909F +:10B4800092B2B6B2ADB2002803D006ABDB8AD9B215 +:10B490001B0AA218651911712B714C4D301D2A8899 +:10B4A0004949201800F0F0FB2B88F618B5B2A1E747 +:10B4B0004988914207D17A8806995200525AEB186E +:10B4C000053A9A42C4DC3E4C2800618800F0D4F969 +:10B4D000207021007888FAF771FED1E5002DF2D1B5 +:10B4E0003E89BFE6162606ABF61831003889FCF710 +:10B4F00081FC3D000400FF3500282DD0037A9B0617 +:10B500000CD400227B893989788800923A000C3269 +:10B51000FFF7E8FB041E10D03E8915E03088FFF7E6 +:10B5200041FB00281AD08368002B17D0210012227B +:10B5300078889847041EE4D0EEE7AB78002B02D160 +:10B540007888FAF74BFE0026AB78002B00D097E501 +:10B55000002C00D194E585E60124DDE70E24DBE72D +:10B56000162506ABED1829003889FCF743FC041EAC +:10B5700047D0037A9B0611D4154A7B8811889942DB +:10B5800003D01448814207D11380134BF8261D784D +:10B590000023D9B2A94221D30924A1E72888FFF7C3 +:10B5A00001FB00282FD08368002B2CD02100122211 +:10B5B00078889847041EDFD092E7C0468867FF1F4F +:10B5C000586BFF1F5A6BFF1F526CFF1F486DFF1F08 +:10B5D0004C6EFF1FFFFF0000486EFF1F31005943F4 +:10B5E000546801336018615A0029D2D13C000834F4 +:10B5F0002100F82200F048FB21007888FAF7F6FDD8 +:10B600003EE501246CE70E246AE71D4B1A887B880F +:10B610009A4231D07888FAF7F3FD31E5F82305989E +:10B6200051684343CD18C95A00291FD03B7A012BDA +:10B630000BD16C88AB887888AA1D0094FFF752FB69 +:10B64000041E02D000233B722E88F822002128001D +:10B6500000F022FC00232B80059B0133DBB2059315 +:10B66000084B05991B78064A8B42D7D801235B42C9 +:10B670001380002CCED0F5E5002634000596EFE7C8 +:10B680004C6EFF1F486EFF1F70B504000E001500C2 +:10B69000FFF796FA031E08D131000548FFF790FA2C +:10B6A00003001120002B02D01C8000209D7070BD73 +:10B6B000FFFF0000F8B50B4F06003B780D001400AB +:10B6C000FF2B0ED00A2000F077FB011E09D0B1231A +:10B6D0000380002346800371C5800481387800F020 +:10B6E00093FAF8BD2547FF1FF7B50F0008A906001C +:10B6F000088809A90B240988002821D10234022BCB +:10B700001ED1557813782D021D432B008B430193D6 +:10B710007334002B14D1FB68300019000093FFF73D +:10B720004FFB019C85420BD02A0030000099FFF7A7 +:10B73000ABFF041E04D12A0030007989FFF7BAFF5D +:10B740002000FEBDF0B50E7885B003900AA80588EC +:10B750000120022E0DD14C682778647824023C43E6 +:10B76000054FBC4205D10398DBB201960095FFF767 +:10B77000BBFF05B0F0BDC0460229000010B50400B3 +:10B780000C4800F009FB0C48A16B00F005FB0B48CE +:10B79000E16B00F001FB0A48216C00F0FDFA094B57 +:10B7A0000948196800F0F8FA084B1B68002B00D014 +:10B7B0009847FEE7F2BF001108C0001117C0001142 +:10B7C00026C0001104ED00E035C00011586EFF1FC7 +:10B7D000002307B501A80193FFF7D0FF044A0548ED +:10B7E000002110B5121A00F057FBF8F7E9F8FEE750 +:10B7F0005C6EFF1F2847FF1F01B40248844601BC4E +:10B80000604700BFB14E000001B40248844601BC4D +:10B81000604700BF153BFF1F01B40248844601BCCE +:10B82000604700BFB54C010001B40248844601BC2A +:10B83000604700BF013BFF1F01B40248844601BCC2 +:10B84000604700BF3555000001B40248844601BC82 +:10B85000604700BFEDA5000001B40248844601BC6A +:10B86000604700BFC53F000001B40248844601BCE8 +:10B87000604700BFC95C010001B40248844601BCB6 +:10B88000604700BF090E000001B40248844601BCB5 +:10B89000604700BF851F000001B40248844601BC18 +:10B8A000604700BFDD52010001B40248844601BC7C +:10B8B000604700BFC521000001B40248844601BCB6 +:10B8C000604700BF5D17000001B40248844601BC18 +:10B8D000604700BFE13CFF1F01B40248844601BC41 +:10B8E000604700BF017F000001B40248844601BCEC +:10B8F000604700BF9DA9000001B40248844601BC16 +:10B90000604700BF2535FF1F01B40248844601BCD3 +:10B91000604700BF9D32FF1F01B40248844601BC4E +:10B92000604700BFE548000001B40248844601BCFE +:10B93000604700BF6D30FF1F01B40248844601BC60 +:10B94000604700BF6DBC000001B40248844601BCE2 +:10B95000604700BFB70E000001B40248844601BC36 +:10B96000604700BF5938FF1F01B40248844601BC3C +:10B97000604700BFB53CFF1F01B40248844601BCCC +:10B98000604700BF810E000001B40248844601BC3C +:10B99000604700BFED4A010001B40248844601BC83 +:10B9A000604700BF0D3AFF1F01B40248844601BC46 +:10B9B000604700BFCD4C010001B40248844601BC81 +:10B9C000604700BFC51D000001B40248844601BCA9 +:10B9D000604700BF5522000001B40248844601BC04 +:10B9E000604700BFD949010001B40248844601BC48 +:10B9F000604700BF5125000001B40248844601BCE5 +:10BA0000604700BF1D4B010001B40248844601BCE1 +:10BA1000604700BF151BFF1F01B40248844601BCEC +:10BA2000604700BF5939FF1F01B40248844601BC7A +:10BA3000604700BFA946010001B40248844601BC2A +:10BA4000604700BF0D52010001B40248844601BCAA +:10BA5000604700BF8B52010001B40248844601BC1C +:10BA6000604700BF014C010001B40248844601BC9C +:10BA7000604700BF6538FF1F01B40248844601BC1F +:10BA8000604700BF291C000001B40248844601BC85 +:10BA9000604700BFD91B000001B40248844601BCC6 +:10BAA000604700BF055E000001B40248844601BC47 +:10BAB000604700BF053EFF1F01B40248844601BC39 +:10BAC000604700BFE928000001B40248844601BC79 +:10BAD000604700BFE532FF1F01B40248844601BC45 +:10BAE000604700BF3D4B010001B40248844601BCE1 +:10BAF000604700BF4532FF1F01B40248844601BCC5 +:10BB0000604700BF8D3BFF1F01B40248844601BC63 +:10BB1000604700BF2146010001B40248844601BCD1 +:10BB2000604700BFF94C010001B40248844601BCE3 +:10BB3000604700BFE117000001B40248844601BC21 +:10BB4000604700BF7D18FF1F01B40248844601BC56 +:10BB5000604700BF5549010001B40248844601BC5A +:10BB6000604700BF1147010001B40248844601BC90 +:10BB7000604700BF8938FF1F01B40248844601BCFA +:10BB8000604700BF2951010001B40248844601BC4E +:10BB9000604700BF8D12000001B40248844601BC1A +:10BBA000604700BF350E000001B40248844601BC66 +:10BBB000604700BF2136FF1F01B40248844601BC24 +:10BBC000604700BFC94A010001B40248844601BC75 +:10BBD000604700BF3D18000001B40248844601BC24 +:10BBE000604700BFADAE000001B40248844601BC0E +:10BBF000604700BFB930FF1F01B40248844601BC52 +:10BC0000604700BF4551010001B40248844601BCB1 +:10BC1000604700BF594F010001B40248844601BC8F +:10BC2000604700BF5147010001B40248844601BC8F +:10BC3000604700BFDD3DFF1F01B40248844601BCE0 +:10BC4000604700BFC534FF1F01B40248844601BCF1 +:10BC5000604700BF091B000001B40248844601BCD4 +:10BC6000604700BF6571010001B40248844601BC11 +:10BC7000604700BF4D3BFF1F01B40248844601BC32 +:10BC8000604700BFC9A9000001B40248844601BC56 +:10BC9000604700BFE94C010001B40248844601BC82 +:10BCA000604700BFCD3BFF1F01B40248844601BC82 +:10BCB000604700BF75A9000001B40248844601BC7A +:10BCC000604700BF4D1F000001B40248844601BC1C +:10BCD000604700BF456B010001B40248844601BCC7 +:10BCE000604700BF0124000001B40248844601BC43 +:10BCF000604700BF7918000001B40248844601BCC7 +:10BD0000604700BF5118FF1F01B40248844601BCC0 +:10BD1000604700BF434D010001B40248844601BCA6 +:10BD2000604700BFDD66010001B40248844601BCE3 +:10BD3000604700BF2526000001B40248844601BCCC +:10BD4000604700BF5952010001B40248844601BC5B +:10BD5000604700BFB352010001B40248844601BCF1 +:10BD6000604700BF350E000001B40248844601BCA4 +:10BD7000604700BF311B000001B40248844601BC8B +:10BD8000604700BF8534FF1F01B40248844601BCF0 +:10BD9000604700BF2124000001B40248844601BC72 +:10BDA000604700BFE53A010001B40248844601BC87 +:10BDB000604700BFA54F010001B40248844601BCA2 +:10BDC000604700BF1D4D010001B40248844601BC1C +:10BDD000604700BFF13DFF1F01B40248844601BC2B +:10BDE000604700BFF30E000001B40248844601BC66 +:10BDF000604700BFF54E010001B40248844601BC13 +:10BE0000604700BFC56D010001B40248844601BC13 +:10BE1000604700BFC926000001B40248844601BC47 +:10BE2000604700BF4550000001B40248844601BC91 +:10BE3000604700BF090E000001B40248844601BCFF +:10BE4000604700BF691F000001B40248844601BC7E +:10BE5000604700BF056A000001B40248844601BC87 +:10BE6000604700BF8552010001B40248844601BC0E +:10BE7000604700BF5D32FF1F01B40248844601BC29 +:10BE8000604700BF393CFF1F01B40248844601BC33 +:10BE9000604700BF156B010001B40248844601BC35 +:10BEA000604700BF154D010001B40248844601BC43 +:08BEB000604700BF018900009A +:10BEB800000301030202030304020500060207004F +:10BEC800080009030A030B030C000D000E030F03FF +:10BED80010031103120313001400150316030000C6 +:10BEE800A13D0011D53D0011000000000200000036 +:10BEF800FEBE0011192A0F180A000000F1590000AF +:10BF0800FD240000414601003182001145A20011C4 +:10BF18009976001135800011A154001115B0001157 +:10BF280009510011993F0011C9400011000000009B +:10BF3800161600000200000048BF0011F4FFF3FFCE +:10BF4800D2FC0000094200110000000000000000BF +:10BF5800547579610042312E330030303138006732 +:10BF680069746875622E636F6D2F707676780054E9 +:10BF7800483035000200000090BF0011292A282A05 +:10BF8800272A262A252A242A0A180000E204000063 +:10BF98007102000078EC00007440000010270000D7 +:10BFA80060F0000006640000204E00000000000061 +:10BFB800050000001F501D00023CB40000011800DD +:10BFC80013000000A1020000303132333435363717 +:10BFD8003839414243444546005048592B36325877 +:10BFE80058504C555330353034005B4861726420EA +:10BFF8006661756C742068616E646C65725D0A00B8 +:10C008004C522020203D203078253038780A0050C6 +:10C01800432020203D203078253038780A005053BE +:10C028005220203D203078253038780A0049435383 +:10C0380052203D203078253038780A00A558001164 +:10C04800F958001100000000020000005CC0001157 +:10C058006F2A6E2A1A18EAD8BC80F0FC600000002B +:10C068000000000000005F066B2F363D7D077F3F14 +:10C07800777C596E7971AF066D4FC6CBEB0EEFCF5B +:10C08800EEC3A966E9E8FA60D6F46CBCBEE0FEFC33 +:10C09800EE3E9A769E8E000001A00000000000008F +:10C0A8006410B71DC8206E3BAC30D9269041DC76B1 +:10C0B800F4516B6B5861B24D3C7105502083B8ED5B +:10C0C80044930FF0E8A3D6D68CB361CBB0C2649B7F +:10C0D800D4D2D38678E20AA01CF2BDBDFB349B5FA4 +:10C0E8008000008000100000000000009B6200112A +:10C0F80025790011BF6200112D7D001143630011E5 +:10C10800037D0011B9630011D97C00110B64001183 +:10C11800A17E001173640011A17E0011A5640011B5 +:10C128005B7E0011B9630011917C0011316400112C +:10C13800397E0011000000000000000017650011A2 +:10C14800397E0011796500113D790011052A042A0C +:10C15800012A002A022903280128002801180018AA +:10C168000000000000000000000000000000008740 +:10C17800010102010201010201020303040103019A +:10C18800010101010303020103000D000E0010006C +:10C19800110013001401070108010A010B011C0119 +:10C1A8001D02040205020702080219021A021C02F3 +:10C1B8001D0301030203170002010005040008071C +:10C1C800000B0A001716001D1C01020101050401DD +:10C1D8000E0D011110011413011716011A1902028C +:10C1E80001020B0A020E0D02111002141302171697 +:10C1F800030504030807030B0A030E0D00010203DD +:10C2080007090A0B0E0F101112141718191A1B1F01 +:10C21800202122005DA9001119AA001100000000C8 +:10C228000200000066C100110000000045B70011BF +:0CC23800000000000200000064C10011C2 +:020000041FFFDC +:1000000000000000FD3E001104BF001100BF001100 +:100010003464FF1F0000000000000000000000002A +:1000200000000000000000000000000000000000D0 +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000000B0 +:1000500000000000000000000000000000000000A0 +:100060000000000000000000000000000000000090 +:100070000000000000000000000000000000000080 +:100080000000000000000000000000000000000070 +:100090000000000000000000000000000000000060 +:1000A0000000000000000000000000000000000050 +:1000B0000000000000000000000000000000000040 +:1000C0000000000000000000000000000000000030 +:1000D0000000000000000000000000000000000020 +:1000E0000000000000000000000000000000000010 +:1000F0000000000000000000000000000000000000 +:1001000000000000000000000000000000000000EF +:1001100000000000000000000000000000000000DF +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:10018000000000000000000000000000000000006F +:10019000E934FF1F3133FF1FC1660100000000007A +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000000FE +:1003000000000000000000000000000000000000ED +:1003100000000000000000000000000000000000DD +:1003200000000000000000000000000000000000CD +:1003300000000000000000000000000000000000BD +:1003400000000000000000000000000000000000AD +:10035000000000000000000000000000000000009D +:10036000000000000000000000000000000000008D +:10037000D1B70011000000000000000000000000E4 +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000951AFF1F80 +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:081838006072FF1F4118FF1F41 +:10184000024981F3088802F0C7FC00006072FF1FA4 +:1018500010B502F069FC072804D0122808D002282D +:1018600008D010BD044A0420136B01331363F8E75A +:101870000220F6E71420F4E73068FF1FF8B50700F0 +:101880000C0026002500503630785135002804D150 +:101890000300287058342370F8BD2978CA00481E08 +:1018A0008141A3183800A25C5B68C9B2FFF7D0FF82 +:1018B00000280DD12B78DA00A218013350602B706C +:1018C0003378044A013B3370136A01331362D8E75B +:1018D0000123DFE73068FF1F5C234343074910B54E +:1018E000C9180B0058331B78012B05D1FFF7C6FF31 +:1018F000034A936A0133936210BDC0466468FF1FB8 +:101900003068FF1F10B502F067FB064A0121130083 +:1019100010CB4942D967044B136002F03DFC200014 +:1019200010BDC04600E100E01000100010B504003A +:1019300002F052FB024B1C6002F02EFC10BDC046B0 +:1019400000E100E010B5040002F046FB4021094A26 +:10195000200013688B43136002F0EEFC01F0A6FD3B +:101960000022054B01201A60044B04321A6002F079 +:1019700063FAFEE71CF00040C4F00040C0F00040F5 +:10198000431E5A425341A022F0B5D2015B4213409C +:10199000154D164A40019B182A18127E8BB00191F2 +:1019A000002A1BD01A000832D46F0022E6B206AF1C +:1019B000E4B294420EDC2818C369002B08D00199C8 +:1019C00002AA117106AA049202AA167303A89847E4 +:1019D0000BB0F0BD1978B9540132EAE71A7D1A78D4 +:1019E00006AB01261A70E6E7F06AFF1F00400040D0 +:1019F000F0B5254B04004001C25C85B0002A2BD015 +:101A00001A18117E002927D0917E002924D011793F +:101A1000022921D11689D788D168F51BADB22A1CBD +:101A2000102D00D9102292B2BE4217D118180123EE +:101A300003710023C269C38003819A4206D06846BD +:101A4000032103730171029301A890470820002C21 +:101A500000D0192001F022FC05B0F0BD013C654228 +:101A60006C41A0256442ED012C40084D1B186419FF +:101A7000074D0633013A92B2AA42EDD01888461CAF +:101A80001E80085C2070F5E7F06AFF1F00400040F0 +:101A9000FFFF00000F220E4B10B59868104002386F +:101AA0000A280BD802F0A4F90D0A0B0A0A110A0A37 +:101AB0000A0A060002210020FFF762FF10BD012183 +:101AC000F9E70020FFF794FFF8E7DB6FF6E7C04681 +:101AD000004000400F220E4B10B5986810400238AD +:101AE0000A280BD802F084F90E0A0B0A0A120A0A15 +:101AF0000A0A060002210120FFF742FF10BD012162 +:101B00000800F9E70120FFF773FFF7E7DB6FF5E760 +:101B10000090004013B5334C2378072B3DD8324B4F +:101B20001A78324B002A39D18022196852020A43AE +:101B30001A60252002F00AF820232D4A11680B4371 +:101B4000802113606B460422C905086807331042E0 +:101B500028D080210422C905C86810422ED08021D7 +:101B60002020C905CA688243CA6014221A701A78F4 +:101B7000002A2FD18021C905C86820320243CA60DB +:101B800014221A701A78002A28D11A4B1A7D22784A +:101B90005A601D221A705932DA6013BD1A6816494C +:101BA0000A40C5E7086802430A6014221A701A78CE +:101BB000002ACED01A78013AD2B2F7E7C8680243B9 +:101BC000CA6014221A7019784A1ED2B21A700029FB +:101BD000F9D1C4E71A78013AD2B2C7E71A78013AC4 +:101BE000D2B2CEE76046FF1F2847FF1F3CF00040FF +:101BF0005846FF1F00200040FFFFFEFF564B70B508 +:101C00001B68012B03D1554A936D0133936502F094 +:101C10004BFB534B534A1860534B544C1A600123EF +:101C2000534A1360534A13602378002B06D00622D0 +:101C30005149524802F0F0F900232370504A514BA9 +:101C400010681B78C1B2002B0ED14F4CC0B2237864 +:101C50005BB2002B4FDB237824785BB264B21B04A9 +:101C600024021B191B1813600B1C50294ED950233A +:101C7000464A47491078DBB2FF2202284BD1086858 +:101C8000444C454D267890432A78964254D9227880 +:101C900024782E78023B5D10A31B6B435201D31AAC +:101CA00010335B111843086002F0D6F9031F012BB3 +:101CB00045D83A4B1B78002B06D0394B1B78002BAC +:101CC00002D0002002F0D8F9A122364B9200997878 +:101CD000354B4A431B689B18832292009B181B7844 +:101CE000033B012B03D8AF20400002F08DF9012205 +:101CF0002E4BDA8270BD237824785BB264B2FF3356 +:101D0000FF341B0424021B190138ABE7CAB2022AB4 +:101D1000AED20223ACE70868254C264D26789043C6 +:101D20002A78964208D9227824782D78023B5B10D5 +:101D3000641B63435201B2E72378DBB2B2E70228A7 +:101D4000D5D11D4B1B78013B022B03D91B4B1B78B4 +:101D5000022BCCD16C20C8E79809FF1FFC0FFF1F96 +:101D60006867FF1FFF3F0000141003406C67FF1FF0 +:101D70000C10034000100340D50BFF1F7211FF1F12 +:101D8000B40003408C09FF1F680AFF1F490AFF1FA8 +:101D900094000340460AFF1F470AFF1FF908FF1F70 +:101DA0002209FF1F300DFF1F3409FF1FBC0BFF1F4F +:101DB000440AFF1F450AFF1F1C09FF1F2309FF1FBD +:101DC00010B502F039FA0022014B1A8010BDC0464E +:101DD0006467FF1F10B502F037F8A121054A89009A +:101DE0009478054A61431268044B5218528C1A8049 +:101DF00010BDC046300DFF1F3409FF1F6467FF1F71 +:101E000010B50D4B0D4A9978A1239B004B431268E6 +:101E1000D218531DD97F0A4B1B88994209D2441C02 +:101E200007D0C82805D0D2695B1A5A43054B5343E3 +:101E3000C01802F061F910BD300DFF1F3409FF1FFB +:101E40006467FF1F7102000070B5244D2B68002BE2 +:101E500028D002F0B1F82B68D8402B680400002B82 +:101E600027D002F0C1F82B68D8401D4B1D4A997845 +:101E7000A1239B004B431268D118D25C91239B0095 +:101E8000002A20D0CA580132CA50174B17491B6884 +:101E90000868834214D3D23B181A012A1AD0144B73 +:101EA000186070BD02F088F8124B196802F0C4F88F +:101EB000D3E702F099F80F4B196802F0BDF8D4E7A8 +:101EC0000D495B18E8E7CA500C4B1B68DB68E41847 +:101ED000201AE4E7F530FF30E1E7C0461C08FF1F99 +:101EE000300DFF1F3409FF1F9C09FF1F6867FF1F8C +:101EF000A009FF1F1808FF1F2DFF3F007067FF1F7D +:101F000070B504000D00282916D10300A433C2883F +:101F10001B889B1A0B4A9BB293420DD906006A3666 +:101F200005223100653002F0EFF8002804D13100BD +:101F3000200001F099FF70BD2900200001F0FCFF96 +:101F4000F9E7C046FE7F0000F8B50400012001F06B +:101F5000EBFF02F0E9F9174A17491060174D03002B +:101F6000886A174E28607568AC46164D2F680025A4 +:101F7000BC4501D275687D1B134E00193560C862DF +:101F8000A4204C6A40032043486210490978002984 +:101F900005D00F490978022902D10F3B1360F8BD23 +:101FA000012901D1083BF9E7032901D1053BF5E7F8 +:101FB000033BF3E7E408FF1F00F00040340AFF1F73 +:101FC00028100040180AFF1F1C0AFF1F1C09FF1FD2 +:101FD0004A0AFF1F70B580241025E405A3682B432F +:101FE000A36001F0C1FFA368AB43A36070BD000014 +:101FF000F7B5160080221C001023D20501919168CC +:1020000005000B43936000225A4BD7301A6001F051 +:1020100073FF9D232A002F009B00EB58CA32012139 +:102020000092FC37002B01D00021009A386802F0A2 +:1020300053F92900009BCB311A784F4BD3351A60E6 +:102040004B780A781B0213438A7812041A43CB7820 +:102050001B061343494A1BBA13604B790A791B02CA +:1020600013438A7912041A43CB7931001B061343B8 +:10207000434A1BBA13606B782A781B021343AA7871 +:1020800012041A43EB781B0613433E4A1BBA136033 +:10209000019A330213433C4A13603C4B22001B1B42 +:1020A0009C4603293DDCB3089A0013005142B21A42 +:1020B000032A46D1354AE018511A82784078120432 +:1020C00000020243E05C043302430A600022FF2B5B +:1020D0004BDDF0222E4B12011A600F222D4B1A609D +:1020E0002D4A1368002BFCD00023224A2749136095 +:1020F000091B321D0B191B68043A180A2370607003 +:10210000180C1B0EA070E3700434002AF2DC80224D +:1021100010213B68D20501333B6093688B43936089 +:10212000F7BD6346D578981893782D061B042B438A +:10213000157804392B43557804322D022B43036064 +:10214000AFE7022A0AD1114AE05C511AE21852782C +:10215000120202430A6004339BB2B7E7012AB5D1E9 +:102160000A4A521AE15C1160F5E7084959180A60F9 +:102170000433ACE7000004403C0004403800044055 +:1021800034000440300004400C00044000010440CE +:10219000040004401000044014000440F7B515008A +:1021A00080221C001023D2050091916807000B4388 +:1021B00093600023654AD730136001F09DFE9D2394 +:1021C0003E009B00F9583B00CA363200FC33002920 +:1021D00000D07FE0586802F07FF8390032785C4B1D +:1021E000CB311A604B780A781B0213438A78AC46CD +:1021F00012041A43CB78281D1B061343554A1BBAF9 +:1022000013604B790A791B0213438A7912041A432B +:10221000CB791B061343504A1BBA13604B7A0A7AD8 +:102220001B0213438A7A12041A43CB7A21001B063D +:1022300013434A4A1BBA1360009A2B021343484ABD +:1022400013602200474B1B1B0093009BCE785B184A +:1022500001938B7836061B0433430E7804383343DE +:102260004E78043136023343019E33600328ECDCA0 +:102270000321A808431C9B002940800003292BD17F +:102280003849E5185E18A9786D78E35C09042D02D9 +:10229000294319433160030008330021FF2B2DDD52 +:1022A000314B324919600F21314B19600123274905 +:1022B0000B60304B19680029FCD006211B680B40CD +:1022C000042B20D080220020D20593680A318B4352 +:1022D0009360FEBD01217DE7022908D121495D18E7 +:1022E000E1184978E35C090219432960D3E7012921 +:1022F000D3D11C495918E35C0B60CCE71948181876 +:1023000001600433CAE7002310490B606346002BC9 +:102310000CDC3B00FC335A68102101325A608022E9 +:10232000D205936801208B439360D2E7009B9B18F2 +:102330001B68190A13705170190C1B0ED3700423FB +:102340005B4291709C440432E0E7C04600000440C8 +:102350003C00044038000440340004403000044095 +:102360000C0004400001044004000440080F000079 +:10237000100004401400044070B5061E19D002225B +:10238000614B9B799343012B13D1604B1A78FF2A41 +:102390000FD15A78FF2A0CD19A78FF2A09D1DA781E +:1023A000FF2A06D11A79FF2A03D15B79FF2B00D1CE +:1023B000A7E0574B0C201A78012A08D00022554D6F +:1023C0001A702B781A00093A042A01D8212070BD0E +:1023D0005A1F012AFAD94C4CA07B042800D990E05E +:1023E000A279032A00D98CE0821E012A03D86288D0 +:1023F0001F2A00D885E0002E61D0012E00D080E099 +:10240000A288012AE2D0002B0AD10138032803D880 +:1024100001F0EEFC151D19151F202E7001F04CFE69 +:102420002B785A1E032A16D800253B4B1D60282303 +:10243000237501F059FDA8422ED0A580C6E70223DE +:1024400020202B70EAE7042322202B70E6E70323E9 +:1024500021202B70E2E7073B012BB7D82F4B1B68DD +:10246000DB6A9B06B2D52E4B1A78002AAED1A27B2E +:10247000911E012901D9002AA8D1022280211A70B7 +:102480002823284D89012878237501F085FD8021B6 +:102490002878890101F0D8FE0123A380224B1B7804 +:1024A000002B0AD0FA228021204B92001B880902BF +:1024B0005A431C4B187801F047FE002087E701F0D3 +:1024C0008BFD2B78A680073B012B06D918482E7070 +:1024D00001F01AFD1E2001F0EFFD114B114C1A788E +:1024E000002A06D080210022207889011A7001F08C +:1024F00053FD01F051FE80212078090201F04CFDCE +:10250000DBE7122063E7C046A60BFF1F6B09FF1F26 +:102510001A09FF1F1C09FF1F4809FF1F7067FF1FD3 +:102520002309FF1F1B09FF1F2109FF1F2C09FF1F84 +:102530000010004010B5002901D001F05DFD10BD74 +:10254000F7B5604B01919978A1239B004B435E4AFC +:10255000060014681022E418D6235B00E0583623E6 +:10256000FF33E35C00279343222B41D1574B0F3AB3 +:102570001A600760012501F08FFC019B1880E82399 +:102580005B00E35C002B01D0B34258DD0023504FC9 +:10259000FB70AD33FF33E3581A68002A03D09B88E1 +:1025A000DB439B071DD03823FF33E35C002B18D09F +:1025B0009B235B00E35C002B13D1D133FF33E35C3F +:1025C000B3420EDAA4235B00E15AE018090A023193 +:1025D00001F06AFD23000122FE33013E01351A8716 +:1025E000FA70E8235B00E35C002B2AD0A8B2FEBDA2 +:1025F00003683D00002BBED081880430090A0231F7 +:1026000001F052FDD6235B00E3581F60B2E72300C0 +:10261000B133BA00FF339858013781880430090A72 +:10262000023101F041FDE8235B00E35CBB42EEDCDC +:10263000E822F61AED1800235200A354A6E700275B +:10264000F1E7200001F068FE00281FD0002E1DDDFC +:102650007319882647190193B600200001F0DCFDAC +:102660005A30800020184068013581880430090AFA +:10267000023101F019FD200001F026FDA3590133BC +:10268000A351BD4202D0019B9D42E6D1114BE35CB8 +:10269000002BABD095239B00E35C002BA6D00E4B08 +:1026A000E15A0029A2D00D4AA35C994202D9013314 +:1026B000A3549BE700231A212000A35401F044FCFB +:1026C00094E7C046300DFF1F3409FF1F001403407C +:1026D000E010FF1F5A020000720200005E020000BC +:1026E000F8B51D4B1D4F1A78002A10D1BA7B002A6D +:1026F00002D101321A7003E0032AFAD0022AF8D07C +:1027000001F0F2FB00220120154B1A70F8BD154BA9 +:10271000154D1C68154B9E7801232B702878C0B28C +:1027200000F0CEFCBB7B002B0BD101F07DFCA12384 +:102730009B007343E41883239B00E41823782B70D9 +:10274000E4E7032B02D101F01FFDF0E70020022B8C +:10275000DCD101F0C9FDEAE71C09FF1FA60BFF1F32 +:102760002309FF1F3409FF1F490AFF1F300DFF1FF8 +:10277000F0B587B00EAD2F780FAD2D780593AC4630 +:10278000634614000E4D0CAA12782E7803930D9B0D +:10279000009201932200059B029701F045FB2E70E9 +:1027A000012C01D0042C08D1802206498B88934348 +:1027B000054A1278D20113438B8007B0F0BDC046A2 +:1027C0001C09FF1F6C11FF1F7809FF1F0B001B3B2B +:1027D00070B504003020E02B0DD81300E025493BF4 +:1027E000FF3B9BB2ED00AB4205D8034B20001982A2 +:1027F0005A8201F0D9FC70BD8410FF1F10B501F0A2 +:1028000053FD054B00205B68052B04D9034A526831 +:10281000D20200D4980810BD00100040FCE100E096 +:1028200070B501F0D9FB0D4B1B68FC33DC691D6AE8 +:10283000FFF7E4FF6419844204D2094B01241B68AA +:10284000002B07D004220024064B1A70064A936915 +:102850000133936101F0A0FC200070BD7067FF1F81 +:102860009809FF1F2309FF1FFC0FFF1F70B50C4DB8 +:102870002B68FC335C6A01F0AFFBFFF7BFFF2B68EE +:102880000025FC339B6AE318834204D2054B1B6886 +:10289000AB4200D1051B01F07FFC280070BDC04693 +:1028A0007067FF1F9809FF1FD722044B92009B58A7 +:1028B00010B5002B00D0984710BDC0460000FF1F88 +:1028C000F0B587B001F01EFAFFF7EEFFC54BC64C1E +:1028D00004931B78022B45D1C44B1B68186A01F086 +:1028E00023FBC34BC34A1A60C34BC44A1A60A022DD +:1028F000C34B52001A60049B187801F0EDFBC149EC +:10290000C14801F079FCC149C14801F075FC1022B1 +:10291000C04BFF201A60802252031A60802292036B +:102920001A60802212041A6001F0A6FB012001F057 +:10293000C3FCFA20400001F067FC582001F064FB62 +:10294000B54801F099FC012001F0A6FC072001F038 +:102950009BFAE26DB14B1A4084235B001343E3659D +:1029600007B0F0BD01F0A0FAAD4E0290322001F0A8 +:10297000DBFA33681B0628D43C2001F0D5FA0F207F +:1029800001F0D2FA974B1B78012B00D113E180257F +:1029900033682B4200D0A1E0636C03202B436364B7 +:1029A00001F0C2FA01F080FA029B0299C31A5A1E82 +:1029B000814200D81A009B4B1A608C4B19681E2369 +:1029C0005343994A9B18CB618BE701F06DFA802342 +:1029D000E26BDB0213430390E363E26D8F4B032052 +:1029E0001A4028231343E36501F09EFA0320A56EE5 +:1029F00001F09AFAA36E0320DB03DB0B019301F0D5 +:102A000093FAA76EED03FF03ED0BFF0B874AAB189C +:102A1000C22B2ED8019B9B18C22B2AD8BB18C22BC5 +:102A200027D8019B2A009D4200D21A00019B9D429B +:102A300000D91D003B00974200D21300BD4200D9CF +:102A40003D005B1B122B14D80C22336814209343D7 +:102A500033603368764A1340336001F065FA082129 +:102A6000A36EE26DDB038A43E265724ADB0B1360FF +:102A700085E7032001F058FAA36EDB03DB0B059317 +:102A800001F012FA039B0399C21A531E814200D827 +:102A90001300694A93421BD9FF23356864492D0A04 +:102AA0001D4032686B1C1B060A401B0C134333602D +:102AB0000C23326800209A43083B1343336001F033 +:102AC00073FA5E485E4BA840984205DCFEF73AFF79 +:102AD000019D0197059F99E75A48F7E700235A4E51 +:102AE00033608023226CDB0213432364636C032076 +:102AF0002B43636401F018FA336801333360802399 +:102B0000626C5B021343636405230193E26D434BE4 +:102B100003201A404D4B1343E36501F005FA0821E9 +:102B2000A26EE36D434F8B43E3653B6802394B4331 +:102B3000D203D20B9A420CD89B1A3B2B0BD8E36DD5 +:102B400043490B40E365636C0B406364414B1A607F +:102B500028E7D31AF1E7019B013BDBB20193002B7D +:102B6000D4D1E36D3A4A1340E365636C1340636468 +:102B70003368042B07D9BFF34F8F374B374ADA60DE +:102B8000BFF34F8FFEE7636C0320AB43636401F038 +:102B9000CBF9E26D214B03201A4028231343E36550 +:102BA00001F0C2F90822A36EDB03DB0B3B60E36D8F +:102BB0009343E3659AE70722E36B1340012B02D1AD +:102BC000002001F089FA264D264AAB680220134006 +:102BD000AB6001F0A9F98023AA685B001343AB60E6 +:102BE000E0E6C0464A0AFF1F00F000407067FF1F82 +:102BF000000003400180063DBC0003403408000093 +:102C0000A40003407102000014100040FFFF3F00C9 +:102C10002810004000E100E03075000000FEFEFFDB +:102C2000C4F000405867FF1F7206000091FCFFFFD0 +:102C3000FF00FFFF6067FF1FE30C0000E88000005B +:102C40005F361E0060361E00C445FF1F28000100CD +:102C5000FFFFFEFF5C67FF1F00ED00E00400FA05C8 +:102C60003CF00040FFFEFFFF694E336888331B686D +:102C700083F3088801F060FA00F018FC654B664A9F +:102C80001B68934207D0002001F08EF90221634AAD +:102C900013688B431360FFF713FE614B614C187888 +:102CA000C0B201F069F90023A3600233A3605E4B58 +:102CB0000120236001F038F90323A36001F0F4F848 +:102CC000040001F0F1FA050001F0EEF8574B18602E +:102CD00001F07AFA564B1968621A531EA14200D2CB +:102CE00013008022D203934201D39B029B0A3268D5 +:102CF000D16AC90700D478E04E491C0C09689BB220 +:102D00004C4359432402090A641803274A49FC32F8 +:102D100093680A6849489B1A494A4A4E12684A49C8 +:102D20009B18414A34609A183B400193036892080B +:102D30009C46019B0A6063440360042B03D9013263 +:102D40003B400A6003600B684049E418200001F032 +:102D500073F93F4F3D493B68C3183B602000019326 +:102D600001F07AF83B4C2068081838492060884206 +:102D700005D9019B01333B6001F06EF8216001F041 +:102D8000A3F8354B1B78002B0ED001F08DFA31687B +:102D9000324B4A1B1B6812189A4233D2591A4919EE +:102DA000091A2F4801F028FA2E4C237A002B0FD055 +:102DB00001F07AFA3168E3684A1B1218934224D969 +:102DC000591A4919091A284801F016FA00232372E2 +:102DD000264B83F3088801F047FA022001F06CF9D2 +:102DE000002001F0E1F801F0B7F9DC0199000234AC +:102DF000641A5900641A09214B438033CB40A4085C +:102E0000E41882E7FA218900CBE71949DBE7C046DD +:102E10007067FF1F0C0AFF1FB6412103100000401E +:102E2000490AFF1F14100040C4090000100AFF1FC8 +:102E3000340AFF1F380AFF1F200AFF1F280AFF1F3E +:102E40001C0AFF1F5467FF1F240AFF1F71020000A6 +:102E50006008FF1F2C0AFF1F1C09FF1FE408FF1F4B +:102E600000100040740BFF1F3C10004000000020C9 +:102E7000DC050000A022054B92009B5810B5002BEA +:102E800001D0984710BD01F0EFF8FBE70000FF1FED +:102E9000A122054B92009B5810B5002B01D09847FA +:102EA00010BD01F0E1F8FBE70000FF1FA222054B77 +:102EB00092009B5810B5002B01D0984710BD01F02F +:102EC000D3F8FBE70000FF1FA322054B92009B589D +:102ED00010B5002B01D0984710BD01F0C5F8FBE7F5 +:102EE0000000FF1FA422054B92009B5810B5002B39 +:102EF00001D0984710BD01F0B7F8FBE70000FF1FB5 +:102F000070B501F0D1F9514B1860042001F0D4F8EC +:102F100000F0E2FF0400C30702D401F02DF970BDF8 +:102F200000224B4B1A604B4B1878013804282CD8E0 +:102F300000F05EFF03231B1F2700200001F054F95F +:102F40000128ECD0444C2378042B71D100F064FFAD +:102F5000002806D001F078F8582001F055F8022337 +:102F60002370032001F0A8F8D9E7200000F084FFC7 +:102F7000E6E7200001F020F9E2E7200001F084F903 +:102F8000DEE7200000F0C8FFDAE701F065F8050091 +:102F9000012808D1314B1B78053B012B03D82000B9 +:102FA000FFF768FFCEE72C4B1B78022B01D0052BD7 +:102FB00020D1022D28D12A4B9B7BAB431CD1200072 +:102FC000FFF766FF254B18780128BBD16405B9D4FB +:102FD000234925224B7B034205D1233A13405A4211 +:102FE000534126331A000B7D9342ABD9322001F0B6 +:102FF0001BF9A7E7022D07D1184B1B78052B11D120 +:103000002000FFF753FFDDE7012D0BD1012B03D18A +:103010002000FFF759FF95E7062B03D12000FFF7AB +:1030200061FF8FE7200001F01FF8022D8AD1C9E768 +:10303000032B04D10B4B987C01F086F991E7072B09 +:103040008FD1094B987B00F0BFFF8AE79C09FF1FD7 +:103050009809FF1F9009FF1F2309FF1F1C09FF1F6D +:10306000A60BFF1FBC0BFF1FD40BFF1FFA210A4B3F +:103070000A4A49001A640A4A5A500A4A04395A50FC +:10308000094A08319A64094A5A50094A5C315A502F +:10309000084ADA667047C0460000FF1F7127FF1F0D +:1030A0006D28FF1F2128FF1F7923FF1FE126FF1F27 +:1030B000011EFF1FD51DFF1F10B500F081FE10BDC2 +:1030C0008023F7B59C46264B264F01932649274A75 +:1030D000274D284C284B02281AD1604638600868D2 +:1030E000264E304080263603304308600199097827 +:1030F000002909D11660224A2A60224A2260E02271 +:1031000019689143A03A1BE08021C9021160F2E7DF +:1031100066463E600F68194E3E408027FF023E43E0 +:103120000E600199097800290DD1176001280ED190 +:10313000154A2A60154A2260E02219689143C03A74 +:103140000A431A60F7BD802189021160EEE7E02191 +:103150000F4A02432A600F4A22601A688A43F0E746 +:103160004B0AFF1FE0000340D800034090000340DB +:10317000000003405000034040000340FFFFE3FF16 +:103180000280063D804508220180063D80660822B7 +:103190000080069880550822F8B51E4B80261A68D4 +:1031A000002014003440324232D11A681A4F3243A0 +:1031B0001A6001223B68063093433B6000F0B4FE86 +:1031C0000122164D2B681E432E603B680A261343CE +:1031D0003B608027BF00124B1B683B4211D1013E70 +:1031E000F6B2FF2E09D17E220E4B1C682B68E40B31 +:1031F0001440934323432B6005E0082000F094FE25 +:10320000E9E7002EEFD180222B68600893432B6002 +:10321000F8BDC046C4F000405CF0004018F000402B +:1032200068F0004060F0004010B501F015F8012191 +:103230005820034A00F0A8FEFFF7AEFF10BDC046BD +:10324000600AFF1F10B578220021034800F084FEB9 +:1032500000F062FF002010BD786AFF1F70B5040007 +:1032600000F0BAFE00230C200B4A010059438D18D0 +:10327000515C00290DD0A14208D1012300246B70BC +:1032800001F042F800F088FF200070BD01330A2BE6 +:10329000EBD11224F6E7C046786AFF1F70B5040030 +:1032A00000F09AFE002319001D000D4A1078002836 +:1032B00006D0A0420CD1557001310C320A29F5D14B +:1032C000002B0AD100F028FF00F066FF002070BD3F +:1032D0005078461EB0411B18EEE701F015F8F3E7F1 +:1032E000786AFF1FF7B504000C20002384460E4DBA +:1032F000019267465F43E85D7E19A04212D0002824 +:103300000BD10A4B9C4662461B7808331370019B15 +:1033100070707C557160B360FEBD01330A2BE8D13B +:103320000320F9E70720F7E7786AFF1F746AFF1F99 +:103330008020F8B5484BC0051B68C1248360474B0B +:10334000FF251A68012313434361454BA4001A6803 +:10335000444B40211A60444B1A68444B1A60444B5A +:103360001A59AA431A51C52292009E58AE433143BE +:10337000802699509F583F49F6010F403E439E508A +:103380009E5880273602360A3043985080201A59BA +:1033900000020A4002431A5104341A59364E3F04BF +:1033A000324080263A431A511A5936061202120A3E +:1033B00032431A5108341A5980260A4002431A51DE +:1033C000C32292009F58B446AF4337439F509F5843 +:1033D000294E0F4007439F509F58374080263604A0 +:1033E000374380269F509F5836063F023F0A374397 +:1033F0009F50C0221F59AF433A431A511A59120223 +:10340000120A1643C6221E5192009C58AC436546D0 +:103410002C439C509C5800250C4020439850C720BA +:1034200080001A58154C1140C02212020A431A504B +:10343000134B1B78DB08AB4201DC0020F8BD23787E +:10344000002B06D0A368002B00D0984701350C3420 +:10345000EEE71220F2E7C0465C46FF1F5846FF1F0A +:10346000B0F00040706AFF1FB4F000406C6AFF1FAC +:1034700000E100E0FF00FFFFFFFF00FF786AFF1F91 +:10348000746AFF1F030010B51F2809D80722002007 +:103490001340072404490A78A24313430B7010BD5C +:1034A00000230620F5E7C046746AFF1F034A04495B +:1034B000136800200B4013607047C0461CF00040AA +:1034C000FFFFC1FF054B06491B780A6805485B07EB +:1034D00002401B0B134300200B607047746AFF1FF0 +:1034E0001CF00040FFFFC1FF70B50C25FFF7EAFF9D +:1034F0000A4B1C780A4BE4086543ED18002C01D1F7 +:10350000200070BD2B78002B06D06B68002B00D0FC +:103510009847013C0C3DF1E71220F2E7746AFF1F67 +:103520006C6AFF1F07B50422074801A900F0ACF937 +:10353000019B013305D18023044ADB0411680B434E +:10354000136000200EBDC0461C18001114F000408E +:103550001FB5002102220B0001910091052000F00F +:10356000C3FD02230B490A681A42FCD120230393AE +:10357000039B5A1E0392002BFAD1074A1368002BB3 +:10358000FCDA0B246C442000012100F0EDFD2078D2 +:1035900004B010BD90C8004000C8004013B504003E +:1035A0000A4B0193019B002B01D1112016BDFFF79F +:1035B000CFFF23000340044205D0052000F0B4FCF7 +:1035C000019B013BEDE71800F0E7C046FFFFFF0756 +:1035D00007B500F001FD80220821D205936A019110 +:1035E000002B01D10739916202210C4A1160019927 +:1035F000481E01900029FAD1033111600531019173 +:103600000199481E01900029FAD11160002B02D1C6 +:103610008022D205936200F0BFFD07BD00C00040CC +:10362000F0B52D4C89B02378002B4FD1FEF76AF905 +:1036300002232A4F03903A681A42FCD120230693B2 +:10364000069B5A1E0692002BFAD1254E3368002B9A +:10365000FCDA0120FFF7A2FF011E02D0112009B001 +:10366000F0BD030003220190009005AD9F2000F003 +:103670003BFD0321280000F077FD02233A681A423F +:10368000FCD120230793079B5A1E0792002BFAD1E7 +:103690003368002BFCDA0120FFF780FF0028DDD122 +:1036A0000398FEF743F9AA786B7811041B020B43C9 +:1036B00029780B4363601300113B0A49052B07D897 +:1036C00001239340A3600B60012323700020C6E711 +:1036D00080231B03F6E7C0464446FF1F90C8004006 +:1036E00000C800409808FF1F1E4B30B55A68187874 +:1036F0001D4B85B0D31859424B4101210093002343 +:1037000000F0DAFB194B1A4A02259A6300221A6567 +:1037100010325A658022C4219D65164B1648D2028C +:10372000DA6789004258154B80241A4080231B0415 +:1037300013434350642341200393E40500F006FA49 +:10374000402000F003FA6562039D6B1E0393002D79 +:10375000FAD103236362FFF73BFFA562FFF760FF27 +:1037600005B030BD5046FF1F95FFFEF700C8004072 +:10377000050001FF04E100E000E100E0FFFF00FFC1 +:10378000F0B585B00700FEF7BDF8022305002D4C0B +:1037900022681A42FCD120230093009B5A1E0092FB +:1037A000002BFAD1284E3368002BFCDA0120FFF7FA +:1037B000F5FE002803D01124200005B0F0BD234BF6 +:1037C0002360022322681A42FCD120230193019B2B +:1037D0005A1E0192002BFAD13368002BFCDA01202B +:1037E000FFF7DCFE0028E6D1194B1F600223226898 +:1037F0001A42FCD120230293029B5A1E0292002BF4 +:10380000FAD13368002BFCDA0120FFF7C7FE00284D +:10381000D1D1104B2360022322681A42FCD120230D +:103820000393039B5A1E0392002BFAD13368002B9B +:10383000FCDA0120FFF7B2FE041EBCD12800FEF71F +:1038400075F8B9E790C8004000C8004001000006C4 +:10385000A8C800400180000110B50020FFF790FFCC +:1038600010BD000010B5064B18705960FFF73CFF03 +:1038700000211320034AFFF735FD002010BDC0468C +:103880005046FF1FE936FF1FF0B5040085B00392D4 +:103890000291FEF737F8882263035B0B52051A4347 +:1038A0008023DB059D6A8023274F0092BA6800269B +:1038B00001901B039A420CD9F82326001B041E40DA +:1038C0001C4206D08022214B52025E6219680A43D4 +:1038D0001A60002D0BD100F07FFB02221C4B1A60F6 +:1038E0008023DB055A62013A9A6200F055FC0023FE +:1038F000039A934220D1002D0AD100F06DFB144BA6 +:1039000003221D608023DB055A629D6200F044FCA7 +:103910008023BA681B039A4208D9002E06D00022E1 +:103920000A4B0C495A621A680A401A600198FDF75E +:10393000FDFF002005B0F0BD009A0299D218127860 +:10394000CA540133D4E7C0464446FF1F00C80040B4 +:1039500000C00040FFFFFEFFF0B587B00291039268 +:103960000400FDF7CFFF019000F036FB8023022515 +:103970000122234EDB0535605D629A6200F00CFC8B +:10398000204F3B682B42FCD120230493049B5A1EFA +:103990000492002BFAD11C4D2B68002BFCDA01207D +:1039A000FFF7FCFD002802D0112007B0F0BD200079 +:1039B000039A029900F070FB022304003A681A424D +:1039C000FCD120230593059B5A1E0592002BFAD1AA +:1039D0002B68002BFCDA0120FFF7E0FD051EE3D188 +:1039E00000F0FAFA80230322DB0535605A629D62FB +:1039F00000F0D2FB0198FDF799FFE0B2D5E7C04691 +:103A000000C0004090C8004000C80040F0B58024CD +:103A100089B00600FDF776FFE405A36A022503934B +:103A2000029000F0D9FA0123304F3D606562A36235 +:103A300000F0B2FB2E4C23682B42FCD120230593CF +:103A4000059B5A1E0592002BFAD12A4D2B68002B9C +:103A5000FCDA0120FFF7A2FD002803D0112420008A +:103A600009B0F0BD244B2360022322681A42FCD126 +:103A700020230693069B5A1E0692002BFAD12B6830 +:103A8000002BFCDA0120FFF789FD021EE6D11B4B5B +:103A900003211E60030001900090202000F024FB11 +:103AA000022322681A42FCD120230793079B5A1E47 +:103AB0000792002BFAD12B68002BFCDA0320FFF7CA +:103AC0006DFD041ECAD100F087FA80230322DB05B6 +:103AD0003C605A629C6200F05FFB039B002B01D1AB +:103AE000FFF776FD0298FDF721FFB8E700C0004020 +:103AF00090C8004000C800400100000694C8004083 +:103B000007B5000201910422000A01A9FFF724FF72 +:103B10000EBD000073B5050005240B4AA3005B42EF +:103B20009B1819686B46DE1D300000F0CDFB0228A3 +:103B300004D133782B55013CEFD276BD052CFCD057 +:103B40000128FAD10230F8E7140900111F2807D81C +:103B5000012380228340D20591680B439360704714 +:103B60003F2808D80123802220388340D20551699C +:103B70000B435361F3E75F28F1D8012380224038DB +:103B80008340D205116A0B431362E8E71F2807D868 +:103B9000012280218240C9058B6893438B60704766 +:103BA0003F2808D80122802120388240C9054B696E +:103BB00093434B61F3E75F28F1D80122802140381D +:103BC0008240C9050B6A93430B62E8E71F2810D8AF +:103BD00080230200DB05153A1968012A06D8202245 +:103BE0009143196019680A431A60704701228240A4 +:103BF000F6E73F2811D880230200DB05353AD96863 +:103C0000032A06D810229143D960D9680A43DA60A2 +:103C1000EBE7012220388240F5E75F28E5D8422310 +:103C20008022181A413B8340D205516A9943516260 +:103C3000516A0B435362D8E710B50400012813D131 +:103C4000A022184992050B685B015B0913430B60C6 +:103C5000154B164A19681140154A0A431A6040224A +:103C600019680A431A6010BD0028FCD101000A201F +:103C700000F042FB21000B2000F03EFBC0220A4B6B +:103C8000920019680A4340211A601A688A431A6030 +:103C9000B022044912060B685B015B0913430B60F9 +:103CA000E1E7C04614F000401CF000407F00FEFF3A +:103CB00080FD010072B6074A1368013313600422C5 +:103CC000054B1A600023054A13608022D205536019 +:103CD000FEE7C0467808FF1FC0F00040C4F0004077 +:103CE000044B054A1A60054B1A600022044B1A6007 +:103CF0007047C046140AFF1F841E0000380AFF1FC9 +:103D0000C4F000400023034A1360034A1360034ACF +:103D10001360704754F0004040F1004044F100400F +:103D2000002310B5184C8AB0009301932378012B1F +:103D300027D06946012000F0A7F9002817D1009B81 +:103D400012490293019B06AA0393114B02A81B6818 +:103D50000493104B1B68059300F006F910220E49DE +:103D600006A800F0D1F9002804D1FF232370002019 +:103D70000AB010BD0123094A074902A8237000F0C8 +:103D8000F3F80120F4E7C0467467FF1F1029001103 +:103D9000082900110C290011202900117867FF1F44 +:103DA00013B501246946012000F06EF9034B00941D +:103DB0000193FFF7B5FF200016BDC046BB0B000006 +:103DC00010B5FFF79FFFFFF7EBFF002802D0024B73 +:103DD000984710BDFEE7C046E1A2000002B471465C +:103DE00049084900095649008E4402BC7047C04644 +:103DF00002B4714649084900095C49008E4402BC7E +:103E00007047C04603B47146490840004900095A4A +:103E100049008E4403BC704701B40248844601BC8B +:103E2000604700BF01D7000001B40248844601BCCE +:103E3000604700BF9D6A000001B40248844601BC8F +:103E4000604700BFA1AF000001B40248844601BC36 +:103E5000604700BFF9ED000001B40248844601BC90 +:103E6000604700BF090E000001B40248844601BC4F +:103E7000604700BF85C1000001B40248844601BC10 +:103E8000604700BF0934010001B40248844601BC08 +:103E9000604700BFF90D010001B40248844601BC2F +:103EA000604700BFCD0C010001B40248844601BC4C +:103EB000604700BF156B010001B40248844601BC95 +:103EC000604700BFC56D010001B40248844601BCD3 +:103ED000604700BFD544010001B40248844601BCDC +:103EE000604700BFBD0B010001B40248844601BC1D +:103EF000604700BFA9D8000001B40248844601BC55 +:103F0000604700BF8944000001B40248844601BCF8 +:103F1000604700BFC1A5000001B40248844601BC4F +:103F2000604700BFF935010001B40248844601BC76 +:103F3000604700BF0189000001B40248844601BC0B +:103F4000604700BF51B8000001B40248844601BC7C +:103F5000604700BF53B9000001B40248844601BC69 +:103F6000604700BFB70E000001B40248844601BCA0 +:103F7000604700BFDD3F000001B40248844601BC39 +:103F8000604700BF8914010001B40248844601BCA7 +:103F9000604700BF0167010001B40248844601BCCC +:103FA000604700BFB352010001B40248844601BC1F +:103FB000604700BF016C010001B40248844601BCA7 +:103FC000604700BFE90B010001B40248844601BC10 +:103FD000604700BFC1F7000001B40248844601BC3D +:103FE000604700BF75A9000001B40248844601BCC7 +:103FF000604700BF6D0B010001B40248844601BC5C +:10400000604700BFE9D4000001B40248844601BC07 +:10401000604700BF7912010001B40248844601BC28 +:10402000604700BFE94C010001B40248844601BC6E +:10403000604700BFE9F6000001B40248844601BCB5 +:10404000604700BF090E000001B40248844601BC6D +:10405000604700BF6DF6000001B40248844601BC11 +:10406000604700BFDD0C010001B40248844601BC7A +:10407000604700BFE917010001B40248844601BC53 +:10408000604700BFED6B010001B40248844601BCEB +:10409000604700BFE1AC000001B40248844601BCA7 +:1040A000604700BF9573010001B40248844601BC1B +:1040B000604700BFC115010001B40248844601BC3D +:1040C000604700BF1907010001B40248844601BCE3 +:1040D000604700BF5976010001B40248844601BC24 +:1040E000604700BFEDA5000001B40248844601BC52 +:1040F000604700BF496D010001B40248844601BC1D +:10410000604700BF8937010001B40248844601BC02 +:10411000604700BFCD4C010001B40248844601BC99 +:10412000604700BFADAE000001B40248844601BC48 +:10413000604700BFE927000001B40248844601BC83 +:10414000604700BFC9A9000001B40248844601BC11 +:10415000604700BF8B52010001B40248844601BC95 +:10416000604700BF8552010001B40248844601BC8B +:10417000604700BF3D71010001B40248844601BCA4 +:10418000604700BFDD0A010001B40248844601BC5B +:10419000604700BF75F8000001B40248844601BCC6 +:1041A000604700BF9DA9000001B40248844601BCDD +:1041B000604700BF116E000001B40248844601BC94 +:1041C000604700BF0534010001B40248844601BCC9 +:1041D000604700BFC166010001B40248844601BCCB +:1041E000604700BFDDB7001101B40248844601BC3E +:1041F000604700BF0134010001B40248844601BC9D +:10420000604700BF2D6C010001B40248844601BC28 +:10421000604700BF8512010001B40248844601BC1A +:10422000604700BFD9B0000001B40248844601BC19 +:10423000604700BF6137010001B40248844601BCF9 +:10424000604700BF8D82000001B40248844601BC73 +:10425000604700BF0D52010001B40248844601BC12 +:10426000604700BFED68010001B40248844601BC0C +:10427000604700BF7997000001B40248844601BC42 +:10428000604700BF8D11010001B40248844601BCA3 +:10429000604700BFF535010001B40248844601BC07 +:1042A000604700BFE512010001B40248844601BC2A +:1042B000604700BFC95C010001B40248844601BCEC +:1042C000604700BF6911010001B40248844601BC87 +:1042D000604700BF9938001101B40248844601BC10 +:1042E000604700BF2144000001B40248844601BC7D +:1042F000604700BF19FA000001B40248844601BCBF +:10430000604700BF15A4001101B40248844601BCF7 +:10431000604700BF21A9000001B40248844601BCE7 +:10432000604700BF71B0000001B40248844601BC80 +:10433000604700BFBD5C010001B40248844601BC77 +:10434000604700BFF9A6000001B40248844601BCE2 +:08435000604700BF4DF90000B9 +:104358000200000062C1001101000000F4BE00115B +:10436800020000005EC10011010000009843FF1F19 +:1043780002000000FCBE001101000000B464FF1F31 +:10438800020000005CC10011030000002864FF1F48 +:10439800120000000200000062C1001101000000CC +:1043A8003CBF0011020000005EC1001101000000C6 +:1043B80039BF00110200000046BF001103000000D1 +:1043C8006364FF1F020000005CC1001103000000CD +:1043D8007864FF1F020000005EC1001101000000A8 +:1043E80038BF00110200000044BF001103000000A4 +:1043F8003964FF1F020000005CC1001103000000C7 +:104408005A64FF1F0200000062C100110100000091 +:104418007CBF0011020000005EC100110100000015 +:10442800E144FF1F020000008EBF001101000000E0 +:1044380077BF0011020000005EC1001101000000FA +:10444800E044FF1F020000008CBF001101000000C3 +:104458008064FF1F020000005EC10011010000001F +:10446800DF44FF1F020000008ABF001101000000A6 +:1044780067BF0011020000005EC1001101000000CA +:10448800DE44FF1F0200000088BF00110100000089 +:1044980062BF0011020000005EC1001101000000AF +:1044A800DD44FF1F0200000086BF0011010000006C +:1044B8005DBF0011020000005EC100110100000094 +:1044C800DC44FF1F0200000084BF0011010000004F +:1044D80058BF0011020202020202000000000000A0 +:1044E800141300004D4D0011134D0011D0BF0011E1 +:1044F800900118001800FFFF0701020304050602D7 +:10450800010600000000000000000000000000009C +:104518000000000000000000000000000000030090 +:104528000200000062C100110100000050C000112B +:10453800020000005EC10011010000009845FF1F45 +:10454800020000005AC0001101000000AE64FF1F05 +:10455800020000005CC10011030000001C67FF1F7F +:10456800020000005EC10011010000009845FF1F15 +:104578000200000058C0001101000000B064FF1FD5 +:10458800020000005CC10011030000001467FF1F57 +:1045980012006C6C00000000000000000000000029 +:1045A800080700000001000000000111FFFF0000E3 +:1045B80050485936000000000000000001000000CB +:1045C800E1BF00110B000500F7000000B40000284F +:1045D800002800283075A000A000A000A000000856 +:1045E8000008E001F000100010001000100010009A +:1045F800100050005000500010001000D0070000BC +:10460800000000000F0001000500307507001000D1 +:10461800010081FF00000000FF000000FD7500118F +:104628000574001195710011FFFF0100FF000000E3 +:1046380019A00011959D0011AD9C0011000000000B +:104648000000000000000800040000003B00010812 +:104658005902E00188212800FF0000000200000044 +:1046680062C100110100000028C200110200000010 +:104678005EC1001101000000E146FF1F02000000BA +:104688005AC1001101000000306BFF1F020000003A +:104698005EC1001101000000E046FF1F020000009B +:1046A80058C1001101000000DE46FF1F0200000093 +:1046B8005EC1001101000000DC46FF1F020000007F +:1046C80056C1001101000000D446FF1F1800180051 +:1046D8000000900102000003020200000200000036 +:1046E80062C10011010000003CC20011020000007C +:1046F8005EC10011010000002447FF1F02000000F6 +:1047080054C1001100000000000000000200000079 +:0E4718005CC1001103000000506BFF1F20FF6A +:040000051FFF184180 +:00000001FF diff --git a/bthome_phy6222/bin/TH05V13_v13.bin b/bthome_phy6222/bin/TH05V13_v13.bin new file mode 100644 index 0000000000000000000000000000000000000000..c85daf8791ea199f21413748454a97c95a762228 GIT binary patch literal 50932 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 literal 0 HcmV?d00001 diff --git a/bthome_phy6222/mk_windows.cmd b/bthome_phy6222/mk_windows.cmd index f270e0d..4dde46e 100644 --- a/bthome_phy6222/mk_windows.cmd +++ b/bthome_phy6222/mk_windows.cmd @@ -7,39 +7,59 @@ @make -s -j PROJECT_NAME=THB2%SWVER% POJECT_DEF="-DDEVICE=DEVICE_THB2" @if not exist "build\THB2%SWVER%.hex" goto :error @copy "build\THB2%SWVER%.bin" .\bin +@ @del /Q "build\BTH01%SWVER%.hex" @del /Q "build\BTH01%SWVER%.bin" @make -s clean @make -s -j PROJECT_NAME=BTH01%SWVER% POJECT_DEF="-DDEVICE=DEVICE_BTH01" @if not exist "build\BTH01%SWVER%.hex" goto :error @copy "build\BTH01%SWVER%.bin" .\bin +@ @del /Q "build\TH05%SWVER%.hex" @del /Q "build\TH05%SWVER%.bin" @make -s clean @make -s -j PROJECT_NAME=TH05%SWVER% POJECT_DEF="-DDEVICE=DEVICE_TH05" @if not exist "build\TH05%SWVER%.hex" goto :error @copy "build\TH05%SWVER%.bin" .\bin +@ +@del /Q "build\TH05V13%SWVER%.hex" +@del /Q "build\TH05V13%SWVER%.bin" +@make -s clean +@make -s -j PROJECT_NAME=TH05V13%SWVER% POJECT_DEF="-DDEVICE=DEVICE_TH05V13" +@if not exist "build\TH05V13%SWVER%.hex" goto :error +@copy "build\TH05V13%SWVER%.bin" .\bin +@ @del /Q "build\THB1%SWVER%.hex" @del /Q "build\THB1%SWVER%.bin" @make -s clean @make -s -j PROJECT_NAME=THB1%SWVER% POJECT_DEF="-DDEVICE=DEVICE_THB1" @if not exist "build\THB1%SWVER%.hex" goto :error @copy "build\THB1%SWVER%.bin" .\bin +@ @del /Q "build\BOOT_THB2%SWVER%.hex" @make -s clean @make -s -j PROJECT_NAME=BOOT_THB2%SWVER% BOOT_OTA=1 POJECT_DEF="-DDEVICE=DEVICE_THB2" @if not exist "build\BOOT_THB2%SWVER%.hex" goto :error @copy "build\BOOT_THB2%SWVER%.hex" .\bin +@ @del /Q "build\BOOT_BTH01%SWVER%.hex" @make -s clean @make -s -j PROJECT_NAME=BOOT_BTH01%SWVER% BOOT_OTA=1 POJECT_DEF="-DDEVICE=DEVICE_BTH01" @if not exist "build\BOOT_BTH01%SWVER%.hex" goto :error @copy "build\BOOT_BTH01%SWVER%.hex" .\bin +@ @del /Q "build\BOOT_TH05%SWVER%.hex" @make -s clean @make -s -j PROJECT_NAME=BOOT_TH05%SWVER% BOOT_OTA=1 POJECT_DEF="-DDEVICE=DEVICE_TH05" @if not exist "build\BOOT_TH05%SWVER%.hex" goto :error @copy "build\BOOT_TH05%SWVER%.hex" .\bin +@ +@del /Q "build\BOOT_TH05V13%SWVER%.hex" +@make -s clean +@make -s -j PROJECT_NAME=BOOT_TH05V13%SWVER% BOOT_OTA=1 POJECT_DEF="-DDEVICE=DEVICE_TH05V13" +@if not exist "build\BOOT_TH05V13%SWVER%.hex" goto :error +@copy "build\BOOT_TH05V13%SWVER%.hex" .\bin +@ @del /Q "build\BOOT_THB1%SWVER%.hex" @make -s clean @make -s -j PROJECT_NAME=BOOT_THB1%SWVER% BOOT_OTA=1 POJECT_DEF="-DDEVICE=DEVICE_THB1" diff --git a/bthome_phy6222/source/cmd_parser.c b/bthome_phy6222/source/cmd_parser.c index e94d2f4..ecc36c7 100644 --- a/bthome_phy6222/source/cmd_parser.c +++ b/bthome_phy6222/source/cmd_parser.c @@ -43,6 +43,56 @@ const dev_id_t dev_id = { .services = DEV_SERVICES }; +#if (OTA_TYPE == OTA_TYPE_BOOT) + +#define FLASH_ADDR_RINFO FLASH_BASE_ADDR +#define OFFSET_ADDR_RMAC 0x900 +#define FLASH_ADDR_RMAC (FLASH_BASE_ADDR + OFFSET_ADDR_RMAC) + +static void write_fix_mac(uint32_t *pdata) { + uint32_t idx, tmp; + uint8_t buf_sector[FLASH_SECTOR_SIZE]; + hal_flash_read(FLASH_ADDR_RINFO, buf_sector, FLASH_SECTOR_SIZE); + memcpy(&buf_sector[OFFSET_ADDR_RMAC], pdata, CHIP_MADDR_LEN*4); + tmp = phy_flash.Capacity; + phy_flash.Capacity |= FLASH_MAX_SIZE; + *(volatile int*) 0x1fff0898 = phy_flash.Capacity; + hal_flash_unlock(); + hal_flash_erase_sector(FLASH_ADDR_RINFO + phy_flash.Capacity); + for(idx = 0; idx < FLASH_SECTOR_SIZE; idx += 256) + hal_flash_write(FLASH_ADDR_RINFO + phy_flash.Capacity + idx, &buf_sector[idx], 256); + phy_flash.Capacity = tmp; + *(volatile int*) 0x1fff0898 = phy_flash.Capacity; +} + +void fix_mac(int write) { + int i; + uint32_t data[CHIP_MADDR_LEN]; + if(write) { + if(read_chip_mAddr((uint8_t *)data) == CHIP_ID_VALID) { + if(memcmp(ownPublicAddr, data, CHIP_MADDR_LEN) == 0) + return; + } + for (i = 0; i < CHIP_MADDR_LEN; i++) { + data[CHIP_MADDR_LEN - 1 - i] = (1 << (((ownPublicAddr[i] & 0xf0) >> 4) + 16)) + | (1 << (ownPublicAddr[i] & 0x0f)); + } + write_fix_mac(data); + + } else { // clear + hal_flash_read(FLASH_ADDR_RMAC, (uint8_t *)data, sizeof(data)); + for(i = 0; i < CHIP_MADDR_LEN; i++) { + if(data[i] != 0xffffffff) { + memset(&data, 0xff, sizeof(data)); + write_fix_mac(data); + break; + } + } + } +} + +#endif + int cmd_parser(uint8_t * obuf, uint8_t * ibuf, uint32_t len) { int olen = 0; if (len) { @@ -139,9 +189,9 @@ int cmd_parser(uint8_t * obuf, uint8_t * ibuf, uint32_t len) { memcpy(&obuf[1], (uint8_t *)&phy_flash.IdentificationID, 8); olen = 1 + 8; } else if (cmd == CMD_ID_MTU) { - if (ibuf[1] <= MTU_SIZE) + if (ibuf[1] <= MTU_SIZE) { ATT_UpdateMtuSize(gapRole_ConnectionHandle, ibuf[1]); - else + } else obuf[1] = 0xff; olen = 2; } else if (cmd == CMD_ID_REBOOT) { @@ -200,6 +250,11 @@ int cmd_parser(uint8_t * obuf, uint8_t * ibuf, uint32_t len) { } memcpy(&obuf[1], ownPublicAddr, MAC_LEN); olen = MAC_LEN + 1; +#if (OTA_TYPE == OTA_TYPE_BOOT) + } else if (cmd == CMD_ID_FIX_MAC && len > 1) { + fix_mac(ibuf[1]); + olen = 2; +#endif } else if (cmd == CMD_ID_DNAME) { if (len > 1 && len < B_MAX_ADV_LEN - 2) { if(ibuf[1] == 0) diff --git a/bthome_phy6222/source/cmd_parser.h b/bthome_phy6222/source/cmd_parser.h index c516d87..197b6a3 100644 --- a/bthome_phy6222/source/cmd_parser.h +++ b/bthome_phy6222/source/cmd_parser.h @@ -27,7 +27,8 @@ typedef enum { CMD_ID_SEN_ID = 0x05, // Get sensor ID CMD_ID_FLASH_ID = 0x06, // Get Flash JEDEC ID CMD_ID_SERIAL = 0x07, // Get serial string - CMD_ID_DEV_MAC = 0x10, // Get/Set MAC [+RandMAC], [size][mac[6][randmac[2]]] + CMD_ID_DEV_MAC = 0x10, // Get/Set MAC [+RandMAC], [size] + CMD_ID_FIX_MAC = 0x11, // Fixed MAC (не безопасная операция, переписывает сектор 0x1000 Flash) CMD_ID_BKEY = 0x18, // Get/Set beacon bindkey in EEP CMD_ID_COMFORT = 0x20, // Get/Set comfort parameters CMD_ID_EXTDATA = 0x22, // Get/Set show ext. data diff --git a/bthome_phy6222/source/config.h b/bthome_phy6222/source/config.h index d85e813..67a3067 100644 --- a/bthome_phy6222/source/config.h +++ b/bthome_phy6222/source/config.h @@ -40,9 +40,10 @@ #define DEVICE_BTH01 20 #define DEVICE_TH05 21 #define DEVICE_THB1 23 +#define DEVICE_TH05V13 24 #ifndef DEVICE -#define DEVICE DEVICE_THB1 +#define DEVICE DEVICE_TH05V13 #endif // supported services by the device (bits) @@ -199,7 +200,7 @@ #define DEF_MANUFACTURE_NAME_STR "Tuya" #elif DEVICE == DEVICE_THB1 -/* Model: THB1/BT1 */ +/* Model: THB1 */ #if OTA_TYPE == OTA_TYPE_BOOT #define DEV_SERVICES (OTA_TYPE \ | SERVICE_SCREEN \ @@ -243,6 +244,51 @@ #define DEF_HARDWARE_REVISION "0017" #define DEF_MANUFACTURE_NAME_STR "Tuya" +#elif DEVICE == DEVICE_TH05V13 +/* Model: TH05 v1.2 */ +#if OTA_TYPE == OTA_TYPE_BOOT +#define DEV_SERVICES (OTA_TYPE \ + | SERVICE_SCREEN \ + | SERVICE_THS \ + | SERVICE_KEY \ +) +#else +#define DEV_SERVICES (OTA_TYPE \ + | SERVICE_SCREEN \ + | SERVICE_THS \ + | SERVICE_KEY \ + | SERVICE_HISTORY \ + | SERVICE_TH_TRG \ + | SERVICE_RDS \ +) +#endif + +#if ((DEV_SERVICES & SERVICE_THS) == 0) && (DEV_SERVICES & SERVICE_TH_TRG) +#error "Not SERVICE_TH_TRG!" +#endif + +#define ADC_PIN_USE_OUT 1 // нет подключения к +Vbat +#define ADC_PIN GPIO_P15 +#define ADC_VBAT_CHL VBAT_ADC_P15 + +#define USE_TH_SENSOR 1 +#define USE_SECREEN 1 + +#define I2C_SDA GPIO_P31 // SDA +#define I2C_SCL GPIO_P32 // SCL + +#define I2C_LCD_SDA GPIO_P11 // SDA +#define I2C_LCD_SCL GPIO_P14 // SCL + +#define GPIO_KEY GPIO_P02 + +#define GPIO_TRG GPIO_P09 // mark TX +#define GPIO_INP GPIO_P10 // mark RX + +#define DEF_MODEL_NUMBER_STR "TH05" +#define DEF_HARDWARE_REVISION "0018" +#define DEF_MANUFACTURE_NAME_STR "Tuya" + #else #error "DEVICE Not released!" #endif diff --git a/bthome_phy6222/source/lcd.h b/bthome_phy6222/source/lcd.h index def21de..5abdd00 100644 --- a/bthome_phy6222/source/lcd.h +++ b/bthome_phy6222/source/lcd.h @@ -2,14 +2,38 @@ * lcd_th05.h * * Created on: 23 янв. 2024 г. - * Author: pvvx + * Author: pvvx, Shestoperd */ #ifndef _LCD_TH05_H_ #define _LCD_TH05_H_ /* - * TH-05 LCD buffer: byte.bit + * TH-05 v1.3 LCD buffer: byte.bit + --7.7-- --6.7-- --4.3-- + | | | | | | | + | 7.3 7.6 6.3 6.6 5.7 4.2 + | | | | | | | o 5.3 + -6.0- 7.0 --7.2-- --6.2-- --5.6-- +--- 5.3 + | | | | | | | 5.3| + | 7.1 7.5 6.1 6.5 5.5 4.1 ---- 5.2 + | | | | | | | 5.3| + --7.4-- --6.4-- * --4.0-- ---- 5.1 + 5.0 + + BLE --1.0-- --2.0-- |-------------4.6-------------| + 0.4 | | | | 3.6 | 3.5 | 3.2 | 3.1 | 4.5 | ] + 1.4 1.1 2.4 2.1 |-------------4.6-------------| + 0.1 0.1 | | | | + 0.0( O 0.2 O )0.0 --1.5-- --2.5-- + ----- | | | | + \___/ 1.6 1.2 2.6 2.2 % + 0.3 | | | | 4.7 + --1.3-- --2.3-- +*/ + +/* + * TH-05 v1.4 LCD buffer: byte.bit --0.4-- --1.4-- --2.4-- BAT | | | | | | | 3.6 @@ -62,6 +86,8 @@ #if (DEVICE == DEVICE_THB1) #define LCD_BUF_SIZE 7 +#elif (DEVICE == DEVICE_TH05V13) +#define LCD_BUF_SIZE 8 #else #define LCD_BUF_SIZE 6 #endif diff --git a/bthome_phy6222/source/lcd_th05.c b/bthome_phy6222/source/lcd_th05.c index f01e94b..b59ee51 100644 --- a/bthome_phy6222/source/lcd_th05.c +++ b/bthome_phy6222/source/lcd_th05.c @@ -2,7 +2,7 @@ * lcd_th05.c * * Created on: 23 янв. 2024 г. - * Author: pvvx + * Author: pvvx, Shestoperd */ #include #include "types.h" diff --git a/bthome_phy6222/source/lcd_th05.h b/bthome_phy6222/source/lcd_th05.h deleted file mode 100644 index ef07399..0000000 --- a/bthome_phy6222/source/lcd_th05.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - * lcd_th05.h - * - * Created on: 23 янв. 2024 г. - * Author: pvvx - */ - -#ifndef _LCD_TH05_H_ -#define _LCD_TH05_H_ - -/* - * TH-05 LCD buffer: byte.bit - - --0.4-- --1.4-- --2.4-- BAT - | | | | | | | 3.6 - | 0.6 0.0 1.6 1.0 2.6 2.0 - | | | | | | | o 3.5 - 0.3 --0.2-- --1.2-- --2.2-- +--- 3.5 - | | | | | | | 3.5| - | 0.5 0.1 1.5 1.1 2.5 2.1 ---- 3.7 - | | | | | | | 3.5| - --0.7-- --1.7-- * --2.7-- ---- 2.3 - 1.3 - --4.4-- --5.4-- - | | | | - 3.0 3.0 4.6 4.0 5.6 5.0 - / \ / \ | | | | - 3.4( \_/ 3.2 \_/ )3.4 --4.2-- --5.2-- - 3.2 / \ 3.2 | | | | - \_/ 4.5 4.1 5.5 5.1 % - 3.0 | | | | 5.3 - --4.7-- --5.7-- - OO 4.3 - None: 3.1, 3.3 -*/ - -#define LCD_BUF_SIZE 6 - -extern uint8_t lcd_i2c_addr; // LCD controller I2C address -extern uint8_t display_buff[LCD_BUF_SIZE]; - - -/* 0x0 = " " - * 0x1 = "°Г" - * 0x2 = " _" - * 0x3 = "°C" - * 0x4 = " -" - * 0x5 = "°F" - * 0x6 = " =" - * 0x7 = "°E" */ -typedef enum { - LCD_TSYMBOL_NONE, // " " - LCD_TSYMBOL_C = 3, // "°C" - LCD_TSYMBOL_F = 5, // "°F" - LCD_TSYMBOL_EQ = 6, // " =" - LCD_TSYMBOL_E = 7 // "°E" -} LCD_TEMP_SYMBOLS; - -/* 0 = " " off, - * 1 = " ^_^ " happy - * 2 = " -^- " sad - * 3 = " ooo " - * 4 = "( )" - * 5 = "(^_^)" happy - * 6 = "(-^-)" sad - * 7 = "(ooo)" */ -typedef enum { - LD_SSYMBOL_OFF, // 0 = " " off, - LD_SSYMBOL__HAPPY, // 1 = " ^_^ " happy - LD_SSYMBOL__SAD, // 2 = " -^- " sad - LD_SSYMBOL_OOO, // 3 = " ooo " - LD_SSYMBOL_CC, // 4 = "( )" - LD_SSYMBOL_HAPPY, // 5 = "(^_^)" happy - LD_SSYMBOL_SAD, // 6 = "(-^-)" sad - LD_SSYMBOL_ALL, // 7 = "(ooo)" -} LCD_SMILEY_SYMBOLS; - -void init_lcd(void); -void update_lcd(void); -void show_small_number(int16_t number, bool percent); -void show_big_number_x10(int16_t number); -void show_battery_symbol(bool state); -void show_ble_symbol(bool state); -void show_smiley(LCD_SMILEY_SYMBOLS symbol); -void show_temp_symbol(LCD_TEMP_SYMBOLS symbol); -//void chow_clock(void); -//void chow_measure(void); - -void chow_lcd(int flg); -void lcd_show_version(void); - -#endif /* _LCD_TH05_H_ */ diff --git a/bthome_phy6222/source/lcd_th05v13.c b/bthome_phy6222/source/lcd_th05v13.c new file mode 100644 index 0000000..02d8a13 --- /dev/null +++ b/bthome_phy6222/source/lcd_th05v13.c @@ -0,0 +1,406 @@ +/* + * lcd_th05.c + * + * Created on: 23 янв. 2024 г. + * Author: pvvx, Shestoperd + */ +#include +#include "types.h" +#include "config.h" +#if (DEV_SERVICES & SERVICE_SCREEN) && (DEVICE == DEVICE_TH05V13) +#include "OSAL.h" +#include "gpio.h" +#include "rom_sym_def.h" +#include "dev_i2c.h" +#include "sensors.h" +#include "lcd.h" +#include "thb2_peripheral.h" + +#define LCD_I2C_ADDR 0x3E +#define I2C_WAIT_ms 1 + +dev_i2c_t i2c_dev1 = { + //.pi2cdev = AP_I2C1, + .scl = I2C_LCD_SCL, + .sda = I2C_LCD_SDA, + .speed = I2C_100KHZ, + .i2c_num = 0 +}; + +/* 0,1,2,3,4,5,6,7,8,9,A,b,C,d,E,F*/ +const uint8_t display_numbers67[] = { + // 76543210 + 0b011111010, // 0 + 0b001100000, // 1 + 0b011010110, // 2 + 0b011110100, // 3 + 0b001101100, // 4 + 0b010111100, // 5 + 0b010111110, // 6 + 0b011100000, // 7 + 0b011111110, // 8 + 0b011111100, // 9 + 0b011101110, // A + 0b000111110, // b + 0b010011010, // C + 0b001110110, // d + 0b010011110, // E + 0b010001110 // F +}; +#define LCD_SYM67_b 0b000111110 // "b" +#define LCD_SYM67_H 0b001101110 // "H" +#define LCD_SYM67_h 0b001001110 // "h" +#define LCD_SYM67_i 0b000000010 // "i" +#define LCD_SYM67_L 0b000011010 // "L" +#define LCD_SYM67_o 0b000110110 // "o" +#define LCD_SYM67_t 0b000011110 // "t" +#define LCD_SYM67_0 0b011111010 // "0" +#define LCD_SYM67_A 0b011101110 // "A" +#define LCD_SYM67_a 0b010110110 // "a" +#define LCD_SYM67_P 0b011001110 // "P" + +const uint8_t display_numbers45[] = { + // 76543210 + 0b010101111, // 0 + 0b000000110, // 1 + 0b001101101, // 2 + 0b001001111, // 3 + 0b011000110, // 4 + 0b011001011, // 5 + 0b011101011, // 6 + 0b000001110, // 7 + 0b011101111, // 8 + 0b011001111, // 9 + 0b011101110, // A + 0b011000011, // b + 0b010101001, // C + 0b001100110, // d + 0b011101001, // E + 0b011101000 // F +}; + +#define LCD_SYM45_b 0b011100011 // "b" +#define LCD_SYM45_H 0b011100110 // "H" +#define LCD_SYM45_h 0b011100010 // "h" +#define LCD_SYM45_i 0b000100000 // "i" +#define LCD_SYM45_L 0b010100001 // "L" +#define LCD_SYM45_o 0b001100011 // "o" +#define LCD_SYM45_t 0b011100001 // "t" +#define LCD_SYM45_0 0b010101111 // "0" +#define LCD_SYM45_A 0b011101110 // "A" +#define LCD_SYM45_a 0b001101111 // "a" +#define LCD_SYM45_P 0b011101100 // "P" + +const uint8_t display_numbers12[] = { + // 76543210 + 0b001011111, // 0 + 0b000000110, // 1 + 0b001101011, // 2 + 0b000101111, // 3 + 0b000110110, // 4 + 0b000111101, // 5 + 0b001111101, // 6 + 0b000000111, // 7 + 0b001111111, // 8 + 0b000111111, // 9 + 0b001110111, // A + 0b001111100, // b + 0b001011001, // C + 0b001101110, // d + 0b001111001, // E + 0b001110001 // F +}; + +#define LCD_SYM12_b 0b001111100 // "b" +#define LCD_SYM12_H 0b001110110 // "H" +#define LCD_SYM12_h 0b001110100 // "h" +#define LCD_SYM12_i 0b001000000 // "i" +#define LCD_SYM12_L 0b001011000 // "L" +#define LCD_SYM12_o 0b001101100 // "o" +#define LCD_SYM12_t 0b001111000 // "t" +#define LCD_SYM12_0 0b001011111 // "0" +#define LCD_SYM12_A 0b001110111 // "A" +#define LCD_SYM12_a 0b001101101 // "a" +#define LCD_SYM12_P 0b001110011 // "P" + +uint8_t lcd_i2c_addr; // = 0x3E + +uint8_t display_buff[LCD_BUF_SIZE] = { + 0, LCD_SYM12_o, LCD_SYM12_o, 0 +}; +uint8_t display_out_buff[LCD_BUF_SIZE+1]; + +const uint8_t lcd_init_cmd[] = { + // LCD controller initialize: + 0xea, // Set IC Operation(ICSET): Software Reset, Internal oscillator circuit + 0xd8, // Mode Set (MODE SET): Display enable, 1/3 Bias, power saving + 0xbc, // Display control (DISCTL): Power save mode 3, FRAME flip, Power save mode 1 + 0x80, // load data pointer + 0xf0, // blink control off, 0xf2 - blink + 0xfc, // All pixel control (APCTL): Normal + 0x60, + 0x00,0x00,000,0x00,0x00,0x00,0x00,0x00,0x00 +}; + +/* 0x0 = " " + * 0x1 = "°Г" + * 0x2 = " _" + * 0x3 = "°C" + * 0x4 = " -" + * 0x5 = "°F" + * 0x6 = " =" + * 0x7 = "°E" */ +void show_temp_symbol(LCD_TEMP_SYMBOLS symbol) { + display_buff[5] &= ~(BIT(1) | BIT(2) | BIT(3)); + if(symbol & 1) + display_buff[5] |= BIT(3); + if(symbol & 2) + display_buff[5] |= BIT(1); + if(symbol & 4) + display_buff[5] |= BIT(2); +} + +/* 0 = " " off, + * 1 = " ^_^ " happy + * 2 = " -^- " sad + * 3 = " ooo " + * 4 = "( )" + * 5 = "(^_^)" happy + * 6 = "(-^-)" sad + * 7 = "(ooo)" */ +void show_smiley(LCD_SMILEY_SYMBOLS symbol) { + display_buff[0] &= ~(BIT(0) | BIT(1) | BIT(2) | BIT(3)); + if(symbol & 1) + display_buff[0] |= BIT(1) | BIT(3); + if(symbol & 2) + display_buff[0] |= BIT(1) | BIT(2); + if(symbol & 4) + display_buff[0] |= BIT(0); +} + +void show_ble_symbol(bool state) { + if (state) + display_buff[0] |= BIT(4); + else + display_buff[0] &= ~BIT(4); +} + +void show_battery(uint8_t level) { + display_buff[3] &= ~(BIT(1) | BIT(2) | BIT(5) | BIT(6)); + display_buff[4] &= ~(BIT(5)); // | BIT(6)); + display_buff[4] |= BIT(6); + if(level > 84) + display_buff[4] |= BIT(5); + if(level > 68) + display_buff[3] |= BIT(1); + if(level > 52) + display_buff[3] |= BIT(2); + if(level > 36) + display_buff[3] |= BIT(5); + if(level > 20) + display_buff[3] |= BIT(6); +} + +void show_big_number_x10(int16_t number) { + display_buff[5] &= BIT(1) | BIT(2) | BIT(3); // F/C "_" + display_buff[4] &= BIT(5) | BIT(6) | BIT(7); // bat, % + if (number > 19995) { + display_buff[7] = LCD_SYM67_H; // "H" + display_buff[6] = LCD_SYM67_i; // "i" + } else if (number < -995) { + display_buff[7] = LCD_SYM67_L; // "L" + display_buff[6] = LCD_SYM67_o; // "o" + } else { + display_buff[6] = 0; + display_buff[7] = 0; + /* number: -995..19995 */ + if (number > 1995 || number < -1995) { + //display_buff[5] &= ~BIT(0); // no point, show: -1999..1999 + if (number < 0) { + number = -number; + display_buff[6] = BIT(0); // "-" + } + number = (number + 5) / 10; // round(div 10) + } else { // show: -199.9..199.9 + display_buff[5] |= BIT(0); // point, + if (number < 0){ + number = -number; + display_buff[6] = BIT(2); // "-" + } + } + /* number: -1999..1999 */ + if (number > 999) display_buff[7] = BIT(0); // "1" 1000..1999 + if (number > 99) display_buff[7] |= display_numbers67[number / 100 % 10]; + if (number > 9) display_buff[6] |= display_numbers67[number / 10 % 10]; + else display_buff[6] |= LCD_SYM67_0; // "0" + display_buff[4] |= display_numbers45[number %10] & 0x0f; + display_buff[5] |= display_numbers45[number %10] & 0xe0; + } +} + +/* -9 .. 99 */ +void show_small_number(int16_t number, bool percent) { + + if(percent) + display_buff[4] |= BIT(7); + else + display_buff[4] &= ~BIT(7); + + if (number > 99) { + display_buff[1] |= LCD_SYM12_H; // "H" + display_buff[2] |= LCD_SYM12_i; // "i" + } else if (number < -9) { + display_buff[1] |= LCD_SYM12_L; // "L" + display_buff[2] |= LCD_SYM12_o; // "o" + } else { + if (number < 0) { + number = -number; + display_buff[1] = BIT(5); // "-" + } + if (number > 9) display_buff[1] = display_numbers12[number / 10 % 10]; + display_buff[2] = display_numbers12[number %10]; + } +} + +void lcd_show_version(void) { + display_buff[0] &= BIT(4); // connect + display_buff[3] &= BIT(1) | BIT(2) | BIT(5) | BIT(6); // bat + display_buff[4] &= BIT(5) | BIT(6); +#if OTA_TYPE + display_buff[7] = LCD_SYM67_b; + display_buff[6] = LCD_SYM67_o; + display_buff[5] = LCD_SYM45_t & 0xe0; + display_buff[4] |= LCD_SYM45_t & 0x0f; +#else + display_buff[7] = LCD_SYM67_A; + display_buff[6] = LCD_SYM67_P; + display_buff[5] = LCD_SYM45_P & 0xe0; + display_buff[4] |= LCD_SYM45_P & 0x0f; +#endif + display_buff[1] = display_numbers12[(APP_VERSION>>4) & 0x0f]; + display_buff[2] = display_numbers12[APP_VERSION & 0x0f]; + update_lcd(); +} + +void chow_clock(void) { + uint32_t tmp = clkt.utc_time_sec / 60; + uint32_t min = tmp % 60; + uint32_t hrs = (tmp / 60) % 24; + + display_buff[0] &= BIT(4); // connect + display_buff[3] &= BIT(1) | BIT(2) | BIT(5) | BIT(6); // bat + display_buff[4] &= BIT(5) | BIT(6); + + display_buff[7] = display_numbers67[(hrs / 10) % 10]; + display_buff[6] = display_numbers67[hrs % 10]; + display_buff[5] = 0; + + display_buff[1] = display_numbers12[(min / 10) % 10]; + display_buff[2] = display_numbers12[min % 10]; + update_lcd(); +} + +static void chow_measure(void) { +#if (DEV_SERVICES & SERVICE_THS) + show_big_number_x10(measured_data.temp/10); + show_small_number(measured_data.humi/100, true); + show_battery(measured_data.battery); + show_temp_symbol(LCD_TSYMBOL_C); +#if (OTA_TYPE == OTA_TYPE_APP) + if(cfg.flg & FLG_SHOW_SMILEY) { +#if (DEV_SERVICES & SERVICE_TH_TRG) + if(cfg.flg & FLG_SHOW_TRG) { + if(measured_data.flg.comfort) { + if(measured_data.flg.trg_on) + show_smiley(LD_SSYMBOL_HAPPY); + else + show_smiley(LD_SSYMBOL__HAPPY); + } else { + if(measured_data.flg.trg_on) + show_smiley(LD_SSYMBOL_SAD); + else + show_smiley(LD_SSYMBOL__SAD); + } + } else +#endif // SERVICE_TH_TRG + { + if(measured_data.flg.comfort) + show_smiley(LD_SSYMBOL_HAPPY); + else + show_smiley(LD_SSYMBOL_SAD); + } +#if (DEV_SERVICES & SERVICE_TH_TRG) + } else if(cfg.flg & FLG_SHOW_TRG) { + if(measured_data.flg.trg_on) + show_smiley(LD_SSYMBOL_ALL); + else + show_smiley(LD_SSYMBOL_OFF); + } else +#endif // SERVICE_TH_TRG +#endif // OTA_TYPE + show_smiley(LD_SSYMBOL_OFF); +#else + show_big_number_x10(measured_data.battery_mv/100); + show_small_number((measured_data.battery > 99)? 99 : measured_data.battery, true); + show_battery_symbol(1); + show_smiley(LD_SSYMBOL_OFF); +#endif // SERVICE_THS + show_ble_symbol(gapRole_state == GAPROLE_CONNECTED); + update_lcd(); +} + +/* flg != 0 -> chow_measure */ +void chow_lcd(int flg) { +#if OTA_TYPE == OTA_TYPE_BOOT + if(flg) + chow_measure(); +#else + if(cfg.flg & FLG_SHOW_TIME) { + if(wrk.lcd_count++ & 1) + chow_clock(); + else + chow_measure(); + } else if(flg) { + chow_measure(); + } +#endif +} + +void send_to_lcd(uint8_t *pbuf, int len) { + if (lcd_i2c_addr) { + init_i2c(&i2c_dev1); + send_i2c_buf(&i2c_dev1, lcd_i2c_addr, pbuf, len); + deinit_i2c(&i2c_dev1); + } +} + + +void update_lcd(void) { +#if (OTA_TYPE == OTA_TYPE_APP) + if(lcd_i2c_addr == 0 || (cfg.flg & FLG_DISPLAY_OFF) != 0) + return; +#endif + if(memcmp(&display_out_buff[1], display_buff, sizeof(display_buff))) { + memcpy(&display_out_buff[1], display_buff, sizeof(display_buff)); + send_to_lcd(display_out_buff, sizeof(display_out_buff)); + } +} + +void init_lcd(void) { + i2c_dev1.speed = I2C_100KHZ; + init_i2c(&i2c_dev1); + if(!send_i2c_buf(&i2c_dev1, LCD_I2C_ADDR, (uint8_t *) lcd_init_cmd, sizeof(lcd_init_cmd))) { +#if (OTA_TYPE == OTA_TYPE_APP) + if(cfg.flg & FLG_DISPLAY_OFF) + send_i2c_byte(&i2c_dev1, LCD_I2C_ADDR, 0xd0); // Mode Set (MODE SET): Display disable, 1/3 Bias, power saving +#endif + lcd_i2c_addr = LCD_I2C_ADDR; + } else + lcd_i2c_addr = 0; + deinit_i2c(&i2c_dev1); + i2c_dev1.speed = I2C_400KHZ; +} + +/****************************************************/ +#endif // (DEV_SERVICES & SERVICE_SCREEN) + diff --git a/bthome_phy6222/source/main.c b/bthome_phy6222/source/main.c index ae40d31..de6df6d 100644 --- a/bthome_phy6222/source/main.c +++ b/bthome_phy6222/source/main.c @@ -231,6 +231,34 @@ const ioinit_cfg_t ioInit[] = { { GPIO_P32, GPIO_PULL_DOWN }, { GPIO_P33, GPIO_PULL_UP }, // I2C_SDA CNV1972 { GPIO_P34, GPIO_PULL_UP } // I2C_SCL CNV1972 +#elif (DEVICE == DEVICE_TH05V13) + { GPIO_P00, GPIO_PULL_DOWN }, // LED - не припаян R1 Q10 ... + { GPIO_P01, GPIO_PULL_DOWN }, + { GPIO_P02, GPIO_PULL_UP }, // KEY - GPIO_KEY + { GPIO_P03, GPIO_PULL_DOWN }, + { GPIO_P07, GPIO_PULL_UP }, // CHT8305 Alert +#ifdef GPIO_TRG + { GPIO_P09, GPIO_FLOATING }, // TX - GPIO_TRG +#else + { GPIO_P09, GPIO_PULL_UP }, // TX +#endif + { GPIO_P10, GPIO_PULL_UP }, // RX - GPIO_INP + { GPIO_P11, GPIO_FLOATING }, // BL55072 SDA + { GPIO_P14, GPIO_FLOATING }, // BL55072 SCL + { GPIO_P15, GPIO_PULL_DOWN }, // назначен как ADC_PIN, т.к. вывод P20 подключен к делителю + { GPIO_P16, GPIO_PULL_DOWN }, + { GPIO_P17, GPIO_PULL_DOWN }, + { GPIO_P18, GPIO_FLOATING }, // I2C_SDA CHT8310 + { GPIO_P20, GPIO_FLOATING }, // ADC Vbat с делителем! Не используется - Выкусить резистор R18! + { GPIO_P23, GPIO_PULL_DOWN }, + { GPIO_P24, GPIO_PULL_DOWN }, + { GPIO_P25, GPIO_PULL_DOWN }, + { GPIO_P26, GPIO_PULL_DOWN }, + { GPIO_P27, GPIO_PULL_DOWN }, + { GPIO_P31, GPIO_FLOATING }, // CHT8305 SDA + { GPIO_P32, GPIO_FLOATING }, // CHT8305 SCL + { GPIO_P33, GPIO_PULL_DOWN }, + { GPIO_P34, GPIO_PULL_DOWN } #else #error "DEVICE Not released!" #endif