Commit a69a94a7be2bbd51fb9c7aaf1b69b39db37babe0
Ajout de gestion de requêtes
Showing
32 changed files
with
1348 additions
and
724 deletions
Show diff stats
Sioux/client.c renamed to Network/client.c
Network/sender.c
@@ -20,8 +20,8 @@ int initializeSocketUDP(char* service) | @@ -20,8 +20,8 @@ int initializeSocketUDP(char* service) | ||
20 | precisions.ai_socktype = SOCK_DGRAM; | 20 | precisions.ai_socktype = SOCK_DGRAM; |
21 | //precisions.ai_flags = AI_PASSIVE; | 21 | //precisions.ai_flags = AI_PASSIVE; |
22 | 22 | ||
23 | - | ||
24 | - if(getaddrinfo("192.168.0.14", service, &precisions, &origine)<0) { fprintf(stderr, "Erreur getaddrinfo\n"); return(-1); } | 23 | +/*"172.26.145.35"*/ |
24 | + if(getaddrinfo(NULL, service, &precisions, &origine)<0) { fprintf(stderr, "Erreur getaddrinfo\n"); return(-1); } | ||
25 | 25 | ||
26 | int n=0; | 26 | int n=0; |
27 | 27 | ||
@@ -46,7 +46,10 @@ int initializeSocketUDP(char* service) | @@ -46,7 +46,10 @@ int initializeSocketUDP(char* service) | ||
46 | 46 | ||
47 | int val=1; | 47 | int val=1; |
48 | 48 | ||
49 | - if(setsockopt(sock_id, SOL_SOCKET, SO_REUSEADDR|SO_BROADCAST, &val, sizeof(val))<0) { fprintf(stderr, "Erreur setsockopt\n"); return(-1); } | 49 | + if(setsockopt(sock_id, SOL_SOCKET, SO_BROADCAST, &val, sizeof(val))<0) { fprintf(stderr, "Erreur setsockopt\n"); return(-1); } |
50 | + | ||
51 | + if(setsockopt(sock_id, SOL_SOCKET, SO_REUSEADDR, &val, sizeof(val))<0) { fprintf(stderr, "Erreur setsockopt\n"); return(-1); } | ||
52 | + | ||
50 | 53 | ||
51 | if(bind(sock_id, resultat->ai_addr, resultat->ai_addrlen)) { fprintf(stderr, "Erreur bind\n"); return(-1); } | 54 | if(bind(sock_id, resultat->ai_addr, resultat->ai_addrlen)) { fprintf(stderr, "Erreur bind\n"); return(-1); } |
52 | 55 | ||
@@ -60,7 +63,7 @@ int sendUDPBroadcast(char* message, int port) | @@ -60,7 +63,7 @@ int sendUDPBroadcast(char* message, int port) | ||
60 | { | 63 | { |
61 | static struct sockaddr_in addrUDP; | 64 | static struct sockaddr_in addrUDP; |
62 | addrUDP.sin_family=AF_INET; | 65 | addrUDP.sin_family=AF_INET; |
63 | - addrUDP.sin_port=htons(port); | 66 | + addrUDP.sin_port=htons(port); // Converti au format réseau |
64 | 67 | ||
65 | struct in_addr tmpadd={0xffffffff}; | 68 | struct in_addr tmpadd={0xffffffff}; |
66 | addrUDP.sin_addr=tmpadd; | 69 | addrUDP.sin_addr=tmpadd; |
@@ -110,3 +113,4 @@ int main(void) | @@ -110,3 +113,4 @@ int main(void) | ||
110 | } | 113 | } |
111 | 114 | ||
112 | */ | 115 | */ |
116 | + |
Network/sender.o deleted
No preview for this file type
Network/sniffer.c
@@ -5,62 +5,42 @@ | @@ -5,62 +5,42 @@ | ||
5 | #include <netinet/in.h> | 5 | #include <netinet/in.h> |
6 | #include <arpa/inet.h> | 6 | #include <arpa/inet.h> |
7 | 7 | ||
8 | -#define SZ_DEV 10 | 8 | +#define SZ_DEV_PCAP 10 |
9 | + | ||
9 | 10 | ||
10 | -/* | ||
11 | // Fonction lors de la detection d'un paquet | 11 | // Fonction lors de la detection d'un paquet |
12 | -void arp_detect(u_char *args, const struct pcap_pkthdr *header, const u_char *packet) | 12 | +void arp_detect(/*u_char *args, const struct pcap_pkthdr *header, const u_char *packet*/) |
13 | { | 13 | { |
14 | static int num=0, loop=1; | 14 | static int num=0, loop=1; |
15 | num++; | 15 | num++; |
16 | printf("Voici le paquet arp numéro : %d\n", num); | 16 | printf("Voici le paquet arp numéro : %d\n", num); |
17 | 17 | ||
18 | - if(num==10) { loop++; num=0; printf("10 paquets ARP ont été reçus !\n");} | 18 | + if(num==10) { loop++; num=0; printf("10 paquets ARP ont été reçus pour la boucle %d !\n", loop);} |
19 | } | 19 | } |
20 | 20 | ||
21 | -*/ | ||
22 | -/* | ||
23 | - | ||
24 | -int main(int argc, char *argv[]) | ||
25 | -{ | ||
26 | - int cnt=10; // Correspond au nombre de paquets arp | ||
27 | - | 21 | +int initialize_sniffer(pcap_t** dev_handle, char dev[]) |
22 | +{ | ||
28 | bpf_u_int32 mask; // Masque de l'adresse réseau de l'interface à sniffer | 23 | bpf_u_int32 mask; // Masque de l'adresse réseau de l'interface à sniffer |
29 | bpf_u_int32 net; // Adresse réseau de l'interface à sniffer | 24 | bpf_u_int32 net; // Adresse réseau de l'interface à sniffer |
30 | 25 | ||
31 | char ip[18]="null"; | 26 | char ip[18]="null"; |
32 | 27 | ||
33 | - char dev[SZ_DEV]; // Nom de l'interface à sniffer | ||
34 | - pcap_t *dev_handle; // Handle vers le device (correspondant à l'interface à sniffer) | ||
35 | - | ||
36 | struct bpf_program filter; // Filtre défini par une structure | 28 | struct bpf_program filter; // Filtre défini par une structure |
37 | char buf_err[PCAP_ERRBUF_SIZE]; // Buffer qui stockera les erreurs rencontrées le cas échéant | 29 | char buf_err[PCAP_ERRBUF_SIZE]; // Buffer qui stockera les erreurs rencontrées le cas échéant |
38 | - | ||
39 | - int dev_donne=0; // Vérifie si le device a été donné | ||
40 | int status; | 30 | int status; |
41 | 31 | ||
42 | - for(int i=1; i<argc-1; i++) | ||
43 | - { | ||
44 | - if(strcmp(argv[i], "-dev")==0 || strcmp(argv[i], "-d")==0) | ||
45 | - { | ||
46 | - strcpy(dev, argv[i+1]); | ||
47 | - dev_donne=1; | ||
48 | - } | ||
49 | - } | ||
50 | 32 | ||
51 | 33 | ||
52 | - if(!dev_donne) | ||
53 | - strcpy(dev, "eth0"); | ||
54 | 34 | ||
55 | - printf("Device: %s\n", dev); | ||
56 | - | ||
57 | - | ||
58 | // Permet d'obtenir l'adresse ip de l'interface demandée*/ | 35 | // Permet d'obtenir l'adresse ip de l'interface demandée*/ |
59 | /* pcap permet de lister les interfaces et obtenir les adresses ip de ces dernières | 36 | /* pcap permet de lister les interfaces et obtenir les adresses ip de ces dernières |
60 | * On utilise la fonction pcap_findalldevs | 37 | * On utilise la fonction pcap_findalldevs |
61 | - *//* | 38 | + */ |
39 | + | ||
40 | + | ||
62 | 41 | ||
63 | pcap_if_t* interfaces; | 42 | pcap_if_t* interfaces; |
43 | + | ||
64 | if(pcap_findalldevs(&interfaces, buf_err)!=0) { printf("%s\n", buf_err); return(EXIT_FAILURE); } | 44 | if(pcap_findalldevs(&interfaces, buf_err)!=0) { printf("%s\n", buf_err); return(EXIT_FAILURE); } |
65 | 45 | ||
66 | for(pcap_if_t* i=interfaces; i!=NULL; i=i->next) | 46 | for(pcap_if_t* i=interfaces; i!=NULL; i=i->next) |
@@ -82,7 +62,7 @@ int main(int argc, char *argv[]) | @@ -82,7 +62,7 @@ int main(int argc, char *argv[]) | ||
82 | 62 | ||
83 | 63 | ||
84 | // Création du handle du device | 64 | // Création du handle du device |
85 | - if ((dev_handle=pcap_create(dev, buf_err))==NULL) | 65 | + if ((*dev_handle=pcap_create(dev, buf_err))==NULL) |
86 | { | 66 | { |
87 | //printf("%s\n", buf_err); | 67 | //printf("%s\n", buf_err); |
88 | fprintf(stderr, "Le handle n'a pas pu être créé sur le device %s. Vérifiez s'il est bien existant.\n", dev); | 68 | fprintf(stderr, "Le handle n'a pas pu être créé sur le device %s. Vérifiez s'il est bien existant.\n", dev); |
@@ -91,7 +71,7 @@ int main(int argc, char *argv[]) | @@ -91,7 +71,7 @@ int main(int argc, char *argv[]) | ||
91 | 71 | ||
92 | 72 | ||
93 | // Activation du device | 73 | // Activation du device |
94 | - if ((status=pcap_activate(dev_handle))!=0) | 74 | + if ((status=pcap_activate(*dev_handle))!=0) |
95 | { | 75 | { |
96 | fprintf(stderr, "Le sniffer ne peut être activé sur le device %s\n Code d'erreur : %d \n", dev, status); | 76 | fprintf(stderr, "Le sniffer ne peut être activé sur le device %s\n Code d'erreur : %d \n", dev, status); |
97 | 77 | ||
@@ -111,6 +91,7 @@ int main(int argc, char *argv[]) | @@ -111,6 +91,7 @@ int main(int argc, char *argv[]) | ||
111 | printf("Masque : %d.%d.%d.%d \n", mask & 0xff, (mask >> 8) & 0xff, (mask >> 16) & 0xff, (mask >> 24) & 0xff); | 91 | printf("Masque : %d.%d.%d.%d \n", mask & 0xff, (mask >> 8) & 0xff, (mask >> 16) & 0xff, (mask >> 24) & 0xff); |
112 | 92 | ||
113 | 93 | ||
94 | + // Conception du filtre (on vérifie si on a la bonne ip) | ||
114 | char filter_str[50]="arp"; | 95 | char filter_str[50]="arp"; |
115 | if( strcmp(ip,"null")!=0 ) | 96 | if( strcmp(ip,"null")!=0 ) |
116 | { | 97 | { |
@@ -120,26 +101,74 @@ int main(int argc, char *argv[]) | @@ -120,26 +101,74 @@ int main(int argc, char *argv[]) | ||
120 | 101 | ||
121 | 102 | ||
122 | // "Analyse" du filtre de paquets de type arp | 103 | // "Analyse" du filtre de paquets de type arp |
123 | - if(pcap_compile(dev_handle, &filter, filter_str, 0, net)==-1) | 104 | + if(pcap_compile(*dev_handle, &filter, filter_str, 0, net)==-1) |
124 | { | 105 | { |
125 | - fprintf(stderr, "Le filtre n'a pas pu être analysé : %s\n", pcap_geterr(dev_handle)); | 106 | + fprintf(stderr, "Le filtre n'a pas pu être analysé : %s\n", pcap_geterr(*dev_handle)); |
126 | return(EXIT_FAILURE); | 107 | return(EXIT_FAILURE); |
127 | } | 108 | } |
128 | 109 | ||
129 | 110 | ||
130 | // Installation du filtre de paquets | 111 | // Installation du filtre de paquets |
131 | - if(pcap_setfilter(dev_handle, &filter) == -1) | 112 | + if(pcap_setfilter(*dev_handle, &filter) == -1) |
132 | { | 113 | { |
133 | - fprintf(stderr, "Impossible d'installer le filtre : %s\n", pcap_geterr(dev_handle)); | 114 | + fprintf(stderr, "Impossible d'installer le filtre : %s\n", pcap_geterr(*dev_handle)); |
134 | return(EXIT_FAILURE); | 115 | return(EXIT_FAILURE); |
135 | } | 116 | } |
136 | 117 | ||
118 | + return 0; | ||
119 | + | ||
120 | + | ||
121 | +} | ||
122 | + | ||
123 | +int ecouteReseau(int argc, char* argv[]) | ||
124 | +{ | ||
125 | + int cnt=10; // Correspond au nombre de paquets arp | ||
137 | 126 | ||
138 | - struct pcap_pkthdr packet_header; // Header du paquet comportant des informations sur la réception du paquet (temps de reception etc...) | ||
139 | - const u_char *packet; // Contenant du paquet | 127 | + char dev[SZ_DEV_PCAP]; // Nom de l'interface à sniffer |
128 | + pcap_t *dev_handle; // Handle vers le device (correspondant à l'interface à sniffer) | ||
140 | 129 | ||
141 | - pcap_loop(dev_handle, 10, arp_detect, NULL); // Boucle jusque 10 paquets arp reçus | ||
142 | - | 130 | + |
131 | + | ||
132 | + // Vérifie si le device a été donné | ||
133 | + // ------------------------ | ||
134 | + | ||
135 | + int dev_donne=0; | ||
136 | + | ||
137 | + for(int i=1; i<argc-1; i++) | ||
138 | + { | ||
139 | + if(strcmp(argv[i], "-dev")==0 || strcmp(argv[i], "-d")==0) | ||
140 | + { | ||
141 | + strcpy(dev, argv[i+1]); | ||
142 | + dev_donne=1; | ||
143 | + } | ||
144 | + } | ||
145 | + | ||
146 | + if(!dev_donne) | ||
147 | + strcpy(dev, "eth0"); | ||
148 | + | ||
149 | + printf("Device: %s\n", dev); | ||
150 | + | ||
151 | + // ------------------------ | ||
152 | + | ||
153 | + | ||
154 | + | ||
155 | + | ||
156 | + // struct pcap_pkthdr packet_header; // Header du paquet comportant des informations sur la réception du paquet (temps de reception etc...) | ||
157 | + // const u_char *packet; // Contenant du paquet | ||
158 | + | ||
159 | + if(initialize_sniffer(&dev_handle, dev)!=0) return(-1); | ||
160 | + | ||
161 | + pcap_loop(dev_handle, cnt, arp_detect, NULL); // Boucle jusque 10 paquets arp reçus | ||
162 | + | ||
163 | + return 0; | ||
164 | +} | ||
165 | + | ||
166 | +/* | ||
167 | + | ||
168 | +int main(int argc, char *argv[]) | ||
169 | +{ | ||
170 | + ecouteReseau(argc, argv); | ||
171 | + | ||
143 | return(0); | 172 | return(0); |
144 | } | 173 | } |
145 | 174 |
Network/sniffer.o deleted
No preview for this file type
@@ -65,6 +65,16 @@ int boucleServeur(int socket, void(* fctConnex)(int)) | @@ -65,6 +65,16 @@ int boucleServeur(int socket, void(* fctConnex)(int)) | ||
65 | { | 65 | { |
66 | int sock_dial; | 66 | int sock_dial; |
67 | 67 | ||
68 | + //On utilisera la structure Arg_Thread (définie dans libthrd.h) qui comprend la socket de dialogue et le tableau pointeurs vers une structure donnant les infos des interfaces. | ||
69 | + //En effet, cette structure d'informations d'interface permet d'être utilisée comme une base de données, comprenant l'adresse de l'interface et son statut | ||
70 | + //Les threads partageant la mémoire, ces infos seront partagées. | ||
71 | + Arg_Thread arg_sock_interf; | ||
72 | + | ||
73 | + //On initialise les interfaces | ||
74 | + for(int i=0; i<20; i++) | ||
75 | + arg_sock_interf.interfaces[i]=NULL; | ||
76 | + | ||
77 | + | ||
68 | printf("------- Début boucle serveur TCP -------\n\n"); | 78 | printf("------- Début boucle serveur TCP -------\n\n"); |
69 | 79 | ||
70 | while(1) | 80 | while(1) |
@@ -73,7 +83,9 @@ int boucleServeur(int socket, void(* fctConnex)(int)) | @@ -73,7 +83,9 @@ int boucleServeur(int socket, void(* fctConnex)(int)) | ||
73 | if((sock_dial=accept(socket, NULL, NULL)) < 0){ fprintf(stderr, "Error accept dialogue\n"); return -1; } | 83 | if((sock_dial=accept(socket, NULL, NULL)) < 0){ fprintf(stderr, "Error accept dialogue\n"); return -1; } |
74 | printf("Dialogue ACCEPTED\n"); | 84 | printf("Dialogue ACCEPTED\n"); |
75 | 85 | ||
76 | - lanceThread((void*)fctConnex, (void*)&sock_dial, sizeof(sock_dial)); | 86 | + arg_sock_interf.socket=sock_dial; |
87 | + | ||
88 | + lanceThread((void*)fctConnex, (void*)&arg_sock_interf, sizeof(arg_sock_interf)); | ||
77 | } | 89 | } |
78 | } | 90 | } |
79 | 91 |
Network/tcpserver.o deleted
No preview for this file type
@@ -3,8 +3,133 @@ | @@ -3,8 +3,133 @@ | ||
3 | <head> | 3 | <head> |
4 | <meta charset ="utf-8"> | 4 | <meta charset ="utf-8"> |
5 | <title> Interface Tangible </title> | 5 | <title> Interface Tangible </title> |
6 | +<!-- | ||
7 | + <style> | ||
8 | + | ||
9 | + body | ||
10 | + { | ||
11 | + font-family: 'lato', sans-serif; | ||
12 | + } | ||
13 | + | ||
14 | + | ||
15 | + .container | ||
16 | + { | ||
17 | + max-width: 1000px; | ||
18 | + margin-left: auto; | ||
19 | + margin-right: auto; | ||
20 | + padding-left: 10px; | ||
21 | + padding-right: 10px; | ||
22 | + } | ||
23 | + | ||
24 | + h2 | ||
25 | + { | ||
26 | + font-size: 26px; | ||
27 | + margin: 20px 0; | ||
28 | + text-align: center; | ||
29 | + } | ||
30 | + | ||
31 | + | ||
32 | + li | ||
33 | + { | ||
34 | + border-radius: 3px; | ||
35 | + padding: 25px 30px; | ||
36 | + display: flex; | ||
37 | + justify-content: space-between; | ||
38 | + margin-bottom: 25px; | ||
39 | + } | ||
40 | + | ||
41 | + .table-entete | ||
42 | + { | ||
43 | + background-color: #95A5A6; | ||
44 | + font-size: 14px; | ||
45 | + text-transform: uppercase; | ||
46 | + letter-spacing: 0.03em; | ||
47 | + } | ||
48 | + | ||
49 | + .table-ligne | ||
50 | + { | ||
51 | + background-color: #ffffff; | ||
52 | + box-shadow: 0px 0px 9px 0px rgba(0,0,0,0.1); | ||
53 | + } | ||
54 | + | ||
55 | + .nom | ||
56 | + { | ||
57 | + flex-basis: 40%; | ||
58 | + } | ||
59 | + | ||
60 | + .etat | ||
61 | + { | ||
62 | + flex-basis: 60%; | ||
63 | + } | ||
64 | + | ||
65 | + @media all and (max-width: 767px) | ||
66 | + { | ||
67 | + .table-entete | ||
68 | + { | ||
69 | + display: none; | ||
70 | + } | ||
71 | + | ||
72 | + .table-ligne | ||
73 | + { | ||
74 | + | ||
75 | + } | ||
76 | + | ||
77 | + li | ||
78 | + { | ||
79 | + display: block; | ||
80 | + } | ||
81 | + | ||
82 | + .col | ||
83 | + { | ||
84 | + flex-basis: 100%; | ||
85 | + } | ||
86 | + | ||
87 | + .col | ||
88 | + { | ||
89 | + display: flex; | ||
90 | + padding: 10px 0; | ||
91 | + &:before | ||
92 | + { | ||
93 | + color: #6C7A89; | ||
94 | + padding-right: 10px; | ||
95 | + content: attr(data-label); | ||
96 | + flex-basis: 50%; | ||
97 | + text-align: right; | ||
98 | + } | ||
99 | + } | ||
100 | + } | ||
101 | + | ||
102 | + | ||
103 | + | ||
104 | + </style> | ||
105 | + --> | ||
6 | </meta> | 106 | </meta> |
7 | </head> | 107 | </head> |
8 | <body> | 108 | <body> |
109 | + <div class="container"> | ||
110 | + <h2>Interfaces Tangibles</h2> | ||
111 | + <ul class="tableau"> | ||
112 | + <li class="table-entete"> | ||
113 | + <div class="col nom">Interfaces</div> | ||
114 | + <div class="col etat">Etat</div> | ||
115 | + </li> | ||
116 | + <li class="table-ligne"> | ||
117 | + <div class="col nom" data-label="Nom">42235</div> | ||
118 | + <div class="col etat" data-label="Customer Name">John Doe</div> | ||
119 | + </li> | ||
120 | + <li class="table-ligne"> | ||
121 | + <div class="col nom" data-label="Nom">42442</div> | ||
122 | + <div class="col etat" data-label="Customer Name">Jennifer Smith</div> | ||
123 | + </li> | ||
124 | + <li class="table-ligne"> | ||
125 | + <div class="col nom" data-label="Nom">42257</div> | ||
126 | + <div class="col etat" data-label="Customer Name">John Smith</div> | ||
127 | + </li> | ||
128 | + <li class="table-ligne"> | ||
129 | + <div class="col nom" data-label="Nom">42311</div> | ||
130 | + <div class="col etat" data-label="Customer Name">John Carpenter</div> | ||
131 | + </li> | ||
132 | + </ul> | ||
133 | + </div> | ||
9 | </body> | 134 | </body> |
10 | </html> | 135 | </html> |
@@ -0,0 +1,102 @@ | @@ -0,0 +1,102 @@ | ||
1 | + | ||
2 | + | ||
3 | +body | ||
4 | +{ | ||
5 | + font-family: 'lato', sans-serif; | ||
6 | +} | ||
7 | + | ||
8 | + | ||
9 | +.container | ||
10 | +{ | ||
11 | + max-width: 1000px; | ||
12 | + margin-left: auto; | ||
13 | + margin-right: auto; | ||
14 | + padding-left: 10px; | ||
15 | + padding-right: 10px; | ||
16 | +} | ||
17 | + | ||
18 | +h2 | ||
19 | +{ | ||
20 | + font-size: 26px; | ||
21 | + margin: 20px 0; | ||
22 | + text-align: center; | ||
23 | +} | ||
24 | + | ||
25 | + | ||
26 | +li | ||
27 | +{ | ||
28 | + border-radius: 3px; | ||
29 | + padding: 25px 30px; | ||
30 | + display: flex; | ||
31 | + justify-content: space-between; | ||
32 | + margin-bottom: 25px; | ||
33 | +} | ||
34 | + | ||
35 | +.table-entete | ||
36 | +{ | ||
37 | + background-color: #95A5A6; | ||
38 | + font-size: 14px; | ||
39 | + text-transform: uppercase; | ||
40 | + letter-spacing: 0.03em; | ||
41 | +} | ||
42 | + | ||
43 | +.table-ligne | ||
44 | +{ | ||
45 | + background-color: #ffffff; | ||
46 | + box-shadow: 0px 0px 9px 0px rgba(0,0,0,0.1); | ||
47 | +} | ||
48 | + | ||
49 | +.nom | ||
50 | +{ | ||
51 | + flex-basis: 40%; | ||
52 | +} | ||
53 | + | ||
54 | +.etat | ||
55 | + { | ||
56 | + flex-basis: 60%; | ||
57 | +} | ||
58 | + | ||
59 | +.no_inter | ||
60 | +{ | ||
61 | + text-align: center; | ||
62 | + flex-basis: 100%; | ||
63 | +} | ||
64 | + | ||
65 | +@media all and (max-width: 767px) | ||
66 | +{ | ||
67 | + .table-entete | ||
68 | + { | ||
69 | + display: none; | ||
70 | + } | ||
71 | + | ||
72 | + .table-ligne | ||
73 | + { | ||
74 | + | ||
75 | + } | ||
76 | + | ||
77 | + li | ||
78 | + { | ||
79 | + display: block; | ||
80 | + } | ||
81 | + | ||
82 | + .col | ||
83 | + { | ||
84 | + flex-basis: 100%; | ||
85 | + } | ||
86 | + | ||
87 | + .col | ||
88 | + { | ||
89 | + display: flex; | ||
90 | + padding: 10px 0; | ||
91 | + &:before | ||
92 | + { | ||
93 | + color: #6C7A89; | ||
94 | + padding-right: 10px; | ||
95 | + content: attr(data-label); | ||
96 | + flex-basis: 50%; | ||
97 | + text-align: right; | ||
98 | + } | ||
99 | + } | ||
100 | +} | ||
101 | + | ||
102 | + |
Sioux/client deleted
No preview for this file type
@@ -0,0 +1,117 @@ | @@ -0,0 +1,117 @@ | ||
1 | +#include "http.h" | ||
2 | + | ||
3 | + | ||
4 | +void freePage(struct PageWeb** page) | ||
5 | +{ | ||
6 | + if(*page!=NULL) | ||
7 | + { | ||
8 | + if((*page)->html_contents!=NULL) free((*page)->html_contents); | ||
9 | + free(*page); | ||
10 | + } | ||
11 | +} | ||
12 | + | ||
13 | + | ||
14 | + | ||
15 | +void getWeb(char* pageName, struct PageWeb** page) | ||
16 | +{ | ||
17 | + *page=malloc(sizeof(struct PageWeb)); | ||
18 | + | ||
19 | + FILE* pageFile=fopen(pageName, "r+"); | ||
20 | + | ||
21 | + if(pageFile!=NULL) | ||
22 | + { | ||
23 | + fseek(pageFile, 0L, SEEK_END); | ||
24 | + long nbr_char=ftell(pageFile); | ||
25 | + fseek(pageFile, 0L, SEEK_SET); | ||
26 | + | ||
27 | + | ||
28 | + (*page)->html_contents=malloc(nbr_char*sizeof(char)); | ||
29 | + fread(((*page)->html_contents),1,nbr_char,pageFile); | ||
30 | + | ||
31 | + fclose(pageFile); | ||
32 | + } | ||
33 | + else | ||
34 | + { | ||
35 | + char erreur[]="<h1> 404 PAGE NOT FOUND </h1>\r\n\r\n La page que vous cherchez n'a pas été trouvée, sans doute parce que vous êtes nul."; | ||
36 | + (*page)->html_contents=malloc(strlen(erreur)*sizeof(char)); | ||
37 | + strcpy((*page)->html_contents, erreur); | ||
38 | + } | ||
39 | + | ||
40 | + (*page)->size=strlen(((*page)->html_contents)); | ||
41 | + | ||
42 | + | ||
43 | +} | ||
44 | + | ||
45 | +void createPage(struct PageWeb** page, struct interface_info* interfaces[20]) | ||
46 | +{ | ||
47 | + *page=malloc(sizeof(struct PageWeb)); | ||
48 | + | ||
49 | + (*page)->html_contents=malloc(BUFF_SIZE*sizeof(char)); | ||
50 | + | ||
51 | + strcpy((*page)->html_contents,""); | ||
52 | + | ||
53 | + //Header de la page | ||
54 | + strcat((*page)->html_contents,"<!doctype html>\r\n<html>\r\n<head>\r\n<meta charset =\"utf-8\">\r\n<title> Interfaces Tangibles </title>\r\n</meta>"); | ||
55 | + | ||
56 | + // Intégration de la fiche de style | ||
57 | + FILE* css_file=fopen("../Sioux/Tableau.css", "r+"); | ||
58 | + | ||
59 | + if(css_file!=NULL) | ||
60 | + { | ||
61 | + char style_str[BUFF_SIZE]; | ||
62 | + | ||
63 | + strcat((*page)->html_contents,"<style>"); | ||
64 | + | ||
65 | + fseek(css_file, 0L, SEEK_END); | ||
66 | + long nbr_char=ftell(css_file); | ||
67 | + fseek(css_file, 0L, SEEK_SET); | ||
68 | + | ||
69 | + fread(style_str,1,nbr_char,css_file); | ||
70 | + | ||
71 | + strcat((*page)->html_contents,style_str); | ||
72 | + | ||
73 | + strcat((*page)->html_contents,"</style>"); | ||
74 | + fclose(css_file); | ||
75 | + | ||
76 | + } | ||
77 | + | ||
78 | + strcat((*page)->html_contents,"</head><body><div class=\"container\"><h2>Interfaces Tangibles</h2><ul class=\"tableau\">"); | ||
79 | + strcat((*page)->html_contents,"<li class=\"table-entete\"><div class=\"col nom\">Interfaces</div><div class=\"col etat\">Etat</div></li>"); | ||
80 | + | ||
81 | + int nbr_interfaces=0; | ||
82 | + | ||
83 | + while(interfaces[nbr_interfaces]!=NULL) | ||
84 | + nbr_interfaces++; | ||
85 | + | ||
86 | + if(nbr_interfaces==0) | ||
87 | + strcat((*page)->html_contents,"<li class=\"table-ligne\">\n<div class=\"no_inter\" data-label=\"NoInter\"> Aucune interface </div>"); | ||
88 | + else | ||
89 | + { | ||
90 | + for(int i=0; i<nbr_interfaces; i++) | ||
91 | + { | ||
92 | + if(interfaces[i]->status >= 0) | ||
93 | + { | ||
94 | + strcat((*page)->html_contents,"<li class=\"table-ligne\">\n<div class=\"col nom\" data-label=\"Nom\">"); | ||
95 | + strcat((*page)->html_contents,interfaces[i]->adresse); | ||
96 | + switch(interfaces[i]->status) | ||
97 | + { | ||
98 | + case(0): | ||
99 | + strcat((*page)->html_contents,"</div>\n<div class=\"col etat\" style=\"color: red\" data-label=\"Etat\">Mode Sommeil</div>\n"); | ||
100 | + break; | ||
101 | + case(1): | ||
102 | + strcat((*page)->html_contents,"</div>\n<div class=\"col etat\" style=\"color: green\" data-label=\"Etat\">Mode Eveillé</div>\n"); | ||
103 | + break; | ||
104 | + } | ||
105 | + strcat((*page)->html_contents,"</li>"); | ||
106 | + } | ||
107 | + } | ||
108 | + } | ||
109 | + | ||
110 | + strcat((*page)->html_contents,"</ul>\n</div>\n</body>\n</html>"); | ||
111 | + | ||
112 | + (*page)->size=strlen(((*page)->html_contents)); | ||
113 | + | ||
114 | +} | ||
115 | + | ||
116 | + | ||
117 | + |
Sioux/sioux deleted
No preview for this file type
Sioux/threadsSocket.c deleted
@@ -1,21 +0,0 @@ | @@ -1,21 +0,0 @@ | ||
1 | -#include <stdio.h> | ||
2 | -#include <stdlib.h> | ||
3 | -#include <pthread.h> | ||
4 | - | ||
5 | - | ||
6 | -int lanceThread(void(* fonction) (void *), void* arg, int size) | ||
7 | -{ | ||
8 | - pthread_t thr_id; | ||
9 | - | ||
10 | - if(pthread_create(&thr_id, NULL, fonction, arg)!=0) { fprintf(stderr, "Le thread n'a pas pu être créé.\n"); return -1; } | ||
11 | - | ||
12 | - pthread_detach(thr_id); | ||
13 | - | ||
14 | - | ||
15 | - | ||
16 | -} | ||
17 | - | ||
18 | -int main(void) | ||
19 | -{ | ||
20 | - | ||
21 | -} |
Tangible/tangibleInterface
No preview for this file type
Tangible/tangibleInterface.c
1 | #include <avr/io.h> | 1 | #include <avr/io.h> |
2 | #include <util/delay.h> | 2 | #include <util/delay.h> |
3 | #include <stdio.h> | 3 | #include <stdio.h> |
4 | - | 4 | +#include <string.h> |
5 | +#include <stdlib.h> | ||
6 | +#include <stdbool.h> | ||
5 | #include "serial.h" | 7 | #include "serial.h" |
6 | #include "ethernet.h" | 8 | #include "ethernet.h" |
7 | #include "w5100.h" | 9 | #include "w5100.h" |
@@ -9,65 +11,102 @@ | @@ -9,65 +11,102 @@ | ||
9 | 11 | ||
10 | #define MAC_SIZE 6 | 12 | #define MAC_SIZE 6 |
11 | #define IPV4_SIZE 4 | 13 | #define IPV4_SIZE 4 |
14 | +bool isComMem = false; // Commande déjà enregistrée ou non? | ||
15 | +bool sleep = true; //Etat de l'interface : true = mode sommeil / false = mode eveillé | ||
12 | 16 | ||
13 | -int main(void) | 17 | +SOCKET sUDP=0; |
18 | +SOCKET sTCP=1; | ||
19 | + | ||
20 | +uint8 comMem[2]; //Commande en mémoire | ||
21 | + | ||
22 | +uint8_t addr[IPV4_SIZE]; | ||
23 | +uint16_t port; | ||
24 | + | ||
25 | + | ||
26 | +void request(uint8 rq [2]) | ||
14 | { | 27 | { |
15 | - uint8 com[4],per[14]; | 28 | + |
29 | + if (!isComMem) //Aucune commande en mémoire | ||
30 | + { | ||
31 | + isComMem = true; | ||
32 | + comMem[0] = rq[0]; comMem[1] = rq [1]; | ||
33 | + } | ||
34 | + | ||
35 | + uint8 x = rq [0] & 0xE0; //Récupération de la commande | ||
36 | + x = x >> 5; | ||
37 | + uint16 y = rq[0] & 0x1F; //Récupération du pourcentage | ||
38 | + y = y << 8; | ||
39 | + y += rq[1]; | ||
40 | + uint16 per = (100*y)/8192; //2^13 = 100 % | ||
41 | + switch(x) | ||
42 | + { | ||
43 | + | ||
44 | + case 0: | ||
45 | + printf("REQUEST STATUS\n"); | ||
46 | + //ENVOI TCP ICI , renvoi x = 0x01 | ||
47 | + comMem[0] = rq[0]; comMem[1] = rq [1]; //save | ||
48 | + break; | ||
49 | + | ||
50 | + case 2: | ||
51 | + printf("SET / UNSET SLEEP\n"); | ||
52 | + if (y == 0x0001) | ||
53 | + { | ||
54 | + sleep = false; | ||
55 | + printf("MODE EVEILLE\n"); | ||
56 | + } | ||
57 | + else if (y == 0x0000) | ||
58 | + { | ||
59 | + sleep = true; | ||
60 | + printf("MODE SOMMEIL\n"); | ||
61 | + } | ||
62 | + comMem[0] = rq[0]; comMem[1] = rq [1]; //save | ||
63 | + break; | ||
64 | + | ||
65 | + case 3: | ||
66 | + // ENVOI TCP ICI , envoi de comMem[2] | ||
67 | + break; | ||
68 | + case 5: | ||
69 | + //Envoi à l'interface secondaire ordre + pourcentage. | ||
70 | + | ||
71 | + break; | ||
72 | + } | ||
73 | + | ||
74 | + | ||
75 | + | ||
76 | +} | ||
77 | + | ||
78 | +int main(void) | ||
79 | +{ | ||
16 | uint8_t mac[MAC_SIZE] = {0xA0,0xBD,0xCD,0xDD,0xED,0xFD}; | 80 | uint8_t mac[MAC_SIZE] = {0xA0,0xBD,0xCD,0xDD,0xED,0xFD}; |
17 | uint8_t ip[IPV4_SIZE] = {172,26,145,205}; | 81 | uint8_t ip[IPV4_SIZE] = {172,26,145,205}; |
18 | uint8_t gateway[4] = {172,26,145,254}; | 82 | uint8_t gateway[4] = {172,26,145,254}; |
19 | uint8_t mask[4] = {255,255,255,0}; | 83 | uint8_t mask[4] = {255,255,255,0}; |
20 | - int isUDP = 0; | ||
21 | - const char answer [16] = "I'm ok"; | ||
22 | 84 | ||
23 | - uint8 buf[16]; | ||
24 | - uint8_t addr[IPV4_SIZE]; | ||
25 | - uint16_t port; | 85 | + uint8 buf[2]; |
26 | uint16 datasize; | 86 | uint16 datasize; |
27 | - uint8_t addrpifou[IPV4_SIZE]={172,26,145,35}; | ||
28 | - uint16 size; | ||
29 | - SOCKET sUDP=0; | ||
30 | - SOCKET sTCP=1; | ||
31 | - init_printf(); | ||
32 | - ethernet_init(mac,ip,gateway,mask); | ||
33 | - if (!socket(sUDP,Sn_MR_UDP,2020,0)) | ||
34 | - { | ||
35 | - return -1; | ||
36 | - } | ||
37 | - if (!socket(sTCP,Sn_MR_TCP,2020,0)) | ||
38 | - { | ||
39 | - return -1; | ||
40 | - } | ||
41 | - while(1) | 87 | + |
88 | + init_printf(); | ||
89 | + ethernet_init(mac,ip,gateway,mask); | ||
90 | + if (!socket(sUDP,Sn_MR_UDP,2020,0)) | ||
91 | + { | ||
92 | + return -1; | ||
93 | + } | ||
94 | + if (!socket(sTCP,Sn_MR_TCP,2020,0)) | ||
95 | + { | ||
96 | + return -1; | ||
97 | + } | ||
98 | + | ||
99 | + while(1) | ||
100 | + { | ||
101 | + if((datasize=recvfrom(sUDP,buf,sizeof(buf),addr,&port)) == 2) | ||
42 | { | 102 | { |
43 | - if((datasize=recvfrom(sUDP,buf,sizeof(buf),addr,&port)) == 17) | ||
44 | - { | ||
45 | - com[0]=buf[0]; | ||
46 | - com[1]=buf[1]; | ||
47 | - com[2]=buf[2]; | ||
48 | - com[3]='\0'; | ||
49 | - per[0]=buf[3]; | ||
50 | - per[1]=buf[4]; | ||
51 | - per[2]=buf[5]; | ||
52 | - per[3]=buf[6]; | ||
53 | - per[4]=buf[7]; | ||
54 | - per[5]=buf[8]; | ||
55 | - per[6]=buf[9]; | ||
56 | - per[7]=buf[10]; | ||
57 | - per[8]=buf[11]; | ||
58 | - per[9]=buf[12]; | ||
59 | - per[10]=buf[13]; | ||
60 | - per[11]=buf[14]; | ||
61 | - per[12]=buf[15]; | ||
62 | - per[13]='\0'; | ||
63 | - printf("Com : %s\n",com); | ||
64 | - printf("Per : %s\n",per); | ||
65 | - } | 103 | + printf("RECEIVED\n"); |
104 | + request(buf); | ||
66 | } | 105 | } |
67 | - printf("RESET\n"); | ||
68 | - close(sTCP); | ||
69 | - close(sUDP); | ||
70 | - return 0; | 106 | + if (datasize!=0) |
107 | + printf(" DATASIZE = %d\n",datasize); | ||
108 | + } | ||
109 | + close(sTCP); | ||
110 | + close(sUDP); | ||
111 | + return 0; | ||
71 | } | 112 | } |
72 | - | ||
73 | -//send(sTCP,(uint8*)answer, (uint16)sizeof(answer)); |
@@ -5,544 +5,551 @@ | @@ -5,544 +5,551 @@ | ||
5 | :100040000C9451000C9451000C9451000C945100EC | 5 | :100040000C9451000C9451000C9451000C945100EC |
6 | :100050000C9451000C9451000C9451000C945100DC | 6 | :100050000C9451000C9451000C9451000C945100DC |
7 | :100060000C9451000C94510011241FBECFEFD8E026 | 7 | :100060000C9451000C94510011241FBECFEFD8E026 |
8 | -:10007000DEBFCDBF13E0A0E0B1E0EEEBFFE102C0D8 | ||
9 | -:1000800005900D92A836B107D9F723E0A8E6B3E0B2 | ||
10 | -:1000900001C01D92A43AB207E1F70E94050C0C942E | ||
11 | -:1000A000DD0F0C940000E82FF0E0E856FC4F808153 | ||
12 | -:1000B0000895E82FF0E0E856FC4F60830895E82F9C | ||
13 | -:1000C000F0E0EE0FFF1FE858FC4F8081918108950A | ||
14 | -:1000D000E82FF0E0EE0FFF1FE058FC4F8081918188 | ||
15 | -:1000E0000895E82FF0E0EE0FFF1FE857FC4F8081E6 | ||
16 | -:1000F00091810895E82FF0E0EE0FFF1FE057FC4FCD | ||
17 | -:10010000808191810895E82FF0E0EE0FFF1FE859FC | ||
18 | -:10011000FC4F808191810895E82FF0E0EE0FFF1FE2 | ||
19 | -:10012000E059FC4F80819181089524B12C6224B95B | ||
20 | -:100130002A9A25B1277D25B920E52CBD2A9820EFE4 | ||
21 | -:100140002EBD0DB407FEFDCF9EBD0DB407FEFDCF45 | ||
22 | -:100150008EBD0DB407FEFDCF6EBD0DB407FEFDCF05 | ||
23 | -:100160002A9A81E0089524B12C6224B92A9A25B1F3 | ||
24 | -:10017000277D25B920E52CBD2A982FE02EBD0DB492 | ||
25 | -:1001800007FEFDCF9EBD0DB407FEFDCF8EBD0DB4A5 | ||
26 | -:1001900007FEFDCF1EBC0DB407FEFDCF8EB52A9A1B | ||
27 | -:1001A000089524B12C6224B92A9A25B1277D25B956 | ||
28 | -:1001B00020E52CBDFB019B01240F351F60EFE217EA | ||
29 | -:1001C000F307A9F02A986EBD0DB407FEFDCF9EBDC2 | ||
30 | -:1001D0000DB407FEFDCF8EBD0DB407FEFDCF7191AE | ||
31 | -:1001E0007EBD0DB407FEFDCF2A9A0196E8CFCA0165 | ||
32 | -:1001F000089524B12C6224B92A9A25B1277D25B906 | ||
33 | -:1002000020E52CBDFB019B01240F351F6FE0E21799 | ||
34 | -:10021000F307B1F02A986EBD0DB407FEFDCF9EBD69 | ||
35 | -:100220000DB407FEFDCF8EBD0DB407FEFDCF1EBC85 | ||
36 | -:100230000DB407FEFDCF7EB571932A9A0196E7CFE4 | ||
37 | -:10024000CA0108952F923F924F925F926F927F92D0 | ||
38 | -:100250008F929F92AF92BF92CF92DF92EF92FF92D6 | ||
39 | -:100260000F931F93CF93DF93CDB7DEB728970FB6C9 | ||
40 | -:10027000F894DEBF0FBECDBF282E362E88E291E067 | ||
41 | -:100280000E94F80C622D8BE190E00E949500632D96 | ||
42 | -:100290008AE190E00E94950080E090E490937103E1 | ||
43 | -:1002A0008093700380E090E69093690380936803E5 | ||
44 | -:1002B00083E391E00E94F80C88E6882E83E0982E74 | ||
45 | -:1002C00090E7A92E93E0B92E20E833E038872F83FA | ||
46 | -:1002D00008E713E028E8C22E23E0D22E30E9E32E0F | ||
47 | -:1002E00033E0F32E1A821982412C512C1C821B827E | ||
48 | -:1002F000612C712C222D30E03E832D83232C312C58 | ||
49 | -:10030000AF81B88511961C921E92F801118210825D | ||
50 | -:100310002B813C8121153042B4F58D819E8109806D | ||
51 | -:1003200002C0959587950A94E2F7837099278230E9 | ||
52 | -:100330009105A9F083309105D9F0019739F080E05B | ||
53 | -:1003400094E08D939C93EFEFF3E01AC0E0E0F8E0C7 | ||
54 | -:10035000AF81B885ED93FC93EFEFF7E011C0E0E0DB | ||
55 | -:10036000F0E1AF81B885ED93FC93EFEFFFE008C0BB | ||
56 | -:10037000E0E0F0E2AF81B885ED93FC93EFEFFFE1B1 | ||
57 | -:10038000D701ED93FC934114F0E25F069CF5C101A7 | ||
58 | -:10039000098002C0959587950A94E2F783709927A2 | ||
59 | -:1003A00082309105A9F083309105D1F0019741F099 | ||
60 | -:1003B000E0E0F4E0D801ED93FC93EFEFF3E017C039 | ||
61 | -:1003C000E0E0F8E0D801ED93FC93EFEFF7E00FC029 | ||
62 | -:1003D000E0E0F0E1D801ED93FC93EFEFFFE007C020 | ||
63 | -:1003E000E0E0F0E2D801ED93FC93EFEFFFE1D601FE | ||
64 | -:1003F000ED93FC93AF81B8858D919D91B887AF83C4 | ||
65 | -:100400002B813C81280F391F3C832B83D8012D91F0 | ||
66 | -:100410003D918D01420E531E61147104D9F0EF819C | ||
67 | -:10042000F885349760817181F5013297408151815F | ||
68 | -:10043000460F571FF50151834083FD0134976081BA | ||
69 | -:100440007181F401329740815181460F571FD401C9 | ||
70 | -:100450004D935C93F40160817181F2E08F0E911CE9 | ||
71 | -:10046000D5014C9111965C91B2E0AB0EB11C3F935B | ||
72 | -:100470002F939F938F937F936F935F934F937F926D | ||
73 | -:100480006F92ACE5B1E0BF93AF930E94E20CFFEF37 | ||
74 | -:100490006F1A7F0A29813A812E5F3F4F3A83298361 | ||
75 | -:1004A00032E0C30ED11C42E0E40EF11C0FB6F8940A | ||
76 | -:1004B000DEBF0FBECDBF94E06916710409F020CFF6 | ||
77 | -:1004C00028960FB6F894DEBF0FBECDBFDF91CF9157 | ||
78 | -:1004D0001F910F91FF90EF90DF90CF90BF90AF9062 | ||
79 | -:1004E0009F908F907F906F905F904F903F902F9054 | ||
80 | -:1004F0000895682F80E090E80C94950080E80C94B3 | ||
81 | -:100500007902CF93DF93EC01688181E090E00E9453 | ||
82 | -:100510009500698182E090E00E9495006A8183E005 | ||
83 | -:1005200090E00E9495006B8184E090E0DF91CF9194 | ||
84 | -:100530000C949500CF93DF93EC0181E090E00E9452 | ||
85 | -:10054000B300888382E090E00E94B300898383E057 | ||
86 | -:1005500090E00E94B3008A8384E090E00E94B300A0 | ||
87 | -:100560008B83DF91CF910895CF93DF93EC01688166 | ||
88 | -:1005700085E090E00E949500698186E090E00E940D | ||
89 | -:1005800095006A8187E090E00E9495006B8188E089 | ||
90 | -:1005900090E0DF91CF910C949500CF93DF93EC0125 | ||
91 | -:1005A000688189E090E00E94950069818AE090E08E | ||
92 | -:1005B0000E9495006A818BE090E00E9495006B811B | ||
93 | -:1005C0008CE090E00E9495006C818DE090E00E94AC | ||
94 | -:1005D00095006D818EE090E0DF91CF910C949500B5 | ||
95 | -:1005E000CF93DF93EC0168818FE090E00E9495004B | ||
96 | -:1005F000698180E190E00E9495006A8181E190E04C | ||
97 | -:100600000E9495006B8182E190E0DF91CF910C9484 | ||
98 | -:10061000950085E190E00C94B300CF93C82F692F2B | ||
99 | -:1006200087E190E00E9495006C2F88E190E0CF91E7 | ||
100 | -:100630000C949500682F89E190E00C949500682F48 | ||
101 | -:1006400086E190E00C949500CF93DF93EC0181E07C | ||
102 | -:1006500090E00E94B300888382E090E00E94B300A3 | ||
103 | -:10066000898383E090E00E94B3008A8384E090E075 | ||
104 | -:100670000E94B3008B83DF91CF910895CF93DF93D6 | ||
105 | -:10068000EC0185E090E00E94B300888386E090E072 | ||
106 | -:100690000E94B300898387E090E00E94B3008A83C0 | ||
107 | -:1006A00088E090E00E94B3008B83DF91CF910895A2 | ||
108 | -:1006B000CF93DF93EC0189E090E00E94B300888340 | ||
109 | -:1006C0008AE090E00E94B30089838BE090E00E9472 | ||
110 | -:1006D000B3008A838CE090E00E94B3008B838DE0AE | ||
111 | -:1006E00090E00E94B3008C838EE090E00E94B30003 | ||
112 | -:1006F0008D83DF91CF910895CF93DF93EC018FE04D | ||
113 | -:1007000090E00E94B300888380E190E00E94B300F3 | ||
114 | -:10071000898381E190E00E94B3008A8382E190E0C6 | ||
115 | -:100720000E94B3008B83DF91CF9108950F931F93A5 | ||
116 | -:10073000CF93DF938B01C82FD0E02496DC2FCC27FA | ||
117 | -:10074000CE0106960E94B300F8018083CE01079681 | ||
118 | -:100750000E94B300F8018183CE0108960E94B30085 | ||
119 | -:10076000F8018283CE0109960E94B300F8018383C9 | ||
120 | -:10077000CE010A960E94B300F8018483CE010B9645 | ||
121 | -:100780000E94B300F8018583DF91CF911F910F91F3 | ||
122 | -:1007900008950F931F93CF93DF938B01C82FD0E061 | ||
123 | -:1007A0002496DC2FCC27FB016081CE0106960E94A7 | ||
124 | -:1007B0009500F8016181CE0107960E949500F8012D | ||
125 | -:1007C0006281CE0108960E949500F8016381CE01F6 | ||
126 | -:1007D00009960E949500F8016481CE010A960E9454 | ||
127 | -:1007E0009500F8016581CE010B96DF91CF911F91A5 | ||
128 | -:1007F0000F910C9495000F931F93CF93DF938B0170 | ||
129 | -:10080000C82FD0E02496DC2FCC27CE010C960E9476 | ||
130 | -:10081000B300F8018083CE010D960E94B300F80169 | ||
131 | -:100820008183CE010E960E94B300F8018283CE012F | ||
132 | -:100830000F960E94B300F8018383DF91CF911F913F | ||
133 | -:100840000F9108950F931F93CF93DF938B01C82FC0 | ||
134 | -:10085000D0E02496DC2FCC27FB016081CE010C96E2 | ||
135 | -:100860000E949500F8016181CE010D960E949500CD | ||
136 | -:10087000F8016281CE010E960E949500F801638115 | ||
137 | -:10088000CE010F96DF91CF911F910F910C9495009F | ||
138 | -:100890000F931F93CF93DF938B01C82FD0E0249643 | ||
139 | -:1008A000DC2FCC27CE0140960E94B300F801808354 | ||
140 | -:1008B000CE0141960E94B300F8018183DF91CF9170 | ||
141 | -:1008C0001F910F9108950F931F93CF93DF938B0187 | ||
142 | -:1008D000C82FD0E02496DC2FCC27FB016081CE010D | ||
143 | -:1008E00040960E949500F8016181CE014196DF910A | ||
144 | -:1008F000CF911F910F910C9495001F93CF93DF938D | ||
145 | -:10090000162F672FC82FD0E02496DC2FCC27CE01DE | ||
146 | -:1009100042960E949500612FCE014396DF91CF91C0 | ||
147 | -:100920001F910C94950090E0982F88278A5E9B4F2A | ||
148 | -:100930000C94950090E0982F88278C5E9B4F0C9428 | ||
149 | -:10094000950090E0982F88278E5F9B4F0C94B30002 | ||
150 | -:1009500090E0982F88278D5F9B4F0C94B300CF9227 | ||
151 | -:10096000DF92EF92FF920F931F93CF93DF93C82FE5 | ||
152 | -:10097000D0E02496DC2FCC277E0180E2E80EF11C2B | ||
153 | -:10098000A19600E010E0C7010E94B300C82ED12C50 | ||
154 | -:10099000DC2CCC24CE010E94B300C80ED11CC114A3 | ||
155 | -:1009A000D10461F0C7010E94B300082F10E0102F9E | ||
156 | -:1009B0000027CE010E94B300080F111D0C151D0564 | ||
157 | -:1009C00011F7C801DF91CF911F910F91FF90EF9028 | ||
158 | -:1009D000DF90CF900895CF92DF92EF92FF920F9326 | ||
159 | -:1009E0001F93CF93DF93C82FD0E02496DC2FCC2722 | ||
160 | -:1009F0007E0186E2E80EF11CA79600E010E0C70138 | ||
161 | -:100A00000E94B300C82ED12CDC2CCC24CE010E9435 | ||
162 | -:100A1000B300C80ED11CC114D10461F0C7010E94FB | ||
163 | -:100A2000B300082F10E0102F0027CE010E94B30062 | ||
164 | -:100A3000080F111D0C151D0511F7C801DF91CF918D | ||
165 | -:100A40001F910F91FF90EF90DF90CF900895CF927C | ||
166 | -:100A5000DF92EF92FF920F931F93CF93DF93E82FD4 | ||
167 | -:100A6000F0E0EE0FFF1FDF01A057BC4F8D919C916E | ||
168 | -:100A7000DA01A823B923EF01C059DC4FE880F980DF | ||
169 | -:100A8000CD018E0D9F1DE058FC4FC081D181AD017D | ||
170 | -:100A9000420F531FC417D50778F489016B01CA1B95 | ||
171 | -:100AA000DB0BAE010E94D100A8014C1B5D0BB6010F | ||
172 | -:100AB0006C0F7D1FC70101C0A901DF91CF911F916C | ||
173 | -:100AC0000F91FF90EF90DF90CF900C94D1008F9218 | ||
174 | -:100AD0009F92BF92CF92DF92EF92FF920F931F935C | ||
175 | -:100AE000CF93DF9300D0CDB7DEB7B82E7A0190E078 | ||
176 | -:100AF0000496982E8824640184E2C80ED11CC60195 | ||
177 | -:100B000069837A830E94B300082F10E0102F00271A | ||
178 | -:100B100085E2880E911CC4010E94B300080F111DCC | ||
179 | -:100B20009701A80169817A818B2D0E9427050E0DFE | ||
180 | -:100B30001F1D612FC6010E949500602FC4010F90F8 | ||
181 | -:100B40000F90DF91CF911F910F91FF90EF90DF9069 | ||
182 | -:100B5000CF90BF909F908F900C949500AF92BF92D2 | ||
183 | -:100B6000CF92DF92EF92FF920F931F93CF93DF9379 | ||
184 | -:100B7000DA01A901E82FF0E0EE0FFF1FEF01C857DF | ||
185 | -:100B8000DC4F888199816B01C822D922EF01C859B5 | ||
186 | -:100B9000DC4FE880F980C6018E0D9F1DE858FC4FA0 | ||
187 | -:100BA000C081D1819601240F351FC217D30780F46D | ||
188 | -:100BB0008A015D01CC19DD09AE01BD010E94F90079 | ||
189 | -:100BC000A8014C1B5D0BB5016C0F7D1FC70101C057 | ||
190 | -:100BD000BD01DF91CF911F910F91FF90EF90DF90BA | ||
191 | -:100BE000CF90BF90AF900C94F9009F92AF92BF92BC | 8 | +:10007000DEBFCDBF13E0A0E0B1E0E4EEFFE102C0DF |
9 | +:1000800005900D92AA3AB107D9F723E0AAEAB3E0A6 | ||
10 | +:1000900001C01D92A03FB207E1F70E944D0C0C94E5 | ||
11 | +:1000A000F00F0C9400000F931F93CF93DF938C01FC | ||
12 | +:1000B0008091AB0381110AC081E08093AB03F8010A | ||
13 | +:1000C00080818093E20381818093E303F801C08102 | ||
14 | +:1000D00091818C2F82958695877019F0823021F05E | ||
15 | +:1000E00025C086E191E019C0CF71D0E0DC2FCC278C | ||
16 | +:1000F000C90FD11D85E291E00E940B0DC130D105E1 | ||
17 | +:1001000029F41092010187E391E007C0CD2B39F467 | ||
18 | +:1001100081E08093010184E491E00E940B0DF801DD | ||
19 | +:1001200080818093E20381818093E303DF91CF910B | ||
20 | +:100130001F910F910895E82FF0E0E452FC4F808169 | ||
21 | +:100140000895E82FF0E0E452FC4F60830895E82F13 | ||
22 | +:10015000F0E0EE0FFF1FE454FC4F80819181089581 | ||
23 | +:10016000E82FF0E0EE0FFF1FEC53FC4F80819181F0 | ||
24 | +:100170000895E82FF0E0EE0FFF1FE453FC4F80815D | ||
25 | +:1001800091810895E82FF0E0EE0FFF1FEC52FC4F35 | ||
26 | +:10019000808191810895E82FF0E0EE0FFF1FE45574 | ||
27 | +:1001A000FC4F808191810895E82FF0E0EE0FFF1F52 | ||
28 | +:1001B000EC54FC4F80819181089524B12C6224B9C4 | ||
29 | +:1001C0002A9A25B1277D25B920E52CBD2A9820EF54 | ||
30 | +:1001D0002EBD0DB407FEFDCF9EBD0DB407FEFDCFB5 | ||
31 | +:1001E0008EBD0DB407FEFDCF6EBD0DB407FEFDCF75 | ||
32 | +:1001F0002A9A81E0089524B12C6224B92A9A25B163 | ||
33 | +:10020000277D25B920E52CBD2A982FE02EBD0DB401 | ||
34 | +:1002100007FEFDCF9EBD0DB407FEFDCF8EBD0DB414 | ||
35 | +:1002200007FEFDCF1EBC0DB407FEFDCF8EB52A9A8A | ||
36 | +:10023000089524B12C6224B92A9A25B1277D25B9C5 | ||
37 | +:1002400020E52CBDFB019B01240F351F60EFE21759 | ||
38 | +:10025000F307A9F02A986EBD0DB407FEFDCF9EBD31 | ||
39 | +:100260000DB407FEFDCF8EBD0DB407FEFDCF71911D | ||
40 | +:100270007EBD0DB407FEFDCF2A9A0196E8CFCA01D4 | ||
41 | +:10028000089524B12C6224B92A9A25B1277D25B975 | ||
42 | +:1002900020E52CBDFB019B01240F351F6FE0E21709 | ||
43 | +:1002A000F307B1F02A986EBD0DB407FEFDCF9EBDD9 | ||
44 | +:1002B0000DB407FEFDCF8EBD0DB407FEFDCF1EBCF5 | ||
45 | +:1002C0000DB407FEFDCF7EB571932A9A0196E7CF54 | ||
46 | +:1002D000CA0108952F923F924F925F926F927F9240 | ||
47 | +:1002E0008F929F92AF92BF92CF92DF92EF92FF9246 | ||
48 | +:1002F0000F931F93CF93DF93CDB7DEB728970FB639 | ||
49 | +:10030000F894DEBF0FBECDBF282E362E8AE691E0D0 | ||
50 | +:100310000E940B0D622D8BE190E00E94DD00632DA9 | ||
51 | +:100320008AE190E00E94DD0080E090E49093B503C4 | ||
52 | +:100330008093B40380E090E69093AD038093AC0388 | ||
53 | +:1003400085E791E00E940B0D8CEA882E83E0982EC1 | ||
54 | +:1003500094EBA92E93E0B92E24EC33E038872F8359 | ||
55 | +:100360000CEB13E02CECC22E23E0D22E34EDE32E66 | ||
56 | +:1003700033E0F32E1A821982412C512C1C821B82ED | ||
57 | +:10038000612C712C222D30E03E832D83232C312CC7 | ||
58 | +:10039000AF81B88511961C921E92F80111821082CD | ||
59 | +:1003A0002B813C8121153042B4F58D819E810980DD | ||
60 | +:1003B00002C0959587950A94E2F783709927823059 | ||
61 | +:1003C0009105A9F083309105D9F0019739F080E0CB | ||
62 | +:1003D00094E08D939C93EFEFF3E01AC0E0E0F8E037 | ||
63 | +:1003E000AF81B885ED93FC93EFEFF7E011C0E0E04B | ||
64 | +:1003F000F0E1AF81B885ED93FC93EFEFFFE008C02B | ||
65 | +:10040000E0E0F0E2AF81B885ED93FC93EFEFFFE120 | ||
66 | +:10041000D701ED93FC934114F0E25F069CF5C10116 | ||
67 | +:10042000098002C0959587950A94E2F78370992711 | ||
68 | +:1004300082309105A9F083309105D1F0019741F008 | ||
69 | +:10044000E0E0F4E0D801ED93FC93EFEFF3E017C0A8 | ||
70 | +:10045000E0E0F8E0D801ED93FC93EFEFF7E00FC098 | ||
71 | +:10046000E0E0F0E1D801ED93FC93EFEFFFE007C08F | ||
72 | +:10047000E0E0F0E2D801ED93FC93EFEFFFE1D6016D | ||
73 | +:10048000ED93FC93AF81B8858D919D91B887AF8333 | ||
74 | +:100490002B813C81280F391F3C832B83D8012D9160 | ||
75 | +:1004A0003D918D01420E531E61147104D9F0EF810C | ||
76 | +:1004B000F885349760817181F501329740815181CF | ||
77 | +:1004C000460F571FF50151834083FD01349760812A | ||
78 | +:1004D0007181F401329740815181460F571FD40139 | ||
79 | +:1004E0004D935C93F40160817181F2E08F0E911C59 | ||
80 | +:1004F000D5014C9111965C91B2E0AB0EB11C3F93CB | ||
81 | +:100500002F939F938F937F936F935F934F937F92DC | ||
82 | +:100510006F92AEE9B1E0BF93AF930E94F50CFFEF8D | ||
83 | +:100520006F1A7F0A29813A812E5F3F4F3A832983D0 | ||
84 | +:1005300032E0C30ED11C42E0E40EF11C0FB6F89479 | ||
85 | +:10054000DEBF0FBECDBF94E06916710409F020CF65 | ||
86 | +:1005500028960FB6F894DEBF0FBECDBFDF91CF91C6 | ||
87 | +:100560001F910F91FF90EF90DF90CF90BF90AF90D1 | ||
88 | +:100570009F908F907F906F905F904F903F902F90C3 | ||
89 | +:100580000895682F80E090E80C94DD0080E80C94DA | ||
90 | +:10059000C102CF93DF93EC01688181E090E00E947B | ||
91 | +:1005A000DD00698182E090E00E94DD006A8183E0E5 | ||
92 | +:1005B00090E00E94DD006B8184E090E0DF91CF91BC | ||
93 | +:1005C0000C94DD00CF93DF93EC0181E090E00E947A | ||
94 | +:1005D000FB00888382E090E00E94FB00898383E037 | ||
95 | +:1005E00090E00E94FB008A8384E090E00E94FB0080 | ||
96 | +:1005F0008B83DF91CF910895CF93DF93EC016881D6 | ||
97 | +:1006000085E090E00E94DD00698186E090E00E9434 | ||
98 | +:10061000DD006A8187E090E00E94DD006B8188E068 | ||
99 | +:1006200090E0DF91CF910C94DD00CF93DF93EC014C | ||
100 | +:10063000688189E090E00E94DD0069818AE090E0B5 | ||
101 | +:100640000E94DD006A818BE090E00E94DD006B81FA | ||
102 | +:100650008CE090E00E94DD006C818DE090E00E94D3 | ||
103 | +:10066000DD006D818EE090E0DF91CF910C94DD0094 | ||
104 | +:10067000CF93DF93EC0168818FE090E00E94DD0072 | ||
105 | +:10068000698180E190E00E94DD006A8181E190E073 | ||
106 | +:100690000E94DD006B8182E190E0DF91CF910C94AC | ||
107 | +:1006A000DD0085E190E00C94FB00CF93C82F692F0B | ||
108 | +:1006B00087E190E00E94DD006C2F88E190E0CF910F | ||
109 | +:1006C0000C94DD00682F89E190E00C94DD00682F28 | ||
110 | +:1006D00086E190E00C94DD00CF93DF93EC0181E0A4 | ||
111 | +:1006E00090E00E94FB00888382E090E00E94FB0083 | ||
112 | +:1006F000898383E090E00E94FB008A8384E090E09D | ||
113 | +:100700000E94FB008B83DF91CF910895CF93DF93FD | ||
114 | +:10071000EC0185E090E00E94FB00888386E090E099 | ||
115 | +:100720000E94FB00898387E090E00E94FB008A839F | ||
116 | +:1007300088E090E00E94FB008B83DF91CF910895C9 | ||
117 | +:10074000CF93DF93EC0189E090E00E94FB00888367 | ||
118 | +:100750008AE090E00E94FB0089838BE090E00E9499 | ||
119 | +:10076000FB008A838CE090E00E94FB008B838DE08D | ||
120 | +:1007700090E00E94FB008C838EE090E00E94FB00E2 | ||
121 | +:100780008D83DF91CF910895CF93DF93EC018FE0BC | ||
122 | +:1007900090E00E94FB00888380E190E00E94FB00D3 | ||
123 | +:1007A000898381E190E00E94FB008A8382E190E0EE | ||
124 | +:1007B0000E94FB008B83DF91CF9108950F931F93CD | ||
125 | +:1007C000CF93DF938B01C82FD0E02496DC2FCC276A | ||
126 | +:1007D000CE0106960E94FB00F8018083CE010796A9 | ||
127 | +:1007E0000E94FB00F8018183CE0108960E94FB0065 | ||
128 | +:1007F000F8018283CE0109960E94FB00F8018383F1 | ||
129 | +:10080000CE010A960E94FB00F8018483CE010B966C | ||
130 | +:100810000E94FB00F8018583DF91CF911F910F911A | ||
131 | +:1008200008950F931F93CF93DF938B01C82FD0E0D0 | ||
132 | +:100830002496DC2FCC27FB016081CE0106960E9416 | ||
133 | +:10084000DD00F8016181CE0107960E94DD00F8010C | ||
134 | +:100850006281CE0108960E94DD00F8016381CE011D | ||
135 | +:1008600009960E94DD00F8016481CE010A960E947B | ||
136 | +:10087000DD00F8016581CE010B96DF91CF911F91CC | ||
137 | +:100880000F910C94DD000F931F93CF93DF938B0197 | ||
138 | +:10089000C82FD0E02496DC2FCC27CE010C960E94E6 | ||
139 | +:1008A000FB00F8018083CE010D960E94FB00F80149 | ||
140 | +:1008B0008183CE010E960E94FB00F8018283CE0157 | ||
141 | +:1008C0000F960E94FB00F8018383DF91CF911F9167 | ||
142 | +:1008D0000F9108950F931F93CF93DF938B01C82F30 | ||
143 | +:1008E000D0E02496DC2FCC27FB016081CE010C9652 | ||
144 | +:1008F0000E94DD00F8016181CE010D960E94DD00AD | ||
145 | +:10090000F8016281CE010E960E94DD00F80163813C | ||
146 | +:10091000CE010F96DF91CF911F910F910C94DD00C6 | ||
147 | +:100920000F931F93CF93DF938B01C82FD0E02496B2 | ||
148 | +:10093000DC2FCC27CE0140960E94FB00F80180837B | ||
149 | +:10094000CE0141960E94FB00F8018183DF91CF9197 | ||
150 | +:100950001F910F9108950F931F93CF93DF938B01F6 | ||
151 | +:10096000C82FD0E02496DC2FCC27FB016081CE017C | ||
152 | +:1009700040960E94DD00F8016181CE014196DF9131 | ||
153 | +:10098000CF911F910F910C94DD001F93CF93DF93B4 | ||
154 | +:10099000162F672FC82FD0E02496DC2FCC27CE014E | ||
155 | +:1009A00042960E94DD00612FCE014396DF91CF91E8 | ||
156 | +:1009B0001F910C94DD0090E0982F88278A5E9B4F52 | ||
157 | +:1009C0000C94DD0090E0982F88278C5E9B4F0C9450 | ||
158 | +:1009D000DD0090E0982F88278E5F9B4F0C94FB00E2 | ||
159 | +:1009E00090E0982F88278D5F9B4F0C94FB00CF924F | ||
160 | +:1009F000DF92EF92FF920F931F93CF93DF93C82F55 | ||
161 | +:100A0000D0E02496DC2FCC277E0180E2E80EF11C9A | ||
162 | +:100A1000A19600E010E0C7010E94FB00C82ED12C77 | ||
163 | +:100A2000DC2CCC24CE010E94FB00C80ED11CC114CA | ||
164 | +:100A3000D10461F0C7010E94FB00082F10E0102FC5 | ||
165 | +:100A40000027CE010E94FB00080F111D0C151D058B | ||
166 | +:100A500011F7C801DF91CF911F910F91FF90EF9097 | ||
167 | +:100A6000DF90CF900895CF92DF92EF92FF920F9395 | ||
168 | +:100A70001F93CF93DF93C82FD0E02496DC2FCC2791 | ||
169 | +:100A80007E0186E2E80EF11CA79600E010E0C701A7 | ||
170 | +:100A90000E94FB00C82ED12CDC2CCC24CE010E945D | ||
171 | +:100AA000FB00C80ED11CC114D10461F0C7010E9423 | ||
172 | +:100AB000FB00082F10E0102F0027CE010E94FB0042 | ||
173 | +:100AC000080F111D0C151D0511F7C801DF91CF91FD | ||
174 | +:100AD0001F910F91FF90EF90DF90CF900895CF92EC | ||
175 | +:100AE000DF92EF92FF920F931F93CF93DF93E82F44 | ||
176 | +:100AF000F0E0EE0FFF1FDF01AC52BC4F8D919C91D7 | ||
177 | +:100B0000DA01A823B923EF01CC54DC4FE880F98047 | ||
178 | +:100B1000CD018E0D9F1DEC53FC4FC081D181AD01E5 | ||
179 | +:100B2000420F531FC417D50778F489016B01CA1B04 | ||
180 | +:100B3000DB0BAE010E941901A8014C1B5D0BB60135 | ||
181 | +:100B40006C0F7D1FC70101C0A901DF91CF911F91DB | ||
182 | +:100B50000F91FF90EF90DF90CF900C9419018F923E | ||
183 | +:100B60009F92BF92CF92DF92EF92FF920F931F93CB | ||
184 | +:100B7000CF93DF9300D0CDB7DEB7B82E7A0190E0E7 | ||
185 | +:100B80000496982E8824640184E2C80ED11CC60104 | ||
186 | +:100B900069837A830E94FB00082F10E0102F002742 | ||
187 | +:100BA00085E2880E911CC4010E94FB00080F111DF4 | ||
188 | +:100BB0009701A80169817A818B2D0E946F050E0D26 | ||
189 | +:100BC0001F1D612FC6010E94DD00602FC4010F9020 | ||
190 | +:100BD0000F90DF91CF911F910F91FF90EF90DF90D9 | ||
191 | +:100BE000CF90BF909F908F900C94DD00AF92BF92FA | ||
192 | :100BF000CF92DF92EF92FF920F931F93CF93DF93E9 | 192 | :100BF000CF92DF92EF92FF920F931F93CF93DF93E9 |
193 | -:100C0000982E6B017A01082F10E00C5F1F4F102FF8 | ||
194 | -:100C10000027580188E2A80EB11CC5010E94B3004C | ||
195 | -:100C2000C82FD0E0DC2FCC27075D1F4FC8010E94E2 | ||
196 | -:100C3000B300C80FD11DDF93CF938DE791E09F9351 | ||
197 | -:100C40008F930E94E20C9701A601BE01892D0E949C | ||
198 | -:100C5000AE05CE0DDF1D6D2FC5010E9495000F90D2 | ||
199 | -:100C60000F900F900F906C2FC801DF91CF911F91C3 | ||
200 | -:100C70000F91FF90EF90DF90CF90BF90AF909F903B | ||
201 | -:100C80000C9495000F931F93CF93DF93C82F85E9A2 | ||
202 | -:100C900091E00E94F80CD0E02496DC2FCC278E0146 | ||
203 | -:100CA0000F5F1F4F60E1C8010E949500C8010E94BC | ||
204 | -:100CB000B3008111FBCF6FEFCE010296DF91CF9190 | ||
205 | -:100CC0001F910F910C949500CF92DF92EF92FF92BB | ||
206 | -:100CD0000F931F93CF93DF93C82FC62E8A01D22E76 | ||
207 | -:100CE0008EE991E00E94F80C8FEF8C0DEC2EF12C28 | ||
208 | -:100CF0008530D0F58C2F0E944206E7012496DC2F28 | ||
209 | -:100D0000CC276C2D6D29CE010E949500CE01049652 | ||
210 | -:100D10009E012B5F3F4F69010115110529F0612FDD | ||
211 | -:100D20000E949500602F0FC020919C0330919D037D | ||
212 | -:100D30002F5F3F4F30939D0320939C03632F0E94AE | ||
213 | -:100D4000950060919C03C6010E9495008E010F5F83 | ||
214 | -:100D50001F4F61E0C8010E949500C8010E94B300C6 | ||
215 | -:100D60008111FBCF11E001C010E0E7012496DC2FD8 | ||
216 | -:100D7000CC27CE010E94B300082FCE0103960E941B | ||
217 | -:100D8000B3001F920F931F928F9388EA91E09F9375 | ||
218 | -:100D90008F930E94E20C0F900F900F900F900F9086 | ||
219 | -:100DA0000F90812FDF91CF911F910F91FF90EF90C6 | ||
220 | -:100DB000DF90CF9008950F931F93CF93DF93C82FA9 | ||
221 | -:100DC00089EC91E00E94F80CD0E02496DC2FCC272F | ||
222 | -:100DD0008E010D5F1F4FC8010E94B3008331D9F40B | ||
223 | -:100DE000219662E0CE010E949500CE010E94B300E0 | ||
224 | -:100DF0008111FBCFC8010E94B3001F928F9383ED36 | ||
225 | -:100E000091E09F938F930E94E20C0F900F900F90B0 | ||
226 | -:100E10000F9081E005C081EE91E00E94F80C80E027 | ||
227 | -:100E2000DF91CF911F910F910895CF93DF93C82F3A | ||
228 | -:100E300088EF91E00E94F80CD0E0DC2FCC27CD5F4A | ||
229 | -:100E4000DB4FCE010E94B3008431B1F4CE010E9489 | ||
230 | -:100E5000B3008731D9F7CE010E94B3001F928F9360 | ||
231 | -:100E600083ED91E09F938F930E94E20C0F900F907F | ||
232 | -:100E70000F900F9081E005C082E092E00E94F80C94 | ||
233 | -:100E800080E0DF91CF910895EF92FF920F931F932F | ||
234 | -:100E9000CF93DF93C82F8B017A018AE192E00E9401 | ||
235 | -:100EA000F80CF80160816F3F51F481818F3F99F414 | ||
236 | -:100EB00082818F3F81F483818F3F69F40FC061117C | ||
237 | -:100EC0000AC0F8018181811106C08281811103C0AD | ||
238 | -:100ED0008381882319F0E114F10431F481EE91E06B | ||
239 | -:100EE0000E94F80C80E02FC0D0E02496DC2FCC27A5 | ||
240 | -:100EF000CE010C960E949500F8016181CE010D96FD | ||
241 | -:100F00000E949500F8016281CE010E960E94950024 | ||
242 | -:100F1000F8016381CE010F960E9495006F2DCE01DE | ||
243 | -:100F200040960E9495006E2DCE0141960E9495003C | ||
244 | -:100F3000219664E0CE010E949500CE010E94B3008C | ||
245 | -:100F40008111FBCF81E0DF91CF911F910F91FF9035 | ||
246 | -:100F5000EF900895CF93DF93C82F87E192E00E942E | ||
247 | -:100F6000F80CD0E0DC2FCC27CF5FDB4F68E0CE0160 | ||
248 | -:100F70000E949500CE010E94B3008111FBCFDF914A | ||
249 | -:100F8000CF9108958F929F92AF92BF92CF92DF92AE | ||
250 | -:100F9000EF92FF921F93CF93DF93182F4B017A01AB | ||
251 | -:100FA00082E493E00E94F80C812F0E9468008E1565 | ||
252 | -:100FB0009F0520F4812F0E9468007C01C12FD0E0A2 | ||
253 | -:100FC0002496DC2FCC275E0183E0A80EB11C812F74 | ||
254 | -:100FD0000E94AF046C01C5010E94B3008731A9F0E3 | ||
255 | -:100FE0008C3199F0DF92CF921F921F9385E292E0AD | ||
256 | -:100FF0009F938F930E94E20C0F900F900F900F9091 | ||
257 | -:101000000F900F90E12CF12C03C0CE14DF04F8F206 | ||
258 | -:10101000A701B401812F0E9467056E018FEFC81AE6 | ||
259 | -:10102000D80A60E2C6010E949500C6010E94B30082 | ||
260 | -:101030008111FBCF2296CE010E94B30084FD0FC028 | ||
261 | -:10104000C5010E94B3008111F6CF8DE492E00E94A9 | ||
262 | -:10105000F80C812F0E94420680E090E005C060E11C | ||
263 | -:10106000CE010E949500C701DF91CF911F91FF90A3 | ||
264 | -:10107000EF90DF90CF90BF90AF909F908F900895AA | ||
265 | -:10108000BF92CF92DF92EF92FF920F931F93CF9375 | ||
266 | -:10109000DF93B82E6B018A01C82FD0E02496DC2F95 | ||
267 | -:1010A000CC277E0183E0E80EF11CC7010E94B3004B | ||
268 | -:1010B000873191F0C7010E94B3001F928F938BE597 | ||
269 | -:1010C00092E09F938F930E94E20C0F900F900F90ED | ||
270 | -:1010D0000F908FEF9FEF26C080E00E94EB047C0111 | ||
271 | -:1010E00018161906ECF48EE692E00E94F80CE01651 | ||
272 | -:1010F000F10620F00115110589F001C08701A80152 | ||
273 | -:10110000B6018B2D0E94F505219660E4CE010E9468 | ||
274 | -:101110009500CE010E94B3008111FBCFC80102C02F | ||
275 | -:1011200080E090E0DF91CF911F910F91FF90EF90C1 | ||
276 | -:10113000DF90CF90BF9008958F929F92BF92CF92F1 | ||
277 | -:10114000DF92EF92FF920F931F93CF93DF93B82E0E | ||
278 | -:101150004B01EA01790186E792E00E94F80C8B2DA1 | ||
279 | -:101160000E9468008C179D0728F48B2D0E94680050 | ||
280 | -:101170006C0101C06E01F7016081611109C08181BC | ||
281 | -:10118000811106C08281811103C08381882331F0DF | ||
282 | -:101190000115110519F0C114D10429F5DF93CF937E | ||
283 | -:1011A0001F930F93F70183811F928F9382811F9268 | ||
284 | -:1011B0008F9381811F928F931F926F931F92BF9283 | ||
285 | -:1011C00080E892E09F938F930E94E20C81EE91E081 | ||
286 | -:1011D0000E94F80C8DB79EB740960FB6F8949EBF4C | ||
287 | -:1011E0000FBE8DBF49C0CB2DD0E02496DC2FCC277D | ||
288 | -:1011F000CE010C960E949500F7016181CE010D96FB | ||
289 | -:101200000E949500F7016281CE010E960E94950022 | ||
290 | -:10121000F7016381CE010F960E949500612FCE01E8 | ||
291 | -:1012200040960E949500602FCE0141960E94950045 | ||
292 | -:10123000A601B4018B2D0E9467058E010F5F1F4F21 | ||
293 | -:1012400060E2C8010E949500C8010E94B3008111AC | ||
294 | -:10125000FBCF2296CE010E94B30084FD10C0CE01C8 | ||
295 | -:101260000E94B30083FFF6CF8CE593E00E94F80C58 | ||
296 | -:1012700068E1CE010E94950080E090E005C060E149 | ||
297 | -:10128000CE010E949500C601DF91CF911F910F9171 | ||
298 | -:10129000FF90EF90DF90CF90BF909F908F90089538 | ||
299 | -:1012A0002F923F924F925F926F927F928F929F9276 | ||
300 | -:1012B000AF92BF92CF92DF92EF92FF920F931F9364 | ||
301 | -:1012C000CF93DF93CDB7DEB72A970FB6F894DEBF82 | ||
302 | -:1012D0000FBECDBF782E4B016A0179011A870987AD | ||
303 | -:1012E0000E94EB04892B09F42BC188EA92E00E944A | ||
304 | -:1012F000F80C872D0E94EB04682E392ECD2809F4B6 | ||
305 | -:1013000017C1472C512C84E0480E511C542C442406 | ||
306 | -:10131000520198E2A90EB11CC5010E94B300082F2A | ||
307 | -:1013200010E0102F00276201E9E2CE0ED11CC601A9 | ||
308 | -:101330000E94B300080F111D3F926F921F930F93ED | ||
309 | -:1013400084EB92E09F938F930E94E20CC2010E9473 | ||
310 | -:10135000B3000F900F900F900F900F900F90877029 | ||
311 | -:10136000833009F464C0843009F4ABC0823009F0E2 | ||
312 | -:10137000D0C028E030E0AE014F5F5F4FB801872D4D | ||
313 | -:101380000E94AE051801F8E02F0E311C8981F7018B | ||
314 | -:1013900080838A8181838B8182838C8183838D8109 | ||
315 | -:1013A00090E0982F88272E81820F911DE985FA857C | ||
316 | -:1013B000918380830F8110E0102F00278885080F0C | ||
317 | -:1013C000111D1F930F9384ED92E09F938F930E94C2 | ||
318 | -:1013D000E20CE985FA8581818F9380818F938AEE73 | ||
319 | -:1013E00092E09F938F930E94E20CF70183811F92FA | ||
320 | -:1013F0008F9382811F928F9381811F928F9380811F | ||
321 | -:101400001F928F938DEF92E09F938F930E94E20C37 | ||
322 | -:101410009801A401B101872D0E94AE057101E00E73 | ||
323 | -:10142000F11E6F2DC5010E9495006E2D41C026E072 | ||
324 | -:1014300030E0AE014F5F5F4FB801872D0E94AE05CF | ||
325 | -:10144000180196E0290E311C8981F70180838A8179 | ||
326 | -:1014500081838B8182838C8183830D8110E0102FA7 | ||
327 | -:1014600000278E81080F111D87E193E00E94F80C80 | ||
328 | -:10147000F70183811F928F9382811F928F938181C5 | ||
329 | -:101480001F928F9380811F928F938DEF92E09F9395 | ||
330 | -:101490008F930E94E20C9801A401B101872D0E9454 | ||
331 | -:1014A000AE05200E311E632DC5010E949500622DF0 | ||
332 | -:1014B000C6010E9495000FB6F894DEBF0FBECDBFE7 | ||
333 | -:1014C0002AC022E030E0AE014F5F5F4FB801872DA8 | ||
334 | -:1014D0000E94AE05780192E0E90EF11C098110E04E | ||
335 | -:1014E000902F88270A8110E002501109080F191F58 | ||
336 | -:1014F0009801A401B701872D0E94AE05E00EF11EF0 | ||
337 | -:101500006F2DC5010E9495006E2DC6010E949500A9 | ||
338 | -:1015100002C000E010E0EFEF4E1A5E0A60E4C20184 | ||
339 | -:101520000E949500C2010E94B3008111FBCF02C04E | ||
340 | -:1015300000E010E08BE293E00E94F80CC80102C0CA | ||
341 | -:1015400080E090E02A960FB6F894DEBF0FBECDBFC4 | ||
342 | -:10155000DF91CF911F910F91FF90EF90DF90CF908F | ||
343 | -:10156000BF90AF909F908F907F906F905F904F90C3 | ||
344 | -:101570003F902F900895CF92DF92FF920F931F9389 | ||
345 | -:10158000CF93DF93F82E6B01EA018EE393E00E9484 | ||
346 | -:10159000F80C8F2D0E9468008C179D0728F48F2D62 | ||
347 | -:1015A0000E9468008C0101C08E010115110589F4AB | ||
348 | -:1015B0001F921F92DF93CF938AE493E09F938F93C0 | ||
349 | -:1015C0000E94E20C0F900F900F900F900F900F90D1 | ||
350 | -:1015D00030C0A801B6018F2D0E946705CF2DD0E045 | ||
351 | -:1015E0002496DC2FCC276E018FEFC81AD80A60E250 | ||
352 | -:1015F000C6010E949500C6010E94B3008111FBCF75 | ||
353 | -:101600006E0182E0C80ED11C2396C6010E94B30071 | ||
354 | -:1016100084FD12C0CE010E94B300C6010E94B30037 | ||
355 | -:1016200083FFF3CF88E593E00E94F80C8F2D0E9492 | ||
356 | -:10163000420680E090E005C060E1C6010E9495008E | ||
357 | -:10164000C801DF91CF911F910F91FF90DF90CF9054 | ||
358 | -:101650000895CF92DF92EF92FF920F931F93CF9353 | ||
359 | -:10166000DF936C017B018A01E9010E947E0265E53E | ||
360 | -:1016700085E50E942201C6010E94CD02C7010E9499 | ||
361 | -:10168000F002C8010E948102CE01DF91CF911F912B | ||
362 | -:101690000F91FF90EF90DF90CF900C94B402809365 | ||
363 | -:1016A000BB0084E88093BC008091BC0087FFFCCF26 | ||
364 | -:1016B00008951092B9008CE08093B80084E0809384 | ||
365 | -:1016C000BC000895CF9394EA9093BC009091BC0025 | ||
366 | -:1016D00097FFFCCF9091B900987F983011F080E08F | ||
367 | -:1016E00015C0C62F880F0E944F0B8091B900887FCC | ||
368 | -:1016F0008831A9F78C2F0E944F0B8091B900887F09 | ||
369 | -:10170000883269F784E98093BC0081E0CF91089525 | ||
370 | -:10171000CF93DF9394EA9093BC009091BC0097FF25 | ||
371 | -:10172000FCCF9091B900987F983011F080E01EC0F6 | ||
372 | -:10173000C42FD62F880F0E944F0B8091B900887F4D | ||
373 | -:101740008831A1F78D2F0E944F0B8091B900887FBF | ||
374 | -:10175000883261F78C2F0E944F0B8091B900887FEF | ||
375 | -:10176000883221F784E98093BC0081E0DF91CF913A | ||
376 | -:101770000895092E000CAA0BBB0B9C01AD0184E05F | ||
377 | -:10178000220F331F441F551F8A95D1F760E074E282 | ||
378 | -:1017900084EF90E00E94C00C215031093093C500C5 | ||
379 | -:1017A0002093C40088E18093C10086E08093C2004A | ||
380 | -:1017B000E0ECF0E080818D7F808308959091C000FF | ||
381 | -:1017C00095FFFCCF8093C6000895CF93C82F8A3031 | ||
382 | -:1017D00019F48DE00E94DE0B8C2F0E94DE0B80E05E | ||
383 | -:1017E00090E0CF9108958091C00087FFFCCF809159 | ||
384 | -:1017F000C600089580E895E20E94B90B80E091E070 | ||
385 | -:101800009093A1038093A00308958F929F92AF922B | ||
386 | -:10181000BF92CF92DF92EF92FF920F931F93CF93DD | ||
387 | -:10182000DF93CDB7DEB7EA970FB6F894DEBF0FBEF1 | ||
388 | -:10183000CDBF86E0EEE0F1E0DE015F9601900D9213 | ||
389 | -:101840008A95E1F72CEA29AB9AE19AAB81E98BAB57 | ||
390 | -:101850003DEC3CAB2DA79EA78FA78EEF88AB8FEFFB | ||
391 | -:1018600089A78AA78BA71CA60E94FA0B9E01275D59 | ||
392 | -:101870003F4FAE01435D5F4FBE016F5C7F4FCE01B6 | ||
393 | -:101880004F960E94290B20E044EE57E062E080E092 | ||
394 | -:101890000E946406882309F45EC020E044EE57E00D | ||
395 | -:1018A00061E081E00E946406882309F454C04E017F | ||
396 | -:1018B00085E3880E911C84E1A82E81E0B82E6E018C | ||
397 | -:1018C00091E1C90ED11C9EE1E92E91E0F92E8E0125 | ||
398 | -:1018D000075C1F4F9E012B5D3F4F40E150E0BE0172 | ||
399 | -:1018E0006F5F7F4F80E00E945009419781F78981A7 | ||
400 | -:1018F0008DAB8A818EAB8B818FAB18AE8C81898B3F | ||
401 | -:101900008D818A8B8E818B8B8F818C8B88858D8B43 | ||
402 | -:1019100089858E8B8A858F8B8B85888F8C85898F27 | ||
403 | -:101920008D858A8F8E858B8F8F858C8F88898D8F03 | ||
404 | -:101930001E8E9F928F92BF92AF920E94E20CDF9216 | ||
405 | -:10194000CF92FF92EF920E94E20C0FB6F894DEBFA6 | ||
406 | -:101950000FBECDBFBCCF8FEF9FEFEA960FB6F894C6 | ||
407 | -:10196000DEBF0FBECDBFDF91CF911F910F91FF90D2 | ||
408 | -:10197000EF90DF90CF90BF90AF909F908F900895A1 | ||
409 | -:10198000A1E21A2EAA1BBB1BFD010DC0AA1FBB1F83 | ||
410 | -:10199000EE1FFF1FA217B307E407F50720F0A21BF5 | ||
411 | -:1019A000B30BE40BF50B661F771F881F991F1A9462 | ||
412 | -:1019B00069F760957095809590959B01AC01BD018C | ||
413 | -:1019C000CF010895A0E0B0E0E8EEFCE00C94B60F83 | ||
414 | -:1019D000AE014B5F5F4FFA0161917191AF01809150 | ||
415 | -:1019E000A0039091A1030E94280DE2E00C94D20F75 | ||
416 | -:1019F0000F931F93CF93DF93E091A003F091A10386 | ||
417 | -:101A0000238121FF1BC08C01D0E0C0E0F80181914F | ||
418 | -:101A10008F016091A0037091A103DB011896ED91F5 | ||
419 | -:101A2000FC911997882331F00995892B79F3DFEF21 | ||
420 | -:101A3000CFEFECCF8AE00995892B19F08FEF9FEF5C | ||
421 | -:101A400002C08D2F9C2FDF91CF911F910F91089590 | ||
422 | -:101A5000ACE0B0E0EEE2FDE00C94A60F7C016B017F | ||
423 | -:101A60008A01FC0117821682838181FFBDC1CE01EC | ||
424 | -:101A700001964C01F7019381F60193FD859193FF47 | ||
425 | -:101A800081916F01882309F4ABC1853239F493FD4C | ||
426 | -:101A9000859193FF81916F01853229F4B70190E020 | ||
427 | -:101AA0000E94100FE7CF512C312C20E02032A0F4FF | ||
428 | -:101AB0008B3269F030F4803259F0833269F420615E | ||
429 | -:101AC0002CC08D3239F0803339F4216026C0226079 | ||
430 | -:101AD000246023C0286021C027FD27C030ED380FC7 | ||
431 | -:101AE0003A3078F426FF06C0FAE05F9E300D1124EC | ||
432 | -:101AF000532E13C08AE0389E300D1124332E2062FD | ||
433 | -:101B00000CC08E3221F426FD6BC1206406C08C36D9 | ||
434 | -:101B100011F4206802C0883641F4F60193FD8591E6 | ||
435 | -:101B200093FF81916F018111C1CF982F9F7D9554B3 | ||
436 | -:101B3000933028F40C5F1F4FFFE3F9830DC0833609 | ||
437 | -:101B400031F0833771F0833509F05BC022C0F801B2 | ||
438 | -:101B5000808189830E5F1F4F44244394512C54018C | ||
439 | -:101B600015C03801F2E06F0E711CF801A080B18041 | ||
440 | -:101B700026FF03C0652D70E002C06FEF7FEFC50147 | ||
441 | -:101B80002C870E94050F2C0183012C852F77222E94 | ||
442 | -:101B900017C03801F2E06F0E711CF801A080B1800F | ||
443 | -:101BA00026FF03C0652D70E002C06FEF7FEFC50117 | ||
444 | -:101BB0002C870E94FA0E2C012C852068222E83018E | ||
445 | -:101BC00023FC1BC0832D90E048165906B0F4B701E2 | ||
446 | -:101BD00080E290E00E94100F3A94F4CFF50127FCC8 | ||
447 | -:101BE000859127FE81915F01B70190E00E94100F5F | ||
448 | -:101BF00031103A94F1E04F1A51084114510471F731 | ||
449 | -:101C0000E5C0843611F0893639F5F80127FF07C0A1 | ||
450 | -:101C100060817181828193810C5F1F4F08C0608158 | ||
451 | -:101C20007181072E000C880B990B0E5F1F4F2F76CA | ||
452 | -:101C3000722E97FF09C090958095709561957F4FA2 | ||
453 | -:101C40008F4F9F4F2068722E2AE030E0A4010E943F | ||
454 | -:101C5000480FA82EA81844C0853729F42F7EB22E2D | ||
455 | -:101C60002AE030E025C0F22FF97FBF2E8F36C1F079 | ||
456 | -:101C700018F4883579F0B4C0803719F0883721F02E | ||
457 | -:101C8000AFC02F2F2061B22EB4FE0DC08B2D84600B | ||
458 | -:101C9000B82E09C024FF0AC09F2F9660B92E06C037 | ||
459 | -:101CA00028E030E005C020E130E002C020E132E071 | ||
460 | -:101CB000F801B7FE07C060817181828193810C5F5A | ||
461 | -:101CC0001F4F06C06081718180E090E00E5F1F4F62 | ||
462 | -:101CD000A4010E94480FA82EA818FB2DFF777F2E85 | ||
463 | -:101CE00076FE0BC0372D3E7FA51450F474FE0AC05B | ||
464 | -:101CF00072FC08C0372D3E7E05C0BA2C372D03C0BC | ||
465 | -:101D0000BA2C01C0B52C34FF0DC0FE01EA0DF11D47 | ||
466 | -:101D10008081803311F4397E09C032FF06C0B3944C | ||
467 | -:101D2000B39404C0832F867809F0B39433FD13C0B5 | ||
468 | -:101D300030FF06C05A2CB31418F4530C5B18B32CA4 | ||
469 | -:101D4000B31468F4B70180E290E03C870E94100F62 | ||
470 | -:101D5000B3943C85F5CFB31410F43B1801C0312C7B | ||
471 | -:101D600034FF12C0B70180E390E03C870E94100F5F | ||
472 | -:101D70003C8532FF17C031FD03C088E790E002C008 | ||
473 | -:101D800088E590E0B7010CC0832F867859F031FFC9 | ||
474 | -:101D900002C08BE201C080E237FD8DE2B70190E026 | ||
475 | -:101DA0000E94100FA51438F4B70180E390E00E9460 | ||
476 | -:101DB000100F5A94F7CFAA94F401EA0DF11D808117 | ||
477 | -:101DC000B70190E00E94100FA110F5CF332009F465 | ||
478 | -:101DD00051CEB70180E290E00E94100F3A94F6CF06 | ||
479 | -:101DE000F7018681978102C08FEF9FEF2C96E2E189 | ||
480 | -:101DF0000C94C20FFC010590615070400110D8F79F | ||
481 | -:101E0000809590958E0F9F1F0895FC016150704042 | ||
482 | -:101E100001900110D8F7809590958E0F9F1F08951F | ||
483 | -:101E20000F931F93CF93DF93FB01238121FD03C009 | ||
484 | -:101E30008FEF9FEF28C022FF16C046815781248173 | ||
485 | -:101E400035814217530744F4A081B1819D012F5F72 | ||
486 | -:101E50003F4F318320838C93268137812F5F3F4F03 | ||
487 | -:101E60003783268310C0EB01092F182F0084F185DA | ||
488 | -:101E7000E02D0995892BE1F68E819F8101969F8344 | ||
489 | -:101E80008E83812F902FDF91CF911F910F91089515 | ||
490 | -:101E9000FA01AA27283051F1203181F1E8946F939B | ||
491 | -:101EA0006E7F6E5F7F4F8F4F9F4FAF4FB1E03ED041 | ||
492 | -:101EB000B4E03CD0670F781F891F9A1FA11D680FDF | ||
493 | -:101EC000791F8A1F911DA11D6A0F711D811D911D12 | ||
494 | -:101ED000A11D20D009F468943F912AE0269F112487 | ||
495 | -:101EE0003019305D3193DEF6CF010895462F4770EB | ||
496 | -:101EF000405D4193B3E00FD0C9F7F6CF462F4F7046 | ||
497 | -:101F0000405D4A3318F0495D31FD4052419302D0A3 | ||
498 | -:101F1000A9F7EACFB4E0A695979587957795679549 | ||
499 | -:101F2000BA95C9F700976105710508959B01AC0149 | ||
500 | -:101F30000A2E06945795479537952795BA95C9F770 | ||
501 | -:101F4000620F731F841F951FA01D08952F923F924B | ||
502 | -:101F50004F925F926F927F928F929F92AF92BF92B9 | ||
503 | -:101F6000CF92DF92EF92FF920F931F93CF93DF9365 | ||
504 | -:101F7000CDB7DEB7CA1BDB0B0FB6F894DEBF0FBEC2 | ||
505 | -:101F8000CDBF09942A88398848885F846E847D840F | ||
506 | -:101F90008C849B84AA84B984C884DF80EE80FD8011 | ||
507 | -:101FA0000C811B81AA81B981CE0FD11D0FB6F89487 | ||
508 | -:0E1FB000DEBF0FBECDBFED010895F894FFCF48 | ||
509 | -:101FBE000000000200000000E50B00000000A0BDC4 | ||
510 | -:101FCE00CDDDEDFD436F6D203A2025730A0050657F | ||
511 | -:101FDE0072203A2025730A00737973696E6974282A | ||
512 | -:101FEE00290D004368616E6E656C203A2053454E94 | ||
513 | -:101FFE0044204D454D2053495A45203A20524543E1 | ||
514 | -:10200E0056204D454D2053495A450D002564203A22 | ||
515 | -:10201E0020252E3478203A20252E3478203A20257B | ||
516 | -:10202E002E3478203A20252E34780D0A004953524A | ||
517 | -:10203E005F52583A2072645F707472203A20252ED7 | ||
518 | -:10204E0034780D0A00636C6F736528290D00736F69 | ||
519 | -:10205E00636B657428290D00536E5F5352203D202B | ||
520 | -:10206E00252E3278202C2050726F746F636F6C2087 | ||
521 | -:10207E003D20252E32780D0A006C697374656E282A | ||
522 | -:10208E00290D00737461747573203D2025780D0A37 | ||
523 | -:10209E00004661696C5B696E76616C69642069707B | ||
524 | -:1020AE002C706F72745D0D00616363657074282906 | ||
525 | -:1020BE000D004661696C5B6E6F74206C697374659C | ||
526 | -:1020CE006E696E675D0D00646973636F6E6E656336 | ||
527 | -:1020DE007428290D00736F636B6574202564206668 | ||
528 | -:1020EE0072656573697A652825642920656D70743B | ||
529 | -:1020FE0079206F72206572726F720D0A00534F4312 | ||
530 | -:10210E004B5F434C4F5345442E0D00426164207388 | ||
531 | -:10211E007461747573203D20253032780A00726523 | ||
532 | -:10212E00637628290D0073656E64746F28290D007F | ||
533 | -:10213E002564204661696C5B252E32782E252E3261 | ||
534 | -:10214E00782E252E32782E252E32782C20252E64B0 | ||
535 | -:10215E002C2025645D0D0A007265637666726F6DC4 | ||
536 | -:10216E0028290D004953525F52583A2072645F700D | ||
537 | -:10217E007472203A20252E34782073697A653D25B5 | ||
538 | -:10218E00640D0A00554450206D736720232564208A | ||
539 | -:10219E00617272697665640D0A00736F757263659C | ||
540 | -:1021AE0020506F7274203A2025750D0A00736F75DA | ||
541 | -:1021BE00726365204950203A2025642E25642E2511 | ||
542 | -:1021CE00642E25640D0A00495020524157206D732C | ||
543 | -:1021DE006720617272697665640D0072656376665A | ||
544 | -:1021EE00726F6D282920656E64202E2E0D00696792 | ||
545 | -:1021FE006D7073656E6428290D0025642046616933 | ||
546 | -:10220E006C5B25645D0D0A0069676D7073656E64A5 | ||
547 | -:08221E00206661696C2E0D00C1 | 193 | +:100C0000DA01A901E82FF0E0EE0FFF1FEF01C45356 |
194 | +:100C1000DC4F888199816B01C822D922EF01C4552C | ||
195 | +:100C2000DC4FE880F980C6018E0D9F1DE454FC4F17 | ||
196 | +:100C3000C081D1819601240F351FC217D30780F4DC | ||
197 | +:100C40008A015D01CC19DD09AE01BD010E9441019F | ||
198 | +:100C5000A8014C1B5D0BB5016C0F7D1FC70101C0C6 | ||
199 | +:100C6000BD01DF91CF911F910F91FF90EF90DF9029 | ||
200 | +:100C7000CF90BF90AF900C9441019F92AF92BF92E2 | ||
201 | +:100C8000CF92DF92EF92FF920F931F93CF93DF9358 | ||
202 | +:100C9000982E6B017A01082F10E00C5F1F4F102F68 | ||
203 | +:100CA0000027580188E2A80EB11CC5010E94FB0074 | ||
204 | +:100CB000C82FD0E0DC2FCC27075D1F4FC8010E9452 | ||
205 | +:100CC000FB00C80FD11DDF93CF938FEB91E09F9373 | ||
206 | +:100CD0008F930E94F50C9701A601BE01892D0E94F9 | ||
207 | +:100CE000F605CE0DDF1D6D2FC5010E94DD000F90B2 | ||
208 | +:100CF0000F900F900F906C2FC801DF91CF911F9133 | ||
209 | +:100D00000F91FF90EF90DF90CF90BF90AF909F90AA | ||
210 | +:100D10000C94DD000F931F93CF93DF93C82F87EDC3 | ||
211 | +:100D200091E00E940B0DD0E02496DC2FCC278E01A1 | ||
212 | +:100D30000F5F1F4F60E1C8010E94DD00C8010E94E3 | ||
213 | +:100D4000FB008111FBCF6FEFCE010296DF91CF91B7 | ||
214 | +:100D50001F910F910C94DD00CF92DF92EF92FF92E2 | ||
215 | +:100D60000F931F93CF93DF93C82FC62E8A01D22EE5 | ||
216 | +:100D700080EE91E00E940B0D8FEF8C0DEC2EF12C8C | ||
217 | +:100D80008530D0F58C2F0E948A06E7012496DC2F4F | ||
218 | +:100D9000CC276C2D6D29CE010E94DD00CE0104967A | ||
219 | +:100DA0009E012B5F3F4F69010115110529F0612F4D | ||
220 | +:100DB0000E94DD00602F0FC02091E0033091E1031D | ||
221 | +:100DC0002F5F3F4F3093E1032093E003632F0E9496 | ||
222 | +:100DD000DD006091E003C6010E94DD008E010F5F1F | ||
223 | +:100DE0001F4F61E0C8010E94DD00C8010E94FB00A6 | ||
224 | +:100DF0008111FBCF11E001C010E0E7012496DC2F48 | ||
225 | +:100E0000CC27CE010E94FB00082FCE0103960E9442 | ||
226 | +:100E1000FB001F920F931F928F938AEE91E09F9396 | ||
227 | +:100E20008F930E94F50C0F900F900F900F900F90E2 | ||
228 | +:100E30000F90812FDF91CF911F910F91FF90EF9035 | ||
229 | +:100E4000DF90CF9008950F931F93CF93DF93C82F18 | ||
230 | +:100E50008BE092E00E940B0DD0E02496DC2FCC2793 | ||
231 | +:100E60008E010D5F1F4FC8010E94FB008331D9F432 | ||
232 | +:100E7000219662E0CE010E94DD00CE010E94FB00BF | ||
233 | +:100E80008111FBCFC8010E94FB001F928F9385E167 | ||
234 | +:100E900092E09F938F930E94F50C0F900F900F900C | ||
235 | +:100EA0000F9081E005C083E292E00E940B0D80E08C | ||
236 | +:100EB000DF91CF911F910F910895CF93DF93C82FAA | ||
237 | +:100EC0008AE392E00E940B0DD0E0DC2FCC27CD5FAF | ||
238 | +:100ED000DB4FCE010E94FB008431B1F4CE010E94B1 | ||
239 | +:100EE000FB008731D9F7CE010E94FB001F928F9340 | ||
240 | +:100EF00085E192E09F938F930E94F50C0F900F90E5 | ||
241 | +:100F00000F900F9081E005C084E492E00E940B0DE9 | ||
242 | +:100F100080E0DF91CF910895EF92FF920F931F939E | ||
243 | +:100F2000CF93DF93C82F8B017A018CE592E00E946A | ||
244 | +:100F30000B0DF80160816F3F51F481818F3F99F46F | ||
245 | +:100F400082818F3F81F483818F3F69F40FC06111EB | ||
246 | +:100F50000AC0F8018181811106C08281811103C01C | ||
247 | +:100F60008381882319F0E114F10431F483E292E0E3 | ||
248 | +:100F70000E940B0D80E02FC0D0E02496DC2FCC2700 | ||
249 | +:100F8000CE010C960E94DD00F8016181CE010D9624 | ||
250 | +:100F90000E94DD00F8016281CE010E960E94DD0004 | ||
251 | +:100FA000F8016381CE010F960E94DD006F2DCE0106 | ||
252 | +:100FB00040960E94DD006E2DCE0141960E94DD001C | ||
253 | +:100FC000219664E0CE010E94DD00CE010E94FB006C | ||
254 | +:100FD0008111FBCF81E0DF91CF911F910F91FF90A5 | ||
255 | +:100FE000EF900895CF93DF93C82F89E592E00E9498 | ||
256 | +:100FF0000B0DD0E0DC2FCC27CF5FDB4F68E0CE01BC | ||
257 | +:101000000E94DD00CE010E94FB008111FBCFDF9129 | ||
258 | +:10101000CF9108958F929F92AF92BF92CF92DF921D | ||
259 | +:10102000EF92FF921F93CF93DF93182F4B017A011A | ||
260 | +:1010300084E893E00E940B0D812F0E94B0008E1572 | ||
261 | +:101040009F0520F4812F0E94B0007C01C12FD0E0C9 | ||
262 | +:101050002496DC2FCC275E0183E0A80EB11C812FE3 | ||
263 | +:101060000E94F7046C01C5010E94FB008731A9F0C2 | ||
264 | +:101070008C3199F0DF92CF921F921F9387E692E016 | ||
265 | +:101080009F938F930E94F50C0F900F900F900F90ED | ||
266 | +:101090000F900F90E12CF12C03C0CE14DF04F8F276 | ||
267 | +:1010A000A701B401812F0E94AF056E018FEFC81A0E | ||
268 | +:1010B000D80A60E2C6010E94DD00C6010E94FB0062 | ||
269 | +:1010C0008111FBCF2296CE010E94FB0084FD0FC050 | ||
270 | +:1010D000C5010E94FB008111F6CF8FE892E00E94CB | ||
271 | +:1010E0000B0D812F0E948A0680E090E005C060E130 | ||
272 | +:1010F000CE010E94DD00C701DF91CF911F91FF90CB | ||
273 | +:10110000EF90DF90CF90BF90AF909F908F90089519 | ||
274 | +:10111000BF92CF92DF92EF92FF920F931F93CF93E4 | ||
275 | +:10112000DF93B82E6B018A01C82FD0E02496DC2F04 | ||
276 | +:10113000CC277E0183E0E80EF11CC7010E94FB0072 | ||
277 | +:10114000873191F0C7010E94FB001F928F938DE9B8 | ||
278 | +:1011500092E09F938F930E94F50C0F900F900F9049 | ||
279 | +:101160000F908FEF9FEF26C080E00E9433057C0137 | ||
280 | +:1011700018161906ECF480EB92E00E940B0DE016B5 | ||
281 | +:10118000F10620F00115110589F001C08701A801C1 | ||
282 | +:10119000B6018B2D0E943D06219660E4CE010E948F | ||
283 | +:1011A000DD00CE010E94FB008111FBCFC80102C00F | ||
284 | +:1011B00080E090E0DF91CF911F910F91FF90EF9031 | ||
285 | +:1011C000DF90CF90BF9008958F929F92BF92CF9261 | ||
286 | +:1011D000DF92EF92FF920F931F93CF93DF93B82E7E | ||
287 | +:1011E0004B01EA01790188EB92E00E940B0D8B2DF7 | ||
288 | +:1011F0000E94B0008C179D0728F48B2D0E94B00030 | ||
289 | +:101200006C0101C06E01F7016081611109C081812B | ||
290 | +:10121000811106C08281811103C08381882331F04E | ||
291 | +:101220000115110519F0C114D10429F5DF93CF93ED | ||
292 | +:101230001F930F93F70183811F928F9382811F92D7 | ||
293 | +:101240008F9381811F928F931F926F931F92BF92F2 | ||
294 | +:1012500082EC92E09F938F930E94F50C83E292E0E0 | ||
295 | +:101260000E940B0D8DB79EB740960FB6F8949EBFA7 | ||
296 | +:101270000FBE8DBF49C0CB2DD0E02496DC2FCC27EC | ||
297 | +:10128000CE010C960E94DD00F7016181CE010D9622 | ||
298 | +:101290000E94DD00F7016281CE010E960E94DD0002 | ||
299 | +:1012A000F7016381CE010F960E94DD00612FCE0110 | ||
300 | +:1012B00040960E94DD00602FCE0141960E94DD0025 | ||
301 | +:1012C000A601B4018B2D0E94AF058E010F5F1F4F49 | ||
302 | +:1012D00060E2C8010E94DD00C8010E94FB0081118C | ||
303 | +:1012E000FBCF2296CE010E94FB0084FD10C0CE01F0 | ||
304 | +:1012F0000E94FB0083FFF6CF8EE993E00E940B0D66 | ||
305 | +:1013000068E1CE010E94DD0080E090E005C060E170 | ||
306 | +:10131000CE010E94DD00C601DF91CF911F910F9198 | ||
307 | +:10132000FF90EF90DF90CF90BF909F908F900895A7 | ||
308 | +:101330002F923F924F925F926F927F928F929F92E5 | ||
309 | +:10134000AF92BF92CF92DF92EF92FF920F931F93D3 | ||
310 | +:10135000CF93DF93CDB7DEB72A970FB6F894DEBFF1 | ||
311 | +:101360000FBECDBF782E4B016A0179011A8709871C | ||
312 | +:101370000E943305892B09F42BC18AEE92E00E946A | ||
313 | +:101380000B0D872D0E943305682E392ECD2809F4C8 | ||
314 | +:1013900017C1472C512C84E0480E511C542C442476 | ||
315 | +:1013A000520198E2A90EB11CC5010E94FB00082F52 | ||
316 | +:1013B00010E0102F00276201E9E2CE0ED11CC60119 | ||
317 | +:1013C0000E94FB00080F111D3F926F921F930F9315 | ||
318 | +:1013D00086EF92E09F938F930E94F50CC2010E94CA | ||
319 | +:1013E000FB000F900F900F900F900F900F90877051 | ||
320 | +:1013F000833009F464C0843009F4ABC0823009F052 | ||
321 | +:10140000D0C028E030E0AE014F5F5F4FB801872DBC | ||
322 | +:101410000E94F6051801F8E02F0E311C8981F701B2 | ||
323 | +:1014200080838A8181838B8182838C8183838D8178 | ||
324 | +:1014300090E0982F88272E81820F911DE985FA85EB | ||
325 | +:10144000918380830F8110E0102F00278885080F7B | ||
326 | +:10145000111D1F930F9386E193E09F938F930E943A | ||
327 | +:10146000F50CE985FA8581818F9380818F938CE2D9 | ||
328 | +:1014700093E09F938F930E94F50CF70183811F9255 | ||
329 | +:101480008F9382811F928F9381811F928F9380818E | ||
330 | +:101490001F928F938FE393E09F938F930E94F50C9D | ||
331 | +:1014A0009801A401B101872D0E94F6057101E00E9B | ||
332 | +:1014B000F11E6F2DC5010E94DD006E2D41C026E09A | ||
333 | +:1014C00030E0AE014F5F5F4FB801872D0E94F605F7 | ||
334 | +:1014D000180196E0290E311C8981F70180838A81E9 | ||
335 | +:1014E00081838B8182838C8183830D8110E0102F17 | ||
336 | +:1014F00000278E81080F111D89E593E00E940B0DD6 | ||
337 | +:10150000F70183811F928F9382811F928F93818134 | ||
338 | +:101510001F928F9380811F928F938FE393E09F930D | ||
339 | +:101520008F930E94F50C9801A401B101872D0E94B0 | ||
340 | +:10153000F605200E311E632DC5010E94DD00622DCF | ||
341 | +:10154000C6010E94DD000FB6F894DEBF0FBECDBF0E | ||
342 | +:101550002AC022E030E0AE014F5F5F4FB801872D17 | ||
343 | +:101560000E94F605780192E0E90EF11C098110E075 | ||
344 | +:10157000902F88270A8110E002501109080F191FC7 | ||
345 | +:101580009801A401B701872D0E94F605E00EF11E17 | ||
346 | +:101590006F2DC5010E94DD006E2DC6010E94DD0089 | ||
347 | +:1015A00002C000E010E0EFEF4E1A5E0A60E4C201F4 | ||
348 | +:1015B0000E94DD00C2010E94FB008111FBCF02C02E | ||
349 | +:1015C00000E010E08DE693E00E940B0DC80102C020 | ||
350 | +:1015D00080E090E02A960FB6F894DEBF0FBECDBF34 | ||
351 | +:1015E000DF91CF911F910F91FF90EF90DF90CF90FF | ||
352 | +:1015F000BF90AF909F908F907F906F905F904F9033 | ||
353 | +:101600003F902F900895CF92DF92FF920F931F93F8 | ||
354 | +:10161000CF93DF93F82E6B01EA0180E893E00E94FC | ||
355 | +:101620000B0D8F2D0E94B0008C179D0728F48F2D75 | ||
356 | +:101630000E94B0008C0101C08E010115110589F4D2 | ||
357 | +:101640001F921F92DF93CF938CE893E09F938F9329 | ||
358 | +:101650000E94F50C0F900F900F900F900F900F902D | ||
359 | +:1016600030C0A801B6018F2D0E94AF05CF2DD0E06C | ||
360 | +:101670002496DC2FCC276E018FEFC81AD80A60E2BF | ||
361 | +:10168000C6010E94DD00C6010E94FB008111FBCF54 | ||
362 | +:101690006E0182E0C80ED11C2396C6010E94FB0099 | ||
363 | +:1016A00084FD12C0CE010E94FB00C6010E94FB0017 | ||
364 | +:1016B00083FFF3CF8AE993E00E940B0D8F2D0E94E8 | ||
365 | +:1016C0008A0680E090E005C060E1C6010E94DD006E | ||
366 | +:1016D000C801DF91CF911F910F91FF90DF90CF90C4 | ||
367 | +:1016E0000895CF92DF92EF92FF920F931F93CF93C3 | ||
368 | +:1016F000DF936C017B018A01E9010E94C60265E566 | ||
369 | +:1017000085E50E946A01C6010E941503C7010E9477 | ||
370 | +:101710003803C8010E94C902CE01DF91CF911F9109 | ||
371 | +:101720000F91FF90EF90DF90CF900C94FC0280938C | ||
372 | +:10173000BB0084E88093BC008091BC0087FFFCCF95 | ||
373 | +:1017400008951092B9008CE08093B80084E08093F3 | ||
374 | +:10175000BC000895CF9394EA9093BC009091BC0094 | ||
375 | +:1017600097FFFCCF9091B900987F983011F080E0FE | ||
376 | +:1017700015C0C62F880F0E94970B8091B900887FF3 | ||
377 | +:101780008831A9F78C2F0E94970B8091B900887F30 | ||
378 | +:10179000883269F784E98093BC0081E0CF91089595 | ||
379 | +:1017A000CF93DF9394EA9093BC009091BC0097FF95 | ||
380 | +:1017B000FCCF9091B900987F983011F080E01EC066 | ||
381 | +:1017C000C42FD62F880F0E94970B8091B900887F75 | ||
382 | +:1017D0008831A1F78D2F0E94970B8091B900887FE7 | ||
383 | +:1017E000883261F78C2F0E94970B8091B900887F17 | ||
384 | +:1017F000883221F784E98093BC0081E0DF91CF91AA | ||
385 | +:101800000895092E000CAA0BBB0B9C01AD0184E0CE | ||
386 | +:10181000220F331F441F551F8A95D1F760E074E2F1 | ||
387 | +:1018200084EF90E00E94D30C215031093093C50021 | ||
388 | +:101830002093C40088E18093C10086E08093C200B9 | ||
389 | +:10184000E0ECF0E080818D7F808308959091C0006E | ||
390 | +:1018500095FFFCCF8093C6000895CF93C82F8A30A0 | ||
391 | +:1018600019F48DE00E94260C8C2F0E94260C80E03B | ||
392 | +:1018700090E0CF9108958091C00087FFFCCF8091C8 | ||
393 | +:10188000C600089580E895E20E94010C82E091E094 | ||
394 | +:101890009093ED038093EC030895EF92FF920F93E2 | ||
395 | +:1018A0001F93CF93DF93CDB7DEB764970FB6F8944D | ||
396 | +:1018B000DEBF0FBECDBF86E0E0E1F1E0DE011196B4 | ||
397 | +:1018C00001900D928A95E1F72CEA2F879AE1988B87 | ||
398 | +:1018D00081E9898B3DEC3A8B2B879C878D878EEF36 | ||
399 | +:1018E0008E878FEF8F83888789871A860E94420CA4 | ||
400 | +:1018F0009E01295F3F4FAE01455F5F4FBE01615FB3 | ||
401 | +:101900007F4FCE0101960E94710B20E044EE57E01C | ||
402 | +:1019100062E08091AA030E94AC068823A9F120E02E | ||
403 | +:1019200044EE57E061E0809100010E94AC068823FC | ||
404 | +:1019300059F18AE5E82E81E0F82E08EE13E024EE56 | ||
405 | +:1019400033E042E050E0BE016D5E7F4F8091AA031C | ||
406 | +:101950000E9498098C018230910549F481E591E05B | ||
407 | +:101960000E940B0DCE0143960E94530002C0892BAA | ||
408 | +:1019700021F31F930F93FF92EF920E94F50C0F90AB | ||
409 | +:101980000F900F900F90D9CF8FEF9FEF64960FB607 | ||
410 | +:10199000F894DEBF0FBECDBFDF91CF911F910F91A5 | ||
411 | +:1019A000FF90EF900895A1E21A2EAA1BBB1BFD0128 | ||
412 | +:1019B0000DC0AA1FBB1FEE1FFF1FA217B307E4072E | ||
413 | +:1019C000F50720F0A21BB30BE40BF50B661F771F86 | ||
414 | +:1019D000881F991F1A9469F7609570958095909566 | ||
415 | +:1019E0009B01AC01BD01CF010895A0E0B0E0EBEF99 | ||
416 | +:1019F000FCE00C94C90FAE014B5F5F4FFA0161919F | ||
417 | +:101A00007191AF018091EC039091ED030E943B0D29 | ||
418 | +:101A1000E2E00C94E50F0F931F93CF93DF93E091D7 | ||
419 | +:101A2000EC03F091ED03238121FF1BC08C01D0E07A | ||
420 | +:101A3000C0E0F80181918F016091EC037091ED039A | ||
421 | +:101A4000DB011896ED91FC911997882331F00995E7 | ||
422 | +:101A5000892B79F3DFEFCFEFECCF8AE00995892B63 | ||
423 | +:101A600019F08FEF9FEF02C08D2F9C2FDF91CF9148 | ||
424 | +:101A70001F910F910895ACE0B0E0E1E4FDE00C941B | ||
425 | +:101A8000B90F7C016B018A01FC01178216828381E8 | ||
426 | +:101A900081FFBDC1CE0101964C01F7019381F60192 | ||
427 | +:101AA00093FD859193FF81916F01882309F4ABC168 | ||
428 | +:101AB000853239F493FD859193FF81916F018532D1 | ||
429 | +:101AC00029F4B70190E00E94230FE7CF512C312C6D | ||
430 | +:101AD00020E02032A0F48B3269F030F4803259F0EB | ||
431 | +:101AE000833269F420612CC08D3239F0803339F4AF | ||
432 | +:101AF000216026C02260246023C0286021C027FD09 | ||
433 | +:101B000027C030ED380F3A3078F426FF06C0FAE0EF | ||
434 | +:101B10005F9E300D1124532E13C08AE0389E300D85 | ||
435 | +:101B20001124332E20620CC08E3221F426FD6BC1AD | ||
436 | +:101B3000206406C08C3611F4206802C0883641F457 | ||
437 | +:101B4000F60193FD859193FF81916F018111C1CFC2 | ||
438 | +:101B5000982F9F7D9554933028F40C5F1F4FFFE31F | ||
439 | +:101B6000F9830DC0833631F0833771F0833509F086 | ||
440 | +:101B70005BC022C0F801808189830E5F1F4F44241F | ||
441 | +:101B80004394512C540115C03801F2E06F0E711CC2 | ||
442 | +:101B9000F801A080B18026FF03C0652D70E002C06F | ||
443 | +:101BA0006FEF7FEFC5012C870E94180F2C01830176 | ||
444 | +:101BB0002C852F77222E17C03801F2E06F0E711C92 | ||
445 | +:101BC000F801A080B18026FF03C0652D70E002C03F | ||
446 | +:101BD0006FEF7FEFC5012C870E940D0F2C012C8524 | ||
447 | +:101BE0002068222E830123FC1BC0832D90E0481621 | ||
448 | +:101BF0005906B0F4B70180E290E00E94230F3A94B6 | ||
449 | +:101C0000F4CFF50127FC859127FE81915F01B70193 | ||
450 | +:101C100090E00E94230F31103A94F1E04F1A5108DE | ||
451 | +:101C20004114510471F7E5C0843611F0893639F555 | ||
452 | +:101C3000F80127FF07C060817181828193810C5F69 | ||
453 | +:101C40001F4F08C060817181072E000C880B990B13 | ||
454 | +:101C50000E5F1F4F2F76722E97FF09C090958095CB | ||
455 | +:101C6000709561957F4F8F4F9F4F2068722E2AE0AD | ||
456 | +:101C700030E0A4010E945B0FA82EA81844C085374D | ||
457 | +:101C800029F42F7EB22E2AE030E025C0F22FF97F12 | ||
458 | +:101C9000BF2E8F36C1F018F4883579F0B4C0803784 | ||
459 | +:101CA00019F0883721F0AFC02F2F2061B22EB4FE7B | ||
460 | +:101CB0000DC08B2D8460B82E09C024FF0AC09F2F51 | ||
461 | +:101CC0009660B92E06C028E030E005C020E130E083 | ||
462 | +:101CD00002C020E132E0F801B7FE07C060817181E7 | ||
463 | +:101CE000828193810C5F1F4F06C06081718180E00B | ||
464 | +:101CF00090E00E5F1F4FA4010E945B0FA82EA81852 | ||
465 | +:101D0000FB2DFF777F2E76FE0BC0372D3E7FA5146F | ||
466 | +:101D100050F474FE0AC072FC08C0372D3E7E05C028 | ||
467 | +:101D2000BA2C372D03C0BA2C01C0B52C34FF0DC01E | ||
468 | +:101D3000FE01EA0DF11D8081803311F4397E09C066 | ||
469 | +:101D400032FF06C0B394B39404C0832F867809F0A1 | ||
470 | +:101D5000B39433FD13C030FF06C05A2CB31418F4EB | ||
471 | +:101D6000530C5B18B32CB31468F4B70180E290E015 | ||
472 | +:101D70003C870E94230FB3943C85F5CFB31410F435 | ||
473 | +:101D80003B1801C0312C34FF12C0B70180E390E052 | ||
474 | +:101D90003C870E94230F3C8532FF17C031FD03C0F2 | ||
475 | +:101DA00088E790E002C088E590E0B7010CC0832F7F | ||
476 | +:101DB000867859F031FF02C08BE201C080E237FD26 | ||
477 | +:101DC0008DE2B70190E00E94230FA51438F4B7010B | ||
478 | +:101DD00080E390E00E94230F5A94F7CFAA94F40175 | ||
479 | +:101DE000EA0DF11D8081B70190E00E94230FA11040 | ||
480 | +:101DF000F5CF332009F451CEB70180E290E00E9484 | ||
481 | +:101E0000230F3A94F6CFF7018681978102C08FEFB6 | ||
482 | +:101E10009FEF2C96E2E10C94D50FFC0105906150E8 | ||
483 | +:101E200070400110D8F7809590958E0F9F1F0895F0 | ||
484 | +:101E3000FC016150704001900110D8F78095909599 | ||
485 | +:101E40008E0F9F1F08950F931F93CF93DF93FB0176 | ||
486 | +:101E5000238121FD03C08FEF9FEF28C022FF16C012 | ||
487 | +:101E600046815781248135814217530744F4A0816C | ||
488 | +:101E7000B1819D012F5F3F4F318320838C93268159 | ||
489 | +:101E800037812F5F3F4F3783268310C0EB01092F27 | ||
490 | +:101E9000182F0084F185E02D0995892BE1F68E81BC | ||
491 | +:101EA0009F8101969F838E83812F902FDF91CF9109 | ||
492 | +:101EB0001F910F910895FA01AA27283051F120317E | ||
493 | +:101EC00081F1E8946F936E7F6E5F7F4F8F4F9F4FCE | ||
494 | +:101ED000AF4FB1E03ED0B4E03CD0670F781F891F10 | ||
495 | +:101EE0009A1FA11D680F791F8A1F911DA11D6A0FDE | ||
496 | +:101EF000711D811D911DA11D20D009F468943F9191 | ||
497 | +:101F00002AE0269F11243019305D3193DEF6CF018F | ||
498 | +:101F10000895462F4770405D4193B3E00FD0C9F755 | ||
499 | +:101F2000F6CF462F4F70405D4A3318F0495D31FDC2 | ||
500 | +:101F30004052419302D0A9F7EACFB4E0A695979515 | ||
501 | +:101F4000879577956795BA95C9F7009761057105EB | ||
502 | +:101F500008959B01AC010A2E069457954795379535 | ||
503 | +:101F60002795BA95C9F7620F731F841F951FA01D8F | ||
504 | +:101F700008952F923F924F925F926F927F928F922D | ||
505 | +:101F80009F92AF92BF92CF92DF92EF92FF920F9308 | ||
506 | +:101F90001F93CF93DF93CDB7DEB7CA1BDB0B0FB612 | ||
507 | +:101FA000F894DEBF0FBECDBF09942A8839884888CF | ||
508 | +:101FB0005F846E847D848C849B84AA84B984C88465 | ||
509 | +:101FC000DF80EE80FD800C811B81AA81B981CE0F5C | ||
510 | +:101FD000D11D0FB6F894DEBF0FBECDBFED01089541 | ||
511 | +:041FE000F894FFCFA3 | ||
512 | +:101FE400010100000002000000002D0C00000000B0 | ||
513 | +:101FF400A0BDCDDDEDFD52455155455354205354FC | ||
514 | +:102004004154555300534554202F20554E534554A5 | ||
515 | +:1020140020534C454550004D4F44452045564549B5 | ||
516 | +:102024004C4C45004D4F444520534F4D4D45494C74 | ||
517 | +:1020340000524543454956454400204441544153C8 | ||
518 | +:10204400495A45203D2025640A00737973696E69F5 | ||
519 | +:102054007428290D004368616E6E656C203A205324 | ||
520 | +:10206400454E44204D454D2053495A45203A20526F | ||
521 | +:10207400454356204D454D2053495A450D0025648E | ||
522 | +:10208400203A20252E3478203A20252E3478203A00 | ||
523 | +:1020940020252E3478203A20252E34780D0A004944 | ||
524 | +:1020A40053525F52583A2072645F707472203A201F | ||
525 | +:1020B400252E34780D0A00636C6F736528290D0092 | ||
526 | +:1020C400736F636B657428290D00536E5F53522040 | ||
527 | +:1020D4003D20252E3278202C2050726F746F636F50 | ||
528 | +:1020E4006C203D20252E32780D0A006C69737465CE | ||
529 | +:1020F4006E28290D00737461747573203D20257852 | ||
530 | +:102104000D0A004661696C5B696E76616C696420D6 | ||
531 | +:1021140069702C706F72745D0D0061636365707417 | ||
532 | +:1021240028290D004661696C5B6E6F74206C6973BD | ||
533 | +:1021340074656E696E675D0D00646973636F6E6EBE | ||
534 | +:1021440065637428290D00736F636B6574202564BF | ||
535 | +:10215400206672656573697A652825642920656D32 | ||
536 | +:10216400707479206F72206572726F720D0A005359 | ||
537 | +:102174004F434B5F434C4F5345442E0D0042616423 | ||
538 | +:1021840020737461747573203D20253032780A0001 | ||
539 | +:102194007265637628290D0073656E64746F28294F | ||
540 | +:1021A4000D002564204661696C5B252E32782E254E | ||
541 | +:1021B4002E32782E252E32782E252E32782C20257C | ||
542 | +:1021C4002E642C2025645D0D0A00726563766672A8 | ||
543 | +:1021D4006F6D28290D004953525F52583A2072649A | ||
544 | +:1021E4005F707472203A20252E34782073697A65E2 | ||
545 | +:1021F4003D25640D0A00554450206D736720232546 | ||
546 | +:102204006420617272697665640D0A00736F757279 | ||
547 | +:10221400636520506F7274203A2025750D0A00738F | ||
548 | +:102224006F75726365204950203A2025642E256419 | ||
549 | +:102234002E25642E25640D0A004950205241572052 | ||
550 | +:102244006D736720617272697665640D00726563EF | ||
551 | +:102254007666726F6D282920656E64202E2E0D001F | ||
552 | +:1022640069676D7073656E6428290D0025642046C6 | ||
553 | +:1022740061696C5B25645D0D0A0069676D70736547 | ||
554 | +:0A2284006E64206661696C2E0D0087 | ||
548 | :00000001FF | 555 | :00000001FF |
No preview for this file type
Threads/Makefile
@@ -14,15 +14,18 @@ LDFLAGS=-lpthread | @@ -14,15 +14,18 @@ LDFLAGS=-lpthread | ||
14 | 14 | ||
15 | all: $(LIB) | 15 | all: $(LIB) |
16 | 16 | ||
17 | -$(LIB): threadSocket.o | 17 | +$(LIB): http.o threadSocket.o |
18 | rm -f $@ | 18 | rm -f $@ |
19 | $(CLIBS) $(LDIR)$@ $^ | 19 | $(CLIBS) $(LDIR)$@ $^ |
20 | ranlib $(LDIR)$@ | 20 | ranlib $(LDIR)$@ |
21 | rm -f *.o | 21 | rm -f *.o |
22 | - | 22 | + |
23 | + | ||
23 | threadSocket.o: threadSocket.c | 24 | threadSocket.o: threadSocket.c |
24 | - $(CC) -o $@ -c $^ $(CFLAGS) $(LDFLAGS) | 25 | + $(CC) -o $@ -c $^ -I$(IDIR) $(CFLAGS) |
25 | 26 | ||
27 | +http.o: ../Sioux/http.c | ||
28 | + $(CC) -o $@ -c $^ -I$(IDIR) $(CFLAGS) | ||
26 | 29 | ||
27 | # | 30 | # |
28 | # La cible de nettoyage | 31 | # La cible de nettoyage |
1 | +#include <sys/types.h> | ||
2 | +#include <sys/socket.h> | ||
3 | +#include <arpa/inet.h> | ||
4 | +#include <netdb.h> | ||
1 | #include <stdio.h> | 5 | #include <stdio.h> |
2 | #include <stdlib.h> | 6 | #include <stdlib.h> |
3 | #include <pthread.h> | 7 | #include <pthread.h> |
4 | #include <string.h> | 8 | #include <string.h> |
5 | #include <unistd.h> | 9 | #include <unistd.h> |
10 | +#include <time.h> | ||
11 | +#include "http.h" | ||
12 | +#include "libnet.h" | ||
13 | +#include "libthrd.h" | ||
6 | 14 | ||
7 | -#define BUFF_SIZE 1000 | ||
8 | 15 | ||
16 | +void vider_interfaces(struct interface_info* interfaces[20]) | ||
17 | +{ | ||
18 | + for(int i=0; i<20; i++) | ||
19 | + { | ||
20 | + if(interfaces[i]!=NULL) | ||
21 | + { | ||
22 | + free(interfaces[i]); | ||
23 | + interfaces[i]=NULL; | ||
24 | + } | ||
25 | + } | ||
26 | +} | ||
9 | 27 | ||
10 | 28 | ||
29 | +int httpReponse(FILE* sockdial_stream, struct interface_info* interfaces[20]) | ||
30 | +{ | ||
31 | + char message[]={0x00,0x00}; | ||
11 | 32 | ||
12 | -struct PageWeb | ||
13 | -{ | ||
14 | - int size; | ||
15 | - char* html_contents; | ||
16 | -}; | 33 | + sendUDPBroadcast(message, 2020); |
17 | 34 | ||
35 | + struct PageWeb* page; | ||
18 | 36 | ||
37 | + sleep(0.5); // Temps d'attente avant de recevoir les informations | ||
19 | 38 | ||
39 | + createPage(&page, interfaces); // Permet de creer la pageweb (http.c) | ||
20 | 40 | ||
21 | -void freePage(struct PageWeb** page) | ||
22 | -{ | ||
23 | - if(*page!=NULL) | ||
24 | - { | ||
25 | - if((*page)->html_contents!=NULL) free((*page)->html_contents); | ||
26 | - free(*page); | ||
27 | - } | ||
28 | -} | 41 | + char buffer[BUFF_SIZE]; // Le buffer de message pour l'emission |
42 | + // char buff_rec[BUFF_SIZE]; // Le buffer de message à la reception | ||
29 | 43 | ||
44 | + strcat(buffer,"HTTP/1.1 200 OK\r\nServer: Serveur Sioux\r\nContent-Type: text/html; charset=UTF-8\r\nConnection: Keep-alive\r\n\r\n"); // Header HTTP | ||
30 | 45 | ||
46 | + fprintf(sockdial_stream, "%s", buffer); | ||
31 | 47 | ||
32 | -void getWeb(char* pageName, struct PageWeb** page) | ||
33 | -{ | ||
34 | - *page=malloc(sizeof(struct PageWeb)); | 48 | + strcpy(buffer, page->html_contents); |
35 | 49 | ||
36 | - FILE* pageFile=fopen(pageName, "r+"); | 50 | + fprintf(sockdial_stream, "%s", buffer); |
37 | 51 | ||
38 | - if(pageFile!=NULL) | ||
39 | - { | ||
40 | - fseek(pageFile, 0L, SEEK_END); | ||
41 | - long nbr_char=ftell(pageFile); | ||
42 | - fseek(pageFile, 0L, SEEK_SET); | 52 | + freePage(&page); |
43 | 53 | ||
54 | + return 0; | ||
55 | +} | ||
44 | 56 | ||
45 | - (*page)->html_contents=malloc(nbr_char*sizeof(char)); | ||
46 | - fread(((*page)->html_contents),1,nbr_char,pageFile); | ||
47 | 57 | ||
48 | - (*page)->size=strlen(((*page)->html_contents)); | ||
49 | - fclose(pageFile); | ||
50 | - } | ||
51 | - else | 58 | + |
59 | + | ||
60 | +int interfaceReponse(FILE* sockdial_stream, char packet[BUFF_SIZE], struct interface_info* interfaces[20], char adresse[20]) | ||
61 | +{ | ||
62 | + printf("Interface : %s - Adresse : %s\n", packet, adresse); | ||
63 | + | ||
64 | + char buffer[BUFF_SIZE]; | ||
65 | + | ||
66 | + int i=0; | ||
67 | + while(interfaces[i]!=NULL && strcmp(adresse,interfaces[i]->adresse)!=0) | ||
52 | { | 68 | { |
53 | - char erreur[]="<h1> 404 PAGE NOT FOUND </h1>\r\n\r\n La page que vous cherchez n'a pas été trouvée, sans doute parce que vous êtes nul."; | ||
54 | - (*page)->html_contents=malloc(strlen(erreur)*sizeof(char)); | ||
55 | - strcpy((*page)->html_contents, erreur); | 69 | + i++; |
56 | } | 70 | } |
57 | 71 | ||
58 | -} | 72 | + if(interfaces[0]!=NULL) |
73 | + printf("Il y a %d associations\n", i+1); | ||
74 | + else | ||
75 | + printf("Il n'y aucune association\n"); | ||
59 | 76 | ||
60 | 77 | ||
78 | + if(interfaces[i]!=NULL) | ||
79 | + interfaces[i]->status=-1; | ||
61 | 80 | ||
62 | 81 | ||
63 | -void* reponseConnexion(void* sock) | ||
64 | -{ | ||
65 | - printf("Connected\n"); // Affiche le fait que qqn soit connecté | 82 | + if(strlen(packet)>=2 && packet[0]=='A' && (packet[1]=='A' || packet[1]=='B') ) |
83 | + { | ||
84 | + //L'interface a correctement répondu, on la rajoute à la liste des interfaces | ||
85 | + printf("L'interface a correctement répondu\n"); | ||
66 | 86 | ||
67 | - struct PageWeb* page; | 87 | + if(interfaces[i]==NULL) |
88 | + { | ||
89 | + interfaces[i]=malloc(sizeof(struct interface_info)); | ||
90 | + strcpy(interfaces[i]->adresse, adresse); | ||
91 | + } | ||
68 | 92 | ||
69 | - getWeb("../Sioux/Page.html", &page); | 93 | + if(packet[1]==0x01) |
94 | + interfaces[i]->status=1; | ||
95 | + else | ||
96 | + interfaces[i]->status=0; | ||
70 | 97 | ||
71 | - char buff_rec[BUFF_SIZE]; | ||
72 | - char buffer[BUFF_SIZE]; | 98 | + } |
99 | + else // L'interface n a pas correctement répondu | ||
100 | + return -1; | ||
73 | 101 | ||
74 | - strcat(buffer,"HTTP/1.1 200 OK\r\nServer: Serveur fait maison\r\nContent-Type: text/html; charset=UTF-8\r\nConnection: Keep-alive\r\n\r\n"); | ||
75 | - strcat(buffer, page->html_contents); | ||
76 | 102 | ||
77 | - freePage(&page); | ||
78 | 103 | ||
79 | - FILE* sockdial_stream = fdopen(*((int*)(sock)), "a+"); | ||
80 | - | ||
81 | - printf("Sock : %d // Stream : %p \n", *((int*)(sock)), sockdial_stream); | ||
82 | - | ||
83 | - fprintf(sockdial_stream, "%s", buffer); | 104 | + strcpy(buffer, "\x60\x00"); // Demande la commande en mémoire |
105 | + | ||
106 | + fprintf(sockdial_stream, "%s", buffer); // Transmission du message | ||
107 | + | ||
108 | + fgets(packet, BUFF_SIZE, sockdial_stream); // Attente de reception du message | ||
109 | + | ||
110 | + | ||
84 | 111 | ||
85 | - printf("WAIT\n"); | 112 | + if( strlen(packet)>=2 && (packet[0]&0xE0)==0x10 ) |
113 | + interfaces[i]->commande = (packet[0]&0x01)*256+packet[1]; | ||
114 | + else | ||
115 | + { | ||
116 | + interfaces[i]->commande = -1; | ||
117 | + return -1; // Si le message n'est pas reçu correctement | ||
118 | + } | ||
119 | + | ||
120 | + return 0; | ||
121 | +} | ||
122 | + | ||
123 | + | ||
124 | + | ||
125 | +void* reponseConnexion(void* arg_sock_interf) | ||
126 | +{ | ||
127 | + Arg_Thread *argument=(Arg_Thread*)(arg_sock_interf); | ||
128 | + int sock=argument->socket; | ||
129 | + | ||
130 | + printf("Connected\n"); // Affiche le fait que qqn soit connecté | ||
131 | + | ||
132 | + FILE* sockdial_stream = fdopen(sock, "a+"); | ||
133 | + | ||
134 | + char buff_rec[BUFF_SIZE]; // Le buffer de message à la reception | ||
135 | + // char buffer[BUFF_SIZE]; // Le buffer de message pour l'emission | ||
86 | 136 | ||
87 | fgets(buff_rec, BUFF_SIZE, sockdial_stream); | 137 | fgets(buff_rec, BUFF_SIZE, sockdial_stream); |
88 | 138 | ||
89 | - printf("Le message reçu : %s", buff_rec); | 139 | + printf("Le message reçu : %s\n", buff_rec); |
90 | 140 | ||
91 | - fprintf(sockdial_stream, "Ceci est une réponse du serveur TCP.\n"); | 141 | + //Distingue la requête HTTP... |
142 | + if(strstr(buff_rec, "GET")!=NULL && strstr(buff_rec, "HTTP")!=NULL) | ||
143 | + { | ||
144 | + vider_interfaces(argument->interfaces); | ||
145 | + httpReponse(sockdial_stream, argument->interfaces); | ||
146 | + } | ||
147 | + else //.. d'une requête interface | ||
148 | + { | ||
149 | + struct sockaddr_storage tmp_addr; | ||
150 | + socklen_t addr_len=sizeof(tmp_addr); | ||
151 | + if(getpeername(sock, (struct sockaddr*)&tmp_addr, &addr_len)==0) | ||
152 | + { | ||
153 | + char adresse[20]; | ||
154 | + sprintf(adresse, "%s", inet_ntoa(((struct sockaddr_in*)&tmp_addr)->sin_addr)); | ||
155 | + interfaceReponse(sockdial_stream, buff_rec, argument->interfaces, adresse); | ||
156 | + } | ||
157 | + } | ||
158 | + | ||
159 | + printf("Sock : %d // Stream : %p \n", sock, sockdial_stream); | ||
92 | 160 | ||
93 | - strcpy(buffer, "START"); | ||
94 | printf("Fin de la connexion\n"); | 161 | printf("Fin de la connexion\n"); |
162 | + | ||
95 | fclose(sockdial_stream); | 163 | fclose(sockdial_stream); |
164 | + | ||
96 | pthread_exit(NULL); | 165 | pthread_exit(NULL); |
97 | } | 166 | } |
98 | 167 | ||
99 | 168 | ||
100 | 169 | ||
101 | - | ||
102 | int lanceThread(void(* fonction) (void *), void* arg, int size) | 170 | int lanceThread(void(* fonction) (void *), void* arg, int size) |
103 | { | 171 | { |
104 | pthread_t thr_id; | 172 | pthread_t thr_id; |
@@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
2 | CC=gcc | 2 | CC=gcc |
3 | CFLAGS=-W -Wall -Wextra -g | 3 | CFLAGS=-W -Wall -Wextra -g |
4 | CLIBS=ar -rcs | 4 | CLIBS=ar -rcs |
5 | -LIB=libnet.a | 5 | +LIB=libnet.a libthrd.a |
6 | LDIR=../libs/ | 6 | LDIR=../libs/ |
7 | LIBS=$(LDIR)libnet.a $(LDIR)libthrd.a | 7 | LIBS=$(LDIR)libnet.a $(LDIR)libthrd.a |
8 | IDIR=../includes/ | 8 | IDIR=../includes/ |
@@ -10,9 +10,16 @@ LDFLAGS=-lpthread -lpcap | @@ -10,9 +10,16 @@ LDFLAGS=-lpthread -lpcap | ||
10 | 10 | ||
11 | 11 | ||
12 | 12 | ||
13 | -all: test | 13 | +all: sonde serverTCP |
14 | 14 | ||
15 | -test: test.c | 15 | +serverTCP: serverTCP.c |
16 | + cd ../Threads/ && make | ||
17 | + cd ../Network/ && make | ||
18 | + $(CC) -o $@ $< -I$(IDIR) -L$(LDIR) $(LDIR)libthrd.a $(LDIR)libnet.a $(CFLAGS) $(LDFLAGS) | ||
19 | + rm -f *.o | ||
20 | + | ||
21 | + | ||
22 | +sonde: sonde.c | ||
16 | cd ../Threads/ && make | 23 | cd ../Threads/ && make |
17 | cd ../Network/ && make | 24 | cd ../Network/ && make |
18 | $(CC) -o $@ $< -I$(IDIR) $(LDIR)libnet.a $(LDIR)libthrd.a $(CFLAGS) $(LDFLAGS) | 25 | $(CC) -o $@ $< -I$(IDIR) $(LDIR)libnet.a $(LDIR)libthrd.a $(CFLAGS) $(LDFLAGS) |
@@ -25,5 +32,9 @@ test: test.c | @@ -25,5 +32,9 @@ test: test.c | ||
25 | clean: | 32 | clean: |
26 | cd ../Threads/ && make clean | 33 | cd ../Threads/ && make clean |
27 | cd ../Network/ && make clean | 34 | cd ../Network/ && make clean |
28 | - rm -f *.o test | 35 | + rm -f *.o sonde serverTCP |
36 | + | ||
37 | + | ||
38 | +# cd ../Threads/ && make | ||
39 | +# cd ../Network/ && make | ||
29 | 40 |
No preview for this file type
bin/test.c renamed to bin/serverTCP.c
@@ -5,7 +5,7 @@ | @@ -5,7 +5,7 @@ | ||
5 | #include <string.h> | 5 | #include <string.h> |
6 | #include <signal.h> | 6 | #include <signal.h> |
7 | #include "libnet.h" | 7 | #include "libnet.h" |
8 | - | 8 | +#include <time.h> |
9 | 9 | ||
10 | int sock_fd; | 10 | int sock_fd; |
11 | 11 | ||
@@ -24,7 +24,7 @@ void handler(int sig) | @@ -24,7 +24,7 @@ void handler(int sig) | ||
24 | 24 | ||
25 | void argPortParsing(int argc, char* argv[], char* port) | 25 | void argPortParsing(int argc, char* argv[], char* port) |
26 | { | 26 | { |
27 | - struct option port_arg={"port", 1, NULL, 'p'}; | 27 | + struct option port_arg={"port", 1, NULL, 'p'}; // |
28 | char opt; | 28 | char opt; |
29 | int longindex; | 29 | int longindex; |
30 | 30 | ||
@@ -32,7 +32,7 @@ void argPortParsing(int argc, char* argv[], char* port) | @@ -32,7 +32,7 @@ void argPortParsing(int argc, char* argv[], char* port) | ||
32 | 32 | ||
33 | if(opt=='p') | 33 | if(opt=='p') |
34 | { | 34 | { |
35 | - strcpy(port, optarg); | 35 | + strcpy(port, optarg); //optarg est une variable instanciée dans la librairie getopt |
36 | printf("%s\n", optarg); | 36 | printf("%s\n", optarg); |
37 | } | 37 | } |
38 | else | 38 | else |
@@ -44,6 +44,7 @@ void argPortParsing(int argc, char* argv[], char* port) | @@ -44,6 +44,7 @@ void argPortParsing(int argc, char* argv[], char* port) | ||
44 | 44 | ||
45 | int main(int argc, char* argv[]) | 45 | int main(int argc, char* argv[]) |
46 | { | 46 | { |
47 | + | ||
47 | char port[10]="80"; | 48 | char port[10]="80"; |
48 | argPortParsing(argc, argv, port); | 49 | argPortParsing(argc, argv, port); |
49 | 50 | ||
@@ -53,10 +54,7 @@ int main(int argc, char* argv[]) | @@ -53,10 +54,7 @@ int main(int argc, char* argv[]) | ||
53 | if( (sock_fd=initialisationServeur(port)) ==-1 ) { fprintf(stderr, "Initialisation du serveur impossible\n"); return -1; } | 54 | if( (sock_fd=initialisationServeur(port)) ==-1 ) { fprintf(stderr, "Initialisation du serveur impossible\n"); return -1; } |
54 | 55 | ||
55 | boucleServeur(sock_fd, (void*)&reponseConnexion); | 56 | boucleServeur(sock_fd, (void*)&reponseConnexion); |
56 | - | ||
57 | 57 | ||
58 | - sendUDPBroadcast("BroadWesh", 2020); | ||
59 | - sendUDPUnicast("192.168.0.37", "Coucou", 2020); | ||
60 | return 0; | 58 | return 0; |
61 | } | 59 | } |
62 | 60 |
No preview for this file type
@@ -0,0 +1,73 @@ | @@ -0,0 +1,73 @@ | ||
1 | +#include <stdlib.h> | ||
2 | +#include <stdio.h> | ||
3 | +#include <unistd.h> | ||
4 | +#include <getopt.h> | ||
5 | +#include <string.h> | ||
6 | +#include <signal.h> | ||
7 | +#include "libnet.h" | ||
8 | +#include <time.h> | ||
9 | + | ||
10 | +int sock_fd; | ||
11 | + | ||
12 | +struct sigaction action; | ||
13 | + | ||
14 | +void handler(int sig) | ||
15 | +{ | ||
16 | + if(sig==SIGINT) | ||
17 | + { | ||
18 | + printf("\nINTERRUPTION SOCKET : %d\n\n", sock_fd); | ||
19 | + close(sock_fd); | ||
20 | + exit(1); | ||
21 | + } | ||
22 | +} | ||
23 | + | ||
24 | + | ||
25 | +void argPortParsing(int argc, char* argv[], char* port) | ||
26 | +{ | ||
27 | + struct option port_arg={"port", 1, NULL, 'p'}; // | ||
28 | + char opt; | ||
29 | + int longindex; | ||
30 | + | ||
31 | + while( (opt=getopt_long(argc, argv, "p:", &port_arg, &longindex)) !='p' && opt!=-1) {} | ||
32 | + | ||
33 | + if(opt=='p') | ||
34 | + { | ||
35 | + strcpy(port, optarg); | ||
36 | + printf("%s\n", optarg); | ||
37 | + } | ||
38 | + else | ||
39 | + { | ||
40 | + printf("La syntaxe doit être de la forme %s -p <port> ou %s --port <port>\n\n", argv[0], argv[0]); | ||
41 | + } | ||
42 | +} | ||
43 | + | ||
44 | + | ||
45 | +int main(int argc, char* argv[]) | ||
46 | +{ | ||
47 | +/* | ||
48 | + char port[10]="80"; | ||
49 | + argPortParsing(argc, argv, port); | ||
50 | + | ||
51 | + action.sa_handler=&handler; | ||
52 | + sigaction(SIGINT, &action, NULL); | ||
53 | + | ||
54 | + if( (sock_fd=initialisationServeur(port)) ==-1 ) { fprintf(stderr, "Initialisation du serveur impossible\n"); return -1; } | ||
55 | + | ||
56 | + boucleServeur(sock_fd, (void*)&reponseConnexion); | ||
57 | + | ||
58 | + | ||
59 | + sendUDPBroadcast("BroadWesh", 2020); | ||
60 | + sendUDPUnicast("192.168.0.37", "Coucou", 2020); | ||
61 | + */ | ||
62 | + | ||
63 | + char msg[2] = {0x40,0x01}; | ||
64 | + | ||
65 | + while(1) | ||
66 | + { | ||
67 | + if(ecouteReseau(argc, argv)!=0){ return -1;} | ||
68 | + if(sendUDPBroadcast(msg, 2020)){ return -1;} | ||
69 | + //sendUDPUnicast("172.26.145.205",msg, 2020); | ||
70 | + } | ||
71 | + return 0; | ||
72 | +} | ||
73 | + |
bin/test deleted
No preview for this file type
@@ -0,0 +1,36 @@ | @@ -0,0 +1,36 @@ | ||
1 | +#ifndef __HTTP_H__ | ||
2 | +#define __HTTP_H__ | ||
3 | + | ||
4 | +#include <stdio.h> | ||
5 | +#include <stdlib.h> | ||
6 | +#include <pthread.h> | ||
7 | +#include <string.h> | ||
8 | +#include <unistd.h> | ||
9 | +#include <time.h> | ||
10 | + | ||
11 | + | ||
12 | +#define BUFF_SIZE 100000 | ||
13 | + | ||
14 | + | ||
15 | +struct interface_info | ||
16 | +{ | ||
17 | + char adresse[20]; | ||
18 | + int status; | ||
19 | + int commande; | ||
20 | +}; | ||
21 | + | ||
22 | + | ||
23 | + | ||
24 | +struct PageWeb | ||
25 | +{ | ||
26 | + int size; | ||
27 | + char* html_contents; | ||
28 | +}; | ||
29 | + | ||
30 | + | ||
31 | + | ||
32 | +void freePage(struct PageWeb** page); | ||
33 | +void getWeb(char* pageName, struct PageWeb** page); | ||
34 | +void createPage(struct PageWeb** page, struct interface_info* interfaces[20]); | ||
35 | + | ||
36 | +#endif |
1 | #ifndef __LIBNET_H__ | 1 | #ifndef __LIBNET_H__ |
2 | #define __LIBNET_H__ | 2 | #define __LIBNET_H__ |
3 | 3 | ||
4 | +#include <pcap.h> | ||
5 | + | ||
6 | + | ||
4 | int boucleServeur(int socket, void(* fctConnex)(int)); | 7 | int boucleServeur(int socket, void(* fctConnex)(int)); |
5 | int lanceThread(void(* fonction) (void *), void* arg, int size); | 8 | int lanceThread(void(* fonction) (void *), void* arg, int size); |
6 | void* reponseConnexion(void* sock); | 9 | void* reponseConnexion(void* sock); |
@@ -8,6 +11,10 @@ int initialisationServeur(char* service); | @@ -8,6 +11,10 @@ int initialisationServeur(char* service); | ||
8 | int initializeSocketUDP(char* service); | 11 | int initializeSocketUDP(char* service); |
9 | int sendUDPBroadcast(char* message, int port); | 12 | int sendUDPBroadcast(char* message, int port); |
10 | int sendUDPUnicast(char* address, char* message, int port); | 13 | int sendUDPUnicast(char* address, char* message, int port); |
14 | +void arp_detect(u_char *args, const struct pcap_pkthdr *header, const u_char *packet); | ||
15 | +int initialize_sniffer(pcap_t** dev_handle, char dev[]); | ||
16 | +int ecouteReseau(int argc, char* argv[]); | ||
17 | + | ||
11 | 18 | ||
12 | 19 | ||
13 | #endif | 20 | #endif |
1 | #ifndef __LIBTHRD_H__ | 1 | #ifndef __LIBTHRD_H__ |
2 | #define __LIBTHRD_H__ | 2 | #define __LIBTHRD_H__ |
3 | 3 | ||
4 | -void* reponseConnexion(void* sock); | 4 | +#include "http.h" |
5 | + | ||
6 | +typedef struct{int socket; struct interface_info* interfaces[20];} Arg_Thread; | ||
7 | + | ||
8 | +void* reponseConnexion(void* arg_sock_interf); | ||
5 | 9 | ||
6 | int lanceThread(void(* fonction) (void *), void* arg, int size); | 10 | int lanceThread(void(* fonction) (void *), void* arg, int size); |
7 | 11 |
libs/libnet.a
No preview for this file type
libs/libthrd.a
No preview for this file type