From af1125f477acb7f227421484e50b7e4cae6f9357 Mon Sep 17 00:00:00 2001 From: ASPP Student Date: Fri, 30 Aug 2024 12:21:19 +0300 Subject: [PATCH] add threads per timing plot --- exercises/exerciseA/plot.py | 11 +++++++++-- exercises/exerciseA/threads_v_timings.png | Bin 0 -> 52338 bytes 2 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 exercises/exerciseA/threads_v_timings.png diff --git a/exercises/exerciseA/plot.py b/exercises/exerciseA/plot.py index 4130224..d9bfa2e 100644 --- a/exercises/exerciseA/plot.py +++ b/exercises/exerciseA/plot.py @@ -7,8 +7,9 @@ threads, timings = [], [] for file in os.listdir('timings'): with open(f'timings/{file}', 'r') as f: n, t = f.read().strip().split(',') - threads.append(int(n)) - timings.append(float(t)) + if n != 'None': + threads.append(int(n)) + timings.append(float(t)) threads = np.array(threads) timings = np.array(timings) @@ -20,4 +21,10 @@ fig, axs = plt.subplots() # Remember to label your axis # Feel free to make it pretty + +axs.scatter(threads, timings) +axs.set_xlabel("Number of Threads") +axs.set_ylabel("Timings in seconds") +axs.grit = True + plt.savefig('threads_v_timings.png', dpi=300) diff --git a/exercises/exerciseA/threads_v_timings.png b/exercises/exerciseA/threads_v_timings.png new file mode 100644 index 0000000000000000000000000000000000000000..f0794b802c704893f32afe502406b25340b4338d GIT binary patch literal 52338 zcmeFaXINC(wl=yG^~NRpgE z5hx`UDjABBLMUPtK`1hJ%&M~Y-p}3VJLlYg_j{UWw;L<0HP@VDj`5Cnyki=CK~sGP z%U%`?!*-ncP4#yS+Z=#lo07Kt1g})xH|>J|lXX$MNu$L5*5j$~gpOuTtO=mfAal5}hAm-p?DK2pjQ(5a z@lx3h!y1TZRDZqb5jRfojM5!^GQ4Ja>en+WAwn!$UIpzs`|Gc2d`1_{?ay7@p7pc! zc>B*oulKmresAgwKBY&gkZ4Y^I~ftLIUO1=bFVqz%glxyS(L(fc3|9CAjY_ z(QtRZME&vXYpblQsZwIWCEvNU3L-77P`#2;k*9#4fkC04B$DeP8sk?C+Z~8)XZ(I| z%Q_y$Z~NHS|HAl9MQGz?#%}?tTi!B$!-97PtYiGTYd^Mu@!QY;z|j1`&u@SJeL1L9d8K)y6L2})Py5^)T*^rZ4(od z_9yg9CiP0$_wsDxI(CRJa_`9_Uf+kc+n*%0ZoK?TMN4t^Vw`ic?4ST6W_1^+3;Ld@ z3)`bZkw|)>uzoN70{`Z?;l(2@t4mZOY5tSCVE8Fk*%!8qD5~Q9i)C{hSM~)T8Zq^K zf(mw*<)VoRfi!>b6l?JQQ+K261n8HuitJmVjl2<=++xMJ{NE0dF%SQ9hp0O!fL(SU z^c1j>lES4ldAf`~Rx28P{UJA_*PMYvqT;aa7hf2J@|qj3#7emKzkXc#N@8!j!;$5T z6pd7#?riVvV?^P)?NsjDOXDW(28?f=Rl|NdQqPeWT@%kSRQJvEsGEo8`^EDTj?L4L zWh^~=CHfsCoK*0|KHuLto;AsS(2O7>hF!2;|H}n-y)3(sbX-%AqYlw_w%{Q-Gw35* zMv%n&rMi=rJA%8j;(M;0rhh!ZY3u@J9k!bA#NlL}x`VG*42fDOknS(3{HkOpUbP!ixa9+)Xn|{lrUbqsW)T=ivnXs^Aud!FU?qt=IPX}!nH;M|yw&!bT zH5%sjP?uM{(O4257rZ#ngoK9Px>QcJ^27r|x((#na`S2fA#g z$Btf|Befmq+QztL=GM0=Ws+Hyc7iL*2`edLM@IY@U$lc+?v78}rvJ#TYSWGb1UBa9 zx4`EgkUh_twO;zHm?~-=q=45b6`{YWVze{hmYYRW-H_F#s?SlG>$WHO>>!gBB!c@t>U!)zH@LTGL za#3auKnMoV-1UAb+O6u!%Gpvu`pYUt>@e)qEG-(3Y?9@fxxJnj@I1Yi)Cc36=jBxbwoR+ZwryxllQbhTvjtLY48p)T6}W)i_y+3{Hx`Sg)ig`f|>V@BdWh z?HZdwfIp3$+wVyk@G>637`^{`qFYvAx%b1XkP7*{ za);&q`iHe<^v~=wpzlaaxHex=g8Q|wJ$=#?A8Y$_e!jJuX7bZX36Ah|15u@>c5=e> zZ>W@jb*RY}WVy!~cF12BH{~Bl5erG%w)bjx@?EsXH#N`4XgYdSJ>@C%KOd)3c31X$xb!Oy0mApRXGSMrMd+aDJh%x>HBG?8_ z@rK-CSa59<${EJ1_35WdHZy+3l4Sl)Y0y;soyE}&;{VRX_2MIM>`>A9SgG2YV2*)s z>As+%KCh#tu47!jOLO7EkqXCu+Rk%vms7XC&6js3H-~eZdhAa*_hgrN`Q$&! zzkk-q@tPg2#Obd|*T`!%QHOQhc+5jbXjN;z#y(TEIW8lgX^IY?U!0M+@%hDk zqoopuJHb`oWum*F$&%sr0!$8IU&LBFI&cG#%BBx04xW3wlN{%)dE(?r&dP?|V-a$r zuXto`Ud}KqIAZFzFnFoZ)}WuPywrtH&dHGw@csU2xaD1X9>e!pB}N_VE*Kphm6`u~ zJG8K``p!1<@y;Ak5;a&Pfk*OsW6)upl$uj)in}9~S3Qmy7yn{kG21@enx@lVPFx<6 zo)TZ17FUa9IC3oHJeER0Z*CVS@*GWwLT)Q>-+11TKP~_x4Xa7Rx$(2Y88Aj>|2l*lO?Y z;O%DO6|9qg{V(2O>H?lGYNsq=I^#P$fpl!^XwdJyxtH z)rOjnwx-<~c>Vgd%v24B`{LrK=juf=t1DE0v(^QMktOkLygaw%ORAQGqfZUHx@t$3 z34D%2Q|4LiRM;NL5Gh79!*+*ajRO5(V|I={ANB|4k1pP3Q=0efU|PkT3U)n`j=gc4 z`EIJDXDLs<-C)EgZdR$Fmt|}ah3Gr@NxFpYmadm+?bw^HpRH#?%rq+Mgjq85>1b)W z@XwFEu2;mOs-K>;G30X}`TVlY1}yV{lx^n)8Pf_cSMBRYr7kzhSLS*$ONR*VCm4fJ z+46S$a36mF(N~(H$36GovDV(TI+0GvesUKHsLYj*av;1Ds~ISj}yjkj4C`Le0Xo{H7mfmR@g;lXYyC zCGWQIXI$a)ek@P@Ra)8&$7R@zMWc%+ZQ9F4Fxv2^=ZErUN866Vmeu|D0sQ&v?Vk!{ z5|sV@(zE<&3yR)zVcp%`$&F0Lu2u-HDD%DLlo22PiDas72R>fDsCMc~AirKz3FD?o zkI{6V3S_l&T&_QwT?3xPZE-P}L!^@G#rQ;v089!yjHpV66eP@oYieqm8qdR1zRz+T zJZI(TQ@6)*x2qE4vxj~HtEm%FnhNH^(TM(QnkLdV?HTh8W~;x;P`V3je7*?_9$xfe zeE3Zn+?pqGq0utg92aqCAW+axW_7WnYLzhNH~(I+P-e9?Rf*GkqCh{kaSP)sWv9SK zB&=GJiieX!S#amipLd+9<;H=PyLmK$A#;I4Q|T`ThvzukreCy>!MxK^WDK?iH~Xut z?Ct&Vv`}twd&l11UcQ;3rXI>(LaA%0?_8Hg;y3;win zwNS3wUpMpT6B12e>x)u4eT!CCmT>Rcl=;>M{FfuGtgSV6IgIso$>bs#ULx`uezMfdYFW;k(k> z*7nGo8FG_;+xV5`gk5+3JbrB%9~AT<_gLl1goC=P>#Q4|@aD=XV~_qj2>RsDuOdoZ zaCI_pDxT^il2tPF^g$yN-sFp}D_&3VTbgjBR?tqX)&Mqj=kXU7s{H;^ycR%>u}pJr z#-t~}swqejl;vDUcM}(y-Mc-k8PAiH>ACslrbT#9&@(|@wMKd6i}J)|Im*#iXhcDS zXwGT?GIx{>qSX?}js(|^+VQSD4Jl>Dw_Buo*BM{w^Odf8+Uu9n!r!+1aHDE;_2J3d@u49Xm|i)pXkuX3chSh-ijU{nwVJ z$jWQ7Ph(??yqn)#c~3$BOhddPzg9S(k;x`iOl=uvk@R0(t|ph3mhvaimS^xd$X{3@ zL+G$L!MSpw$>B8QdBQ>{6Hd`e>^mq~q#i3}7t$bBc1%-l4m}AHb!TA%)ENN)pB4vmvsBX` zC}=8^AYp#`6WJ~j20f6G*BnwtDNV1X#ml*dJk*ps+$>Kmml?~*BL!?=wVIkqP4tt~ zR9^XhsnW+YScH*)1jGwt`j2PFI=Gb}1+xewLk8`92M-@zWX1DBir+tzuuH0HD%_!F zermwT$Gw(QzvjUK4bl_KgkZB}61RkXZ}DTuZo&kWD{K8DuHzH-6+(iI8-b5uB$L9M}W26sBtUvuL;2e3B+To1UIji_NQeD(if`*Qr5Nw6bifj&}f1 zEP=w`Cb;lH{VJ&@SX5~8ipP9 z{sC46d3s2vQw;TJcKNRG@NlXu`M$cqVIK;i%ssSBpJ>;EQ*z*q(TO5^F3%NJ*-a6Y z*JhNdtp(3dhliL)$fn#}UL4ED{kfGRL`j%&*>To&#np(lkaHX7f!*Wm?A+_tV<+lY z37LH{tk^8|2WI=&WWenaI)>NErogWZf<6&n9J2wH|mYm>if6S!xMCD98wFX!N zVIiT0+nC;S-4@)~}iF+^N?6)ptZAHt*QmN{X-d$Agvik>&~R9LyZ0q+~pG z15c`q^)fDfA{DDg3S^e963F70-t2=cD&+VN^5HgSd<#AOe7%0SSV0am8xH2v|vh%_#AqRb96f#sLT3hzOF^&_4FwZ zxXK=Iv^BG+Z!d9emG&IA>`p&(jpYgOFUw^ARm(WH?i=#ue(f0sQ>{8$oDswozn}L4{`C?mJTY-!zI77s2Ez+n}IvvWe$EXXq~YnEcA+KC${eRXNtPvZ-RT(5@Dim z!YB;$VX`M>J!1@G4R8luVqrR_itpsflXnJm)AefiSjMr3a*1~LpF~a+ZPlI?gFx0* zBSz*QF!vtPS8b^JveO9eW^vw>k~`Ft^RZlk0$x_eZe13RKtre!D}BvZ7H751%ml&W z9Tb+v^X@n=(Wrvp>uqxwbz3Z-+aQ7LSrQoVd)Y)`4=LSj#kzc^Szg|^iBsR0eaDU+ zQ(tehaaESVYXhG(#0i-OZnOMv5kcASvG{#N;@XFMgr^LHJwgC}>*{dJvpeSg{>=#= z_}@-6f+I00tk6H3@UgCBcee#$Y& z@yNT`hVjeKQ4`88zx#uWx;6pX{P(er>~Ik#cNH&!6`jfqucB6(d#HC%$31O{iEGPb zF5GkVNU@${jBCD8gljqj=R*Bnf>=uk6-QB&2`W+a`X2N=LhcAeRyH*tY*bZGoH$Vf zd>xl~#rNM4$9q*{JEben(%5U{3*@h;_i#@y^c9<~R-3Bfq>8ys*PI zYO%#q0`NQ@K=o|H-QLXRwwbAho6rnIzRj)|sRo_6(BB4h5*IImH_a}eK5Oj1GHWO2 z?ESg7xBLq^%OLNd(&|(s4h)Wk7!T&}2%J>mCl}`QkHIE?2+;!ecyQ;m0Fl?B+%cx3 z6k^@B{`mxN%Hi&?34)0`fipG1%Nj`k4O2kqInd&OVypocmdDlARRTEuYTAaMwg<^m zil6`ah2iDiHqWqrWtl-x1YiU>bsmYUs^2Gi++#XM!BWC_B!muXCGf%44LS4hVC`0s zxC^bGJJ10O{a!$cB&j^`c=z0E3j=qEM-zJh{+9D73PrE(8PRD<}`+S*DgMQ;lD zFHa4FAlU0uEpdTuN*_zg#Zr;Qi&Y%DDuEk~eb+I|GUykv$s`lj(0-LZ6w5abVDi zv~omj!wQlj{g=%Z<~q$u%RNMK<{wZM10i8~D z+ho_KXIJh;K(el`4x%e^PlAgrfuv6J$nXkUUs>+}a~3r@;A&NVD?)_|r5$^dL9~Fse;iRLDue6^hzkYoLrV=I=KrTs4 zk;QAEE_|w1+%M;*v92yBAcG^*`3!4NIlT2PXNo00f$kI&$lyU>?qunf4YAqXE4((8 z8;66xKUVN`x@N!y_eK5}=wsV2U5v01PCaZD1lJ^B5lP^x!@-(WQCufcfX2QGAV;*a$9haSaYi8$;9(tD2tPT| z->=J$S(8cfP*`93N4)>)f&?T+GBb^m!i8HajD)FrJpvAj{+cR#50MjH9?2~CJC-h37UU>d&?qr590z> zyz6fY{lv=0gJ48|aa!78C~WLuXNPTp9N%$GrsI$L1B-hF?5R2=91V(0lfLkezIFdc zJ#YC2842Wm?%uuInSVnkJzMc>z=rN?%r!_l0Um-@$Lml7cF7A6SrrxF5Ziwvo}M6; z49_rD9(xIU@72)I5DM$O(tRH0wteNYLPFCD;FM%b_hQ+51@fRQfbj@|KfFI zMZs?w@4wj$=H61ZI#yK&Y3XO7#UW1tYe4cX&w4ks$bCsU zAKK|8G6~f+PJ|;$)EWB^>)r}?Ic8LNOh^be(LjW}7(n}a#a)c?wrFmF4Wkhwb_c&S zQDkOd$()I9Zur)BDzR$P6Y7^1@ytDGWd?KU+$e!l4P;%T3id#X+MvkFyi^3bl>geQ zWBuV&Rp8_S;dx9Hbo~3hhQW7)NASx-28|K~r%2{==5wsSxk;}7PYx3L0PJ;e5$v~^ zJ95jqVkch+ZV{06s>7aMo(xnDL-`$we^A#DqcN3eDo;?A*pLdaQ`Cn7pUAkBBZLyY z`C)bCy(XnD!Qk>`&_Y1;p)SGhM*&^xDN`hVXcOf4=O6#FAJi9omIhq(L>+CY?))2~ zeyg-^o_(*Gwh}OR2GjgAfEl9U$*srunY#ru0vj2Qckeq)V-{~zjpWAU?R`;o_!SsZ>o@JQeE@Qee~f}rMU{A{T4 z2}f$Yn_>A}x6OUBXXx9qSuM!o5o8gq3>Cd4gP%brLdyT587k{M6tz&q{C3E%Se6RZ z+fcq!n`_Y^RJgSikX%rYeVHgK=0j~QI3*G2SU9hg)b0$QI8J{o6t-pE4v;PjakPu6xpAux?Zl0L{*~QT?gz{P-m{vVpy*AR^8&lNg9pRv zn_x<)0;VD3Yb<lClSpwN+Sp_q%xS#|h8i5SHCfXg-g2{aP^eK!9)(6!; zrxOa8)>seo{}_3os}1r2fcg1RWP=ZSQ!AvwFo}6mj4g8E33!=2qTf<2&_zOpy_=RN z9Q@@0Z1s-1ngUlx55$n^M_V{T)x8GtvyPvbi8KcFLH#8ERkDAC0)CtOI)A{x5&la> z{yigO)Y7pmnU(Kf%%P$T#;B_5Ght(9^FEk4y5B!cXKuO|0`KraWpJu`n>a+&J3PHr z{%bO*sE9NVY`(*%v~_ei;O3`JokCVk*LnaJVMqF0V-9x5@1NAEpG|6_@IMlyfsrq% zxO@9g)ypybepGCgav+lYs*G6}aG@B&2N)3Ws>5!fNkEz;#6T>WmKD$(Du#ez3WCDx zBP%Dy)Fg>|ZgjcR?NGHs8c9uzfXU3dDNSvc_nJ{4QW86N`4!a>Aw7~p$`aqj@30-2 zZU;ezcdRmB13ZSFSdyZR?1R^B_$hx&Mb7zgg7p}F^LCz{MZHcMC~=gy{5IhDc_vWU z9jmUQUknbr4kdDC3-$W+8(Sv&N}+uSkt6)kQT@{i~As~xzG2-K77QQ_+`tu57 z*!y-s{D<(P{rq$-Ai8=*hVB%*a8O_!(_sH|t4=x4A}BXmg_L=BL?je_JHc9v3Qhxv zf-ue<0os;%BwNuYGqKTG4e%VwYYX^+2O46*K|z4Kq!AA@dQ#4v!iT(_c~`ClJ3FAK zDM3eIR=9ojm~-m_m}vb9q5~B0!a}5NX7m35PPxb{ykf5VDAL40+B2;XiBu~)4l*O+ z*)tHI5%_={fHOjQHce|{+7O|mZHd73jdT_}4%p*=pqohG>>zJ?4){k%2%^xy=d4zonPLqcVf2C1knWl@_o=f2DEoAHunVuAqQI2(KDAtg#Ak} zr5k`%6+G}s-dOW5Lke=Pjmbu?y4MW!C^=Yw&@S)@?dnowPXS0b%L?=$F92v?Wod_Q zy^lYSOS-OjQQCa8T35nX+x$cZ@#4GzNFpWj&1gLBRq7zI6#t3VRhE&r9xKy=Nd$S$ zwf>n9&Z9^K9|D##@!1gR+mD%5mfuux8E#2tXd$AA|0{j-?nuC{k5Q_{3fW(^xxwn7 z*{VfM`^Omth;>xX2pZCNjK6swA|--GenH@9hg2}0R3<>j_y+-Tqj)+}fdACp?ZKdofOHNRMfU8%=Q{b%K z@e|e!Pxed+b|em9gkkT;GANP&TkiwZwqIZeh~QD}V+sOsTQSfcXJusR%V4V?8LOQy z?@zQl1HzLbX-QK1OoZ*j*>wS=X{Z*sHHa3~fC!KW?E2WBgw9=_MKqDZ-YK9pFY4;n zP81OZq>FirkjPQ>7>>zkP`*@ zPF46FZG!9nfJ+|%X7kjE7su1F?) zW^M!K7LLW;gVmrDTF~Qhn05%wi^|rpbcY^wac6a?HTn`$}wcUY@Z-jZxG%1s^2S|hJM11i0ZlQ_v zwYH;`q5=oK!X_l-H8;Kol$q76c)COFPSoUYn4x*brz>3Ag>_4=#g_h2FT{3Xof|X#tjI>yA2{;| z*3t~H-s=6`9gYw|Peb_cFGB=91+vP=^6vJHak9>-LX(dr%vlmEMCb{{5&WA~#j|C^ z)sv`4zzX2rdID4?Bpmw6tE+C%OFoEhOI#VZG=CegE~f*4V5?keoYPsr_MQp2vFs`V z^t=Nf=_9%-=j}oKOp(qoJ44%m8G_GLK`wj$Y69SXN7xULlw|^?2C6_{j#TUS{dXLfZ&*=RzeDKwC8#G<*|tUcltv!9xh`VW7=`&t;6h zfLYDBF0YC*eH^r(+;~_38y~WnMo_##VJf_+%(|z{kJi_-B#&;Ew5tuI`}FnzmywID zt~RAEA)A$@k6V|yiH(+GDm@6l0-32ZUk>#if~i9fZPgDd5)cy6*8`?sjeSw{^Bi$h zE8{43r;W}JzQn1SBvRB2*sw!8z?wlhCW4rN$QUy}&!ToiWP5S4c{h=sb9|1j>r+{P zt^)!8;^}WZl0LM)tqSna^Y0&tgjQh}ZlS!ndaDRCZ=N1(7yy-S=U@R6xB{#Y5-N3@ zpmWvTacDp)oqrd3Mx&VR*AZsYw9Y;YeC|ajZSdgx9^#(-IZ>075ZpdP>vxBWqwD zFC~xAcZk!+++(G>`fB*B_~%BhkLI^wTb(xFyaTm7KTfE`7&H9wLCrWGVDKZ9d>3o> z2l9O;^#W{BKuMSfFw0kgT!b8ez5~^Pwd=d;%qv*&9> zl-QA@-#=VA+isNOF-5BOgpCVyo5?(%(W+>b0{%HLB2#8-vt~Jvz(-9mJCd*v9LlRd z+!r1|RV~S8ndfS~ghj!k)h_EXG6d)EU$i1WJ`};RtMh56(4P*h^eSusW1z+cfI6{5 zT!15_fv2J53K{*x>PTOOHxx9a5`3mVqWB6Xo7y|T#Q$pF*js|>SvqlTg$Rg+(p!=P zbr0l3L4IBfdxHa5fC%XG0~>wHlpVY{i)psJy|n?6c|Up#u|pC?x0#9KzslFtRj9w3 zf)3sTculAY%CRbbZ;|08)uM{mSV_ z^P~Dzdr^^jzmPc6-9x$U!3vWmQ|Z|Wt_YCORls#%XwV;U66yZ=6P8d$a%Wy1%94+j ze7$;sws(X+hdM;QJT{Mjy$yB&lG{W5KRA|r;H#?3q58;fB+%~z^96zugS_jt5Qn;h7f{3&XiAj0$VAsfLbN);MXSE*516IQ3C3dOG#Qvip%0O z@XmfO;C1fcd+IEhA4REB3KU=2jjm3>bQO9x zBR5!0M%@vkub#UVqvl$c#4@)D!&YXiWWZ;Xz@Y6lUw*YV1j$Fdn@iSKmxK$;*WAB- zxc><-A%B*%JEgap46b6guPO6pF36XI#0Ho2>usA+W)Im93SHXRyK$&0;mhS7VO3pY5}0I4!tj|UKg-#18K}`%?rE_ zJ3BZeeI!kiH@2+)bL$=2svZDaAQH~b(L)|wtoDaXhUbL($`G2@DN?97a0%twTS|f6 z)YUiPgv5}_+5s|Ubrv!!uhcOpYiN9DiUTk^M6|`ryGKk7;MAeqzJK1nLfB)B39yc2jnU*eb` zw0Bt9+8zU*V?fYh<_YrEXg@s~G;-K)5t-|^vIs=p5x$Pr)+kp2LrX|=Bp~0bo&pb6 z@t$5n2vAI@Qr_&2QFBUNMs@*_dzi-LY*pAjf7CMn|Ddf#A-jx9uMj492+^B-pc?}f zhM}f!Sa3SpVhWslX47>hoza~DyiHxCpdfOPjnK+4X_7!L%h!vxP>W;oh=(>u24r0T z(kPN-F1U0FeMs$lQ*K6^KYgCDfD^^QqJ#@7D^-HtNY$3Zr|9%ols^JL9*MY_5144^RRA$4t)x+b>D3?A(3Zw?y3!`DRPlm)>&kym$$WDW(@ z1L(eD0ad=nn8kLLCFFy_UO1HiM3-dbF`f{c0J8bY-R*mRpD%|XklW0>L%uj%L>5G8 z=Acx75tKvq1Ob$PyUV74yoDx`Q;5L zqd;0aREdSM5vq{;P`!zvAnSPK%^Y%47#*d7Gwx7RtpP%lu37*PO0V^xQVpX2P_R=2 zNe`HPY2{i4)i*o*AU#9Gu(SIcW}pDIGhY+bI^b`(h;}Quc?#9Y90Ew0BJWEH^SUq| zITx$HL>jrxj7c0EqT=5PCq2Ax(Itj6TVn;=4bG|GyJXv$+DE+WX_6v>>-{8Qkc z_MWu9Sfb8+rF%d1KOKb=8SoR9WcyzbMDW$5t6Sef`w{$$0wvs8BTyR=Y1h+<KJhL09GXFP(D@XT`3Rszg3EC?IZkj+X60b0Tm0lV8e2nSVJ!AmmxZbT=8DQu<RwCJiU4-S-6kG4N(>{D#UfFP0gc7t-9BjK_nxwXOPpwc2xn>8e7H^!5ZhB`^LrV; ze~}@x^&PdyYqz5i9IzYB&~5^Bx;sv-JbVsMnVi-0#!tuCh4}4KNg*&Q$dpx%05ch1 z0-Zl0POO-Utcjxi=}(kp-y#^zz*AylkP%)!_k24-Iss=7!Zbh!lD~HII_yx4$aT?R z)X@J$5jDlbc>%nD`|ZEbTi}yE(`f@WSMr}FFT2QTpU3I2;E^gUc9PX~QTwouGkQ_i zvOi{L2SKKQGDi4$wHwv1)c)U%@hyGyhiPiPlMYGmA9o*6=+J8-9u7}Z(S}0j7w(hM zF8CXvdm->WpwL;di6`_oGrBra??3diL+}4pyDvjO-Zs!hP0ssvK&w1ivlr3^q1O$$ zCt(y(;0AN9n>*Wf$El}A7`UWog&b?BSLC{Inm)QuY381*i4D!V0@mWcWvdEil`&H=WhO?gm||^7BPSVsNGAfDd!7yuUjP z;2LR+5L82`c9~ZPn{-FFh3lMMfOp^5+? za)5H+=W0PZyHE@S$a4@i9EfMfjzHA|QK)D$e4JA#Hw*Va13Nk3Tc&Z(ZlKKAfnDqx zwGqJ^u|E{Ngtk_=P4nJe1t#)EAH!6Z`aM0z?;}+!6lR>_JV?Pv(ox~C93F&p#m3;J zkSD4|66gn@+kABW(we|ag2UQV#$vvdn#ru2AI{XG{=Q6TH=lJt$3Mt{r5x+FRayEO zTC;#TYgPtvaEJd&2Lj`GfF@7_n^!fy`EHXV6~>k6tplvlq>TcDPO0+~%p4iyUllz#ji8#ZACX+0c*alc>y8|Fk>oE>#^CD|K+nFkV{Ks@r%Z2AUknD3yi-QNBIY zia_nJ2&K^Cj6j5fIGh13|3w`r7;smbK~(GYB*!0k!i^nivUt8Z`dVUxI=}G)wC$4k zvIL}`Te+`R_5exi*yM0M|6{kx!d4LZAz2?dbr8?m6%n{VZtO)II~~TuZZ==dZRkUb zB`&9cs|q;l{$CudP(KJ}=e87I<&Q^e13Y>Dh=7VGQY#KM$M=vtP(TM`o@gzAm;v3E zhz5I=w@&43mZJA>-zlaQ9F~QqR7#s;lfkL(Ylz9WVgtU@U8MO)wUXAO>w-!7(7AZX zrX$PF5f#SbE8XCd4vyszRFj)FVQFc99oaCws?}wc3A=*y4j&!{r-y`=iox~rxlv&N zP9`~<+wrYKzh=BPT_cwpYMPS**Pt##Z{(A*>-PS~a6&R@G({t%Z9Ct5>8M=lh0-LK zof!6;Hmu)NgGS`h?)bNe9TFE;6hl6^9(8TD2!#KW9)(jZTIK+(&w^lk_v*4D>Hv>} zNcRa;hccjeG6zW$%F1i*aGUaIM2{QbY06MaPcB`oTHECX>{$-%!1&TR=z{ja8)9#l z(t#ubW_u0aSAjcY(y_F`pKbh(>#a?@-7M609*e<#mHdZ9Ir#ubgNEtZO_H^v9-kXW zJ7oWn(3}%t7?<_xnI5iOHzf7NL+%UOKkxo+=P}ja#TwMEl@#Ze{ZgeIp~=eKb*JkI z;R$(WsxxqAfkK<{tWw|872n~bOw^X}>g*$Mczl1;Co%h4yV?vMcDk?JVl2;yI$N62 zzQHgNE9PHZrBw;m*4Anp8}sSv>Vlr=O@nhPSQWx&jgKXS3+;NiK3+Ti;NvwwAP4+b z#>{Z2`x0^edQ141VkV_EYTPDKd#j*wJT;TJ=2J9NXiwOSz~$!%6Ugo}KMP~uVkv_M zB&N#WU!6XnUNd>yu<&->p$%inS(Os5nra4)+tadwp7|ajg*|I?{7p9|ZVsXA zuKXJsI^EQdT^IC;Jh8lmr^&zHXaBY>d&n&X+7PZcJ>?8m6%rC^1|gkEf;_bSBVopo zaZz#cNObd%kPs5;D1k!@)Q&$1+q8|V25oFaA#x?2p&&td0{CFMn8ccEd>ZhNR}k?oI1%%A;#PM_cgZ4(~$+ExdhoUc`Qw8W` zAXFejA=h+>aYl;7V$jwPAT1AxL<*bDg%0jZdDqW}4jnTsmocARw=ZT_aLt-;b*K0f z7~;-ae&?BI!w-_HJNNHqxq}tQ8vvhJBkvI1-r73u)H77IwnCkXsaifzFgpX{|KIze z(E|>#5~S;ikvk3wLgzey@Rsw@qeli_2TO`v$J#qfU2USGqf_i6D@pM@QE|iu>lhtVq1e@88F}Bu^$l8K7>-E*(wahRv*DP`Ix}DuA9s zJF538V)Mc41|#0f9`;wpEFA%<^#AtrE{Wn&8$BD=w5*%*2R}%z2l+FEfixWCxm|;v z=qLvdvUn)8KOC&DuXpq6Yk77`ClaKCPd}OVyoRlPOcNSE^2tUfCj2Oe0oWqao^2)w zif(Nnhmm9v1Tr!qA*+y!_l}@C3_}+qsnLh7LlR&>8|7>nl2(~YSR1shjn*2*3zTJabCX#JBzH8~~ z>gm-%hRX*USSPd_QP{@;CBe?lj;fd2d4AcK1*~xeWd!=}!=QMPs^-ikZpsHl?~o}J z4B;oqPS*Sqb^c?%ey+ZQm2128x~~10y=9+w8@24pw>f$v)SJt{S}OoMbv={N`MAQH z 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 Xj)KFRk%tcS*!S&Hkd5AX{QUm`@_{ZF literal 0 HcmV?d00001