From f83e28683d7a8d595b4233682128da6b4e369714 Mon Sep 17 00:00:00 2001
From: akagunduz <david.akagunduz@gmail.com>
Date: Tue, 12 Dec 2023 17:29:02 +0100
Subject: [PATCH] Fix generation pastilles sur le serpent

---
 evenement.c |  11 +++++------
 evenement.h |   4 ++--
 evenement.o | Bin 4392 -> 4432 bytes
 main.c      |  34 +++++++++++++++++++++++-----------
 main.h      |   2 +-
 main.o      | Bin 5160 -> 5296 bytes
 prog        | Bin 16808 -> 16808 bytes
 7 files changed, 31 insertions(+), 20 deletions(-)

diff --git a/evenement.c b/evenement.c
index 1e0e6ab..867b40f 100644
--- a/evenement.c
+++ b/evenement.c
@@ -22,7 +22,7 @@ void AfficherTimerEtScore(int m,int n,int score)   /*Afficher le temps passé et
 	CopierZone(1,0,0,0,930,710,0,0);
 }
 
-void InitialiserPastilles(PIXELS *pastilles) {
+void InitialiserPastilles(PIXELS *pastilles, PIXELS *serpent, int longueur_serpent) {
     int i;
     couleur r;
 
@@ -32,25 +32,24 @@ void InitialiserPastilles(PIXELS *pastilles) {
     srand(time(NULL));
 
     for (i = 0; i < PASTILLES; i++) {
-        pastilles[i] = gen_pastille();
+        pastilles[i] = gen_pastille(serpent,longueur_serpent);
         RemplirRectangle(pastilles[i].x,pastilles[i].y,T_PIXEL,T_PIXEL);
 
     }
 }
 
-int MangerPastille(PIXELS *serpent, PIXELS* pastilles,unsigned long *score)
+int MangerPastille(PIXELS *serpent, PIXELS* pastilles,unsigned long *score,int longueur_serpent)
     {
         couleur r;
         int i = 0;
-
+        int j = 0;
         r = CouleurParNom("red");
         ChoisirCouleurDessin(r);
-
         for(i=0;i<PASTILLES;i++)
         {
             if(serpent[0].x == pastilles[i].x && serpent[0].y == pastilles[i].y)
             {
-                pastilles[i] = gen_pastille();
+                pastilles[i] = gen_pastille(serpent,longueur_serpent);
                 RemplirRectangle(pastilles[i].x,pastilles[i].y,T_PIXEL,T_PIXEL);
                 *score+=5;
                 return 1;
diff --git a/evenement.h b/evenement.h
index 53aa91e..2d397c4 100644
--- a/evenement.h
+++ b/evenement.h
@@ -3,11 +3,11 @@
 #ifndef EVENEMENT_H
 #define EVENEMENT_H
 
-int MangerPastille(PIXELS *serpent, PIXELS* pastilles,unsigned long *score);
+int MangerPastille(PIXELS *serpent, PIXELS* pastilles,unsigned long *score,int longueur_serpent);
 
 void DeplacementSerpent(int direction ,PIXELS *serpent, int longueur);
 
-void InitialiserPastilles(PIXELS *pastilles);
+void InitialiserPastilles(PIXELS *pastilles, PIXELS *serpent, int longueur_serpent);
 
 void AfficherTimerEtScore(int m,int n,unsigned long *score);
 
diff --git a/evenement.o b/evenement.o
index 8e1a245400ed1c3bb12b23c939c0b71705439b15..46b8640775ae761572439a919be7cfb182b343a1 100644
GIT binary patch
delta 796
zcmZ`!L1+_E5dHHvO`CL+O+{T7DoUu@BBCdYAZ`~~Se1evB0?@I3W|qH+fyOhwOCl!
zl$NPb@M14gk0n<@QYx`hWKU8rnt)I}_9CK!&TJC=l=i{A|99S-H-DG%QGT``qUC`J
zz@kiPL17(7<RPqq1^2K4`}DA|?uBj?eDs1E{)USwzw~ue6XL;Byd)2%gW=VhTNebp
zBl{o5x9=b5lZH0JT<F%l1+T2XWe4YY@GcZ*R*c6l+n&pb9Zf?Cc1@D2CGY*8QSOyt
zVU;(;&-z9t;RRag9*DOoPKd($oR7WQS!4f{TL-^X=jR(UM=H0pF^L-;<EPg+z{%#O
z<@rp~ozmnRy|as2hpDbpF$RH1@n|P1kCImb*6>s3h}9=!Q`1G)h-!}jQLNnPIw@fk
z=hCJ%!4ZT6RR`6dzfC;BDyj2|no-o}xRo|9yjN61QM+4<IWwp9hg*F<=yye)ic!ET
z-KKS0nMzW({gMXyq~>{musw4cmq{(R)OK=v_8B%veX&hF+KduQv1)T9fe&?W2_4<E
zf?d?ttiq3&kK-cUZ!%+~4?!RHWK1aHK;{eF#Z-0>Ceg{-@CyByt1*LN!)J7ef1z*K
dQY3N3I0vT?ayI-#hd4r?cmb=#*ARM+{R54o?e_ox

delta 809
zcmZ`#&ui3B5YD`8vRj)?LTej>%Gy0;Pudl%^<Y{`AogTI)PtoJdRZ*AP>U$^2P_nq
zu%eEL(0^d<!LlquTSY_>y$IRc-lVXHwzu9ZbzYh*kBS4|FmJw@@0%pd*YYnMsMQNk
zL2>-bQVTcX+PRs)Yx{5g>e=rSg&%k=zj~f+@dtLXakaeEPA$K|`|Lvchu4nUn~>{^
z>-}%>Qect}erDFndeXU-ilwzgI`rXZFp?Vny7=U@YuIt!;~suR{&xbxU_R08oJ*Qv
zAZ;78w8Ill$vLgJ?6rYkZalxzsLBfrkCnx%(MOHy<{BHzs$N-U@3nM>RxT2z2|RK@
zNtluQ8XM{zfGvc~oZZW!p_3^pLqd-PQn69VTw?Y^zD&WVWI~=lC>F4J#<I&Xo1%_N
zI66LwDnhqqzZO_sU_ap?v3~^C6xbp@AohBE7FSjTb{t=JTQ@%nEdN7^?~%|KH7EJ$
z6kIJ$Naknoki2FER`hy|1Da*8{D<ww3C)7rSf@N4)fm;kqReoY`oom(c7E|QegXwQ
zlB0+d+21gNgZdEM!;<c@RRx=BKYr1jxO`<eu!;r4g%4OVT-J;S42QK8JTPuR1`DPO
aA(klD@EzrO+&A5>%UNzENsq9u=l%k*bLW=;

diff --git a/main.c b/main.c
index 871d46f..9a6b51c 100644
--- a/main.c
+++ b/main.c
@@ -18,18 +18,30 @@ int ArrondirPixel(int nombre) /* Calcule un arrondi du pixel pour pouvoir respec
     return arrondi;
 }
 
-PIXELS gen_pastille()
+PIXELS gen_pastille(PIXELS *serpent,int longueur_serpent)
 
                                    /* nb_pastille = int nombre de pastille voulue , p_pastilles est un pointeur d'un tableau de pixels qui sont des pastilles*/
                                    /*Générer une pastille dans la grid*/
                                    /*Code n'est pas complet*/
                                    /*-Elles se génèrent à des endroits qui peuvent être les mêmes ou gêner le snake*/
 {
-    int x_pastille,y_pastille;
+    int x_pastille,y_pastille,i;
+    int ok = 0;
     PIXELS pastille;
-    
-    x_pastille= ArrondirPixel(rand()%W_GAME);
-    y_pastille = ArrondirPixel(rand()%H_GAME);
+    do{
+        ok = 0;
+        x_pastille= ArrondirPixel(rand()%W_GAME);
+        y_pastille = ArrondirPixel(rand()%H_GAME);
+        for(i=0;i<longueur_serpent;i++)
+        {
+            if(x_pastille == serpent[i].x && y_pastille == serpent[i].y)
+            {
+                ok = 1;
+            }
+
+        }      
+
+    }while(ok);
 
     if(x_pastille < DECALEMENT)
     {
@@ -74,14 +86,14 @@ void InitialisationDuSerpent(PIXELS *p_serpent) /* L'initialisation du serpent *
     }
 }
 
-void DessinerScene(PIXELS *pastilles, PIXELS *serpent) /* Dessine la scène */
+void DessinerScene(PIXELS *pastilles, PIXELS *serpent, int longueur_serpent) /* Dessine la scène */
 {
     couleur c;
     ChoisirEcran(2);
     c=CouleurParNom("lightgreen");
     ChoisirCouleurDessin(c);
     RemplirRectangle(T_PIXEL,T_PIXEL,W_GAME,H_GAME);
-    InitialiserPastilles(pastilles);
+    InitialiserPastilles(pastilles,serpent,longueur_serpent);
     InitialisationDuSerpent(serpent);
     
 }
@@ -95,8 +107,8 @@ int main()
     int n = 0;
     int m = 0;
 
-    size_t longueur_serpent = 10;
-    size_t longueur_pastilles = 10;
+    size_t longueur_serpent = 200;
+    size_t longueur_pastilles = PASTILLES;
     PIXELS *serpent = (PIXELS *)malloc(longueur_serpent * sizeof(PIXELS));
     PIXELS *pastilles = (PIXELS *)malloc(longueur_pastilles * sizeof(PIXELS));
 
@@ -116,7 +128,7 @@ int main()
     InitialiserGraphique();
     CreerFenetre(10,10,W_WINDOW,H_WINDOW); /* Peut être changer cette ligne avec la fonction Maxx et Maxy fournie dans graph.h ??*/
     ChoisirTitreFenetre("SNAKE SAE11 IN C");
-    DessinerScene(pastilles,serpent);
+    DessinerScene(pastilles,serpent,longueur_serpent);
 
     while(go_on) /* Lancement du cycle pour les Inputs et le Jeu*/
 	{   
@@ -183,7 +195,7 @@ int main()
                 direction_davant = direction; /* Check si le serpent à le droit de changer de direction */
 
                 DeplacementSerpent(direction,serpent,longueur_serpent);
-                if(MangerPastille(serpent,pastilles,&score) == 1)
+                if(MangerPastille(serpent,pastilles,&score,longueur_serpent) == 1)
                 {
                     longueur_serpent+=2;
                     serpent = (PIXELS*) realloc(serpent,longueur_serpent * sizeof(PIXELS));
diff --git a/main.h b/main.h
index 031d981..67e5cc9 100644
--- a/main.h
+++ b/main.h
@@ -19,6 +19,6 @@ struct PIXELS {
 
 typedef struct PIXELS PIXELS;
 
-PIXELS gen_pastille();
+PIXELS gen_pastille(PIXELS *serpent,int longueur_serpent);
 
 #endif
diff --git a/main.o b/main.o
index 3c504eb2d461cbcfbeade333781c2ace13c28edd..47723873a235b3cb338603499989010de5f25b85 100644
GIT binary patch
delta 1533
zcmZ`&QD_`h6rDG-$?UY7%+7AyWwiz*Ev>PIZ3~S-nzmaWogYzK@)KG@!4E%E=@xAr
zHgR3UFa!*jg4%qj2r5OeEJ%fXY=WA$Vq0lHB9yWs!Uk8|LPfz!Ja=Ztybp8X&Aa!U
zbMJlc&djH~zIghbU3$@(AD+q;UEf>v%Xe4gLk-s5<}d9Nt@)e#D(w~7Vf@!pAUp26
z?%cpP9J+yAb;a#K8<nl{(En106Qi<SHc?O@p(;B9vghR8H@>WT4>h}XV10eP>b0J%
zK++myiPsK;HV1)h`SPzom+ks?aZ;rCm@U^YH~sN@<m;vWVEmpNJm17Y0N<or`iU*q
z_+Tj3GHAE)im1~?W51}-bz`I;SN-L#yaT!Gue2c6)^e0h6!-js6S@aatZSP6)@NKK
z@@Kyf@#DbH4!H+;w`aeisYI^w5ttRZ7~afl7<O$IZq-{9cFltq$c8T$*ItcO21-`F
z2Dq0a74#Dusuv;^p9d=4t{sU~n9<0FYImg4L)AnB<X|L2!oY^if;;WiwX*fCtc$h3
zAxDVT58wgP*7)MAuxt0>UB%MES-7L}wq3nJlRXs&Z`WUP=f<zOLAiqwH>uroR5a_w
z-h{}e&_X-XpMG0E+ShBCB4sA&n7L>Fc`g;>dKs{$Z3DExIP3z?A?A&92IpN#7pP%Q
zSz%4kLo}1j(~HTZJ}GD-dCt1b7lxguACo(+9b5u-p>A2f>xDB>q$RNTVm-nq#kN3B
zDqr|`6ZTffR{0h%uFqBD+<?v?_fnVT%9g^`=|iwL6n3k^UZfwue%(DX=WbEh?@09J
z3wIP21NyJ;&$PEMFCKA))0yryxk8_!8B}mn!CzN!Tfyfx!9S-Z^je~)`t#yCJ%ImH
zi2M;E|1eT<xH*is3|2g!VFk}B_}(ra&+`B{woyetfH<ymT)|TcemcTSVdKXX;;fR8
zQ}FkC5WtwuW5o@ABgf8H{@jEe<nIN>Sp}>(>sbYVT)|H%_!9~~qu~6p$93M1aQei4
zsW937T&BUZ@rZa`CMTWOcNjFBzAru?%Nfz9Q&e)sM3ZKmLwGKQPmwufJ;U!CwvDcs
zSvr~7t{*e;_vG;RBxnJlYtnLNOn=QJJv*i!PE!e6F-dP?)3(xbc1&C)F|hMrOJL;~

