diff --git a/Tangible/#socket.h# b/Tangible/#socket.h# old mode 100644 new mode 100755 index 2bbc175..2bbc175 --- a/Tangible/#socket.h# +++ b/Tangible/#socket.h# diff --git a/Tangible/ethernet.h b/Tangible/ethernet.h old mode 100644 new mode 100755 index f84a152..f84a152 --- a/Tangible/ethernet.h +++ b/Tangible/ethernet.h diff --git a/Tangible/socket.c b/Tangible/socket.c old mode 100644 new mode 100755 index 193fb8e..193fb8e --- a/Tangible/socket.c +++ b/Tangible/socket.c diff --git a/Tangible/socket.h b/Tangible/socket.h old mode 100644 new mode 100755 index 11c17d9..11c17d9 --- a/Tangible/socket.h +++ b/Tangible/socket.h diff --git a/Tangible/spi.h b/Tangible/spi.h old mode 100644 new mode 100755 index 6b41688..6b41688 --- a/Tangible/spi.h +++ b/Tangible/spi.h diff --git a/Tangible/tangibleInterface b/Tangible/tangibleInterface index 43b63d9..e4f61f7 100755 Binary files a/Tangible/tangibleInterface and b/Tangible/tangibleInterface differ diff --git a/Tangible/tangibleInterface.c b/Tangible/tangibleInterface.c index c4c4e9c..037559c 100755 --- a/Tangible/tangibleInterface.c +++ b/Tangible/tangibleInterface.c @@ -16,15 +16,25 @@ #define NB_TICK 6250 #define DELAY 300 + bool isComMem = false; // Commande déjà enregistrée ou non? -bool sleep = true; //Etat de l'interface : true = mode sommeil / false = mode eveillé +bool sleep = false; //Etat de l'interface : true = mode sommeil / false = mode eveillé uint8 comMem[2]; //Commande en mémoire char msg[30]={'\0'}; +typedef enum type_msg {TCP,UDP}type_msg; +bool isTCP_received = false; // <- Msg TCP reçu ou non? Permet la réouverture de la socket TCP pour permettre la réécoute TCP void init_led(void) { DDRD = 0xFF; - PORTD = 0x08; + if (sleep == true) // si IT dort + { + PORTD = 0x08; + } + else + { + PORTD = 0x00; + } } void init_timer(void) @@ -42,52 +52,13 @@ ISR(TIMER1_COMPA_vect) PORTD ^= 0x20; } -void requestTCP(SOCKET s,uint8 rq [2]) -{ - - if (!isComMem) //Aucune commande en mémoire - { - isComMem = true; - comMem[0] = rq[0]; comMem[1] = rq [1]; - } - - uint8 x = rq [0] & 0xE0; //Récupération de la commande - x = x >> 5; - uint16 y = rq[0] & 0x1F; //Récupération du pourcentage - y = y << 8; - y += rq[1]; - switch(x) - { - case 0: // GETSTATUS - if (sleep==false) - { - strcpy(msg,"\x20\x01"); - } - else - { - strcpy(msg,"\x20\x00"); - } - send(s,msg,sizeof(char)*strlen(msg)); // REPONSE JE DORS OU NON - disconnect(s); - comMem[0] = rq[0]; comMem[1] = rq [1]; // SAVE - break; - - case 3: - printf("Request ComMem\n"); - strcpy(msg,comMem); - send(s,msg,sizeof(char)*strlen(msg)); - comMem[0] = rq[0]; comMem[1] = rq [1]; // SAVE - break; - } -} -void requestUDP(uint8_t addr[IPV4_SIZE],uint8 rq [2]) +void request(SOCKET sock,uint8 rq[2],uint8 addr[IPV4_SIZE],type_msg type) { - SOCKET s = 2; //Socket TCP pour réponse à la broadcast UDP if (!isComMem) //Aucune commande en mémoire { isComMem = true; - comMem[0] = rq[0]; comMem[1] = rq [1]; + comMem[0] = 0xA0; comMem[1] = 0x00; // Pourcentage = 0% clignotage de base } uint8 x = rq [0] & 0xE0; //Récupération de la commande @@ -96,125 +67,153 @@ void requestUDP(uint8_t addr[IPV4_SIZE],uint8 rq [2]) y = y << 8; y += rq[1]; float per = y*0.0122; + - switch(x) + if (type == UDP) { - - case 0: // GETSTATUS ( Via UDP broadcast, on répond en TCP ! ) - if(socket(s,Sn_MR_TCP,2020,0) == 0) + SOCKET s = 2; //Socket TCP pour réponse à la broadcast UDP + switch(x) { - printf("SOCKET NON INITILIASEE \n"); + case 0: // GETSTATUS ( Via UDP broadcast, on répond en TCP ! ) + if(socket(s,Sn_MR_TCP,2020,0) == 0) + { + printf("SOCKET TCP NON INITILIASEE \n"); + } + if (connect(s,addr,2020)) + { + _delay_ms(DELAY); //l'IT doit attendre un peu avant d'envoyer + if (sleep==false) + { + strcpy(msg,"\x20\x01"); + } + else + { + strcpy(msg,"\x20\x00"); + } + send(s,msg,sizeof(char)*strlen(msg)); + } + break; + + case 2: // SLEEP MODE ON/OFF + if ((y == 0x0001) & (sleep == true)) + { + sleep = false; + printf("MODE EVEILLE\n"); + PORTD = PORTD ^ 0x08; + } + else if ((y == 0x0000) & (sleep == false)) + { + sleep = true; + printf("MODE SOMMEIL\n"); + PORTD = 0x08; + } + break; + + case 5: // SETCOMMANDE + if (sleep == false) + { + OCR1A = NB_TICK - 53*(int)per; + comMem[0] = rq[0]; comMem[1] = rq [1]; //save + } + break; } - if (connect(s,addr,2020)) + } + + else if (type == TCP) + { + switch(x) { - _delay_ms(DELAY); //l'IT doit attendre un peu avant d'envoyer + case 0: // GETSTATUS if (sleep==false) { strcpy(msg,"\x20\x01"); } else { - strcpy(msg,"\x20\x00"); + strcpy(msg,"\x20\x00"); } - send(s,msg,sizeof(char)*strlen(msg)); - disconnect(s); - } - comMem[0] = rq[0]; comMem[1] = rq [1]; //save - break; - - - case 2: // SLEEP MODE ON/OFF - if ((y == 0x0001) & (sleep == true)) - { - sleep = false; - printf("MODE EVEILLE\n"); - PORTD = PORTD ^ 0x08; - } - else if ((y == 0x0000) & (sleep == false)) - { - sleep = true; - printf("MODE SOMMEIL\n"); - PORTD = 0x08; - } - comMem[0] = rq[0]; comMem[1] = rq [1]; //save - break; + send(sock,msg,sizeof(char)*strlen(msg)); // REPONSE JE DORS OU NON + break; - case 5: // SETCOMMANDE - if (sleep == false) - { - OCR1A = NB_TICK - 53*(int)per; - comMem[0] = rq[0]; comMem[1] = rq [1]; //save - } - break; - } + case 3: // Serveur qui demande la commande en mémoire : pourcentage + printf("Request ComMem\n"); + strcpy(msg,comMem); + send(sock,msg,sizeof(char)*strlen(msg)); + break; + case 7: + printf("Demande de fin de dialogue\n"); + isTCP_received=true; + disconnect(sock); + break; + + } + } } - - - -int main(void) -{ - /*variables*/ - SOCKET sUDP=0,sTCP=1; - uint8_t mac[MAC_SIZE] = {0xA0,0xBD,0xCD,0xDD,0xED,0xFD}; // <- Adresse MAC de l'IT - uint8_t ip[IPV4_SIZE] = {192,168,1,205}; // <- Adresse IPV4 de l'IT - uint8_t gateway[4] = {192,168,1,1}; // <- Adresse passerelle - uint8_t mask[4] = {255,255,255,0}; // <- Masque de sous réseau - uint8 buf[2]; // <- Sert à stocker les deux octets recus via TCP & UDP - uint16 datasize; // <- Sert à stocker la longueur du datagramme - uint8_t addr[IPV4_SIZE]; // <- Sert à stocker l'adresse IP de l'émetteur - uint16_t port; // <- Sert à stocker le port utilisé par l'émetteur - bool isTCP_received = false; // <- Msg TCP reçu ou non? Permet la réouverture de la socket TCP pour permettre la réécoute TCP - - /*init*/ - init_led(); // <- Initialise les LEDS - init_timer(); // <- Initialise le compteur pour la fréquence du clignotement LED - init_printf(); // <- Initialise la communication série - ethernet_init(mac,ip,gateway,mask); // <- Initialise le shield ethernet + int main(void) + { + /*variables*/ + SOCKET sUDP=0,sTCP=1; + uint8_t mac[MAC_SIZE] = {0xA0,0xBD,0xCD,0xDD,0xED,0xFD}; // <- Adresse MAC de l'IT + uint8_t ip[IPV4_SIZE] = {192,168,1,205}; // <- Adresse IPV4 de l'IT + uint8_t gateway[4] = {192,168,1,1}; // <- Adresse passerelle + uint8_t mask[4] = {255,255,255,0}; // <- Masque de sous réseau + uint8 buf[2]; // <- Sert à stocker les deux octets recus via TCP & UDP + uint16 datasize; // <- Sert à stocker la longueur du datagramme + uint8_t addr[IPV4_SIZE]; // <- Sert à stocker l'adresse IP de l'émetteur + uint16_t port; // <- Sert à stocker le port utilisé par l'émetteur + type_msg type; + + /*init*/ + init_led(); // <- Initialise les LEDS + init_timer(); // <- Initialise le compteur pour la fréquence du clignotement LED + init_printf(); // <- Initialise la communication série + ethernet_init(mac,ip,gateway,mask); // <- Initialise le shield ethernet - if (!socket(sUDP,Sn_MR_UDP,2020,0)) - { - return -1; - } - if (!socket(sTCP,Sn_MR_TCP,2020,0)) - { - return -1; - } - while(1) - { - socket(sTCP,Sn_MR_TCP,2020,0); - listen(sTCP); - isTCP_received=false; - while(!isTCP_received) - { - sei(); - if (IINCHIP_READ(Sn_SR(sTCP)) == SOCK_ESTABLISHED) // Quelqu'un s'est connecté en TCP - { - cli(); - while(!isTCP_received) // On boucle en attendant le message du client - { - if(recv(sTCP,buf,2)>0) + if (!socket(sUDP,Sn_MR_UDP,2020,0)) + { + return -1; + } + + if (!socket(sTCP,Sn_MR_TCP,2020,0)) + { + return -1; + } + + while(1) + { + socket(sTCP,Sn_MR_TCP,2020,0); + listen(sTCP); + isTCP_received=false; + while(!isTCP_received) + { + sei(); + if (IINCHIP_READ(Sn_SR(sTCP)) == SOCK_ESTABLISHED) // Quelqu'un s'est connecté en TCP + { + cli(); + while(!isTCP_received) // On boucle en attendant le message du client { - printf("MESSAGE RECU VIA TCP %x %x \n",buf[0],buf[1]); - requestTCP(sTCP,buf); // On traite le message du client - isTCP_received = true; + if(recv(sTCP,buf,2)>0) + { + type=TCP; + request(sTCP,buf,NULL,type); // On traite le message du client + } } - } - } - if((datasize=recvfrom(sUDP,buf,sizeof(buf),addr,&port)) == 8) // Quelqu'un a envoyé 2 octets via UDP - { - cli(); - printf("MESSAGE RECU VIA UDP %x %x \n",buf[0],buf[1]); - requestUDP(addr,buf); // On traite le message du client - isTCP_received = true; - } - } - } - close(sTCP); - close(sUDP); - return 0; -} + } + if((datasize=recvfrom(sUDP,buf,sizeof(buf),addr,&port)) == 8) // Quelqu'un a envoyé 2 octets via UDP + { + cli(); + type=UDP; + printf("MESSAGE RECU VIA UDP %x %x \n",buf[0],buf[1]); + request(sUDP,buf,addr,type); // On traite le message du client + } + } + } + close(sTCP); + close(sUDP); + return 0; + } diff --git a/Tangible/tangibleInterface.hex b/Tangible/tangibleInterface.hex index 71b07e9..18bebab 100644 --- a/Tangible/tangibleInterface.hex +++ b/Tangible/tangibleInterface.hex @@ -1,635 +1,631 @@ :100000000C9434000C9451000C9451000C94510049 :100010000C9451000C9451000C9451000C9451001C -:100020000C9451000C9451000C9451000C946F00EE +:100020000C9451000C9451000C9451000C947500E8 :100030000C9451000C9451000C9451000C945100FC :100040000C9451000C9451000C9451000C945100EC :100050000C9451000C9451000C9451000C945100DC :100060000C9451000C94510011241FBECFEFD8E026 -:10007000DEBFCDBF13E0A0E0B1E0EAECF4E202C0E5 +:10007000DEBFCDBF13E0A0E0B1E0EAE8F4E202C0E9 :1000800005900D92A43CB107D9F724E0A4ECB3E0AD -:1000900001C01D92A132B207E1F70E94190D0C9424 -:1000A00063120C9400008FEF8AB988E08BB9089531 -:1000B000E1E8F0E0808188608083808184608083D3 -:1000C0008081816080838AE698E1909389008093A3 -:1000D0008800EFE6F0E080818260808308951F92BF -:1000E0000F920FB60F9211248F939F93809100016E -:1000F000811104C09BB180E289278BB99F918F91B8 -:100100000F900FBE0F901F9018951F93CF93DF9302 -:10011000182FEB018091E203811109C081E08093E7 -:10012000E203888180931904898180931A0488816D -:10013000829586958770D9F08330E9F587E291E062 -:100140000E946B0F69E174E084EC93E00E944E0F13 -:10015000E4ECF3E001900020E9F73197AF01445C53 -:10016000534064EC73E0812F0E94D6081EC080913A -:100170000001811103C064E271E002C06FE071E030 -:1001800084EC93E00E944E0FE4ECF3E00190002039 -:10019000E9F73197AF01445C534064EC73E0812F81 -:1001A0000E94D608812F0E94BE088881809319047E -:1001B000898180931A04DF91CF911F9108950F9345 -:1001C0001F93CF93DF938C01EB018091E2038111A8 -:1001D00009C081E08093E2038881809319048981BA -:1001E00080931A048881682F6F7170E0762F6627DC -:1001F0009981690F711D829586958770823009F407 -:1002000043C0853009F45FC0811180C020E044EE16 -:1002100057E061E082E00E949C07811104C086E300 -:1002200091E00E946B0F44EE57E0B80182E00E941B -:100230005808882309F464C02FEF85EA9EE0215016 -:1002400080409040E1F700C00000809100018111E2 -:1002500003C064E271E002C06FE071E084EC93E0FF -:100260000E944E0FE4ECF3E001900020E9F7319793 -:10027000AF01445C534064EC73E082E00E94D60816 -:1002800082E00E94BE083CC080910001613071058F -:1002900061F4882351F0109200018EE491E00E94F5 -:1002A0006B0F9BB188E089270CC0672B49F5813023 -:1002B00038F581E0809300018BE591E00E946B0F9F -:1002C00088E08BB91DC08091000181111FC080E0C2 -:1002D00090E00E94530E22E832EE47E45CE30E9475 -:1002E000B90E0E941D0E2BEC2603A001279F500D76 -:1002F0001124CA018659974E9093890080938800F3 -:10030000888180931904898180931A04DF91CF91A9 -:100310001F910F910895E82FF0E0ED5EFB4F808173 -:100320000895E82FF0E0ED5EFB4F60830895E82F1D -:10033000F0E0EE0FFF1FED50FC4F8081918108959A -:10034000E82FF0E0EE0FFF1FE550FC4F8081918118 -:100350000895E82FF0E0EE0FFF1FED5FFB4F808167 -:1003600091810895E82FF0E0EE0FFF1FE55FFB4F4E -:10037000808191810895E82FF0E0EE0FFF1FED518D -:10038000FC4F808191810895E82FF0E0EE0FFF1F70 -:10039000E551FC4F80819181089524B12C6224B9EC -:1003A0002A9A25B1277D25B920E52CBD2A9820EF72 -:1003B0002EBD0DB407FEFDCF9EBD0DB407FEFDCFD3 -:1003C0008EBD0DB407FEFDCF6EBD0DB407FEFDCF93 -:1003D0002A9A81E0089524B12C6224B92A9A25B181 -:1003E000277D25B920E52CBD2A982FE02EBD0DB420 -:1003F00007FEFDCF9EBD0DB407FEFDCF8EBD0DB433 -:1004000007FEFDCF1EBC0DB407FEFDCF8EB52A9AA8 -:10041000089524B12C6224B92A9A25B1277D25B9E3 -:1004200020E52CBDFB019B01240F351F60EFE21777 -:10043000F307A9F02A986EBD0DB407FEFDCF9EBD4F -:100440000DB407FEFDCF8EBD0DB407FEFDCF71913B -:100450007EBD0DB407FEFDCF2A9A0196E8CFCA01F2 -:10046000089524B12C6224B92A9A25B1277D25B993 -:1004700020E52CBDFB019B01240F351F6FE0E21727 -:10048000F307B1F02A986EBD0DB407FEFDCF9EBDF7 -:100490000DB407FEFDCF8EBD0DB407FEFDCF1EBC13 -:1004A0000DB407FEFDCF7EB571932A9A0196E7CF72 -:1004B000CA0108952F923F924F925F926F927F925E -:1004C0008F929F92AF92BF92CF92DF92EF92FF9264 -:1004D0000F931F93CF93DF93CDB7DEB728970FB657 -:1004E000F894DEBF0FBECDBF282E362E82EA91E0F3 -:1004F0000E946B0F622D8BE190E00E94CD01632D75 -:100500008AE190E00E94CD0180E090E49093EC03BA -:100510008093EB0380E090E69093E4038093E30301 -:100520008DEA91E00E946B0F83EE882E83E0982E77 -:100530009BEEA92E93E0B92E2BEF33E038872F8363 -:1005400003EF13E023E0C22E24E0D22E3BE0E32EA3 -:1005500034E0F32E1A821982412C512C1C821B820A -:10056000612C712C222D30E03E832D83232C312CE5 -:10057000AF81B88511961C921E92F80111821082EB -:100580002B813C8121153042B4F58D819E810980FB -:1005900002C0959587950A94E2F783709927823077 -:1005A0009105A9F083309105D9F0019739F080E0E9 -:1005B00094E08D939C93EFEFF3E01AC0E0E0F8E055 -:1005C000AF81B885ED93FC93EFEFF7E011C0E0E069 -:1005D000F0E1AF81B885ED93FC93EFEFFFE008C049 -:1005E000E0E0F0E2AF81B885ED93FC93EFEFFFE13F -:1005F000D701ED93FC934114F0E25F069CF5C10135 -:10060000098002C0959587950A94E2F7837099272F -:1006100082309105A9F083309105D1F0019741F026 -:10062000E0E0F4E0D801ED93FC93EFEFF3E017C0C6 -:10063000E0E0F8E0D801ED93FC93EFEFF7E00FC0B6 -:10064000E0E0F0E1D801ED93FC93EFEFFFE007C0AD -:10065000E0E0F0E2D801ED93FC93EFEFFFE1D6018B -:10066000ED93FC93AF81B8858D919D91B887AF8351 -:100670002B813C81280F391F3C832B83D8012D917E -:100680003D918D01420E531E61147104D9F0EF812A -:10069000F885349760817181F501329740815181ED -:1006A000460F571FF50151834083FD013497608148 -:1006B0007181F401329740815181460F571FD40157 -:1006C0004D935C93F40160817181F2E08F0E911C77 -:1006D000D5014C9111965C91B2E0AB0EB11C3F93E9 -:1006E0002F939F938F937F936F935F934F937F92FB -:1006F0006F92A6EDB1E0BF93AF930E94550FFFEF4D -:100700006F1A7F0A29813A812E5F3F4F3A832983EE -:1007100032E0C30ED11C42E0E40EF11C0FB6F89497 -:10072000DEBF0FBECDBF94E06916710409F020CF83 -:1007300028960FB6F894DEBF0FBECDBFDF91CF91E4 -:100740001F910F91FF90EF90DF90CF90BF90AF90EF -:100750009F908F907F906F905F904F903F902F90E1 -:100760000895682F80E090E80C94CD0180E80C9407 -:10077000B103CF93DF93EC01688181E090E00E94A8 -:10078000CD01698182E090E00E94CD016A8183E021 -:1007900090E00E94CD016B8184E090E0DF91CF91E9 -:1007A0000C94CD01CF93DF93EC0181E090E00E94A7 -:1007B000EB01888382E090E00E94EB01898383E073 -:1007C00090E00E94EB018A8384E090E00E94EB01BC -:1007D0008B83DF91CF910895CF93DF93EC016881F4 -:1007E00085E090E00E94CD01698186E090E00E9462 -:1007F000CD016A8187E090E00E94CD016B8188E0A5 -:1008000090E0DF91CF910C94CD01CF93DF93EC0179 -:10081000688189E090E00E94CD0169818AE090E0E2 -:100820000E94CD016A818BE090E00E94CD016B8136 -:100830008CE090E00E94CD016C818DE090E00E9400 -:10084000CD016D818EE090E0DF91CF910C94CD01D0 -:10085000CF93DF93EC0168818FE090E00E94CD019F -:10086000698180E190E00E94CD016A8181E190E0A0 -:100870000E94CD016B8182E190E0DF91CF910C94D9 -:10088000CD0185E190E00C94EB01CF93C82F692F47 -:1008900087E190E00E94CD016C2F88E190E0CF913C -:1008A0000C94CD01682F89E190E00C94CD01682F64 -:1008B00086E190E00C94CD01CF93DF93EC0181E0D1 -:1008C00090E00E94EB01888382E090E00E94EB01BF -:1008D000898383E090E00E94EB018A8384E090E0CA -:1008E0000E94EB018B83DF91CF910895CF93DF932B -:1008F000EC0185E090E00E94EB01888386E090E0C7 -:100900000E94EB01898387E090E00E94EB018A83DB -:1009100088E090E00E94EB018B83DF91CF910895F6 -:10092000CF93DF93EC0189E090E00E94EB01888394 -:100930008AE090E00E94EB0189838BE090E00E94C6 -:10094000EB018A838CE090E00E94EB018B838DE0C9 -:1009500090E00E94EB018C838EE090E00E94EB011E -:100960008D83DF91CF910895CF93DF93EC018FE0DA -:1009700090E00E94EB01888380E190E00E94EB010F -:10098000898381E190E00E94EB018A8382E190E01B -:100990000E94EB018B83DF91CF9108950F931F93FA -:1009A000CF93DF938B01C82FD0E02496DC2FCC2788 -:1009B000CE0106960E94EB01F8018083CE010796D6 -:1009C0000E94EB01F8018183CE0108960E94EB01A1 -:1009D000F8018283CE0109960E94EB01F80183831E -:1009E000CE010A960E94EB01F8018483CE010B969A -:1009F0000E94EB01F8018583DF91CF911F910F9148 -:100A000008950F931F93CF93DF938B01C82FD0E0EE -:100A10002496DC2FCC27FB016081CE0106960E9434 -:100A2000CD01F8016181CE0107960E94CD01F80148 -:100A30006281CE0108960E94CD01F8016381CE014A -:100A400009960E94CD01F8016481CE010A960E94A8 -:100A5000CD01F8016581CE010B96DF91CF911F91F9 -:100A60000F910C94CD010F931F93CF93DF938B01C4 -:100A7000C82FD0E02496DC2FCC27CE010C960E9404 -:100A8000EB01F8018083CE010D960E94EB01F80185 -:100A90008183CE010E960E94EB01F8018283CE0184 -:100AA0000F960E94EB01F8018383DF91CF911F9194 -:100AB0000F9108950F931F93CF93DF938B01C82F4E -:100AC000D0E02496DC2FCC27FB016081CE010C9670 -:100AD0000E94CD01F8016181CE010D960E94CD01E9 -:100AE000F8016281CE010E960E94CD01F80163816A -:100AF000CE010F96DF91CF911F910F910C94CD01F4 -:100B00000F931F93CF93DF938B01C82FD0E02496D0 -:100B1000DC2FCC27CE0140960E94EB01F8018083A8 -:100B2000CE0141960E94EB01F8018183DF91CF91C4 -:100B30001F910F9108950F931F93CF93DF938B0114 -:100B4000C82FD0E02496DC2FCC27FB016081CE019A -:100B500040960E94CD01F8016181CE014196DF915E -:100B6000CF911F910F910C94CD011F93CF93DF93E1 -:100B7000162F672FC82FD0E02496DC2FCC27CE016C -:100B800042960E94CD01612FCE014396DF91CF9115 -:100B90001F910C94CD0190E0982F88278A5E9B4F7F -:100BA0000C94CD0190E0982F88278C5E9B4F0C947D -:100BB000CD0190E0982F88278E5F9B4F0C94EB011E -:100BC00090E0982F88278D5F9B4F0C94EB01CF927C -:100BD000DF92EF92FF920F931F93CF93DF93C82F73 -:100BE000D0E02496DC2FCC277E0180E2E80EF11CB9 -:100BF000A19600E010E0C7010E94EB01C82ED12CA5 -:100C0000DC2CCC24CE010E94EB01C80ED11CC114F7 -:100C1000D10461F0C7010E94EB01082F10E0102FF2 -:100C20000027CE010E94EB01080F111D0C151D05B8 -:100C300011F7C801DF91CF911F910F91FF90EF90B5 -:100C4000DF90CF900895CF92DF92EF92FF920F93B3 -:100C50001F93CF93DF93C82FD0E02496DC2FCC27AF -:100C60007E0186E2E80EF11CA79600E010E0C701C5 -:100C70000E94EB01C82ED12CDC2CCC24CE010E948A -:100C8000EB01C80ED11CC114D10461F0C7010E9450 -:100C9000EB01082F10E0102F0027CE010E94EB017E -:100CA000080F111D0C151D0511F7C801DF91CF911B -:100CB0001F910F91FF90EF90DF90CF900895CF920A -:100CC000DF92EF92FF920F931F93CF93DF93E82F62 -:100CD000F0E0EE0FFF1FDF01A55FBB4F8D919C91F0 -:100CE000DA01A823B923EF01C551DC4FE880F98070 -:100CF000CD018E0D9F1DE550FC4FC081D181AD010E -:100D0000420F531FC417D50778F489016B01CA1B22 -:100D1000DB0BAE010E940902A8014C1B5D0BB60162 -:100D20006C0F7D1FC70101C0A901DF91CF911F91F9 -:100D30000F91FF90EF90DF90CF900C9409028F926B -:100D40009F92BF92CF92DF92EF92FF920F931F93E9 -:100D5000CF93DF9300D0CDB7DEB7B82E7A0190E005 -:100D60000496982E8824640184E2C80ED11CC60122 -:100D700069837A830E94EB01082F10E0102F00276F -:100D800085E2880E911CC4010E94EB01080F111D21 -:100D90009701A80169817A818B2D0E945F060E0D53 -:100DA0001F1D612FC6010E94CD01602FC4010F904D -:100DB0000F90DF91CF911F910F91FF90EF90DF90F7 -:100DC000CF90BF909F908F900C94CD01AF92BF9227 -:100DD000CF92DF92EF92FF920F931F93CF93DF9307 -:100DE000DA01A901E82FF0E0EE0FFF1FEF01CD5F60 -:100DF000DB4F888199816B01C822D922EF01CD5147 -:100E0000DC4FE880F980C6018E0D9F1DED50FC4F30 -:100E1000C081D1819601240F351FC217D30780F4FA -:100E20008A015D01CC19DD09AE01BD010E943102CC -:100E3000A8014C1B5D0BB5016C0F7D1FC70101C0E4 -:100E4000BD01DF91CF911F910F91FF90EF90DF9047 -:100E5000CF90BF90AF900C9431029F92AF92BF920F -:100E6000CF92DF92EF92FF920F931F93CF93DF9376 -:100E7000982E6B017A01082F10E00C5F1F4F102F86 -:100E80000027580188E2A80EB11CC5010E94EB01A1 -:100E9000C82FD0E0DC2FCC27075D1F4FC8010E9470 -:100EA000EB01C80FD11DDF93CF9387EF91E09F93A4 -:100EB0008F930E94550F9701A601BE01892D0E94B4 -:100EC000E606CE0DDF1D6D2FC5010E94CD010F90EE -:100ED0000F900F900F906C2FC801DF91CF911F9151 -:100EE0000F91FF90EF90DF90CF90BF90AF909F90C9 -:100EF0000C94CD010F931F93CF93DF93C82F8FE0F6 -:100F000092E00E946B0FD0E02496DC2FCC278E015C -:100F10000F5F1F4F60E1C8010E94CD01C8010E9410 -:100F2000EB018111FBCF6FEFCE010296DF91CF91E4 -:100F30001F910F910C94CD01CF92DF92EF92FF920F -:100F40000F931F93CF93DF93C82F062F6A01122FA1 -:100F500088E192E00E946B0F8FEF800FEC2EF12C56 -:100F60008530C8F58C2F0E947A07E7012496DC2F84 -:100F7000CC27602F612BCE010E94CD01CE010496BB -:100F80008E010B5F1F4FC114D10429F06D2D0E94FB -:100F9000CD016C2D0FC020911704309118042F5FE4 -:100FA0003F4F3093180420931704632F0E94CD0104 -:100FB00060911704C8010E94CD018E010F5F1F4F81 -:100FC00061E0C8010E94CD01C8010E94EB018111BE -:100FD000FBCF11E001C010E0E7012496DC2FCC2705 -:100FE000CE010E94EB01082FCE0103960E94EB0177 -:100FF0001F920F931F928F9382E292E09F938F93A1 -:101000000E94550F0F900F900F900F900F900F9020 -:10101000812FDF91CF911F910F91FF90EF90DF9083 -:10102000CF9008950F931F93CF93DF93C82F83E43E -:1010300092E00E946B0FD0E02496DC2FCC278E012B -:101040000D5F1F4FC8010E94EB018331D9F4219637 -:1010500062E0CE010E94CD01CE010E94EB01811120 -:10106000FBCFC8010E94EB011F928F938DE492E0A9 -:101070009F938F930E94550F0F900F900F900F909A -:1010800081E005C08BE592E00E946B0F80E0DF916C -:10109000CF911F910F91089590E0982F88278D5F31 -:1010A0009B4F0E94EB01873111F481E00895089570 -:1010B000EF92FF920F931F93CF93DF93C82F8B0173 -:1010C0007A0185E792E00E946B0FF80160816F3F23 -:1010D00051F481818F3F99F482818F3F81F4838124 -:1010E0008F3F69F40FC061110AC0F801818181113D -:1010F00006C08281811103C08381882319F0E11425 -:10110000F10431F48BE592E00E946B0F80E02FC078 -:10111000D0E02496DC2FCC27CE010C960E94CD0186 -:10112000F8016181CE010D960E94CD01F801628126 -:10113000CE010E960E94CD01F8016381CE010F967B -:101140000E94CD016F2DCE0140960E94CD016E2DE3 -:10115000CE0141960E94CD01219664E0CE010E940D -:10116000CD01CE010E94EB018111FBCF81E0DF9127 -:10117000CF911F910F91FF90EF900895CF93DF9340 -:10118000C82F82E792E00E946B0FD0E0DC2FCC27C3 -:10119000CF5FDB4F68E0CE010E94CD01CE010E94FF -:1011A000EB018111FBCFDF91CF9108958F929F9238 -:1011B000AF92BF92CF92DF92EF92FF921F93CF93A5 -:1011C000DF93182F4B017A018DE993E00E946B0F9A -:1011D000812F0E94A0018E159F0520F4812F0E946F -:1011E000A0017C01C12FD0E02496DC2FCC275E012A -:1011F00083E0A80EB11C812F0E94E7056C01C50198 -:101200000E94EB018731A9F08C3199F0DF92CF92E7 -:101210001F921F9380E892E09F938F930E94550F37 -:101220000F900F900F900F900F900F90E12CF12CDA -:1012300003C0CE14DF04F8F2A701B401812F0E948D -:101240009F066E018FEFC81AD80A60E2C6010E949D -:10125000CD01C6010E94EB018111FBCF2296CE0188 -:101260000E94EB0184FD0FC0C5010E94EB018111BA -:10127000F6CF88EA92E00E946B0F812F0E947A07D6 -:1012800080E090E005C060E1CE010E94CD01C70181 -:10129000DF91CF911F91FF90EF90DF90CF90BF90A3 -:1012A000AF909F908F900895AF92BF92CF92DF92B0 -:1012B000FF920F931F93CF93DF93F82E6B018A0158 -:1012C000C82FD0E02496DC2FCC275E0183E0A80E47 -:1012D000B11CC5010E94EB01873191F0C5010E944C -:1012E000EB011F928F9386EB92E09F938F930E9466 -:1012F000550F0F900F900F900F908FEF9FEF26C01C -:101300008F2D0E9423065C0118161906ECF489EC57 -:1013100092E00E946B0FA016B10620F00115110596 -:1013200089F001C08501A801B6018F2D0E942D070B -:10133000219660E4CE010E94CD01CE010E94EB0116 -:101340008111FBCFC80102C080E090E0DF91CF9116 -:101350001F910F91FF90DF90CF90BF90AF900895B5 -:101360009F92AF92BF92CF92DF92EF92FF920F9334 -:101370001F93CF93DF93982E5B01EA01790181EDF2 -:1013800092E00E946B0F892D0E94A0018C179D078F -:1013900028F4892D0E94A0016C0101C06E01F701A3 -:1013A0006081611109C08181811106C08281811132 -:1013B00003C08381882331F00115110519F0C11490 -:1013C000D10429F5DF93CF931F930F93F701838106 -:1013D0001F928F9382811F928F9381811F928F938F -:1013E0001F926F931F929F928BED92E09F938F932A -:1013F0000E94550F8BE592E00E946B0F8DB79EB750 -:1014000040960FB6F8949EBF0FBE8DBF49C0C92D40 -:10141000D0E02496DC2FCC27CE010C960E94CD0183 -:10142000F7016181CE010D960E94CD01F701628125 -:10143000CE010E960E94CD01F7016381CE010F9679 -:101440000E94CD01612FCE0140960E94CD01602FF8 -:10145000CE0141960E94CD01A601B501892D0E94C1 -:101460009F068E010F5F1F4F60E2C8010E94CD01F1 -:10147000C8010E94EB018111FBCF2296CE010E9490 -:10148000EB0184FD10C0CE010E94EB0183FFF6CF7B -:1014900087EB93E00E946B0F68E1CE010E94CD01C3 -:1014A00080E090E005C060E1CE010E94CD01C60160 -:1014B000DF91CF911F910F91FF90EF90DF90CF9030 -:1014C000BF90AF909F9008952F923F924F925F925E -:1014D0006F927F928F929F92AF92BF92CF92DF9244 -:1014E000EF92FF920F931F93CF93DF93CDB7DEB7A9 -:1014F0002A970FB6F894DEBF0FBECDBF782E4B01F2 -:101500006A0179011A8709870E942306892B09F449 -:101510002BC183E093E00E946B0F872D0E9423066E -:10152000382E692ECD2809F417C1472C512C84E0A0 -:10153000480E511C542C4424520198E2A90EB11CAF -:10154000C5010E94EB01082F10E0102F0027620157 -:10155000E9E2CE0ED11CC6010E94EB01080F111D5D -:101560006F923F921F930F938FE093E09F938F931F -:101570000E94550FC2010E94EB010F900F900F9037 -:101580000F900F900F908770833009F464C08430FF -:1015900009F4ABC0823009F0D0C028E030E0AE01E1 -:1015A0004F5F5F4FB801872D0E94E6061801F8E0F3 -:1015B0002F0E311C8981F70180838A8181838B8181 -:1015C00082838C8183838D8190E0982F88272E8160 -:1015D000820F911DE985FA85918380830F8110E048 -:1015E000102F00278885080F111D1F930F938FE27E -:1015F00093E09F938F930E94550FE985FA8581812F -:101600008F9380818F9385E493E09F938F930E94C3 -:10161000550FF70183811F928F9382811F928F93C1 -:1016200081811F928F9380811F928F9388E593E031 -:101630009F938F930E94550F9801A401B101872DAC -:101640000E94E6067101E00EF11E6F2DC5010E9499 -:10165000CD016E2D41C026E030E0AE014F5F5F4FFF -:10166000B801872D0E94E606180196E0290E311C6C -:101670008981F70180838A8181838B8182838C8138 -:1016800083830D8110E0102F00278E81080F111D1C -:1016900082E793E00E946B0FF70183811F928F9383 -:1016A00082811F928F9381811F928F9380811F92DD -:1016B0008F9388E593E09F938F930E94550F980135 -:1016C000A401B101872D0E94E606200E311E632D74 -:1016D000C5010E94CD01622DC6010E94CD010FB649 -:1016E000F894DEBF0FBECDBF2AC022E030E0AE01CD -:1016F0004F5F5F4FB801872D0E94E606780192E0A8 -:10170000E90EF11C098110E0902F88270A8110E072 -:1017100002501109080F191F9801A401B701872D64 -:101720000E94E606E00EF11E6F2DC5010E94CD015C -:101730006E2DC6010E94CD0102C000E010E0EFEF67 -:101740004E1A5E0A60E4C2010E94CD01C2010E94ED -:10175000EB018111FBCF02C000E010E086E893E0CE -:101760000E946B0FC80102C080E090E02A960FB67D -:10177000F894DEBF0FBECDBFDF91CF911F910F91C7 -:10178000FF90EF90DF90CF90BF90AF909F908F90A1 -:101790007F906F905F904F903F902F900895CF92E1 -:1017A000DF92FF920F931F93CF93DF93F82E6B017D -:1017B000EA0189E993E00E946B0F8F2D0E94A0013E -:1017C0008C179D0728F48F2D0E94A0018C0101C069 -:1017D0008E010115110589F41F921F92DF93CF939B -:1017E00085EA93E09F938F930E94550F0F900F907F -:1017F0000F900F900F900F9030C0A801B6018F2D61 -:101800000E949F06CF2DD0E02496DC2FCC276E01BE -:101810008FEFC81AD80A60E2C6010E94CD01C60146 -:101820000E94EB018111FBCF6E0182E0C80ED11C3A -:101830002396C6010E94EB0184FD12C0CE010E94D6 -:10184000EB01C6010E94EB0183FFF3CF83EB93E032 -:101850000E946B0F8F2D0E947A0780E090E005C0F8 -:1018600060E1C6010E94CD01C801DF91CF911F91B7 -:101870000F91FF90DF90CF900895CF92DF92EF927B -:10188000FF920F931F93CF93DF936C017B018A012B -:10189000E9010E94B60365E585E50E945A02C6018A -:1018A0000E940504C7010E942804C8010E94B903D0 -:1018B000CE01DF91CF911F910F91FF90EF90DF90BC -:1018C000CF900C94EC03092E000CAA0BBB0B9C01CF -:1018D000AD0184E0220F331F441F551F8A95D1F7B5 -:1018E00060E074E284EF90E00E94FB0D215031092A -:1018F0003093C5002093C40088E18093C10086E046 -:101900008093C200E0ECF0E080818D7F80830895B9 -:101910009091C00095FFFCCF8093C6000895CF93AF -:10192000C82F8A3019F48DE00E94880C8C2F0E94F9 -:10193000880C80E090E0CF9108958091C00087FFEF -:10194000FCCF8091C600089580E895E20E94630C68 -:1019500081E091E090931E0480931D04089580938C -:10196000BB0084E88093BC008091BC0087FFFCCF63 -:1019700008951092B9008CE08093B80084E08093C1 -:10198000BC000895CF9394EA9093BC009091BC0062 -:1019900097FFFCCF9091B900987F983011F080E0CC -:1019A00015C0C62F880F0E94AF0C8091B900887FA8 -:1019B0008831A9F78C2F0E94AF0C8091B900887FE5 -:1019C000883269F784E98093BC0081E0CF91089563 -:1019D000CF93DF9394EA9093BC009091BC0097FF63 -:1019E000FCCF9091B900987F983011F080E01EC034 -:1019F000C42FD62F880F0E94AF0C8091B900887F2A -:101A00008831A1F78D2F0E94AF0C8091B900887F9B -:101A1000883261F78C2F0E94AF0C8091B900887FCB -:101A2000883221F784E98093BC0081E0DF91CF9177 -:101A30000895AF92BF92CF92DF92FF920F931F93C0 -:101A4000CF93DF93CDB7DEB76A970FB6F894DEBFBA -:101A50000FBECDBF86E0E2E1F1E0DE01119601901C -:101A60000D928A95E1F78091180190911901A0914A -:101A70001A01B0911B018B8B9C8BAD8BBE8B80911F -:101A80001C0190911D01A0911E01B0911F018F8733 -:101A9000988BA98BBA8B8091200190912101A09104 -:101AA0002201B09123018B879C87AD87BE870E945E -:101AB00053000E9458000E94A40C9E01255F3F4FD6 -:101AC000AE01415F5F4FBE016D5E7F4FCE0101965B -:101AD0000E943D0C20E044EE57E062E080E00E946E -:101AE0009C07882309F475C020E044EE57E061E0CC -:101AF00081E00E949C07882309F46BC088E6C82E09 -:101B000081E0D82E95E8A92E91E0B92E20E044EE90 -:101B100057E061E081E00E949C0781E00E9412088A -:101B2000F12CF110F3CF789483E095E00E94EB0163 -:101B3000873121F5F89442E050E0BE01675E7F4FA7 -:101B400081E00E94540918161906ACF78A8D1F927D -:101B50008F93898D1F928F93DF92CF920E94550FA2 -:101B6000BE01675E7F4F81E00E9485000F900F905D -:101B70000F900F900F900F90FF24F3948E01095E49 -:101B80001F4F9E01295F3F4F42E050E0BE01675E5C -:101B90007F4F80E00E94640A089719F6F8948A8DB6 -:101BA0001F928F93898D1F928F93BF92AF920E9445 -:101BB000550FBE01675E7F4FCE0107960E94DF0082 -:101BC000FF24F3940F900F900F900F900F900F90B1 -:101BD000A8CF8FEF9FEF6A960FB6F894DEBF0FBEC7 -:101BE000CDBFDF91CF911F910F91FF90DF90CF90EC -:101BF000BF90AF900895A1E21A2EAA1BBB1BFD0156 -:101C00000DC0AA1FBB1FEE1FFF1FA217B307E407DB -:101C1000F50720F0A21BB30BE40BF50B661F771F33 -:101C2000881F991F1A9469F7609570958095909513 -:101C30009B01AC01BD01CF0108950E94240E689460 -:101C4000B1110C94B30E08950E94980E88F09F571E -:101C500098F0B92F9927B751B0F0E1F0660F771FD0 -:101C6000881F991F1AF0BA95C9F714C0B13091F0C6 -:101C70000E94B20EB1E008950C94B20E672F782F37 -:101C80008827B85F39F0B93FCCF38695779567958B -:101C9000B395D9F73EF490958095709561957F4FF7 -:101CA0008F4F9F4F0895E89409C097FB3EF490959D -:101CB0008095709561957F4F8F4F9F4F9923A9F025 -:101CC000F92F96E9BB279395F695879577956795B4 -:101CD000B795F111F8CFFAF4BB0F11F460FF1BC0F8 -:101CE0006F5F7F4F8F4F9F4F16C0882311F096E98B -:101CF00011C0772321F09EE8872F762F05C0662339 -:101D000071F096E8862F70E060E02AF09A95660FF1 -:101D1000771F881FDAF7880F9695879597F90895AA -:101D200057FD9058440F551F59F05F3F71F047958C -:101D3000880F97FB991F61F09F3F79F08795089571 -:101D4000121613061406551FF2CF4695F1DF08C090 -:101D5000161617061806991FF1CF869571056105AD -:101D600008940895E894BB2766277727CB0197F955 -:101D700008950E94CC0E0C943D0F0E942F0F38F056 -:101D80000E94360F20F0952311F00C94260F0C942E -:101D90002C0F11240C94B30E0E94900E70F3959F9B -:101DA000C1F3950F50E0551F629FF001729FBB2752 -:101DB000F00DB11D639FAA27F00DB11DAA1F649FEE -:101DC0006627B00DA11D661F829F2227B00DA11DA1 -:101DD000621F739FB00DA11D621F839FA00D611D27 -:101DE000221F749F3327A00D611D231F849F600D48 -:101DF000211D822F762F6A2F11249F5750409AF071 -:101E0000F1F088234AF0EE0FFF1FBB1F661F771FFC -:101E1000881F91505040A9F79E3F510580F00C94C7 -:101E2000260F0C94B30E5F3FE4F3983ED4F38695EF -:101E300077956795B795F795E7959F5FC1F7FE2B67 -:101E4000880F911D9695879597F9089597F99F6743 -:101E500080E870E060E008959FEF80EC0895002432 -:101E60000A941616170618060906089500240A94FF -:101E700012161306140605060895092E0394000C85 -:101E800011F4882352F0BB0F40F4BF2B11F460FF14 -:101E900004C06F5F7F4F8F4F9F4F0895FB01DC01A0 -:101EA00001900D920020E1F70895A0E0B0E0EBE58D -:101EB000FFE00C943C12AE014B5F5F4FFA01619161 -:101EC0007191AF0180911D0490911E040E949B0F9F -:101ED000E2E00C9458120F931F93CF93DF93E0919D -:101EE0001D04F0911E04238121FF1BC08C01D0E052 -:101EF000C0E0F80181918F0160911D0470911E0472 -:101F0000DB011896ED91FC911997882331F0099522 -:101F1000892B79F3DFEFCFEFECCF8AE00995892B9E -:101F200019F08FEF9FEF02C08D2F9C2FDF91CF9183 -:101F30001F910F910895ABE0B0E0E1EAFFE00C944F -:101F40002C126C017B018A01FC01178216828381AD -:101F500081FFCCC1CE0101963C01F6019381F701CE -:101F600093FD859193FF81917F01882309F4BAC184 -:101F7000853239F493FD859193FF81917F018532FC -:101F800029F4B60190E00E949211E7CF912C212C08 -:101F9000312CFFE1F315D8F08B3279F038F4803230 -:101FA00079F08332A1F4232D20611DC08D3261F0C0 -:101FB000803369F4232D216016C0832D8260382E72 -:101FC000E32DE4603E2E2AC0F32DF8601DC037FCDF -:101FD0002DC020ED280F2A3040F08E32B9F436FCA7 -:101FE00081C1232D2064322E19C036FE06C08AE03E -:101FF000989E200D1124922E11C0EAE02E9E200DF5 -:102000001124222EF32DF0623F2E08C08C3621F4CD -:10201000832D8068382E02C0883641F4F70193FD85 -:10202000859193FF81917F018111B3CF982F9F7D7F -:102030009554933028F40C5F1F4F9FE399830DC094 -:10204000833631F0833771F0833509F059C021C0F0 -:10205000F801808189830E5F1F4F88248394912C1F -:10206000530113C02801F2E04F0E511CF801A0806B -:10207000B18036FE03C0692D70E002C06FEF7FEFC4 -:10208000C5010E9487114C018201F32DFF773F2E7D -:1020900016C0280122E0420E511CF801A080B18038 -:1020A00036FE03C0692D70E002C06FEF7FEFC501FF -:1020B0000E947C114C01F32DF0683F2E820133FC0D -:1020C0001BC0822D90E088169906B0F4B60180E21C -:1020D00090E00E9492112A94F4CFF50137FC85918B -:1020E00037FE81915F01B60190E00E9492112110AC -:1020F0002A9421E0821A91088114910471F7E8C0B2 -:10210000843611F0893641F5F80137FE07C0608149 -:102110007181828193810C5F1F4F08C06081718142 -:10212000072E000C880B990B0E5F1F4FF32DFF76C7 -:102130003F2E97FF09C090958095709561957F4FD0 -:102140008F4F9F4FF0683F2E2AE030E0A3010E949E -:10215000CE11882E861845C0853731F4232D2F7E69 -:10216000B22E2AE030E025C0932D997FB92E8F360C -:10217000C1F018F4883579F0B5C0803719F0883788 -:1021800021F0B0C0E92FE061BE2EB4FE0DC0FB2DE2 -:10219000F460BF2E09C034FE0AC0292F2660B22E7B -:1021A00006C028E030E005C020E130E002C020E1B8 -:1021B00032E0F801B7FE07C06081718182819381AE -:1021C0000C5F1F4F06C06081718180E090E00E5F60 -:1021D0001F4FA3010E94CE11882E8618FB2DFF777A -:1021E0003F2E36FE0DC0232D2E7FA22E891458F4CB -:1021F00034FE0BC032FC09C0832D8E7EA82E05C094 -:10220000B82CA32C03C0B82C01C0B92CA4FE0FC05D -:10221000FE01E80DF11D8081803321F49A2D997E15 -:10222000A92E09C0A2FE06C0B394B39404C08A2D9F -:10223000867809F0B394A3FC11C0A0FE06C0B214C6 -:1022400088F4280C922C9B180EC0B21460F4B601CE -:1022500080E290E00E949211B394F7CFB21418F488 -:102260002B1802C0982C212CA4FE10C0B60180E3CC -:1022700090E00E949211A2FE17C0A1FC03C088E763 -:1022800090E002C088E590E0B6010CC08A2D867807 -:1022900059F0A1FE02C08BE201C080E2A7FC8DE2F2 -:1022A000B60190E00E949211891438F4B60180E3DF -:1022B00090E00E9492119A94F7CF8A94F301E80D6E -:1022C000F11D8081B60190E00E9492118110F5CF3E -:1022D000222009F442CEB60180E290E00E949211E1 -:1022E0002A94F6CFF6018681978102C08FEF9FEF87 -:1022F0002B96E2E10C944812FC010590615070406D -:102300000110D8F7809590958E0F9F1F0895FC01BE -:102310006150704001900110D8F7809590958E0F14 -:102320009F1F08950F931F93CF93DF93FB0123818A -:1023300021FD03C08FEF9FEF2CC022FF16C0468106 -:102340005781248135814217530744F4A081B1811C -:102350009D012F5F3F4F318320838C9326813781EE -:102360002F5F3F4F3783268314C08B01EC01FB01A5 -:102370000084F185E02D0995892BE1F6D8011696A8 -:102380008D919C911797019617969C938E93169713 -:10239000CE01DF91CF911F910F910895FA01AA27E5 -:1023A000283051F1203181F1E8946F936E7F6E5F98 -:1023B0007F4F8F4F9F4FAF4FB1E03ED0B4E03CD046 -:1023C000670F781F891F9A1FA11D680F791F8A1F29 -:1023D000911DA11D6A0F711D811D911DA11D20D090 -:1023E00009F468943F912AE0269F11243019305D4A -:1023F0003193DEF6CF010895462F4770405D41933B -:10240000B3E00FD0C9F7F6CF462F4F70405D4A3387 -:1024100018F0495D31FD4052419302D0A9F7EACF4F -:10242000B4E0A6959795879577956795BA95C9F77E -:1024300000976105710508959B01AC010A2E069471 -:102440005795479537952795BA95C9F7620F731F2A -:10245000841F951FA01D08952F923F924F925F9267 -:102460006F927F928F929F92AF92BF92CF92DF92A4 -:10247000EF92FF920F931F93CF93DF93CDB7DEB709 -:10248000CA1BDB0B0FB6F894DEBF0FBECDBF09949D -:102490002A88398848885F846E847D848C849B84F4 -:1024A000AA84B984C884DF80EE80FD800C811B8102 -:1024B000AA81B981CE0FD11D0FB6F894DEBF0FBE31 -:0A24C000CDBFED010895F894FFCFA1 -:1024CA000100000002000000008F0C000000002044 -:1024DA000000A0BDCDDDEDFDC0A801CDC0A8010161 -:1024EA00FFFFFF0020010052657175657374204378 -:1024FA006F6D4D656D00534F434B4554204E4F4E03 -:10250A0020494E4954494C494153454520004D4FB5 -:10251A00444520455645494C4C45004D4F444520BD -:10252A00534F4D4D45494C004D4553534147452066 -:10253A00524543552056494120544350202578207E -:10254A002578200A004D45535341474520524543BB -:10255A005520564941205544502025782025782079 -:10256A000A00737973696E697428290D00436861DA -:10257A006E6E656C203A2053454E44204D454D20E1 -:10258A0053495A45203A2052454356204D454D203D -:10259A0053495A450D002564203A20252E347820C7 -:1025AA003A20252E3478203A20252E3478203A20D5 -:1025BA00252E34780D0A004953525F52583A207238 -:1025CA00645F707472203A20252E34780D0A0063F5 -:1025DA006C6F736528290D00736F636B6574282906 -:1025EA000D00536E5F5352203D20252E3278202C49 -:1025FA002050726F746F636F6C203D20252E3278E5 -:10260A000D0A006C697374656E28290D0073746174 -:10261A00747573203D2025780D0A004661696C5B4C -:10262A00696E76616C69642069702C706F72745D72 -:10263A000D00646973636F6E6E65637428290D00FB -:10264A00736F636B657420256420667265657369B0 -:10265A007A652825642920656D707479206F722047 -:10266A006572726F720D0A00534F434B5F434C4FB2 -:10267A005345442E0D00426164207374617475736E -:10268A00203D20253032780A007265637628290DAC -:10269A000073656E64746F28290D002564204661F5 -:1026AA00696C5B252E32782E252E32782E252E3215 -:1026BA00782E252E32782C20252E642C2025645D38 -:1026CA000D0A007265637666726F6D28290D0049DE -:1026DA0053525F52583A2072645F707472203A20E3 -:1026EA00252E34782073697A653D25640D0A0055D4 -:1026FA004450206D736720232564206172726976C5 -:10270A0065640D0A00736F7572636520506F727489 -:10271A00203A2025750D0A00736F7572636520498A -:10272A0050203A2025642E25642E25642E25640D1A -:10273A000A00495020524157206D73672061727216 -:10274A00697665640D007265637666726F6D282915 -:10275A0020656E64202E2E0D0069676D7073656E9C -:10276A006428290D002564204661696C5B25645D37 -:10277A000D0A0069676D7073656E64206661696C25 -:04278A002E0D000010 +:1000900001C01D92A332B207E1F70E94070D0C9434 +:1000A00043120C9400008FEF8AB98091E3038823F8 +:1000B00019F088E08BB908951BB80895E1E8F0E0E5 +:1000C000808188608083808184608083808181607A +:1000D00080838AE698E19093890080938800EFE618 +:1000E000F0E080818260808308951F920F920FB6A6 +:1000F0000F9211248F939F938091E303811104C089 +:100100009BB180E289278BB99F918F910F900FBE91 +:100110000F901F901895FF920F931F93CF93DF932B +:10012000F82EEB018A018091E403811108C081E07F +:100130008093E40380EA80931B0410921C0468817E +:10014000862F8295869587702130310509F08DC004 +:100150006F7170E0762F66279981690F711D82306B +:1001600009F43EC0853009F45CC08111BCC020E0B8 +:1001700044EE57E061E082E00E948A07811104C0EA +:1001800083E291E00E944B0F44EE57E0B80182E019 +:100190000E944608882309F4A6C02FEF85EA9EE056 +:1001A000215080409040E1F700C000008091E303BF +:1001B000811103C06FE371E002C06EE071E085EC75 +:1001C00093E00E942E0FE5ECF3E001900020E9F7A8 +:1001D0003197AF01455C534065EC73E082E066C047 +:1001E0008091E3036130710561F4882351F010922E +:1001F000E30382E491E00E944B0F9BB188E08927E2 +:100200000EC0672B09F06FC0813008F06CC081E030 +:100210008093E3038FE491E00E944B0F88E08BB959 +:1002200062C08091E30381115EC080E090E00E9493 +:10023000330E22E832EE47E45CE30E94990E0E94FE +:10024000FD0D2BEC2603A001279F500D1124CA01A0 +:100250008659974E90938900809388008881809377 +:100260001B04898180931C043EC0232BE1F583305D +:1002700021F1873049F1811136C08091E30381116A +:1002800003C06FE371E002C06EE071E085EC93E0C3 +:100290000E942E0FE5ECF3E001900020E9F7319782 +:1002A000AF01455C534065EC73E08F2DDF91CF913A +:1002B0001F910F91FF900C94C4088CE591E00E946F +:1002C0004B0F6BE174E0E2CF8BE691E00E944B0FA5 +:1002D00081E08093C4038F2DDF91CF911F910F9107 +:1002E000FF900C94AC08DF91CF911F910F91FF907C +:1002F0000895E82FF0E0EB5EFB4F80810895E82F32 +:10030000F0E0EB5EFB4F60830895E82FF0E0EE0F26 +:10031000FF1FEB50FC4F808191810895E82FF0E0A2 +:10032000EE0FFF1FE350FC4F808191810895E82F6D +:10033000F0E0EE0FFF1FEB5FFB4F8081918108958E +:10034000E82FF0E0EE0FFF1FE35FFB4F808191810C +:100350000895E82FF0E0EE0FFF1FEB51FC4F808176 +:1003600091810895E82FF0E0EE0FFF1FE351FC4F5D +:1003700080819181089524B12C6224B92A9A25B1F3 +:10038000277D25B920E52CBD2A9820EF2EBD0DB480 +:1003900007FEFDCF9EBD0DB407FEFDCF8EBD0DB493 +:1003A00007FEFDCF6EBD0DB407FEFDCF2A9A81E09A +:1003B000089524B12C6224B92A9A25B1277D25B944 +:1003C00020E52CBD2A982FE02EBD0DB407FEFDCFF1 +:1003D0009EBD0DB407FEFDCF8EBD0DB407FEFDCF53 +:1003E0001EBC0DB407FEFDCF8EB52A9A089524B128 +:1003F0002C6224B92A9A25B1277D25B920E52CBD88 +:10040000FB019B01240F351F60EFE217F307A9F0F2 +:100410002A986EBD0DB407FEFDCF9EBD0DB407FE3C +:10042000FDCF8EBD0DB407FEFDCF71917EBD0DB425 +:1004300007FEFDCF2A9A0196E8CFCA01089524B19C +:100440002C6224B92A9A25B1277D25B920E52CBD37 +:10045000FB019B01240F351F6FE0E217F307B1F09A +:100460002A986EBD0DB407FEFDCF9EBD0DB407FEEC +:10047000FDCF8EBD0DB407FEFDCF1EBC0DB407FE33 +:10048000FDCF7EB571932A9A0196E7CFCA010895F0 +:100490002F923F924F925F926F927F928F929F9294 +:1004A000AF92BF92CF92DF92EF92FF920F931F9382 +:1004B000CF93DF93CDB7DEB728970FB6F894DEBFA2 +:1004C0000FBECDBF282E362E83EA91E00E944B0F3F +:1004D000622D8BE190E00E94BB01632D8AE190E0E8 +:1004E0000E94BB0180E090E49093EE038093ED03C3 +:1004F00080E090E69093E6038093E5038EEA91E036 +:100500000E944B0F85EE882E83E0982E9DEEA92E3B +:1005100093E0B92E2DEF33E038872F8305EF13E0FA +:1005200025E0C22E24E0D22E3DE0E32E34E0F32E6F +:100530001A821982412C512C1C821B82612C712C35 +:10054000222D30E03E832D83232C312CAF81B885C2 +:1005500011961C921E92F801118210822B813C810F +:1005600021153042B4F58D819E81098002C0959598 +:1005700087950A94E2F78370992782309105A9F054 +:1005800083309105D9F0019739F080E094E08D93A4 +:100590009C93EFEFF3E01AC0E0E0F8E0AF81B8859C +:1005A000ED93FC93EFEFF7E011C0E0E0F0E1AF81F5 +:1005B000B885ED93FC93EFEFFFE008C0E0E0F0E2D8 +:1005C000AF81B885ED93FC93EFEFFFE1D701ED9399 +:1005D000FC934114F0E25F069CF5C101098002C062 +:1005E000959587950A94E2F7837099278230910553 +:1005F000A9F083309105D1F0019741F0E0E0F4E0FB +:10060000D801ED93FC93EFEFF3E017C0E0E0F8E0E2 +:10061000D801ED93FC93EFEFF7E00FC0E0E0F0E1DD +:10062000D801ED93FC93EFEFFFE007C0E0E0F0E2CC +:10063000D801ED93FC93EFEFFFE1D601ED93FC932E +:10064000AF81B8858D919D91B887AF832B813C8117 +:10065000280F391F3C832B83D8012D913D918D01AB +:10066000420E531E61147104D9F0EF81F88534975E +:1006700060817181F501329740815181460F571F8A +:10068000F50151834083FD01349760817181F4014C +:10069000329740815181460F571FD4014D935C938F +:1006A000F40160817181F2E08F0E911CD5014C91B3 +:1006B00011965C91B2E0AB0EB11C3F932F939F93C8 +:1006C0008F937F936F935F934F937F926F92A7ED7A +:1006D000B1E0BF93AF930E94350FFFEF6F1A7F0A0F +:1006E00029813A812E5F3F4F3A83298332E0C30E3E +:1006F000D11C42E0E40EF11C0FB6F894DEBF0FBE31 +:10070000CDBF94E06916710409F020CF28960FB68A +:10071000F894DEBF0FBECDBFDF91CF911F910F9137 +:10072000FF90EF90DF90CF90BF90AF909F908F9011 +:100730007F906F905F904F903F902F900895682F1B +:1007400080E090E80C94BB0180E80C949F03CF9369 +:10075000DF93EC01688181E090E00E94BB01698138 +:1007600082E090E00E94BB016A8183E090E00E94F9 +:10077000BB016B8184E090E0DF91CF910C94BB01D1 +:10078000CF93DF93EC0181E090E00E94D901888350 +:1007900082E090E00E94D901898383E090E00E948A +:1007A000D9018A8384E090E00E94D9018B83DF9194 +:1007B000CF910895CF93DF93EC01688185E090E0BD +:1007C0000E94BB01698186E090E00E94BB016A81C2 +:1007D00087E090E00E94BB016B8188E090E0DF91B0 +:1007E000CF910C94BB01CF93DF93EC01688189E03A +:1007F00090E00E94BB0169818AE090E00E94BB0109 +:100800006A818BE090E00E94BB016B818CE090E0FC +:100810000E94BB016C818DE090E00E94BB016D8164 +:100820008EE090E0DF91CF910C94BB01CF93DF93EA +:10083000EC0168818FE090E00E94BB01698180E15A +:1008400090E00E94BB016A8181E190E00E94BB01BF +:100850006B8182E190E0DF91CF910C94BB0185E147 +:1008600090E00C94D901CF93C82F692F87E190E0D5 +:100870000E94BB016C2F88E190E0CF910C94BB01EA +:10088000682F89E190E00C94BB01682F86E190E02D +:100890000C94BB01CF93DF93EC0181E090E00E94C8 +:1008A000D901888382E090E00E94D901898383E0A6 +:1008B00090E00E94D9018A8384E090E00E94D901EF +:1008C0008B83DF91CF910895CF93DF93EC0185E087 +:1008D00090E00E94D901888386E090E00E94D901CF +:1008E000898387E090E00E94D9018A8388E090E0C4 +:1008F0000E94D9018B83DF91CF910895CF93DF932D +:10090000EC0189E090E00E94D90188838AE090E0C0 +:100910000E94D90189838BE090E00E94D9018A83EB +:100920008CE090E00E94D9018B838DE090E00E94E2 +:10093000D9018C838EE090E00E94D9018D83DF91F4 +:10094000CF910895CF93DF93EC018FE090E00E9468 +:10095000D901888380E190E00E94D901898381E1F7 +:1009600090E00E94D9018A8382E190E00E94D9013F +:100970008B83DF91CF9108950F931F93CF93DF93D4 +:100980008B01C82FD0E02496DC2FCC27CE01069611 +:100990000E94D901F8018083CE0107960E94D901F7 +:1009A000F8018183CE0108960E94D901F801828363 +:1009B000CE0109960E94D901F8018383CE010A96DF +:1009C0000E94D901F8018483CE010B960E94D901BF +:1009D000F8018583DF91CF911F910F9108950F93B7 +:1009E0001F93CF93DF938B01C82FD0E02496DC2F89 +:1009F000CC27FB016081CE0106960E94BB01F80165 +:100A00006181CE0107960E94BB01F8016281CE018F +:100A100008960E94BB01F8016381CE0109960E94ED +:100A2000BB01F8016481CE010A960E94BB01F80166 +:100A30006581CE010B96DF91CF911F910F910C94A0 +:100A4000BB010F931F93CF93DF938B01C82FD0E08F +:100A50002496DC2FCC27CE010C960E94D901F801F8 +:100A60008083CE010D960E94D901F8018183CE01C9 +:100A70000E960E94D901F8018283CE010F960E9442 +:100A8000D901F8018383DF91CF911F910F910895D0 +:100A90000F931F93CF93DF938B01C82FD0E0249641 +:100AA000DC2FCC27FB016081CE010C960E94BB019C +:100AB000F8016181CE010D960E94BB01F8016281AF +:100AC000CE010E960E94BB01F8016381CE010F9604 +:100AD000DF91CF911F910F910C94BB010F931F9346 +:100AE000CF93DF938B01C82FD0E02496DC2FCC2747 +:100AF000CE0140960E94D901F8018083CE01419633 +:100B00000E94D901F8018183DF91CF911F910F914C +:100B100008950F931F93CF93DF938B01C82FD0E0DD +:100B20002496DC2FCC27FB016081CE0140960E94E9 +:100B3000BB01F8016181CE014196DF91CF911F91F8 +:100B40000F910C94BB011F93CF93DF93162F672F48 +:100B5000C82FD0E02496DC2FCC27CE0142960E94ED +:100B6000BB01612FCE014396DF91CF911F910C9471 +:100B7000BB0190E0982F88278A5E9B4F0C94BB01A5 +:100B800090E0982F88278C5E9B4F0C94BB0190E0DF +:100B9000982F88278E5F9B4F0C94D90190E0982F57 +:100BA00088278D5F9B4F0C94D901CF92DF92EF92F3 +:100BB000FF920F931F93CF93DF93C82FD0E024961B +:100BC000DC2FCC277E0180E2E80EF11CA19600E02C +:100BD00010E0C7010E94D901C82ED12CDC2CCC24F6 +:100BE000CE010E94D901C80ED11CC114D10461F0FC +:100BF000C7010E94D901082F10E0102F0027CE0155 +:100C00000E94D901080F111D0C151D0511F7C8010F +:100C1000DF91CF911F910F91FF90EF90DF90CF90D8 +:100C20000895CF92DF92EF92FF920F931F93CF938D +:100C3000DF93C82FD0E02496DC2FCC277E0186E2FC +:100C4000E80EF11CA79600E010E0C7010E94D90150 +:100C5000C82ED12CDC2CCC24CE010E94D901C80E88 +:100C6000D11CC114D10461F0C7010E94D901082F21 +:100C700010E0102F0027CE010E94D901080F111D8E +:100C80000C151D0511F7C801DF91CF911F910F9130 +:100C9000FF90EF90DF90CF900895CF92DF92EF9288 +:100CA000FF920F931F93CF93DF93E82FF0E0EE0FA7 +:100CB000FF1FDF01A35FBB4F8D919C91DA01A82339 +:100CC000B923EF01C351DC4FE880F980CD018E0DCF +:100CD0009F1DE350FC4FC081D181AD01420F531FD6 +:100CE000C417D50778F489016B01CA1BDB0BAE0171 +:100CF0000E94F701A8014C1B5D0BB6016C0F7D1F14 +:100D0000C70101C0A901DF91CF911F910F91FF9001 +:100D1000EF90DF90CF900C94F7018F929F92BF924B +:100D2000CF92DF92EF92FF920F931F93CF93DF93B7 +:100D300000D0CDB7DEB7B82E7A0190E00496982E99 +:100D40008824640184E2C80ED11CC60169837A83B9 +:100D50000E94D901082F10E0102F002785E2880E8D +:100D6000911CC4010E94D901080F111D9701A8010F +:100D700069817A818B2D0E944D060E0D1F1D612FFA +:100D8000C6010E94BB01602FC4010F900F90DF913C +:100D9000CF911F910F91FF90EF90DF90CF90BF9078 +:100DA0009F908F900C94BB01AF92BF92CF92DF9235 +:100DB000EF92FF920F931F93CF93DF93DA01A90174 +:100DC000E82FF0E0EE0FFF1FEF01CB5FDB4F8881D4 +:100DD00099816B01C822D922EF01CB51DC4FE88009 +:100DE000F980C6018E0D9F1DEB50FC4FC081D18153 +:100DF0009601240F351FC217D30780F48A015D01C5 +:100E0000CC19DD09AE01BD010E941F02A8014C1BD7 +:100E10005D0BB5016C0F7D1FC70101C0BD01DF91E6 +:100E2000CF911F910F91FF90EF90DF90CF90BF90E7 +:100E3000AF900C941F029F92AF92BF92CF92DF921D +:100E4000EF92FF920F931F93CF93DF93982E6B0136 +:100E50007A01082F10E00C5F1F4F102F0027580158 +:100E600088E2A80EB11CC5010E94D901C82FD0E0AC +:100E7000DC2FCC27075D1F4FC8010E94D901C80F86 +:100E8000D11DDF93CF9388EF91E09F938F930E94C2 +:100E9000350F9701A601BE01892D0E94D406CE0D03 +:100EA000DF1D6D2FC5010E94BB010F900F900F90A9 +:100EB0000F906C2FC801DF91CF911F910F91FF9080 +:100EC000EF90DF90CF90BF90AF909F900C94BB01BC +:100ED0000F931F93CF93DF93C82F80E192E00E947E +:100EE0004B0FD0E02496DC2FCC278E010F5F1F4FD5 +:100EF00060E1C8010E94BB01C8010E94D9018111B3 +:100F0000FBCF6FEFCE010296DF91CF911F910F9132 +:100F10000C94BB01CF92DF92EF92FF920F931F933D +:100F2000CF93DF93C82F062F6A01122F89E192E039 +:100F30000E944B0F8FEF800FEC2EF12C8530C8F5FF +:100F40008C2F0E946807E7012496DC2FCC27602FA6 +:100F5000612BCE010E94BB01CE0104968E010B5F76 +:100F60001F4FC114D10429F06D2D0E94BB016C2DBF +:100F70000FC02091190430911A042F5F3F4F309316 +:100F80001A0420931904632F0E94BB016091190475 +:100F9000C8010E94BB018E010F5F1F4F61E0C801B5 +:100FA0000E94BB01C8010E94D9018111FBCF11E051 +:100FB00001C010E0E7012496DC2FCC27CE010E946F +:100FC000D901082FCE0103960E94D9011F920F93D9 +:100FD0001F928F9383E292E09F938F930E94350F2D +:100FE0000F900F900F900F900F900F90812FDF9127 +:100FF000CF911F910F91FF90EF90DF90CF900895C8 +:101000000F931F93CF93DF93C82F84E492E00E9445 +:101010004B0FD0E02496DC2FCC278E010D5F1F4FA5 +:10102000C8010E94D9018331D9F4219662E0CE0132 +:101030000E94BB01CE010E94D9018111FBCFC801E2 +:101040000E94D9011F928F938EE492E09F938F9319 +:101050000E94350F0F900F900F900F9081E005C008 +:101060008CE592E00E944B0F80E0DF91CF911F91C1 +:101070000F91089590E0982F88278D5F9B4F0E94D5 +:10108000D901873111F481E008950895EF92FF921C +:101090000F931F93CF93DF93C82F8B017A0186E7BD +:1010A00092E00E944B0FF80160816F3F51F4818103 +:1010B0008F3F99F482818F3F81F483818F3F69F460 +:1010C0000FC061110AC0F8018181811106C08281BF +:1010D000811103C08381882319F0E114F10431F4F4 +:1010E0008CE592E00E944B0F80E02FC0D0E0249668 +:1010F000DC2FCC27CE010C960E94BB01F801618148 +:10110000CE010D960E94BB01F8016281CE010E96C0 +:101110000E94BB01F8016381CE010F960E94BB01C2 +:101120006F2DCE0140960E94BB016E2DCE014196DF +:101130000E94BB01219664E0CE010E94BB01CE015A +:101140000E94D9018111FBCF81E0DF91CF911F91E6 +:101150000F91FF90EF900895CF93DF93C82F83E70F +:1011600092E00E944B0FD0E0DC2FCC27CF5FDB4F0B +:1011700068E0CE010E94BB01CE010E94D90181111D +:10118000FBCFDF91CF9108958F929F92AF92BF9244 +:10119000CF92DF92EF92FF921F93CF93DF93182F9E +:1011A0004B017A018EE993E00E944B0F812F0E9440 +:1011B0008E018E159F0520F4812F0E948E017C01E7 +:1011C000C12FD0E02496DC2FCC275E0183E0A80E4F +:1011D000B11C812F0E94D5056C01C5010E94D90167 +:1011E0008731A9F08C3199F0DF92CF921F921F9333 +:1011F00081E892E09F938F930E94350F0F900F909C +:101200000F900F900F900F90E12CF12C03C0CE1493 +:10121000DF04F8F2A701B401812F0E948D066E0150 +:101220008FEFC81AD80A60E2C6010E94BB01C6014E +:101230000E94D9018111FBCF2296CE010E94D901D3 +:1012400084FD0FC0C5010E94D9018111F6CF89EA42 +:1012500092E00E944B0F812F0E94680780E090E08F +:1012600005C060E1CE010E94BB01C701DF91CF91B3 +:101270001F91FF90EF90DF90CF90BF90AF909F9025 +:101280008F900895AF92BF92CF92DF92FF920F930B +:101290001F93CF93DF93F82E6B018A01C82FD0E004 +:1012A0002496DC2FCC275E0183E0A80EB11CC5017B +:1012B0000E94D901873191F0C5010E94D9011F9286 +:1012C0008F9387EB92E09F938F930E94350F0F903F +:1012D0000F900F900F908FEF9FEF26C08F2D0E94E1 +:1012E00011065C0118161906ECF48AEC92E00E94D3 +:1012F0004B0FA016B10620F00115110589F001C0B1 +:101300008501A801B6018F2D0E941B07219660E47C +:10131000CE010E94BB01CE010E94D9018111FBCFF9 +:10132000C80102C080E090E0DF91CF911F910F9142 +:10133000FF90DF90CF90BF90AF9008959F92AF92B3 +:10134000BF92CF92DF92EF92FF920F931F93CF93B2 +:10135000DF93982E5B01EA01790182ED92E00E9411 +:101360004B0F892D0E948E018C179D0728F4892D23 +:101370000E948E016C0101C06E01F7016081611154 +:1013800009C08181811106C08281811103C08381DE +:10139000882331F00115110519F0C114D10429F584 +:1013A000DF93CF931F930F93F70183811F928F9346 +:1013B00082811F928F9381811F928F931F926F93CF +:1013C0001F929F928CED92E09F938F930E94350F16 +:1013D0008CE592E00E944B0F8DB79EB740960FB6FA +:1013E000F8949EBF0FBE8DBF49C0C92DD0E0249692 +:1013F000DC2FCC27CE010C960E94BB01F701618146 +:10140000CE010D960E94BB01F7016281CE010E96BE +:101410000E94BB01F7016381CE010F960E94BB01C0 +:10142000612FCE0140960E94BB01602FCE014196F4 +:101430000E94BB01A601B501892D0E948D068E0177 +:101440000F5F1F4F60E2C8010E94BB01C8010E94EC +:10145000D9018111FBCF2296CE010E94D90184FDD2 +:1014600010C0CE010E94D90183FFF6CF88EB93E034 +:101470000E944B0F68E1CE010E94BB0180E090E02A +:1014800005C060E1CE010E94BB01C601DF91CF9192 +:101490001F910F91FF90EF90DF90CF90BF90AF9092 +:1014A0009F9008952F923F924F925F926F927F92FA +:1014B0008F929F92AF92BF92CF92DF92EF92FF9264 +:1014C0000F931F93CF93DF93CDB7DEB72A970FB655 +:1014D000F894DEBF0FBECDBF782E4B016A017901B3 +:1014E0001A8709870E941106892B09F42BC184E011 +:1014F00093E00E944B0F872D0E941106382E692E13 +:10150000CD2809F417C1472C512C84E0480E511CFA +:10151000542C4424520198E2A90EB11CC5010E942A +:10152000D901082F10E0102F00276201E9E2CE0E4A +:10153000D11CC6010E94D901080F111D6F923F9264 +:101540001F930F9380E193E09F938F930E94350F39 +:10155000C2010E94D9010F900F900F900F900F9031 +:101560000F908770833009F464C0843009F4ABC0F5 +:10157000823009F0D0C028E030E0AE014F5F5F4F0D +:10158000B801872D0E94D4061801F8E02F0E311CF7 +:101590008981F70180838A8181838B8182838C8119 +:1015A00083838D8190E0982F88272E81820F911D53 +:1015B000E985FA85918380830F8110E0102F002741 +:1015C0008885080F111D1F930F9380E393E09F936D +:1015D0008F930E94350FE985FA8581818F938081F1 +:1015E0008F9386E493E09F938F930E94350FF701CA +:1015F00083811F928F9382811F928F9381811F928B +:101600008F9380811F928F9389E593E09F938F93AF +:101610000E94350F9801A401B101872D0E94D406C4 +:101620007101E00EF11E6F2DC5010E94BB016E2DF0 +:1016300041C026E030E0AE014F5F5F4FB801872D1B +:101640000E94D406180196E0290E311C8981F70109 +:1016500080838A8181838B8182838C8183830D81C6 +:1016600010E0102F00278E81080F111D83E793E0F3 +:101670000E944B0FF70183811F928F9382811F92EB +:101680008F9381811F928F9380811F928F9389E521 +:1016900093E09F938F930E94350F9801A401B101AD +:1016A000872D0E94D406200E311E632DC5010E9495 +:1016B000BB01622DC6010E94BB010FB6F894DEBFCC +:1016C0000FBECDBF2AC022E030E0AE014F5F5F4FBA +:1016D000B801872D0E94D406780192E0E90EF11C32 +:1016E000098110E0902F88270A8110E0025011092B +:1016F000080F191F9801A401B701872D0E94D40675 +:10170000E00EF11E6F2DC5010E94BB016E2DC601BA +:101710000E94BB0102C000E010E0EFEF4E1A5E0A2B +:1017200060E4C2010E94BB01C2010E94D901811183 +:10173000FBCF02C000E010E087E893E00E944B0F6F +:10174000C80102C080E090E02A960FB6F894DEBF90 +:101750000FBECDBFDF91CF911F910F91FF90EF9002 +:10176000DF90CF90BF90AF909F908F907F906F90C1 +:101770005F904F903F902F900895CF92DF92FF920D +:101780000F931F93CF93DF93F82E6B01EA018AE941 +:1017900093E00E944B0F8F2D0E948E018C179D07A6 +:1017A00028F48F2D0E948E018C0101C08E0101153D +:1017B000110589F41F921F92DF93CF9386EA93E07D +:1017C0009F938F930E94350F0F900F900F900F9063 +:1017D0000F900F9030C0A801B6018F2D0E948D068A +:1017E000CF2DD0E02496DC2FCC276E018FEFC81AC6 +:1017F000D80A60E2C6010E94BB01C6010E94D9015D +:101800008111FBCF6E0182E0C80ED11C2396C60168 +:101810000E94D90184FD12C0CE010E94D901C601E7 +:101820000E94D90183FFF3CF84EB93E00E944B0F1A +:101830008F2D0E94680780E090E005C060E1C6013E +:101840000E94BB01C801DF91CF911F910F91FF90C2 +:10185000DF90CF900895CF92DF92EF92FF920F9397 +:101860001F93CF93DF936C017B018A01E9010E94F2 +:10187000A40365E585E50E944802C6010E94F303C2 +:10188000C7010E941604C8010E94A703CE01DF9180 +:10189000CF911F910F91FF90EF90DF90CF900C941C +:1018A000DA03092E000CAA0BBB0B9C01AD0184E0EE +:1018B000220F331F441F551F8A95D1F760E074E251 +:1018C00084EF90E00E94DB0D215031093093C50078 +:1018D0002093C40088E18093C10086E08093C20019 +:1018E000E0ECF0E080818D7F808308959091C000CE +:1018F00095FFFCCF8093C6000895CF93C82F8A3000 +:1019000019F48DE00E94760C8C2F0E94760C80E0FA +:1019100090E0CF9108958091C00087FFFCCF809127 +:10192000C600089580E895E20E94510C80E091E0A5 +:101930009093200480931F0408958093BB0084E853 +:101940008093BC008091BC0087FFFCCF089510926B +:10195000B9008CE08093B80084E08093BC000895C7 +:10196000CF9394EA9093BC009091BC0097FFFCCF7A +:101970009091B900987F983011F080E015C0C62F83 +:10198000880F0E949D0C8091B900887F8831A9F74B +:101990008C2F0E949D0C8091B900887F883269F756 +:1019A00084E98093BC0081E0CF910895CF93DF93C9 +:1019B00094EA9093BC009091BC0097FFFCCF90916B +:1019C000B900987F983011F080E01EC0C42FD62F48 +:1019D000880F0E949D0C8091B900887F8831A1F703 +:1019E0008D2F0E949D0C8091B900887F883261F70D +:1019F0008C2F0E949D0C8091B900887F883221F73E +:101A000084E98093BC0081E0DF91CF910895EF924B +:101A1000FF920F931F93CF93DF93CDB7DEB76A97F3 +:101A20000FB6F894DEBF0FBECDBF86E0E1E1F1E076 +:101A3000DE01119601900D928A95E1F780911701D0 +:101A400090911801A0911901B0911A018B8B9C8B78 +:101A5000AD8BBE8B80911B0190911C01A0911D014B +:101A6000B0911E018F87988BA98BBA8B80911F0133 +:101A700090912001A0912101B09122018B879C8738 +:101A8000AD87BE870E9453000E945E000E94920CA8 +:101A90009E01255F3F4FAE01415F5F4FBE016D5E0E +:101AA0007F4FCE0101960E942B0C20E044EE57E0C0 +:101AB00062E080E00E948A07882309F46DC020E07C +:101AC00044EE57E061E081E00E948A07882309F430 +:101AD00063C086E8E82E81E0F82E20E044EE57E06F +:101AE00061E081E00E948A0781E00E940008109274 +:101AF000C4038091C4038111F0CF789483E095E012 +:101B00000E94D901873169F18E01095E1F4F9E0144 +:101B1000295F3F4F42E050E0BE01675E7F4F80E0AB +:101B20000E94520A089729F7F8948A8D1F928F9382 +:101B3000898D1F928F93FF92EF920E94350F21E0C3 +:101B400030E0AE01495F5F4FBE01675E7F4F80E0CE +:101B50000E948B000F900F900F900F900F900F909E +:101B6000C8CFF8948091C4038111CECF42E050E0F9 +:101B7000BE01675E7F4F81E00E9442091816190678 +:101B80008CF720E030E040E050E0BE01675E7F4F20 +:101B900081E00E948B00E6CF8FEF9FEF6A960FB631 +:101BA000F894DEBF0FBECDBFDF91CF911F910F9193 +:101BB000FF90EF900895A1E21A2EAA1BBB1BFD0116 +:101BC0000DC0AA1FBB1FEE1FFF1FA217B307E4071C +:101BD000F50720F0A21BB30BE40BF50B661F771F74 +:101BE000881F991F1A9469F7609570958095909554 +:101BF0009B01AC01BD01CF0108950E94040E6894C1 +:101C0000B1110C94930E08950E94780E88F09F579E +:101C100098F0B92F9927B751B0F0E1F0660F771F10 +:101C2000881F991F1AF0BA95C9F714C0B13091F006 +:101C30000E94920EB1E008950C94920E672F782FB7 +:101C40008827B85F39F0B93FCCF3869577956795CB +:101C5000B395D9F73EF490958095709561957F4F37 +:101C60008F4F9F4F0895E89409C097FB3EF49095DD +:101C70008095709561957F4F8F4F9F4F9923A9F065 +:101C8000F92F96E9BB279395F695879577956795F4 +:101C9000B795F111F8CFFAF4BB0F11F460FF1BC038 +:101CA0006F5F7F4F8F4F9F4F16C0882311F096E9CB +:101CB00011C0772321F09EE8872F762F05C0662379 +:101CC00071F096E8862F70E060E02AF09A95660F32 +:101CD000771F881FDAF7880F9695879597F90895EB +:101CE00057FD9058440F551F59F05F3F71F04795CD +:101CF000880F97FB991F61F09F3F79F087950895B2 +:101D0000121613061406551FF2CF4695F1DF08C0D0 +:101D1000161617061806991FF1CF869571056105ED +:101D200008940895E894BB2766277727CB0197F995 +:101D300008950E94AC0E0C941D0F0E940F0F38F0F6 +:101D40000E94160F20F0952311F00C94060F0C94AE +:101D50000C0F11240C94930E0E94700E70F3959F3B +:101D6000C1F3950F50E0551F629FF001729FBB2792 +:101D7000F00DB11D639FAA27F00DB11DAA1F649F2E +:101D80006627B00DA11D661F829F2227B00DA11DE1 +:101D9000621F739FB00DA11D621F839FA00D611D67 +:101DA000221F749F3327A00D611D231F849F600D88 +:101DB000211D822F762F6A2F11249F5750409AF0B1 +:101DC000F1F088234AF0EE0FFF1FBB1F661F771F3D +:101DD000881F91505040A9F79E3F510580F00C9408 +:101DE000060F0C94930E5F3FE4F3983ED4F3869570 +:101DF00077956795B795F795E7959F5FC1F7FE2BA8 +:101E0000880F911D9695879597F9089597F99F6783 +:101E100080E870E060E008959FEF80EC0895002472 +:101E20000A941616170618060906089500240A943F +:101E300012161306140605060895092E0394000CC5 +:101E400011F4882352F0BB0F40F4BF2B11F460FF54 +:101E500004C06F5F7F4F8F4F9F4F0895FB01DC01E0 +:101E600001900D920020E1F70895A0E0B0E0EBE3CF +:101E7000FFE00C941C12AE014B5F5F4FFA016191C1 +:101E80007191AF0180911F04909120040E947B0FFB +:101E9000E2E00C9438120F931F93CF93DF93E091FD +:101EA0001F04F0912004238121FF1BC08C01D0E08E +:101EB000C0E0F80181918F0160911F0470912004AE +:101EC000DB011896ED91FC911997882331F0099563 +:101ED000892B79F3DFEFCFEFECCF8AE00995892BDF +:101EE00019F08FEF9FEF02C08D2F9C2FDF91CF91C4 +:101EF0001F910F910895ABE0B0E0E1E8FFE00C9492 +:101F00000C126C017B018A01FC011782168283810D +:101F100081FFCCC1CE0101963C01F6019381F7010E +:101F200093FD859193FF81917F01882309F4BAC1C4 +:101F3000853239F493FD859193FF81917F0185323C +:101F400029F4B60190E00E947211E7CF912C212C68 +:101F5000312CFFE1F315D8F08B3279F038F4803270 +:101F600079F08332A1F4232D20611DC08D3261F000 +:101F7000803369F4232D216016C0832D8260382EB2 +:101F8000E32DE4603E2E2AC0F32DF8601DC037FC1F +:101F90002DC020ED280F2A3040F08E32B9F436FCE7 +:101FA00081C1232D2064322E19C036FE06C08AE07E +:101FB000989E200D1124922E11C0EAE02E9E200D35 +:101FC0001124222EF32DF0623F2E08C08C3621F40E +:101FD000832D8068382E02C0883641F4F70193FDC6 +:101FE000859193FF81917F018111B3CF982F9F7DC0 +:101FF0009554933028F40C5F1F4F9FE399830DC0D5 +:10200000833631F0833771F0833509F059C021C030 +:10201000F801808189830E5F1F4F88248394912C5F +:10202000530113C02801F2E04F0E511CF801A080AB +:10203000B18036FE03C0692D70E002C06FEF7FEF04 +:10204000C5010E9467114C018201F32DFF773F2EDD +:1020500016C0280122E0420E511CF801A080B18078 +:1020600036FE03C0692D70E002C06FEF7FEFC5013F +:102070000E945C114C01F32DF0683F2E820133FC6D +:102080001BC0822D90E088169906B0F4B60180E25C +:1020900090E00E9472112A94F4CFF50137FC8591EB +:1020A00037FE81915F01B60190E00E94721121100C +:1020B0002A9421E0821A91088114910471F7E8C0F2 +:1020C000843611F0893641F5F80137FE07C060818A +:1020D0007181828193810C5F1F4F08C06081718183 +:1020E000072E000C880B990B0E5F1F4FF32DFF7608 +:1020F0003F2E97FF09C090958095709561957F4F11 +:102100008F4F9F4FF0683F2E2AE030E0A3010E94DE +:10211000AE11882E861845C0853731F4232D2F7EC9 +:10212000B22E2AE030E025C0932D997FB92E8F364C +:10213000C1F018F4883579F0B5C0803719F08837C8 +:1021400021F0B0C0E92FE061BE2EB4FE0DC0FB2D22 +:10215000F460BF2E09C034FE0AC0292F2660B22EBB +:1021600006C028E030E005C020E130E002C020E1F8 +:1021700032E0F801B7FE07C06081718182819381EE +:102180000C5F1F4F06C06081718180E090E00E5FA0 +:102190001F4FA3010E94AE11882E8618FB2DFF77DA +:1021A0003F2E36FE0DC0232D2E7FA22E891458F40B +:1021B00034FE0BC032FC09C0832D8E7EA82E05C0D4 +:1021C000B82CA32C03C0B82C01C0B92CA4FE0FC09E +:1021D000FE01E80DF11D8081803321F49A2D997E56 +:1021E000A92E09C0A2FE06C0B394B39404C08A2DE0 +:1021F000867809F0B394A3FC11C0A0FE06C0B21407 +:1022000088F4280C922C9B180EC0B21460F4B6010E +:1022100080E290E00E947211B394F7CFB21418F4E8 +:102220002B1802C0982C212CA4FE10C0B60180E30C +:1022300090E00E947211A2FE17C0A1FC03C088E7C3 +:1022400090E002C088E590E0B6010CC08A2D867847 +:1022500059F0A1FE02C08BE201C080E2A7FC8DE232 +:10226000B60190E00E947211891438F4B60180E33F +:1022700090E00E9472119A94F7CF8A94F301E80DCE +:10228000F11D8081B60190E00E9472118110F5CF9E +:10229000222009F442CEB60180E290E00E94721141 +:1022A0002A94F6CFF6018681978102C08FEF9FEFC7 +:1022B0002B96E2E10C942812FC01059061507040CD +:1022C0000110D8F7809590958E0F9F1F0895FC01FF +:1022D0006150704001900110D8F7809590958E0F55 +:1022E0009F1F08950F931F93CF93DF93FB012381CB +:1022F00021FD03C08FEF9FEF2CC022FF16C0468147 +:102300005781248135814217530744F4A081B1815C +:102310009D012F5F3F4F318320838C93268137812E +:102320002F5F3F4F3783268314C08B01EC01FB01E5 +:102330000084F185E02D0995892BE1F6D8011696E8 +:102340008D919C911797019617969C938E93169753 +:10235000CE01DF91CF911F910F910895FA01AA2725 +:10236000283051F1203181F1E8946F936E7F6E5FD8 +:102370007F4F8F4F9F4FAF4FB1E03ED0B4E03CD086 +:10238000670F781F891F9A1FA11D680F791F8A1F69 +:10239000911DA11D6A0F711D811D911DA11D20D0D0 +:1023A00009F468943F912AE0269F11243019305D8A +:1023B0003193DEF6CF010895462F4770405D41937B +:1023C000B3E00FD0C9F7F6CF462F4F70405D4A33C8 +:1023D00018F0495D31FD4052419302D0A9F7EACF90 +:1023E000B4E0A6959795879577956795BA95C9F7BF +:1023F00000976105710508959B01AC010A2E0694B2 +:102400005795479537952795BA95C9F7620F731F6A +:10241000841F951FA01D08952F923F924F925F92A7 +:102420006F927F928F929F92AF92BF92CF92DF92E4 +:10243000EF92FF920F931F93CF93DF93CDB7DEB749 +:10244000CA1BDB0B0FB6F894DEBF0FBECDBF0994DD +:102450002A88398848885F846E847D848C849B8434 +:10246000AA84B984C884DF80EE80FD800C811B8142 +:10247000AA81B981CE0FD11D0FB6F894DEBF0FBE71 +:0A248000CDBFED010895F894FFCFE1 +:10248A0000000002000000007D0C00000000200097 +:10249A0000A0BDCDDDEDFDC0A801CDC0A80101FFA2 +:1024AA00FFFF00534F434B455420544350204E4F97 +:1024BA004E20494E4954494C494153454520002034 +:1024CA0001004D4F444520455645494C4C45004D69 +:1024DA004F444520534F4D4D45494C005265717547 +:1024EA0065737420436F6D4D656D0044656D616E53 +:1024FA0064652064652066696E206465206469618C +:10250A006C6F677565004D455353414745205245E9 +:10251A004355205649412055445020257820257896 +:10252A00200A00737973696E697428290D0043685B +:10253A00616E6E656C203A2053454E44204D454DE0 +:10254A002053495A45203A2052454356204D454D7D +:10255A002053495A450D002564203A20252E347807 +:10256A00203A20252E3478203A20252E3478203A15 +:10257A0020252E34780D0A004953525F52583A20CA +:10258A0072645F707472203A20252E34780D0A0026 +:10259A00636C6F736528290D00736F636B6574280C +:1025AA00290D00536E5F5352203D20252E3278208C +:1025BA002C2050726F746F636F6C203D20252E3271 +:1025CA00780D0A006C697374656E28290D0073749E +:1025DA0061747573203D2025780D0A004661696C87 +:1025EA005B696E76616C69642069702C706F7274B5 +:1025FA005D0D00646973636F6E6E65637428290DDF +:10260A0000736F636B657420256420667265657359 +:10261A00697A652825642920656D707479206F723E +:10262A00206572726F720D0A00534F434B5F434C21 +:10263A004F5345442E0D00426164207374617475D2 +:10264A0073203D20253032780A0072656376282986 +:10265A000D0073656E64746F28290D002564204689 +:10266A0061696C5B252E32782E252E32782E252E26 +:10267A0032782E252E32782C20252E642C202564A3 +:10268A005D0D0A007265637666726F6D28290D000A +:10269A004953525F52583A2072645F707472203AFA +:1026AA0020252E34782073697A653D25640D0A0049 +:1026BA00554450206D736720232564206172726926 +:1026CA007665640D0A00736F7572636520506F72C8 +:1026DA0074203A2025750D0A00736F7572636520A0 +:1026EA004950203A2025642E25642E25642E25641F +:1026FA000D0A00495020524157206D7367206172BC +:10270A0072697665640D007265637666726F6D280C +:10271A002920656E64202E2E0D0069676D70736521 +:10272A006E6428290D002564204661696C5B256466 +:10273A005D0D0A0069676D7073656E642066616974 +:04274A006C2E0D00E4 :00000001FF diff --git a/Tangible/tangibleInterface.o b/Tangible/tangibleInterface.o index ee67a6b..e0f076a 100644 Binary files a/Tangible/tangibleInterface.o and b/Tangible/tangibleInterface.o differ diff --git a/Tangible/w5100.c b/Tangible/w5100.c old mode 100644 new mode 100755 index 4972f94..4972f94 --- a/Tangible/w5100.c +++ b/Tangible/w5100.c diff --git a/Tangible/w5100.h b/Tangible/w5100.h old mode 100644 new mode 100755 index c90a979..c90a979 --- a/Tangible/w5100.h +++ b/Tangible/w5100.h -- libgit2 0.21.2