diff --git a/Tangible/#socket.h# b/Tangible/#socket.h# new file mode 100644 index 0000000..2bbc175 --- /dev/null +++ b/Tangible/#socket.h# @@ -0,0 +1,33 @@ +/* +* +@file socket.h +@brief define function of socket API +* +*/ + +#ifndef _SOCKET_H_ +#define _SOCKET_H_ + +extern uint8 socket(SOCKET s, uint8 protocol, uint16 port, uint8 flag); // Opens a socket(TCP or UDP or IP_RAW mode) +extern void close(SOCKET s); // Close socket +extern uint8 connect(SOCKET s, uint8 * addr, uint16 port); // Establish TCP connection (Active connection) +extern void disconnect(SOCKET s); // disconnect the connection +extern uint8 listen(SOCKET s); // Establish TCP connection (Passive connection) +extern uint8 accept(SOCKET s); // Wait for client (Passive connection) +extern uint16 send(SOCKET s, const uint8 * buf, uint16 len); // Send data (TCP) +extern int16 recv(SOCKET s, uint8 * buf, uint16 len); // Receive data (TCP) + + + + + + + + + +extern uint16 sendto(SOCKET s, const uint8 * buf, uint16 len, uint8 * addr, uint16 port); // Send data (UDP/IP RAW) +extern uint16 recvfrom(SOCKET s, uint8 * buf, uint16 len, uint8 * addr, uint16 *port); // Receive data (UDP/IP RAW) + +extern uint16 igmpsend(SOCKET s, const uint8 * buf, uint16 len); +#endif +/* _SOCKET_H_ */ diff --git a/Tangible/socket.c b/Tangible/socket.c index 52e2639..193fb8e 100644 --- a/Tangible/socket.c +++ b/Tangible/socket.c @@ -43,12 +43,9 @@ uint8 socket( IINCHIP_WRITE(Sn_PORT0(s),(uint8)((local_port & 0xff00) >> 8)); IINCHIP_WRITE((Sn_PORT0(s) + 1),(uint8)(local_port & 0x00ff)); } - IINCHIP_WRITE(Sn_CR(s),Sn_CR_OPEN); // run sockinit Sn_CR - - /* +20071122[chungs]:wait to process the command... */ + IINCHIP_WRITE(Sn_CR(s),Sn_CR_OPEN); while( IINCHIP_READ(Sn_CR(s)) ) ; - /* ------- */ ret = 1; } else @@ -126,30 +123,12 @@ uint8 listen( @brief This function wait for client connection @return 1 for success else 0. */ -uint8 accept( - SOCKET s /**< the socket number */ - ) +uint8 accept(SOCKET s) { - uint8 ret; -#ifdef __DEF_IINCHIP_DBG__ - printf("accept()\r\n"); -#endif - if (IINCHIP_READ(Sn_SR(s)) == SOCK_LISTEN) - { - while( IINCHIP_READ(Sn_SR(s)) != SOCK_ESTABLISHED ) - ret = 1; -#ifdef __DEF_IINCHIP_DBG__ - printf("status = %x\r\n",IINCHIP_READ(Sn_SR(s))); -#endif - } - else - { - ret = 0; -#ifdef __DEF_IINCHIP_DBG__ - printf("Fail[not listening]\r\n"); -#endif - } - return ret; + if(IINCHIP_READ(Sn_SR(s)) == SOCK_ESTABLISHED ) + { + return 1; + } } @@ -304,7 +283,7 @@ int16 recv( printf("Bad status = %02x\n",IINCHIP_READ(Sn_SR(s))); return -1; } - int plen = getSn_RX_RSR(0); + int plen = getSn_RX_RSR(s); if( plen <= 0 ) return 0; #ifdef __DEF_IINCHIP_DBG__ diff --git a/Tangible/socket.h b/Tangible/socket.h index 891ba81..11c17d9 100644 --- a/Tangible/socket.h +++ b/Tangible/socket.h @@ -22,5 +22,3 @@ extern uint16 recvfrom(SOCKET s, uint8 * buf, uint16 len, uint8 * addr, uint16 extern uint16 igmpsend(SOCKET s, const uint8 * buf, uint16 len); #endif /* _SOCKET_H_ */ - -//1110000000010100 diff --git a/Tangible/socket.o b/Tangible/socket.o old mode 100755 new mode 100644 index 4cddbc5..27c5e17 Binary files a/Tangible/socket.o and b/Tangible/socket.o differ diff --git a/Tangible/tangibleInterface b/Tangible/tangibleInterface index 569f8e5..43b63d9 100755 Binary files a/Tangible/tangibleInterface and b/Tangible/tangibleInterface differ diff --git a/Tangible/tangibleInterface.c b/Tangible/tangibleInterface.c index 45cc4ae..c4c4e9c 100755 --- a/Tangible/tangibleInterface.c +++ b/Tangible/tangibleInterface.c @@ -1,4 +1,5 @@ #include +#include #include #include #include @@ -11,19 +12,37 @@ #define MAC_SIZE 6 #define IPV4_SIZE 4 +#define PRESCALER 1024 +#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é - -SOCKET sUDP=0; -SOCKET sTCP=1; - uint8 comMem[2]; //Commande en mémoire +char msg[30]={'\0'}; -uint8_t addr[IPV4_SIZE]; -uint16_t port; +void init_led(void) +{ + DDRD = 0xFF; + PORTD = 0x08; +} +void init_timer(void) +{ + TCCR1B |= _BV(WGM12); + TCCR1B |= _BV(CS12); // Facteur de division 1024 + TCCR1B |= _BV(CS10); + OCR1A = NB_TICK; + TIMSK1 |= _BV(OCIE1A); +} -void request(uint8 rq [2]) +ISR(TIMER1_COMPA_vect) +{ + if(sleep == false) + PORTD ^= 0x20; +} + +void requestTCP(SOCKET s,uint8 rq [2]) { if (!isComMem) //Aucune commande en mémoire @@ -37,61 +56,125 @@ void request(uint8 rq [2]) uint16 y = rq[0] & 0x1F; //Récupération du pourcentage y = y << 8; y += rq[1]; - uint16 per = (100*y)/8192; //2^13 = 100 % 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 0: - printf("REQUEST STATUS\n"); - //ENVOI TCP ICI , renvoi x = 0x01 + 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]) +{ + 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]; + } + + 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]; + float per = y*0.0122; + + switch(x) + { + + case 0: // GETSTATUS ( Via UDP broadcast, on répond en TCP ! ) + if(socket(s,Sn_MR_TCP,2020,0) == 0) + { + printf("SOCKET 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)); + disconnect(s); + } comMem[0] = rq[0]; comMem[1] = rq [1]; //save break; - case 2: - printf("SET / UNSET SLEEP\n"); - if (y == 0x0001) + + case 2: // SLEEP MODE ON/OFF + if ((y == 0x0001) & (sleep == true)) { - sleep = false; - printf("MODE EVEILLE\n"); + sleep = false; + printf("MODE EVEILLE\n"); + PORTD = PORTD ^ 0x08; } - else if (y == 0x0000) + else if ((y == 0x0000) & (sleep == false)) { - sleep = true; - printf("MODE SOMMEIL\n"); + sleep = true; + printf("MODE SOMMEIL\n"); + PORTD = 0x08; } comMem[0] = rq[0]; comMem[1] = rq [1]; //save break; - case 3: - // ENVOI TCP ICI , envoi de comMem[2] - break; - case 5: - //Envoi à l'interface secondaire ordre + pourcentage. - + case 5: // SETCOMMANDE + if (sleep == false) + { + OCR1A = NB_TICK - 53*(int)per; + comMem[0] = rq[0]; comMem[1] = rq [1]; //save + } break; } - - } -int main(void) -{ - uint8_t mac[MAC_SIZE] = {0xA0,0xBD,0xCD,0xDD,0xED,0xFD}; - uint8_t ip[IPV4_SIZE] = {192,168,1,205}; - uint8_t gateway[4] = {192,168,1,254}; - uint8_t mask[4] = {255,255,255,0}; - /* uint8_t mac[MAC_SIZE] = {0xA0,0xBD,0xCD,0xDD,0xED,0xFD}; */ - /* uint8_t ip[IPV4_SIZE] = {172,26,145,205}; */ - /* uint8_t gateway[4] = {172,26,145,254}; */ - /* uint8_t mask[4] = {255,255,255,0}; */ + +int main(void) +{ + /*variables*/ + SOCKET sUDP=0,sTCP=1; - uint8 buf[2]; - uint16 datasize; + 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_printf(); - ethernet_init(mac,ip,gateway,mask); + /*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; @@ -100,13 +183,36 @@ int main(void) { return -1; } - + while(1) { - if((datasize=recvfrom(sUDP,buf,sizeof(buf),addr,&port)) == 8) - { - request(buf); - } + 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) + { + 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((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); diff --git a/Tangible/tangibleInterface.hex b/Tangible/tangibleInterface.hex index bd6cab9..71b07e9 100644 --- a/Tangible/tangibleInterface.hex +++ b/Tangible/tangibleInterface.hex @@ -1,555 +1,635 @@ :100000000C9434000C9451000C9451000C94510049 :100010000C9451000C9451000C9451000C9451001C -:100020000C9451000C9451000C9451000C9451000C +:100020000C9451000C9451000C9451000C946F00EE :100030000C9451000C9451000C9451000C945100FC :100040000C9451000C9451000C9451000C945100EC :100050000C9451000C9451000C9451000C945100DC :100060000C9451000C94510011241FBECFEFD8E026 -:10007000DEBFCDBF13E0A0E0B1E0EAEFFFE102C0D8 -:1000800005900D92AE39B107D9F723E0AEE9B3E0A0 -:1000900001C01D92A43EB207E1F70E944E0C0C94E1 -:1000A000FB0F0C9400000F931F93CF93DF938C01F1 -:1000B00080919F0381110AC081E080939F03F80122 -:1000C00080818093D60381818093D703F801C0811A -:1000D0008C2F82958695877019F0823021F027C089 -:1000E00082E291E01BC0CF71D0E0DC2FCC27F80179 -:1000F0008181C80FD11D81E391E00E94030DC130C1 -:10010000D10529F41092010183E491E007C0CD2BC1 -:1001100039F481E08093010180E591E00E94030DB4 -:10012000F80180818093D60381818093D703DF918A -:10013000CF911F910F910895E82FF0E0E053FC4F0D -:1001400080810895E82FF0E0E053FC4F608308952C -:10015000E82FF0E0EE0FFF1FE055FC4F808191810A -:100160000895E82FF0E0EE0FFF1FE854FC4F808168 -:1001700091810895E82FF0E0EE0FFF1FE054FC4F4F -:10018000808191810895E82FF0E0EE0FFF1FE85382 -:10019000FC4F808191810895E82FF0E0EE0FFF1F62 -:1001A000E056FC4F808191810895E82FF0E0EE0F3A -:1001B000FF1FE855FC4F80819181089524B12C6286 -:1001C00024B92A9A25B1277D25B920E52CBD2A9886 -:1001D00020EF2EBD0DB407FEFDCF9EBD0DB407FE72 -:1001E000FDCF8EBD0DB407FEFDCF6EBD0DB407FE75 -:1001F000FDCF2A9A81E0089524B12C6224B92A9A6D -:1002000025B1277D25B920E52CBD2A982FE02EBDEC -:100210000DB407FEFDCF9EBD0DB407FEFDCF8EBD14 -:100220000DB407FEFDCF1EBC0DB407FEFDCF8EB58D -:100230002A9A089524B12C6224B92A9A25B1277DDF -:1002400025B920E52CBDFB019B01240F351F60EF74 -:10025000E217F307A9F02A986EBD0DB407FEFDCF93 -:100260009EBD0DB407FEFDCF8EBD0DB407FEFDCFC4 -:1002700071917EBD0DB407FEFDCF2A9A0196E8CF9D -:10028000CA01089524B12C6224B92A9A25B1277D88 -:1002900025B920E52CBDFB019B01240F351F6FE024 -:1002A000E217F307B1F02A986EBD0DB407FEFDCF3B -:1002B0009EBD0DB407FEFDCF8EBD0DB407FEFDCF74 -:1002C0001EBC0DB407FEFDCF7EB571932A9A019630 -:1002D000E7CFCA0108952F923F924F925F926F929B -:1002E0007F928F929F92AF92BF92CF92DF92EF92C6 -:1002F000FF920F931F93CF93DF93CDB7DEB728976D -:100300000FB6F894DEBF0FBECDBF282E362E8DE57A -:1003100091E00E94030D622D8BE190E00E94DE00CF -:10032000632D8AE190E00E94DE0080E090E49093EB -:10033000A9038093A80380E090E69093A1038093A3 -:10034000A00388E691E00E94030D80EA882E83E0F6 -:10035000982E98EAA92E93E0B92E28EB33E038873F -:100360002F8300EB13E020ECC22E23E0D22E38ECDA -:10037000E32E33E0F32E1A821982412C512C1C8279 -:100380001B82612C712C222D30E03E832D83232C87 -:10039000312CAF81B88511961C921E92F801118202 -:1003A00010822B813C8121153042B4F58D819E81D4 -:1003B000098002C0959587950A94E2F78370992782 -:1003C00082309105A9F083309105D9F0019739F079 -:1003D00080E094E08D939C93EFEFF3E01AC0E0E0AF -:1003E000F8E0AF81B885ED93FC93EFEFF7E011C033 -:1003F000E0E0F0E1AF81B885ED93FC93EFEFFFE033 -:1004000008C0E0E0F0E2AF81B885ED93FC93EFEF38 -:10041000FFE1D701ED93FC934114F0E25F069CF5F8 -:10042000C101098002C0959587950A94E2F783700F -:10043000992782309105A9F083309105D1F0019779 -:1004400041F0E0E0F4E0D801ED93FC93EFEFF3E04E -:1004500017C0E0E0F8E0D801ED93FC93EFEFF7E090 -:100460000FC0E0E0F0E1D801ED93FC93EFEFFFE087 -:1004700007C0E0E0F0E2D801ED93FC93EFEFFFE17D -:10048000D601ED93FC93AF81B8858D919D91B8878E -:10049000AF832B813C81280F391F3C832B83D801EC -:1004A0002D913D918D01420E531E61147104D9F0BE -:1004B000EF81F885349760817181F5013297408131 -:1004C0005181460F571FF50151834083FD01349739 -:1004D00060817181F401329740815181460F571F2D -:1004E000D4014D935C93F40160817181F2E08F0E31 -:1004F000911CD5014C9111965C91B2E0AB0EB11CF0 -:100500003F932F939F938F937F936F935F934F931B -:100510007F926F92A1E9B1E0BF93AF930E94ED0C7F -:10052000FFEF6F1A7F0A29813A812E5F3F4F3A838E -:10053000298332E0C30ED11C42E0E40EF11C0FB659 -:10054000F894DEBF0FBECDBF94E06916710409F0C8 -:1005500020CF28960FB6F894DEBF0FBECDBFDF9137 -:10056000CF911F910F91FF90EF90DF90CF90BF90B0 -:10057000AF909F908F907F906F905F904F903F9043 -:100580002F900895682F80E090E80C94DE0080E8BA -:100590000C94C202CF93DF93EC01688181E090E07C -:1005A0000E94DE00698182E090E00E94DE006A81A4 -:1005B00083E090E00E94DE006B8184E090E0DF91B8 -:1005C000CF910C94DE00CF93DF93EC0181E090E0BB -:1005D0000E94FC00888382E090E00E94FC008983F6 -:1005E00083E090E00E94FC008A8384E090E00E9417 -:1005F000FC008B83DF91CF910895CF93DF93EC01C3 -:10060000688185E090E00E94DE00698186E090E0EC -:100610000E94DE006A8187E090E00E94DE006B812C -:1006200088E090E0DF91CF910C94DE00CF93DF93D0 -:10063000EC01688189E090E00E94DE0069818AE037 -:1006400090E00E94DE006A818BE090E00E94DE0074 -:100650006B818CE090E00E94DE006C818DE090E088 -:100660000E94DE006D818EE090E0DF91CF910C94CE -:10067000DE00CF93DF93EC0168818FE090E00E9471 -:10068000DE00698180E190E00E94DE006A8181E104 -:1006900090E00E94DE006B8182E190E0DF91CF91DB -:1006A0000C94DE0085E190E00C94FC00CF93C82F01 -:1006B000692F87E190E00E94DE006C2F88E190E0D6 -:1006C000CF910C94DE00682F89E190E00C94DE005D -:1006D000682F86E190E00C94DE00CF93DF93EC016D -:1006E00081E090E00E94FC00888382E090E00E941C -:1006F000FC00898383E090E00E94FC008A8384E010 -:1007000090E00E94FC008B83DF91CF910895CF93FE -:10071000DF93EC0185E090E00E94FC00888386E096 -:1007200090E00E94FC00898387E090E00E94FC003A -:100730008A8388E090E00E94FC008B83DF91CF9158 -:100740000895CF93DF93EC0189E090E00E94FC00D4 -:1007500088838AE090E00E94FC0089838BE090E02F -:100760000E94FC008A838CE090E00E94FC008B8356 -:100770008DE090E00E94FC008C838EE090E00E946F -:10078000FC008D83DF91CF910895CF93DF93EC012F -:100790008FE090E00E94FC00888380E190E00E945E -:1007A000FC00898381E190E00E94FC008A8382E161 -:1007B00090E00E94FC008B83DF91CF9108950F930E -:1007C0001F93CF93DF938B01C82FD0E02496DC2FAB -:1007D000CC27CE0106960E94FC00F8018083CE0152 -:1007E00007960E94FC00F8018183CE0108960E94C2 -:1007F000FC00F8018283CE0109960E94FC00F801FA -:100800008383CE010A960E94FC00F8018483CE0106 -:100810000B960E94FC00F8018583DF91CF911F9118 -:100820000F9108950F931F93CF93DF938B01C82FE0 -:10083000D0E02496DC2FCC27FB016081CE01069608 -:100840000E94DE00F8016181CE0107960E94DE0061 -:10085000F8016281CE0108960E94DE00F8016381F2 -:10086000CE0109960E94DE00F8016481CE010A964D -:100870000E94DE00F8016581CE010B96DF91CF91D9 -:100880001F910F910C94DE000F931F93CF93DF9372 -:100890008B01C82FD0E02496DC2FCC27CE010C96FC -:1008A0000E94FC00F8018083CE010D960E94FC009E -:1008B000F8018183CE010E960E94FC00F80182832C -:1008C000CE010F960E94FC00F8018383DF91CF9147 -:1008D0001F910F9108950F931F93CF93DF938B0177 -:1008E000C82FD0E02496DC2FCC27FB016081CE01FD -:1008F0000C960E94DE00F8016181CE010D960E94E7 -:10090000DE00F8016281CE010E960E94DE00F80141 -:100910006381CE010F96DF91CF911F910F910C94BF -:10092000DE000F931F93CF93DF938B01C82FD0E08E -:100930002496DC2FCC27CE0140960E94FC00F801C3 -:100940008083CE0141960E94FC00F8018183DF91F3 -:10095000CF911F910F9108950F931F93CF93DF9322 -:100960008B01C82FD0E02496DC2FCC27FB016081BF -:10097000CE0140960E94DE00F8016181CE014196D1 -:10098000DF91CF911F910F910C94DE001F93CF93B5 -:10099000DF93162F672FC82FD0E02496DC2FCC27AB -:1009A000CE0142960E94DE00612FCE014396DF9178 -:1009B000CF911F910C94DE0090E0982F88278A5EDB -:1009C0009B4F0C94DE0090E0982F88278C5E9B4F05 -:1009D0000C94DE0090E0982F88278E5F9B4F0C943C -:1009E000FC0090E0982F88278D5F9B4F0C94FC00B3 -:1009F000CF92DF92EF92FF920F931F93CF93DF93EB -:100A0000C82FD0E02496DC2FCC277E0180E2E80EB0 -:100A1000F11CA19600E010E0C7010E94FC00C82E66 -:100A2000D12CDC2CCC24CE010E94FC00C80ED11CA1 -:100A3000C114D10461F0C7010E94FC00082F10E02E -:100A4000102F0027CE010E94FC00080F111D0C156D -:100A50001D0511F7C801DF91CF911F910F91FF90F4 -:100A6000EF90DF90CF900895CF92DF92EF92FF92B8 -:100A70000F931F93CF93DF93C82FD0E02496DC2FE2 -:100A8000CC277E0186E2E80EF11CA79600E010E07C -:100A9000C7010E94FC00C82ED12CDC2CCC24CE0136 -:100AA0000E94FC00C80ED11CC114D10461F0C70122 -:100AB0000E94FC00082F10E0102F0027CE010E949A -:100AC000FC00080F111D0C151D0511F7C801DF9161 -:100AD000CF911F910F91FF90EF90DF90CF900895ED -:100AE000CF92DF92EF92FF920F931F93CF93DF93FA -:100AF000E82FF0E0EE0FFF1FDF01A853BC4F8D91F0 -:100B00009C91DA01A823B923EF01C855DC4FE88096 -:100B1000F980CD018E0D9F1DE854FC4FC081D1811D -:100B2000AD01420F531FC417D50778F489016B013B -:100B3000CA1BDB0BAE010E941A01A8014C1B5D0B06 -:100B4000B6016C0F7D1FC70101C0A901DF91CF91D4 -:100B50001F910F91FF90EF90DF90CF900C941A01AE -:100B60008F929F92BF92CF92DF92EF92FF920F935C -:100B70001F93CF93DF9300D0CDB7DEB7B82E7A01A5 -:100B800090E00496982E8824640184E2C80ED11C5B -:100B9000C60169837A830E94FC00082F10E0102FA1 -:100BA000002785E2880E911CC4010E94FC00080FFA -:100BB000111D9701A80169817A818B2D0E94700512 -:100BC0000E0D1F1D612FC6010E94DE00602FC401A3 -:100BD0000F900F90DF91CF911F910F91FF90EF90A9 -:100BE000DF90CF90BF909F908F900C94DE00AF92DB -:100BF000BF92CF92DF92EF92FF920F931F93CF930A -:100C0000DF93DA01A901E82FF0E0EE0FFF1FEF01FB -:100C1000C054DC4F888199816B01C822D922EF0131 -:100C2000C056DC4FE880F980C6018E0D9F1DE0554F -:100C3000FC4FC081D1819601240F351FC217D30705 -:100C400080F48A015D01CC19DD09AE01BD010E946D -:100C50004201A8014C1B5D0BB5016C0F7D1FC70144 -:100C600001C0BD01DF91CF911F910F91FF90EF90D7 -:100C7000DF90CF90BF90AF900C9442019F92AF92C3 -:100C8000BF92CF92DF92EF92FF920F931F93CF9379 -:100C9000DF93982E6B017A01082F10E00C5F1F4F35 -:100CA000102F0027580188E2A80EB11CC5010E9430 -:100CB000FC00C82FD0E0DC2FCC27075D1F4FC801F8 -:100CC0000E94FC00C80FD11DDF93CF9382EB91E00F -:100CD0009F938F930E94ED0C9701A601BE01892D71 -:100CE0000E94F705CE0DDF1D6D2FC5010E94DE00AD -:100CF0000F900F900F900F906C2FC801DF91CF9144 -:100D00001F910F91FF90EF90DF90CF90BF90AF9029 -:100D10009F900C94DE000F931F93CF93DF93C82F07 -:100D20008AEC91E00E94030DD0E02496DC2FCC27C2 -:100D30008E010F5F1F4F60E1C8010E94DE00C801F5 -:100D40000E94FC008111FBCF6FEFCE010296DF9174 -:100D5000CF911F910F910C94DE00CF92DF92EF9212 -:100D6000FF920F931F93CF93DF93C82FC62E8A0154 -:100D7000D22E83ED91E00E94030D8FEF8C0DEC2EAF -:100D8000F12C8530D0F58C2F0E948B06E70124963C -:100D9000DC2FCC276C2D6D29CE010E94DE00CE0108 -:100DA00004969E012B5F3F4F69010115110529F043 -:100DB000612F0E94DE00602F0FC02091D40330917C -:100DC000D5032F5F3F4F3093D5032093D403632F78 -:100DD0000E94DE006091D403C6010E94DE008E01F5 -:100DE0000F5F1F4F61E0C8010E94DE00C8010E9432 -:100DF000FC008111FBCF11E001C010E0E701249657 -:100E0000DC2FCC27CE010E94FC00082FCE010396D8 -:100E10000E94FC001F920F931F928F938DED91E023 -:100E20009F938F930E94ED0C0F900F900F900F9057 -:100E30000F900F90812FDF91CF911F910F91FF9015 -:100E4000EF90DF90CF9008950F931F93CF93DF9390 -:100E5000C82F8EEF91E00E94030DD0E02496DC2F86 -:100E6000CC278E010D5F1F4FC8010E94FC0083310B -:100E7000D9F4219662E0CE010E94DE00CE010E94EC -:100E8000FC008111FBCFC8010E94FC001F928F93D0 -:100E900088E092E09F938F930E94ED0C0F900F904B -:100EA0000F900F9081E005C086E192E00E94030D53 -:100EB00080E0DF91CF911F910F910895CF93DF9341 -:100EC000C82F8DE292E00E94030DD0E0DC2FCC27EA -:100ED000CD5FDB4FCE010E94FC008431B1F4CE0126 -:100EE0000E94FC008731D9F7CE010E94FC001F92BE -:100EF0008F9388E092E09F938F930E94ED0C0F9068 -:100F00000F900F900F9081E005C087E392E00E9460 -:100F1000030D80E0DF91CF910895EF92FF920F9340 -:100F20001F93CF93DF93C82F8B017A018FE492E058 -:100F30000E94030DF80160816F3F51F481818F3F62 -:100F400099F482818F3F81F483818F3F69F40FC0D0 -:100F500061110AC0F8018181811106C0828181116D -:100F600003C08381882319F0E114F10431F486E190 -:100F700092E00E94030D80E02FC0D0E02496DC2F89 -:100F8000CC27CE010C960E94DE00F8016181CE01D3 -:100F90000D960E94DE00F8016281CE010E960E943D -:100FA000DE00F8016381CE010F960E94DE006F2DF6 -:100FB000CE0140960E94DE006E2DCE0141960E9429 -:100FC000DE00219664E0CE010E94DE00CE010E9488 -:100FD000FC008111FBCF81E0DF91CF911F910F9138 -:100FE000FF90EF900895CF93DF93C82F8CE492E0A9 -:100FF0000E94030DD0E0DC2FCC27CF5FDB4F68E0F1 -:10100000CE010E94DE00CE010E94FC008111FBCFC8 -:10101000DF91CF9108958F929F92AF92BF92CF921E -:10102000DF92EF92FF921F93CF93DF93182F4B0124 -:101030007A0187E793E00E94030D812F0E94B1009F -:101040008E159F0520F4812F0E94B1007C01C12FD5 -:10105000D0E02496DC2FCC275E0183E0A80EB11CE3 -:10106000812F0E94F8046C01C5010E94FC008731A9 -:10107000A9F08C3199F0DF92CF921F921F938AE5ED -:1010800092E09F938F930E94ED0C0F900F900F9022 -:101090000F900F900F90E12CF12C03C0CE14DF04C1 -:1010A000F8F2A701B401812F0E94B0056E018FEF05 -:1010B000C81AD80A60E2C6010E94DE00C6010E947A -:1010C000FC008111FBCF2296CE010E94FC0084FD22 -:1010D0000FC0C5010E94FC008111F6CF82E892E0AA -:1010E0000E94030D812F0E948B0680E090E005C0D6 -:1010F00060E1CE010E94DE00C701DF91CF911F9118 -:10110000FF90EF90DF90CF90BF90AF909F908F9027 -:101110000895BF92CF92DF92EF92FF920F931F93A9 -:10112000CF93DF93B82E6B018A01C82FD0E02496AD -:10113000DC2FCC277E0183E0E80EF11CC7010E9462 -:10114000FC00873191F0C7010E94FC001F928F9331 -:1011500080E992E09F938F930E94ED0C0F900F9087 -:101160000F900F908FEF9FEF26C080E00E94340514 -:101170007C0118161906ECF483EA92E00E94030D34 -:10118000E016F10620F00115110589F001C0870174 -:10119000A801B6018B2D0E943E06219660E4CE0187 -:1011A0000E94DE00CE010E94FC008111FBCFC8012D -:1011B00002C080E090E0DF91CF911F910F91FF90EE -:1011C000EF90DF90CF90BF9008958F929F92BF9243 -:1011D000CF92DF92EF92FF920F931F93CF93DF9303 -:1011E000B82E4B01EA0179018BEA92E00E94030DCF -:1011F0008B2D0E94B1008C179D0728F48B2D0E9427 -:10120000B1006C0101C06E01F7016081611109C07C -:101210008181811106C08281811103C0838188236D -:1012200031F00115110519F0C114D10429F5DF932E -:10123000CF931F930F93F70183811F928F93828126 -:101240001F928F9381811F928F931F926F931F9292 -:10125000BF9285EB92E09F938F930E94ED0C86E105 -:1012600092E00E94030D8DB79EB740960FB6F8949A -:101270009EBF0FBE8DBF49C0CB2DD0E02496DC2F82 -:10128000CC27CE010C960E94DE00F7016181CE01D1 -:101290000D960E94DE00F7016281CE010E960E943B -:1012A000DE00F7016381CE010F960E94DE00612F00 -:1012B000CE0140960E94DE00602FCE0141960E9432 -:1012C000DE00A601B4018B2D0E94B0058E010F5FD8 -:1012D0001F4F60E2C8010E94DE00C8010E94FC00AE -:1012E0008111FBCF2296CE010E94FC0084FD10C02C -:1012F000CE010E94FC0083FFF6CF81E993E00E94BB -:10130000030D68E1CE010E94DE0080E090E005C0A0 -:1013100060E1CE010E94DE00C601DF91CF911F91F6 -:101320000F91FF90EF90DF90CF90BF909F908F90A4 -:1013300008952F923F924F925F926F927F928F9279 -:101340009F92AF92BF92CF92DF92EF92FF920F9354 -:101350001F93CF93DF93CDB7DEB72A970FB6F894DC -:10136000DEBF0FBECDBF782E4B016A0179011A870F -:1013700009870E943405892B09F42BC18DED92E079 -:101380000E94030D872D0E943405682E392ECD282A -:1013900009F417C1472C512C84E0480E511C542CE1 -:1013A0004424520198E2A90EB11CC5010E94FC0020 -:1013B000082F10E0102F00276201E9E2CE0ED11CA9 -:1013C000C6010E94FC00080F111D3F926F921F93EF -:1013D0000F9389EE92E09F938F930E94ED0CC201D0 -:1013E0000E94FC000F900F900F900F900F900F90A5 -:1013F0008770833009F464C0843009F4ABC0823054 -:1014000009F0D0C028E030E0AE014F5F5F4FB80177 -:10141000872D0E94F7051801F8E02F0E311C8981F5 -:10142000F70180838A8181838B8182838C8183838E -:101430008D8190E0982F88272E81820F911DE9855C -:10144000FA85918380830F8110E0102F0027888513 -:10145000080F111D1F930F9389E093E09F938F93C3 -:101460000E94ED0CE985FA8581818F9380818F93AD -:101470008FE193E09F938F930E94ED0CF70183819E -:101480001F928F9382811F928F9381811F928F93DE -:1014900080811F928F9382E393E09F938F930E94AA -:1014A000ED0C9801A401B101872D0E94F70571018F -:1014B000E00EF11E6F2DC5010E94DE006E2D41C0B1 -:1014C00026E030E0AE014F5F5F4FB801872D0E94EC -:1014D000F705180196E0290E311C8981F7018083F8 -:1014E0008A8181838B8182838C8183830D8110E04B -:1014F000102F00278E81080F111D8CE493E00E94AD -:10150000030DF70183811F928F9382811F928F9326 -:1015100081811F928F9380811F928F9382E393E04A -:101520009F938F930E94ED0C9801A401B101872D28 -:101530000E94F705200E311E632DC5010E94DE00BA -:10154000622DC6010E94DE000FB6F894DEBF0FBE0A -:10155000CDBF2AC022E030E0AE014F5F5F4FB8013F -:10156000872D0E94F705780192E0E90EF11C0981B0 -:1015700010E0902F88270A8110E002501109080F0F -:10158000191F9801A401B701872D0E94F705E00EED -:10159000F11E6F2DC5010E94DE006E2DC6010E9456 -:1015A000DE0002C000E010E0EFEF4E1A5E0A60E4D9 -:1015B000C2010E94DE00C2010E94FC008111FBCF2B -:1015C00002C000E010E080E693E00E94030DC80135 -:1015D00002C080E090E02A960FB6F894DEBF0FBEFE -:1015E000CDBFDF91CF911F910F91FF90EF90DF90D2 -:1015F000CF90BF90AF909F908F907F906F905F90B3 -:101600004F903F902F900895CF92DF92FF920F93CB -:101610001F93CF93DF93F82E6B01EA0183E793E0EA -:101620000E94030D8F2D0E94B1008C179D0728F496 -:101630008F2D0E94B1008C0101C08E010115110592 -:1016400089F41F921F92DF93CF938FE793E09F93CC -:101650008F930E94ED0C0F900F900F900F900F90B2 -:101660000F9030C0A801B6018F2D0E94B005CF2D7C -:10167000D0E02496DC2FCC276E018FEFC81AD80A51 -:1016800060E2C6010E94DE00C6010E94FC008111DA -:10169000FBCF6E0182E0C80ED11C2396C6010E94CA -:1016A000FC0084FD12C0CE010E94FC00C6010E9415 -:1016B000FC0083FFF3CF8DE893E00E94030D8F2D94 -:1016C0000E948B0680E090E005C060E1C6010E94A8 -:1016D000DE00C801DF91CF911F910F91FF90DF9045 -:1016E000CF900895CF92DF92EF92FF920F931F93C6 -:1016F000CF93DF936C017B018A01E9010E94C7024D -:1017000065E585E50E946B01C6010E941603C701CD -:101710000E943903C8010E94CA02CE01DF91CF9115 -:101720001F910F91FF90EF90DF90CF900C94FD02EE -:10173000092E000CAA0BBB0B9C01AD0184E0220F0B -:10174000331F441F551F8A95D1F760E074E284EF80 -:1017500090E00E94CB0C215031093093C5002093BA -:10176000C40088E18093C10086E08093C200E0EC71 -:10177000F0E080818D7F808308959091C00095FF77 -:10178000FCCF8093C6000895CF93C82F8A3019F4F8 -:101790008DE00E94BD0B8C2F0E94BD0B80E090E07D -:1017A000CF9108958091C00087FFFCCF8091C60043 -:1017B000089580E895E20E94980B82E091E0909372 -:1017C000E1038093E00308958093BB0084E8809355 -:1017D000BC008091BC0087FFFCCF08951092B90037 -:1017E0008CE08093B80084E08093BC000895CF9390 -:1017F00094EA9093BC009091BC0097FFFCCF90912D -:10180000B900987F983011F080E015C0C62F880F7E -:101810000E94E40B8091B900887F8831A9F78C2F52 -:101820000E94E40B8091B900887F883269F784E9CF -:101830008093BC0081E0CF910895CF93DF9394EA29 -:101840009093BC009091BC0097FFFCCF9091B900A1 -:10185000987F983011F080E01EC0C42FD62F880FDB -:101860000E94E40B8091B900887F8831A1F78D2F09 -:101870000E94E40B8091B900887F883261F78C2F39 -:101880000E94E40B8091B900887F883221F784E9B7 -:101890008093BC0081E0DF91CF9108950F931F9357 -:1018A000CF93DF93CDB7DEB764970FB6F894DEBF62 -:1018B0000FBECDBF86E0E0E1F1E0DE0111960190C0 -:1018C0000D928A95E1F78091160190911701A091F0 -:1018D0001801B09119018F87988BA98BBA8B8091D1 -:1018E0001A0190911B01A0911C01B0911D018B87E1 -:1018F0009C87AD87BE8780911E0190911F01A091AA -:101900002001B09121018F839887A987BA870E940F -:10191000D90B9E01295F3F4FAE01455F5F4FBE016E -:10192000615F7F4FCE0101960E94720B20E044EE72 -:1019300057E062E080919E030E94AD068823F1F09B -:1019400020E044EE57E061E0809100010E94AD0686 -:101950008823A1F00CED13E028ED33E042E050E0E5 -:10196000BE016D5E7F4F80919E030E94990908978A -:1019700089F7CE0143960E945300ECCF8FEF9FEF83 -:1019800064960FB6F894DEBF0FBECDBFDF91CF9146 -:101990001F910F910895A1E21A2EAA1BBB1BFD01F6 -:1019A0000DC0AA1FBB1FEE1FFF1FA217B307E4073E -:1019B000F50720F0A21BB30BE40BF50B661F771F96 -:1019C000881F991F1A9469F7609570958095909576 -:1019D0009B01AC01BD01CF010895A0E0B0E0E3EFB1 -:1019E000FCE00C94D40FAE014B5F5F4FFA016191A4 -:1019F0007191AF018091E0039091E1030E94330D5A -:101A0000E2E00C94F00F0F931F93CF93DF93E091DC -:101A1000E003F091E103238121FF1BC08C01D0E0A2 -:101A2000C0E0F80181918F016091E0037091E103C2 -:101A3000DB011896ED91FC911997882331F00995F7 -:101A4000892B79F3DFEFCFEFECCF8AE00995892B73 -:101A500019F08FEF9FEF02C08D2F9C2FDF91CF9158 -:101A60001F910F910895ABE0B0E0E9E3FDE00C9425 -:101A7000C40F6C017B018A01FC01178216828381ED -:101A800081FFCCC1CE0101963C01F6019381F701A3 -:101A900093FD859193FF81917F01882309F4BAC159 -:101AA000853239F493FD859193FF81917F018532D1 -:101AB00029F4B60190E00E942A0FE7CF912C212C47 -:101AC000312CFFE1F315D8F08B3279F038F4803205 -:101AD00079F08332A1F4232D20611DC08D3261F095 -:101AE000803369F4232D216016C0832D8260382E47 -:101AF000E32DE4603E2E2AC0F32DF8601DC037FCB4 -:101B00002DC020ED280F2A3040F08E32B9F436FC7B -:101B100081C1232D2064322E19C036FE06C08AE012 -:101B2000989E200D1124922E11C0EAE02E9E200DC9 -:101B30001124222EF32DF0623F2E08C08C3621F4A2 -:101B4000832D8068382E02C0883641F4F70193FD5A -:101B5000859193FF81917F018111B3CF982F9F7D54 -:101B60009554933028F40C5F1F4F9FE399830DC069 -:101B7000833631F0833771F0833509F059C021C0C5 -:101B8000F801808189830E5F1F4F88248394912CF4 -:101B9000530113C02801F2E04F0E511CF801A08040 -:101BA000B18036FE03C0692D70E002C06FEF7FEF99 -:101BB000C5010E941F0F4C018201F32DFF773F2EBC -:101BC00016C0280122E0420E511CF801A080B1800D -:101BD00036FE03C0692D70E002C06FEF7FEFC501D4 -:101BE0000E94140F4C01F32DF0683F2E820133FC4C -:101BF0001BC0822D90E088169906B0F4B60180E2F1 -:101C000090E00E942A0F2A94F4CFF50137FC8591C9 -:101C100037FE81915F01B60190E00E942A0F2110EA -:101C20002A9421E0821A91088114910471F7E8C086 -:101C3000843611F0893641F5F80137FE07C060811E -:101C40007181828193810C5F1F4F08C06081718117 -:101C5000072E000C880B990B0E5F1F4FF32DFF769C -:101C60003F2E97FF09C090958095709561957F4FA5 -:101C70008F4F9F4FF0683F2E2AE030E0A3010E9473 -:101C8000660F882E861845C0853731F4232D2F7EA8 -:101C9000B22E2AE030E025C0932D997FB92E8F36E1 -:101CA000C1F018F4883579F0B5C0803719F088375D -:101CB00021F0B0C0E92FE061BE2EB4FE0DC0FB2DB7 -:101CC000F460BF2E09C034FE0AC0292F2660B22E50 -:101CD00006C028E030E005C020E130E002C020E18D -:101CE00032E0F801B7FE07C0608171818281938183 -:101CF0000C5F1F4F06C06081718180E090E00E5F35 -:101D00001F4FA3010E94660F882E8618FB2DFF77B8 -:101D10003F2E36FE0DC0232D2E7FA22E891458F49F -:101D200034FE0BC032FC09C0832D8E7EA82E05C068 -:101D3000B82CA32C03C0B82C01C0B92CA4FE0FC032 -:101D4000FE01E80DF11D8081803321F49A2D997EEA -:101D5000A92E09C0A2FE06C0B394B39404C08A2D74 -:101D6000867809F0B394A3FC11C0A0FE06C0B2149B -:101D700088F4280C922C9B180EC0B21460F4B601A3 -:101D800080E290E00E942A0FB394F7CFB21418F4C7 -:101D90002B1802C0982C212CA4FE10C0B60180E3A1 -:101DA00090E00E942A0FA2FE17C0A1FC03C088E7A2 -:101DB00090E002C088E590E0B6010CC08A2D8678DC -:101DC00059F0A1FE02C08BE201C080E2A7FC8DE2C7 -:101DD000B60190E00E942A0F891438F4B60180E31E -:101DE00090E00E942A0F9A94F7CF8A94F301E80DAD -:101DF000F11D8081B60190E00E942A0F8110F5CF7D -:101E0000222009F442CEB60180E290E00E942A0F1F -:101E10002A94F6CFF6018681978102C08FEF9FEF5B -:101E20002B96E2E10C94E00FFC01059061507040AC -:101E30000110D8F7809590958E0F9F1F0895FC0193 -:101E40006150704001900110D8F7809590958E0FE9 -:101E50009F1F08950F931F93CF93DF93FB0123815F -:101E600021FD03C08FEF9FEF2CC022FF16C04681DB -:101E70005781248135814217530744F4A081B181F1 -:101E80009D012F5F3F4F318320838C9326813781C3 -:101E90002F5F3F4F3783268314C08B01EC01FB017A -:101EA0000084F185E02D0995892BE1F6D80116967D -:101EB0008D919C911797019617969C938E931697E8 -:101EC000CE01DF91CF911F910F910895FA01AA27BA -:101ED000283051F1203181F1E8946F936E7F6E5F6D -:101EE0007F4F8F4F9F4FAF4FB1E03ED0B4E03CD01B -:101EF000670F781F891F9A1FA11D680F791F8A1FFE -:101F0000911DA11D6A0F711D811D911DA11D20D064 -:101F100009F468943F912AE0269F11243019305D1E -:101F20003193DEF6CF010895462F4770405D41930F -:101F3000B3E00FD0C9F7F6CF462F4F70405D4A335C -:101F400018F0495D31FD4052419302D0A9F7EACF24 -:101F5000B4E0A6959795879577956795BA95C9F753 -:101F600000976105710508959B01AC010A2E069446 -:101F70005795479537952795BA95C9F7620F731FFF -:101F8000841F951FA01D08952F923F924F925F923C -:101F90006F927F928F929F92AF92BF92CF92DF9279 -:101FA000EF92FF920F931F93CF93DF93CDB7DEB7DE -:101FB000CA1BDB0B0FB6F894DEBF0FBECDBF099472 -:101FC0002A88398848885F846E847D848C849B84C9 -:101FD000AA84B984C884DF80EE80FD800C811B81D7 -:101FE000AA81B981CE0FD11D0FB6F894DEBF0FBE06 -:0A1FF000CDBFED010895F894FFCF76 -:101FFA0001010000000200000000C40B0000000004 -:10200A00A0BDCDDDEDFDC0A801CDC0A801FEFFFF3A -:10201A00FF0052455155455354205354415455538A -:10202A0000534554202F20554E53455420534C45B8 -:10203A004550004D4F444520455645494C4C4500B6 -:10204A004D4F444520534F4D4D45494C00737973CC -:10205A00696E697428290D004368616E6E656C208B -:10206A003A2053454E44204D454D2053495A452068 -:10207A003A2052454356204D454D2053495A450D65 -:10208A00002564203A20252E3478203A20252E3443 -:10209A0078203A20252E3478203A20252E34780DBF -:1020AA000A004953525F52583A2072645F70747240 -:1020BA00203A20252E34780D0A00636C6F73652848 -:1020CA00290D00736F636B657428290D00536E5FC9 -:1020DA005352203D20252E3278202C2050726F74C6 -:1020EA006F636F6C203D20252E32780D0A006C69D3 -:1020FA007374656E28290D00737461747573203DBD -:10210A002025780D0A004661696C5B696E76616C00 -:10211A0069642069702C706F72745D0D006163636D -:10212A0065707428290D004661696C5B6E6F7420B6 -:10213A006C697374656E696E675D0D0064697363BB -:10214A006F6E6E65637428290D00736F636B657417 -:10215A00202564206672656573697A652825642975 -:10216A0020656D707479206F72206572726F720DBE -:10217A000A00534F434B5F434C4F5345442E0D00C7 -:10218A0042616420737461747573203D2025303276 -:10219A00780A007265637628290D0073656E647487 -:1021AA006F28290D002564204661696C5B252E3253 -:1021BA00782E252E32782E252E32782E252E32781C -:1021CA002C20252E642C2025645D0D0A007265637F -:1021DA007666726F6D28290D004953525F52583A3C -:1021EA002072645F707472203A20252E347820732E -:1021FA00697A653D25640D0A00554450206D736760 -:10220A002023256420617272697665640D0A007361 -:10221A006F7572636520506F7274203A2025750DB0 -:10222A000A00736F75726365204950203A2025644D -:10223A002E25642E25642E25640D0A00495020524D -:10224A004157206D736720617272697665640D006B -:10225A007265637666726F6D282920656E64202E1A -:10226A002E0D0069676D7073656E6428290D00254F -:10227A0064204661696C5B25645D0D0A0069676DBF -:0E228A007073656E64206661696C2E0D000035 +:10007000DEBFCDBF13E0A0E0B1E0EAECF4E202C0E5 +: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 :00000001FF diff --git a/Tangible/tangibleInterface.o b/Tangible/tangibleInterface.o index e45a4fd..ee67a6b 100644 Binary files a/Tangible/tangibleInterface.o and b/Tangible/tangibleInterface.o differ -- libgit2 0.21.2