delta 1367
zcmZ{iT}YEr7{|{!o7>){zWd6#>_aGO3WXn$c+o=Tg*UN6#PmX<)r}WfDJl^xmAPb%
zsP#~k1QwB4-iVVB5we>WgUT-IrU*X>whME_E>=YLoV{C~f*v^MJm>fSKj(`xRW{+i
z>1Gp_aQQ`Q2~SngWO%h|Ps;C0?iesemE=xBh~JmWOj3LjQj$R>9a2(}JG6sJrE1U@
zSA%^^@Qc;!)sPa0<GL2J8J%iWiJJ*b>N@FDaOkUPKdAZ|d+QRql4|gS8jQx#MiO?o
ztFLgaP%JszvO$PE{DhZl`A7_w_4a{hT=l0*<>AK}tr>m2&51F@QDq)`JmrE;4h&=J
z_svr|a2d0ZvJh0}6Bjg>PIIB=)m-Rr+jKQ)E;RAAm>lqEE+PjG4s6=WG#k@wD3)k8
zEU<36444l3BBW1xsYGZZjc%Oc)?YD0L=s;#gbRGcY!(~IJcnAVEXw{UPW{RZ4Jk9~
z*+mt;<#iWcZ+)ePjwSK=mek-I=ruIZ)yS+tPwk_;x~|Z2l{FL?*zJ6yiNIUq{_3v3
zcqiv%JF@$nWAyMR$<^t)bZCG|s|!kPdT278W1|G-OnccHffZA~RLk#-(FI;<pERDG
z^+dwbI-?yhl<#znXbz&sk++{4THMH}bN^ATu#B}Xd@>%q4$t|gwhXKVPFJ0v^52zP
zxgF{XoOCz5!~O(xqw{3;V0_^B<Bi8Dc!=uxtjc$hu;tbn;VT>kK`ju}F@YNe{zKrh
zzzd<W&`A$K82ftgV&4caus@R_{TXtFlYv{=<MH#@gcT+QZWs7;mh+8ydI%ejIl=G1
zdG21X1)eYPPZ}@JJoi>XSQiS41nz(#+3D)cLxjPPTZ}EYO%GSS_XO1?s8a&pCh+$H
zFA?~6f%E^G+r<WDmbR)jBs>N)Jt6!lc+36I2mkPK2Gf?$v>3wH8kXJyF{_8Q8=%ru
zgdg3VOHbR}v>k%BBkYj@Vm1$Zp0(KBY{3AHb`MJ$;2I9IGQ@D0FoN0PVVBI%=<rAt
M7H!vFu-bP027fn}IRF3v

