From 57113aabd78590f6bed1021bdefa0c2de91f6a19 Mon Sep 17 00:00:00 2001 From: Iheb Boussida <iheb.boussida@stud.h-da.de> Date: Mon, 30 Sep 2024 22:10:11 +0200 Subject: [PATCH] first commit --- app.py | 6 +++--- docker-compose.yml | 28 ++++++++++++++++++++++++++++ dockerfile | 10 ++++++++++ solution.tar.gz | Bin 0 -> 18667 bytes 4 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 docker-compose.yml create mode 100644 dockerfile create mode 100644 solution.tar.gz diff --git a/app.py b/app.py index 06c2034..dd7997f 100644 --- a/app.py +++ b/app.py @@ -11,7 +11,7 @@ app.config['MYSQL_USER'] = os.getenv('MYSQL_USER') app.config['MYSQL_PASSWORD'] = os.getenv('MYSQL_PASSWORD') app.config['MYSQL_DB'] = os.getenv('MYSQL_DB') - +print (os.getenv('MYSQL_HOST')); # Initialize MySQL mysql = MySQL(app) @@ -69,10 +69,10 @@ def delete_user(id): cursor.close() return jsonify({'message': 'User deleted successfully!'}) + @app.route('/') def hello_world(): - return f'Hello, from flask app!' + return f'I am Hayfa rajhi ' if __name__ == '__main__': app.run(debug=True, host=os.environ.get('FLASK_RUN_HOST', '0.0.0.0'), port=int(os.environ.get('FLASK_RUN_PORT', 5000))) - diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..e2e2431 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,28 @@ +version: '3.9' +services: + dev: + build: + context: . + dockerfile: dockerfile + ports: + - 5000:5000 + environment: + - MYSQL_HOST=db + - MYSQL_USER=root + - MYSQL_PASSWORD=haifa + - MYSQL_DB=workshop + volumes: + - .:/app + depends_on: + - db + db: + image: mysql:5.7 + environment: + - MYSQL_ROOT_PASSWORD=haifa + volumes: + - db_data:/var/lib/mysql + - ./scripts:/docker-entrypoint-initdb.d + ports: + - "3306:3306" +volumes: + db_data: \ No newline at end of file diff --git a/dockerfile b/dockerfile new file mode 100644 index 0000000..5f2020b --- /dev/null +++ b/dockerfile @@ -0,0 +1,10 @@ +FROM python:latest + +WORKDIR /app + +COPY requirements.txt requirements.txt +RUN pip3 install -r requirements.txt + +COPY . . + +CMD [ "python3", "app.py","--host=0.0.0.0"] \ No newline at end of file diff --git a/solution.tar.gz b/solution.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..e308f2d60f597e1a2af0d412b5b6fdacc5645283 GIT binary patch literal 18667 zcmb2|=3oE=<~O$0^|y{~`YT@Bwf2pehoeo-0(SQ0E8m*f`6kEP`{mX5dADw9NK({{ zI?3mI_k3M?TKJ>PWFh%mw>SMYZL2+V?p$^H($@Idc{y%<??v<feDM16*I~-OiaSAV zmsVVTp+Dv2{x3T>#pYkxo;CGW*wgN!)YTVn{A#)?C)vMKRcxZ9(Kpu@zc1GQ72EpX zUbjZ>KkvI(>21n#nFmii`1S4E+&}A={kgyHYIgL2|50nB{x?mPPyhA%wEdj_(r;R` zyR_5T7=>-RWY(*jyj?!u|NryQ-%l^TjP$Oxv$wU#G+ee%*52N>wzy=|{4MY5?_b)& z`|Yy8zMcaswmnZjzrVh&YQh&=ODijB#vhxn|M%A~{(Ar0T5Y*9+3EJDWV*l9XRn_4 zqJHtN-f#Q)O0)mQyWZ?zeW6u+wxhelvT5d;<Xbu%zS>1P=ZgHMh@Sa=NAdM9#mzqt zq%V5!Qu+4i$&3Cv5^lBkvsXQw#b)*Q@xO<h+Ksjsx9nZ~cz)!G`^WuGu;1x!5v=V< z)7mom^L3qqCf#Qh2Y9Zh9xd25nI+AD+3xR_^LjJ%p5ME~?bCj<Ct-#7m!ysFyH|vo zy|DlL>Ac$e_<d)t)_b0FpPk(JFaP@KuPXm;-&&Qk`2YHx-1T4UMVCtdV!pOi;D97c zoy5tC1qbeN-Y?#Dm?=|9!@O>Tqq6P~k@h_4HH~IccjS1ER$qUo;-DdP;n@BgvWL5z zAGRy4{HA!}z=p-D%g=1RJ<syN+p;<luZVruOREY!n6x%*S6r>PX|aH6HK#&N;+G1R z!tA^~s`lv|ZbqNm1H9#$=G=7j++$RqaLX!x-{1Go`J1XDG6k&Sjue$In14Ufq1*X< zr_ANjy2oAXTyh#b?-v=UPR!ANlF&9&zQ9xet+k8Vm&YB?H>qCUc6;N4#BB%IWO$bA zMv31{R*H|?Tsd7;w&>@wV+%^=2DqFMoZ)e@q0y;uqHpx3=~pK6`y8M9(sk>q_9r$a zif1M|$Z-fgSdpSMUH*022mU)wOTHeyeqf?;*^gguIux^-o?hC?U3AOl_xaD^&)Jvj ze4nbZVZDpoor5{*oONYI^#%otPM*}gE*=xwYSZPcAJ}^5_?rgq#BUYbPHuYMz<;Ud zw$G7ith{$`l(xsG<#$S|%j|g}yJo>spAQe)o2T$9upMEW_#sj8?XoMUZ<Mde=(jt+ z{ME~YtDE;4e`}e@zI<oN&EQKrruMw}bmCRBeVsvL#-BM)H=mne`AtXA%ir<G?7qFb zJ0vWR$0?fLm_40coxQ=(=krvD#-cY)buNoExqiyc_g7q1yvxKbsh<7plZ<y<b?Mt9 zZ+`y6;k4<-X2(ZdIlK3)ReX4!`L~?1Kydc&yj$|~mv51OZLRb_{(#0D`NMsm91353 zd62`TZo+i(O#IozCtFfA93I!7wesLPx1Im@ou}oWPcFMw{bLJ%P<7da4Owe`3(Yc` zzeng3^VWwSGu5UW^`}i1Idy94_nohQ<#xoxT5p`5)s^>c!c69Gmt@L(#b&+##dkVO zDkE7aZ9`ah>h0VKOzZESJGIfo`OVXud!5y5Hyf~7F63qXkzR1lkHec~_LS56D!%^t za@;H@X31i`4Qp-{r8tTk?#g7mUR2(1WoLCT(3GS8v%_h7{eQFP|9@?HQCY1~e%}AP z>#nZ8z`rkN{pbDKn&qGGf86!&F~>opKkIW%3;u_<uQL4~9w7E%e*K0!H~yV5d2r}Y zeC@3Ny<WL<|3`b?OgNDJtV=1anpIou?}~oE{ShH+^dG71H&qrCIJBq8MndrG*$zcs z<+8^vwbSmNFfx9^qs-`a&+)vtK>G|Gj=$vsY8x0WLd4Bj<Zf#pDBug!vG^$M<9zSO z#_Y{}?e}c&Z~v&#_%pU)L0W2~q^r%B1Z9cpEH)Oy0|wPEj=wo}giBsod{z65gl1bq zy_(NL_J2OASKZp5wln&_^S#<7lOHU7WB>Gj_Exv#-2dT$Vjt|EFxx+xugQM;^Zvlr zciI2eFR+>LzwX5snfJm+6EgpWpEl(XzxF5IF|zN!KL5P;`u4{c{orRhp!qLc>+3PA zf6=atdgeE6!jj`sWOe_(J<asD|IEGT?2V`2|9`#p?W<e=)-Td|P(Oe6w{-3UMt`RN z+;26-^nZAu+>!b(tn&?zJN=Je?Q{J9>*x02Ay&(_hW_5x!+5={H~jR~s%G<jy5VQ5 z9>;%OwKMgx^36Nz);TxsPp_QtuRQ7a)^4-?dPVQ6ep*huSikB2Rj<<Owg0s>v;Y22 zpT7I+{jc(hUzTqw`Nw|#|Fxg<r%qx0Q$NMI;ptEQ-}}G*{O@(j`N#jA?F`<Z<?jS+ z-Sq6g)+wVu|F3`)#IFp!cD{bik{YJ})9qLyME>W8N(KK}AGR&)^^bbdrGE|_lG_!S z&|Z5l@&50P0)4rgmh;t^TD^K*uGE#gIDU)o;b*(oTv}oF>h{;Dy@&Q4+}>b3?RE8@ zlP~s8suN*d6sgsyvn!2#zK$;MnGbE%d+RdiU0HNtUAgAzY3(omKUZs<zVW}&e{T8f zKmSji(*F7X<;e$5-~RupEV=gI?n#@r{r~^wQ^DW=UsOIQ{at@;*_(P%<^x;*tzYy< z^vnLZn?b+sbNZftWqx(_nr$X5JMKqlf2&`qbK$>#^@HqHI+y-eEj6nB7k_uvny>Yu zPuDN_-~Zyje9u#_Gc&I~zcy9g-Pi2H`j3Cvq9oWZ{pdT?;{10r&z-x!?tlNg`nV;7 z)6d9Hf7iPugVJ~8k$Pi}JBbNyVf!rvY@KH`C%lYaDE4u`;lDrnpX%rSkB+?gW7Czw zJ(FH!OW$IverNcvG2+aGzdjKQg)eZ2rkr|_tNXLdy!k`J%IVu9Q{oEuJYiJmdEzQ% zEvz8+vbE;w%>|w3ex2m0t$NyBUvTAjvYf}Ge48&H=WfyvJM+fPCZ$inP%7Z^<l>e( z0jr9Oj!jLMQ#lTPQEGhAb%Ouc2GbiEZte;kHII3id|sT&RhNp7U=ob)2tMJYe*Vpl zA6_$+Ik@h%IfwHF@Rqp-{93Z@McXpTA9b;TU%H#z3m2TUT(EX&{<9BfcMF`UPiSk} zoFrI%=z-njRqDT$7VKGf@o&^oexLh3jxXN4UN5<CyM5%&pBq2*?)y2nZndfWgAlQo z_2E1<=R5ywsAxVdHRIkVvj=s5*N2?idTh$S{6@}**Z;M+UexP2ZDM5PkM%uluI?&g z6}H8Be*T#Yhi}U~-G2D--n7pe58_JQcVCaQh&xiPnDs(h)%=3(^dlv)mmkSWG&Ei7 zw{CkpUFf6M)1|TwPaRzOELLR77|eFBINoxd*+OnVqj!RHNUC)#`}fWtpI%K#W!%f- zqqyK|%5@u&3Vz>nUCse9HGj9vQWsdqS*5D~s^R5<9>$J!@_Zj`gC#n@KU6e5@#O|j z(oO|GogUu%3nV8>vNy;sZJn5L(mdt&Gt+cgzO$N_4t><A@-9u<aj@?o3x^rQK^6m9 zKD9%vtb5hCoA(9^&Ah+#{EE#TF(O5N5?p-OTE3l|tN4ho_rRR%&(}{gO?{s%#}~Zx zx@dumX7`$j<uM26Pmo^On~>a=TvQ{LCeIU@7hJgLfZ4=Pxuqw0*4mtpdb9hvy8WMa zm)AD6`@`>9-{`EiJy~0sdhO-Se+N%;&e&(<-Egk)=e5h6x8h#yTawdI(x%bUneyPM zf@aZyAd&w5sAFXom(SY@vR5o;7YJRKwI!ix8qaAphD~f|PV?wCmv_C;cMzH2zTxQ( zrIQ<d_(M+_@Ho8>bH0?r^zwt!<ke;$H@TL}Yku37tA6HbdCL9??hgfSX}_|*xAYR< zx+-g_TSZ5r?#?~&ueR#TuA6`EUzXLK{H>|6Du};0o#B+OGt=+Q%KiP%`)%yp)+AP4 z@3CEd-*1MGM%RwR%U%f@CB0(qShCJ{$`L_HmA%St+0!5In0x!n=Oe8>A-l^?xV~`< zh`sZd!`k)rt8EAN{q~6WyquRWct=-AWaA8pr3EK)FF71<n`qM3vW~YR{hi28k#ttU z-M<o;BKgFxz7?ObuX}pHqz~$~-J8}k)|VXNGP(KD;p<MRi#?0qZMQP@sBFvn@>pp1 z_IXG8o-psaAZm4kRnV8Akxgdq{NBSs6GSF#ajK6#7Pf-*=M5bN<<#DsX~Az*QoJo) z5`^wCiZb69)|m0$e#z>TP5pM7d#W<sSDxeM_>(e)_0k$E>jbyJaJ9B2Qj;SW=t;cD zwM&lQ79p9rQ17>A>y{nd&vxwSX3>0i>kgCE)1W(_H)pG8`dpK^AnShOR@S?>llM+v z|LwL*!q=Z4N*hxzPZhuKc;wm7qYMEZZ8!H!bDVk5)tjO6+R~%uH=j+<%H`H&-1O^$ zvazb*V|j)>3Xd;66xg^)dLHXn6IRLEDM4HAFzr2f;`)RGUwqe3|1~3W_X(>9yI-&w z@?0u(ni99C^WZbZ1-lv@4n)onTjBD+YLWlDg$o2GOh5L>U~bxl#{F{lQdlK=^Wq&O z6u0k4f0)Z}_TM4<nO+<dqxN>$PgQasJSJ3MJgB>C+l7s@U-P6y_}y~b)pGU8yeqS8 z%QF`2{+>2b>LPE$M}e>x%5(B$9=#QNvFE_bU@5l0nvxtG@+X8ED;%Qprlqik>22_u z_wl>W_L9sQ&jiG#de48{Q8G72m~&Q2Ubk)Ss&u}%_sQPRoT_3>RDy4XELdsOb?L0- z9i4#Pi{d87zVJ}|8x+=mv1!&H4u!ZE4}w-qH;Vc7RQ1cg)_R78)oT@7Wjn<L&hZ;} zT$#GAF_^6|<-3Ywn(o{;3#a5?@%|Qg)!O(QXY9;PrAuYMnOuB)_xA6#HM{ht9gtf4 z`kbq3?E8rDOE$YrHi>v<+*z_$eO1Gj^aVTStzUAlV#Y^>-7|z3Q$y}Y+H^m5Jn=xK zFt?cHVdLauauTwJet+#FUQXXG?>#?p_VZSzmEWgzsQJydIDdG;x}Cwf0z3g{*LLZI z?AdbqR7!Hl_l^AxpB9L$UU0+x+3$B-yEgTz``oL1&D=5Pqe}m7E|b|@>n9m8o49Z6 zsH*ATJmr$<`AEO&(~Xs;%TkK&%$57h==iMVI!nz|$6VVvmIg26ocy_Gz1cm*f4QKB z*=d%f`9ht(*-AC_lY?$G#?F3uZ-(>4JIWTfj{m$AdqH&4DSPhu$5yYq()HVO?qRnC z4nE-mwnj$5t~RT<DR&kJaL7oXn*Y}Ozgb@c%WuAKb)FYk=GHb$Q#qcO;P;_?!^h8? z1ak`7P2!fV|G-qPf74?34&%mJV{^x{1HY}V_sPy)=arqB#$42OuBbcW?}<J8)Hj`f zscNf#apv>X<G+MdcK)1sugXEf?bAw&5H)$5WO4QB8?JDPJn+iew`^OkXO3mqREcHr zeHXr^uqSD3dh`8$WKbe+wRzw4&}FGIVcmNR_pHs@{FAx=TVBr5HJx(x8#HwG)<#!F zJMAv=o_<PbK}t6J<23ig+|8Mq6SgNGt7dwC`>Wxf`)hSh{dao9;plg~Md115b9EbZ zPW{iz4`2Ri|J1C~+JBoT8CCw<{G9#pg_mEIr)~bUCQ9!*_mB76-`wB${6|jzUXz0f zzcLqv%6GQUON%{xW3t?u!v|}f)ho{_T3_^Sd>~Xi^K|ip&(`~c71}w{#G2AS%)R%* zf$eo>KUaXQ(J5yuokax<F-mF8>i#`xmk(?ZJ+Pz8=EalR<{8?u1veDC)Ov5NIj}5l zX-cB_3E!ROVm2iT3_A>2*;K+`9aPzKvtaWqo(cVW2WJVci&=ZN=z;4`g^sp2Y~NRg z%za}Tq7}t^Mm>XhU(m%58E@Evx0t_Z4%+pjF?pq-XP)HxXp`6j*NzGAVC1hh>N->P z$9amcfwI=OC;7&z9AXUdr;ohdHFLs|gCgtqv<If1n`3z7s)<gA^$d}QN`}OqK3?D8 zQr$VB&L4^%P1_fF(Qv<)d&IA2ZG8WhtzzV~(RDtZ`7*g*GB2!@cW&6FZ`xk{5`0$s zUPmZo$5zR`2``ut)#k^0Iwzf3S&3u0fzk3Sc@pdwIWlLvtG!iv;kjwu;!Lpw_7xX+ z9$c`^<!MYm@8$m~DlOgpu>E&`Mg7wzE6l~0wXS@2eabS$WjF4W2s@@eV|lN}%G#D# z@{)bVNlAw-hn<@@IyYXtf3d$Px=HroZ{uCIchv6{vkFx_+O<TS=~icgf|<*jN53yx zDIRO^Xo#+z|F$kR^;fq1`kU|6C06ETofYNDFcV<6WWRgFRxL*8bh?zllD8GPKSPVS z&zm?3DFyJ(l+FGr$L>_{t^3WiMPIVD#E;%zP{cHCol8o~dYKj}Tltx?3R-der#`eU z%~qK<ah+S?1*L;(iS5srmL8nY9+USbf}u>)$iwZ}wZ4acZsce@INx9!+jI2ewZPJj z-c63rO}*YF)bVZ($(6aV&PPyv=}~>odNX@1(Os$gnO_+ED$S|*+V^m=QTh*$*T+6M z{FPq6LTyUe6Zy-#OSTD4D!LV~**5oKjFO|!y_jpNVl3O#9K233OsZ1xIbS1m*yvJ< zM(I_f0}hdk1rE3BiJUWJ>SHl6F0?z<H7E7zJ5N2%GNp>N(!hN_W&fES(^dT^$<-D} zf2yh5@@t~O#VMVk8K+w8pIYsca+VdAV>X`9dEk=%&hDa*@o5{YfBMb~{G~9N`TW&e zsiL<8?-&X0@SCE&_p29cYuwXGvkL5eJ%y+9CtRP?FsG?=W}h#oMX{n{epqI0abmds zRZHHt+51$CRc<_!_$Qxv=#gH)%dpa^)e1E`9Ba?}%z2&I?V=!DU2*yUibr9yU#{Jp z(sXL6l45D||INz3m-jDTa{kurBOexiv#<SC_CI62@5u{=%XRv9p4EGQG%cfh=RXVE z*H_*0Chf^j`kenE-I|9*$G>2=#@%HC9~op<iM(63Y@_-cj?3SJ=P^4AC^Ej{`s(zn z^9s{j(SP$ACmAVB>7RGxP2wr*<FZ~&r;muu2o&Hv!+#=Qp#6?%epb2e0!F#M$DDs| z@Ms!YY<0F*TV8keph9xzv`deJUcJ0|+;F~nvDh?uB{7S6vlqTzaFsREX#Eb26_dYZ z_UL?FQqf*Fzpu~LhsojIMb1ghpI9ubggB0^w3%0PiSgQ#!aqAXjb$cv25KKLk@=ax z$2Rx!#bct+8P}=!Fv+XQi12uBGf((_BC==w)HNysk(|vky8Ib0Jei_|&du-$bet3# zo8!A=s*tv|#=(i_qeP|z%zQanf_1|F3)^0Vu!hg`S)I}5S<h>EKr|#XSapAc)b+lX z%QR1XSzynnY0uSr>luH0`rE&UCr_$kNjOlb+t*MLQLXHp(=er@)G_X~Z<x)_IloVR z&Ue^TJk`dShxxN+@T4}e$tN`AXL#f;b&-hpVXP6*U$-&Y>wf{a<16(=68)crK1v=| zG70?ilz++&nP1K7LDr(KS__unnGnF1AG304JNwbJ;9IVZ4^*Ta5=5jYtW7a*s5>|P z(9tt_;dbX1wXxlC*Gzg-ozT{QOWkr()C5B(A%>Z)(^y!$nWTI^woO}o&plM>Mah>b zuh<xu37gL07FQIVaZ$L$Ua|8@{`Q$aID8YezAe01EFx{@@i?31q|~yyfVB=q%^^yP zR<>UkiD>Ya_|_~_R}z|R$b8f(chN)TXpX>{#%Xz%g6&rpvARZzYOgwZv7*O!3Um5> zb7sR^CR{ZxY*W?w_cYH9w70dITBPB7wqwdI?Y{kUJTq_nPk!&Y;P$F@Ax<0-0Zgf! zw-2~~OE`UTx@u+j+#6R4h2EqU3aKy6beg08^0e5ENo$WDR9vd_aD(qcpN55=5p7H7 zOqy)O<CDq6%q()M=#+@WGMO2N%^F1{+B8!w9r)+&-t%2tcj6;mgT>|N{8L`;|9kKE zyMJ3mlv@v6NK?;#`*_tVu^N^O!M#!kU!MHG+3s=lk5)F*kDOY$mhr1j{?I#aJuUwu zr(^c9#b-{}Z9evCMr!W0?rYzhOpcV@p8aUARO)@-YZq3DZ*F+zbgKB?%bd>#L<A1s z_Vn8<EU5N0w?+SewAREIm52KL<d%7MTAn$`HOr;+S>Rj`6E}(O<#Ag4*E)B7x}f&j zJUDrd_`l9B5huZAS3jvNt-G}{bP2=EErO1`Gg4KKR<T`8mD?4&C0&ET!NcX}{$9;_ za?EYk3%|ZPR~ae0{s?nbf&uRr1`l(lLchio+4X9fj79qux%M6`Vp(H#iS<BEf0EJJ zX`F7!Uv^pAzD{7e*(_+ZW%~KBi=6Vmm-J6`QLxu6@%r}OA^U~eHjzvJH(gErvMXMP z_0NClzx#at>fhsxzVzSEP4n7+dyjq5FK37`uX)lO`C2rnqwkl&mi~ooGfUSV=;Pj+ z@6pfq`qct4tLv&?5<2gh+~skuJbv=C$<5_IuUcHt`o)m*ukP0>qY1nAIJNiYXx0R* zJiy+RqJPo;G|K~aMQ)bIg-I-vtvc39|0;PTwrQEywucMyTKEL+w;#9PHu(bk<C7Yi zPK~Y7jH@Is29$H{@8^il6<Ex<COPpGSFX4O=U(@y$9E1(Tvj+CUAg3gg2|h?5#}#$ z7bHG=z%%LKhi~@Y%dg1HoBn&2_52-2{q8?lcRZi-P*qNg>WM{dhdL(&FfEgOE+xE0 zLUcpwj_FUOh32~_iE-@V*}`xz=ext&DZvjovM(~aKj>&a&p2K9LW}+NT`5QNbQdjm zvj}4^t<R3IRA(`pUi3}o=%V1#v&+9a6!Z4FD(rqJD6xs>@M|aAd23dLM6QcYGHm!- z@<N06w6fKba~o=_Q<olEex@~Zt5$KP-G@f?%de*8&+3vWmP%5M;rdYYh4s4G|7UKS zmd!j?Fz;FImsxjL-eF&)GP7lIt8#hEkJYPIPITPM`cRdBVWIVAhkYy5)`))C=54(~ zEKBKg?QIQ)>EDw%K5Sc&8_>NdOFI8@?{XPOH@nq^4oq!kC40rcH$4o$pu=@)MaozH z&{+$jlPm8(o%T%H+tujNj<BNw4u{016o+ch7MXrpH*w*vT~U#0?-Vz0IqA;%VUCYN z$)RfNhzMUB78#j9hR??;jJ|LtW;ji8TgR4C@P}XWtXGec;KkGxpVMYW9e#ZNwae+H z5xy_>`}eYE7Oa}()7sc{rgbI%^&<_wt({ARyq1Ps4%3>t&&zyqJLj(zH;;?ydK|F- zdV#O-dXQ<}Psg0)(-u`f5HVF<{&?H1(<*FLDeWOMukAatM{m)s!^NeOvxBUb-Qo-S zAvEI*%dbBMiK{K*Yqa#uZ#z6)J0nWXYUhRCvs1m6l%7^Ot@FG4)W$P$wqC7k!}~)R zZk-dDw3Fw;!?)YF?coY*TonI7hh^20gY#B+vVLPaIIA!HwQ7mP(iLBoe&=jcZQ$e; zN#zLIR{Hqu!&2dZL)vMvT+Hg+dPiz1i#|QvD{p-7xd!LL!j750vt*Yx{@xatbYzk3 ztH483F0Gm|K`z5qw)*_Wtp>ebkxMUKP}+F(;Oyk%(=Hf%OXlUu6P50KYoIrSJ(=~% z!IUKBhOX60lT|Kr|Gu%m>||<&SnKy2+XDLR*q5aGDZS>oC0`-E{^O}DlfQlSQ+1eQ zaC7|~(IUm*u)QB=WV@|So>gMnzg<^tkNe5m^;)w;%>2*(`YV~Yyw{>oKylvwvkw0Q zPRcF*%=vYaTZ^KcmD;6+g)H|sOfHt2Yq+DQIe%e5zGds$uMXZDmKse9>iI9f@_2}# zr#+W%z`{TLyruij{NdkPy7W)|<e;vr|9M_>T6j1LUGvCa#rjxgg6Nb=VGs8?OaCig zDD-?@8vH%k_rw7)m0eG^-%t^-40c%Z=mJ~8*(#-p=CUl(VXPYOmrv6a7A;y*Zm`+J z<KWRFN`aga3d^rFbU)#(ysxX(eE5c!;g9^Ztuto)(dYdd`Q!b1-Iw+1OMBG+CGTpQ zxIUY0MxerO%gHh;`1A`-yQUNw2Hu)>@@U4PStpNvdipQ5NHSKF?LYhFlYvQg)0uwA zuQ-3||C4N;x&J2z`}~pD{iR$oVdL$(FUgDeejHW3I9>PQ5*C+MM$Kb^A;J;o;ye!V z9~UTI@-fCl&GzJ)S6NG>Jzply^|W%}d!5XlbM0KWn@{-fi)|b_Q!h=n<d5j(t-Tm9 zzhIZww~doIEf*Y5-X*BBA?xU)L+=-TFKnrs`0w$K2Qm-WX$GA>`S)9*!Qz9FlEqis zFGbn=Z#6!qnHz9fbK5zE9#2D|FU=1GKPWxy@R%$A)W#x%)x)UY^__vHuGlppjeAKd zD>sxTnD6oFGMb*eA@b?D`HwFaXlp&pyz{5|2Xnoq9z#<Yci24{Tdrd_cA6?nw$DsZ zVScyb^_p|3dP})DW%@+U^~LdYy2rb}o4;23rHlRSuw$#HlpdP&?e&xW3oo1re5+x1 z(C6s6i_;$|*SzLA?z=oIy!GQY*WMJ1u<6>e8~*&gWX-%U(=2AeS+z6Ua&slBwiczX z+~=5~Yt!=c1zRuU`lP~-OIfUZw?-Uq-o^Ni%ej>ID3j(xAJdMT3cGTjWn7S%dp$c} z*7V$svfYV>4S$7w5AZ*_Vd@`S_PkHCW9Ej9&0bHfRx~_ge#O1@|FZ2>XHHB@i{-i; zT&wu&S(KGa!%73Qi_WWL8>g?+k>#^#*?(W=uE)a9_kEnq13%W=)jOyC^WXD-W63{% zFUkHt{gzMaP975a>8fs3X;-<TcgE8nF4Jc7iS|aeyb0;Kd8$d~64S|lN42>>d2nYe zKQqy=XwfIvSvOjR+Dtz(wu%Iuk}tW-oh-EbT}HkS|LTt(F0HA{CWt<i$-deCv#?L! z<v!DlotBKM9PNQ7YqF;(H*EU)Mf#yh#V)4B%1cFLCVZH9U>Ea=$p^Ez%40NrO3Tj* zyHrRRa7>lRT^&|dvi8NxIr|e{di6Lu1?Ty!^trYsI{N9_yx7;@!osiISaxyEny=S+ z4o!?)C-5|^eUd~ri*IsG+x(<!5l7G7-@5J6b-$CE9vQrx>mL+INlX*SEBThSFj;+m zPmN4i=Vqm3hpCH_(<NC0587PX_+rAMwkJI$OE;z6m0J4dO_u$?XyJ7w=|``fz5m_f zjKFT@-v39B)=w6`zJkBO>C64;OaFhpKJ8uo%sD|if0q{sl!)}XvvB+M2}|VqwgiPO z&X^&1D01$JWp8treL6D7`0KhO;)dtlyj53~YM2Xdx|J4cdvfDtkt2ugcdf})YHTWO zbzl5Iu%UO$^<(l%y3yNK?Owb*`{t>0>z3NSja@x$-ITyd7scjp?vboHnC>3ib!+~q z`1L%N)qVkwoJuZ7UrXD|)vJ(wx=!qi(C*MFlH4xK924I!uIF{vJslEa_CIuvzwear z?SC#9n4NoQqp_nQPx`UfG1~_d8fS#NPL1rk|Mr+7vo!acH;rxQgJ#|cn(&W#*~*nW zwALHVVE7$ho12^V@43U={Y(DOpAxj>pZ^d3jG)HllY}^huP*ZHtf}(wp0hTx`&gT1 zl*kPED_zmDhYT4eWLTg47}XJ37+mi0obh|lJ7Gatj!KX9Ub`l?y58-78FcWX_A$rC zt%1uHY>|ETLATN>$Z2w>TFbOmo~K^<9IV&i^|;4gTYl^3-O4*nf)bv~1vVTAv?>p% zUAjCX@Yvn5W0N#vh1sXPWO(!N3HPjp{~vqI*&uXw@-4~zOH5|X&^@%Q%H(>ZiiR%R zTo>h}y*hk*i`HF|4n8w&=0D3lH3xSDG(LMjU%9kJDPWo5LpPf@nZ2i6=I!w~KS5~M zxf%Nw*1Kd$1YdM4)>7JbmCt5P;<C_#3a1loCo%}O-827trnzdqnN06;;o^XBkHW<| z^IDg3OueA#HvQ}3X{XXcQ|v6Rn{QBC!g6#E(~|0@S~<7nc|Ruqz32SqP2Tn-PK%A5 z>yJE~Q5ENHvMItOedp2i71LGC=NYb#-5mUC*Pki<O_!EMrQFYHHMjoJ@n<zpWT?>5 zLxn}5zQ;6waDMJCZV}yiBC^bU-icfF+pl+OUS4(Q8;g?YRmq!9yF4!TH>=bMGG63Z zv#r(Ud5gZJU*eN4UNx6Za~LBv*QhV%Jd-_p(GfwR``kKfSw&a{q#k%V=1*fi>!q?q zAo$0L6R)P+$(yq%q4Z+?JkyC$5lc_5$aH<0eL5oIsN}&_ZI(?j@*c@4+E+VYXmaZw zn%1*`(MNS%w?gfgNqXj&A3feyC9+V<Gq<C7{fg@2t|v^zc70~r#we!dwKA!vBP^r! z(@}@V20}BmGxLum>fb2+)thjfr(EHmc=N+lE9Gk+PTPuI-tgAYRID%fnA$`acF!r9 zB^xiSSupR`g6^|hkE9wMG7Op=#2hM|WwS6yD(J>Cfq7n0IycXUNSa#LT6qXDS={Q> zD(L!ur=_9prRw~*KG)jI<+5BXOIIm0{D|_`x+i>%{r6+#8Q(2sxi_W=EiTAdpl*6C z`Mh+}iKtW8q;*r9rY7#T^ygpN%l+X^ph}usP=AEiW7XG1(T5lCwx>iCHcfJz+po)0 zAbNSj^`%i35?s~lqEpOf2(9Fvupuewg^NVKc*ExK??G?GrT!oOG4~NytLXactsjn< zX+P#;-qNKWdC#ghp|>zNbxwG@NNDf3V+G-pUn)#kW|DR<#Bi$Mu^4W_p39&3A3eLU zQ_qQ8qjr_ITW`T<j$p0l??bLGED7;{`tsndFOf;QXYQ=8ShMV*%yk355Qd%JEnO#S zgl0|ZSYG`*he4v>qgbNq-ZuwhTcvy!hEtMV+?_4nnPFl&k=u$&&z}<I7W-0CzU61N zl~|4Z^MvwK*JmzciQ@e{S;A!7U8j?4Zx}e&KR1ZyoThub=jpkP8A<LvuH1!uYhzZ2 zH_D1_ZQB`k;f2}cteI_6-n-wrtx`RB<z}YOoE6r(*`77Ji$tdUe{^z+)iH$!PXFQ? zkNxub8y|b}pRwiAh`;j<1QzUAH1R=#<pd>{XQhwMFPvCVrEtPUAh=cKd$eJ?lZ@80 z6S}900#v@TlrUe>6w*)pe#2Yv*MFYF7b@=mXMG{R;`EjOCez;4&zrMp{||dB?gG8p z>(4&Qz7d<+E%&hLs4myV^BmWwY?9mEGUc?_fi3Ed&b*Pj$Bvv(XS?X$CCVlFEqb$A zbU|zL%m{`jnx8ADS1w_5`O!HcI!4J<E7*mtZ|5GiWX*T0xxOy9Tqs^-nbbe2<Zq{k zN55OyxoS=EE1~OjUSGes$bnO;Nb=f5clMtd2DeSkSGGTz(R%Dn#PsVM5@so%RDC3C zVW1egLjDSi_wKUYTaHiTo55qLQXC{Zeb4izO;0B*(8_tR<ExVO+6!?BC3zez;`anX zTjzZYGMgx4Z#m_fhJojyNvfg-Iu%Me2h2P)PbTral54vt@KZ)TILLzA-E#Tdlt027 zD*sm8j>@+=XI6G&-?w$D-d5q?bY9wRPEUOPh;_vw!T8ehwNV%O;#uaLc(py`iq%|6 zOSQ%K7L=`9bf`kh@~q<h&4H!?o6kjO_-F5lt5~~d(XrmPH$8z99>z$_%vt;~<UvG? z&Q+~>zM8UPTz%2~vs=Vfzca8KN~Z1PNSjdZn<!M9x|h{~=ios;&DRUlB)wJ`+>$D3 zSf}7H&(u3JGq7eS+xjyzoA-w9{@Kjqb^4q0gD!3Ho?D`dT3>``D25!J-Sq1#3s>jG z8C<7@oCLjUv}J{hbWB}aXKM!KzJ8l@%W?JI{-ayhXnJ|>akAxDxjF6WoqI*8_O0`h z-uz$O|L0NAgFoxPUca99v;OM!sptNm)DV{WpZb_d&5A)s%5jeLeF*{ME80>gIby>@ zH)<@Int7HZK7DHIiJ*+oa|^7?M6PZ~3OVbeo@(bD@*((G#kO@5pB>9l-yfvzJUv*? zc-^hb`ycMwR=T~s?2^t;B~zpDhevp&#pX42niMdHaK6eo8DJ6>a*qF}(b7K=3pal| zUeqXk{CQ>Mn$L@~nV5W)=CPRZ^2r4GckPke&}ucCbxY!xS?3JDSzgkebMj?_=~+FQ zPs>i-pVjhQCuITK@5fENJrgcPtVo>u=$Bp;+b6kc=3*SCxkUme>sR=DJDA!kPI}gw zy68kky~MP$QlWa{D#rXwOii)OI(xF4B>eg!+qbanR7!5xDZ%wdZ~?c~p6V%DR|1oj zE$UtGyc7C1!N5<`s`=u-jIK-UWygOfrcds=&wge@;f*CidHl~!OS+_6CNz4zC}L<h zoKgOk+2^w7WI4y_G7E3GTl?hq^k|uwtl!+@XT>&g4!gaYO#AsD#qOJrZhuHwGhsr% zT=}U--{x&Q+8uqX@KRR9%9zC~#OLf4yV2--s%^rewmT)AQxB{YSaavj&TR1#-4eY6 z+?BJYZWAfe)4ZH{iO)o(rNY%Meal0GYEB0B-?kIZT$vtxfFXB{M{L(3_pYFsToJxS zT24H=3r*iouZ-UMp}-{bo~GK0?k_^6Tu+WD)Gk~3Lp)Z}A<RMf@2Z^UW8P7DmzF0N zWgKnlu@snKaHG>Z*+1vVCEq4}jT;x(*XT5x+|8Ksg~P1x#$OK>h1q(uO!8xw{I+QL z{Bc&7<m_!T*fZbk-MDjA)TL`Rvfg$7`pZgUel3u=ziZc@fAhcAP5!_7vvtkCUu|uZ z{*?!v`g2b7?T7mz70cZ1>cgz74oFV=Z!OcV)u&mjZy_UoH*sar!)2H6Up2pTv!w8K z_xU$_zFoe0J~q7cdtsl^dO7KDOb5LzKW+J(=4NfW{Qt*oT>sn7Kil(Z<*#Sb>+kLQ z@_4QFcdI!ZH91L>^q*zE*R8G&_ODv~XV=@l-|u2K<y_Zpm$`S{^7GMqzqeVO3S)S^ zHKnm!Vb1!w|F>)pE<5+-INvLa;F~sU&wVX;I>-8%`T3eZe_i`t7VuTEyMHsBXDj*H z`g7mQ{yUd$|GUip&*tmQt<LFxe*QC;Usrp+aEZmLncRMJr=Plg&sy^B-&cR!!|rUT zc|6@Z@Bh!P)34LN)jW*(bg#Hid8WJnp`Gj0_ncf<*Uo&l<3ru##f&Td-3@-MKmXFl ze*OKMOI}Zluh~)l_{{d{cG{~f{uE3y`+scWudnOghOfP5Z<kt7{bJ$uZx-+BmKSd> zzHE7!@Bj4uKDQt5dwY5N_BhKONiqp*L-y6F+W(!NCvKYjZt;Y_=ch~lf11ByHLt~# zUxhQ`4}SVT=il@D^&*kSm-jP0-+w;6^M5|amB&BjGcq*h{+}EuRMqmy;PjP(lKN(; zYwe*H=e%`(|Nl8j{{PK${qw?48h#7p`2Ux8AJ4!23pcJ?@_+7>AisYyTTU-|nGwcT zx_5q_@5}e{fk)*%H)U&`TOhV-?fkc&AG2M3%^1I6VPO88x7-=Ly}rDRYt3TbuU~)l zFyql_-G=izzPTlvGDn$&Ez*eJJW2k)?zeA--vR~x|NY1FZ~evh+7JIPnet}J&Eh5P zEheoYQ3?wu+2|}ay1Xb<U-6sy<|oJNx9Rsb|1g*Osej={z@-0bi$(6$f7v1<E%4_5 zKXbOMzf1ql?+L2-Khb{9k-zHy_8UIP)_MCsWs1`G`7JHSmPM^yx9y<#iu{ZY7Aa>( z-532VO1t8&huH7dTktcDeKu3of^*Wmw|U%m94!6$bAMFIx18Vd86TAYP5-gKQ@`G` zv{feO|H<%WG7r*US=h7pUN+9{Ie(D-!%V*Oii>ObWFH4ldtCUeg75TanSJxmZ#SB! z?Dq4F#PR1Ir;9_5eSXVX*LUvglTDS+Hl2TFB(C?)a!L97`n_?*XQub(-T3tO{l8CL z(s}zza<BWFt;?!Qd1gADe`|ZZbma&4;`#L&)BhSx*Zq0w`TM)`>RvTJmNk$6>Ee3( z{@QnQ%bprXJI`bH%djat`Q=`Hul?>n^80rEI_;gmBenQz>2CdK^V0A6+iUBBG-|(o zQuhxmx*1bE)1kidWTN-=uWb8lbS&SutXnR8IYztw+upnV_4TI;SC*c7DL%*iYr68m z+woT0zP2tet55GLKlXm!?y3{f)o)jxYu|SD{{E*|%l0Nm|9Pd`J%_)>P}lI1QTExh zyz6VDO8>ozHoIT;=Ww*W%}4(1dH+sc%s+oVwf~>eC(oQ6Usv|)+1&nqW8r&OC;n3N zwYRO)|Gf+r+i^d>_TcXKaaVr6_}PEwZ`gTp{nGnouUA*g#P*i!%2#YC`YeClq;A{W zj=TQvEOhrSdw$ECPqHNb!{vLsj%*eGzvJtw@3Z}^|INC3dfVUQ^Ybzpzp&jZxlr1W zb+;jkA^zOv2cM6Ah*f^`+3&|YBZbwnA7l?aykh#{yL69w@Pq%Go<H0vc(3-@LyKqs zCO-T2wO;mT#^ra__P?^uf1SOW|L)VZKLRaczdpYIH{tlF-{x{9H%{K){r8giyO!_X zPiIG|wfsN4UAOkl?EjzHv!tbrf7(y_@BQcgk?E<qZ@XpAh|AWV7JQz&|KBRtbH{6r z`~P3_veP{+EXJ_t<J0uoeYuzUukWuo-21-v)4@HG`A3vq*B5+vy88UjzxSfApWm%r znfUgp`gNIqAOGK}`J4Jx)_m`u)d^o_+_au%w=w;|&ydpNobG4iY(JQX@7q@Jey;Cr z{(l7tZ`UN(3x2n`_wjdd`MWBc!d07J`}<nokNa_E=g0c0%%9zJpYNC-@$b$4xj(M1 zo7;K)dW-z0yTzB(x2Dgjx?61?|M9>i-@f15>dUX2Nj&g9zs*uUyzkGs&;M(#_uBvY zZGYzfYVYuzJ#|0xwfbU;t}LpK>(AZuVt;gcP3flWzqQue&gs7XBDeeTy{f%`XUv>_ zXG3b+|L#@p^>LPu?=Eh>Z?*2_)cE)<d-FejbM1b;{oTx&8Mps^$!?$b`H1cAJgXN+ zvgLkQ)Sg`Z-RArD@;M*h``1~1xqXja-*WAvP2qeuYp(v^R{r#3z`A^S<<k+t-%?!4 zk|kdooZ9#P_dSW`iwQlpH<emW%sVm5RETS;?(Pd(H@lQJP0>|cRi0)sx9<7%_it<O z7u!AGQ~#r`=9ta*s=K$p-Z^i3{_EZ=+Vi7(G^f4!5ug91$U>miapI480laEa6R($? zSLj&Q{@VK2<n_&8k2X)K2zGiI&SG3UkLj-Ol=XX8q>In}V^BK(ZeK}+GSl74Mm?_y zvt<?@O<&C1<MUoJa!=O6j|<!S>{o{6PB=cvf5yWdYfbb|`Q3@;u1z^}@=JEj#P<f@ zSd6AyCZta=|Jyy~dDvy`xf|!$9B34p9PMsvlKkxS@un5qr=5AM<>!87UGTc9sa;$g zt6r-Hv!{q372f5Ot9<<9<;vqB$_^9HOE_)+Z`At3@^1NSCmSPMVJ^lwmXprSy1ebw z-SumPb{Ku$^J+nk46nM}EBQ4~Jd&QQkW_lTdEVX!=j|m91x}sx(e=llSId9g?)~s| zou;At#;3;*K21KEHT##=LFq#?FKy}wSe_dZEVs^EVbYK1){Bo@F*}_vscJp=A!zXe zpV!Y0&br6HI(0k$))h}vL_@N_U!MN?a8{*)!9}ruCQH8uAD6ftKE3VL?B^oqlbQ~x z8?EtszG{Z-4(7ePE6e}oZk*9n*ymzW<6EorChKp(f)=Oc8J+2TTO(I3O`O-7n7=yy zjK}WSe?R>~L*CsjWlLK)_1mgtH3uV-wPZc!Y}|fwR@s|f+ZLF4|2q49=T3Q%Yxj!9 zW_Qg0FA}xf;N7Or3z|C~736r$VVPQ{lkLi+^7TYVOy`~>Rde3{eUo{^tuKO=Gw_6W z_TJedj5pPu&9Kvb*#2zRp+9YZekn2S{cE+zI6q83=yKhj4I6#jqigrMsUFf}I$L3} ze&UMiBB9T`M{0H|>AAL8E`B!W`A2WTq?D%3I{Ei}H|sF@-dH}};`~FAxVzqQH^nA3 zyxHM$F(|h7Zu=~8;q>{Bs`9;dUw^Q0--+P8?fouQE??)zUw<oK(W~00?Q||iS#g(F zxj<pRw!-bZ9`5oAet$nrY$!0@zl<|i`|aCLCmajp)O?D(7FbM9k9fVqz54E(-F`hR z+fDoD|9o_e!8f^AMq2E%saEf5?Ohha3AQC4I*dLmeU!E1bK&3mCGAO|2bYGD_T<*X zTCMfQB9G6?9d-H@RcW;E-vQRNgUrUO<os6oTOEy1d&ag??D1{0ph{-Z;_mgu9JagN zwdWblaFmI-`rSaGW}?>C_YGNzj|#3W`ndVyHTE?{YmJw0mtJi3`<O&un5T!-1uM(r z^Ck&C+Nkhs_qQ4Ueuj(RyO!3wW|rP&-CyoC=8IIr;u}vNpV78v>&hFYTYt?HnKR+a zGAZjrbBmTremJsKKrz93)@DYZ>Q7=}fub(cyl$CmRUMoc_?P?Wo(286s}~m(FEvqE ztWah=T`&7<$j|C4+uVFlPi3@Pv~k<X-7k+Y-ei8}Ht+nA7tV5_rWa<sl;&G^Si01+ zx9!o_8o$MBDpkMs%y^=`Q}4uSVdnc=D#Fw6Zm52?PV(8S0|tV3YVtkrDMlN6YDU(| zZR%mO7W{16zxb5zTh28HHLmukP8XeXa`W26lUL96>?%09r%k2G<!9>0<B!5Gr}LZX z-PGx*(|LBnV42Qr_h;PPv6UtAhrY(G*>CW##_rH7LDQMZLiZzIvoD=|T<6lC<1KF| zT@$*0@%e>$!uv0)3cXBAD6J3ua`~=b$P7Kt7Ybj6)jruIopjywJKvvop4#rfh1-jc zeeMc!cAAwuvwKd4!>d<9QQFyUjjumDh_{QBmv6eo*s#M}<ZYAwV!xcTnwdK#>ZIoS z$?5C4EMNC9diRo==kK!W=GyF^9lmqrG-HF*jT<FiMX%&7TOnXttd^sCrYrO4a{uLA zJl*?$u44!?{lDUt!<yY0yVjMZov1u?>03qciuj6@N3UJoTMZmnGS6pu?YG@=`sd?C z=AG@X_q1N0$gOr+($jLn{ENqp#V3V)Keca+GG$%asQ=vVqH4FeC`Uo|oF{v8E}V>- z@!cUT_UMj^bB2ZK7Yy$OU5(d{Pk-|9^{Htoj}}a>t;~~gzh75j+J1{;gY71R*ExI{ zk&k?8bf?Sun@N9Fs^C)nebRTUu35v%487J*FVn8P%1(cj(=T$S=u^(~gOgS*zVp^t z-ZHzx*lXXnlH=X4U(L8!GEKKf`lm{f>QyWE+7#mnZ;G-y8(b`=Tb|m#hFd7r?m+Mb z{Rh*1MQcM@)sDRWyL0Ni|J$zoI3VtGcJ_qE-j?<E{XV{SGp&^<6G*u;XV;9_bEzvH zD!K|vXkC1;tN7Q=+Kq{<=Zp`XsNToAc>dupiQS8@@>y+9-?!<rXzH!&>tu~G&d+`8 zUwg~YY1x&+2*F07oYg^k`$|m~_csNt6XKQI9;`G;@|mCg`S8nYM9sW?R&J75=}?>a zBxOrOd6=(Q**~REPLq!;{PZ;SfGfLrf$2LobzSr4@(=&t66M~1kYV4F{Lj5c%d6+5 zXvzORnJl0jmZ!nBca}imwOy?qyC+(0oM)nNTYCM~S9#vNj&jawtXo}MzPcP>+VOh1 z04Ku+#XBdj=Y<|Gd&_uh?la}DRW<XHi*NlcaAnjDkb0qYaohce4cRL9zuN8R@Jr=v z{QYq0dJ9$8ymR?y%DG$}O0AbW?cFwO;S-ncYg^_^uVC8r_R+h?@8_)Yj^4Oo*U3L~ z6ke~4SgP|@>ezym)VxinOs-Dlo#oHUe>a^iXpvsvvhOByuADSJZ|%$W^nLOscaxGe ztR3^pQ*US<U#E8e-=vA3pV+vj-FVp9vHZ&6841BF#F8(@dhGnPdE1JM6C?MB>bdq$ zpS)b?YQ9Zjl=h2<vpcI^2)vp;<zw5jk2`*(DgG>fsJUUEo%X)-zrQ?~epxH)?Yvud zCj@>LeS00FeRlhK#jn36c+}-4{yXlp)Q?xXsx=_T<NikOgIm{^%t{h@I>qet3ZJVz zcOGb@E1UD1SFg>g)-^p<_C50Qk%?;`Oj%}KdS8b1RKBhMi9$tXt$RXwMSZQTDe1gx z)GD`T3Ir}=;@iu1#DFb@U3UM}2CMBiA9gI+bMb~@Ue$qTfBKRyA3ylypc|*ueQ(40 z%a>-hzPj@w`)}A&p(h<&@8wF0t(NylJI&Ny?$OC0a)ir1*Z+*yI>p7ebK8$iJ9NA# z|Ly%ci^-zmE@wqgJFx!Y5J~wf@Mn#QV)Y`o%Y}=Q4o7S`;4t4VW!{l98dq<9>I!`| zb&a;zF;TH&Zn-lIcRuIXKY>&Iy!88Mon+R#`Qqo&goLN^aopb{&B$?L-4+?|gz1SK zb%~1GWF9)@ii_P@uY7FQjgabFtP>(u*LAT5*5wx{xUJWFJ?rwdLv5LtPN&2**t`|s zK49Tj@#1YlWVJ_QcIWTQ>Wp6x-!3S7-I;N1{e}Zf)sKJZX*!0^$lB?hyLaz<$+_&S zvMwk$$CiAathw=9Q2XxMyEd}xZ^z%fvTl~HKG%6gZLi6XgmMg-W|-=KvDrSSn*F0r zh)CH=(MkJDn$HzYd8d89D)h;&mmx<#Ox+Xyc-w{x4{o_`SF*k__e1)Vd~=&qaSLa- zPx3k8+&kTArPBT!sT-BQK8c9VE4`7%d9UJcn~^!sk(zDKWsdJIU;Sjt{Zsi@>UKuR z&eXM$*s|`*l}n)uPIAhn-i(`9WPDppB+Wh~Q@^S}<(g@4i(5xY>zy;+rwTM5Id$Y5 zT^@aQbGEhlMULq)!S35@o^8%`J#|S~b^W;;wZ$t63_T<57r9mPO?1+$V9<#Zx_Q0q zd0Du@n!@9It6uEW+>>!IYQK8b)_-rLQxo5<ivIKROvdVMuEOEUyjx?E7AP%W9k_kr zk)01Gb$@mCZp^x>9sI&yJNRx`8k?hcqp&DDV|aSwolEL^<tM!+R_^80?QFZNxvhEP z+@+>h*Q(UV=jkQ!8@zb+G>+3}l3vMuF8;Rgp8Hp2GVZ2S6gvF!3<!9_z%G5h>gR&E zG~U8;lSR*>E8l(fJNQ!a)oV2?$^2hSCw0fyoSnYEY`yvEWpa~D=32&QeeU@e6>9m) zDt&e{Tg;wc>zdRLubt&2q02pc)A~n+54-~QJdXIlG5Ke3;_andBPUfCKfbP<Uvf3$ zHjCu4wY%HolnnLdXY6^Nd-2TOF18hwcUz0s<=MQQVmp7zWbIEId$d>;7ssm>nQlMT zo;SPxr2Nmw2!*FMN%O9jZj813ySn=RHK)&o|2x;rVY{z7wdi1z@!z73?^9)uT;{6j zXMb?%&6I!PkM)CUuT-7>sPI>3gUb5qutyQU6zkYsU8f%W`u+3#?K%vpe?O}UowvVv zT~x08_a5gXi|ntR`?KIu!RxNz2J80XFE2i_UO&EE@X>({hl_3}=$tLy%sD$G`Svp> zN2z;@ZPpoIfAlVPfB1aEh4E`ol(nzh?EXQvc2VU0J0c&KFZC#Xli2w0d77&3<jIlT z3;)i%q#F9~`RfRKnfT%e`)@b*O<DW?%Zdt%XIi|jrz)&3OHcCOd(HS?JNFE+tS`ND z7rt_LO0l0FEBsPo)pxT^ufES^)JqEMyOLT|WWVf&T5oE$k7uUg?aH#>Rr$xK?_Alu zwZABV;Y{(~#kW-#_g!*)vR&bn<(9{-qFJxJ;!IyGci(e;_xlz5^d4vLTH;%tEv&tI zt_G{W{^Ca;g9?K#h1gabxh=gj(Rb^+u#Uz*%~IRlPoDF97tHqS{JRxA>-TG&;mzEj zyMB6UqP!f>C*$(OocWVy7v|3tczP#u$LuP-ve%yF6QAswD;+&WCx6X{$)Bb^o3q@G zp=ej0u3B(;<~KRkXORaP`p*XE$(q|{&iPqsvGL(YmuO|1uY%VvDXuwuKgfdL^@3mW zfyL7|O^-e;ckP*uRH(3{g#M*_^L?z(=LJu2eq7C!Ao)@8QA=)IDU)*MdC`R@w|tee z>y|#c^y*T}Idkru4LYY3chp?DNHC=&E>+GbEdJH5JBm#kJ!-ED9u+=%C+o}KGk0nl zCmKnJ^+kTNseQG4mq0-Oe5a+`uI_x>_vC|kZFo+%Y>i2lc-u8S#sju;KJt;8ikx3J zSqB{KFNpmcKKtgWpy|afY;QhKKey(P%B_orHpPskS*w@bd0)hmT`l-7Rgqo8v8kYb z+0-0XwclM^Rc0L)`_2$<V)!s$?6K)n!{>pEZ5!F-T0i-%Dmlfwbg^9)<HM*<MUh+P z=2`hyczxt9EqA!tD!bYJZp3E0GnJcS+uRr;l)3`8OUgWOI>o$GeYaGak3bLOoqL&+ zu1g(xxY+P>+nchh_n#c{*Vz!6R^Pd<Pi)@W&J{^Z_pX|8{7RKol(|gJ{n^=F@6Npt zPBOc&XX`Q7^tI(B;)my}E|;tHJtVce@s7)d*D{%la&PZ=d>~xwSB>X4p(k~FzH@Jz zbz63C=9m6mdf)e6&zhyl-~CD7E`8#iq<vRbF|4bN`CE4ISJ2N3g4<ip>+Z36;q&9k zlk|JD?b_d1^Bj5f@NeX%I<dV<m8{BZg4f<Zlrhb8nS8dy(IESPiAhiD3g({rIpqRh z>xtP-jcYeI-afwR`pE{Bf2)tKon)JS!&<Ohc+u_)vKL>z5Wbl6P)aGytoZsm=}r4i zUrGNK9T3qSy(!boYAOGPr{-}H4sv&9Y^i;2G5w+Z*4of5KHKlESr&Tb@wL|*HZ5da z<*&oQ*2<Y3xz;!8woXZ=z55w9^Ovg*nOj?lEfkZh)4O&yf0c<o!+T@1%02P!uO?5D z&s|X8nJQRuW4mX_yq|d~Y!52>(hr+e<n1`Q;N3!pQ-UY&9c(+hr~6xGq4MF^(Jvne zX1x&>3ZGx~^5KVDg2hvVROTEM@p`xToO5E*DYhP8nUCi;C2~bCtQE1%J*i#zRjE?R zbbGCzV0*mX`@Jl?W(8`VI+gV6L9n8_eWz@vRQ?|3yDMM3*=u{U=Jd+fiLWls*!I}< z)s-XfC4=I$axyHhpZ;)nZnw__1D=IZc9ju26&**{F$=HM&8XWMnzM+5dzSb&zSrko zw%R5!80H?8s1QH><ywTu%80qIH@6$}?yae|IQ7SO;r0miT<Mp`k2|l;?)`iA+cdM) zCnA<JTzWgj^lMxH0<Rklr<6XfE#4f$T(G@d=xRtmpRwJ|9dm-B<zMpT$zJ2^GW@hU z&QU!jHmm;j;qP516zmIDyw0uT`Rmn^`!(_Dr(K1s$`@^6JbgB@mV3$Ly-H^eL^({3 z`r16_*wo`(<;9l|tzQ?o%HCk=&MPY!T>{cew`6DNostVw_mt!`uI{vW!JyHvP{)|n zZZf|nC-bAhdDGti#hI+l745s<9N5t*YN2h!zu7=OJ=SIQMU%{f{Q-P(y8<%SEX&(% zR>M7M#(LSSh3U&p&EGtJbain`m&sK5kR2&oOJ?$I`XwR#JT-UXtFPgou1S6{={a{d zUTor7w`x;~BS9kHZ7%N$6JI>-{5(F*X$F%@cm%Y?ra1Ep#qwF#6+d5Cr&G_!s#^Ws z^x@*SGJH(Wb9HC@&N=eQsP~YgpG&9SoGH`e6qr`+H`w{HDsSSw1kJ-w9M8UsNV&Jp zVWXC^-0T>R>hsSI?-1j!*b;DZ@pGOB<q=skI8&t~uBmSISJzivx~1a4yokGN&edDL zKO|+pg}wTyiiz~EGk%p^)w|4#KQL`czY?;ay=L;f)aM!8pKe{5J@Nc%eoZ!wxZsk7 zsq3$wTCL94X8Gd2%LESJ;M*Fj!{>aO)8D~wyzy~aW{&sKw#oba=U7Wi#{FIJWbMDV z2NJGboc84pM-|J3r9maZ+Z`rN`gz;ub=9FW2d%lp{xWk3b<X3AlT7%p9rrX>{P<?w z!{SS9m}aXzj`<RGS;%(&n<p*o6Yp?WZEk$Ge`d-`+llsnxqcoI(44yZspygw5wbR~ z@2OeZZZCN-$?!J&R)KHa*B}34k@V8=SLu+liF$M3)DF{adSNGAwEW8#*-AY>bLp6L zm*Rqs{3o9xudnX*__w?|Y7wJ|@4fSN$9^pDkNtoDf&Kjd?`KW>FIxKN)!%qc&6D;w z{(E#getTR0U+jj0%|;Jvg{SY=e|op8>&RvQ$1|^eNa3FH<9fs0k8AdChz(=(a<{2u z;5pCHm~P@&z3afm44d~q<ih{Q8O^q>`jxz!jp2B~)gMV0cSMBC%lDXvgov1*y-?t8 zaOiUE71_S8?o~T>bp6Y5dh}e`kBceNj7Q~5^Ug^MU(%<sH95?-{q#P$VsUeF%Qr!n z#>TSA44UP(jfd;D)GA461pKOe%-Q$drq=q=&P{cvx6FP}eer*iR_pr5;g<hjZu}=% zx9i_t+l%{H`l|0-V%R<B=jPHsS%2&6|NB>67Z<tr&)qAl{_lU;A1{CW&olZz{ek#n zeLc3uKNJ5uI%UoO|2d!0{DcVi_rulc`RAEe9uAC95#bPFR1}Q36E1M?@EY|;CPLl@ zEC=6g+F$)c!FIyFh$-em+)ke#&Rz0;=aC<tb~g25jn$vOGhMKF+j+k8&t8ofw>kS9 z-%sn<UH_nS;{&;hTb_Hk`S&QP?yyw|>Ce@_?fvzxB;zshr@kDD8F4x%INvp<XCF^L z`Y8B8twsHJ@uu>Z4Q<u)*<P~Fl6ct^(sMS%(aU}d<BC?c%FhQmkC@f`aH`9A5a-wQ zm|f+>X>nF3D{EyzyL~K9DihR~?R{e&SL?L%j}}X2tK%*Wo7Bm2myWYvx7^WJcG%Qa zBIQx{!Gu7Ig{%(ub}W1A)l>ef;k_+Ce@xi>Sj~e9cjbRewxmY|seaKvB|V)hUMWxE z!@R(P`rU#GQ}6bPt988WJX$WY?^C_xhP~euYB~0{r-!*I?z{f;|EIF8{re^Cum1nP ztL$LoyBGGM$MwJNzcKIc{3$&udBP3#|Ko#-{{MZypSAjTjYbDQ)3nFT|CTW?a1ijD z{^Q~QMh-upISUjX=$+Sg%x3@L;P_x~!~ORH7v%Q|D{-=XxUjcGNkQ{YhVw`H7J)nK zBwN3JIUxM-&pem&T+6FvOn7~K68-w>IZTZMjoTg`f5`u^%}Y&9jP2MegDKjd`YS`G zChk9*?bIWmm;Ji$kE5DFh{$q5&gp(0Jo8SSXS^<Ze=(<%h2=Z81$Q3m?Qq-0URAwt zVNk-%c+<l-4jlNRe(CRQ9=|@m9qj5BAy@eOL|qrlxN@5Q(OdLFE|LGs_Nkq#xurb{ z0#%znIsCM+Y?{lFS%2;2aRmXxOpSk!B|fyzs$czi{=A0YKioeC|NZ}7B($Duf7L%> z@yS2Uf9t=j{ri7=!v^M-g9-_T8zcnm-|fg<WX_|;IBmi)R)Hkf5Zl@-Hh&Tf3^!Or zB<c5Ta4#u3vi!*NKg(xt?EkM^SNCtTyXJTCtBvuG|6Bj|*Ytc@`}_TV*8gvR{P)xR zvHXMfUwy^TfB*RVL^W;rFFt+RjqCsG*+Y7+PVu?wu*z$h*C{WxECt=t3Hur~J<bN5 zK5~WS%k3!>*qI7vzn9nl{^?=S%YTN#b=NAIf0UP>@l(*P4W2M*=E}zAX?A*(<?hKh zFWfk7-lUD99`0woW=!aLaJ|7nJ850Ynnf#9&h%Gnh}`IP-u2jjc^wZs*NOM{3;rqn zIe!2Dzo|`M{U1(${y(Vx&VSF7C*HjO|4+=qB7uoB<}M$fgH5ykhyHZ?f^w69ufK!; i+Uvfv`?j&a_D!<<?;FR_nEzS-ao?+x%wTX}WB>qy4AP<i literal 0 HcmV?d00001 -- GitLab