From f93d8c5c67e53867d65cd7180b977413f49d0e8d Mon Sep 17 00:00:00 2001 From: LukaszChrostowski Date: Thu, 11 Jan 2024 17:32:16 +0100 Subject: [PATCH] =?UTF-8?q?dodanie=20nowych=20parametr=C3=B3w=20do=20apki?= =?UTF-8?q?=20plus=20edycja=20UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .DS_Store | Bin 8196 -> 8196 bytes app/src/assets/bramka.jpeg | Bin 0 -> 89446 bytes app/src/components/Hero.jsx | 93 ++++++++-- app/src/components/Loader.jsx | 1 + .../modele/__pycache__/modele.cpython-39.pyc | Bin 5897 -> 6291 bytes app/src/index.css | 173 ++++++++++++------ notebooks/dataCleaning.R | 108 +++++------ 7 files changed, 250 insertions(+), 125 deletions(-) create mode 100644 app/src/assets/bramka.jpeg diff --git a/.DS_Store b/.DS_Store index b06a9fd2706ace93b89e2fd4763d561e9067b5f0..4b2dabf0f183b068696d0d561ff32d7cec30e8b7 100644 GIT binary patch delta 16 XcmZp1XmQxES77oD5x33Ef{gqCIdKJ| delta 24 fcmZp1XmQxESAgBjSVzIg++gy35&O-|f{gqCV;~0i diff --git a/app/src/assets/bramka.jpeg b/app/src/assets/bramka.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..b2040fd2b1f337b881e811199c80ad829642528c GIT binary patch literal 89446 zcmbrkcQo67{688+l`36U%@);~MeUKcTBANFYLC<&DY3UiDO$5=sg<-fLWxakQ>!Sc z8GEZ5Au%FI;^zDN-E;3b_pf{IO-}xLzuvE$$Ll#CkJs~j>U;@s^|`j5Hh_)}0HC9N z0q0bJx|Yea$1jacRE6A}r96FH+=PN;r5_003-tH!b`#Qjt|RpP#WNkDAVsVixU0^+W$iK{|;F6|0iVs7qI^u*9?G_o{nZb`fC6nfa;&h zgW+3EiERJ1K`0|OSX{N$=*AF@s^87S-G8qh?-(;>#{AXkXYGt)VOJ?roUv+)YBANm zdxQI}C@AxiGjGwOCtNdUmjOs8mvMr%b?nAey6&h+mW_~&rFyJ+eZ1#;$Lx9Q%kT7T z`?@lN7Pu{r?eq>5E}?dEYuoZlH@!Z=QNazF?I&-ZXXwK{3d_evhtz_n56M!ffz#xZ zT0O@&nD`R+bqUJ?GaIR>hv_{JUI;9#+^Io^VUL8fS3Opsa8s z=06`MfD`v-qDk|h#Gr6p%`d%R|4gZljU+ZTHbBRVM;FQ-%r0V6`zm2Z_7w522G8tg zcGhRTIL}1A%O`jJZ1&6Up_;8Jl%PL_WP0pu9wGH{|MAhUje3*FE)jS^65>BRpwB*> z%3U^Gc-To%3xh9A9se!W9}X3K-+SpFli=qgj6!%IuKj3nPwl?eAlhppzZF=Pz0awl zBE)*UjYTexA7Ipdt@hLX^nm}xEW)$5;n2@R9tN?87-2z#@PP`|ELU2WOwrsE3BW+< zFdAFDMg=utd*Qf>Oftk9qcvV|rMwy9RYzVtYL*ujEB$rEvq=g(rmrGztE{`PS?Mh3 zu)c{B7Vn69y!=L(L7*Uo(Zf&&tGr|QK;;(|I?WHhPh-LC8#MmW&NBI|~&zR1BZ=d^t#z6-i^k6tLh`0@&%7zN;?vkvAz0o+$PItLv20YU$n ztFO}Y470)HQ}@-JI8yJ#&7fQNzKspdBF)+oOAkN0+*cU-=H(90S6^H>8t*}%n* zb7O47Gg8h0gB-E`a3d8Js`Mkxw!*`|Xg8*eKC#p%zAdsr^_c0M#v-BUFle_ofQ^* zj6Dh5Kot=h95Avw?DIA{nok?RldkrBTO}W0l!* z@?6FnY_LB(Kl~i<;gN!^M-W!Acvrvwg0|vZ4@YCVdv@Vv-dI-p*`2Ps?|y|hXLyAI z8Zyn%ide6pr^=Z#_q_Ge8VqhnRu3e8x~e%Uk{10@?SW4SvT_UM>JqmQYJwBfPLOBy zY>IGHw2~U>HE}OuExO^_QBtv_m#|WH_iw=!#pbq6Ys#$}yPS4?gh$qsVd;7E)`&{T zv-RWJ41xi!I(g^OCuD=et>Tw99ozNJAydt2658L>elqA?l^z!O@7muKp8OPj=ZqhD z8M}Ha3Zo11dcw`sZb7cDud7{M*WatB8;RuQrH8Q$ohcK~0l-)tv1hOzh}(3aH&x#b z0z-8TW-_B7Bu{jGbEO*O&%o3IqU0QKOHm2A1?;Vd4r{au_IoC8|gZ%8Og4g?fKBYdjCr`L^WLF2}B=p3YWF=yK_%mMJ z(~?VXjM-V8C7%O2JaL7iR;U5(o2YSihVQ?Z9IESkN844e?Grm+J!bVQGBj|XIXjxw zfo-oGv3s6L=c~m~kH>m=OI_HO7T(z21DL!u+|Ra@bQ7K;0CukeKkT^Dg` zHLt#tZdE8ZDBLfZ9USa6+zq#S&mTq!b4o~>jlnW)p96L#J_~o!ze##SIuuM{-aIiy z>SqMD+uL|&%@@z-G&fs>nj_Su&H)#;btbl({w&lDKkDc1+|md;bvs?%v=gloW)cIO zrc4ttVky%=>kSm$uZ>ht30b+%XtK%1VeAV-n1C#atu^wLbwgq7iaiE=`uYerb)p_& zw_bGIFgtHE)_Uf((GDJWtL|TW<)%)N$7+Q6+FfZ_(y8!GI@<1w@J;oWwN&hI6H19X zQs$-~clKR82UOZ|eB*L96X*FXz47Wh&pSZoYd}l%Z{L){l=zU{R+tnFg-Pnu9@=b& zrVJJwfnb@r4PR5~MPjAiWW?I*DGyK3ryBx#jh^EUBk#=@*39vKE=V@c7)+A?5$OLn z_SG%jiBG1lpAYYBCzoZG4+$ETfA@n zLPsmS)QcU$aC~RUPX77RitB%RD_K9-JTJ2Q`f=q^p7@tX7C}q*4fkK9x>WWDga!Uv zJRuK@r`sQ9oCDs}9AW#tsy)@V2i-U7vWqf(P@eWSacK^3qOLzp^L9VJdZBhbJJdK@ z-Y~{T>Mel+zVtq;&ZD;g{bhW&@b|bhq-+KYJx$Ui`e7F7EexdH6WmLp8_LVgk78c?UhT}D=d>+wUr&TuZcr)cw5hu&iRXP7T zr~PC8A1Fs$O%S9W_idhtMdxF#*C~x`LK{X;p+LO;$VJyjZ$4LdnDx7Q1L#6UHoowP zH5eIY{nro|9-iS>6g23a_M2lt*Tru+qMIqv@8Y!KpV{n3YHx%u3p z-~HAQd zgxizf1pTzP;t2^ceoS+QocuMGnXdh=Qkky6(9dxF>wbD0Vh727epcve(ZuWeoKBe{ zaKF%vN~q_+A$Om~Db(%Ykm_3ZR^|HGLXda=Lt=fqAUxk{!`$0ow}5DN7P^y*J}SA_ zv3DrK7Z!x^%zk;6S`c^&U_U4_qc0iO4yBLjTZPxlMTN6}5phDVFQQ)Ocn$?k2RF1* z?E8dUf((EXN~C|2Ib`a8PkbJWETwh!0w2J#zm)@I$JvczI(ONaUbvU9GX}dHBiGLX z^rvC<_Fx>4oO{-qb%YFb)AAvHTYs_c{WT=tPn-Fy;!-CgH<~Yw@dMt#txA|j=x{?t zEQvh=a8Y^5HzzyANIgn#$!)f3V;h_L-#8={vOTwPK-6r+JWaP43kMBVv>{F2))^FM zj6m8ywO7Ojzt9e4D%Ms*L{Rfj`id+x$xi10Ec`PtYkA1hF_ekHt(d8jmV>u96wIF# zh%9A9%O7e~_lCR89k1uV+zeQlY}h;9KRhebk78p}JrXAD%G2_!fM-$+UkXxebB|WM zjW9_*QnDI-pl-ThCc~CIDtvs+VL0-Pr~=f&A`FWYD>lA9&u^|PvW^M8(VkNnoh z{RXRCItQW+tm>9Mz%@K8AA9bn(B0FH8A>bu{cc2FpU#7~-zB0ZRc2lM`TlT$$-4c% z7ub6&|_vHZdj4r*(_VDtXj@^rz#Wm9Grtp@aUZDKcIpDO++SY4+4zAHRh6aQMaAYVl zJ9Khu#J8izW~wv7?TNchM^uD&lb}{CvbG^d!fFwT8Jvims*RFU5pt=~UCLt(_@`1X zkwT|39LBm@sk}z$^2GN#UjC8qm#49t-W&qn}Z?K(3tWnyyev~)p7^S?=3L8B~gO6XR^A7`j zHFm)z;jbagbeN;T~iIj)FXrT6XgV-_yqXEKEUIQ}P*-w4P&5?NiWkcH2& zMf&M@Zmb)7-95A0E2`VKhU!c$71UF$tta)Vyr(st=~BPL_}rLM{31z9R56VjaiH)f zrs_28G-qPJH6Gf97)u>n%mGPE!(`rbYhnyPkqL~EDXBr0qF2<&sfc_KO-f4IGW zAz3|i>-nps_m}2x;<%0F^1SB-S(VIRPWs#EI{tXqBSi1_fHz85=!4uv9icV1lx`D~ zW)FjT@4EK&b<&k_kGtbuNSMqX%$hiMPo7XL+^*MX-QWJ>rEvhqNG&)(i%*M1ffgM>*P?PDiScuPUK>e6Z*iKNOx*ediveKE%6b5&< zTF6Zc*fBz6KkB24k-d+PpT;@B_J|^n(R)YyQAtHYiN$VQguI zoq-;VD~1ed12}d6dp2g4R)PcRK9)Uyg)g#gSMR@Mya$d#1E92Mq1R}71z!v7l_;%h zO1~%Vl?8t0R}C>?zry?e+8B4&k?lT9^)E4o*Ly{|hTCSdm1f6*Qzxv>9J4{A+g>(f zU>PG2rmb~?g%cgUvNp%O26_0<-D@cVJH=2?64hsYdU1lcHX(?-sv_DbCM>cc zR=TUBF$}Gbh0Kag1@!Zux&3iMA{%gROx&9oN1aEJjr|xWnG3a$xn&dh_$e zc(dcZQ5>!j4e4cv!sif`*we{6dLEut9)6W2d?=>af00|AbzLj!5r)qRseYO|Mz~wQ z{0}v!1T@TJ%U6w*uxtj}NVPA~dXd!6J*Mqm?Pd_nnrAngmK$6}<6_7WL-^_s)H}6% z!XorBZ_?S=R1R@tNR;yUaNEVl%F1F%*CPQK&*@oI z8w~sP;73mQzlw&DZS*4AZg2E&IWU}`P3P;dY;+jkSuizBHmECbFYlB-g@4%X%HJbNfXAz18Dre5=`hx?jVR@^UjX_qn%M#c4KV4JgNz>I#1j6_U;o&# z#X#v++0lyLunPc&6piY`BSB+$_Gan2IkIhD)hiq{c@BX6YKsym6wuI?e{&kF+_!96 zvi53Kplv>~Ml~<|%(2d`Sec0yJ+^C346oK4QN>KRwL>tQ|5Q3L!u9+|a|fQLp427~ zk_^N+Tbg0S_Q|#IND3@V4#32(LN?l_sPVCRieL<5(zPR7!;S#(*3*Q#&xbr>>Z=;6 z0U8uG7z-HrERqV|U#u)fiYzycQmA_*!7--{A-~6KhdA6qg3sz0o)%y1=K%A2g-2eC zm02e+3z%dhKk30UQi_ilC9C@~p(CXG}v_1E(ki5=XoW~uz!5XWM_oK?| zAbHl|<|liv+3wZWflp>QKJ;F@W&Wyp>YmFZ4y7+5Stfp49FJYqZ)M<)t({J;8$2Xv z@hCc2>aY&zOG1S1|Ltey&Au~_7Qg8#C&7}@y2@2)pVeAtAp?{7_OVC=(B!w;gv z=&XLSh~p&Mn$W1`g&E2`#{45+&b)NOOn}8%Wr5v%f?PV2O8<_^h8TXcPouR=+8e+Z zB=*PY;26V$*|5G|%@8we$YfX`rVh`q&RcUrtE8_o@y7$HEeDjyZLR4ppV~VNN!@myURbJ?f z)ijC;hWWC6xPc6t{$bY#X%veJ*-}d#L-TK;KlQ3mWKSSR8+oT;PCQZpXevYf+2Y|| zMc?=f`(X`l91)b|a=hhw!n4=64bS(bM!N57wy*j5F|{dgs2nR4t>2*RA_mnd)b5SE z(UYfygBuu#@vL+>ELj35(+bN**Fj;V%jW=@t-XP1xVAFJdtRBWOzbBPdCt1a>x!lm zq`kgGb0F?}VSoJ5_d5x4Yddq@L@D_&+TZ*SatHRzefk zA*na8B@v9(57-V5oBM&$M{n-7%SeS6)`gYfUZbA4OWvKPpUeGGzEuD0Hsiau-N`N8 zo%t4 zjpkw+FiQIdqDZ;xlLvTO;y^lIY09L0F&q|q0zrOiWnC1a$!YROn>d7hK0zm4g$I~+ z4p<3A0q-3gH$m;=_X1R?_I06F{U`0LzF4L`U#tLp!W;?;I|s-`mQlZvTbihCnZNhx zwoj>=Q%8HJIqHZfFwhp$$?0VFyEO_S4c7X`{!Ti}#;mQl-9y-eP_ko8>OV-gJ@(k*dS64!$>zav4w@WwQzvmP@DO z>0JGwyLN%E#tYohoZ?rw2)A!F+D?VY4N;4=PM=Qtkc6+DnKi%;(;*u%d7X z*kg42(3?UrIP-3UPia!vxBvM;KQ($!iR&HmY#^D&wy_OhHu@+w?Sn~!rv5;Ppmod7&Bd$eR&kNU1?-EE2RMx_PgLaz9cvZpWegHVrO0H$5c86 z^1_{++T=0q4YFP-55no6<$i(I+D;9P8i|ULm8R6;W?iJyl^^#ny~)LaB`!_-{EC?3 z5*b=wuTCx$@GMG6yY6k%DSyK|{rzf+F=Kf}(I>Hw7tK?_1<$v*wY4tZ*7L-+j{m1G z)ztcP?)l{KKy5E^GEVu|odMmvrqBWHLkDiNUqXir-~BZ$%aGuc9pcHtFvfcm$bL;L zb01RqtacuR8MM#O4t@d0Jm}4gyFbZod^~s`Y|^Ot*zE3opF)O+T{AU1tVMhb+Kg)__&KZXGi#3X*`x%+|8R}>@8DGCN!{mf**I+Y>;B(TfM=1<^ z+8deupVlLI@b?MXOw&WfCOkq`A1ra&Mm2IW6zlh2iBE-~jmp4#gLH5@5jH)ZvN8}7W*Qxk3-j0|Vw>A&J(PXV zxG=Z6GrRyxkH^^SOcpUMMr->X9a7_!Rfa5XrxB~1U)}ul$}B37t+2FLuKd!fvhbJE zkE?KG1zkT`rGpRA#dq`-{Qao)Xmh^uWt|&qsrxY&ITTE7gV>1A`GjCzzd141MG6Bq z&H<=HK4UZI(;{eQ7|fb7*!DSGiLys#JPCz??mFFwHuN8seS=GZ$7uBWFg<^t8?2t% zC5HV$u3<+T>*Dq>-ud#Ii2shs{x52;`=~lq?;UC)zxF|TzaCMPutvk@0Q|;?cJk=h zU?g!2d<;Sno%pWnVZ;QZgaIk7VXJ^JUyu>>H>ete<2|zvDeH!EQ4kRY zmG%v}-ED06(J6Oq*jrVX{28NF_NyUb!)L>-@OxM4^Lu&*B6bNP?!%hi4P(iNa&^I% zG9=$$@BT-EJh)!IlMqqw$YYjJHQyz-?oUyNb=D-A5_3p6aJy3<9`^GmukTfMZ{V^* zRf?lqXTr)taH`LGKh!7ov7kbaRcl19@Na)Uk$dBnZ;P16Qtrs--)}T8FgW-gc>g6h z(|cGxwI#D+NYJ74%0zJLJr)*O~nNTolaHfY+-+&FyPC&dDj==5(II33E!uS zyZduF1&i}P|6T_>AEr3eSWHyRdP4V1f5NYH)s_8i?BQ%QG4st1;FvM68U$3#goDhy zZZrWC(C2{Y>#)w3+MIBZ=o`q)sPDvm24@V6}T1 zGz~2g8O6MfOPQd+7tR5lG||8*S#E{bK%ba_Z^#ey^>PYltlw?@VuR6uBf(d8bAwqe zxJJ}7n_@q8a|M}}$lBQ$vEt=>#MKOeOBLsU>Je;eECwg|js1pn@u_e~fM?h>?8RFC zE-TIS00i!F3Cu%uCD+tZiaIX+II3He@nSoHL%9h{9T-44?;T0@P96u+B6Ze$uXx)Y zYt&_UIq|tluj~9M8e4-cYe4MkoA0&%t0bH2odXzd(eRd4i&1%^1^g7x0Y7&r2<78` zQVDxyyWuBoBa%=hnd9|_V9lYjSUOY*iV>zKkWf?~4FedM6NtBjO=Xy7y1xc`f-c() zK|DfX>WVpi@w&K$Fp4LLYxtqzm6+&+;2PHkn zWNwn0E6hH5IFEJw1$p!i{uepch6v74+YAZ*DL$87{A$d?XuC0dbl~_L;B4V}4#+?Kz*vbSSb70nj;->)xUUHE0o~k3 zy9Qo}aPA{}zO3H`u*-NlK;2H>VQ$bo{UU|-g6&;b7|A7MelF7$k^-wOb#==_IlZmb%11!JtFhy%z~5_af;+pJQVEV5$VNGEpJHmb&6!MwX*BD+n^}hHj>iZ|Gpk+GkcDt}Rov06; z$yj($uYZlM37l!kDSV&BAq3fDY(X6y$jtIuI^ZhKnO~jEkx)X~O>d4ZwIu8Lt@@%C zCPVUsEfyv%!x#GlH;WOSNwmxkfsr{z`UGn}s;_NOxsW^Se<)C?jie*xJ$TES0S)aT ztkZ6780f+cMc`Z8UCF5xQ0Y{|>0uqi#fAA)GRG{DWuii)ZuA`B4T?EFelQK%lAE0g zDeeWotD}hbMjE|rOXpsd)A1@KfH^N3iLw=ba(RdEFuivk_a z0wTDY8%9vV;|k&L)FI#W*giQZP%=Mp5Q~JeT$1y0ii?mQ{ec0FZ}#?fP#i-&w>2aOMM#5^q0FG;gf$+kN=@&qR+^fB@60pn&K1P z3L8N_#(+reg0;akkxe0HpZXEjtuBbSK%74O2g8%0L+xae#2F!x%F=hnVt}*-UxUuW z=s~*mt@UHx^&paE8|SUShJr}O^@-%zo^AWY5E&V%I^2_$$w{m0;CHVfqVEONtfnPt znS;@q5_h|*X2O-y+;%~$c+14D3+Z`-Y>c;6RHEHznG+?{8Uvr98`Fm>yfQa$r!CCQ zJ-Ykyz-bQF{c-`ON$VaghEeAO$^b*YKG&z<7EPd z=#wy|+IQ>yct0UTSN@Wajrh0s_S$JhYPuUnWZq7iLBhnuh(=Ke5Xt@=Q0r|3U`3E@ zPX1}eP-lE%hQ@iuxi;)a`FO*VaYqn~c>RHvVv525+B9Jo+16;^e1!kMNKq)9TZ1)>(y9 z_`C=89MD{!GoQT1%>*GP=>(q5$bgk-Lji#YLDRH+v@v!LxQd5$+Qa^heWfW)|6}%p zrGo$M?k(ql5hTqu;#Y}Yw56S(fAWIln|(ytT%#Woj+7>#TXw*pTC>{aR&8L?;uZT| zS|e^8ce-Iz)7T8Unj0d$hdOLE3|I4T)~j$Bt1OD;mlAXD|6hhq;^b^9Z%6Cw90+7b z`i6SAl(f?jmO2CnB8v*Mhz(e;m1_`AL`XC4kj|GiGr_ph10pGRf7 zz$B%eQ00r{zP9&^{qsjn=Ku@5;Ni7*w9}VyKepQptZ$2?RVPgdDL#hEa&QjN&S$3z zrcTqm9>FL`U}qw8Y*3R`1<62KFw@qtoC6*wE|TsecN~y9F0@$!+{l^w^s|!b;;+cT zU_$OPswH^xx`9SZa05i?ow2uQvDTS7ic$u4T?11E(UBrj=<0~W5FmK>A z^@?XGN@{sjl+=meR8Xmq={9g;FuzinSbDeB=H0DPk@xT=Bj#9J-E82BI6;YWSq{Z< z4w(1nZ=HuN5)WqWAd%0yNEdgix#Ng6Wjc|-&B;@!Mqv91L5a*uE0>HxkFzKrg>0QF z`(V>82e@+p7mQFAw1|h$pdpV_VP_JbKiv|w#8H)@!*ai#7GZ~9lWio{zCPjgaO{q{ z#D_Sf1Cj2dcbo!Cj0&EeLC8!$CT>am4A?eG1hU^9H{n;joY-p6_Di85+hllj^6$zi zNQN_L5`E)8lY51M1?*&w%f!1))DbXfwrq*<&q%-_E&t}ik_6dzi$>~J!`)tCZ{;3d-?*Y)roD_X?P>WNVoX8+cwZ!JXCuwFO^ zd`{A#UMU#GqIa7h>#%mx9U3)?iKGQC3L~{#Mfn(P6adBe3X?-9xyk4c2~IB2oTLU` za7@}?m#>=wYzD7VNlGx9+55E z5uq-~ty_hH91-lA2&WQHUl0aqWpCe8rqNoz@bzL=>5vQL;d_N~>%hY*;iAI7%5JnM zt$=oM&UjVSD&eqr(TCw@%{a|IvvWXf*7A+w1<+=ic%VXWsIX6E&Z^Nv<9h$C0qb`=`00)$sS^SfBN<-Uq>+N8vR}H66 zsrSal%<}6kr7G&`VvJnQY*D2)_SUwRmsXrY87EpAR-VEYJ?+JPpVU%^26E7Hu$R9T z4a6iUFy|QqTyVvPls(757JBGik7%Tqb#ySg3&qsbp7RfOsft#P+JSiUwX?;VI$tRLP+z#kqpclwB3iC3G%lW>^$^Lz72Lj!+^-N`+!o|@V{?0$7B z8t(5fJE9Q2Q%+nY1*B3hanZv1Rbmz;^XrSpz+)FInJ+xk#DUN^cK+?0lm3sU} zuNW6h9Spad!L3CtC!(NfF6F4HF%#rrDm*$fFy3$pTGHF6JL zTy~Ux#FQilBnd5&Ijnq}i4O66e6(ZOrXWIixX%GOB_Z1>un!!R;(1zu13L1HV-1?y zDCI5u9^mpB#ezaRyDf9YhSLf-I#}^aWHBc2p)t+z&m;!#HZ^z%aRmjN_mFAMud)YQ zs#vUs=9WAzT%?XI@YPRvr~lOVQrvhk>IK;qp72^~8C{DW{!8V3Z)#H4RNqwPzH(=O z;V(1lciIrIf=-XLly!O8eJ`X0MPJUNN4ck-x=?2@UH{EXq6{7hVIw_9_T{=>epy~U z?Kf#7<&&dWF>wSo`vy#;%>pjH1>w!Ey*UT4_HaGUi}0i%QeVSHUas<=ZX`4dlCS1c zS@K$8uDVTZu;qXVI(6E(=l;vK*0M8I8i86q6ELU%#?h*o`;fqDcWJQiE2?11@zY2z zneyM!yZwh>OY2YPXFj`fDgK>zjq1AhiEGfSz8ttz39240!Il+4NA3B?K?cCfcuLa29;T!90Am9;RUT*W!oT>e^1PsTawW$wiSA?YWuCzbAZ&54xy2Tq?XF^vCxg^n#x1# zKQZ{r2dgWoTK|~Vb82Z1yQnN53J}w9p%8Vl8;L2^7`u`>mNJ*;n?UWQIm}Weu!eCx znOf#?rW4}0VK7=)7jHU#8(XLHx^A;_=4EvPbyp%QdRTuFo&S1tMR#HS>&GYMj*)Gc zLh8H#Gl9W6;*_&-m0ufckuVym^a71v_%;(b-|%Ii!NS*5yXUn*{)o#ynSNyvj zw92?-^-tG}Mh1=^8whpxTxoQD4%J zm#NJ`e;RuGW9>%e6@T(oSjMujpZIy+if%izw6>*`ZschBZ`@HU#>P!gn9&9p_34LS zz5*}Y{5_bGD^xE!3|^4dOe*sxds7bOt(GD zK!|3WdCd&zl+gR9=VjT^){n4^q>|wz$5I+~6%dy)G?+I$eK?A zueixGQ2>(qBBG1ez2W)hf$al&zO|f73ty6alMerdbP6sHhx;4o(rd^W(W4=iNF)2t zrCmOl%bIlkl1>}T?zQSpUTG3YpBK+SHv3q7;WN{xE8R%e?svn z>Jv+8^68jAS%`Lxny-B+`V0t`7JW@q#ZrFnn-{)c|IIz=N|fIGwXcZhR5K z_ysvV^^m`Vb4mVvuXMO8*Qq-8q1%1R>Zkr=@I_D&%m{=BgWZUQlrPmuu%F-Xi;vF% zrbAgq-b~nqHks6K?Gt>2LRx>h32vKe0j7_6XB~{6EwXzk6QIu~bZ!_Uy-A*f+LYH> zTbTKC07;^#FJ%Ylh7){Aax3v{GD_VE0KP-FU2p#*<6MnJ1vc~F=;7j&|CjN!|6x;o z-EXua=Z6~_xZlPzvwf2LeY{ll2o_3pgv6OM3Dg0rsl=i2r8L@^3>PIieFL}MAm#dh zWoIG9SP!AVI4v0E*-g7PA0o%8zr`CCn^W zr~JRl<;8cAQVDvG#ZC#$J={0>9-BQnb~E#QjB&8p-i7`&*$Y&&;pAgf_GG z!d{jde((DGut?Q6byw`}vVGF}AkXsly+2++4~6@t=p9>&1o#cj#N5&&@gKKf)<{*D zWvAKN$6J98E~*M&Z_cYfyRW)!sH@ytpfO8)j}Pv`yj{FCOLWFUZ+pt|#^VnWSL$VM zETS5kU%_S34OM>*Bf-z{=$%>LrASC8ru>G7s%;27Qm5Nw*vtaEu{duwmI|L;&f!P;vwRa6=`;b=^dngNbZ2>I9jLN;!#LR?;ydt zZ%OsG+!+lZjwz_o7!pR?z5Ow42`#`!a>2uhGo;%Do1OalI#U`o|AXa!ZY7MCJby z%w(1S>uqC`U|7}RmsHyGl})yIR-(_cmTx&YBT`6H1`>@$N-=3a+8uw8-rzB&BO;`X zZ)CHokt4_zy@C)MyQVR3vTFjDwU>`~P^Vs*#c(g1E)HCHTcUj;+1c zdrLi}KV~)L9O3E{_aeaf*{&=fvdL(h$fl}x{HlgUHr8eF`aqM@f&ht?Ap9yGlL=SNRev<2hY5ctbhBz;2hPZg>x z#@CJOji&I>7Y+2A!*D58c2?3SG7}}smvGg7JNVXsZ9l<}-)1ml84@RT#9PU3V=4U= zY2eQ{QfuEvVg`03s)YnXl9fzJz!lU)&6d~lB3($3#vS1M1JxMy%sIykC9fr}DeyqKNkExdrO#;wCYaA)L`Q6WQj7 z0|SbAxr>U}NPN#qzJg*E-{?02%hdNEGbgj31)$dTx=n49wMp45!qTWtJGlL78+!=5 z$+)_PFToy967I`9)odUdeGf?)>&}71I$#%825s;}bRl)9DYm$D6)eST)HWt+2kLI) z9Sam0uSc=mwXw5?Nx&N>BQ7Y==JX;iOt#&#ngcgL)iWNC{cRX;(ed&x3c+fP2V$;x zn!m8>I+M5D3~P^RF@}{4`hOQ`doX^a);x5h%ese{<=qhcK<~h!XY~x|X%1pmK;Vp$ z8%DtGmjmPi`^i#Emm3#=7s09#`GAOA{ z0L&Q-x?a%KObTSRza34G32ZFP?F=6MC&1o{r`CR%hYsG7PItraRs&;-@qJTL>Q>09 z%^Y-!z9(1uW2805B=tU7d6KMAL^e%a*_sZ?`q?J=r_R6>R67}A9O`u!U25&wCX5eG zGO=l&W-~C=BNz-Fza@hLSJckf<5QtBukh#AZ21-G~aDNux34B_QEGTjXj#GFke}gV&%%dr49nz zCGoC?%xtVaTb&|5!E2DKX;%~^_O2k+$jRD*khU&EwCV?Ji-qrMbF%p8pj~rqb)?wx z@2qQz1*!{=;C_$&`+ctEjl=4t_?~fGYH4f7`##STXt6zpqaEFp+a z?6!lKBaJKxlJKh^wMvGHLn=FnO|9)aSu5dZGW1)6v{pSXB`MSX%9|Epe~pT-kx1TJ z7VBCa)Jfsmg^U0$#5a$9}mGpJFRjdcjInMPmhG;(FI8L_v z_D_|j+|~bbXd~>#x*oQhdrc3{7hsh zSqe|>`IglMy%)1$>gf}qk=Q%)F|5l|Ho_H+KWRm*WJckUv7F20cWr*)UN-}|z_40a z991sjE@A#3X=bvC?G0Y6H#kU+1YTZfReE>0cZGIiG+0auf?U#H6=c&|3b!-uYGTX5 ztC3b$6o=Hz>ob)rmR}y=tpr%~`luYv^L&91C+!lv{kj}qJ~(}zh-l_ex@2b&tAmqJ z=@b*_`)qEYh<|_oPlo?RhwD3s<&d&O=rs9*9iF)NSu!m!F1UU(_<3~ zIhi?axVDf*(Pt#bhX-Nw<} zRZN$LZfk0kLPq(_;Ibe;3D|9~Fdh-Ei24G2>qs5QH6t({A;}U50jbzJ(^;d^g)+?o zL7t^cG-*H|5sTo*y#n%yHZ_d2Fs+si@k^=G6-dG33qlV5!yEL)&92B0( z)4=y16g%X-9_`Au%Yt^Iul-EIu6v-Dpf*9HGH%67fBC83EGgI! zpZOutJx2~7mmGP3GlqghBOWUm5O{vjj9hgJq z47I=Q9*wKD6A)1?&w|4%J0VNSS~mHMy~bM&s>5vo^J;&2XF=1Gkm>C%BC3=OX}tyP z1#(BGS|PfC?Bs{HVLT*>PT0%}=I8dR3@6QCKI(Gt3x6_KbO^An8k-)XYlzUbKH?8e zNoy!ZDNL+W@7qM1@{|WnOJtU0%SEv>lQo({g#M^|t->yCO%iD&JwBxzb-0IX=Ol%9 zFGw{`0GEBYqHSC|jf%IU~uQ{cx4%fx;Z@PQwNLhIy?C zp6!w@_lC4GB{N;#)t%ULEq#4Rt$wB;@|AOM_*?$kXnv!DUQg{dPOt~Ye7HDce5en4 z?>m=zHKfuM-;Z_@nTE7BuP2%B%CayEz_(QCge&68WCr|ZOjk}t?5c#780pLLgFzm`Q#eOr=bd|PSLK-19r*67 ztPbu&{8RMbe3Evfd|yBMug0t8O3-*~{qyvXIbXiafZ+<)iO=u4m^4q6T zIA8IBRt2KNKvpYEjI%NK_}fW<=KHY-C;WF#=?C9@Mmu7+jeGlvJ{SU zVDgIF3M_tf$x~BGQ*gYZ+&e;S#Y(a;%YgDh#GzrfH_TdSMz0mo1>*2J6t&sIoddWHR?~{7 zX)bKxBPIBpZqUU>rpYdh#bNtB!<}Fol%Fwlnz#spv zefe(uavoH9d}VUDRWR`z-g9d|!UBI{M6zJuS6%XIsG4^EEC}J3H;}(LN*(I49~rbE z*$FsjcnxzA>&-UeeN*1T+|Adlmtpf*a<}P3%Tx2M@M&u~(yOs#L)VH(MuL8iAhRfz zDyRh`fS=db*OA=ty}ZeaG|9W?V(;I9t|ztikvh-!+npD$|Ksv${q*%mHJAeYi9S|^ z5WOnWAcZtwt|9te)NGFmvP>?qYEr>KXT@y>QfHK?dDjNPHfI|WX9v=oJdCt3L%*GU zT>5`-bnWp>@BhD!N+lGbh@BEDmz~O`Slj7>gQMjVA=@e4nAs_0nC;{?x9pT~B9`3m ziCJ!2%;l7W7+WTnZAI>%PcD68*6;KE{pqpC!yli|>-~B^U(d_yBkzgmWuTvBbyPT* z<-dR$_y1=cRzA}h^+D^>I7KM=z`X^}xZW5Q3*&YC!?5Gi9IcHUBh46|o&va4m{b8z zs&w3Th6AwD7t@v8j3G{ZfZ?R7|C&$V&tP%8gK}@(S46$ZwFT1jSIW-1jTdPB58MRw zDg5Y_zV-9|Y)^mEgfeLzH-u6GReu+tuIE}4eQZf8`Cb-N$$!){-k^`mdmanMkn=XB zn})7QbDg3y_8);sV&9wp&}k*tEke_eIuw<#3NsHcKQuV9;m35Zzq0l&zX`s5THG8W zBktGvIE*mE!b0zVz9qit*H2Le6~yk=q>j;W`O(%AoIhUKVgz4b_$|fE!gLFi-=2E_ z2W zC!&HU5UMyBbGd?Z{XQRj{Kt^O%8aE;?2X6EBpp$GURc4$uA@Z7_O+IZh>%MT$G+eW z4*opE2?zGlY5|A{_KJO^zh|nENieFMHXM1Ab*A~gzQiiti z*)jQEh6K7sq`9IgA7!L4n_Z$h065M_4G7NkkFQd6w?WRe&LNx(NfB`AFL z3%?D7cpZ4)S#?ZC@0*b`UCA882{xk&n|7y(Gb;FMqFDC~zgpe$kOxbhkM8S_7SnnC z9d_F9p_a0=Y*u+NUL~W_ZzDh9Q%ZI0K%9e@GSR-_2X*)tOnv`E4JORANa~?opCKl-;cWZo(B-uldDKSWA zw)=2*e_31uQYWN&4sG6{Tx*L8T4+PE? zvS5BCSA0>_eY=XWgJQ#Jtc}Jbz@T)#YWX{LpA{nn3YiYgxvuQl*+0Vo)7-u0nqkxK zm-oiubkPMw?Wk~`m*4112?TociC{ht@5lGCgJ_Z_T^)BK*7E-m=)IJ;@y$&T{RA2KyOEG}E$BYZf0>Rh_R zK+2(yU)by49gk|(tW@PuEDB9bjn>z~K0i5KOrpMR=sZE3J`1Rg@idmU3RI1+Fsl+ZxkmEQv*wlk2|o zi}X(!5+UXKa3B2@w8Y0+evbX~lm=y+K6ALY(kiiTgMO^s`l3>;t(v!Fmp%WikcYx6j*q zK;gwuukY=ytaMJAxaB84uW>4wXo|8&%%%H*>e#`RFS7IE5s&&7VD;77<;+J12TgA^ zbK_N*mq1}#kCNCkR%Vn(aZBxTgW?lmr;HZ#ckW7x}+X_(U#Y9D(W-jtQ_oiKQ zCicCBsd|T%l~8U9)H4X>lEu2Vgsr@X-o`5sb^S0$@^GducyDHykw3~R(0V(wUlh+B8a>vVX;q(k=tQZj zOYA5_kRCr~YI{w0`hB4$Xr6Yl?y_U5OjbrbYKu*8yA*KTxeH$>bCYu8MBEga#`+mD zN%CxMYdl?&9Hn|G-nfV404gR>f+bB4t-G!Y^n{KZPghj85$3}WduzolJ1hD&0~2g* zXVzG?N{oSkUFIVZQ9PidAhL5u8IC;I0kFl~ShH$#W_*@MzGS;u8V{$PGPnm4xNIZ50rBra`?CN3y?f?g^RS(6i&flZ$4q(%U6*~Tg zC#kkdppLzUf57U#vQTj_OEUA*e$8#iqo;aWUKGYUI&JpJxgNapYjI+AkBN0m^}eQS zWpC}3FRHjdIXsdmmE8SMeAN4tp1s>1Gtb26*?~o%7wYl{bN4a(;>`6`AjHKrs^G!vf|NxMCG~uN3mg=ifL4eWPk6cgTzAKjV#sZ~G3?cZ0!?~da|WzS}vR9?KAb8>0B z=Kt3E&*bNm`96EF*;=ZR>Nu5m?$e#W;Pmtn4`Xi||8YR z2!G4$5P^b9sy>mu3|j6R{yO!hvHsy78Nw_Yy)GWismlHPxKQR6Tx_1{ z9mjZ7N2^^~oPSt6(u3^SFvRSTdA|?zaZ0lXRAC%QC?spHc8)nCU7NDo^_1}nkdC-F zGmm!N*D-^umd^(0@sopN_7Ai_gpapcH;Zfj-$0rOH!PKVH*BQut_@X_T;1 zsnEu@Qj@t7Vqd?04c^c@*Z>e`m@y}moG@BAyi(~n)+5K>@XhOEnLWA=m+}%QA9hwD zHIk@(syzXys?_}*&By9W_>`)~%7i3RZ*@w?vB%L~v_sV%jP;N18CtvYt$T26^8k-Y zN6w>XnO3!z3QwP0)8ELYAlA)fCL6gji*=mLqd%0XAv*=gCOLy1ca7o2 zbdNRq``+@2JcHi1ax|AYpG+R#M7yE-p?D%SPMl42^8_(}$*lskZHuZ4yCue>7IF>w z+ss_eeq>Sq^VjtQp^>wro|4?cpwjX?qI#x5pQxDiGHK?>C%P2#fo=zSq5BT1*41;<+NX>|2*LtaAtA176L%o=GbFt-mm_JZ`e>T4_nEgm6r4^+PEu;ojuk z;yHceb+=NFjBDwC_%EHiSmldq+viC6yVRpdGsEEgo`g(PhIUe=qLY%+C5I#Ls6z!@ zxO_#Hij37iHeTpoTW^OBO12l=`wY}jjtkB{yw`DV0sqefekn@${f7Qeiu+C>aK*Yi z)}F0Ra)*$s&uo)d12zi$T-sz>Acn6X&TTCIes{Ld@yDiPUq1Don(!++)5X^9!YL{i zMbWllJ}ylOXZO>h(sv4kmuH8)tnpAhkb-{B_@rNjk(roGT;(ZFI*5q_u z4Cd2a>z7}CUHi1uwf<46doOril+;`tda%Cqb4k4>^i-#@Reu@FtOWZL`nAcef{4lk3+vUd0NG3{61 zDeJg@H+o>-%ZKSTbpHCj9+ifwV!C-3AD;fhDx8Y~v|CsO_B_24xp>y_w8P!9sEjM~ zS^KB>fuY7DH~#+UGoAU>&a^;oGB3k`I=@2U)gK|ncB&pY7shZ7Mi-CEQjSJWlbtU9xqd)@RL zey?uO8RehB?f`Z2JzeyoXZ&Fxtli=1d|;?kwvO&^h@UI60!2lP)elc6obea$`;@>Q zh+&z=^D#&fhgO8j#ot43Zaku#$gHQ@CS``Pi9rC*&$!@`?RPqz&sa4{_Zo2jv8le)f!`s%?Y4cclx>ul;{NA+6#N3x z4J;h0{1HW9;eIEpl)Rm(#jEZ@OPxL13ZLk0SV#eql<0At?{tAr4 zlhJM3hjnSo;$P-O8dhLh*?cmL7#u9|Rd)f}v-)BxkrqzQYEt{5ion3?N)~fh{ZkZG z|GmuVw&Jj?B;-r+e=KN+gpq{a$5>72r<}b8=)W15k(<%tsn)ywTRi4VKql*UFO^$wx+wo=fqb#3dnL<`b`F>S$Q6VR0y zYKl24tXRfs5~!O8SxCh%xhMP0SS3XBd8I4wO{D{@QgQ5g1t)`W3=hHtj`(Ux(Qz~w zr%1M@R$B4GLoFKc(b{I|QfJzg{^szB(L<92Zo;3C_DGlZ?3c#-O;w`=4-q|aMd>zQ zIyf;nagY|guw>`5`t1F;($BA-Vpf>P9eO-JS6VGp9&~(m(Ay)W)I#ImiG|7Z9i>O^ z^}f$Nk;HL`akk~Bly+5joOW~<47m~O<``;VW;=2dUZxG5Ek!)Y-SzkM+P4l&{Etok zgQ&}(byN^SY#1~pA9^{kOxsQNvUqq7zpqDJiFF=A zVYK3rE8S66t&J9+7Q=%H*Gj(d?FLkTucxoJH9@)(q6T^&xzd1-HYQuj5z7Af+UhuS zol~YP><%(#+@}Fljaz2MuMrt3@Y~q~8K~ja{Nb}DDg@FWJWB4m?sHOdf+|>JM00k| zK9*U6nx#aTteEnNae0-!8Vp?iu_<X(1{*RTjEMXALySWwj0seCLj} zy)VQnv~UY2<;$44ltZ=8rDy8~TJnwAm150-*evI}jUFtZkB6y4w)eq}L>V{%k$7y( z0m|{6-ejgEYvk<&Q~Ayqk}y)e$2LmZ;=1TF7#O0wXQ2|o%N$eDviiFmyJgZv<4=wv zIQ5`Pu1z8E7pPk)sN1gwP)gDfpK!`qkR;zz2wKr8!G(~zqZ9E2CIKX;E04!fk3kY& z$D_@J;9cM9MWG8hDo?T~0yfth4r{U=Q-{WsxkD6nNz;fgp^K@EvMMKMUxhJlRJer_ zeh=?C`F2NUgk5DNr0PQ2Ih||mltYzWx#Jmez;%QW7FhD|@MGaqnN|Hpb)c4Hl-2c@ zEX=>$8Q`@$g`I{h3cSf9S05wQq1zW<$4ezzvV$(r*cwJ9KRd4%qXYK}ID+iz4e5+xxKIg9H zbx{*^E#9gzv+yx&HR+rG7xHAWl)Fjw0aZB+QlD_hmTTe}fhN7B5>gU7nD-MD{02T# zZs*e+z_FN(bman3HN7`A_YkA=#P`P^b!Ky5i~EB`3KpUR5UuU0unN5evJF~6#>&-R z3(Pz_m}>bTb&wY-z3`nv9uPj&+M8 z@gj+IqU&J@BtHO^oese!;afl|?jd6)rju>6p@gi%w;B~*Zg;+K0sUN{L2<7sR zq2N#~=(ux@y7JmFOH?5Ccg(8u4mF%+FB*%d-wnL`bA(^IGYH$5Jn8E3&Cj%G^gkWE z4#fshf06ZK2CRBpQ28L;YBhG%3p&>XM!%fh%ekg3~OZdtE7G&^Z1X}XV`1)g$Q@^R{btu#7 zfm@fS!vt4trV)|6K;(BA>gZ2=i2b{5^_PUZ(YQ{vdolH@rrGetpMM5np>v*shNE>*nV{7d(&_*MBj`29GPh!U8Kl{=; zL;|HtX>{ia#$SK~VBF^H9|Z_~4z1z$Q5@1bE!WNzchC|!bO2uCvbc849NZZ_gW`-zyqQu%huuLF6IpVZjd2@5fS#tZ!+q~UR%o^CUjA6mVO z;%L1*X7sY3dcZ$3_w*}4P+i}aa{##tqc#$7q9fpIUV6UOWfW0sKFX+#8C}NQMR6$c zuNP^x>v}|)sSa~nohL^1_HhmpvfS4!#(CMa`17rM@L$3j%?c$xEf<$~7-D@|m+RH5 zSGz1@wv~r<(R`;hXD^es=&3_Xc3M=*-k$Z zXMa1sC+5Dl_s*HS{dPyqi-vlsvt8(&EgRLcW5pBr2c|1MZW0X7xW#LE9M0RlYO05_ zCFEu#rd`?Q%IiT2sdCyg!tfEOdKuJchFN;Em=ask?Vs$czV9)%`iF7~oZ>YsaFD-I zw?Ny*e`ShE4_`ECQh$bOw=tBTXo)UXPV8S%J^=#&z4FSB0cjLxz8o>_d2c$`pnti( ze{sb)d^yd$yksQGr(8r8dgAMf&p0F+SMymS9aXXZgK|i=59mOZvsgjM8|JpcIxsp60Iw{ zoa^2I9eu&r?@PPGGfd3?FwNXeLMg-I_LJi<+z|=mWxoUda)Wxh9i#1_U((2&OZ#cD z#tONqZPu){Tkc3{HJ^SLQNX`C_-SLs^vIz1`h}JLK_-jvEqSBtmGBrZ>UG;&)_|j| z>f5uBW(#y=KP7U43>VK?rhG4!_x2Vo5wYv|?GiFw^0|x7cWL||eKYA+;J=FBvs}GL z#3L5_uOFB=h!=g_tWx*$5nOkG8g_I)?M+GbLtK?{rQ6j2dhlEb!Jg9ym}040y+a) zx2e+gPO=6SQ|0PDqtlJ}H+a=A-u0!#5`TzC914EVGZiy$i2qA*`$YAKRi8XJS4MIeOY!t5i-9knteo z_;r@&-51|{R^mlkp{e@%PQN0r`a5?t1*q^tPE}WUty={~c>LJpeNuNSeeBq3ZK&C( zrjXMzyl%Yz*emyuZ`{%9&?n;hR8!kgUoYEHcPGM8TgORSGWEzEMQIn$7`s!Z0-$ma z#$Y#cC;J!GJMe0M2&+->__{swLC~_ZPJ7r_h(l5t^RNHvRD37vb9!}bNR)$e3nAk6d}tInE_TiXXh|jm{@mMrs>2ZD60}vU z>~{`eCsZ#Zwt9^QjO}|hgw`7)N4DZ`g9q5c2uiL_EwJ3DkzP6I@}~dL+4HRfa-kc= z9x8_IC0dZwPK&Ap^^|+_f&r)VnH{TlXBzJpzqn&slWJ+%Cx3I#Rdx62GYa#Wz{in6O{$zdS7{TFga zUS`|lt`bhk&)0(I_4dBnsJRX~fI&)ly54E}Wo8Fv`*L=R&F_#>-W}?pp>6r9jFk`} zYs1MA*h)`A-O*3BBW`^G>MpRi-tCHa$oiK+@JW={b$8z++2a)1~EpHoGQHpD$>(fS>P3xmlk2X; zP&hS_`ACG=d$rFLN|UN8;Gk?Vk}lrJZ8j*Kb(5JvXNkdk^-TYVe|ALm=7qiRa+=UN zWpP*12b~Yn@`l1gC-z%>;EH{#MWM+pUUSUfGQv?+@-E43o-TH^7My&+-9km+zIad# zq0glO+6ys~>SRljM0JY~Ik+oK4<%TM9iq^xY)i++AWPFQZ{R!7jN9In?3?k<>ZHt()cW3To7(_(z8;EA{BM6z3PSohw+Lf5Noq3G>pybf$MDAa%l@>MNQ zZi^PV+ld=@7B_xeb_R-@IE6;Yf(1e7%`z)iIAxERp;}o-JqW!)>68 z#hBwq_EC;Pyu-Mkz=7E?Hf>jkQnn7}fwm%@LI^II)ut!N?1>UzLi>H3LJe4)JU@a3 za$pI%$T#@P(EN%IK0(X!n*+)_#ulxZba10;4y`P+=DUfj6JkAaKf_o1yyx%lVJ?WV zZK&B;V(R442%_m_&V-xg&^@Q*_E7e3Vc&ei z?SQ8Lj>1X%%KZ-)H*zi(Slk_Q|Ge>E*1fDCGjpa%26Z6daeA?Q-jFLc+OUE+(~vo&by+*k%B{h^#1I|dlb&_p z8Fp;?3RacijZ8XZP3Mi?I6;0YJ-$(_s#=0!$hKnU!?$(_Td_ZhY{iU()d*q2imyWZ zxcVO%or|q5t)-OThi+!OfW1wHGgPhjK_R5QvsoG(dj1zJsdG(Ds;UAV$l5W62*kYcwz2NU{pw7uz;G6 zl7b8Fh;FWQri+dD3H+3sFY#{wHuz%`LD@;lWl;VcS4IWN2WZvdCv8sCiy_9 z&yP(N!^uB3kxO?N8%4n#J0|F@<;STT%a;x2_u?)8NkLh>dpW{SzPNZJXK{bn{iGD% zJ|-jJxgwxe17?L@QBT2hDO^}>}0op^ouTUN$ zV;m<((xQW9whA~#adn=L9)8l%zTJ*hnC2>=&fbT&&2w~hxEd4>;K_Y$YN13mITNSd zL{lW&cPvU0>wJt=6TR_C=HGy2ss#}1*vL&`Egb|yKPB{NAGX{Wk0x>nvlu#l-xU3g z-Wltj4^XIhhjM1?86#)#6FXO5h(vjk;JSk+!EN>6VnXGJ6JS^@PR{mqx;prLkl$q~ zxsh`?$*O-ad$q0xIy#YTjE|QaX|8dT(LY07Zv17;@NAnkjqdq7|HXUM!P@pQ?SAwD zuRD$M=Z(d5R-)`2%BvtiZd=HVsY04*pAE6pGNw}-O}|-<&Lc{6M!Z8i%dSUC~I+0TDSyqTVHOa+m}z3wbuvhdYs;? zA+tG@?tVhz{cAQY>fRfbERx8mgLAq8mi$`_r@!IVWnl&OQp5xFegR9^U#FvdbD6ti zdh8IW^%v`m6AzsAj?Kcy$sBW4hRjPU3 zXq_>#P*R;z3HKAr?hEf_3Sjh_V1k?}DOH&|g(#^~2(CB!`A+5|R* zy*PnMC~nWxCOx2R&$NVj?&WUP#M)7a+g>jD01sYW$06-;2{vK5HlJcMWbQDJY_>0H z4J#q%^Vo*_y_GBxL9|vIneqC0s9Z{)tDWHPgRocL%Zw#(xQuE5vJ>_AVxxGf?zCmZ z?P&AU=DL>30n)ZH6`*T1qq2hBCc3jy0O|y2{f&M&(cStdDX8-I)3-GI=sdrGrE^G? zQsXLv{{qZkzV`g*Y>9&zjj*_Gu(0lYP&?%FqSJr*@j2cf0)kFv)?L2Q@Cvn8%kofT ztNEvFw!TX!+U)XT!yuyxF~EdOa!aK?v_wqpZ61>Dp}Gg?o8zrtMkY18uWBoo`C}!t z*esscw5J|ws4}1422=Lh{)40-ePP{&Z0D9x&eMvIU3lg=fJJPdUPaWi+rG0%339z5 zi|-tDnPzSuFXE_>;#t3WVSOIRI5LLC(2)yl?CUU+k+CKU-Ih-l&$_&-$q*aS1GF*W`;V-T4X+Rcc= zY&PKArHhk^O0AlSgeaiC7z*pLENNW))Dj`PpQ}3 z!vkWa+E4U7!nYkNB$bIj!wHtlpvCN|>otyQafVnAn&+d^A`yB{Q zWj^#e_u=&ZohN=ngx=fiCro+tb^!}V_zRI2nQ={o+oF-ckp}3YqY^%>C})jG;ukL5 zp3vlFZ*bSdZRYih+cuv`wUL%C_q~q$w9@DD#S*bspZ#Sy3GCkdomn{!I`qX>(-?wl3uI^e3L&zKD zd9(?^d8R0PHFp1DTHA9#jG(6mHqlnN$K+Ra6K8%~?!22j+JJ6pTpHk(U?Gdt%gL)n z8+lI~X>Ckk+)XGq&OSu@ed(k86g0luR9<|$iPq%$W7A+WMyC2^U2jKzcl-DAuLfG| zm)2PBb4}mNM=sJAt7V!=Q@_=2#H}>-gxROz1}d+CPuSi!Ifa&t@IN0xRucCIffh&R z7q8cGP8>3=$ZWh-`Nz$hPNQb>(JVNxkuXd-4KS`kH!BU(C8Ygio4N5MPwbX(2?#Cv3skZyn(=O2lOcb=;7>L&&Y0Ljs2n@Y=@dVzqms|N_(v%p{$=Jk(w9F% zK|L)ICh?p1y!bWP96}H4QL1f~2Zri)le`!>V!6 z<3GpMCk3VxXbs@6uOU87c=iL@YBG{`sPxFK(;dh$%bKS+v&Z4i0coWNg7i-9I{)cz za=zk`?(Cd<9*-T>Qs(}g-23yFKaQDQ$ko!YBi{NYI_2eu#OwYdPpTlmOy!tm&f$&E zM@Fsjd#DG_BNOEsgks4Q>;h*KFv^t8n`+r0Yrei}4VUbXh@}L5qwNVY{|Bw9$!K5G zN}S7kiBU5cG~~|*p8MdS(5BPCr)nfKMYJw~2V$RG^Y%8a2irBQ6j zYDhX9m+f`-ufuNf{wJG9HN+;y%ST#wNOI1dAy%hJO(LvBL1=w4alVT#ZHPkKw)|$& z)TcJfRG?tMsW((i5+Y^VTtRH#t`lWF@;iX8E(s`_vIXR<{5zH+RoP+dUARq2qPHfd z%XF-|%!v?b#b1!b%PpMz(MgW^MPd!OY-|0#v{uk}Kg-$KUwF1Md~q*xNC@6>{901x z)^u9`*rms5f3oY_+|$Af4Ih_dbIYPkMsWSr_bP=(CJPK}z_V>$Z&7U3v0>3#300ZbmhunD}s&D9+#$!JkfWxYwsSW2sYbKX5=#)3T9HmswQ#qt&7bs__wt zbunG=aD_B~8u)Dd>`jd!`cpU+#iMOrR@J6ZA^1BVnn6RbP;bxk$Phe+3?%|FdiN~6 zwq{!?yftx4wpXBfJ3u*-b|JNQM0~%h{!b`5d=Tk694FMjso1(-z72|Vk(*w1D5SUm zd9U#`(8&v|y6jFp4G_P2k0lAn)qf4PH*P`i6ySOXoUO!fb3&893%>5I+|7TwelcW{ z-*KsY?^kU>2grpzT#?Q~JJQX2jR?(C1I< zAus09H=YJ};g##8u*+3@bi9KZA85g)Bb4+OY_M7Zzs%gd6M=r}Kfy?Fb(WS_YLAFN zFAk$_i}5=CZ*LYsORg3fKAUCUA$Z)pl`KZq#Erp$dh2x0;hS#HM<&_g!zuLFbBpBwr^*EdeKu6ahUs3vIN9F&_0sR)sIBlkfax$5U3 zWKh<5^rUQR_Wq- z0#8r9KA9(1e?L{n=+Zj`#0|xMy=rf6Ig)RSr7KKScE*7B73q>!wk0wf!c+5qrht3i zA4cwQkU%}#U-?`6ewU)x&Tc;ZWv3$*Qpod8ZGe_`gkiqIbM-TM(9tm9gy7>xif1lK zMdmfAGe6)zrriHL6_bEd9T<{#7a6i8JDP7$OyIPgpKFi>e)A5l__*he+n;{nd~tbV z>>whf>1d9xZjC%5XtjITIPF@HRjKn@m^R6K?KppPUjLYXWG0!&W%;wo*TV&sI54iz zdC}48vU_@Jeg|By=Rqg2N=q5#59qo{C}OirL+_v_j9vp*Y!J#{I0xRN^g+FF6tU!v z2U&ez6&6@Ws#B}O=r?}q0W%Mspdh4z$}C^Y;eupF=$>Q`-x-vlEqiQI*2kTA(u&A zNlD&mzl|M!bTM7s=&4m9PqEc)-5u%`t&);gh2E1*Ac+_8pASl-;vHL#0=TfjRf5

Mt)i-ki8Yg*r&aonoEMXH&s2!^)?`n8L|*G?sIc+O5h(1@y{G*Rt8|JV&xWMb zD-I(w3r7W$p0}O>p`O4>hYRhidBJkE-fdQkknnom%W7_Jz&@Rf6$d@Sw5ldIhRMwE zv44N5Ula12Z}rX)v7Ms0hf}egd6Jxy?P)#`!T}~bq>Cz}+=roy@fnlS4)j)F(DS(O zICiy|RXcc#oeh_~(q*|SMaO|^CNuK+mx2Y4O*y@K4F*+~k9{P+b$j!tujm5|-rif# z6#i$n0_?JZfv*D0K8V{EW~miXI9hJIbY;}kpcos`?NeKa%usegX3fNFl3^1D54+1g64q3HO(a!(OK$SFXretJ0vPcp z1QFtzHq-WSj(YJbER!c59`*@fyr7)m2o?_l5l}V`uW^ch3&{N^XcG2sysQ`eC&Hb* zH9o%9v9WGK$!ORb>Fssh&EbBUzvO3b>Y|BF%&QY_j8~1HggdkFqPptP6i2gFc*~(# zZfg1F_ zc*CkS*N{+J_mH}{ZuLff0=%DJTJd*PwjU*JxFEgR6ewHmmQ;7fi=g1u=ziR)P4)HwBd_}R z@Imqru1uru9v1A#<0dtqES%LWCu;GkwM{D`7N3MFp9}SAoN{HpWEIV4w&K@!a#E9B z;Ln&DIh&_@7VaG=@8w%gGFXm4SO@oemYe7WM<9G!7(x5GQXQOr@?ZG!VLM_JsD`2* zFh*=ql|;b<@1l-LeBC-D(lhd2IH)ot0yX6JFP!Z|vTNe-#b*2PiRoP&OMnsUaYx+r zIx>btq?xFZdE&oFakOpv2o1T$MolO-AP;NRHs>6jYRxZkrq>}UgQeCSHgH&CJ z+S~m`leV)uFs&VD`QD(ep{1pE&-oJXF|QF{;3G!CzLlBu6rp8yo!Lp-LCP>L0G$6aVpm)XWt&6sXB&_fSC}e43^Co}zja72n-%8Br}WxFkd4HSy=mtC~Z36N5uV5c7FD%&P~5O%L4g@d}9? zzv9T}Bj7Nz6w&T=^d__UYWCOeh-JC;SLy)WB;+_;v|*oqY`XstmVsQ;7i#()mWcmx zKaaxe^fpG_$BM6&$xQl-HuBN?llzkKN{bcZdT47gIo(u-t(uN_qPIzJ4`A?cwP@^T z0p(0S6xLy7Eq|~p>pu~ax2OhnyENy@yuGHEnln}x=@Z!aRE`zYU(yZci}$Xzk8Oe8 z8kUy&%y3TD@Xc83ISM#F`e)N|xTh%<%Pt7reuKhGWVS-{9{XPbG^^lkiN9dCSAdn; zn9s;)n5!)SFLMY`jdc}uf%i|p7^2;poj3m78cwA2&6g8kf5T}GFdiFJ#}>-ax!V}O z4}2PEK1!DQz*~*fN3b>{W8LarZ(Aug^a<-R+4YPuY>H|Sbsu@)l+#u6QNcT%Gx!S) zF)rB>x9vfJpFydp3)q-H1YxOVxn~IBp*ra*>?`)n54O0X*SogRKG}LL9zC)?Vr&o) zYLRkuorQGK_jEm0`~g3Ig$Wny^gf3wpSkfaMXJ9|+o0%p2tF?227Xg>6fqQ}iw&w0 zBS9T8i}Mtf#Z6`rbefKulM+4gHyAve9^la+LGE;tm|hW$qL{l;RuhE@WU5!y!lAh0 zo3&C#TncqRW!Ec&CP)1t?o{*Liq^bQa_`#e9J#0YvR-;;cDRgfx`2pXWH2`~ZvJA?-$jcTUyw57 z$&mo_ch3JTMLa|YH?FZKMT_~9IpK>Kv`?sW#!ZQz!y$)CbElDq_;#EQAWxU%ICY_w z85f5Z>zMQiVaj4^VWo4R`No6~(i9jMU$LI*9N&wh_(OQq61=*D9)7p_1D-4x>vj`R zE*u8B9^PmH&h$M9q#DdT@`e=Jsp!Um6(88D`DF@T)ScArn&FduB`C`5qf8kqTI_p@ zK2D~RDFmW!YBxe*7J$yJjddD2OulBq8v)qSA*5)}J%x4edH$fvfY1TBkUEh4(|h|# zs!}tge^ZQo=y}{ncJ(APF5)Wj`P;~ee~tPNH9)mM?;etB`xiB@P~*3se5|su@X2>6 zDiHb2{0&=5>~4QbE}3?VUS(wOc*1Y|chY45N%efvcW7;sk3hpHx`w+@`myb4-Y z7O^sA`Z!e6`^t(sRTT*1JBT_#A%hunX5-3%y4mFCwOpRR7dB3 zbEP!D>aP;bitTbr!1iMES=@MzP6Dm%yo9K^w%#hj#fYPfTkEZ1u{05N z{J9yo6q^0@RsSJym)_Rbpr6;QcE=LV>(`6{pWxyOs^S z5U&>%yBzw+FFlI9Eej0!vFX$8i|+=-hrg2|Pe<~LWwyrH(W1Fokqr5=7E&tr!gP@0 zJXWp8+cz|a=cWWQ`!b)mBtLOW#J9GZ=~Xy+U&K%51gLAI7fw>+=A7G?!0`mxnaD~n%CD~n6x+&e z`ODQ?pn8L=m#-nng^ET2p z=vOs5ko#BTcgO4&?;8M|=o34psMv&1f*e~q0yuZIXvN*579a!;ag}}Lz(Fe}&SV-P zjm>NsJ{#;+nw6F_?=v0TBKqkA%r4R8=tEViS5+ zzlzTy0yAs){lpG43!Yn#tZE%e;O~(uyC3&>^laN3;M_rb*I)2K+>Nph-odpKx7i_p z?M%;D{z_BcKk#n;K-bKzF`Rwbe#${n0rqS`+#nB7E5oS(*%5@)JUP@91n}ny)15nv zk2NW#mWgk&He@a`5hXu|RX>7k~0qhGtXnoa5bzx8E-O z&_7FmR~=$>fR#VnkZF41^T?u&)yra0yT?dlh@&~CXoUH)e$*FS@j{n>S9M#CLxMaU zAY$hyY0QF`zM(#_1XoYk2ifIj$tB!5N@|aWf>w%-aSYyvb%~;l*pGdrO_%L1fhOSe zYUkS(CEsX*v7}WR93wcr)X})`6A3v)aI`mC>8_)PfNa(z!oE^Gdvkhax&10XG5J1t z2#{3($O}^%bXM3>D(o0|fTiZ6zfvHrib<0FKXr6)az#5+WDfRt)^_m$hcTBpSf=gB z>6UDMc8|q$41u8+7X@xx|FBT_3eG8xr8}-`?78vRuRw^-`@xAW`)LIMdRa*x4xCDCj)1GI|P8m`70OR-{WvDWNe}rw2ZmsorQFp}}~-+T z6TqzPQ@J~3=x}$&&q&%Syn2=SJ$5yZKC9R3ZPYn+3Rn^_dwlc&LUC^-51)zP-{l+) zbd5a%UR6A_<)aqB{vmrR?-7;dqr`NmE?wYFeco?S3%fZ~S6jngau};a|6oEULEkI? zb{{=KM-+}zCG*D;#lGMgh|}6Gno~b12x=@xy0YSKVd8x>T$}hxiD*5zO&e={!X0NV zhxmWTU(wK_^S8FNh60ZoiLJnUtfS4O2XehTuM49%rPVb6TzF1xSTxF)dahrEsgWE& zhAf6lqwe86-YzQU)8wpjC7Q<6#MR>5@%7(0Eo@rLi>*zGbR2Ks04J8Cv2VRriQAOQ zt!|bakqn?CY8H)W+js*Cc@6b|3!1xRS8FarU+n;Q<8Az7#xCo5pchIhelL(+&eEXiuxKGvvQnmzP&tc5s zA61veWY1070&jl>rE3O!Rc9W4i?}&V447=T><+=B5tO3?%cCN@hkQ`*I3e>VT#CKyeIyc-@)nPi-Qf6|904u>nlic zpG=<^Ym9-KB$QxXVG(iU{d;&M+a+01`$>V^;&sB~+S4Bszdk*-W3jYa8*_X2oeAX7 zpPKMWzrUZSX9-GQ=+w@!zb9b+(0{i}fO&b-_j4BT=aWghJLc!8NuOqIjP12+2MYH% zT{Qeo33EZG!Q~$Q@4#>DPL$Bi$f!@PFdMJG>9#J8fofm_xL`7m^{Zjn3GGd#x<~e=q-Btr*FN*%RlX=1yj3!;%3O_=A zp0%s#`iad?yW6o_pj-X#4CvkpwM4sh=GKt* zr>_o&pX`u2x$$8>O1MMhwy_s|JWgCQ}dUOL=Fg64nH67j^)7i&Y-{i@NiMM-+6l156}_j){T8?!cT}iMw0Z~uJ)r- z8G$);ZwjRG`T5G=!yYzG-VcESX<1{YI#XK4P86#KN|2xJFG}kM@v_h+J%*jrjAKvo5+;crtGlfP zNu`g%PVNNTO(r=j@Zf1PG`;J8ZPx6;+} z#8NF3dDPnF>}pL}RpTnqf_o3t1@=kg-$LB)RXr#c^iQ@>9@J$a8RKngzni^=w!pHR zJ#>J?wO5iHFq_ud#rU8Skto##WlISK{5@Mec|5(N{W7d<4TeTyyCJ2(WjHLg-}PWW z%ze!COv!|MUxn9vlvP3bhkJyZBOCrI-|>Y|O2P{~e@r;F{jObsEk4UvuQsez>e2>4 z1JWUYDJWO3`Zo$2pSsU)p`ma1(x#ia(lr^26lop5#i*xTd z3EgYd)$}WyO8YLDJGhi0%h-*!y)%bj^UU1bfD62pi?UClho=xb#CQ3%BTb4v@<4JW z!U8=*k^+9aMT{Q!t_b!8T71<5FV@8P(BLMPi z8vpc?LBCR`ir?5>EwW$OLgyvZO!!yt3UaIbL^d~wx}=JLcC|sA z+DyM22*1qkarKcGkOzUr&RFB2pp{yj9f(G48ukX$knA*u$Q)a3ZuF7-AgR0(UyJf zO5w`LW33<<+HU+t^kbzfozt3{+w@nhG@aPUIyVOvdYsA9p$EKyH*#{T!617?iroaS zRB1c=xu;u6>Aw8JwesI%w7h1d=Ufi9x+jmy*-KNdWQ&!6sC#@)8ssF_O2V<{&vl{F zwH<~-qY*oSiUE;xmmB_wfvjRcQBdtne{8US2|!}xK56?l1baBU=Tec5fS6nxdlq*= zphM^&#rwK755>wL0*s5wxg?EotfQ%8B{qcNIhAf!M?wmAJB*rIp)YO79N;*?jsvOP zf29^^zppE4PWl|A4`RSjfzbV?Ho=v#Lttu6m?u#Bz-FbIt*z`0CIxzGQb>v7;F9rg z0pU^jBub1gcM)ZzenxRCejs_7Cc6h!fkf&r>de7!i9zq!@x(;%bei8QOdx}{lt#%B z`w&KcQ6oxp8-A`)XEsh?)T{D&d=Yx=o}dBn=z0AQP{7de8=e!aQ~90)m_44MFqBy> z;ilQMyfd}`%QJZFCvDW_kp){iCTaRs{*j#)8B^$)ZjzZvnVMO+tHbip%M<*nWM zj>+f?ZxtOwfHDp_-ptAVlXvZf`K>Q3yaGfAYi$pxO;<;2$N@0kvWi+AaTX^FoIdG}#dd}}fx9{2C?@EjuF6!p}`^@FS{N$o-4Lq~4i+!cnLSlJbzxlqy6&t%k zQ3{%lWWjP#kD3Qg01aTko+A|&O?b*Vq%{QPDvqU))zyJlrbdeS;5AON8m=MXTnTd4 z8LD^V?hfJXBS6B}#wD4i(nn6+zV7#^8^2AxD=kE>0at;zX*|ONmWH#gU}ICFN#GZ3 zM{P$a%)7Gvd#w3yRE#q8O<+g6Yo-E=^kYl6?^rA5J?(D~7uyh>A+X#gC)vUu)6 zXQ}aT!vb2E!K9~D*8C@YkHu>%@xPv-Z4({imeFIaLg~*(X+}*j>Qx zk8Q&cs2vydpeyyTip~^tx~j_wnm`Yr8nlyDq|KyVsQvWz264d?M=d(bho$I|Vn=oQ zCzrF=+A~P$crKq7vgaKA`iHJ<&1)eCPOhIMJE`}j;E#J3B24SkNW zO8A>#C&Pa`4tp#p#zICY$8~7XJ^1k^!TzPzCRp;EFcGLn`U=)8nPiy|X8^<}`~w$b zTZhPzrWVxzqG!`bl}QpGjjlm@ax&y5;LSrU-me?{%#=$N8IyB%j1zhx`@H_e-pO)# zr&FVNMK3QY_MG6Ba)0U>9%B2wFrS&|sO)ASRIDs<7n!h8$Z>)!l8RTa+bB?jGWy=4etLnmCUK89`t9I+g$)qJCYB;j zAOKJnJ7Q<&{op4&H5DEW|5RH8G$H=K@RSsLB=BHS660=ch>b5PXfQ}o3l2%Rg$U9iq{yq!$naV?h*)iKBZPn z@J#zETywL85w<4Lb|LpUtL)(BRN+)FfF*6hw&bU`W^%~Fd@AuhxmGYWKOcm1uD&61 z5$j5rfHJ>lO5`Mfb#N7a%srQ!UdUx*QsnLVDZr*PzrQDYX8ZJ7k0KkEhUcCn*yMGO z6+x&)?9X3iFG@z^Ya}uJUtMg`H(V%_IW5chmondeY%x!z=#A;_nSBBa4{w|WfJgo_ zVLi>@g-okP#~kd6XjdLv)xsoNZQ1D@xUVDHF8TgVe=g9;RzGuQ(YcUu2nfl@5jOM9HUkmuQ7 zV_Z?pU;WH7S!(qc;qU=ZiJkJr%M0c3-I9fuq~98|_LDr#(!?`f12dsH+a=puZEVBX z2{vpKTakl{22rpMa%`uBIv*w%9+x3*!Z|xxvQbM>y)}s-Le7dq&BVwAGDw6VfHo1}&nT4jSFUiA-amvx0 zr%;)*Puow-yJnVXC4iLTc`0X>*oLR(&w!4r>t^!M)O1Qb_;4S4PLVP1nd2QM62}+w z6N*)lEN0}pZe|TsQ47#3?|U0N7@lYR4X;45OxwhhA7C@qZsghW6S8HWwWSKt9d_Q$T2XAKMiQ%gL&Sd%Wja%!9CJ2ZvagM&7X;&23V zno2CyuQ)Jjs=f+n_&L)%7JHRRrXL60KFTP_6+SDkbYA_!nC_S*zbPx3`06|5{d+pb zawIkVv7Ft})T%Grh|6qq(qjW>(5Am(;TNm!Gvtswv+52#Fo|V)gKGlKh+r8%0fDWIsVnxeQ<$BFuFUQt zoq|rQxjSRd&ck9^p0=3{%`|%@jMbyIYwJSYsb7!Wc?HGCoim#{ zOq@QS!feD{rf`$yvVPqC{WzPpp!Ep`RDF)Hv~?j~up8$E&1L3+3t|3+p|l6T3+*bV z{(if?K%XS%y#9pE?4};U9RvLI#OFB)M*_wm;2yK?OVgAF@FJqvXTgYx^<}i&-fTZV z(tdg|_S`VVhGxmtJ3cY#jt%KiS4}{nP3$6=;)>+*RWPxK5{M%JC=qm`abpXsy3zcr z_Jg_`Fln4+6Ek!hV+FFKz`mab0!$z&{0uO#p>Oary@&vgTI(nCA(1T`eBUCpH zWYvrZL>GLc=Z6VowQ^1}^c~Kx&X5=)vSs(zxKA#r>y3nZ+YU2$VZG_F=e7DbN&#nv zta`HV%!^QiWP>Kr&VrRA6I=Sy0%N9-pjQ?^|BXkt$7WAl`%jU_Lg9braGL=6`P3H1rmI8`S3bf)YMph}{ z5XeZW#UP2I78=yHmI@q(Vpu!{Y;7}doWFr_&0RT4b~ zwA7r+b`lhU8nzGihhQMCm|4LGgM9u+0*yyp8+tw`sAqo=5{`hxWC7B;H~pOb9<1BV z`o^Jx8OxQPLbami8IlYm229hRUB?wWD%_byYos<7{m?hS zN_4FGc^^p7m7NvdOGbnvI6pkmE=*+Y8ORxT1{<^_N14lyL-9(C88wSe_5Cfw%cho* z(Rg$WZ$M_s+Y=jiD?wE&`n0OQ@!^`{m3PLxzt%xXwd70IUkvU{a;t-)qcgx{9v0fd zUd6AxJeFhXvK{a7-;R%j{XhCWN$*fV@?c zTWy&AEeT5r$_7)MG%0*c32Li}qDfXiDwr*-nnK1(^S_qYVEa7z8HJ_5n01~zOhGF# zOaw~RgyR#~7Q0A_{T1dHMInEpD!2k?-wINkiJeppvSxQ0J23$wjYaqfAg@K%70EN2 zLpT?37FLUP>&fp;S?A7t)Y%}ZEN!Z*Q~40;j8e=wkXFr}LR?{AFCC_kQjGIbBu2n< zTok`Q<8>sLkm7T;eQ2GYVVq{HAZ+H1mkrWxU_z!3db^lns>ZPoCc2G#lh(Z*mOdD< zjJ61g`l%*x(W^DIijT)=xzo#+sC&#JCArb}iB~WMe~_dcJ~4ssyfN(v(w-l#wnmRW z-F-f~z*9+&I=~sf22GT%S1fp5sqy~w6xosi2ckl(Pf6Ys}|e$c6{NaS+% z0daR5`G}Ma8GA|$rl-X}nb$Nb*3e4Ujn$aXKNO|GSW^hhj6qME8L#$wGWE}AN%V{n zM)DqlobJRAh}~Z~yC8}drGXL?L2oj+N#Jx9tjKxmqGS(Y-BvsklMV1mEni8clR&Bu zzo|HY1^zA?aZ{tF$|v59Gtf0(HrwJU#BOY?RA4R@N>)sb5e_6tjt;LE8e`b!Cg8*3 zt7z`_!7gLg)4eGR?H57+*z^UlW2D)S6`JHc;RC6}=zpfw<7WtN4bR;L)4=Bz>kjOx z?K1Lj+RY;AQOYNrb%Y28w)NhWXbYO?6^l$H{aBcuY6rKvQ1`Rm!37_+R&Y+1Xc|#D z+4~j{vSlGM*$6cC?&4_YL&+PkDzjZjz1MoyLyE~g45 z{pEHFU*3I!i&XcqUkYr)L2kTP*5*H?l{0G&Hg(QgJ)YoXR%`|6OuGUK{3023BSTlwfCO)yFf)%P@$>AMU7Gh*f5-P!Pv~M4N2KK?A$*WF%%) zi?G?q%}colfI93RpY7II!^QT!AXUu}cV{HjPEQK%NqS}woi5cwS6oLVD!CdpmZyuG zw&wZiVkYb@XFRaMdjPHQwRB%)_HC+0Y9}UH2qlx!3}lRi&&W*;e9O(0IhwCv#%XAc z(hGvN`W<8s|BL-)-a4i~pd!9$SB>9|3~z_9$aq;Gf6Sen*QJt95kGrW2n~xhK*pK? z&fw?L1C02aAM)=?bOof$3DE7)f~Bb<1qX)LY?xvjZtF_a7J7G=L~ZO6skQ_}Rzsa& zD={)`Z4*>#axGV6ngGrJ`qsRfyL`znv7k2JPp(QO@~bh0yYluyz2n=(p39ve7`fTO zs9G_{vgT#!lHX!*WFgY3M&ZP{2fVpl?tkFh#=@HXjIqoCH1oRb;qKe?_QL^MjP`>=_h51OUENDq|Bies0#-fd3^%u# zJFh9w|Jw&(I5txFUhJS8aGmb*tje%AHVGgmocxSAqzP$}>E;ZNnr7FzyEW9-&| zL^`oj90{c+cGy9cEd_h9W{|_U3mFH>}?JsLC zDRlb7HL~dNa2KeeA@560kYvoEoyDtP|EiL^v_F9BR784 z@*-In3OPIb>hY{wIb1(7x;ytm^3><9i~pG5nY2MReNg+Nq3PJFutK@5e{%P!QI+ z9eVvX5cq0_{d!~h^2)}-{N>@4=DBMFKHuiDi@G)!Iu@fxI&U8inIN6un`A`)8t`&k z5u|t*EROX_q+b74vz2LcZjAELvm4(S=hSY6*2g^j`1LBVE?ls5b-Q+LV{QFJ*vfE9 zsYdnI_CTLRc7qc9*oM7R%XG&T8?!%lm=;YA1dcG*m!ean8$)~4vTmGk(`Y+){l}F( zHjeu^r#iXcA73dfu+iG}{eX~q)a#^X$=}zU_U(7hB4(srArkjYKf5-sM^aQi?(vVD z{T>HBm%ndM`LBf!sGLl(kfXkAfAZQT@5?tkKe|z#qT%qI=Y)$Uz9BzqVP3px7T{p` zBxke*v+yg%Sa%ju{1@6Y;Ge9pW}DKVGXa0=q&z?EUYZkeX~_1#G5Z4Z%166wCE1`t zK2|#<8R2N04Sy5~kq088FKfQeOke&t_w2*0$g@8~SoD0ur-iS_3t#`+c=gGb{!f=+ zXN$gXE+K}&SfZ+WyYRimHjZ*AMAgm#!Y7SeGrz8Hh+Vl zQ7AZ5@Kovg3zGW$ZFBHBmr}clyGzW)ji|`+ShY+J2hjde(Oezd2{CElPdMa%V_UW4 z%A)X!1(7EjdU?^|`JZR)Qe8z}N5A}HD9}n4ot5pvB2K#TMUi}Fw+5d?p^Tb(@HZWD z=Y$S}`swCiE1eP}w~6vjgPa)0rNG@+aPTKt3oXRw>*#%}JQJ5(j@yUoi&>Y z!>o`b2Smh*X3;*JX}KicqqPpnzIs07eSUAZy~@^>#&{}2x&}16UFPbYSZo-0$RS%lH?TiH0siR* zcTI|IgTv`*fuG~zBvTn|5(A7itjQo& zZk6yt-E5x8+WxOXb{zqIxv9BjgeYNE`$z(~@iSRpFNE4z;Lo=fq0+CIT^Z&ewn1R( zvy^d|AX_4BFOmZr2c_bJOl?hN{kVk0h0;Y&7i#)Ox&>ou=kRL#F?gR@cSX8?rDbGw z;b~5n++zEQxIagnq#xe$Z>ld^RBp>F{Pf7<+&KeHCG+Fou2v;7E}bYnbXPmX5_W{B zto89_OiA!FhZVyzT2y#-o_}aQ@xl#meQ^A3|FJs$PllG(iL)=KvuY!scsd1LN%M5j z`@J|wMm%T3x-*j`$D8pfT92{?CX5826K9 zH^z0univWr-1w=#H)Bd5s6R8gGQFKJjR`x9z#yHP3=%?jKlbMrW&07QZnexl#Srz9 z!coq^)X%A2cMxcyeU%GKY>#Pr{T5%*)sRQtIwzwyBh%ZPnYfj+)=_=E2Iq(3SFAZ* z!6`J5nMKfK$uYk0^-Mp=MzbA!9H!>V^rnI4INwUG6pC4hJ$!bgghHX_f77IEO>axh z>?#!(q^E zenPg)YxssEGWg@)+U- zAa#eILo@HYTX6f?q^or%jSg;Pds8!0q5Ef>fK$Fl2v)%5uzgipAG#79hQsWAZTV|C zbyG_%kCM?dY7ZtXlm-JlU#edd7$uQg`z>ybl#W~?dFcn1ca1(IYSi*b7bD}%f|X+? zx?Iw&*uwDHEVp2LORWK$9{b{MX9qdqF&*U}8_>zC+M2cnamZ%zAK6sHhPll^q6YSN zUgtsnvtL|d&v8Wt@5whXyrtUHYhg4cPfi#HG0!o?r$2@!dg%|^-jC6Kw`)!SDIk5) z6{2PX?+j*B)=%S`*u6YBB5qUT0OUAKp|^WqhE51iBffl8<2FB`s3{`ft4K*;KTDL2 zbM_jQ@A@_A3C!FYQu&Ej2lSKlRgvk*a*;>2rMdmPXZ*!yHI)5e^c($=8FV zaS@~G=fuC`i%k*g>O)F5sr(o^qqUDDjjH_z8|O?P5nrxE4S5DA4Z+?Tkh9qX1F|x> zFiadKD0X)|c$E*@skMmr)wj01TJky8oBWMY4Lp#<9KurcIa1pRvO6rfsi;u?=*X6- zaVXRKn>R{AW(nV-l#+*OAYrQQ9)zW|I5av$nQ6e-5@fLK{_k8^cJ|`BZlw#z%y^_d zMND!}KKF9MEspjwR>oU7FysmNbSEO%O5E=48pN^MDIPwqg_Q-S3aszaTG74?iDDbS zDQ8~>2yVwrCy@&-th%)i=X>kSYn0J z8x`Y#Cs>x%)|)7X5wRxlXwuOI&((JihE=YU<|swccCzwKsu)h}EVXrI*r zu9v|Z#kV4BAX=!NVIkI3tE}Syme?sdp+fwZJUU{KD|pIp#aiFAs|qr}??{aogf)`G zHT=8R{#k_btH>BN+(`lY2ccWKw4TrDoM^MKm3-o75QD2p&mXEEu|GW1kyG78G~$Kq8Rb-!{`L8s?d?uZXt|-Q?_behg^9#Q|id*(IMhUP4x!%BA-qK-9bWMMymLAhoe(iBlAxH7YTJyDz z1p`5?TA}_E#RWd`HjpkTVDx}g)N)~!Zwc-p^Fh14b>}96?WV54r1aZ4jgIxoS)%n4 z^LnGgjFs@JKf_w=L=6LZt;E^i|hD0SmGT+%w;Y-4I>rkP3fkN*;x zeb?8JTv%vT_`U9*h4GGGWrSDQEzUF(8!=6m_Yyn7U4V#C-!W*t_|#d>xR4+ZIcaHD zhL^QYF3H$kiP9!b7J}>1730XIEAt<-&!QF@h@HxKBt0p6vReS@^uRz2EUMYPTF(v8 zRAWw@slQS(1sTQyZ&1ACNa=JkX2aXc1ci{n{dr(Y9dS;mnd48vr-$mLo#}u|--GVt z71)9mVi$r$S|jh{bjG|vu~mu5*WIt&iq^^CCZ zJobBme&53Lw-;&S@n=@3-)H6%s&=4{-{;zo8i6+{t>)F?V zQQFlKTu3T6uj}{3H0{dNR3KEQ1U>-V@i~!?G`LQp-QLnj0(-OP;{5qKZRHi|vMHu| z3aqDGZPio}L5XcJI=Zpw-hTkw2nrs`ZrriXJ}uy=YKIV}J~`>x%XcI`;sb)4f7iu@ z)J`ra`CK0=AHvz8cmz3b!eJo$M#@*&T$-1Qu3U3L>Fl!FpLD%i5P162V2t^pzmD;%o9G8krwl|Jxx|p5JHFCg+2*zBR)S z?fH3}D-S2V7Mta9!Qvsv)xaheLjF0O|8%|&9L0|0=f$6*CJf@7fyky)0#y+NiK(m8 zvnq@{_l6+7E<~Bw0nTpjU5%gCmjVbXuod;JMd|U;!Vd?6VcD;sZ zgQCfNy9N^zwnR#H6~=0}@mCVl!qlS16O+~#E}xxwbb0mxIQr zQPAg?E^W8~ySXI;)sxuH&ucbqsSMfa4!+R-iq1hhK~Qc>A@%uLdh^JJneGLWZe97a zfXkWkEMahJH?OABZ-~nJ%f>S&LhEgLn1c2%8z|Btb{QJJj5^OK!u)%OPW?jOs<_87 z8l4_?oc$4ka*=&j3yp=bCr?0=)+9$Q_z@k3xsABn??w17jijGiNtVQT{nkk}4uf#8 zjFv1mQmn7mN}Fl4xbN>99Kjpd)o8nwM)yk|VtJ!Pi05ulWyxWWLKB`3QL`?GzdQD| zL1tXoaZ}e}Y)HpXI1q(7WLJX>_c@%{ZJ6b`=-DQYy&~8gr@)Q|Cd}BkwLIglw#eZB z{~DVHJou6ixI?#Mhj@C)Q5D38^gZ`!S)yAL)7xgee38>224}~uPK`m>j;$IT2PvXh zPZ3pT)e$RS;MGiJ zE$hQ!awzJR0yT#jbEepjrxw-ov%lsL8&^*bB5nXJx0(q<1Ag*IaU!x$$91dj0q^>XaFIKI9x3Ucf1YRLCaePk2x>A3kDX z^8Y>f#vqleM(-#ncNAPM8;w2h-uU_fzv#tLJBlmVEVA`T8^2yma?oc}- z$&r?|z}u4n#>Oy4?US*5pq<6Ca(>Ef(zVHO^U=nvTht z{PF@muYRDOb?#sl5G47eq$7%lIr1*QoVy)on&zq9V0+%)6iP$~%v3r^20_%yy)Jq$V z0&Uk9Iy4XDA!F@w8d~qZy!dQ0up&TsT)~;=>KJNdY+klQhHzE4P24BAnaUIFB|i3@ zbr~@ZGHyC3d+1*_VA9ivdFvI>)RdprXnF`dY)OkBw*bxj2%ETRo@Xy{Tzr68GNLq1 z_Hljj_EQ-UIA=RT3hRqe*Hb{)aN*KAp@?@tLAP<;>uNZFt_zEnv8i|;c^P-1RE%tC z2RiDsKDgHwXMdPFN4U+D1-F~WK_E+}5;od)h@7f@5F_mgz(AGrISA*}C&{O7hujeC zYm5M&Qg2$qdP=~6#XAUo$;`tUwS*-^#Rt%ZZ)9pyYn5Hl(W-0*D2S(S}6DR3!H|MP6Y38L><_5U{C7 zY#C51Csre;6o4^}&Vx7erjgmMqmWC1&_&5ku=%)2?;otQ4Msj4W<7$tfJYUxfgyuT z*|X^B$upgO#hJSol~hpf{V|ay>yop4YR`&qH(kn9sRE~vFeSSTO;qvwS{=iW^&lU# zhxHh7COj3sfvl-vLhoN-N%Qc=wjQIUHn(_2kx5ar?%ZnY7Z$|K-u5GQ8*Eo+^*s1* z$CMVR9g^>1-NJ+mcvD}A7&n#6uGzaOF%Ffbj1xcf(g(Q}%GKlinl|aIIoPhC3j8p3ayBD|ajg)ws+r5$`3_or+4D^8leKQH$ zgddc~)K0pR0sim=ShS&Ur{)Z+7sPk>#_1OttD1q%Gxg(wbk@@vZ11fRv87hp`kK;I z`-@^!pC*_EwA8x}%A=X=h>mSv{||ndUFsJALK)oq3fR%7x$#W%hG*v%&v%yj#O5f$Q_P+NK;{o_txV0ps?yEVA$ZOFr7RkulKC8X0&v!n=RgOk?c-ii{u5x#kSZE66K&ZEy`_MRpF`j0|BpNww{V z#&M?rRA~$mbiX~uR`aZrIBuY&B|JOE4|P^udT=ESD?ZeIigikmn->yYf`X_Iugw9; z(=X7KKtz|5ZqZrVdunFudnV){M;r?vxfAapr$NK7k4BtI5K(3&F>WK~;!ln>pB}G= zgO>q`3|Q6tJFzikIEd+mQTMVYiLJG(^^z&@R2#pn5U4MYv=@hBLAiFozJY1Oe0?F` zKOt09fXa*uX-}gPj^Yp`fMl*WLmaMyoJAU=DWp^~u(pC0qkR1}lCry+`j7_XNB=&4 z419Vkz7LeoOk_U&vEC2q<;}Jc4gTBlA^nU^yP@%DE{Usrx{WeyYEZGzeh%Cf$jXoR z&S(I)rBYR`8k@%q4!Tm`*IOCrp0ArRtbaw-^UnxI9nB;5`!qP_+h*B1T<8h*`R+Vd z_GY#7kBag={B;#!Gwxw~^{dvNLe-JXs{|vR?M1X`7?oT7+zC8L_tP0r`9OrcL3}2U zyfxd(Z4N~pgs;FlnNy$YfVm#Y@xgQNF-a>Av%jI#FARt2gxnt0_X7}D>yqCB83Kdo z^5O6KhKuPYQ1h|8DYgmOxVuC?G&IqKw#XOwLq&g)mzilU$Dsy zCsZy{>HF60kMB1<)Ivz!i2UA|%`j|N=GSh`Z?#qAluiMtKlzgKO88P#+ZLydTQPt9@tm#e0siEdYc2i{UHa;3OOyI3o!ARRjg(|m28 z-z(oQvVBuUb)Iqx&&rBz+G_<0Qmo)odse)Pif!HAuTQFyyX-|?cMB_KYzbFv%!gh+ z_!jB$JCTRq5!eWn_N1a_KuQJIdF-jinHg>W`$$(xR4z6dX!EDy)t0)vbEax zKLS;9Ux%O+e!CAO>ym~1Ulw(rgll5Cfe-3`F!4dK=PF$-Jq4BX;o$1hejLv6a>xD2 zCnR5blP=$B+}Qutx&+8{EV4N%xY>Sk*wplwr8dG-XF30TQ4ec23drtikz&9J$FT1w zfX%M_U`&z*mG|vj>$K*zJc)vO!9Lpk0>+f)*v(BDR4^)ps9gN6v3+>O;KC|Nzcz5f zelU#CfS=CwIm!ebOcRW039&?cgKwRrKL(gg@4r91%1T^#@3*;j<1M^w z(5QrnCyP_)js7d@aXXAUwj-maf3%-iIyi6gg2@>p{N#v?Mr8k#B91}l6uP-ZPa3{J z(0k95P>B5-;jml-x3HMe&83lffiCjFl>(IL4Fa(?I0183T3$AO7>gI%pN~(xEkSIj zKi+<|MPQ1Nkp5N9-&=UXKzVG@d&+|7W2gu*P4&qWixz$-k|m2`Xy3=r?qwalCyIdo zc0dU63Jp!P&;dx?#GuM~a1Gz)EsVBL#UcoyCk7>m4pq9p>D<`6<)~0-U%AF3<*$E4 z&Kv()Dr)Bp#K9|$$R1?Uchen+nIDHE&9FeEgtBtZE0`%iE0$rP0@;m z{@Zayd4|aywGv>p=F( z%1Eq6UZ5liKmBb^WVE6!h!LcNre*Tkl~3wtIb+x7+oZe>v0Q-crO@((IkbycQ@b!Y z&o4$vtp48)n@$Dj%-PRvASMX!Y)9IXss&#iCa!LZ74pqYoVOF&PmM2bQHAFU^%BE2 zX(Q~;P3H_Y>q1y>3$j-KN5LH|o6~QFQibGGyxV@YZda)40dgF|FiHb|1>upH!;@1xD*|3% zHE#U95PP0QGtavNwxuL3he^|nO4v4j`%?F{m0=4^4KW)Rg9w!G4nd_h)$_&Uwx0Nj z7U8HyL{CUXSxI5*h$wRZ)~QM0F#0#&tOciCWZuuyE5GQJ-LS)5@siFMqT{mU#63u$JR4& z-;h1J2yO)2+7$%Q9s+R2e`P0EPYwGR2!|$W$Z3v>q2>M4)i4?OLhO-7zV*}CQw!jI zZ|M2x^&SC|&8m$lor1|U-pUgidB)z%O~%O1el16Vt@rJM_EKVh41cMk6l^_ddQWAM zHwGbc0olkE{@BeX{uf8=YmLs}z$N`yn$5`nk#piD*PWs=N`{w|Nrs6 zcg0;o5<;k)LbJ-LoOXARw6vlehOLsrtdVjU#_rqs5bg*yu_C9K6`L_^xAQGI4U;); zLJngqhsEsvUBACQ?6GT~>-t>p&-?v)Jzr*<3EOi!|3gJeCqsOJ9Vl%k3R?yowV6CX z2d&|84J zrFNVZUU{t5`3)fu+0(~qbV5(kNAEuKxt#-l^%+JSdngdm?*vIF{WDNLC8Zdf0LQp? zAf9A`8Ui{RDODT^T>M~$x!()OOu&d4mV>xnpx9lXz8{)A1Ec=Pw(JqG+UtD~6J;yPiwOXTBoo{Iz%l+%)Mx{p=hrBh#@dW=8A z*B$ZB1eW7K=vUjLB7~}0zI+m!C*dvdtl?p#N{Tt%C(EG{HtTNMa3Wf9M|&s0MziZy z)+k`IhN8~Em5ll&pE^){CzskSmsH1)O}y`o&s(S!+9L*r7Z;+P>TOv|Og z%FvaKmrJ?_Ds`P?xUebfp|+Sqz?ff<&x=U`zQFt&#x8#z5wo$}3rTRC|JI#8Czo3KoS!$rg!nXNS05`1f`?a4;^PGE5vRgmeL`em^v z>d9u-Zh`wV>PuKLobWnAjUQjvf}RFK>9j=J_&lb`at zkQfM7#ufR$=t3JSyJ3FTG*s*GI*cD-jVu>kTHmZ2G1Vzu1SDo@&T?W zq4Wj15@##iK?RFcI<$h)uCRgtfhhXx#><8wzO})=AIsB9)@I=#MjQ{XIAxQQTlwT8 z6iCKH>?DtzVRA#n+RUK1Le)B?YMY=&X#}y%!yR6tXFfNTJvenY^A54g1Z8qbE~naE zcNi{}SKRL%nRQ0dz3Je{XVDEPG#~O@qLDOXk;LAV|J@C}X{&A|e4+1;v5w+;8C}oC zoEBflEB2qV8|dH-ORS9tfIl zAu6a`ri@a8jsbv?rdP0F?lJLws0hykCse(~fLknbWh2T0K7y7?>gmnv6*yJF>cZwr zb~VOUdok>VXhQT?(>a^9SZg1RWiT+h+P7qZJjCMs|2oW?Zyzr-6b!Qa)2hXW?9Mjl zpAX)2Fc#GBF^9;&BVpy1HZz*IKxN_3fUA3$s#`BA)`5el4C0K2=lf^l*i~5zM*?rB zy|xWy%*0fCzT$h+vQSx*x3?{)QAt3x*}9X~AIH$BWr@R8T8{_F1Pd>#hI-F3_ld4S z6!JY9iN|}(JUbp*+u`@WL1+$zbd&V!D9WtFl&h`0>&-SFYAG@5c!dg(hD9wbXQhz+ z_#`6J#)AJ5(%IvKM-|i!e>c+`k8>>_1=$C>lhmAs1z;JhJ@=>hjObIThiL7Vln41Y z^w1)7hNu|b$uGX0Ug-$8V(gTT7+kA>54G073I&2S?+6K}oNotK{%>Qf2Cf|Ce9}oDC09>|NzQ$dck95Mr#s(pRJR|FL zmt}p2jI7Ilx3qTrJhh%e-|B4q2+_hF+nSbcvO#;#R^p|4Dz0aVZzp1I0FV%E0A{t1 z;MLKe;TOx(Fr)59o9-9PmAuKNnbU)72+Q4f=|9(Gt{Vdo(IC5e5r{j@*RXOFut?hV2O&z=tS36c^CL(pL5u>d-5i#GLGqLkKQrz^fkuYF^|>-{N~T{5?upaQF#R|fs=XN` zXUYIt*zwP?ACLzloKcaLrm$~aIzYjk3_fFQt1Pw}@!;AgwVQJ?pHooO_?JXk zm>Lf0eb(+|)tkV&(GOq$|3NlizK>7O?Pj71ynb>yPlK{XD+JvfR@xkz@CA^C9K>GX z3PjPu`{UU8&sLTB$b-<(vdn#=Sg-eWk}zn%Nu8qZvPt3Kp?c17;1*os9Tz z&!g|0_7~$5Hceqe