diff --git a/prog b/prog
index 746595a165b7ff2602e890d667e3f81e5bbc3f14..5af8e2988ca3e0805448001c0f4331facc15d297 100755
GIT binary patch
delta 2170
zcmZuyeQXnD7{9xAtR349_R+OlJBu)d!H};p7OmOTiwA)KY6U?9Aq)QD2WnP~U@hi0
z#&MRf7YNa5j1hwWpr(L)EDQ!(hB^ikf(apw*}@g7>Dbu1ft<hh?p6kJ$@;#}^Zb6#
z*ZaQD_Dk%3iT%OGW^K=9^ly7^B#&Lo73@8J(Dvb!{+)NfxVL1bZR3GU`L)L*%@!?(
z)gsMft61kWQ4U^_1DB#gA0?WLx{6%RE4Q!IG))#%^(kV{FAr7dQX(oODe~rXijWld
zh~a{tsVFMK6_M>!m})@{jDMu5##${T0+|TGf*=V=7O<y<OCKMWf_)6%I2-<@py~+$
zqLxxfFrf<xDkwHVm4%cdB*+{26?1Lbh$%<aO?Nd-gdXuz!!j~#LkI+#f~A!MTm2e1
zCD4b6M|sG{=nv@eJLHf2cD9s!S>O)QUZ|oRh{^t|25ajbcn@bpvy5OhR2&hE%14*N
z|FH%O!<?W#Tj`Jb(-5NhuZqfo7!rfe4w_rHRqs=b?tS+(ZCm?kzbJQ$Qesh^s94G5
z!f6#}K^IZK3Ws`6PsJ=0zZo78+Hhy;){;$ykFDNaPLn%zY#f*;XlIe|Uv{dCsyDzo
zLUr*7vJ|CYk_l9ZO2(>3a1NN9!)Z<koFgDJ>cv5l<0xA35lteTvC~ABQxWGbx0!_|
z%|iVsF76n?#=)jozOe+U7!I{TP<^jx3{xL4R=%m51RX`8-+>W*FHy^QW96HUQk|6Y
z@(p`weZIxix;Xv~)KQ@Yzql$VEqr4Wwo<SKk%HJM!bw?ZiGN_A&`*kjt<FFJzwAD0
zp@CvT28`nyYYiAKX4QQdy-)~=(x@}oN(~h71@}>QY&QfWOu+t&5MkqYfQE?BJ=j6T
z#8pED2iLGOdNPmpWK^}#$xG+Ro}#(g-=|H96#2WTtmIGgQpl&ou>Y*61d?dKew{Xv
za_0ngHCgC%mBs$Wp@Yh(Z3E^`RQ#zradJV~M5yaC)c61iJ7-SH%tSYFO`ZWxlpCFR
zfTCh7(9VXo6_qgR>m=@+$VK`|zH8i^&qv{&)j<uW5$4@~-1c2o$_@+L<O^cBu<3uG
zx#Vq^hh0uKyNbD*esaU<!3)NF(E|+JCg)v6p)GJ^yos0bDCW@7gy+~P`+vi&yOCie
zJ9wKWi$|qDtf)%mR_aP^1s!=W#S#^|sOsihiqQ4YkP5pw1r8OVQ@%`#@79aA07#Y;
zSB<s7og{Rzp9Z_Gqurl;Mw*K~A$h@>s1TzrP0vV(Hxnv-C?P7F;CKfZ^ob~A=s{sx
zW)DxxPLVx}Y1zg%?i<D|vOW@oxj7H84S<>U^vLZL^=i)05Joi}C|;CNjUH_T5VQF`
z>Yuz*;^lgJ$<~r$-XRGw6dI$2@>|Ntp_1we6@By=Grpr&4c)oct9LsI)k#zJYcI)j
z?_ysd``y0W-M3(;;~v<dTcp=Lom+B?JmHzcddLdTEKcnqyF8VSAA9t1$1uHo=@8D=
zCQ4^)rz7u=Uc>J29-O`iQ5f8WW(4<Qb)bbcShuG%Z6($Op2h~OhcI!zr84REZVhE)
z$JFMI*~mSgGs=?5W@p+MH&o5|6Oq^a2kbAV?Jcm^BjP%&X+9UAbe(?{>JHe~qu{jN
zveq)}|1Q*%2DCS|<qrgSRS)2W(G7haQg6pT?Ld$$T&o^~p%_}89c9tsG7@8{(B0^X
z&`ISUiY$Blz-X?aG?F#dVYTZ;gVI2HtVN_|h8GsHYQ{fyUkSAMs>o|I*Vrc%8qzv)
zVdnMXEBS_`cLdw{7+`r!E>rI&7iXQ|TrRSsa;p6+le3<*S3YU4FE%*sk-^IInH-lx
T&iSThHPHXX_>d0w>^{qXhf6r3

delta 2055
zcmZuxYitx%6rRVHcKcvT+b!*Ow_Ok-7N~*JNCQPcMlMKE#EO)V0I7(W21-~6$hsuk
zisNKu<pxEm5)Cn+LJTVgNYl4$%MaQbf+P}Bq=eZNNudjDD>{C6X1j&pBs2G(bH49<
z=iJ8}^YO=g{7*@I^7S;%c&?`fGx!}s)}qex_T_&K7KOgbufOq1dHK@tiRxgzsHgFJ
zgZ1NH;Kg)pC+*KDw7PX&SL6Y05zWsmEL><<5uazk=}ipD1Nlhm^F$0I!VFa&P~@m8
zM`%~(^d-AfIgThHZTOL{6ZnaWH)ey~%5z*uj!eVQB!H}C{G;otJAx!<CD`ZK2k<qI
zsGQZw2dHFoJntfkM<a^6*Q8ijYJbAq6jSN+-%l!?rfY3Exzm_el|c(>S1mxQaxa@N
zrH5<_rzb;&gk;SaRrv~O=@nVjYUb)Sm@(gdnwVYSwM}JeE$1eH*@)^nRIna&#(Ed5
zGt3wM9z78(73ZE#)P(DWPji?w<CMfXJHR;uGN-K=*7dXJVV?U|gbFLJiG8%_u-9lg
zGe$lRAW<t=nFB<*%<^seSJ%Ut@l>mT@I`s4E)R8?*=rf8><yjcw!6(y+V>}-q--U8
zQtfdl#pe4i82;B8_8C%!(ZWglexXI<v%N<U3ds%l;utiGQe7>kK2HO*c4MZ>&5GO*
z-eRKA216mX-b4YvY8181L;=K5f>bxpL~&BxtWnf+CJMa)RoRRnYYLJej2nfG!E~=D
z$hocO<scu90uB?>cQAvC3*R(dNbm<{=BjiJVO2`yZpjy-&YUHwKgJ_9Lv&lt<eU@e
zf%q#rh*~~i9-@nEy?4@6Ig?(z69rq5d;60E{fU8oOQ4?*_&n`UxPfzRDl7%Ym|@4F
zRb*<`<SEeDo}kr4sV%qIx<Ao85$$wEt}UhUp{_Tf6He=+HMvuSIS=XK+zH-^05w*@
z4Q(^+g9o@c2Q9dr#4iVw9^$u2Pl0*>BK|rTP-oft5v8^9V@#UnGKCvPR1Q2DdJA!_
z1EI~_W^RFT9v9F#cKh322KTk62e1sR5z9y;*{Hd*t%4{wR}$atDY&gya65L5G5h+6
z(G=Xo*llEX6XZE<Ie1vgTX2NrKIZDLqAhk?n%Uv|#^Q>U&$Ch8KH2;AeVl2zkN0`{
zEFXLpKpAVJqq4INS;gH=l!}g6I#h8g!K|VM<j1REb_^A6gEFeSqNb~IA2~$)slT#f
z;OZuPhsu?<N_B_1burLumj6Y~x0JTJcf~?kqY3;D!E9#_x+RMEG=lF|x3Zix&*2h|
zL};1Ao|-w*sPsuO-RLNtbS(n5KcSNS%CKhpnTek?Ts1M*o(OGo9OUoQ)y}f9iw6-m
z{thAShe3MOIYUSqq`y07^A~A){w(2(d-Ub}lJOhv>3X1(^*<=(4`cI^u)#@f!J3o;
z;ehMs8P^c!a2g9C=fe0o#`zen*qU`1t8jbvVszl&aunkndegPv`z2ew1!L1c6kbXj
zBOFXkOacO~dc2qK>N>mj@wm8{X8;y&z$>8eYK-x?uqn>J3iqpsZ^M<0$Hi)Kg#QTc
zZyxCH=xd%3c+(JYA?SerDz?GckdXpqpD3I(G&qJ~?QKPS1&`+dMzk4ej6$mrdv7RM
zIq_tQaLE}=F3Pr8ji$k`rFSjk>HL{4MCgW@cdSS4@Zu?;tBbc-Pi2`_HSH<BW#5=-
zTE>cCx(s(OgB#1W<<Z|}H42~R&;un!)&iS}+D1D|p0(c2HLWwjp^~mdVMQvvP*#+D
N$!U5~jxg^#@jpEx0VMzc