diff options
-rw-r--r-- | defines.h | 36 | ||||
-rw-r--r-- | main.c | 90 | ||||
-rw-r--r-- | nes2wii.h | 68 | ||||
-rw-r--r-- | nes2wii.hex | 481 |
4 files changed, 376 insertions, 299 deletions
@@ -1,42 +1,42 @@ +#ifndef _DEFINES_H_ +#define _DEFINES_H_ + #define F_CPU 20000000L -#define twi_port PORTC -#define twi_ddr DDRC -#define twi_scl_pin 0 -#define twi_sda_pin 1 +#define TWI_PORT C +#define TWI_SCL_PIN 0 +#define TWI_SDA_PIN 1 #define N64_ENABLED -#define N64_PORT PORTD -#define N64_PORT_DDR DDRD -#define N64_PORT_PIN PIND +#define N64_PORT D #define N64_DATA_PIN 3 #define NES_ENABLED -#define NES_PORT PORTA -#define NES_PORT_DDR DDRA -#define NES_PORT_PIN PINA +#define NES_PORT A #define NES_LATCH_PIN 0 #define NES_CLOCK_PIN 1 #define NES_DATA_PIN 2 #define SNES_ENABLED -#define SNES_PORT PORTA -#define SNES_PORT_DDR DDRA -#define SNES_PORT_PIN PINA +#define SNES_PORT A #define SNES_LATCH_PIN 4 #define SNES_CLOCK_PIN 5 #define SNES_DATA_PIN 6 #define SMD_ENABLED -#define SMD_SELECT_PORT PORTA -#define SMD_SELECT_PORT_DDR DDRA +#define SMD_SELECT_PORT A #define SMD_SELECT_PIN 7 -#define SMD_DATA_PORT PORTC -#define SMD_DATA_PORT_DDR DDRC -#define SMD_DATA_PORT_PIN PINC +#define SMD_DATA_PORT C #define SMD_DATA0_PIN 2 #define SMD_DATA1_PIN 3 #define SMD_DATA2_PIN 4 #define SMD_DATA3_PIN 5 #define SMD_DATA4_PIN 6 #define SMD_DATA5_PIN 7 + +#define RED_LED_PORT B +#define RED_LED_PIN 4 +#define GREEN_LED_PORT B +#define GREEN_LED_PIN 3 + +#endif @@ -1,31 +1,8 @@ +#include "nes2wii.h" #include "defines.h" #include <util/delay.h> #include "wiimote.h" -#define WAIT(t) {TCNT0=0; while(TCNT0 < (F_CPU / 1000000UL) * t);} - -#define N64SEND(t) {N64_PORT_DDR |= (1<<N64_DATA_PIN); WAIT(t); N64_PORT_DDR &= ~(1<<N64_DATA_PIN);} -#define N64SEND_1 {N64SEND(1); WAIT(3);} -#define N64SEND_0 {N64SEND(3); WAIT(1);} -#define N64SEND_STOP {N64SEND(1); WAIT(2);} -#define N64SIGNAL (!((N64_PORT_PIN>>N64_DATA_PIN)&1)) - -#define PRESS_A but_dat[5] &= 0b11101111; // BZL BB BY BA BX BZR BDL BDU -#define PRESS_B but_dat[5] &= 0b10111111; // BZL BB BY BA BX BZR BDL BDU -#define PRESS_X but_dat[5] &= 0b11110111; // BZL BB BY BA BX BZR BDL BDU -#define PRESS_Y but_dat[5] &= 0b11011111; // BZL BB BY BA BX BZR BDL BDU -#define PRESS_L but_dat[4] &= 0b11011111; // BDR BDD BLT B- BH B+ BRT 1 -#define PRESS_R but_dat[4] &= 0b11111101; // BDR BDD BLT B- BH B+ BRT 1 -#define PRESS_ZL but_dat[5] &= 0b01111111; // BZL BB BY BA BX BZR BDL BDU -#define PRESS_ZR but_dat[5] &= 0b11111011; // BZL BB BY BA BX BZR BDL BDU -#define PRESS_SELECT but_dat[4] &= 0b11101111; // BDR BDD BLT B- BH B+ BRT 1 -#define PRESS_START but_dat[4] &= 0b11111011; // BDR BDD BLT B- BH B+ BRT 1 -#define PRESS_UP but_dat[5] &= 0b11111110; // BZL BB BY BA BX BZR BDL BDU -#define PRESS_DOWN but_dat[4] &= 0b10111111; // BDR BDD BLT B- BH B+ BRT 1 -#define PRESS_LEFT but_dat[5] &= 0b11111101; // BZL BB BY BA BX BZR BDL BDU -#define PRESS_RIGHT but_dat[4] &= 0b01111111; // BDR BDD BLT B- BH B+ BRT 1 - - // classic controller id const unsigned char classic_controller_id[6] = {0x00, 0x00, 0xA4, 0x20, 0x01, 0x01}; @@ -41,37 +18,39 @@ const unsigned char cal_data[32] = { 0x00, 0x00, 0x00, 0x00 }; +volatile int red_led_timer = 0; + uint8_t get_nes_gamepad() { uint8_t gamepad_data = 0; - NES_PORT &= ~(1<<NES_LATCH_PIN); // Latch + NES_PORT_PORT &= ~(1<<NES_LATCH_PIN); // Latch int b; for (b = 0; b < 8; b++) { - NES_PORT &= ~(1<<NES_CLOCK_PIN); // Clock + NES_PORT_PORT &= ~(1<<NES_CLOCK_PIN); // Clock _delay_us(10); gamepad_data |= (((NES_PORT_PIN>>NES_DATA_PIN)&1)<<b); - NES_PORT |= 1<<NES_CLOCK_PIN; // Clock + NES_PORT_PORT |= 1<<NES_CLOCK_PIN; // Clock _delay_us(10); } - NES_PORT |= 1<<NES_LATCH_PIN; // Latch + NES_PORT_PORT |= 1<<NES_LATCH_PIN; // Latch return gamepad_data; } uint16_t get_snes_gamepad() { uint16_t gamepad_data = 0; - SNES_PORT &= ~(1<<SNES_LATCH_PIN); // Latch + SNES_PORT_PORT &= ~(1<<SNES_LATCH_PIN); // Latch int b; for (b = 0; b < 16; b++) { - SNES_PORT &= ~(1<<SNES_CLOCK_PIN); // Clock + SNES_PORT_PORT &= ~(1<<SNES_CLOCK_PIN); // Clock _delay_us(10); gamepad_data |= ((uint16_t)((SNES_PORT_PIN>>SNES_DATA_PIN)&1)<<b); - SNES_PORT |= 1<<SNES_CLOCK_PIN; // Clock + SNES_PORT_PORT |= 1<<SNES_CLOCK_PIN; // Clock _delay_us(10); } - SNES_PORT |= 1<<SNES_LATCH_PIN; // Latch + SNES_PORT_PORT |= 1<<SNES_LATCH_PIN; // Latch return gamepad_data; } @@ -99,7 +78,7 @@ uint16_t get_smd_gamepad() { uint8_t gamepad_data_low = 0; uint8_t gamepad_data_high = 0; - SMD_SELECT_PORT &= ~(1<<SMD_SELECT_PIN); // Select - low + SMD_SELECT_PORT_PORT &= ~(1<<SMD_SELECT_PIN); // Select - low _delay_us(50); gamepad_data_low = ((SMD_DATA_PORT_PIN>>SMD_DATA0_PIN)&1) | (((SMD_DATA_PORT_PIN>>SMD_DATA1_PIN)&1)<<1) @@ -107,7 +86,7 @@ uint16_t get_smd_gamepad() | (((SMD_DATA_PORT_PIN>>SMD_DATA3_PIN)&1)<<3) | (((SMD_DATA_PORT_PIN>>SMD_DATA4_PIN)&1)<<4) | (((SMD_DATA_PORT_PIN>>SMD_DATA5_PIN)&1)<<5); - SMD_SELECT_PORT |= 1<<SMD_SELECT_PIN; // Select - high + SMD_SELECT_PORT_PORT |= 1<<SMD_SELECT_PIN; // Select - high _delay_us(50); gamepad_data_high = ((SMD_DATA_PORT_PIN>>SMD_DATA0_PIN)&1) | (((SMD_DATA_PORT_PIN>>SMD_DATA1_PIN)&1)<<1) @@ -120,24 +99,29 @@ uint16_t get_smd_gamepad() void wiimote_query() { + RED_ON; + red_led_timer = 0; } int main() { + RED_LED_PORT_DDR |= (1<<RED_LED_PIN); // Red led, output + GREEN_LED_PORT_DDR |= (1<<GREEN_LED_PIN); // Red led, output + RED_ON; TCCR0 |= _BV(CS00); // Timer #ifdef N64_ENABLED N64_PORT_DDR &= ~(1<<N64_DATA_PIN); // Input - N64_PORT &= ~(1<<N64_DATA_PIN); // No pull-up (using external resistor) + N64_PORT_PORT &= ~(1<<N64_DATA_PIN); // No pull-up (using external resistor) #endif #ifdef SNES_ENABLED SNES_PORT_DDR |= 1<<SNES_LATCH_PIN; // Latch, output SNES_PORT_DDR |= 1<<SNES_CLOCK_PIN; // Clock, output - SNES_PORT |= 1<<SNES_DATA_PIN; // Data, pull-up + SNES_PORT_PORT |= 1<<SNES_DATA_PIN; // Data, pull-up #endif #ifdef NES_ENABLED NES_PORT_DDR |= 1<<NES_LATCH_PIN; // Latch, output NES_PORT_DDR |= 1<<NES_CLOCK_PIN; // Clock, output - NES_PORT |= 1<<NES_DATA_PIN; // Data, pull-up + NES_PORT_PORT |= 1<<NES_DATA_PIN; // Data, pull-up #endif #ifdef SMD_ENABLED SMD_SELECT_PORT_DDR |= 1<<SMD_SELECT_PIN; // Select, output @@ -147,12 +131,12 @@ int main() SMD_DATA_PORT_DDR &= ~(1<<SMD_DATA3_PIN); // Data 3, input SMD_DATA_PORT_DDR &= ~(1<<SMD_DATA4_PIN); // Data 4, input SMD_DATA_PORT_DDR &= ~(1<<SMD_DATA5_PIN); // Data 5, input - SMD_DATA_PORT |= 1<<SMD_DATA0_PIN; // Data 0, pull-up - SMD_DATA_PORT |= 1<<SMD_DATA1_PIN; // Data 1, pull-up - SMD_DATA_PORT |= 1<<SMD_DATA2_PIN; // Data 2, pull-up - SMD_DATA_PORT |= 1<<SMD_DATA3_PIN; // Data 3, pull-up - SMD_DATA_PORT |= 1<<SMD_DATA4_PIN; // Data 4, pull-up - SMD_DATA_PORT |= 1<<SMD_DATA5_PIN; // Data 5, pull-up + SMD_DATA_PORT_PORT |= 1<<SMD_DATA0_PIN; // Data 0, pull-up + SMD_DATA_PORT_PORT |= 1<<SMD_DATA1_PIN; // Data 1, pull-up + SMD_DATA_PORT_PORT |= 1<<SMD_DATA2_PIN; // Data 2, pull-up + SMD_DATA_PORT_PORT |= 1<<SMD_DATA3_PIN; // Data 3, pull-up + SMD_DATA_PORT_PORT |= 1<<SMD_DATA4_PIN; // Data 4, pull-up + SMD_DATA_PORT_PORT |= 1<<SMD_DATA5_PIN; // Data 5, pull-up #endif unsigned char but_dat[6]; // struct containing button data @@ -176,6 +160,7 @@ int main() int x = 0; int y = 0; int b, c; + GREEN_OFF; #ifdef N64_ENABLED uint8_t n64_data[4]; @@ -189,6 +174,7 @@ int main() { if (((n64_data[0]>>(7-b))&1)) { + GREEN_ON; switch (b) { case 0: // A @@ -222,6 +208,7 @@ int main() { if (((n64_data[1]>>(7-b))&1)) { + GREEN_ON; switch (b) { case 2: // L @@ -262,6 +249,7 @@ int main() { if (!((snes_gamepad_data>>b)&1)) { + GREEN_ON; switch (b) { case 0: // B @@ -310,6 +298,7 @@ int main() { if (!((nes_gamepad_data>>b)&1)) { + GREEN_ON; switch (b) { case 0: // A @@ -354,27 +343,35 @@ int main() { case 0: // Up y = 30; + GREEN_ON; break; case 1: // Down y = -30; + GREEN_ON; break; case 4: // A(SMD)/Y(Classic) PRESS_Y; + GREEN_ON; break; case 5: // Start PRESS_START; + GREEN_ON; break; case 10: // Left x = -30; + GREEN_ON; break; case 11: // Right x = 30; + GREEN_ON; break; case 12: // B(SMD)/A(Classic) PRESS_A; + GREEN_ON; break; case 13: // C(SMD)/B(Classic) PRESS_B; + GREEN_ON; break; } } @@ -388,21 +385,27 @@ int main() { case 4: // A(SMD)/Y(Classic) PRESS_Y; + GREEN_ON; break; case 5: // Start PRESS_START; + GREEN_ON; break; case 8: // Z(SMD)/R(Classic) PRESS_R; + GREEN_ON; break; case 9: // Y(SMD)/X(Classic) PRESS_X; + GREEN_ON; break; case 10: // X(SMD)/L(Classic) PRESS_L; + GREEN_ON; break; case 11: // Mode(SMD)/Select(Classic) PRESS_SELECT; + GREEN_ON; break; } } @@ -415,6 +418,7 @@ int main() wm_newaction(but_dat); _delay_us(10); + if (++red_led_timer >= 10) RED_OFF; } return 0; } diff --git a/nes2wii.h b/nes2wii.h new file mode 100644 index 0000000..aaedabe --- /dev/null +++ b/nes2wii.h @@ -0,0 +1,68 @@ +#ifndef _NES2WII_H_ +#define _NES2WII_H_ + +#include "defines.h" + +#define GLUE(a,b) a##b +#define DDR(p) GLUE(DDR,p) +#define PORT(p) GLUE(PORT,p) +#define PIN(p) GLUE(PIN,p) + +#define twi_port PORT(TWI_PORT) +#define twi_ddr DDR(TWI_PORT) +#define twi_scl_pin TWI_SCL_PIN +#define twi_sda_pin TWI_SDA_PIN + +#define N64_PORT_PORT PORT(N64_PORT) +#define N64_PORT_DDR DDR(N64_PORT) +#define N64_PORT_PIN PIN(N64_PORT) +#define N64_DATA_PIN 3 + +#define NES_PORT_PORT PORT(NES_PORT) +#define NES_PORT_DDR DDR(NES_PORT) +#define NES_PORT_PIN PIN(NES_PORT) + +#define SNES_PORT_PORT PORT(NES_PORT) +#define SNES_PORT_DDR DDR(NES_PORT) +#define SNES_PORT_PIN PIN(NES_PORT) + +#define SMD_SELECT_PORT_PORT PORT(SMD_SELECT_PORT) +#define SMD_SELECT_PORT_DDR DDR(SMD_SELECT_PORT) +#define SMD_DATA_PORT_PORT PORT(SMD_DATA_PORT) +#define SMD_DATA_PORT_DDR DDR(SMD_DATA_PORT) +#define SMD_DATA_PORT_PIN PIN(SMD_DATA_PORT) + +#define RED_LED_PORT_PORT PORT(RED_LED_PORT) +#define RED_LED_PORT_DDR DDR(RED_LED_PORT) +#define GREEN_LED_PORT_PORT PORT(GREEN_LED_PORT) +#define GREEN_LED_PORT_DDR DDR(GREEN_LED_PORT) + +#define WAIT(t) {TCNT0=0; while(TCNT0 < (F_CPU / 1000000UL) * t);} + +#define N64SEND(t) {N64_PORT_DDR |= (1<<N64_DATA_PIN); WAIT(t); N64_PORT_DDR &= ~(1<<N64_DATA_PIN);} +#define N64SEND_1 {N64SEND(1); WAIT(3);} +#define N64SEND_0 {N64SEND(3); WAIT(1);} +#define N64SEND_STOP {N64SEND(1); WAIT(2);} +#define N64SIGNAL (!((N64_PORT_PIN>>N64_DATA_PIN)&1)) + +#define PRESS_A but_dat[5] &= 0b11101111; // BZL BB BY BA BX BZR BDL BDU +#define PRESS_B but_dat[5] &= 0b10111111; // BZL BB BY BA BX BZR BDL BDU +#define PRESS_X but_dat[5] &= 0b11110111; // BZL BB BY BA BX BZR BDL BDU +#define PRESS_Y but_dat[5] &= 0b11011111; // BZL BB BY BA BX BZR BDL BDU +#define PRESS_L but_dat[4] &= 0b11011111; // BDR BDD BLT B- BH B+ BRT 1 +#define PRESS_R but_dat[4] &= 0b11111101; // BDR BDD BLT B- BH B+ BRT 1 +#define PRESS_ZL but_dat[5] &= 0b01111111; // BZL BB BY BA BX BZR BDL BDU +#define PRESS_ZR but_dat[5] &= 0b11111011; // BZL BB BY BA BX BZR BDL BDU +#define PRESS_SELECT but_dat[4] &= 0b11101111; // BDR BDD BLT B- BH B+ BRT 1 +#define PRESS_START but_dat[4] &= 0b11111011; // BDR BDD BLT B- BH B+ BRT 1 +#define PRESS_UP but_dat[5] &= 0b11111110; // BZL BB BY BA BX BZR BDL BDU +#define PRESS_DOWN but_dat[4] &= 0b10111111; // BDR BDD BLT B- BH B+ BRT 1 +#define PRESS_LEFT but_dat[5] &= 0b11111101; // BZL BB BY BA BX BZR BDL BDU +#define PRESS_RIGHT but_dat[4] &= 0b01111111; // BDR BDD BLT B- BH B+ BRT 1 + +#define RED_ON RED_LED_PORT_PORT |= (1<<RED_LED_PIN); +#define RED_OFF RED_LED_PORT_PORT &= ~(1<<RED_LED_PIN); +#define GREEN_ON GREEN_LED_PORT_PORT |= (1<<GREEN_LED_PIN); +#define GREEN_OFF GREEN_LED_PORT_PORT &= ~(1<<GREEN_LED_PIN); + +#endif
\ No newline at end of file diff --git a/nes2wii.hex b/nes2wii.hex index 9706a93..a42fcea 100644 --- a/nes2wii.hex +++ b/nes2wii.hex @@ -2,7 +2,7 @@ :100010000C945C050C945C050C945C050C945C05DC :100020000C945C050C945C050C945C050C945C05CC :100030000C945C050C945C050C945C050C945C05BC -:100040000C945C050C94D50C0C945C050C945C052C +:100040000C945C050C94030D0C945C050C945C05FD :100050000C945C05A877A6E0F7435A3585E27297C1 :100060008FB71A6287380D67C7BE4F3E2076378F2D :1000700068B7A9263F2B10E3307E900E850A705199 @@ -167,9 +167,9 @@ :100A60000000000000000000000000000000000086 :100A70000000000000000000000000000000112441 :100A80001FBECFE5D4E0DEBFCDBF10E0A0E6B0E0F2 -:100A9000E2E0FCE102C005900D92A638B107D9F75B -:100AA00011E0A6E8B0E001C01D92AC3AB107E1F751 -:100AB0000E94D7060C94FF0D0C940000D89840E0DB +:100A9000EEE5FCE102C005900D92A638B107D9F74A +:100AA00011E0A6E8B0E001C01D92AE3AB107E1F74F +:100AB0000E94DC060C942D0E0C940000D89840E0A7 :100AC00020E030E052E4D998852F8A95F1F789B378 :100AD0008695869590E081709070022E02C0880FF6 :100AE000991F0A94E2F7482BD99A852F8A95F1F736 @@ -216,238 +216,243 @@ :100D7000A694A69433E0A322BB2421E0A222BB24A4 :100D8000A294B29420EFB222BA24A222BA246A29F1 :100D900070E0682B792BCB011F910F91FF90EF90A2 -:100DA000DF90CF90BF90AF909F90089508952F92BD -:100DB0003F924F925F926F927F928F929F92AF92EB -:100DC000BF92CF92DF92EF92FF920F931F93DF9328 -:100DD000CF93CDB7DEB72A970FB6F894DEBF0FBE1C -:100DE000CDBF83B7816083BF8B989398D49AD59AEF -:100DF000DE9AD09AD19ADA9AD79AA298A398A49810 -:100E0000A598A698A798AA9AAB9AAC9AAD9AAE9ACA -:100E1000AF9A8FE58D838FED8E838FE88F83188651 -:100E20008FEF89878A87B5E06B2E712C6C0E7D1E43 -:100E300080E690E0B30146E650E026ED36E00E9401 -:100E4000F5094E010894811C911CAFE55A2EFFED67 -:100E50004F2EEFE83E2E22242A9478E0A72EB12CC4 -:100E60005D824E823F82188629862A86F894C401C4 -:100E70000E94A6057894892B09F083C1CC24DD2437 -:100E8000EE24FF240E948005BC0141E050E016C022 -:100E90002230310509F459C1233031050CF042C02C -:100EA0002115310509F45DC12130310509F455C121 -:100EB000403151050CF042C04F5F5F4F9A01215005 -:100EC0003040CB01022E02C0969587950A94E2F736 -:100ED00080FDEECF2530310509F42EC126303105D5 -:100EE000BCF22830310509F434C1293031055CF4F5 -:100EF0002630310509F417C127303105C9F6FEE166 -:100F0000CF2ED12CD9CF2A30310509F408C12A308F -:100F100031050CF416C12B30310551F689858D7FD2 -:100F20008987CACF2330310509F402C12430310545 -:100F300009F0BECFAEE1EA2EF12CBECF0E945E05D5 -:100F4000682F70E041E050E015C02330310509F40E -:100F5000C1C1243031050CF0C3C02130310509F482 -:100F6000C7C1223031050CF4F9C189858F7E89878C -:100F70004F5F5F4F9A0121503040CB01022E02C0DB -:100F8000959587950A94E2F780FFDFCF48305105A9 -:100F90007CF300E010E00E943006BC018F7090707E -:100FA000892B09F048C0023011050CF444C045E01B -:100FB00050E00DC02430310509F4ADC025303105B5 -:100FC00009F4A5C04C3051051CF54F5F5F4F9A01E5 -:100FD00021503040CB01022E02C0969587950A948D -:100FE000E2F780FDEFCF2830310509F48CC02930BD -:100FF000310504F32A30310509F47DC02A3031056A -:101000000CF47DC02B303105E9F689858F7E898708 -:101010000F5F1F4F0430110509F0BDCF8D818C0D7E -:101020008D838E818E0D8E83C3010E94EC0982E434 -:101030008A95F1F715CF41E050E015C02530310514 -:1010400009F441C026303105F4F42130310509F4AA -:1010500042C024303105D9F1232B89F4EEE1EE2E84 -:10106000F12C4F5F5F4F9A0121503040CB01022E8F -:1010700002C0969587950A94E2F780FFDFCF4E3045 -:1010800051057CF3C5CF2B303105C9F02C3031052B -:1010900044F42A30310599F782EEC82E8FEFD82E0E -:1010A000E0CF2C30310539F02D30310541F78A85FC -:1010B0008F7B8A87ADCF8A858F7E8A87D2CFBEE12C -:1010C000CB2ED12CCECF89858B7F8987CACF8A85BD -:1010D0008F7D8A87C6CF92EEE92E9FEFF92EC1CF82 -:1010E0002530310509F4FFC025303105F4F5FEE166 -:1010F000EF2EF12C3DCF89858F7D898766CF8A853C -:10110000877F8A8762CF89858D7F89875ECF898532 -:101110008B7F89875ACF8A858F7D8A8756CF89852D -:101120008F7D8987C9CEA2EECA2EAFEFDA2EC4CE4C -:1011300089858B7F8987C0CEB2EEEB2EBFEFFB2E69 -:10114000BBCE8A85877F8A87B7CE89858F7E898740 -:10115000B3CE8A858F7E8A87AFCE8A858F7D8A8738 -:10116000ABCE8A858F7B8A87A7CE2630310509F4DE -:10117000B5C02730310509F009CF3EE1C32ED12C8F -:1011800008CF8981682F70E041E050E015C023301E -:10119000310509F4DBC0243031050CF090C021305A -:1011A000310509F4D7C0223031050CF4DEC08A8540 -:1011B0008F778A874F5F5F4F9A0121503040C5017A -:1011C000841B950BFB0102C0F595E7958A95E2F724 -:1011D000E0FDDDCF483051056CF38A81682F70E067 -:1011E00041E050E00DC02230310509F498C02330B1 -:1011F000310509F490C04830510544F54F5F5F4F09 -:101200009A0121503040C501841B950BFB0102C09F -:10121000F595E7958A95E2F7E0FFEDCF24303105AB -:1012200009F475C025303105F4F22630310509F492 -:1012300063C0263031050CF466C027303105D9F67D -:101240008D81806C8D838E81806C8E838B81282F25 -:1012500030E02038310514F0205031408C81E82FE7 -:10126000F0E0E038F10514F0E050F140C901880FDA -:10127000991F820F931F9C01220F331F220F331FD0 -:10128000280F391F220F331FC90160E570E00E944B -:10129000CB0D6B01CF01880F991F8E0F9F1F9C01F3 -:1012A000220F331F220F331F280F391F220F331F26 -:1012B000C90160E570E00E94CB0D7B01E3CD2530D4 -:1012C000310509F43FC0253031056CF58A858E7FE4 -:1012D0008A8770CF89858B7F89874ACE22EEC22E7E -:1012E0002FEFD22E45CEE2EEEE2EEFEFFE2E40CEC9 -:1012F0008A858F7B8A873CCE8D818F738D838E818B -:101300008F738E837BCF8F81807E8F8377CF8F810A -:101310008F618F8373CF89858D7F89876FCF898513 -:101320008F7D89876BCF2630310541F0273031051D -:1013300009F050CF89858F7789874FCF8A858D7F38 -:101340008A8738CF89858F7B898734CF89858B7F42 -:10135000898730CF8A858F7B8A872CCF232B09F012 -:1013600015CE8A858F7E8A8703CE232B09F032CF54 -:101370008A858F7E8A871ECF1092A9011092A801BC -:10138000880F82B985E486BF78940895882319F47C -:1013900085E886BF089585EC86BF0895282F30E044 -:1013A00070E088E090E0861B970BA90102C0440F13 -:1013B000551F8A95E2F7CA0102C0359527956A95AF -:1013C000E2F7822B0895863008F00895E0918600B8 -:1013D000F091870009950895A8EAB0E0FC0186E045 -:1013E00001900D928150E1F708950F931F93182FEC -:1013F000092F3093870020938600A8EAB0E0FB0114 -:1014000086E001900D928150E1F710929801812FB2 -:10141000902F9C01D9012AEF30E08D91F901E85518 -:10142000FF4F80832F5F3F4F81E020303807A9F7BF -:10143000DA0120E230E08D91F901E855FF4F808319 -:101440002F5F3F4F26323105B1F7A898A998109227 -:10145000A9011092A80184EA82B985E486BF789434 -:101460001F910F9108952F923F924F925F926F922A -:101470007F928F929F92AF92BF92CF92DF92EF9224 -:10148000FF920F931F93DF93CF93CDB7DEB76A9789 -:101490000FB6F894DEBF0FBECDBF44E5642E40E02A -:1014A000742E88249E01295F3F4F388F2F8B3DE09B -:1014B000232E312C2C0E3D1E28E0422E512CDE0115 -:1014C0001196F30184918D9331964F89588DA4170D -:1014D000B507C1F780E090E0FC01E857FF4FE081DD -:1014E000F0E0E258FF4FE491D101A80FB91FEC934F -:1014F00001968A30910581F7AA88CF8429812A250F -:1015000030E04C2D477050E09E88B988C201841BA2 -:10151000950BB90102C0660F771F8A95E2F7CB01E0 -:1015200002C0359527954A95E2F7822B89198B25BC -:101530008F83EE84DD842A812E2530E04D2D477087 -:1015400050E0AC89C201841B950BF90102C0EE0F7B -:10155000FF1F8A95E2F7CF0102C0359527954A957E -:10156000E2F7822B8A198A278887EB892B812E271D -:1015700030E00D89077010E0B201601B710BC901EA -:10158000062E02C0880F991F0A94E2F7002E02C0AF -:10159000359527950A94E2F7822B8C198D2589873A -:1015A0002C812B2530E04A2F4770842F90E09A8FB2 -:1015B000898FD888C201498D5A8D841B950BA9014A -:1015C00002C0440F551F8A95E2F7CA01098C02C078 -:1015D000359527950A94E2F7822B8D198C258A87F9 -:1015E0008D81E826FF24E770F0E0C2018E1B9F0B7F -:1015F000970102C0220F331F8A95E2F7C90102C08A -:10160000F594E794EA95E2F78E298D198B258B875F -:101610008E81A827B0E0AD0102C0440F551F6A9526 -:10162000E2F7BA0102C0B595A7950A95E2F76A2BD1 -:101630006A1969256C87CE01079662E970E046E079 -:1016400050E00E94F20D009749F0839466E070E04C -:10165000660E771E77E0871609F031CF282D30E02F -:101660002F5F3F4F522F442780919600FA01E80FD9 -:10167000F11DE258FF4F94912F5F3F4F322F2227E9 -:1016800080918B00F901E80FF11DE258FF4FE491C2 -:10169000E927E093980080919400FA01E80FF11D8A -:1016A000E258FF4F949180918D00F901E80FF11DF0 -:1016B000E258FF4FE491E927E09399008091970069 -:1016C000FA01E80FF11DE258FF4F949180918F00CD -:1016D000F901E80FF11DE258FF4FE491E927E0938B -:1016E0009A0080919200FA01E80FF11DE258FF4F35 -:1016F000949180918A00F901E80FF11DE258FF4FA3 -:10170000E491E927E0939B0080919300FA01E80FB0 -:10171000F11DE258FF4F949180918C00F901E80F80 -:10172000F11DE258FF4FE491E927E0939C0080917E -:101730009500FA01E80FF11DE258FF4F9491809156 -:101740009100F901E80FF11DE258FF4FE491E927FC -:10175000E0939D0080918800FA01E80FF11DE258A6 -:10176000FF4F949180918E00F901E80FF11DE2582E -:10177000FF4FE491E927E0939E0080918900FA01F0 -:10178000E80FF11DE258FF4F949180919000F9010C -:10179000E80FF11DE258FF4FE491E927E0939F0025 -:1017A00080919200FA01E80FF11DE258FF4F9491E9 -:1017B00080918900F901E80FF11DE258FF4FE49193 -:1017C000E927E093A00080919700FA01E80FF11D4E -:1017D000E258FF4F949180918C00F901E80FF11DC0 -:1017E000E258FF4FE491E927E093A1008091950032 -:1017F000FA01E80FF11DE258FF4F949180918800A3 -:10180000F901E80FF11DE258FF4FE491E927E09359 -:10181000A20080919400FA01E80FF11DE258FF4FF9 -:10182000949180919100F901E80FF11DE258FF4F6A -:10183000E491E927E093A30080919600FA01E80F74 -:10184000F11DE258FF4F949180918F00F901E80F4C -:10185000F11DE258FF4FE491E927E093A400809145 -:101860009300FA01E80FF11DE258FF4F9491809127 -:101870009000F901E80FF11DE258FF4FE491E927CC -:10188000E093A50080918B00FA01E80FF11DE2586A -:10189000FF4F949180918D00F901E80FF11DE258FE -:1018A000FF4FE491E927E093A60080918A00480F5A -:1018B000511D42585F4FFA01949180918E00280F7C -:1018C000311D22583F4FF901849189278093A70049 -:1018D0006A960FB6F894DEBF0FBECDBFCF91DF91F1 -:1018E0001F910F91FF90EF90DF90CF90BF90AF903E -:1018F0009F908F907F906F905F904F903F902F9030 -:101900000895982F80548630A0F420E430E049E414 -:1019100050E0FA01E21BF30BD901A855BF4F8C919F -:10192000E857FF4F80832F5F3F4F2634310589F7FB -:101930000895892F86548630C8F48091EE008093F4 -:101940008B008091EF0080938A008091F00080935B -:1019500089008091F100809388008091F20080934B -:1019600097008091F300809396000895892F8C54FE -:101970008430B8F48091F400809395008091F50054 -:10198000809394008091F600809393008091F700FB -:1019900080939200892F90E0860F911D80359105EC -:1019A00009F008950E94330A08951F920F920FB60E -:1019B0000F9211242F933F934F935F936F937F93D5 -:1019C0008F939F93AF93BF93EF93FF9381B190E079 -:1019D000887F90708039910509F480C08139910524 -:1019E00014F1803B910509F462C0813B910584F5B7 -:1019F000803A910509F464C0883A910509F457C00A -:101A000085E886BFFF91EF91BF91AF919F918F9134 -:101A10007F916F915F914F913F912F910F900FBEEA -:101A20000F901F9018958037910569F081379105C7 -:101A3000B4F18038910509F451C08838910501F35B -:101A400088379105E9F61092AA0185EC86BFDACFB6 -:101A5000803C910509F1883C9105F1F0883B9105A6 -:101A600079F6809198018A3A09F449C0E091A80179 -:101A7000F091A901E855FF4F808183B98091A801B9 -:101A80009091A90101969093A9018093A80180915A -:101A9000AB018F5F8093AB0185EC86BFB3CF8036FF -:101AA000910589F28836910509F0AACFCCCF8091B3 -:101AB000A8019091A9010E94E3091092AB01D1CF36 -:101AC0008091A8019091A9012091AB016091AB0197 -:101AD000821B0E94810C85EC86BF94CF8091AA0165 -:101AE000882351F123B1809198018A3A89F1E091DC -:101AF000A801F091A901E855FF4F2083BFCFE091E5 -:101B0000A801F091A901E855FF4F8081E091A8015B -:101B1000F091A901E770F070E856FF4F2081E09145 -:101B2000A801F091A901E770F070E056FF4F908195 -:101B3000821B892783B9A2CF83B190E09093A9013A -:101B40008093A80181E08093AA011092AB01A4CFF9 -:101B50008091A8019091A901803F910541F2A09147 -:101B6000A801B091A901E091A801F091A901E77045 -:101B7000F070E056FF4F8081E091A801F091A9013B -:101B8000E770F070E856FF4F90818227890FA855C3 -:101B9000BF4F8C9373CF97FB092E07260AD077FD92 -:101BA00004D00CD006D000201AF4709561957F4FB8 -:101BB0000895F6F7909581959F4F0895AA1BBB1B3A -:101BC00051E107C0AA1FBB1FA617B70710F0A61B3D -:101BD000B70B881F991F5A95A9F780959095BC015E -:101BE000CD010895FB01DC0104C08D9101908019A5 -:101BF00021F441505040C8F7881B990B0895F89480 -:021C0000FFCF14 -:101C02000000A4200101000000000000000000000C -:101C120000000000000000000000000000000000C2 -:061C2200000000000000BC +:100DA000DF90CF90BF90AF909F900895C49A10921B +:100DB00087001092860008952F923F924F925F9283 +:100DC0006F927F928F929F92AF92BF92CF92DF925B +:100DD000EF92FF920F931F93DF93CF93CDB7DEB7C0 +:100DE0002A970FB6F894DEBF0FBECDBFBC9ABB9A50 +:100DF000C49A83B7816083BF8B989398D49AD59A0D +:100E0000DE9AD09AD19ADA9AD79AA298A398A498FF +:100E1000A598A698A798AA9AAB9AAC9AAD9AAE9ABA +:100E2000AF9A8FE58D838FED8E838FE88F83188641 +:100E30008FEF89878A87B5E06B2E712C6C0E7D1E33 +:100E400080E690E0B30146E650E026ED36E00E94F1 +:100E5000230A4E010894811C911CAFE55A2EFFED28 +:100E60004F2EEFE83E2E22242A9478E0A72EB12CB4 +:100E70005D824E823F82188629862A86C398F8941E +:100E8000C4010E94A6057894892B09F0A6C1CC2440 +:100E9000DD24EE24FF240E948005BC0141E050E0E7 +:100EA00016C02230310509F47CC1233031050CF025 +:100EB00043C02115310509F480C12130310509F401 +:100EC00078C1403151050CF043C04F5F5F4F9A012C +:100ED00021503040CB01022E02C0969587950A948E +:100EE000E2F780FDEECFC39A2530310509F450C1F9 +:100EF00026303105B4F22830310509F456C12930C5 +:100F000031055CF42630310509F439C1273031054B +:100F1000C1F6FEE1CF2ED12CD8CF2A30310509F40D +:100F20002AC12A3031050CF438C12B30310549F67D +:100F300089858D7F8987C9CF2330310509F424C184 +:100F40002430310509F0BDCFFEE1EF2EF12CBDCFED +:100F50000E945E05682F70E041E050E016C0C39A21 +:100F60002330310509F4E4C1243031050CF0DEC032 +:100F70002130310509F4EAC1223031050CF41CC2DC +:100F800089858F7E89874F5F5F4F9A01215030405E +:100F9000CB01022E02C0959587950A94E2F780FF57 +:100FA000DECF483051057CF300E010E00E943006AF +:100FB000BC018F709070892B09F05AC00230110566 +:100FC0000CF456C045E050E00DC02430310509F462 +:100FD000CDC02530310509F4C4C04C30510524F58D +:100FE0004F5F5F4F9A0121503040CB01022E02C06B +:100FF000969587950A94E2F780FDEFCF283031056A +:1010000009F4AAC02930310504F32A30310509F466 +:1010100099C02A3031050CF49AC02B303105E9F61D +:1010200089858F7E8987C39A0F5F1F4F0430110512 +:1010300009F0BCCF8D818C0D8D838E818E0D8E83BA +:10104000C3010E941A0A82E48A95F1F78091860012 +:1010500090918700019690938700809386008091FD +:101060008600909187000A970CF402CFC49800CFB5 +:1010700041E050E017C02530310509F447C0263063 +:10108000310504F52130310509F44AC02430310519 +:1010900009F441C0232B91F4C39A9EE1E92EF12C6F +:1010A0004F5F5F4F9A0121503040CB01022E02C0AA +:1010B000969587950A94E2F780FFDDCF4E30510573 +:1010C0007CF3B2CF2B303105E1F02C3031054CF4FC +:1010D0002A30310599F7C39AB2EECB2EBFEFDB2E43 +:1010E000DFCF2C30310541F02D30310539F78A85BD +:1010F0008F7B8A87C39A98CF8A858F7E8A87C39A87 +:10110000CFCFC39AAEE1CA2ED12CCACF89858B7FAF +:101110008987C39AC5CF8A858F7D8A87C39AC0CFB6 +:10112000C39A82EEE82E8FEFF82EBACF2530310524 +:1011300009F407C1253031050CF043C0EEE1EE2E75 +:10114000F12C21CF89858F7D8987C39A49CF8A85E4 +:10115000877F8A87C39A44CF89858D7F8987C39A81 +:101160003FCF89858B7F8987C39A3ACF8A858F7DC8 +:101170008A87C39A35CF89858F7D8987A6CEA2EECF +:10118000CA2EAFEFDA2EA1CE89858B7F89879DCEBF +:10119000B2EEEB2EBFEFFB2E98CE8A85877F8A8733 +:1011A00094CE89858F7E898790CE8A858F7E8A8727 +:1011B0008CCE8A858F7D8A8788CE8A858F7B8A8729 +:1011C00084CE2630310509F4B7C02730310509F047 +:1011D000E8CE3EE1C32ED12CE7CE8981682F70E0A6 +:1011E00041E050E016C0C39A2330310509F4DCC059 +:1011F000243031050CF091C02130310509F4D8C0FC +:10120000223031050CF4DFC08A858F778A874F5FE3 +:101210005F4F9A0121503040C501841B950BFB01A3 +:1012200002C0F595E7958A95E2F7E0FDDCCF4830FE +:1012300051056CF38A81682F70E041E050E00DC0E9 +:101240002230310509F499C02330310509F491C0E9 +:10125000483051054CF54F5F5F4F9A0121503040A7 +:10126000C501841B950BFB0102C0F595E7958A9596 +:10127000E2F7E0FFEDCFC39A2430310509F475C0E1 +:1012800025303105ECF22630310509F463C02630F3 +:1012900031050CF466C027303105D1F68D81806CA4 +:1012A0008D838E81806C8E838B81282F30E0203857 +:1012B000310514F0205031408C81E82FF0E0E03807 +:1012C000F10514F0E050F140C901880F991F820F19 +:1012D000931F9C01220F331F220F331F280F391F2A +:1012E000220F331FC90160E570E00E94F90D6B0108 +:1012F000CF01880F991F8E0F9F1F9C01220F331F54 +:10130000220F331F280F391F220F331FC90160E539 +:1013100070E00E94F90D7B01BECD2530310509F446 +:101320003FC0253031056CF58A858E7F8A876FCF67 +:1013300089858B7F898727CE22EEC22E2FEFD22E72 +:1013400022CEE2EEEE2EEFEFFE2E1DCE8A858F7BB3 +:101350008A8719CE8D818F738D838E818F738E8353 +:101360007ACF8F81807E8F8376CF8F818F618F83BD +:1013700072CF89858D7F89876ECF89858F7D89879B +:101380006ACF2630310541F02730310509F04FCFC3 +:1013900089858F7789874ECF8A858D7F8A8737CFDA +:1013A00089858F7B898733CF89858B7F89872FCFED +:1013B0008A858F7B8A872BCF232B09F0F2CD8A85F4 +:1013C0008F7E8A87E0CD232B09F031CF8A858F7EEF +:1013D0008A871DCF1092AB011092AA01880F82B9A3 +:1013E00085E486BF78940895882319F485E886BF3C +:1013F000089585EC86BF0895282F30E070E088E0DE +:1014000090E0861B970BA90102C0440F551F8A95D7 +:10141000E2F7CA0102C0359527956A95E2F7822B5B +:101420000895863008F00895E0918800F0918900D1 +:1014300009950895AAEAB0E0FC0186E001900D92BA +:101440008150E1F708950F931F93182F092F3093C0 +:10145000890020938800AAEAB0E0FB0186E00190B1 +:101460000D928150E1F710929A01812F902F9C01EB +:10147000D9012AEF30E08D91F901E655FF4F8083C5 +:101480002F5F3F4F81E020303807A9F7DA0120E2D3 +:1014900030E08D91F901E655FF4F80832F5F3F4F7C +:1014A00026323105B1F7A898A9981092AB01109295 +:1014B000AA0184EA82B985E486BF78941F910F91CE +:1014C00008952F923F924F925F926F927F928F92E8 +:1014D0009F92AF92BF92CF92DF92EF92FF920F93C3 +:1014E0001F93DF93CF93CDB7DEB76A970FB6F8940B +:1014F000DEBF0FBECDBF44E5642E40E0742E8824CD +:101500009E01295F3F4F388F2F8B3DE0232E312CDA +:101510002C0E3D1E28E0422E512CDE011196F301C7 +:1015200084918D9331964F89588DA417B507C1F7D3 +:1015300080E090E0FC01E657FF4FE081F0E0E258E8 +:10154000FF4FE491D101A80FB91FEC9301968A30A7 +:10155000910581F7AA88CF8429812A2530E04C2D76 +:10156000477050E09E88B988C201841B950BB90171 +:1015700002C0660F771F8A95E2F7CB0102C035954E +:1015800027954A95E2F7822B89198B258F83EE8464 +:10159000DD842A812E2530E04D2D477050E0AC8946 +:1015A000C201841B950BF90102C0EE0FFF1F8A9543 +:1015B000E2F7CF0102C0359527954A95E2F7822BD5 +:1015C0008A198A278887EB892B812E2730E00D899D +:1015D000077010E0B201601B710BC901062E02C03A +:1015E000880F991F0A94E2F7002E02C035952795BF +:1015F0000A94E2F7822B8C198D2589872C812B2563 +:1016000030E04A2F4770842F90E09A8F898FD888D6 +:10161000C201498D5A8D841B950BA90102C0440F4C +:10162000551F8A95E2F7CA01098C02C035952795A6 +:101630000A94E2F7822B8D198C258A878D81E82602 +:10164000FF24E770F0E0C2018E1B9F0B970102C0E0 +:10165000220F331F8A95E2F7C90102C0F594E7947F +:10166000EA95E2F78E298D198B258B878E81A82725 +:10167000B0E0AD0102C0440F551F6A95E2F7BA0110 +:1016800002C0B595A7950A95E2F76A2B6A196925F4 +:101690006C87CE01079664E970E046E050E00E9456 +:1016A000200E009749F0839466E070E0660E771E86 +:1016B00077E0871609F031CF282D30E02F5F3F4FBC +:1016C000522F442780919800FA01E80FF11DE2584B +:1016D000FF4F94912F5F3F4F322F222780918D0033 +:1016E000F901E80FF11DE258FF4FE491E927E0937B +:1016F0009A0080919600FA01E80FF11DE258FF4F21 +:10170000949180918F00F901E80FF11DE258FF4F8D +:10171000E491E927E0939B0080919900FA01E80F9A +:10172000F11DE258FF4F949180919100F901E80F6B +:10173000F11DE258FF4FE491E927E0939C0080916E +:101740009400FA01E80FF11DE258FF4F9491809147 +:101750008C00F901E80FF11DE258FF4FE491E927F1 +:10176000E0939D0080919500FA01E80FF11DE25889 +:10177000FF4F949180918E00F901E80FF11DE2581E +:10178000FF4FE491E927E0939E0080919700FA01D2 +:10179000E80FF11DE258FF4F949180919300F901F9 +:1017A000E80FF11DE258FF4FE491E927E0939F0015 +:1017B00080918A00FA01E80FF11DE258FF4F9491E1 +:1017C00080919000F901E80FF11DE258FF4FE4917C +:1017D000E927E093A00080918B00FA01E80FF11D4A +:1017E000E258FF4F949180919200F901E80FF11DAA +:1017F000E258FF4FE491E927E093A1008091940023 +:10180000FA01E80FF11DE258FF4F949180918B008F +:10181000F901E80FF11DE258FF4FE491E927E09349 +:10182000A20080919900FA01E80FF11DE258FF4FE4 +:10183000949180918E00F901E80FF11DE258FF4F5D +:10184000E491E927E093A30080919700FA01E80F63 +:10185000F11DE258FF4F949180918A00F901E80F41 +:10186000F11DE258FF4FE491E927E093A400809135 +:101870009600FA01E80FF11DE258FF4F9491809114 +:101880009300F901E80FF11DE258FF4FE491E927B9 +:10189000E093A50080919800FA01E80FF11DE2584D +:1018A000FF4F949180919100F901E80FF11DE258EA +:1018B000FF4FE491E927E093A60080919500FA019B +:1018C000E80FF11DE258FF4F949180919200F901C9 +:1018D000E80FF11DE258FF4FE491E927E093A700DC +:1018E00080918D00FA01E80FF11DE258FF4F9491AD +:1018F00080918F00F901E80FF11DE258FF4FE4914C +:10190000E927E093A80080918C00480F511D4258B0 +:101910005F4FFA01949180919000280F311D225859 +:101920003F4FF901849189278093A9006A960FB6E9 +:10193000F894DEBF0FBECDBFCF91DF911F910F9105 +:10194000FF90EF90DF90CF90BF90AF909F908F90DF +:101950007F906F905F904F903F902F900895982FB9 +:1019600080548630A0F420E430E049E450E0FA01ED +:10197000E21BF30BD901A655BF4F8C91E657FF4FE1 +:1019800080832F5F3F4F2634310589F70895892FD3 +:1019900086548630C8F48091F00080938D00809149 +:1019A000F10080938C008091F20080938B008091F5 +:1019B000F30080938A008091F400809399008091D5 +:1019C000F500809398000895892F8C548430B8F4E2 +:1019D0008091F600809397008091F70080939600A5 +:1019E0008091F800809395008091F9008093940095 +:1019F000892F90E0860F911D8035910509F008959B +:101A00000E94610A08951F920F920FB60F9211243F +:101A10002F933F934F935F936F937F938F939F93F6 +:101A2000AF93BF93EF93FF9381B190E0887F907065 +:101A30008039910509F480C08139910514F1803B0A +:101A4000910509F462C0813B910584F5803A9105C6 +:101A500009F464C0883A910509F457C085E886BF47 +:101A6000FF91EF91BF91AF919F918F917F916F9176 +:101A70005F914F913F912F910F900FBE0F901F904C +:101A800018958037910569F081379105B4F1803858 +:101A9000910509F451C08838910501F38837910503 +:101AA000E9F61092AC0185EC86BFDACF803C910557 +:101AB00009F1883C9105F1F0883B910579F6809118 +:101AC0009A018A3A09F449C0E091AA01F091AB0168 +:101AD000E655FF4F808183B98091AA019091AB01B7 +:101AE00001969093AB018093AA018091AD018F5F25 +:101AF0008093AD0185EC86BFB3CF8036910589F226 +:101B00008836910509F0AACFCCCF8091AA01909197 +:101B1000AB010E94110A1092AD01D1CF8091AA01B0 +:101B20009091AB012091AD016091AD01821B0E94AB +:101B3000AF0C85EC86BF94CF8091AC01882351F126 +:101B400023B180919A018A3A89F1E091AA01F0913A +:101B5000AB01E655FF4F2083BFCFE091AA01F09182 +:101B6000AB01E655FF4F8081E091AA01F091AB01F6 +:101B7000E770F070E656FF4F2081E091AA01F091E6 +:101B8000AB01E770F070EE55FF4F9081821B892703 +:101B900083B9A2CF83B190E09093AB018093AA0167 +:101BA00081E08093AC011092AD01A4CF8091AA0195 +:101BB0009091AB01803F910541F2A091AA01B091B3 +:101BC000AB01E091AA01F091AB01E770F070EE5526 +:101BD000FF4F8081E091AA01F091AB01E770F070B6 +:101BE000E656FF4F90818227890FA655BF4F8C93F1 +:101BF00073CF97FB092E07260AD077FD04D00CD0AF +:101C000006D000201AF4709561957F4F0895F6F77D +:101C1000909581959F4F0895AA1BBB1B51E107C06A +:101C2000AA1FBB1FA617B70710F0A61BB70B881F6C +:101C3000991F5A95A9F780959095BC01CD010895FB +:101C4000FB01DC0104C08D910190801921F4415009 +:0E1C50005040C8F7881B990B0895F894FFCFF9 +:101C5E000000A420010100000000000000000000B0 +:101C6E000000000000000000000000000000000066 +:061C7E0000000000000060 :00000001FF |