YwnR9|6E~c5;ZnF>2RAV{w?&>XtHeQ`}&rL2}hGrhT z!plB1bqu+0k&gZ@ksn@>diM?;Tq3@_KPzUZ#qkN_faqfuPHn)K&Khbx-&Ha`E_U&$ z8zqHWt7WDjof_MY(uanfIRL%(5?~3uQbP+Nf+^QjEu8h#B zwH)Qd=p1{zu4)a9(93_YeI)%F@lYDh?`m+$UK z-OD-rBs#2lb@%3E0K|2EQ=}y6(xMfNJ@sB8GzA5OQ*A#ong%01Gg~3@{d`sKPChs} z@?Pzj{O=tzGL?W%7u&2$*#XCyIxu7}FM7XQGOk0Y zb9lQk>)$Pr$zve>tYb6yXZ3}X5PwG(0KhXdoir0w8FUQBi?;kKc1m6Lcn<7lnY_V) z{i7Mxdi2=u9kXE3CAq%|{&n@3!`;EAx1swAL%GYzR?HqPW7P$j;$<LVaZO-3`cAi#PUkXxo~uq^E3`#)+I`6Dg2+-AzRh2 z96(67<6cUgt?YgyGU-Yy{)#1BYyx8I9L}Jhw2#ZT*KCU{yEe6m(pyD@bc_E7C))u zdbJsgv0r!t%X2iAA!D>k6dXk#f{xG{bsW_eB$M6~*q$<$w;0{#pza=pLeis%vRJ-27_7in**tg$wM~HTHYm(rCwd&4E3$NG?4|ZdYy)F*Sd|S3*14ka4Ldr7zf-c zE8p&T%A}b5=Lta*p)9uPVQI(^PL;celMag5l$CczqutUOe=?6CJ76>Tk3f9Yt1juW z+&e8I`8Lfx9|dI{q=0Fj?CXZcfu@U?@JCYzgy+%v*O)?b5|e_w6Y-eTWN4N`RrlKO z9d|=m%8UZKcr(JAi)9l~)bT45#>SX$yYD1=SHLY^d;01is@3m-7hOkrb(4c~F;`xB zag=3~)1O(rAx#l_O@8}(QU8*p!!mMd^GD~JY~A4ew#{z22r|3VCh%^}JAwWAPo?$$ z7@+Rr#c(yf^jS*tun!cOEDVT@7<$X*4J~BCM+5nR)lHZ7RRogm4<-S(pZ`)9RJTn0 zi$ZC(_;3rDDit>NH7i||?EJ69b7ZXFYK~Igx-`|tep#@j8;BZfgN_UmN=ce(iTkO2p@|=B&HSEZ9M~s3^*Gh!he!q{G6=SAR|S#}@4y z=6PU#Y@NfZaDlfaCFrjK@%4eLF%+^g`HIf3^HeD1*9> z*T`XLUK!1j=Ns-Eyv@~svmtNo$26Um(Mzea= z4``XZ-MV6u8l1+p~f-Yl}JtjfQ*ysw=ly zwBe`PCUfMEA49=3z0aege$|Ax8K<%m@V^wXve7xtE`&5n z<`F?qJVOg`MLuVoK&Ir@1gK>uQJ@Ad0EcNX?=(M@sro&5$z&-g*ayuuXM+!3LhD#U zGH~`doDt-?ej2PHYwXkq!rEUk8gSexfmE7wJK%j_l=1M#14i?-{{iNMDwkCVxER%% zI%xeWP7B4$8(IPRK)&XwS;U$(9@yBKR{MifJ${-)UzT-gou27RqbiGxxGG65qBQRH zL|sus@H_XO8Ip7dy4q6_Bh<68cgS;uX?{2FR&K7I_6P`9``NR(ABJG_cn_KNXe_rB0IX{^)qVN{kVw{)o5%Dl-o*gPL zKlV?bL`HZJ`!_8aND^^d8da(7MM=l^l|+bS zY# z;pe~^A^Ta0m6ZWTCP?(nPm0Hb+nMa^B%7+oFI~nBG47K?V>Z^Cs0~)=cZ-XLU!~XP z6=6h6bk>t}Q;B?{^OldFAB5Wtox~U81=qpxg^I&~LnmmA1(Iop$29N0=HazOKRs#( z#b!KN!+*QD%V2p?(5b#1f1;&!Q?_h5LG9m zAFzU5+21?4Sz>CwUHBpzedhL3IFmDtz_$Rkb@6wg5phWfa~DKs#;=p(iM97KDn6jK zgm>5KhnifYfREL5u%Xa9Ys*nXi+_Jt%T2>ua}fDK7ufT|JVHcl$8Ta8p~+2A$}=(! zJ8XMQe64nb3ON#>rMjU3ZR1F%1X@EXmozW3@n|iX$z?TbhO|%yB{ORP`9#$lR0n9| z*6yVNgu;ps*sw9`X&kcj63><})|hUs8#3``aiqLK{Wt@aCMAf=wo? zQ!(R;gLBi=sZzZvwsKl0ZR4??mfV|<^;>GxBZLq66zv1oT;Y?V>69Re8bUud3KNBV?c0dj@f+(-(0<@w*%{iJ}{Q5RYhJ$4EMzFj+D z4cU|yE6QIN;g~enR*YX;;TfS3lGZ}pQv(cC5r=53)!v+>L~HH0y{0N~NUF6%$+%u| zR2f{9wE+$S1-`YU(orwa1F$H(_fK+0lRZz?s#DYWlW-ak|HuU79hk+BGv-bT?c>ST zCLemrJj5ETP^27Xn;07;mM0>Qv{4zi0M|1PHX|IOtKuKEm|16z)p9F{w zW@n(1Sa&ODJ{|p5J}{4aIeF&H2S8mdL->$GI{K|x74OBQ@Tc&8V2-YgUwCWugFXFW zBK(KbYimo9Pfd{X=RrTDH5#`=Y=p!I&ocx5+XDq)X8~J~S|3Sw@ zV`Hlm(q<+>7s75D+rHB3*Ks*^b8+rN@O4(7E63Y#~zMrG!g^F;p;`T_B|O%)3Fg^pe{UJBB9ylAa;SmSmH&GUZCK= zF!%bc{OZ^0pPrEK`EL)K>ASg$-~Mk8a)?c1^gkDuRV-#NO90}&2eG2~-~aabFu{_~ z%vUNZKx=I~6geqjK0&c8Kx=%RtgX3De|0_xfrx+_ujI2kuV&Vh_Mv8q|E-T*_*|d#i!A(2G~0$g#&mPSM)`*zO%Ne$4a-%b+;ad14XjENa0Ooez?68t%*H@?|_m zzG;FeLuabis9;5Zwi<10;UeYZ*LqgM4aUgK^1bxq#u|6qyDv5NaOyjp$~d=Qek+*Z z9*gQ1J#ca)im;SV3q)KtcwedTty)7JflW7W-K)d!29&@#)+*HcgKxJJV=#E=K_ zsZCy$z!ah@#+R(04hg&n;-3lB5w2yNSuvK#is1h)VxD2jIig55MDDv~;Ok(yI3Rts zb-q;wv)94n!b$gxlx=(92A~N2k^u4sszIWG#kZ-Ya&UJ9_Fc^15TZ;t+jyhE)yWdp z1|CDVn-^-EZ%3EryjygMF&qkc<(F$!=>-=C6}w~1%AMWv9bvuTBg{WT03h6mIBi-B z2+FhPPY0j(1Uxl~I91dKs37T5gAkOqKWnICo8J`a?|8ibP>lSw5#NzAR;YTf$@M{M z<`K!ClK+o#qWuND@iNB%cw3CYh$(X~R?!*2Oon)wv|hV_vor%q^T2J8KV$Zb!e#T~ zOrh>((UG%loURnT!D?$ip1Mp=^g*lFD`rR~RNYqOJ<6}S*FPk~ZyR`XFpci|EKG%F*@;II%v7lthj!=8{7yeJ&9pjGo{PE_7FS+-$cS`$+N9&!8%E{9ns%P< z>HC89-8V!VxPi-i>dU}k*uUWC1lg^mrr@3H*vt4-)>m4bLWJVDn&#t` zmelS?>#?WXEFv*=m5-+M1+3k&%Mngqme7%!#-_6X$2XEMDW5tf3g*- zxIJJz4BgGGUgRSMD)^xM^)aWA(eAqwVs| z^z{_*gDh3Buj37H|Mz$cqU^@+5H1ql+@EOuI8VhDflt%33}vRQ>&1D+Uy`ag6nXg) zByL@?q=!@xa5WU{JeISk=}=J_`ohY+^UwGGEov)phnw%L=m8!8!c zAq&!~7dpkXO67b(FxBhOHL#ozSMy%z=3A21>wTeLK5g@d)3>(IZz9gF+IDw3-NAHj z+|RO+ItPdx)T|xf!EqRxBbfIX0d@q#93EkJ%rOi5EId z-;@BRJiioFlxP3FGu8ovE^a=>u}^~$>pmY|y4L%hfj`ap^rW^TJqro%bD{!nu-h)% zbX*fHJ2gE0YKf{H#Me!@UqUiY7gQo)oKu^9b7G6=8NR(+-Kgz_HlEQK1$G=8*FNMi zvHTHxvrp)biZLCME8MOw2}12V88R?9=?)EGyfo#zEc1vRX-4>rO`^BZI9vG4nI>oo z$E#LZn+G<97A?De;Up$O;!m)^Dmz;4%_FA29;$@9M3M@gZ(Tlc(n;b|?!Gw6JY;Q9 zJ}EZ;+ryv!-<~uvxB|hM7Uf1QL$4Ft=)3PXw}KH@icvQ?#8fI2v)!4-Q*U_8Uje1} z?7nz}zuh!Ui4!i|q&J8VAKQd#T`8H-B>_zqWX6r?TQ0oy>7ARX)&r^DU4b@_k^4K~JPM(UR0G0h85QNy^@CL* zY3S2Is=SO_;cXA~1o|ByO?-Ur`2b~_M2a04vS!uQk10h*-jwJJ@e4H$YQ#*ptA!G< zXrvI+vB9PS9K*rT-zmO3pr%Uz>exB@o&5|r9{!Rklj~&&ghgYV-7Nc4beffogfboU zgoHSBm#so#L}(>hQI+ybtQrxqo3mS}xf+$2`{S{z66@~plzC3h{(DT!>$*4RZagRB zK$Pa{QF`-Onb0;g9muQ^qCDi)h-(pD9fuy4=!Pe*@O#lMQQ6NaubC(`Z=Vp{IeieQ z<1{GmN3{ne+P|h$Yw4olLItW&GqbvjB>JNFLO<4f(AZ_Xm4M6uQ#^WYz_~#06PoPV z7X1vfuW7P_T@e8Ugbj~wCZp4OrFq7rAX`#s1un9_X^0;RG}0HnTVMD)^~|K0ku;}P zF?+l21egmrDB(W?i>@ja7<4!$RKE;a@=CNO^spy#b!(R3)vty1DE12kcKh^3MU}M$ zulLbJKPt2uu}t_nvJtJlk`m1AMYjsQP^008Up;?D*C%jna;94$it(a5{#&-{qV%^t z9}Jp>6gJ(fl*VN$wvl_3NTr|9p+$B1&$!ca9VOj7(v=Pc58INey~j&uIy7LZ2Kr7i z8aITwhWR(@{InvIbX};elW@7EDVL|WJ};!EZoY8qDDDKH9Z`KMg5yT~ji_oj+G!Ge zP~UWg{ym6%CI%!v$yT2g54xk__!e~YBhC_2ee@oiAJXWhaz*%LWQ{LA^^pB)InpoX zJ}vIfaG>u<$Rb9wQ)VaXrGC0#qwt+vnlP@-f~c{gS388$ohtwZ+M3dms?5B!d492E zUwYl(^goODf9kl5_V|^f!Yoh>!Ik~IN!T~d>iMPLaqa?n#E?Xp1KMD}7JOeEb%l4O z9sylxx0GY*<#2n{Nr4XeZQ*pE(Iiu{3<8_j;{dSEVzzT6AFmZZ{0Yv6U8`f=AC;JW z-}Y-Y%N?^;C3Tg3ryarl@pEB7u`5QQL6EaCAItfPB`n{I2B5H>OEfk^2hgOwx2;-y z&*fr~+k+0>fUIROJjZLNfUSyX&x%=XhbVs1S6+32+I)2-w8z4nO5x ziP8;&l0>=_lu+dOv|C?Vs_Iv|@50?YF6~dMJH+3jP%_?$Ji@2&A4WrG-*c*d+p-r0 z%`eh@c0|UG&i0@D-%=WOZ2n4z}>RGr{zE&b7 zQ_ewlzTkISeoRL|lH$HZ4h3a};?Qq3j$?C54^i}#Rv9&0#l!JTbyuUDgCWUBESere= z&>UEYLe%_`{*1wpc!9Hy8Z{|dy;b3o@$0hB3yw^-`mLK$S3hvc+CKN;lLS1mzo+uQ!Q$+dv^2FrxAYB6$NNix`Op(YZ&?w?!puRI}8k! zSMqc-t}OZf4C<$L^;A8XmlA>(xlA8g(-S?ecsPKqR;;Wh^IQPOs@O3?FRPBuf@&pJ zQBl@^6rPKnAHOYN(;{{geBNFQ)Xg<8F6|I{fqnXf!+ASk+nid{oKLAQi94mKR`ykh zY$r#P*R#&W`05VbxLeCAZ;YPKva*pYeSHT%%hoND!^$XW_PE4ta0chSIYcw-^cDMvHhNZUy@G5bB)t(6E=UCNL7XAqoYC!;Xex$sv%rg zV6@hi9MkPX#@SM-&=kf+M*v3iR7-Kn5mVxyIpdlS8#x6eNJ_1;7jCj#{A!0n%|8~- zkMiXa71+AC&A)^R1*5H4Zzl1ks0_r;Lxs*_AvFDLpzWHP-RYo2WmiT-SB(X@E|WN- zJL?C;hA*y|zZsQ3^}ZZ8dn4+a$aQv1h3gZ)rOdb}I0-~9k&io;Eb5KhiIS9hH>d@5 z4M7$D{4%>IXSPI{$Wg9^WxY?`rQ@G8d^${DegKp2u&N(u@#YDZrVsQ;8)%LpE4cX= z=>o%}or9(JJMY%0-TN}S!+zEidRexkB#~)|*fI=v4tTFKyQBfMz=>sGn*VEO8gf*B2-%QEPZw} z-o0NUkf`K%_D&x==v4ll#M$$uy-jqV{&rY82_>kSXeCIu%k*48;I&FCL*EC`M@Z!O z4I5{BqDOvvI6dQ2^%6oYuAK(I)yN&cXl+)3O?PTFeXVxN`VN#}v`k@GTe^~7FF&@R zhU4$mVys5OZge9|Il~#oLrFV)&7J+eYb8pa(?3<`b&%ZktB{YAEv}m7EH21(a$S zewlMCt;}mFSi=K47~)Z2$oUm|Y;Tu8=$+_1;jQS7(w8GR`w`Mu2T(nJ`$Wlr=&}_nb@1wIz9_7THX$PQRIOVqCbkF+Tco4Wz}xW=iQO5fn47wynsN{@h;~r zM&F zu|PuNc>ncPWWTav=cA} zJg5`&h%Q?QjuY~dbaHU6yhg{zvJi(IQxx|#7{Out>zM;ur#pZlvjiCz_HoJsi@Y`X zZBVCC^p|-7T4%~y&`I<2sYD&%De@Yl8lz3xIEB=x50Eqxg=}#pRW)STqkg1Td@1}L zN31IfXL51qvH;8f_GFrs4I|;gyXi`~#rjF6P-wb}JFUKMAcTK;$5l|uESqpcbM#Zm zT-LgV<`wIrXQr62u0Ir3i5RGHSUZ4oP5)Ao-h2_Z{K@s5 z6Db#b;l}yG^QJzJ1Qq3-hJzkMIpeqVu>%1rL?y|g@6TceRZ_trT5*=f<(n}lM11Kq zs-srBvl})aNu>*|H5C<>{zNm3M*EXM)l@dY@zjEyhm|YMY4B;J6ws$PXQ~67b&fQQ zU`3Q!<`hVXe&9}#HCVH37GP6&UloE@B+B^TE_uh~!SN|nx04OEtc|M~Yfcn8rC@dC zYsh`e*i3pu6tfn(O0QaO$@pbO@R z@egT*ZLM49`onC4g91BrXoBw&q?Ve_1Fd=9*W*PxGhEIqqq zocn2f^OWNsVzdAgD~<|Nj)b*gui(+RCv`;68mgf51y9{fC|AQ!%CT>s6>TJ6_b<8Q)Z*&kbHGV zpOU0jet59lJGAvrS^|01^;+Wqxql_CkA^%&c-w&CayS8;hRfCI!e}i4LC)%FOxF zj+`4uDAO|U5Yy0^{uCNa*r6Z0+T&15A6mdaAM_UqrBgwnpr;a>!&qIAA3JNlm7{9g zUphgW%CA7@(I4lfm-gtWgw}_;;Z$d?GJss&DKFsUN*%wZM(kKF@aDm~u9*3ibkD^eiy=(m*%1h2PbG5~K zqk*vb=YgdkE>(cXkzeHV);Y&GF*Pm%yNRHF2QoU&YcA$fu=&9vss8G$!`FYkH^lrFv7J3 z3kvveAXH}jH)4l{MWhd@EG4AUE66>95?p4_?N@Qcl(s(1zr)D0ldX=SiX2yMfzd+C z@unx+nq@(Pu1+ltTr@yH@@V#U9a)ztu$>=mS3w>r&c7|Z#~&HT;$4&4ES1YZqsi1s zv^`*|vx_h`^E$>(qVbAeG`J%loI15%1s%mDCU0%3ZN3P?aQlytW2>3Kf%tbj zZVyy_(pFc{pK9A1Jts=_=tbV5kA!|*J(aQ0q3ncq-7en6EBN-v96F?L8JzmBz^ufO zQdxDLoLuazV2SrkS}PxE%Dzpyb@uti0EhSA@>uf|m3!mv*}SRfG2Cu1NiIvq;?ZfO zv})d`^>3f*I}U3BsvGWedb%Hip^=k((I9X71dbfCp%54jGI2;q7$H@Y6-f8Q`zXrvRoa5}SQx znE5zpFVGSGi{hx&5r+R?jMkFkvP5avEL|IxWq?zhA+CUIx7s)bUCE%e_erg4#3VZs zV7Br%!0Z;_m39+9onc!L^y8LoRqN`7NvRw1d$7Fz9S@1J3V*e-G=TG$KqU>cF$v>d zOY<(5h1_P+se;vN!mTo?gi1KsF2;BNwEQG>-B2{6^f%E+VNxQU%k&U1x~rFc*0`Fn=C zC}U5ML)ZC#qHg58Q}xAS2e-eSo|PVf36re}6KTDsWGKJv=$g|4@%7j~m<@LIqIehJ2b-2*Bk1!08+o+NqXIg$HV6gwbbvs8X zI(!o1r93M%F2cTf2f{x~LxeB1E#iT7+v|8!zLp3B=Fyp>#4@tb_J+jT{MIrF|I>wWB{{u8q& zGTzQJ%!KH4@}2b^=nfr64`q#Wre8bMbC!VN7cc~nUj2D?f5XCGqeGA{|Lrlh`A*^n z$laRmhX7w;qa2u+c#Mj7^BjpHE7VBz)T5uj@bHLjiKg$u-vSNG;YFub79R+iyrVzK&fA}DR>#ktxKA4wg%*sEJ1-vB2kE9%k)p~ZU0$TE zk+3yVe+gG=^zd9()Q1gAqcQH1M0w+TOp{~^VZa1NYJO`<4y8Sq-7@Jvt^K!g;T+pc z(ij{mQvx+ePi%NlvFQ4dIyyGVUt7_yBb*l^uIM)Q?<4l*Hojd7*HjyAvJ-}PRKp#c{#iU3l6j8_D7T?%bUy6*$;Wnn7`~S#WnXgj;2t9BRc+0t8uesq{-o#ptwCOMuFJAw>=wYC43BjRH&MFHw^*hUvVL@+0mAmlS57!tLkJu zbVSux&z9ih&f_(n9g5%?**RuB?i{zkADbn@R(1^F_6oK(7ZRInp8P;5fW=@f+3q58 z3eH;@{!p?x>^sAF939^Yk70lj>IU`=;5yj^u3~*rHm&Pu1jMfKE1~7 zJfmv}R`a#$ihWAB1gVG5#d{MEvFho{ZOE}j2xeG50AED)ZPv~5VRc#1on_u_&$9|?BG4ieHI~9 z=fRS2-n0Fx_Qfcb@N=RkqS;#l^2%&9FAC$)KI2%4t#LfH2BR>CKseA*cns<25t$%O zR5<+Z?Ir82L9X?bK9k=lyN{Rm&W<4^xrOLk?w*K)Q0Dka;EE%xL6 zUabzN*N+(I-7Ea;U`8_UTef38{4@w+UX!Rwx??m1;J*TG&&CWzikY=#txy=hd$xJR zOa=x*6}5yeWiP17 zmj(C*|DLZy?RUtBTuwbdI~JySt|Tds{V~EDFw`79uDeouhF7AdGnwe8bURlIY#t%YD)sWDmWSoLa+PYtP~)zi*< zyp~!p5Ve$gL};pu{(7sGvZc3hS<>DZcNHtq?)8yP%&eBRoL`2@76I}Yqq3#5OBVDq zbwAyf{@W8M`C=J=w#BTybPSKM1w0Qe&ulf9r)+bB4#sp%{U&PWLgZS|??tcCU($`o|AW{4(iQNxT88S>+rc7&t$4JmmbS`?znjt>Kp+hkC5K<}bv6S|5DB zhhqSTp3F4fE^OD}U^73#~Mxf)$?fkK!Iu84qnvLeE?HJ-N*_3jp^@d9WIe2dK#WPRJ3_CYCKRa(hlNoWQ@R&e~i4rC`N9AK6?Y767M!Lkt z7eYN`Vb_KG`xu+C+d+pqc<$?)EU`0pekku&P1De+2FDu~^>ybS!mh@muZl>s(YCPE z@PS3-;gzPK@b_0VlG?wo^8?3ueu-w$_Aqp>1pu=zz4~(;oBCzSk(V?SxMFtU5n*u; z4fSpJe`%6~Lo=0=<`;EY%urAFO@Zkc!V^^ zl6VvQo|KLPg7_9BPH*eE_U>O0zXKb;yOVtW7J0X1MVvcEVBf9**7WR9#8XaY?eCMZ zGCn(|{@xQt^K7e=C8uwd9iJhoy;8MmOMX0?P_#G-+hz2!^AUq%cAbXjp9e^U5yC<* zsrNtm+Gn(JgS}>Mk)AnV$++)QgK^aRHxILK6fHn3=0?hblIT@u#mM1D!y%bUqJX(? zjoG|*8bj3~1b>+0ZdbCj_m4#O9w#p+n;T#mSmngON4g&-Ugx*x0HgT>vH-;%9M3Rp z6irv!amPZ4zXhn3Rt9Nxaw`KkVF@Hyspv!h?HzD}di!=&clBbSVd98cfhDIEqrGGP zJJ?vEjyw&>NcV>diaKn7%Wbj2`#$jhp|fQG6q(_1`H6A}<4aSU3tC-DhA%tm|QA ziou=2beoEK^w!IzXVbgCyq-F==tnD+e4*kCBkj^9gcvY(?>$kM{`eWOP32f=!V#QP z-qkc$0Wt$;!;6OAuA#x?Go{9?fNs=1N4>QjCy*Us)ySVuS`AXxsi+8WeTKUz2rDIO zQdPkKs8+N(w$ZIMTeg`<;B@BABoc4d4(kh^BXlw5R?%voA5jNPclee@eBKWNdqlqXiLXxQC3KOFrdK@q^{E4t9cnuYlDu!et#1y zNOWUz*EE%)f&-=nF#Oo7F*q#P`ZhC8d<^rTp&^4~HJ<#=R_RAkuK!9^5xw9Z;(^~j zr&^iot3=Q<={G1G7z(2T5^oCI$k?pwyIz-hpRr<&${)d zqO6;MQhlfm*ZQfs5l2rOsoX6$cING%%OL6@<1)yMyeBO@l2KbO;&|e9iK#9#g(`m- zXEtO?PE?6GO|27Dv9~HCo`rHRid}TrU4a7AsA+b{}U0uAUZPU-b>GD|kn5puwa?W|%p`SD4cK+JCH1Yv=ms&htUv zLcs@NPqk0_ywuQtEm$wnmo(qk?sYv^o}Hv{VO;5&X+_!Nu6wucgzA3=ARC6Z-3Ylk zS5TmnWGb`S+LM}rqDDT6f5_@0hsi$c)@$CqKSNgewaYVF$3VDp)Mq$VoS4F`ZO6LYv=SSNg&l|)!P(8)luwyH zzP>Y^uK0D@AxM}C*ft;d3E^IHKP2DKk$GwJ#G8(LC5O8)Ji#}FQT~l+SNGUo8{^TS zn`aS}VCMKa;OgD24JyB0`w{aGvDU?uTKIX)81VFrksenS7cMyYKlJ7%n!98nCIeJF zyzSzrJiR^-{@OZXogJVh0AwTb9ihQbA@|qDRx!@^a($cWz^{*P;Tx4~n{u8zPq%S9 z2@)%o`>Hbc)y-Rr!;LO~f5C>ynGlc9z@1v_-e8mNUHN_SUUTifh7UJ9f8Z+o8;VNb z6kIEHS9e%wyb&jQW<|Y`8qb`!9L>hD2JQaaW0*_+IeKrzFP|I#bX<%ZMmi5lbRr_t zH`;K)*d|+AjPeh$CF3}~QSdyHS_M@u;C-jQ!fE(?=s1)YX*i*%)LXU8S`2r#6Oy?g zKDi71ecGKWGURJcXBb5AJibzp@~CB0e^H0ttVcghS(zP{%ZY4XI>Vo# zC5}IO(pq`0_d@86G+g+fTZZ=^@#Ri7ZXV~4HAT5r9C%u$!#!Qb_tx(@oyzct#4LOs zC{%5n8 zUlOXf1_Bcuhb9xPcwpv>Ka6iZe?R-`NYKXh^~y%Rc7?kef*A|+n$Klk$-k1>s`VhF$KLYv$OGX)>V%1%p~d%9 z;ATTugE7Z*KjB+!n7-JzjIViTJAklcsV>>p@sEXOg}Q>b4(y9}bS|Cxm~p#0-_771 zPoN;L(fmE7moW)-FO?!i_d{PscMq>@`PF^I1-e zN7cRkyYJejdR_#t{txoO(E9UnJ0CFFaP>X-m3i^+5Fh*3pPvMJu2R%eyYKcW+1e3H zB>gMZ#RMZr)rW~e#>K^>zYHe3%fj`Y%03|SJpGYJ7UFIk7C&%p zuBC{)d3%dJ(RBhWY8{%tEA2r0n0*&`1engBh9Q*o$`|2iouz$K(SBC6Rxf|~44Q>e zDejs;=5m&PXKq|;O&1rRT=~Ah#<)rQP*_Uv;gM@al0!)zA^DE1!?9T&U#5$tB{B!N z^Mr+aK_dOFm5HE@yLX<4G+ZPq_NOK*U3O)SQ}3m@fwaesAQ zUSvc|yy*vniS)@UEQ|)>7k{W_O4fWTl%DJ|e_f@u@J^0)gFpLe3CkixmMRD>^lM`k z*lS+w*w;Sq~%(@Xs24k%1JuQbDc0Cbg~j_rvxY{rsAE(38P;T5hEdtEt;*w`-~0U#-@oVK}skb;MtI+5Z5+ zS@cVZhNCC!0sA}K>KaQ~4LWH2A>kF&Emp=D-%XancJQ#C6|*UC6_A1ATQM4xk`#$C zioftzZw^{TbqasMKmPz`!5*O$b{FO^3wT4zxU&0At=x8VqWE9Sp44C3S=@P22aRqm zpr0G<<8{$yd_4x+^Uv|x=xKA>czeJR ze`RSG6L=y&6j@r^!Kuk5vCwpB^vR^vE>W)&?9w!Sjji!R}1MHG^svYY-2?crk_ z7BYXqK0ju5wt!7FtP*%b!L0-@Ge$0&7+b=HB9c!o-_B^&T41s6E#-}~f5YH(2f4e{ z5BwAJ_HKPfRlSDp>;4f>2pij!y|2ly~sO>u7>%yw53LH_^9OCS5tKrnedI(XSTPvMQLM*hmZIx zr-kK?+R1<5o}aTkw&F>rwt;*Z;K?A4=5&E>B#ssEqa<@&#cOP`%&Hn>wSqZVh@b;W z<~%(=X>L2fMpOF3jj8b!qf)g>a%w4N7v+r@$wepb)RS@dJ=asImcDCe(Y(F0R)%S1 zD$|RVzuVKYrmU5;o4ZarAD`ite~G^e^x3{N>S7nseido$sI;FM*H+bR^{A|TS9_=2 zYSz9Rn_2rT`rnClXR&`1ofh80!urivC9S-T77m0)qv8JmiF&2i#T{mA%|lLs^&bzd zm&8j;Y2U=&Fw$*HXS3dp$n)RMchD?=@@7c;}YFSjXvYxBL~a!#7WJ zb8-6se$Fvoi6gRE*Zm;Mo9DYKT?8wum&c`Wd_@<`5o&-@kh!SP2m zt+(t6`#VVyz86<}UB?`bqDZ2+nPLGYl%0RHID6ij z$JHuOC?s6 zY14~K9Im5hDQc9ZtvOS7i~QH|j;ycY9|T*EiucpHUwFG!O-kW@Ff_VOp*8iUhdSvo zH-%4#t+d;_Ee^ohU07*G#V-EJF;zAkDoUifO)T{?BbFU2&} zHHY|Z;H%4D3qG@TZ=trIdvgqaAJXE~t-MdF>Cb(01>LNc(S4#NlkZu7;ISSHxAH#G z{{RH~{hF8Th!V)l;Liqw3M|sxgtgz{MG(jKiKe+h69j3dl2QBVC9F070D{zbL9VW% zgZ>HE`#8yQbT-^NcvrxIuGObYhFh5jhKOMI5Jx(R-wirNBNduFF4S=uHCaY*<6Io0 zPNo8^n}&ZI!wH9#DK_PpLM~NjFW$?SmBUFvO*(}`>NAq59P!CQSX!5H%$5GFNyAq0 z$zFWV+Q}<&B)L?VGy7Ne-CYOaZ|pDo8hj4%4u`AH;k{GgSH!Oq_={NZ{Of6}_-^CE zT6cmpEdujTv%Xc)HMwKjw10^ji&r(x$s5y zo$&+0VLmKs-X!ql=9fODr$yqMkJ?AWH$Eb_@gIY(TH99B?JT@Jjd1=g@a4sdMI;)A zx8cti+2855dbNk>pM*bbAAle5Q@;dwf8l?K^{78)?~ncr@ZX8NG2nj&_?Ac3J_~rV z%ft}rh;$ziX%fk9HJcbG(6raG)ijIE7sfsppY0l^k$nr8Eob=4_M7+zQQxVrGSjIFN!0B9cuc#BQ(kHh}}i28dhI(Db5M}MbV%i-OA z>q^!1Tc*-1rPS^&gz?#ZR~KTc<`}%oKgp#mW>bv9(4&LIW%H*TZ5nj2u%-1%l|4O9hPf7~1tJIy7ff4GBsfu4e~`Rk64kyha(|aQIqvaII6tQ&ez}qbe0CPEw&KoJ`2PUmJp)?0 z{?PDJ`~uKNg>@NDh2rfV=TmGx}Aq|K;X z+}v5{w>JI*;~jrbm&JZ5)4n12X7^0hqVZ?#geKQ~JEzBM;#jnQ_*Is77WW#jhwk+& z9}jqjTkRU+;ux;2+rxL7z_rn@uk~A-y+d2pwO?rck!-ci6XPzQsrXx8x!3+0>YoHW zGiq+UF?X*;p+2C#7}9Pgx$!QAd2glN>6h|rHr_5>9&Zw8_Lr9$ef9iWTg_#&0;e3x zg-UUpV)Gn2tyeEj5tXP>_cIK-a*Cp^qZc|Zo*saUIksRtJoWL@1KSb1I$wWMz&V z5~>jiJm3%PGvl9#JkNvPDz=#)I+ls2oEiSiBwzSf`r~buQa1>L0PI5o7<%Hrkj+KJ zvNRB^Z45;fXE~B$p+0y;%bzw_7Dj!W^2K(N#A3Yv02#AsVDVWDqTS_(#=CcMtA)1u zroMJp>K-FX_427ZyHUjLt4+>>?C-UKgblHWCOAMf&Ty_-~4Ov$#EtoPg!5KzMfrw z8{OXS{{Wb|O}C@BO+7rV{{RkisR75`9eZcn&{16=w!q^*kLBt;D4}r{Bfs^hmzU$~ zdH4H2xh~)2zVB1F@OOo-ylbvWqT1@3H-~~~o+;Pm)%-^Kr}j;?kA%D{toXB1H^0~# zez~ef&tsz8TiY$JnR_E$Nf44a;@=`;c#lKY{4aiNHMY{?EoTM&wa$mF=^iB0wF@hm zri$M4PS!Llonub8hE}zj87+*dsajm5wwjHlh3pdB4|@0?;6D^x{87-N9s!G9GTL~p zWwG&|iK(`PReTw*nI-a@z@9ZXTBWKfy72vkei88_-*|>CHrceRzci(3{?Xn6@iw3F zMpz;Ed2gaz{{X@>Wa(?+of}ezPH?*Sh~Q?phyD<6hOcav(?a@RhRXO(-L(&gx>tiW zVW{|lZx>wDHN)iCdYmPQ&R!aRn7)9$>-b+QL+FbK%e|0r$Z^OU3&T{&ak0e!DHr!f@y(*gP z9_=S5-pM;3sXw*F&BuuT9eB?}wVKX0y7*7xD6S>H)O6h{%HGcNQt=JGqdo4UtK3>? zww6#>3Ff?-^5z?4wT@@Fl_3%^{K@zS@B_xb8m^P!$G~q1C&W(|Mes*Mw7&87w`kf| z!%qtNpBMDKUr)ZclJfZzSc^>1JlSnz@nxN*wd|e|TPsfnc;4Fb=S^SIom%VQ&yPG+ zu4w-N8@ypRgnkv<_zv~FTdY}66c??g$8)IN{{Uv#T}rY?X?v=@^j0>PCJU1U_Yu5s zGleVh-|Y?m00j^6UGIWo{ht2-VULFT$H3o!S~^LjMdG_X7gB!__?{VFW}f0Z%cq}J zmVHU&mRa>pQtIznzIS$z$mtcx{)FN<bA(Gp9Gt6eJBP0}AJF> zB6fu}iOg|z9I+V8LyRE{)STZfI#k@6rx+g(%;q7H12@9p%dS0dSF2Kwt zduNSgbrLjcBu4T`EI)aNug_^>>r#`hGQ$5 zmzsA=nJIHiM3iE!w|;HXwvXLBmg;Rv#pH(CX=U4TW!~Ro657Jiv~$~AG*w&l1N8 zEF_faI^mjk&I_jNNkRrHb0NcE;XoK_sW*YO>5j;}H>^Y>BuML|-T85rUo$QnOG4z5 z3n^gCTXQfSX09@>B2U^-oEmq$X}ct?X;q4kET-MP*zDR(FMv~&>bK1XpLG{y@ar{g zTkRb$y4f6u+5Dvn1dJDPR4MaJz@4%%k`@YpfD{J923!JmgCIvhWR;RhSdkQaZT7D3 zx}bT{us9o?`6@SXK*{S9!rmmcz;6%h7Yx`T#+h|>MuPV|y*({78g%mQyk1X+@oxt-x z^o*b<`yoo4$lI6f6@K{}VL&>J5U%Vp&QE9m00^ImWg!zm*1Wj+ zJ2bsO?m5b$D2c#O2PYlXml)y0!oDJB`E(6$Y675*D*pfhiTSzv86c0l&)v&sk};F1 zRc%h9wVjFR7-x-ARAo{M zMC#~I??&e`D&U;t842C<24J>RDZ>8%t4*UQoV(z$!GGaZLFxlA7zgIWqJ|HHLQF*cx5$QgEaFK^Yt_1`iv4=owDF zBFS=9c2-{GwUq77@5;5dm)FkV<0oX}Ei~5sZFh9GwwJ$c4k2L*C6ub+*_eE*_hV3s z0o~K&-JEo8{Yy=#7V*SXWV9;WCJElG`TgcbNMd^6WP$+5?vI5v;TVkQTFB1P&X<0B zjN>-g!W*FD`{=7rn>bwhPMqYKPvpIDd`>o{n*JqUt=PJ9z%hyw3pSac_V*>3})=pq+p! z3~s8I5U>*5DUk2Ac60EEivFBvDeCK{QE148^z*WdR6WqUr zwehjWfvn&#ApZbnUvxhy;M?ve1m~&ij(Q>Rzlb-hu7#`M#t+%q#zO3QRxp>k|pvw{5 zepDGNl$3w0&&)Td&lxICK*1UWS6O~dj-ecp9x%k1-^F%{oNORY?86Wi+F*SA_GSzNKlH{ zX68f~a&ST3qdnMXwJ=7m3}g{JCo!>!L2w2VPrRcHGaS7#caN7UYqdTU@dT-l>@8$U zm>Z6ldP{~k$!RY4ypy^`a!*foSND279*H|z?K|q#{`(v;Rx)l1vB`~$ zn_)YE1nu0{AbF91N|Kl$uo(@NA$e@3TZJM^b0Bh6V%nj}1tjv)U9riKtU()Di#Qo< zcVF;`_>qYccz0d-hTNSaR8)`xO6^s&iw>Ne9G;*v00^lkhP+8`%#Y#yZdGBNzL$N7 z_!((cz)%|}<}0*dZrV>e)2mgqqegd0X~`|4ZDS^{b!6jvwX;oos^JOg?l)^`X4aN{ zo4Vav_w%{W>Q_>u7~pm`p&&6`tK19FzEPL0WZtX^0PZZc$4>7nmeZCt zx!_Fltbb>j7a;kmHT$q2vjHn2yi9hmkqaYwIPfQl3w-(pwKN|pi*(a2H$(S{+UsXF z0Kmej&M+fzR}F1E7vfTi_I@7M12U429+Rs1a}o#5D1%Lngo;5{Y;GSgB;cs)Sel9R zI8LWUdU8~?cjcUI?`pQSxs}&4S2jvXrsCz%S$mdt(o06xmumXEy;8a3so~h~+1~W2 zn*_~kAK8P%(tONfk{BjwBP5c^5%OffA+y2RTSS5pZE+6EPn^SYkzAxn#uv>*Ho!}Q zS9GPf;D+7vXVTAud`ooxU;HCpA%^ZP#3N|>!%70S(<&JRYSFMgNOT3T$}@ve{43%J z*u#C{y;w5@jhyJreD;ueVI}j{Rf*W`05(y}swpf8T9z{vSCvXNl8d^eqT=bhD^8V@ zjFpy;-fc9hb1!{1>dwij*;%M4$#ShVg_V-l>H1#lQ_HXP7K&SY$XZ)_n^_^6!%>BV z7nW1OBRn(ONZO*@EU+Dt$A(Gcbl-0-=JLnt-|W->00lX_()<%I?Bn}x_+}5<2ljW@ z;fqO|RMp$v)A<5p-C;J`%5*-{(DE@&lOwl zYd;U`cQ)+jd=crF4{;aDOB8g{WKx@eEf8|b7_>}45tJSQ@h+(!n`7ax5z5j=?TECG z5nRVM0+KF5SwumJkZvPn(K9jz1&Y_xaPJvsoI6>|56@o*UM`j^3toh);PG^)6&cXQ z;inl!(}blLqf$AG6g~=j}b|6t9S=hpGbqncAqGI%w8AJ?S40D{wnaj{ltp@00w+Hr|O;_ z*2a^ec(21Yc3LNgET_A=(FUogjZ;a!@dl2!t*Cf@_WsT(wHsgUb<^(dH2AJQYWht(>U06~nrMA>9?pPzO#9*MiiWu&#+AY!t zjXb0J^P~KC{ggjy$b3WbcK-mvdY{05+WW(v6VxE_4~OORt#q%6mM{IA9s5OU<|_?C z=GrYj8@RQbB)8St*4>j|O-Ox)I}hA4T*D&bj7AeNz;fVoY&CdeF&SPqyy#+7DdCkl zJhL&BX7Si%7{*e|^9WazVa*&4F9!;AsLSo}IIIp~R)!`iVewR}LcHlzsVYsVQj8?< z_?u164MsfJOjoswiY{lnuQihr~|5xPVXUhl%TlOZxQt3UiJeN959)ka8+ zlkaV(&1QU-+ySrU#0h-H9&6iAx)os|204PMl&oUr>n;kkh*?o)44a)wAPxNic<08p zci#@QTNtL^^7uKB`I zGeM$iU_zoj$kPaPxPdC_=(5Da@5BnP&mj1}8S7N3iO5`Ox|YLc3EB=;O12ist2j$Y zxhii~+Ht&+N0r9a79zG@>HGY&u?g8ZC3=)>wrgHjrI$-tq>emEaKIsx%Aah8HFl0z zTWbKVn61k)kCBRrRl>g`fmW7DbGAe%+x93aE+#uS<~M00Q-H3#g>R9GTn*LLf5IK& zfdDdiYs42;Zv!xt=^B&B>clb>CC8kt6CIAKWF-`Zc74k_csIoCeoqYRmnhO90d!lr z8YKt@cMCbpfH>Wfca7|KKF|;0vW%K`!^wPFDlIGCF42>X(@DQ_c4>X9w0tY0CbXw5 z+E$Cz-FA)kz2fz@(nlrssL&{uDMOV6gaTCup&R33I3VCKR>lcIk&?S8{1M|8Mf*R8 zJVoUIR2R^7i5Qh)tP6dPGnFG_1_gsD+{LqkvgAv8HE-6+s{9=(HR#)ZY+lQ~Dwpe} zMcb#cdh4~`tskTQ7x>Al9c=~ew}d=BY@QVH*tojXbf?vl$~W*wiCH3tLezB|EjL}% z=aS$<;q4ac^3FYDT75fAxVp7VnHhQS7ko$5w2O^7d_8gS&hJatd@T;MCC7m5_4^GH z!tP%Yc&kYA29a~(tGGNlt^WXKX&P>&tLRp?I!%U&b*Lqcrj+qpjZ;+Pz8LGadQXqE z%Zas1J1K>aiX)op^7*v(KWXr;w`|syTCnkVfd2rpwf#^_{g>g*O}uU4f9&rNUTK$- zYkG8WH0#RzXSvq=U-1uC)n?YTjehT3wYSyvi|s1gMAM!PO7i~zRcF(DO&5lIW$^<* zlU~zomc|s9P4RBAB$@~I66(U+#1U%Nu)H4=@eU`$>~=b?YgUZu=jw$zwNw|fr#cyI z-B_oJjX6}Bgy}*Oz|M1}I`fVuF`>wPAoMH;&1hm$7go%D}_|^9qu&?lW`zbRU1hgRY8;iw!A9W z#Ge#y^{d@y!`F6DO{j*B`|Xx;oi0fJ(6=iagt&#!Ln5h-Z6;Y(JV*0J0It_h@QsbR zSua4mmxHjWOJq1a?BS$2&kjNyjK(;}Qn5ygsYSC*OWlK}n_6xAxc5>=nf0kbH3p{I`09L;vP*CL2j_Fh zd~bd6o5a>qS@@4v(XVvLn@xMj{5_}M+e>mZnc%y#TZO&Ubqk%4-CDtLO{+#7;!`fv zEQhY}f5pvXLxw9m{WnOxTXLe>;!Qal?Au}xjrO8Q<98#>GF&H@azu`dT}}sM<*7e( z4?}_o;PO5B9sPQAtSw(e(eC4t=I%ANbW-nm9wTrEd2pmkGl7OyenO$kbG=^`_@_0s zEY~u`RC4zrTMY^{r4DA6l;KS+Ui_S?tsOaD!;Uhehb2x`6||wFTWa*xSu5G4WWCmU z44)P?tJ`5b5qMG?5RTU^Yo_18(niPuifL0?Ng)^{x~Ps;Bq%B}4;gjw`^C1!pwYB{ z46VE=<=c7D_>L6$6oAbXJ|NrW{{VFzOW+oBxVAh8U4vMLa@H>>utFJpkjX5_eq@&B z91!cY?nEAJYB0yv@yssr ze`a`cYldQ4>QSq-p-2G6k-nnw#|q=*h;TZ#<}Ahr`19k7i3GQLM}{N{aImeN!-7?T zNhL3Mf_4EBls*$(IvH#N!jszcNhNvKU#Wgb#03b@&5qF4g0jvd@&4Q zhIwPKyh)`PJEI<6y%FL+GN_{^sej?1JZT(p!Ed5?Z53Aui%oqaML-Y-39mN) z0KJefOR|#9#!r`d9e6+Y&;I~hxA`;}GuZzC-#tBX?~XsiB+^__n%!R)QpqH(%D!#2 zCinbwR(2QHF;3sTcGId?dTQRS_j<0%+S}Au_JHw}Ah6PWKO~OK3%#zh<~by`)8=X{ zn^y!NBq|O7$i-Ga9XwcA+)JhSVPyv(C7s|2l?#t8uhT5YA)n=u_YuH2uQvNI^vAx@ zp5ETS`L3OV8Zc)9izqxBQZjbRuUt7fg0MFT7?)jJZ zblcbUS~k5fe0}kWC7(y|&z6`f63~8?yl`8Qvj@h18ePNoi1hCd zvKSsmjN0naH=YRcREagVR-p|7xGo7)k2I_x! z3CO{(I~T<{jS3ZNtYvRzn$F}!Y)1y!C-Q4NF;X2j%#ip2YF`q8v^OAq(?2i2U3}>+j zzB$$MPuVoq$pige&N2bdOR>j2xHTU{^9nUUR0S1bcZoG{Jr%G{MC zXM>Ih0SAvYbOCs)>Lg4dSP5`z>4VY z7{^t)7+hzkBh>d(@dsK}$g|T3Jdx#IaKMZai||h%5;4>g2P9W5 zG8J`pS5w9rNmd6r!5F~@-oAq<;@sM`8OE+YysA^FerY&fRO%?%G?uM6%_%EcCDzvA z#Ll%jN0y^elCnwZb!*=Hx9+plf8l)i!HJSBCqNFWOMz*toT%y~+p0zpS0kP_K#v)C+{`0xfu>ua4O0{Dh~sIvC{4$Tbq=%kj>@9A-6Gw zOQey=kh033y@eAS!hGK{kjsGdYEjy=tZ`XE9I?j~ZvOx?$qPa@7**BUDO3Oea-#zy zZtRinEdKy8j5*#qvVUbhTdTFF!|!X+tNE>Om$$?y-PM}D*SD6M`EA=<^|x+*J$SZq zQf()~>7GKRt>6u`kDttKQbycZuL?m%8C-B`XnsF<%GrL;{gL6PiN?>C&r?-whAgsq zH=&6jWU={JoE&Er<^tayybeB5{vYS?6n&pL$m@^b9Rbg$uhygeXUzWq=q|0Dow=iA z{oPfgqua0Fp$ip={{Ww|+kR_nrJ7wjUtM*++Io8YfAO?g38d&UKuID$vg_rd+(*k9 z8q8UVa({MCRDHvNg6Tdz_}k1gMWXm~&u*aDasp3H(8j%ex`fcM_v;WzIam z$m`es`RUGh{{TIQr5;Dur}szc#~+3Vprie0&9t^Mr)_x}Yu$RTRoAn-(Yw1b{cjVe z?`7)bul9ed-v0n~*QU$y-^N!_D>j4St9kYl9Fb}A#?Uh;-G=_uxOM@8mqNxV3V`T9 z6=8p9A0EjOhJ7ExvLJ1t77a!yq(QZ^QY*kf4aU;Xf`Ne<+B~bsJoV@Ok;l`IPTfD9 z1_SAjPnZ7ytbeb!Q%CyIn>BB)PkXJe8`=A=_e)jP^xsBT*D+dt_1k^ck4rVxee18C zy;cv8zCMArE}P+}fxN=0BY2F-5i)NPM)7NQ`|Z#cRY?OpY7qkzP@}8Relu(L_lbCx zULCU3{{VEiu&ti0EINgpOu^8k`tyfxDoIn!8*U;jr_5wgkDTtOx3mPv;J!GC05W7` zfwT-LJwb8-$9{*KlIvB!n{9xS0HiXA307PjW=YQ61D;eAQV!Cs-$kDB1|kj7%_`w7 zXYJaDCYsuDlw_(wzl!SGd`Y9D4~xbrDLRc)-MJ;o(rZ<9tI>HqZu*~I_@CpQ`kAdx zo#C6GEyt9)ew{oLffy)_HSD+7GAn_SSqYbMVxd&?^Tw;<4;}cEU(+?+9&39|TSb=Q zOBt;!k~?@->fYkcRJ$yExz<}dx$UHTmok)gXqq`NM#qKpyG!gQuQu8$&kLA4XwSrYZMU26lyT2iLq3ibAiDp86@PB)w!=N_=UtdEo))( zJY8&DA2O{`Q}!wJbl0<7(7pZ+Ti()}YRlJ#Ir8&TpS5pJY3XO8akaf}w7u88C1Ziq zd`t1-Z7w@0wZ99=Zylu8o?exvU&nt1y}*=Q1bf|D>fTqCC1o!av~n*76v$Sq-U0Zv z;;#bRu9r2Xh4r*eAS-)mFWTUF95V%#rb$=_E<{o`S9a8rG(}bIytL2VA3zWD&OZ*l zKOF1rA5YX&3!7wT0}C)4CXDsU$iFrR_aAZ+IR}iGj~2MIGfJLqnANWZq-s&8LX7F( zs*EY5`2D~o>=bZfKoYWGg}yKh$6=(>N#-E!v>X}10zL=gmQ zQEjTmsCVz)&?dPFibK87w0Mod8-$w>u9N&>@mA-OD;)t|Nn@5=!K$*(Q3P0#TUd}5 zF@;r-VZca%W?1$go@emA?S!9b)8%QEK4scWS5bgT0AmW|ciM8tk1GbWEOp5vK2D(# zET1WrS7d>QAH9fRH>oNE00G$Cljhap&Lo=lm@M}dh^K41a#U4l?WDhV7b|($+hr}% zbFSa+>p91&cIH>M`dzO(U%Kt@BjX>5o0rkNE?Xxj>{l<(`^|7z=c&&;{v@sjJwD#* zG?p9dc!5L`MRejhW0z=V1SrPR8C`RR0k*IVq)}Y2i@2>eo^6RuZkvj0$)^jip1Qv) zN3_L%J6hj+cIooh=5}8OH2pI~_>JL<-CtAE^y_JEZ*<$8S6H{cn@!T<*0j6*9!uu_ z%++*FM%w1lZ`x}eQVnBII!*H1>V{NHHx0M(X71}&@!kE^<;H<|BwB8nX%?a3%|i21 zvAu!b_f%gp=KEXm70O9rHmz}_+3D}BUdN&6RvIpWX(HKaHmJ0`C#6fOYVqmz{t~zG zd)79`?&wg4W5TM7p^@X|;mhX$#s(D?y8XIq>D@hBc^k z4QIf*KY;c7O*-2D08!I4%}d3al<}^p(*2&#Qk!4#ABeQ6r?-mCT&%txySlZH?X72b zef_6veW&Tlj$@iu@bfamN-}v{&uC*R;{LCWQI03sQlU=*>m;xb+j}@ygi`kD(Wu*$ zVB-%)GOqHP)ZAp~JXC5*e3dQF%LuA%{{Rc#vYJ-r_glM3^7+|^xjg-Q;P(E1&jTRx zef#ip$5Y$soc%q3txqU)2)1UMFvjxu3aEm|%PhBvD{N<-Sy)P&7bRlPm$^2u!!vB^DB6UwrP@r8#*wri zEQ@V#Gb{f9$Hbr&l=BgiP&~N#MIl48S#^`-bIm zp>elpIV0=x+!QcLVsQ;R_Pk>jnx*~J_H`ZglDb<(*-6WawC}Rzg5OIyJvXyfTB|F0 zy);;widwU*QCf)QSfNK|l0wiJKu;lnCMg*eRC$9rQ-Yzvu6FB2w7dD84086CFcpda z0Bi)q^v+ll=)h`w!Yqrkorq{nM@;w$j9`CN+naHi5*8n$p%y_TN>mi>Kaac>s4mkRQzl`68}bEOzEY zaUAHgN3sdhH1iaaHyDh{5bsQ(ah5>DgU&|WI%G4zW@fqh6qz8374un3U`-Kx2ZSli zm<59ZFfydr)Ql`z)W+>3EUS{s1LV{Eup1Ao>r;e~;-|RK_}v_p(;9 z*UPQHuE}Uich<>yYqpk7(p|0S%zq$ypFxnLKbn7@*{@L0G~sEcz^92P2IfvMb1&S; z#{@(pQ^4dOP%DzK)6M1OwZ7b}lCPP-;x+l?J^CWH53hXJtcX=q0001BC{e%zfG~P- zfsbnNbBt}N(x9HRZlu<`M@V$NoSdDz$9tVvN>_4|SGT&Xy)WJ9l3VrF8NNV0{d@K2 zp4@}i-jm7BIpmCwZ$f_pbL;sE)bfX?{yIO#lgk;}04z=bAP-JS&I0l>P5|m~0j~j8 zy_SyqD?Q)zj_yzH{vYr^Gc3XePDeTKjE-=4&vJPKJm-v7pwbIPB&g#n6igCk7Vi|! z(UwV8LI4jN7lpHj$hXF_`X} zFFNd7#PQ24vL(#MV(BWWW!V~SP$Pf8hTK%`3POtMgM=XGR@Z9EI;XQ*J+I{2vfXG> zrxcr%S4%5;cI)M*pK}GRiZMnbDoXsWtT;G0WZbMX+!8-3Z<0NFjP?3^XPodWOhgA5 z7#_p(>;8QOFO)sMA&=+%E0^0V>1$uJy}!@oPbc?(57yfLreBfVpI&q8k7ND=9fc>6 zj+|pY{@noly#_}WspSuDJ-xoX{y$#BCzLbLcIN}v>;C}j9D7mimzUhbll#Acm*fG^ zgyC0~V}Nh~ z$anYDv>=!tOruvhBUrnp*FEn{3ZAzmZr=0&X%%G;_+! zap%C2EMzj;FhylnEPTxHF|Z5)jL)-=Q~v;bkNzXS{{XJFzR!*@2hle6wsz_vW<=e(tk4D>`dJGS9(4MEU zIjW6mOJ~~c-6gi|tA4(^-KaOUy=?8%``$>SDkLcG#Fan`ZBTF+;AaSNlfcg&^^fp-#1JkdP26FhOftga)4t%xR8lsE!J zV}v1gn2sC_j2SNk5=hH$Zv<($66k2&#ed8@RNv)kum&*1R-6Ta=*M$SxVP6^LPlN*~I zP737bk}GaIIHEw2AdLq_RR9ip<7PAJc_*pK=C+In(0*S}PQT~h2iea&41EW0Z}ZrW zrn#zPs#SjU-MU3xMQyZFw@vMS{&~sHTfI6fJ1bkKHMGQ3BWpsB(MhvW@Ybyc> zWg!6s9zg^UM-}LL9f8W2u0{m78D-!%ES=Fg5drich#CD)`Rkfd z3j!HQR#FIM`AA@L3b$N>G6?PkaAKiL7f+U@l#+av5^hj!FTO6`^lp>xn&v8$@u`HSX_m(ydYeR zEK;0poDMME0?m%Yi93AU9;3@#WR5%GaCtbu@A&cC8LySDr-!KN)JZk7N!m&5;`*oe zt(s2hdUV`sMM^Qhb!}7Z{{X97U5vqRla5K?lb!(2-eP|0f_Y_3Cj==8g{`R9jRdPXwNgI{ zS4}(Yx7}IZ?IpZzV`#^h-b>zHw_2?mYBMCg><2!HNLgt6CRZfw}X5$ z;V%yrp2}N45MIe;qzK{GHN9Tg-`~e-w{m+J3`Pb%9%l4qjG;W!7oK4Lt%3HmKC=up z53BoW!Va(26f4fGB{(WDrBzUkNKU)MSNf-+4`U3c5T#NItnn1ugOqvWP6`ffUGpU- z)z>0YwRxxgg$PzyE`5;$4on_H4;ZjHn?(5Pr& zjxtC`4VhJ2CT1G~v58BwI;hySwK85!c_q!%lELNjlB;lG6V0`F8CR$rHzF+qd~saN!ODC<}~(k1GL$r-Xv9h-ucd z_ghbr_FS>M-}$9&ZDsE2{(h{vy12nTv~E_mzbCS?w(rZF#l!;Q-a{mk?Q4DVO70-pB#*+9=3?sL?Wo=-VB_3!-8vwM2~0AGIn z{=9YPrg*nK=Ipj!?u+{UJ0qE<)tsHWFYEffpFsw!D^dFB;Uw`wQ{ZF$4*mob#sm~t%{=MVtAKv^U`Fy`kg~+@A09t>+{;zyb zv!6kZdmj1!03T25mHRpV==R~b=lTviR@d3O@%}+R{lCwtPqTXa{+;`D$Ix-tB9E*u z=303}@$d5vMc?pVU+{lh^~U=%9u*4`a1}!qC5`|9bvZpTllAL8zLRTl71_CsquTHy z%N$J8Lo9{Dmry|RIQ{Ndf87CfM35ilsAq7L0W+u8QVqp(`)Jes?G}iV?>#enR_0+gUN8aYM zUQ1N%x82)I>T~z9+*-WQqg*qj@v!-nrIyI{y4yM(<~c)S%XLtzkjfh(vqVBnu=$BO zV!)Ox$CAe+oafghbXR<_o)x^A0&w_aLk68HCSO|5HR&g<9y7|HuN>^b%Mzrav!&m$ahfr3E& zD^Ody@WXKHyQkBye_W0`bg2cnJpj)cABTRu5A^4pRzBX^^IvN_MfTF~Yg=!^%#KT2 zUp}5+n zMlD%wFN^2pr>91jEjXup**5OCc73`hZ~Jz}X^B*Gj@{04+wnN#-mSo?0G1ixof_yy z5tW6zx&m_%l3ZVQj4iM+1YYN_r2|O_tx8X z)xC|?K2)WB_E)|8-$l3RjO)1rIfWTqq9`+$X(x{(bhhhs2x($h&&+d>SbfuhL_(lo zZR6k9p5DVg_|0j3mmC4<#sC=nz504}$27lY`t!#)&$kD!zhTXD)WtfIa&7r5w32q| z_iOqqDRI87KAl#Zd3yccW^a-?`@a02){iK380ns;rD=Vb`}%hO066#QN7;|RJRY6D z4u3)ES^IxC{{VqM^7H)rF>)@?r&Ra1mrMR0W^a@~+3B9Ar>!1H{{Uy#sr>%{`t_yu zW9of7dSw3qp8nK*nEIc7pX8o8QSJQS{sjL3%g^)d#mc<({_^tj^ZY!~o8>PVDmM@T zB<&eE$vu>3lh{^-77{@-O6K7thFGJF+NhASO`Wq4bH3c*D}V_km2IU+7wz=8ZY|b- zG^CM8?J<-`_GJ<6WJ!4vD$2YE9%gXk1B|}$v$`l=V*YbV(|M@N61WV|TgwUD@Uvjz zP8VoEftMq;oZ(I?tx0QTC|XzDZENnHn`ru)#tJK$`B`&swfcX-R_W6&_0`&FQKb@n zsic^h7{ro99wKeNW@JfoxtAa(%7Y+gvZk|&SS5vk*(`31dCnvRZs;?D+q3FDYh&!V z=sTX{>zv^FpXHigvXj@_xIO-#U-D}S<0Uz%b2Vn1QkTPPS?z6Idpy(a`=>pnBszQ* zHB%u)>WRv6R!K`97D5s0ge1grTsGyYo+QgzVUyF6!{oFar##G|OopXlGBb>pZ4Nv3 z`}F)?zt`{keZ9W_e?Ir;{#^HUU)OcNuj_taElW+jxVl;gA0D>Fy8ums<+W&RN&PgL z!j9O*jyf|T=NKRmVPDu_)bNXCl$<5sC{v+K29X!nMiJXqCyE9*)!4wh)vk@RWV`M>gAM1*V`1%% z7zi@+-82h4p=3D)0rF1}*x|p=EaFotr)};|MA2Mwxs@m8;J(N03t@+%VeKirE=$_0 zi7+b1YQ)mxNN3;XkhlZ`&pjutQJw5$G@;^lS*46t;1Cm9gJqyo^D`xijYMb45TB9b zWLf0572@+C-dQth^E$+de0+4DR zJG)xfIvp`t)KoEv+fpR>c)3Sd*u7hI+|IP{p#Fm|?+-dVEV!?&hy95;9RU_C*${f_ zA69{tjwGvSDX`A+8L2rLfxRt}TVa>VUPhD6qYmp=Y}&FFXV!#$0F>Dr=2adZp{>LL z%$+|Ln8FFvTwJaM^OzwsRVhJueU+L|sN7D%!gw9J{;(;4`ck?gS#()?C}T++Y(GUQ zYAL+cdyAO9IH)xQNb-ZkQdQeNbdo|vCgIM-0)7mKm@{MWfV+t{SqAB;zn@K+iZonb zs2{(<29&D=lZb}UwP{VQPxjZdc(a4I@+6cw)(>oP<&IQOqKc(fAL`3;w+aP`X%Mxn zxkBbx=+ur}#Tw($pOK zu55eVyK6%4fYx~(GANN0A>95* zf#h-nzfT(i%dxx4$|`(Iy%poo6!}zy$qrg!mc^fnt1c?{Wc93wL#lG_7L`I zs{R&aw(VeUQ-dDrdHj&e`uQCc6f*%J#V%Oy=txzPm8nhPve_I52N*gZuGsU8Wo|Mg z&#_4${Efv^*b7L##5}Kv%eTmKfFSY`-0|oFa9QfY%9rm+h3=?*QZK;BwU}_}=$JyA zQv}j=MNC1hO}vGn3=7_ZE7pAQhJ~dlc1dI=a0XvA-%P168H?6)rZg``J$7xo`N2CF z1#eA}*`bKuGnvD~l9u?F!i!FD7y9+afnc>#TVgfLyfZuSl)yf^-_DyT?4FM2hajg|Nze`fV^fAxy z`xkTad3S?}?1K3w_JPU9ca4qjaz04ZqKIDjIbO#P2TjGhtK`LwjwMBL6l(J3tBaia zMm#5b)tT3RyyvM-wX&r0r0PY4nwg~1$o*D;*sa1KvC#Z`M`x;}NdL{Z$y{#W;Pk~( z1FNvGcCzE=KVR8oX?>;hqS2I_IV+((V@C%I@>m_1xSdWX-^FBzlGIY#4~|FW@~8RF z?){a!Cb%$j!zKTuty(|=)iXXnL?y&?1UIxYlE@z9KnF~T;Yba@TgvEybvQ0#LxlvA zSc39K2I#zHO7P*&Vq z1O6LC&7J5a093_N=`Wd53(+zZN(F0>z--+IF`!)btA*KIys`xtytu@Dy!2=p0N0U| zLS!`B0w9|G7v*E86egx&P%+jml?g%@gV-mf1lWRJ6;1u^hEScy#QPE|myG z$JhYy514bT$l|Ax8s;c~ZD?SumfO16L^>;XK+^kN@l#2`{1o@?-^XhI!KZO$7YP2# z+LC1&L$p*uslnaGg|y~gXXP$ZZQql@i%b~K*+Msq{ru*C9c0@)yVZI{#FHWOeCU8F zsvY*<#9D^=Xw{HQ-)HgC-h~cqCK><_yJluWNK#*M^Zy#hcos!_r_{)Vta$ zudj-z+n(Kh-4``HoZRAfqm|(}I*_5&Q{?IsT3#Gv;`{8SBj_!2r&-O7-|P>bRZ2Zo z>1-te+2A+%R@ZH_f3f+6y(n;7x&7AznxKUS)u{FQd#=L_yE<}grio8>ZYX$R`p1nB z?W+wM>Mua6=~XmqXZ7&4K20fjhrJKePyco^OI7gn$rjI)gD>3nTywT7-S}WfL+JKL zd(-#MIfuTm4j+N;eComI=Ft&ugGoo5>Xz$CTxN>|(_n6Dz5UUScWN~szYETh$kAVZ zoSF;o5BV)Ag^BwweRk#u zj;ck&jPR)~w_-p>5*JF z(Dpq)J)WnbgSExW#j+r`u2}`twi$~LS)q0(yWo5=|VjrxBHYF_Jm$+${#HQUF<7UR5a}awRl;o^QkRG0$ zJT%Yw(o4@c zgN8B+Zu)qg$xCme!*_qw-@o;hpV8;W^7wt1Iz6XJcU{j{*-vXt2A<4xuxlziey=#f z-egT~hWf?aDfWHedE+-n-1pJbhIfvyoa^>!S@Ntt$48gcJhQO(>6DD22hdC>pQZ&K zN_Ad;E~R5v=hK7Lt+N~NAAAKW*RTJ!!RV4Q=V|zn`|hnYDuU>nus9*n=&4uqK~;z+ zS0Q<@?#@lR0gy37D2Xgy{)9qk8znDD3Ez)oz$#$~-(;`AFuF_vF>~oS zXW{^LbHeD31M?Z&`!X^%DxEOr+7k5={%9{Hz~?DAAqs!pUE9IH|B&>F_0SV-a9DSN zNj&I&n=WG%Es6SNiBGcVG7Yh)SZc8>qeyq6I-Luf^Q7K4YMH>O*z9wFpb(q`2I6e2 zKO}*n1JiBcEetmX8@k?Q21knB9wz$F<%8Ex830XiRjCFJ@0G%he))wi-Pu(|cK0tg zh#^d1sm!{o9(PD88|Lt|a^K9r`X%O&HMEB)Z9tt-1lH4i>TWM&u7T?r4#tODM~SFJ zOTIm7`RhYY^Qk@6_NPv1gUpN;AFe&ylRPp70zeYYDVt;HrgNK+@Vk|jE{ZsQx@27oJNTBa=4vMIa@|w6+S+%uHRQU1W5!aQQzoj$NE;pF z({W~J`ftz6V7q!49y@PXU0&0JZW?02UT|%#?$^E3`Kgov0~y}$kA#%8#KtHB)$sLp zVEgLwGp2Z}${k<&gC}PVob&vUBXL)~wuUX=B2@>Dz3&-t@_bVz_)vw1tYaqalR2id*qe6}K<3FHfm_YLm7S z_?}q{254k3Ohh;go0|rgRVykK$YFA?6b6v|+>^#(4_6}em<$Gs$rGc->(=XZ=CfkN9zopnG8lbt=q*bBe#CkGJA2X)f_VQmCS8f+7irz^ zwyKZb*s8Iv@ysA5gbA-iqe2OA7i!_UO5@ZBZ=-Scn{ zI)_37*#iCgu(6`bCC2wJP6w=OTfMODvX5y>B8UuMsQc}w(p(1wPRFA~y0lkZnem1D zGgis%gXfjHCjglELCtb%q&Sk-%i*rZr1e5NJyS%TaFTdVLo^G2u5pz&h$qNHTf%5dHqYz=76LCm@6j#dK#7M(~^KCMzn7!mhpV0(NcuX=e9)sqEL=qCN9;HZ_++4hb@ zfd-XNISc`kZYm>+c*zMQL_dz2Ks#qs&&3I1Bl-7}B)E3BU(-p_I4M>YTC%c$ZJ@Ic znLauZDO%x@F|ms&v<42@CLk$nftkW*;drILK6geXU-l3z5P%N%Vi8=i2mo5t&R-A7 z29l183as4yKORz0NYs9{!d*(v78VPP5~W$Z9Gh`-U$)?kAH36~Jw3h10l9P{lCZv5H>{=x{%!Z3eC3;>)eesSX~|&lsC0 z7|XG?^OKwwQt)v)ohG5zH(<`d9_u_FmzCPmsDA*FooIHTt_t}514@vD(s`)Ue=6?| zzg3`W6M(kyo+?#5QZee*PSCyvo! zQ+uDtw(9rH$_}+&ejG$Pb2Rg1OlWFLn_oX~DYux#^)D3*pcF`~hOf15&p&_qkA@U}bwp$- zn4HR=N{_R{D|?BUOrfHYX=W{igG)a^C#bqQz LX3iZW{2cioPPI8z literal 0 HcmV?d00001 diff --git a/app/src/components/Hero.jsx b/app/src/components/Hero.jsx index 5cdf92e..b61daee 100644 --- a/app/src/components/Hero.jsx +++ b/app/src/components/Hero.jsx @@ -148,18 +148,18 @@ const Hero = () => { // div z nazwa gracza var tekst = document.createElement('div') - tekst.style.fontSize = "10px"; + tekst.style.fontSize = "12px"; tekst.innerHTML = pName; // div z pozycja gracza var posytion = document.createElement('div') - posytion.style.fontSize = "10px" - posytion.innerHTML = "x:" + konwerturX(ball.style.left) + "m " + "y:" + konwetujY(ball.style.top) + "m"; + posytion.style.fontSize = "12px" + posytion.innerHTML = "Lokalizacja: " + konwerturX(ball.style.left) + " m, " + konwetujY(ball.style.top) + " m"; player.setAttribute('possition',[konwerturX(ball.style.left),konwetujY(ball.style.top)]) //div z przyciskiem usuwającym var btnDelete = document.createElement('button') - btnDelete.innerHTML = 'Usun' - btnDelete.style.fontSize = "10px" + btnDelete.innerHTML = 'Usuń' + btnDelete.style.fontSize = "12px" btnDelete.style = 'background-color: #FFB266;color:#000000' btnDelete.addEventListener("click",function(){deletePlayer(ball,player,possition)},false) //dodanie elementów do kafelka @@ -219,6 +219,7 @@ const Hero = () => { //var shooterX = konwerturX(ball.style.left) //var shooterY = konwetujY(ball.style.top) posytion.innerHTML = "x:" + konwerturX(ball.style.left) + "m " + "y:" + konwetujY(ball.style.top) + "m"; + //player.setAttribute('possition',[konwerturX(ball.style.left),konwetujY(ball.style.top)]); bojo.addEventListener("mouseup", function(){ ball.style.background = pColor bojo.removeEventListener("mousemove", whileMove) @@ -229,6 +230,11 @@ const Hero = () => { }) } + function updateXGMeter(xgValue) { + var xgMeter = document.querySelector('.xg-meter'); + var greenIntensity = xgValue * 100; // Zakładając, że xgValue jest między 0 a 1 + //xgMeter.style.background = `linear-gradient(to top, #006400 ${greenIntensity}%, #90EE90)`; +} // // Wyłanie zapytania do serwera @@ -236,6 +242,7 @@ const Hero = () => { ///Dziwny Blad loadPlayers() if (number_of_shooters == 1) { + console.log('Wysyłanie wartości: ', bodyPart, technique); // Użyj backticksów zamiast zwykłych cudzysłowów fetch(`http://127.0.0.1:5000/get_model?shooter=${shooter}&goalkeeper=${goalkeeper}&defenders=${defenders}&strickers=${stricers}&bodyPart=${bodyPart}&technique=${technique}&actionType=${actionType}&shooterPossition=${shooterPossition}`).then( res => res.json() @@ -245,7 +252,8 @@ const Hero = () => { console.log(data); // Przenieś tę linię do środka bloku .then(), aby uniknąć błędów let eX = data.response; - document.getElementById("ex").innerHTML = "Współczynnik xG: " + eX; + document.getElementById("ex").innerHTML = eX; + updateXGMeter(eX); } ).catch(error => { console.error('Błąd:', error); @@ -275,6 +283,7 @@ const Hero = () => { ball.style.top = y + "%" //dodanie zawodnika do listy oraz punktu do mapy w zaleznosci od aktywnosci przycisku 1,2,3 lub 4 + if(active_bbt=="bbt1"){ if(number_of_shooters < 1 ){ addPlayer(0,ball) @@ -283,7 +292,6 @@ const Hero = () => { setNumberOfShooters(number_of_shooters+1) }else{alert("mozesz dodac tylko jednego strzelca")} }else if(active_bbt == "bbt2"){ - if ( number_of_goalkeepers < 1){ addPlayer(1,ball) bojo.appendChild(ball) @@ -358,7 +366,7 @@ const Hero = () => { - + @@ -371,18 +379,37 @@ const Hero = () => { -

setPossition(event.target.value)} defaultValue={shooterPossition}> @@ -410,6 +437,36 @@ const Hero = () => { +
+

Parametry strzału

+ + + + + + +
+ + + {/*
@@ -436,13 +493,11 @@ const Hero = () => {
-
- - - +
+ +
- ); }; diff --git a/app/src/components/Loader.jsx b/app/src/components/Loader.jsx index 4abbec8..1153e4e 100644 --- a/app/src/components/Loader.jsx +++ b/app/src/components/Loader.jsx @@ -3,6 +3,7 @@ import React from 'react' const Loader = () => { return (
Loader
+ ) } diff --git a/app/src/flask-server/modele/__pycache__/modele.cpython-39.pyc b/app/src/flask-server/modele/__pycache__/modele.cpython-39.pyc index 1361d5f805fa44938d3fc9bdfe172056de3b6b98..616f5ef2af9d965a5abdf6ad6e37f277bb335bb8 100644 GIT binary patch delta 2290 zcmb_dO>7%Q6y8~{*X#YUcm0#ZPSfH1SLF#D{Pzebsf(rs6s$O_+oi-*1B&6Xe0w3M@t>4Dp7%o4Y``25{+LI zstWKjO;CjnYow~u6g{4X6Km9@7W6vJ z&@A)@&CxvcDcVQ-p-42%7!Krf}H9M^Z)mT8Y& zwi#VgU#izG_`rI8Ri5$KyxmwzzSwl!Eyo)6;&crS;5Un*eeg{Ifjsstg$RN#P;!;D zD?XVMYY_39grAHZPn3d@U}vz4uf!^6CP6OUBn4qvrtupjSmO@}!6cPY>L*Z2Wt70! zM0c#Otc?X8G?nFKFnNPer6ABG%z_-cLBLrJeu&-M(8-|W;Mc9Tg zitrf17JyKhwSA}Nu|>8S*s{Xy4dSm>xa@g&ug$gRQ3aury}doR=92rbDA2_5~$saFvdSjZR1}j515CMeGXv~VT#Ao zL4E+q0z&a24D!#_qG1BxdLBUNS44hC9nTNxaq+%*U)3{7Jt5u`@2MuET+xQazeQfs zK9i~1&QX>Bq!setQq2{q-X8GPIjvoYu*iq?lSJj7KE^-Qbu9}XmI^`;qdESSUINVz z`nYDSNky9F+l?|vr;PDDO5@R3oYkdroEs&Q<|{_2^FR-?*7Sv-7^G{Jz?##212Amuay&Xusj&O$+Q2-$Z<)o;P=#S-~v_KPeqC=TcB#B7ai)KtFvdI6ko+eBDdM3vYXY%{e zW?8JNO{gpm!_!5l?@ewP!4?3%ht|StCx~nT3>+jT|1Q(F(*eoG@jl4zLhFtv%;$P` z>IJ+ZEC47=Y&X(-0IK4ZiBMde*kB?|H@w*iXcYEjyR!~HY!A$J_{Z5RgONFOLhbBF zNAmA|v-?n#9$>u9M{|W|&f^j_fKXyKZG|!F)HbZbE`jP$`A+Xz5U%w`c3lQb_8d+>O`9ExZZi|KNN33LT`% znW{YJoom$3MR%bpH*J^Nt!~w9qkXKUVccDqZ!UHh#P=v#m0@17B?OE;!+^350(vYu z6T>xnb`YiKAjm@Hz^m~7Ei{~Gv23@d0d(*MHYKJgkcRMg{R2t*@W=FB=a5o=RWB-M Ml{n0bDYBCI2Q3}Yp8x;= delta 1915 zcma)7O>Epm6!!Qpj(5H5jdwTMq)lmoBu1sQIaEaoZMPK>LLnT=p%`f5?2I;>dcDio zfrdJyC`f=Pf-;w?>LIO=AU(h#R}c~cA(abANJ!?$DMEr9XWsLsZ3q%#toh!&pLz4< zy_vB%_TG`hzGaybw7(W_vJZ|((r?J@ZZa^Zp-1mZ*A9=b>0Td|s2r%C3RDe@cE8t8 zB&t#UZOJofA2opHXg@W9=4p=Rfm+m}1)v35q&CnZEztp>Hg#wjXo*&673ct!&q?m! zHU{95R1G>loy9@)DvyEY^E3Ve3!V-e9m@FDZE}K;P4TOIN*qwe2e}2)QmqZTAl1&# zh3xfBiSHBVm9@!!+=79ARfE{%5aFXRZq!k-)6N1#9%=NAB+jU;@6lu|8BZp}=W1Q6 zZ|KRHkLAkN^V%pO##X3X>Tm&!IYF=yN(ci0?pbkdpdyailR3z$#GgPgMB5$`H*(YB z2m9)Q3n-dH7)BUD*mocHi?{N_mIHir96%Z}i1;jjOc~_!;*b1(c|Z}Cb*B)UiM&o$ z%RrTNBEGU}<3Cd~lxc2tD9$bAS8Ev##~RJA6C%Z0Qd+WbB!0JE6tjh~g9>$OP|BK= z$kf^yDYSflR1xnN#>JO~iORq2WLg$~7F=WL!Tzpg+O^yinDM6&j*Bh(lgfiS>?)>MC`}xHVcHw3|F5=< zM=PuTwj!>V4xVszeh@_uBRqoe;20bNHZ>Z4%$gm(;yN7f7{^lcviPZV!RJ-9ki%}O zgnpQ+i_E9Ig8D%KPxqsErOWsbN@@V^K2Cw8X0zi57a0RxYQ@ZNKL=|>Gp#62txmVw z30W9t>`snM@ts)|v$py2o@1Ep<|w*<5cM%+rxC^wUO~XrdCtyGS`9y#YjlF;b{PHR zAdfivbzC4?6epdB9N8d7)@?;6x?&KMh_>@2xhy_)+!J^MT-h_bfxp5y#-8nMw?kYx z0{9wzV(uiFN5Uwds^j(B#`JE=soM7AMXmtDeS}?C3t0~EE%crPlJN~yd{G?|8|ATQ zvx~e6dROI#(f)A&Prfvn$}5w5e5J*p)0l)#AzD9duoZKZvbH92DuXcj=j8vvfleHx_-s`l)n1M0ibdrun~BUQ*I zM`;5erF%{ERbP6>%LN$UxtO=Yre|i%G`z5Js|0(PD3;q~+#jMTzSLO=S_|3b0Z)EN{it_|Fr``HJuO^rcUQ6~yh?O2U_K9z zbUEwtPJ=}eN diff --git a/app/src/index.css b/app/src/index.css index 70a3c0b..6ea3dc1 100644 --- a/app/src/index.css +++ b/app/src/index.css @@ -4,19 +4,55 @@ @tailwind components; @tailwind utilities; - .Ex{ - display: block; /* Może być inline-block, jeśli preferujesz */ - margin: 20px auto; /* Centralnie i z marginesem */ - padding: 10px; - background-color: #4CAF50; /* Przykładowy kolor tła */ - color: white; /* Kolor tekstu */ - text-align: center; - border-radius: 5px; /* Lekko zaokrąglone rogi */ - font-size: 20px; /* Duża, czytelna czcionka */ - font-weight: bold; /* Pogrubienie dla lepszej widoczności */ - width: 50%; /* Dostosuj szerokość zgodnie z potrzebami */ - /* Dodatkowe style, takie jak cienie, mogą być dodane */ - } + .Ex { + display: block; /* Może być inline-block, jeśli preferujesz */ + margin: 20px auto; /* Centralnie i z marginesem */ + padding: 10px; + background-color: #4CAF50; /* Przykładowy kolor tła */ + color: white; /* Kolor tekstu */ + text-align: center; + border-radius: 5px; /* Lekko zaokrąglone rogi */ + font-size: 20px; /* Duża, czytelna czcionka */ + font-weight: bold; /* Pogrubienie dla lepszej widoczności */ + width: 100%; /* Poszerzone pole */ + box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.5); /* Cień dla dodatkowej głębi */ + /* Opcjonalnie, można dodać gradient tła dla większego efektu */ + background-image: linear-gradient(to right, #32CD32 , #4CAF50); + transition: transform 0.3s ease; /* Delikatna animacja */ + } + + .Ex:hover { + transform: scale(1.10); /* Efekt powiększenia przy najechaniu */ + } + +.xg-meter { + width: 200px; + height: 100px; /* Zmiana wysokości, aby pasowała do proporcji bramki */ + display: flex; + align-items: center; + justify-content: center; + text-align: center; + color: white; + font-size: 48px; + font-weight: bold; + background: url('assets/bramka.jpeg') no-repeat center center; /* Tło z obrazem bramki */ + background-size: cover; /* Dopasowanie obrazu do rozmiaru elementu */ + border-radius: 10px; /* Opcjonalnie, dla zaokrąglonych rogów */ +} + +.xg-value { + display: block; + background: rgba(0, 0, 0, 0.5); /* Półprzezroczyste tło dla lepszej czytelności tekstu */ + padding: 5px 10px; /* Dodanie odstępu */ + border-radius: 5px; /* Zaokrąglone rogi dla tekstu */ +} + + +/* Funkcja JavaScript będzie sterować stopniem gradientu */ + + + + body { margin: 50px; display: grid; @@ -25,7 +61,7 @@ grid-template-rows: auto; grid-template-columns: auto auto auto; } - + .container { display: flex; flex-direction: column; @@ -49,19 +85,20 @@ max-height: 100%; } - + .container span { display: block; } - - .main-content { - - display: flex; - justify-content: space-between; - align-items: center; - - -} + + .main-content { + + display: flex; + justify-content: space-between; + align-items: center; + + + } + .player{ width: inherit; height: 8vh; @@ -84,7 +121,7 @@ background-color: #cccccc; justify-content: space-between; } - + .subMenu { display: grid; grid-template-rows: auto auto auto; @@ -95,14 +132,15 @@ background-color: #f0f0f0; /* Example background color */ z-index: 1000; /* Ensure it stays on top of other content */ } - .player-list{ + + .player-list { background-color: rgb(61, 38, 38); width: 13vw; height: calc(50vw*68/105); overflow: scroll; - - + font-size: 12px; /* Example font size - adjust as needed */ } + .top-bar { display: flex; justify-content: space-between; @@ -112,7 +150,7 @@ /* Możesz dodać dodatkowe style, jak tło, obramowanie itp. */ z-index: 2; } - + .bottom-bar { display: flex; justify-content: space-between; /* Rozmieszcza przyciski równomiernie */ @@ -128,7 +166,7 @@ border-radius: 50%; position: absolute } - + .reset-button { position: relative; margin: 5px; @@ -200,7 +238,7 @@ color: #000000; font-size: 16px; } - + .cho-first_time { position: relative; padding: 10px; @@ -237,7 +275,38 @@ color: #000000; font-size: 16px; } - + +.additional-parameters { + position: fixed; /* Or absolute, depending on layout */ + right: 0; + top: 30%; /* Adjusted to a higher position */ + width: 250px; /* Increased width */ + background-color: #000000; + padding: 15px; /* Increased padding */ + border: 1px solid #ddd; + border-radius: 5px; + box-shadow: 0 2px 5px rgba(0,0,0,0.2); + z-index: 100; /* To ensure it stays on top */ + color: #ffffff; /* Optional: change text color for better visibility on dark background */ +} + +.additional-parameters h3 { + margin-top: 0; + font-size: 18px; /* Increased font size for heading */ +} + +.additional-parameters label { + display: flex; /* Updated to flex for better alignment */ + align-items: center; /* Aligns checkbox and label text vertically */ + margin-bottom: 10px; /* Increased spacing between checkboxes */ + font-size: 16px; /* Increased font size for labels */ +} + +.additional-parameters input[type="checkbox"] { + margin-right: 10px; /* Adds spacing between checkbox and label text */ +} + + /* DROPDOWNS */ /* Style the dropdown button */ .dropbtn { @@ -253,13 +322,13 @@ .dropbtn:hover, .dropbtn:focus { background-color: #3e8e41; } - + /* The container
- needed to position the dropdown content */ .dropdown { position: relative; display: inline-block; } - + .cho-dropdown_body_part { display: none; position: absolute; @@ -268,7 +337,7 @@ box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); z-index: 1; } - + .cho-dropdown_body_part a{ color: black; padding: 12px 16px; @@ -276,15 +345,15 @@ display: block; font-size: 16px; } - + /* Change color of dropdown links on hover */ .cho-dropdown_body_part a:hover {background-color: #f1f1f1} - + /* Show the dropdown menu on hover */ .dropdown:hover .cho-dropdown_body_part { display: block; } - + .cho-dropdown_position_name { display: none; position: absolute; @@ -293,7 +362,7 @@ box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); z-index: 1; } - + .cho-dropdown_position_name a { color: black; padding: 12px 16px; @@ -301,15 +370,15 @@ display: block; font-size: 16px; } - + /* Change color of dropdown links on hover */ .cho-dropdown_position_name a:hover {background-color: #f1f1f1} - + /* Show the dropdown menu on hover */ .dropdown:hover .cho-dropdown_position_name { display: block; } - + .cho-dropdown_technique_name { position: relative; display: none; @@ -319,7 +388,7 @@ box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); z-index: 1; } - + .cho-dropdown_technique_name a { color: black; padding: 12px 16px; @@ -327,15 +396,15 @@ display: block; font-size: 16px; } - + /* Change color of dropdown links on hover */ .cho-dropdown_technique_name a:hover {background-color: #f1f1f1} - + /* Show the dropdown menu on hover */ .dropdown:hover .cho-dropdown_technique_name { display: block; } - + .cho-dropdown_type_name { display: none; position: absolute; @@ -344,7 +413,7 @@ box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); z-index: 1; } - + .cho-dropdown_type_name a { color: black; padding: 12px 16px; @@ -352,16 +421,16 @@ display: block; font-size: 16px; } - + /* Change color of dropdown links on hover */ .cho-dropdown_type_name a:hover {background-color: #f1f1f1} - + /* Show the dropdown menu on hover */ .dropdown:hover .cho-dropdown_type_name { display: block; } - - + + /* MANUAL INPUT */ .cho-minute { margin-top: 10px; @@ -574,5 +643,5 @@ -2.6em 0em 0 0em rgba(255, 255, 255, 0.7), -1.8em -1.8em 0 0em #ffffff; } - + } diff --git a/notebooks/dataCleaning.R b/notebooks/dataCleaning.R index 29aa883..3d5ef73 100644 --- a/notebooks/dataCleaning.R +++ b/notebooks/dataCleaning.R @@ -11,33 +11,33 @@ library(purrr) # code and data from https://github.com/Dato-Futbol/xg-model get_shots <- function(file_path, name_detail, save_files = F){ - + players <- fromJSON("data/players.json") - + shots <- fromJSON(file_path) %>% filter(subEventName == "Shot") - + tags <- tibble(tags = shots$tags) %>% - hoist(tags, + hoist(tags, tags_id = "id") %>% unnest_wider(tags_id, names_sep = "") - + tags2 <- tags %>% mutate(is_goal = ifelse(rowSums(. == "101", na.rm = T) > 0, 1, 0), is_blocked = ifelse(rowSums(. == "2101", na.rm = T) > 0, 1, 0), is_CA = ifelse(rowSums(. == "1901", na.rm = T) > 0, 1, 0), # is countre attack - body_part = ifelse(rowSums(. == "401", na.rm = T) > 0, "left", - ifelse(rowSums(. == "402", na.rm = T) > 0, "right", + body_part = ifelse(rowSums(. == "401", na.rm = T) > 0, "left", + ifelse(rowSums(. == "402", na.rm = T) > 0, "right", ifelse(rowSums(. == "403", na.rm = T) > 0, "head/body", "NA")))) - + pos <- tibble(positions = shots$positions) %>% - hoist(positions, + hoist(positions, y = "y", x = "x") %>% unnest_wider(y, names_sep = "") %>% unnest_wider(x, names_sep = "") %>% dplyr::select(-c(x2, y2)) - + shots_ok <- shots %>% dplyr::select(matchId, teamId, playerId, eventSec, matchPeriod) %>% bind_cols(pos, tags2) %>% @@ -46,14 +46,14 @@ get_shots <- function(file_path, name_detail, save_files = F){ left_join(players %>% dplyr::select(c("wyId", "foot")), by = c("playerId" = "wyId")) %>% mutate(league = name_detail) - + if(save_files){ write_rds(shots, paste0("shots", name_detail, ".rds")) write_rds(tags2, paste0("tags2", name_detail, ".rds")) write_rds(pos, paste0("pos", name_detail, ".rds")) write_rds(shots_ok, paste0("unblocked_shots", name_detail, ".rds")) } - + shots_ok } # shotsEN <- get_shots("data/events/events_England.json", "EN") @@ -63,12 +63,12 @@ get_shots <- function(file_path, name_detail, save_files = F){ # shotsGE <- get_shots("data/events/events_Germany.json", "GE") # shotsFR <- get_shots("data/events/events_France.json", "FR") # shotsEC <- get_shots("data/events/events_European_Championship.json", "EC") -# +# # shots <- shotsEN %>% # bind_rows(shotsFR, shotsGE, shotsIT, shotsSP, shotsWC, shotsEC) get_final_data <- function(data) { - + data <- data %>% select(eventSec, y1, x1, is_goal, is_blocked, is_CA, body_part, foot) data$x1 <- (100 - data$x1) * 105/100 data$y1 <- data$y1 * data$y1/100 @@ -77,7 +77,7 @@ get_final_data <- function(data) { data <- data %>% mutate(distance = sqrt( (100 - x1)^2 + (34 - y1)^2), minute = round(eventSec / 60), eventSec = round(eventSec)) - + data } @@ -89,14 +89,14 @@ get_final_data <- function(data) { get_data <- function(event_path, info_path) { events <- read.csv(event_path) info <- read.csv(info_path) - + events <- merge(events, info[, c('id_odsp', 'country', 'date')], by = 'id_odsp', all.x = TRUE) data <- subset(events, event_type == 1) - + data_final <- data %>% select(sort_order, time, shot_place, shot_outcome, is_goal, location, bodypart, assist_method, situation, fast_break) data_final - + } # data2 <- get_data(event_path = "data/events.csv", info_path = "data/ginf.csv") @@ -124,18 +124,18 @@ loc2locdistance <- function(x1, y1, x2, y2) { get_shots2 <- function(json_file) { data <- fromJSON(json_file) %>% filter(type$name == "Shot") %>% dplyr::select(c(minute, position, location, shot)) - + df_temp <- do.call(rbind, lapply(data$location, function(loc) c(120, 80) - loc)) colnames(df_temp) <- c("x1", "y1") - + data$x1 <- df_temp[,1] data$y1 <- df_temp[,2] - + data$shot$freeze_frame <- Map(function(ff, x1, y1) { ff$x1 <- yd_to_m(x1) ff$y1 <- yd_to_m(y1) return(ff) - }, + }, data$shot$freeze_frame, data$x1, data$y1) tryCatch({ @@ -148,17 +148,17 @@ get_shots2 <- function(json_file) { df <- df %>% mutate(teammate = ifelse(teammate, "teammate", "opponent"), distance = loc2locdistance(x1 = x, y1 = y, x2 = x1, y2 = y1)) %>% arrange(distance) - + groups_count <- df %>% group_by(teammate) %>% count() %>% as.data.frame() if ( !("opponent" %in% groups_count$teammate) ) { groups_count <- groups_count %>% add_row(teammate = "opponent", n = 0) } else if ( !("teammate" %in% groups_count$teammate) ) { groups_count <- groups_count %>% add_row(teammate = "teammate", n = 0) } - + na_df <- as.data.frame(matrix("na", nrow = 21 - nrow(df), ncol = ncol(df))) colnames(na_df) <- colnames(df) - + na_df$teammate <- rep(c("opponent", "teammate"), c(11, 10) - groups_count$n) dff <- rbind(df, na_df) dff <- dff %>% group_by(teammate) %>% mutate(rown = row_number(distance)) %>% ungroup() %>% @@ -170,9 +170,9 @@ get_shots2 <- function(json_file) { dff <- as.data.frame(matrix("na", nrow = 21, ncol = 3)) colnames(dff) <- c("x", "y", "teammate") dff$teammate <- rep(c("opponent", "teammate"), c(11, 10)) - dff <- dff %>% group_by(teammate) %>% mutate(rown = row_number()) %>% ungroup() %>% - mutate(position_teammate = paste(teammate, rown, sep = "_")) %>% - select(-c(teammate, rown)) %>% + dff <- dff %>% group_by(teammate) %>% mutate(rown = row_number()) %>% ungroup() %>% + mutate(position_teammate = paste(teammate, rown, sep = "_")) %>% + select(-c(teammate, rown)) %>% mutate(x = ifelse(x == "na", NA, x), y = ifelse(x == "na", NA, y)) } @@ -181,7 +181,7 @@ get_shots2 <- function(json_file) { # %>% # stop("123") wider_df <- dff %>% - pivot_wider(names_from = position_teammate, values_from = c(x, y), names_sep = "_player_") %>% + pivot_wider(names_from = position_teammate, values_from = c(x, y), names_sep = "_player_") %>% mutate(across(everything(), as.numeric)) wider_df # wider_df <- apply(wider_df, MARGIN = 2, unlist) @@ -193,7 +193,7 @@ get_shots2 <- function(json_file) { print(paste("An error occurred:", e$message)) }) df_players_location <- df_players_location %>% t() - + tryCatch({ # TODO reduce error cases data$number_of_players_opponents <- mapply(function(sublist, x1_threshold) { # Extracting the first location value and converting it to numeric @@ -213,12 +213,12 @@ get_shots2 <- function(json_file) { # handle the error print(paste("An error occurred:", e$message)) }) - + tryCatch({ # TODO reduce error cases data$number_of_players_teammates <- mapply(function(sublist, x1_threshold) { # Extracting the first location value and converting it to numeric first_location_values <- sapply(sublist$location, function(loc) as.numeric(loc[1])) - + if ("teammate" %in% names(sublist)) { # Filtering and counting res <- sum(sublist$teammate & first_location_values > x1_threshold) # error here @@ -233,71 +233,71 @@ get_shots2 <- function(json_file) { # handle the error print(paste("An error occurred:", e$message)) }) - - + + data$shot <- data$shot %>% select(-freeze_frame, -statsbomb_xg, -key_pass_id) data$shot$body_part <- data$shot$body_part %>% select(-id) data$shot$technique <- data$shot$technique %>% select(-id) data$shot$type <- data$shot$type %>% select(-id) data$position <- data$position %>% select(-id) - + data$shot <- data$shot %>% select(-end_location) - + tryCatch({ # TODO reduce error cases if ("one_on_one" %in% colnames(data$shot)) { data[is.na(data$shot$one_on_one), ]$shot$one_on_one <- FALSE } else { data$shot$one_on_one <- FALSE } - + if ("first_time" %in% colnames(data$shot)) { data[is.na(data$shot$first_time), ]$shot$first_time <- FALSE } else { data$shot$first_time <- FALSE } - + if ("aerial_won" %in% colnames(data$shot)) { data[is.na(data$shot$aerial_won), ]$shot$aerial_won <- FALSE } else { data$shot$aerial_won <- FALSE } - + if ("saved_to_post" %in% colnames(data$shot)) { data[is.na(data$shot$saved_to_post), ]$shot$saved_to_post <- FALSE } else { data$shot$saved_to_post <- FALSE } - + if ("deflected" %in% colnames(data$shot)) { data[is.na(data$shot$deflected), ]$shot$deflected <- FALSE } else { data$shot$deflected <- FALSE } - + if ("saved_off_target" %in% colnames(data$shot)) { data[is.na(data$shot$saved_off_target), ]$shot$saved_off_target <- FALSE } else { data$shot$saved_off_target <- FALSE } - + if ("open_goal" %in% colnames(data$shot)) { data[is.na(data$shot$open_goal), ]$shot$open_goal <- FALSE } else { data$shot$open_goal <- FALSE } - + if ("follows_dribble" %in% colnames(data$shot)) { data[is.na(data$shot$follows_dribble), ]$shot$follows_dribble <- FALSE } else { data$shot$follows_dribble <- FALSE } - + if ("redirect" %in% colnames(data$shot)) { data[is.na(data$shot$redirect), ]$shot$redirect <- FALSE } else { data$shot$redirect <- FALSE } - + if ("kick_off" %in% colnames(data$kick_off)) { data[is.na(data$shot$kick_off), ]$shotf$kick_off <- FALSE } else { @@ -308,21 +308,21 @@ get_shots2 <- function(json_file) { # handle the error print(paste("An error occurred:", e$message)) }) - + data <- data %>% mutate(is_goal = ifelse(shot$outcome$id == 97, 1, 0), x1 = yd_to_m(x1) %>% round(., digits = 1), y1 = yd_to_m(y1) %>% round(., digits = 1), angle = loc2angle(x1, y1) %>% round(., digits = 1), - distance = loc2distance(x = x1, y = y1)) %>% + distance = loc2distance(x = x1, y = y1)) %>% select(-location) data$shot$outcome <- data$shot$outcome %>% select(-id) - data <- data %>% unnest(shot, names_sep = "_") %>% - unnest(position, names_sep = "_") %>% - unnest(shot_type, names_sep = "_") %>% + data <- data %>% unnest(shot, names_sep = "_") %>% + unnest(position, names_sep = "_") %>% + unnest(shot_type, names_sep = "_") %>% unnest(shot_outcome, names_sep = "_") %>% - unnest(shot_technique, names_sep = "_") %>% + unnest(shot_technique, names_sep = "_") %>% unnest(shot_body_part, names_sep = "_") - + data <- cbind(data, df_players_location) data } @@ -338,12 +338,12 @@ skimr::skim(combined_data) data3_final <- combined_data %>% select(-c(shot_outcome_name, shot_saved_off_target, shot_saved_to_post, - kick_off)) %>% + kick_off)) %>% mutate(shot_kick_off = ifelse(is.na(shot_kick_off), FALSE, shot_kick_off)) pattern <- "^(x_player_|y_player_).*$" cols <- names(data3_final)[grepl(pattern, names(data3_final))] data_final <- data3_final %>% unnest(all_of(cols)) skimr::skim(data_final) write_csv(data_final, file = "data/final_data.csv") -df_test <- read.csv("data/final_data.csv", nrows = 1000) +#df_test <- read.csv("data/final_data.csv", nrows = 10000) ##################### The fourth dataset ##############################