From a94ba3321a2c5b38dd2f692e729e5a11501d5e08 Mon Sep 17 00:00:00 2001 From: volkovim Date: Thu, 30 Apr 2026 16:20:23 +0300 Subject: [PATCH] [1] trask1 --- volkovim/__init__.py | 0 volkovim/docs/data/Figure_1.png | Bin 0 -> 21331 bytes volkovim/docs/data/Figure_2.png | Bin 0 -> 22010 bytes volkovim/docs/data/Figure_3.png | Bin 0 -> 20240 bytes volkovim/docs/data/results.csv | 91 ++++++++++++++++++++++++ volkovim/docs/report_1.docx | Bin 0 -> 85895 bytes volkovim/task1/__init__.py | 0 volkovim/task1/histograms.py | 45 ++++++++++++ volkovim/task1/main.py | 66 +++++++++++++++++ volkovim/task1/structures/BinaryTree.py | 83 +++++++++++++++++++++ volkovim/task1/structures/HashTable.py | 51 +++++++++++++ volkovim/task1/structures/LinkedList.py | 60 ++++++++++++++++ volkovim/task1/structures/__init__.py | 0 volkovim/task1/util/__init__.py | 0 volkovim/task1/util/randomNames.py | 44 ++++++++++++ volkovim/task1/util/timeTester.py | 30 ++++++++ 16 files changed, 470 insertions(+) create mode 100644 volkovim/__init__.py create mode 100644 volkovim/docs/data/Figure_1.png create mode 100644 volkovim/docs/data/Figure_2.png create mode 100644 volkovim/docs/data/Figure_3.png create mode 100644 volkovim/docs/data/results.csv create mode 100644 volkovim/docs/report_1.docx create mode 100644 volkovim/task1/__init__.py create mode 100644 volkovim/task1/histograms.py create mode 100644 volkovim/task1/main.py create mode 100644 volkovim/task1/structures/BinaryTree.py create mode 100644 volkovim/task1/structures/HashTable.py create mode 100644 volkovim/task1/structures/LinkedList.py create mode 100644 volkovim/task1/structures/__init__.py create mode 100644 volkovim/task1/util/__init__.py create mode 100644 volkovim/task1/util/randomNames.py create mode 100644 volkovim/task1/util/timeTester.py diff --git a/volkovim/__init__.py b/volkovim/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/volkovim/docs/data/Figure_1.png b/volkovim/docs/data/Figure_1.png new file mode 100644 index 0000000000000000000000000000000000000000..9ad574f123082bd7f87836503e463ec8cd912448 GIT binary patch literal 21331 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 literal 0 HcmV?d00001 diff --git a/volkovim/docs/data/Figure_2.png b/volkovim/docs/data/Figure_2.png new file mode 100644 index 0000000000000000000000000000000000000000..a1d9f6590e4039d5477d1c1135397f2c4de4eb8d GIT binary patch literal 22010 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 literal 0 HcmV?d00001 diff --git a/volkovim/docs/data/Figure_3.png b/volkovim/docs/data/Figure_3.png new file mode 100644 index 0000000000000000000000000000000000000000..db5b0dfee1a0f1a3a8411761f8ae6f5e63229636 GIT binary patch literal 20240 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 LU6}%Dv!MS2LD|3A literal 0 HcmV?d00001 diff --git a/volkovim/docs/data/results.csv b/volkovim/docs/data/results.csv new file mode 100644 index 0000000..c909858 --- /dev/null +++ b/volkovim/docs/data/results.csv @@ -0,0 +1,91 @@ +Structure,Order,Operation,Time +LinkedList,random,insert,0.02272110000012617 +LinkedList,random,find,0.00020389999917824753 +LinkedList,random,delete,0.00012740000056510326 +LinkedList,random,insert,0.022962700000789482 +LinkedList,random,find,0.00019210000027669594 +LinkedList,random,delete,0.00013299999955052044 +LinkedList,random,insert,0.023047099999530474 +LinkedList,random,find,0.000189200000022538 +LinkedList,random,delete,0.00013699999908567406 +LinkedList,random,insert,0.0228056000014476 +LinkedList,random,find,0.00019530000099621248 +LinkedList,random,delete,0.0001320000010309741 +LinkedList,random,insert,0.022504299999127397 +LinkedList,random,find,0.0001827000014600344 +LinkedList,random,delete,0.00012650000098801684 +HashTable,random,insert,0.006552200000442099 +HashTable,random,find,6.84000006003771e-05 +HashTable,random,delete,4.3999998524668626e-05 +HashTable,random,insert,0.006576800000402727 +HashTable,random,find,6.790000043110922e-05 +HashTable,random,delete,4.459999945538584e-05 +HashTable,random,insert,0.006557500000781147 +HashTable,random,find,6.779999966965988e-05 +HashTable,random,delete,4.2499999835854396e-05 +HashTable,random,insert,0.006657900001300732 +HashTable,random,find,6.579999899258837e-05 +HashTable,random,delete,3.990000004705507e-05 +HashTable,random,insert,0.0066283999985898845 +HashTable,random,find,6.589999975403771e-05 +HashTable,random,delete,4.270000135875307e-05 +BST,random,insert,0.005961099999694852 +BST,random,find,5.790000068373047e-05 +BST,random,delete,5.5900000006658956e-05 +BST,random,insert,0.005897299999560346 +BST,random,find,5.229999987932388e-05 +BST,random,delete,5.080000119050965e-05 +BST,random,insert,0.005889399999432499 +BST,random,find,5.32000012753997e-05 +BST,random,delete,4.749999970954377e-05 +BST,random,insert,0.006325000000288128 +BST,random,find,5.310000051395036e-05 +BST,random,delete,5.1900000471505336e-05 +BST,random,insert,0.00589380000019446 +BST,random,find,5.149999924469739e-05 +BST,random,delete,5.140000030223746e-05 +LinkedList,sorted,insert,0.021485899998879177 +LinkedList,sorted,find,0.0001861000000644708 +LinkedList,sorted,delete,0.00012830000014218967 +LinkedList,sorted,insert,0.020360300000902498 +LinkedList,sorted,find,0.00017280000065511558 +LinkedList,sorted,delete,0.00010759999895526562 +LinkedList,sorted,insert,0.02137589999983902 +LinkedList,sorted,find,0.00017079999997804407 +LinkedList,sorted,delete,8.949999937613029e-05 +LinkedList,sorted,insert,0.019899599999916973 +LinkedList,sorted,find,0.0001748000013321871 +LinkedList,sorted,delete,0.00011620000077527948 +LinkedList,sorted,insert,0.019986600000265753 +LinkedList,sorted,find,0.0001812999998946907 +LinkedList,sorted,delete,0.00011749999976018444 +HashTable,sorted,insert,0.005906399999730638 +HashTable,sorted,find,6.240000038815197e-05 +HashTable,sorted,delete,3.930000093532726e-05 +HashTable,sorted,insert,0.005912500000704313 +HashTable,sorted,find,6.050000047252979e-05 +HashTable,sorted,delete,3.8800000766059384e-05 +HashTable,sorted,insert,0.005913900000450667 +HashTable,sorted,find,6.050000047252979e-05 +HashTable,sorted,delete,3.96999985241564e-05 +HashTable,sorted,insert,0.005919999999605352 +HashTable,sorted,find,6.190000021888409e-05 +HashTable,sorted,delete,3.749999996216502e-05 +HashTable,sorted,insert,0.005881000000954373 +HashTable,sorted,find,6.089999988034833e-05 +HashTable,sorted,delete,3.7900001188972965e-05 +BST,sorted,insert,0.033791699999710545 +BST,sorted,find,0.000340900000082911 +BST,sorted,delete,0.00026059999981953297 +BST,sorted,insert,0.03474140000071202 +BST,sorted,find,0.0003206999990652548 +BST,sorted,delete,0.0002024000004894333 +BST,sorted,insert,0.03431230000023788 +BST,sorted,find,0.0003130000004603062 +BST,sorted,delete,0.00025209999876096845 +BST,sorted,insert,0.03444429999944987 +BST,sorted,find,0.0003271999994467478 +BST,sorted,delete,0.00017320000006293412 +BST,sorted,insert,0.03425440000137314 +BST,sorted,find,0.0003316999991511693 +BST,sorted,delete,0.00022639999951934442 diff --git a/volkovim/docs/report_1.docx b/volkovim/docs/report_1.docx new file mode 100644 index 0000000000000000000000000000000000000000..08a385ed117e993f8520c5572d3751a3c4f1c7b0 GIT binary patch literal 85895 zcmeFZ1yoi4zAw4}2?-Ga=@JB_8<7+h>5%U3?rs6;5|BlQba$snNwesdZjjFROr$z^lKrwsJ7Ea?nOPpG z(3q1@(%v>3`s{p(WA@9QG_mI|*!^Car&F1u7;rST5=l-x5e_uN7H10`X_h6tK<7XU zaMUULq*|)_Ls?tC`+~X9SK!P|=Bqk(`wu>9Og7@Cw_WRWMhEnKR-(!IVrMfa-}7Qb zQ%<&$NflgVb!9q|wJ?5;+2%_+Eo}nC}|T-oirq zgWkrJI-U*ICHv2Xz3}WoTODM9zAXzVb9F;@bCXA(Er9&`A=`XD5f10D7w&r|E>Q>v)oKOewH+| z{_rgRG%||1m?ZY>l-cCnE#K4>yylkf$Ntf=*kL#OWD&=uubPL1@roEB&5tK8wK~-ZXTgA!qZ(i)_iL9^*Gf{PS)680 zUY#-!TCgy`OpewoLM1$G8rgQsYR&Bm4q$kk@i>_I+QUfWncCe($U1=_*8zoUmG-hV zQL^USKLD=&$NKns&gZ~N0D%y{hl5~&i{fl;XTWS=t?y_F(Ch)mcKN3xW|iU(5Pk_h zCDhSzRu)U(RgEn`nxyjK)&DX0%U>6tA(##;NA!spEQZ`ipJpDx;D`Y(hYV?RE6CNE z#z~`Ge*-U1`x|qjJ5zOn!iW5-D7NtI_gXOtLB`tq#|sD2vrLW_LD9e6uW=hf=)Ug3 zZUcXl>?sS>o9~O`(uFXV>ejayA1Dv*<{dZsx85e5OP>*XHILOaf9ue68CejMT`a9y zc|BDK%XI6vQkSdV8-FKwoMc$uydF~xv;i~rA8*mbJ*UwV{#ShP)=#&8*zxocG6WcRp0o`3<3*?s0(=0 zA*;C=tX-7*ij0O~0^7cv#hHXhwHYi^XE^xf>Lqvi#NF ziO2jIinTgQ5GT`$ur7=&JU?i{aOEl5EMRt;;qXpSTBLmYJoXdfm2Kdc@9f)cVmcyk zz7X1GaVj%Ql9h70OoSB2<6_{GxK(W+gpfHnPms3D**NgObrC$_Z7<{AaBKE_tq@GJ zl>BQ%Stea1fUkj+#aT_shtsgJ<$O7MBWNNcl%iwht?rXt6vQQFBb*D0ptDz|$ZGQG z`gF)sg>O!Xj1P&H%;&Up0w#jKy;2?H;0SDAAgIzy!g*IXbseOBUWPn*;nM2&w3{+Q z4oRxE^Hq4meAOE(kE6c5XlnSby{BFs3z1vywx6x5GaLL(ohMCau}-5sg*|s`88P3O zzS82j73Xi5(xB8%zJt9uCh`n9;IApmSeA9;zf$mbj;MmUJ%t5Aq;Kbl{kR^ymyA8jBnfCeb{VS2lCl;=n(v`Z%Q<0$O+b$cb#|gU*vl%rD(!dB0X<#Fmg*^ zyhK{#9<^hE=^5V5i$YdMH<${SlEf-h#vbg0jsOEHM8lZiV-nB_6+@^oNfV29LuOYq;$3hq!OK=|6Me~)hq zPBhwTq!Y+Ny!f@Ewjf8wSyOx6oANUF_o)_o$8r^dU|2qW z=$3+M;&3jXIZEK8BK1t~;LXyH-Ku5GZ0MBq!ojy|dV)XbCajGqAh|XbqmwZ0R{9Oz;?5GSd?MaO&{Wnk^3vN$gEf z_NeNs0Gh%>51kLijZYC;cPicyK{HV@xtMt2tzRe!Q#n9i@=kZH(ow5&Er{e}Xz-GS zE29jc+pTHlF^NWQyC}IhaaY+h3iN-xp~Fh*vsh4dgo^vdyIsZBoU#f24hc-a$~7To zFEQb=%2S8hZj5;pK19!}PUk3`JLw5 zB;4ORwm!mq(rCURTXf(x>AasxBPfJLcHgc%)Xv&HI9E9umy{J)`a50i3h?x93Ayio33In3+ns(++zgZ^Kvb;z)beD=+vJ7W?71kXSv+xCaL6 zq7GRce&QIOlEjVkRp1d6$nHHp_OMIlC1ntPugn2+wPE+yKnoP5$E*xJ(mWmhCl zMD>c}xU1^L3u$?w)`6Q9L_sT}CPcw732ohgFVa{Z-=EJ_LHCb3pPUX0%sLmJ>2_vH zpXZIaZ{BejA}}g%(7pEWT0UPD(vn_{?jd@&rCuo{txQ_QK#)TbUx`wa|Gq~lf3-Ch zFI(q?kB5dG1qrd^&pstvF{Hr1ave+Z@JmTKVgH6j`fAMtQmc&CyFQdLhRetD2bRa| zhz^vMf?CUqG#8uZs0B^Er5D>ft5WA%EMq6nxu0xz^j@CejJNvCI z`xeTH!+SV&A8ITgpJdb$M)ZVU%xzd}m>L66FR{(15HuN4?)`wum*n|Y42GAXLg z^vZD2{)%l>`~L1zd5%h>BP$3#n}d0!by|KeWmzP_Cx1lRM{xOtz9d|wSMgHDm}KL( z5qKNkvUBa>M+Qdw-_8%Hr=6w`!xN{1iN#vv^xeY|v)y7psf&MTNAL69Q+sQGkOo(~ z*RdUe9h^;g#GSFWeHvT*C$OG z%dhjUF<`gPwB7wpQLSJ@h8=nlBLnb}IDsu4heg!7zLM|zo1!aE7Al@SuTK_(9c^RI z)#F903TCr+lX=F!{a_zrWk#%BvRSRBx8xnST=71RzW{|&M)SN~tpG+Zd?k&wVjK3G zb6jcB7QOWQGZ#-$>wN>+sV{hn??!4IMBbO+IKh2$Z-+H-K}_FTXwfrSE)d#i%rq(L zyChkp<`L1cB_=bvSH*G3G~3sbL$6rq6i?NnG`6?nvg&C2-uRc~7zQdQ_HGjw7FIEc z$yz4o7qSmR-xU!P2n+KE@t-iXR% z@c^OQ0vFaC7gEp-G7HacP2;K%VXB4Yun)J_IVZnP&UlE4~ zq*Z%YV74J0lrVTz-e@4!=vbwda1J6zH*!NHtAKkGBn z>7wH}Xl~k1WjU#wVi~KxJL!h0nt0%!=#r6kE2u0i)ET)_0n{o747&<3i1z)Eq zc7U`N7LMlom!ZWzT_xp=&j!XC#CEV#Ne0+LzTlL7W)H3=*DMKNzaYPqIIg+IEy9I1 z5tOJS_1ks6Q7LU)Y;!YQdmnYO;Og`TrW&_gBAQ%mG>AOZ|3xX>&gO@>`~l=O389EdmsgoiKm3NvEKF8i@pL5`b~J=C-kAqUk&y?VQGFRQ6KcU=sY~cFNr89F@6&NC&xe z?8)Fdb~oSSWIRb$<>43#1G%TUTPyIKC#OLSe!-8Vj zD=99XKTqL<2nNn=WWPVlxpq7+)FVGjXP7dKB*5zLp)2*tQS)w>ey*UkI5GXJo;clh zZLlyPMM}X(hu%ct-E4zh`pr6bYk0(;L26{~pJutL+k%;NX4IeDu1ZTSqjaEjclL=j zuG}xOYAju6DU8F7PHBP8SWaG+zY7tRpPXs(u0*Y(>+suo9a#M?_pa@HZZ4<-`P#WN z!n0BhQswunL;MWmn&Upi?P&C6D1Lx$9Y$%ibNDLcokViq@y=}1Ibqp~77rC;1-UM@ ziaa83>Uy-RQe41ee+D`vVM65`X(gojJO?AX_V^=*GZ(006w_#fZ9RT5b?S3Om=32V zRQq%P%A&$7?rBOX3h&P)`|vA$Wz~g&>-O_PlA+6l!MLQ)7G4>-`KU&09{Q$G`MQ|; zgwKwGkdhYX-iBL(ybc@cVu~jYhZAy!S9oX@-9c)8SB|J!vrB6yFmT_Zdd+R(6|`b)#2PNjflsir?ELZZ zSb=FCRIMbnRqf?&kP7mFte0#UKc9f3-<-@Pd=e6Vc*WidMGqY#Q;ZPZB_D5E=dXmZ zJsXaubhGGUi*94xH`7_8wVJ8?v)mHqG>0=UE30;=o+>{mEeo-4h{ z>oc0p3^y|HADJ#Drf2uZHB{289WNZfqxVZwhIsC*YR(R-S8bKn2jCRHurY>qCejt67$oJ$MJNzFA-IYf z6OYhf{#bJpn_2mL1Ff!jiSfI^1k9)Zk@BZol~a1bK|lbmXNCjPfBzDIF@sS&+O$j*_DZb<*4_k3-H!*})a z501jdz9sN9B)=RENd;!mkaU)_%+J?J7M*%#p4<4zjZhM9WA8b+ad*KtT%Bjjs6d3o zlS6w*xB@b~M=Od&#=9?Fm{%RpL*7k3mh5(1#;}nLaCf>M{wb^LwEkF{wRRz7WkD_k zHiR$sR@7)*GyLNWQ_y>T$IeWR=~qipYc$cW01Hs@qKc zSe!904c8$5La+iq_@YQLuQPV>8l$l`6OGS%27UH06fRr(@z$W*QuZbV+rS7q4XbD3 zb9|^oFslb2O4fzvthKz2k8L=`i+T0#3*J%n>sq184FrwVmnGa2vJ&bjHxS!{r}r`? z;XR$3u5@AfIh2HU>5%KQ3p&jPzHl-7$@l~V^siqlz)I?;OpuXuY``{B7*WO2nmYvGw zqa4BID5b8$^y5l*4KY#P1v|Y@ZdrefNH@Y@J;%!`;%zH~Dn1zsa1Xe55BMasXf}E! z3a)8gqnmy(4e#u8&v*B--`p29^V6{9=jfS*JU*E>Yw3OY5#5x8EYErWQ!h{44FqRT zV2>I1#vCvtlr(|XvZGP-TRQR&Y+=EyHf4jgIZ>KBs1ifTvNm6hdeh41bfL|A0{dQX zQBLv4p2WM|QOu7&CcA~Fx`iX-L$+HHe6L`OV0GXnWpx+43wH|tW=o)J00(QE`=TZ- zmV2IN{vglcu_?ns>EQwPYeM}1;`B_YFEwOrDTTWoCOLiYmxH5ZLUGM-e^AYKkTVAd8zX}?QxDUH5WGHwu}<4yp&#p< zcaemgT!#1&EhAsSoqq8&TT$0XlUmO0oo%Js`l);|zcD3{>-LOelielI*ss%Qo6HDMcHAfp8{E%~I+o|ZudV}D_T zFg7O|Bp|(e22bIoVJ=z=Q_w4| z+!WH+`>ea|oJEW==44z~mImoYmaD$i1wTC+w6YwuX|3k?=Gcw6?-sKT+^Y9VfZ1d6ma>M1Ap7mG>5q!-oMS4)=s*uPjIVSk ziyon!OU&i;hp5L3Dp-2C5WP(fJ!;qYC;>yh?OOV0my|~AD@D?e7E~_+G7M96xw+cQ z$5SOnQ$qs^>Xp(y_x3WSrL#Me*nDuR9Z+* z$;{h;Fo;(f3%I$?9C;5Nr#-I^es2S&!vFl9vc@cJ zaKhHk{_uVU4WGv7_hbmm$eKav*7Z@(mK+UrF28TdH51FH$Qc_zQdsa%{ZC%)?% z>`C?Pg_+I|SJSJ9!`8{s2sfg+mhMOGAbR`{@|DU;RcTs~yaD?-?ZH(}xT#DAyPo+;u+r+qnKip8dqpj|h zt5u7A2!5@?zps*d%R%X0eHZU}@_6ELF}~RE&+pUeG|^ye$68Hud{I3V%A5z)@FGYy z1}WOw#abB~o6Pmn_;{{(YxrAF2e7}FYzx`pnIrV2amsbd} zX5?fzIVTg&o{{(@+ z`#>OYODIU-FPtNDtKi2QhYu;8w+a(3sXIECqp}XQ)?@BCRP@v z*9_z)4h}Z3T^`+9Wvol6&sZY}q{>hsIg>PfHC153ll0m2lZ z9(}kgj82Ha*|gPvfINag4$itINAP2C1|N*V{}ZOmHlt_rVbhrY4;>%r@NfuN9E zk?^~X@7Mi)GFxw-+kDu8c6K&vt)9qc$aZBpji>FQTWLI0(@o~h*R&feBVY@6+Iyx?l;wTFoIysoUl{oLwLdjOu6$@!vpD+cjvmaIk8C|MLA$jXHCqNi~Z zmu1C5v%7i%ljiPz<3SA?Q(YSpI=)Wp?U{ODb7?f?N43sCjJ;6_W~nhJoEMG~mJs4M z4td;gvZO9caOyP{i33U8%n$oy`D>pwma}t1eu!w)s;T_$PW>so&VkLjn1VOM`%Qla zIjrf82b1^X6Nz8jEG4%Zb%o#-i^tJ%>2`d!znc-td;x*~B4Ng6Ih^i$-3s-EH4&a9 zNR+gu?mO?zz;dLL);oktH0q1&*7~^Y*MG&<++J>^%_=Hut_iQcOwiCPZ8{bYSxo3y zEZ6TYlFJe?y(5X;LAU_tUVom#ZLOs|t6HeUn8acF>EhgLx4e7qzCVtB!^?Qy>tY$X zR`OscKR4B`HP-9C!mwZM{_b|~aJf@V>-UdfY%BGb;$Lk_?Qc&fXSZR6^H+4|KJW=O z_glGXGw(3@4L*e6lz;jzUf-?2UTB!0?Nz_l8{5qZ+djZ)O4zi_`_<^UW7K**f1r_m z|C{XI2652)>);?6G%2M;^&x` z5;JLcCp37(I8!0d8Qo?!Xbo;|54@e*S8x6d)w1gUR4G&{w)nF?z?9y@z38DIPQ>l> z_C1AYhUwu_yYZZp0d`T1V?oQ8>$AN|5?-g|D!wR1K_-mud?tfLfGqnH-x3m71{1 zgF(n)Q`=TtyFgf=QGaZz?Y-I)ZKY1cZ6#T8Q&`$!*MHD@e@E31F4|uFP!jjh{9=Wn z1g-noZVB-V3<9U@50f!)pZx*lk z$9O4(zNGBt^3NqZj4uJ=Xk~MekNI=!Rh;Utom09?*BJo7v|VxH;^! z>P!48o7PmMTA9khraDl9YUswNB9l2uuaGzV%D?!ENJO58Za1DubLNy=!M+L_49m41 zO651cnZ==%ZMz-+la+w%UAo%GH}OXhz6CT8QT&l=1z(jX#IpCTtMK9sdDM2`5_7p8 z8x(4{wlv@0UGL{!(dH<)J<9HxY3U*C%uVx}2@mu-pLd>j;40WsxHO3p6Tj!`Wt7=J z!2Rkve1Ii11MtA*9j5{+`_5#k;1(-l>DN5j3_r`cx{=Y)61R~CM|1bz;oNgeaq9y~ zjp?}P!><+F#?o;ROE(uScP5HUl$h|Vp54rq>As6O9sisJ)hT>j%ImPHlO+;v=P%76 zuB^-1yiSAOr$Ip=G=ueUuxhF8o!opqoDz7#mxV39ujFd2H1WR1?BvEPq3T9+eAM|a z9;Xrh?P?kkPA=0wo=J)(>tm#J#SQ3)&Vsm9AFx%-Nk4>7g>yLVPAMc9I!LADl*tM9 zpOiUleVXJedSwU6CK+pk9ERjjjLi8=YS@Ppp=7{ewa>Xj?bal5vT@P{t~M#19b;5R zg|JSiuR+5($oVeEqR294Zl;!`^9ILtC75Oohk?g#)n=?-p-^c6)?@018}M!*qt4|> zkDDu@v|GD$_u&Y)(`IC=F%m zb_d?_oOQ$7)DyTzdj1fUHhMyWq8Wkkco;d-fNrkrML%!g;<7 znzLr{{N3&Ky!%*_Ps53(&>sr3iVfS}KkLa0jkGx<3ycn{C$%a=nOml$T8donai}>r zv>nJgjMF?P2F7w-k#T1f3iAa#%sQmDaFw(?jy@=(<((I z0YmyPCQT3gYnuHE1Dw_m`I>{E^+vK(Q>&v8LLu-L|MQ&ezlz>T&LOn{jGyj{XEX<> zQuD@fdupXCRHpH6JYT+8H~`h^wm`9PCX9eRhL03Az+yQ4tx}VVZGS9HB&XSU&qS$q znn4O6Mrw^tdko-WE0yWI-5Jl1-CJxGyt!y_+}XX_DXq=?5ZW+Vf3Xs3+2#Z1bh0_3 z(2NHzOc+iAoK4@?R}+=SGDLhXWsK@IzrfLqq@Wz-ma{c48}9&e6oE%fWsKS_b81y4 z%U1NtCFrH>dOuKz*p0#fI~aV3jAGrjjfdz6ki2p?-IS2{j){U4LAi?YWO$6|2|QARs@f8-8AQwOv^3cDl`UxTVY>m-!iBaK9UXP}0Rp zd<_6op#H9cSknP)QdK>0$-V(7_Vfk>^7KGtd~nk_>c}YjH@=TQGA6YW z-# zrZHBtPt?${sUgpqG^POEHBzs&lB&=+55=XA-?gv0ao9l?td`93p`4UkY|=^Dd`sOO zL1ItopQWt~CpB&?TOC(`sBkabe8AqEU{Y_lW>;%MXp;%_RN~0;Z`EJUJflbMe8sa7 zjdE=~_Ul!EyUoni+jsVJpu9f^fS3f1!Dr_=BD$b+3tDSE&f>z_IE!qTPuP21|u9b@sot-8=gLLs?Wlb|Ogb3S1+)#i;`N*on6VEOIaN_Bmz zFc6#cmTqu9umUWu3@89qz=|!8S9{Oa60~Okd)p=*ig_7&x;X+g4UrMxd(OT#OKrYZ z2BkSB(IL3>YG6qe16^iSRU)i8S)w@)iPm{^_<%7h6LVe#)nn#)kCiFC{i(ci&O!H$ z8d+h3(8*c?&LcHf)Q)YI12dV`vFQRVV19G1=Pf}jwUk{f+xfxbVgO%wLowiXE+nTT z@?R9}i_NaKCrb}%@_V5Os4l3U7(`qSv(~VJxFlW{JJ}wv$jukMu8Wh@00(5Vy8TGz z$)R`voFa0{t~EX%0ew;-h|miiQlZctSIF-YOmfg6NAdnkCG3AyyZo;e*8l#juxsHC z!Og9CkZk*N^~KUDZ)#kQR>n#M9k&$<0ZCJDHG>s!>HiF)iVPB_AmT8I0z7mMtO@;a zLe7fQok<#1Tn3e4(9jL8&kryK?|Ny{rhpXKu8C&W7AVweZjefT z&DzUFE%{9caCR}fF?X;EzTnvsKyoD$^#HT3YWGK;1?N(vR&6$sErvZ?W2s)T!>m%) zHdAA{13wEiM)8Nx=lc(Y;_wZnNLU%rZ&P))zb!^GKQOhKCV`cWTAFoOYX+kO{5?V{ zO<;a~D9u{4!9nc!jk1PqzypJ=(d$CpnJUk!wq9H)CK7`?25|Iv5lE}AOl!c)u;Hrs ztibu)SmC!bOi_7ys$75m7Mn&|1%Uou^heV27SHR{Dlbrmdu_f5Vt!LFW$it)O`MAp z`gmHo4$!3yL2q@6JeaQR27+_jYKgbdT5?rXCQCWmn!8A9DcjoEo zOaUt&F0Mz0aKM9Pu?5D6hKXWqxfw3tB`Y7CLfQY(g4L@3*DYAH4s9a%40s<6gq_M- zt}mN*kNcUOt9{MrlwN!6*KZVQHM=oAilERlVXVmPg9fCe8c{8*^5Gz@=UZ~8UE98u~`BE zk2(yJHz(O^4=xU9bveJS0jORP$R&-YU~!Uj#y=tD`=$a{X0zM@P={+4D2$l32JIr1 za)2ajx$1%!`G$n;MD-C@kCArXW3ur$?S3O7Aiix#^Sa8P_xLk#)`7-c_m(_2mh$71 zLbF(>(oeiX>_Y;tUEwJW(0-g;qP*V*2#kN>XJW4fRLsErLEeZLR$es%; zQXN|#OxY1RM)DVOXf>ZK0XK!y%1y(c8J@70X#7VUz4Bnd>tgIj0=UUnXZ#mS{>zpo zOMzEp+oy&LO|JXZFl81yx^GEV4ZW$JXVX-apJhG_OfP!;2`7?_N!F;ht5>&cm*a*& z*s?miE59AsW&b{RQL80!hLcsGoXB{G%uSvJfRoGZ#Du#~S*j#ctrjf3hIRR^h2}<1 zli@azaKbf_HR)8o>6V*g3HMW&^89aTsLZm>RGF?)i-#*73i1=;O_4Js3i*L5sU)uI z!4%%c=uR_r<)v|yWt~T5P*2>u6E{FJP|qq~HNa!`Dr6NZ2fS*;iaFu-O^#p89JcK^N8dpUtlUjc`JqylUs%^qN?K^5~q zy=;*#N`1fwF+%q=k>kAy4vFdty7o=r*905gkT0jcz zC_Wur`=K$}R0l%^W#xZ?-u}bCE*W{)_!j~SMD)=w1e1pc5T6SyXY9AY%p~^&n(;qp zSpNII`k(MV|Nq(*D~3-Jw{^{s!1b>O52Qbyv9dD=GwrlS%j?pRUcIJhZ7^kadpuu1 z6pvY8?@B&bx*8RiuI?1LWoGO~zeJB+XmKju`Xi|xt#mQUr1DMV$x*7edU?h;I_=My z0@YUud=~X~Kg442(i-pkyTjjU9>>A+Zac+RM1Ve50w-`5a0B^UEpUg}93eN$L1eqY zl&WPj>{9`xs0i%b3HSnPV2u?C`NBJOVsO_9IjsB$#<8~lCk~Gm100gd2h$9=r!kt| z;E)plH}Iz7nYFDRtesj=Y=M&mta_ir3D|%B3@0)Mj+Pyq^#6*#$4u6*gwXHao-ft{ zb4>-%w_>0Jt>(v@{*n=2UuGASSB@8}bG!c;;MR<4xLi*v2KA@+ypr#{C(Ri-J?51kr0Z=>xx&gJGrHtg$1H0uny`3mlpY=sRj(JoLc-9OU zm;p?G{2E-Mgwy@`S^gH|AyRs^sywN0EbadePBdKN{wG*+iqo9HKHcbCiZ3*KG) zCa85??ZHxSaL6~$#Axj;Qk}mA1}F73F=M2LHjcReDYw;}32?T>Dk4y&-m5FaP5BPOYp)xZ zLeNp6!Y9KS?_|^j+|MlfL1_>!g2qLl|K3vEOXSTHcz%~d9gjzC?g!120PR|0;nSfq z+U|Rt+MjI)I=g=>8D{Nv}CiJV9~T)?b< zvIE@2+>)W+Xv|GZNWR(Y&F_INmPT~=Ocf#TE&>S59Kc7(#|qdC;xDb%qNulO_R_mp zIuX)En(pq-TLn$)k%S!fW;nZMd;b|}h8~dSUST$0y|%=?>0>16vLRt_;acWMFRG3j z4T=Zd>wqz2G7pxf@cBmP#=9Ul&qQwPRCmi$Ty)x=1&1-Iv)#%eY66Pn(er1F$|V~6 z&!wt!8sH#N1SA5fT^@sfKZk10c|Rj z{(&}u*W^wI3-eNf>}KP%+;qxW5v_lRn$80$Ukd;i|X%0%fPCHH5oaO1Na@hXi`DF31r!E<$W3ND|rU)#{iXFp7@v@!?JrC-h3&!FZ3m}ZoRD` za)_Ss@(~qO=+E_r@j)O*3`SCIz)5duTum%NXaaWpA&haHORAV0KrK9ykW_i*mb`;u zSWmqv2X{I=1vuGf43HA_+QD%6h#V|Bs1EpKBINONh~xKgAf1w{faN7v3rxP(O3V-G zp37sO2EV`(zl{FEtv({b`muB5>z>vy+Dj*fM;&k^E=h%uy%4PjK*@xNfB26()eqLVTQX$ad?$w*1mc@~=le zl1&3~t9SeC;gvy0Ni{1HCi+^^MgkLI`Z9Qh|))3Id2)y%V%wmjo*&ZfziG63T6D1?npj2CN1MxfZ+* zAj_73Bs(p&!QnwbFtHndFjL)cw=qakm;m0KP*WKEJ|N)L=97crSB&yGVVchKj>|dA zz$W^+Z3uSqlo{?YBZ#!(!MFkhW-pM)s;o%$Ub#N6&}SGK#GvGG2dxCV$3VyS3 zzoGwZe;!0ohW3+?iBq5Nfay8i-=5EcHQ#Td1McqoO$1;MaS{QF-F)0fU-Hu$==Oba za?r+W0OB;Jfj24I_LiLRw6HDrA>`%zhC&E_BqIEe3K{zkq)xXJDT&iOp6D?{hAiy_ zGdL$77Zjg|NcO?7V`|)G1L`O77U%*i*Ien8BIQ!8a<_*C_(KBXaWe9e5yU?=u78Xk znyyQI34{%#lPb;V;0Y^+q;1oc#*I0P54n!27T~4aJRD%dvm&I!2lZuk2hZ!g?~o7( zR;`d9Vw-tM{ZCDz*HJGep7YwSd=AHF?I-~!^7p-cf2{Jh6cqJeeg+UuMKWmuH9#sV zBV2UhY5(~9-R1OAEKn#1Wj6sV2J6}dw?gx0Rv^)PFa(+ES7ZLMGbCA599kV2zN7d5 zR=7ZZRsg#2Ktwd|TSaT<>?9bpA7%mwfZIN){a^(y z+(YTqP2yZf?~`}Nd@OPS-i~M+q|R|iX=l1J7nf0uLn#SJQz1U&wpr`ec>zGRRV<%? z9UqZGz#h%L@2?m47Tgc2fon7Uja5Hp?$hu8tgip~2e$?k!STkBHORuNfHg1;f`V9d zn~{T@y&Y&bpjNN9JZT|?t@51 zN?t?$7|14#3nG5EDo)eUAAs{111pcm^cL)21!#Rskcm2tNpVkSi^XcZen`iYl32cF zt5KW`a4%K?%|8w9`8*d`KYI(Mv^V+pE5LQ#-5kl9DA)f8T-VUq)I74Rjx4W8AUy7? zTKyLa{S3(K&w(W#B?m-3|8oS8ncFYtftW3xb7xwaf$rpin3aggaeT>k*c!Ep3a%k3 zcHEh;8r|9&%MD7<^gM+rHM=?Dy*S;8`}gYpR5AHKHeNfjpr9a(1aD7b-My$_kMiRZ&2@7%H&>aKFOpU>cR!8bZ1?D+&v6Ex?BPH^;;G5zt)3{p}AX^U-d2eu!Qth z@J+YeJS5GvzNliCG2Q2|#K#}zS~6%hjB}14Rq@Yj*V*VkFpZwm57qANSD=|WNR>tJ zI1ebetM8`n7_VGWL4+ezXXDfAC~a@!x{eOExC%v$DM6AhcjpxmA(5O zw0{3Ju^g`^SJKvd%;(~a|8f9QJ{J}N_@##!AG98ud+mBV!{68*DxJ62@! z^vlB}2Iuq!&<&IP3m|bkWD8$~*^T6B|J@3JLJi404%-j8IP%`zVxC^HSugON&ur6w zd#>$ysu;6G@ONUynKx3MS8jLV(g*LFDPey3>0eF(7{{uRFkDz*zF@}HNdB4RSewb$ z(i}r9P3t;?-k6dtg}-~eHujiY)(dmgGN~5YUYFmSLCUZ^^D&?kv`AH;&^p2E4E{#U zO#a~jfTU0PF9)Cps}0H}f}p6tUT3{1fVWSD67NQa$eq&R(09c2VAvy*fZeE?C5;>mV>VIrmb%yj^~EeMqhBy1#Z z6+E(u__6xQ=2glDCisPbnR={E!)e;k7~L282Kdd8$Il=zOj$}f@Nh{CGXA+2G`!%h z9PsPY15e1-{ll*7Sy1sGRKKYeyZ{(#uvh>z5W+UZ@o>&Pd?-HP$3GIvhyNvMi2$A) zTv_A){WnlEAuNH=*#a=;YLH*3gINd*;1=X+dIMiUDMJ{s)(h}@%b#HcVx*V>!dxc9 zt~-E5ncY76(kdY5rhyS~!R-LXwkq(Q zECBHImbB`$!<*066r)-6Cons=Oa6zRL50WValIwoI3ms+@Nf+QO(_Q`F$;W-Vu=K% zWdP}d`yKkVR`VJ@l7ql!D0cm`?({J91cq`9`Q1*+t`Axlf!TsP#s-XU(NG2o#mFu! z*u?_|aXIa(INyVnt<>OP>b@HNu?T<^P4VIb*RxsjL9_IIFa`>gOZVZ^yqcfA6jv$L zYAynteE$d-=PJPe*4)zo&Y8sklv4?qXMYXQ6)5%>vpf1K>ecVbr2uD1KT4_Lz8))E13+L(@)fJ?qaD0~Z3K+cWv2SmYCab}6{iMA;6cQ!+MfOa6D_hX zDPLd1+~vgY_i7h4ufUK+?}puv|ec1I)+l3<@Ot~r);(h=YRN@*F2&B(~Np}NA4+5nGH12@hR zWH8I7N)Is~FfyUL_S+N1JEW6eW_?7C&Fa4b&lr*YFV7hIZ=P}bzk0^st5PF zvbOXbLgRsb?JR*A6lpB>a3lW%JhsJ!e5lqXdE;P%z-BgCVhKRWDa!+x|C^*>{WZri zsE%@`h@bDz7Xvqr>p{mO_OJHF?t!wddKfk1PX$yP?@7?V=7IkXG=OdV7icU1(0I_x z|3D3HSm>knV_#%ao2-QElP!G!`)O#=2QAknL@l$$zqtmH%cT-~R7!AxoZxc_BbKhUFlA3jBXGPV)a@t_UCjM9sTU^Ag)qdC)6~SoPk6&p-cLrq}?w{m~1i4Y+^w zdr*EG9g9FE6pO`DgHnD&|0%mi>>sJ3IcOra4>1cckPU#Oc_{b?TWIbLsu_qq%O3)U zzBqbgFo@wWs{y3I>-1MQ4_cPXc#xRa?Ih1}cWR`;VQZy^1`IV;gM&35=AEAb!7>GC z>_$iC1RAZ-b~6$VnD{x0yu`T=y2QcO)|h}iu*->hdtmz34keKK?13o+8K+w? zo;(8OvNU@zP!x+)MpE6jUo`@uZV9F#muCb6dO%Y0kgJ;g6=o!O+`V}?m3_N6zM>SRQko=0p#g$lX{~Er*ZDoq&vc@d-gG<~puAu&LkZ>Xyenu!ffLdy8%5@n`49^%mjjuRSs{ z1KBYMLy@!?MxCs&yW4d6^)nwgMrK^xa;S9YgAbfrik(*69^u5jMXmG#^*#fzAA{Ig=GKa9Dt&M}D7U=L=k8TuG@b zOhS9H%W+t5_dRW;z&#y*29B6Firy2w)jatMJkD1F_E4L*hMER(jmEauW{td9$hqX4 zF)Do0T$q6&0IePaU6%z{?1P;?F=`LR8Li3p3UI0W`Iw!0#w^_ml=VHAeZS%1=4A#v z^-DR=XxON{@iT5x^-7TzQ}g<=X?2_A#fD?KF5bl_o2_>*lGWhZ1&DpO$!)owt&tn{ zSUvY-dH`T6FCa|{f3|heM}QVNu9pv7TaqGF_*0mDEp@B*FCOxHrQ2-H0%3~?*_$gm z?#7ih+m_ySoTbnY^wGH!H*0(d&HEn5MKri_FRFV5mMv#E+Cm^f{ z4Z8c;Uxtu|=l}`DZ{ZelO79a)4OpkxcA58Pw#8{~+wEx7`SyfI-gQpb4|OZza&$&^ z+ANjwWYD^?gu&zN{&Mx0K6BjgpQIn$++t_@k11jXM`y&xD`A^IWSx^IJH{*nOIlv$D z7k=^gtiT~|$Di+2gnK03ydqF+m&=qL(YD(6z2E%v2h^yEkP&D_DXb%OnkT#1dstjf z!sofyRYv&%XkHfzn?$IzNMFCE>1%hnS#sg*`P6|z=o{x6ar!DTfbiQyclVV+OK><_4J_k^qZ)Gw-5r)7cEg6(xlvHuIrNf6xv zrtHu)2@xT*?}^YzI&JtR3Ow<&0+M1gfFlZD#UZ0f!*utg_Zgm#Q|W`N&p>f~0+SR` zaPl5c`X@A?dgNiBP2PVy7lMEb2Bmwpr@(vDerIHJQ^(8etpZQ+bt|`5XlHfKzjYmy z$~E7eHi_f4X6$0AkIkLU-*FiDd_UB&)^z8VV)e$XbB5XXMK;ofp8MOF;A~eVJGhGD zU@S`76;%5>e1qQp(d?_{*Twnw(Hs52lQIDoZYr}c#1TqlH_BPAqv~a%OnYpC(4Jmz zxXE$KX7IyK?UieCf;tWOzEUg348ozBs$_Oz4BTT~^sJkBi-^HVHu8lioAk_QZ^>Mi zhEVoKP7z6o20!C{Urx9!@sJVx3H0$(LNF)v9Ww*8`UF$R?Cc}XTv3Uf#^nQ1iq~QP zw;G?ZFGf+FQX?+iUQ-cP;Id5Ohmq6zJjW4-zk*6@6TZD#shl0vh{NZqVGoh*loxJs z7OKVt?XvW#T~obqN`<$7;Wxc-b{v{Tvp98pW!pFx2OcapJjTCNF?gRCMv|netBfmU z(AF;{ceTb-qZd`s+_Ze2Xt7l$Kx@Z1xlL7|);s`yS??^yoG{3|uG^p&nS$M=XkZ`6 z5zF-ezNF9Mkqm>ygQ@|eQWYTh)dta^>B4{pT*Y(7I)#Vf0Cb1TGAx>R{rmx~;{nLQ z?2`*^x{gjrKtr|ueAj(#wQ+-sSs={qk6B4di=7rFpLOt4Nj0yYqk0Td&V5fF%B<11 zQ{{)5Dhxfxb*Z5c%#d;bqflQtpD_mL)65l zy-Tg|fu3-SWdF>F)7vTORJCMEg4g^C*@$53kApLu5swRfY=Hf$c>Vdl%2mIio==wC zXYqVQ3jH(W=Z1o(^q?OPg=>6~``cP>p@)tzCoORi@?Y1rRyX(Za{fbH!7LP?Si)a$ zobTN@;Sq0kctFiHcNaH*@truI`hrK)fw`rL#ItsQaf zx7zuVHZGz~E9w9Sh~a_g zt~`?;J;Hl1UXJ%b(;eF!A7wy94Nyl{#6gP!#w-ge3$-#Cv0xFRTp(^g;;eEsq+SHP zoU%^j^oJT{NsG^KJkumxrjDV<(*FT?gwch5%b`>5sBVq)%k~+CxXp@narOo3+pj(R z1f=Muyo=rM{D0jb5S6bMheS-bzR+z>g;B3tm`|`Q?071ZeVfM0{dx*~X zDlm%`O$9C&dhvFb=>rZ7gK+Ws?Dwp~lx=EWZz;?6kE!s>KiD3IF6cUFfU-6&I;#5( zc_KdEYfMCsPX6Mxj=fbcbh0ch;Dw6Ncbgf{1a33&XiAqHWFIenQ^b&dEc-!~BW{?3 zOFLBz3&ChLK|^nWgT|6jHHje29ELI)nlOx*L(^_g?~B{LhnAqZn7_b#MHIXGwSf4v z-6x9XlYzH9M6zw%y58{$ZHQ%~Ff-kkPmj+PFb*}Q@s*@be(T8#D8z%uHyzj$e4(O_ zu3&a*V7P#G0&;xLuj{%V?V5u$;Q%CKdxpfJ*Ri2q!lh>bJe1@pvU=*a=c*F+ z;#|_cpKL^s_3OlvTID{EUWNd))Awdk*AKvr=@6pHI;fLXq7z+V{2 z|K`mJ`z7<_IZNuF!p4wyUVG-Sq=C(cTx#aefZZ0#@XV zgFdoZxo+W8yuc%uBhT>{i$rv9wcuMPUZN?`hEt#2AgPqDF4t`CWeMtpN?Zmgs`@Qg z-a(F}pEisctaS!NbGA_y9=(Yt+nL;GY~OQkh1lFlG&0ly(ZrA0GO2qQBqKBKrE-A~ zbX_q3g~CV)Xq9vt4UNxWRFb`1SOTg`X7TFnizaW`D6FF;RY?5Mw<*~i2EP32Fx-Du z4@2IL+Tj{D%PV}Ot?$oTnY{kiO7B6%Z?ls)t= zWW2tPF3|y3UMiJ4$8;HscmJMeJXdVo(-2?Zvrh zTUp)t`8^6pUgtge!3b{&VNMmVGv{!b9B^ng0m2vpiEr!cu|~*X-#&3Y5jFxdmhYT| z<0a3ez?t*pk$+ZE7QdqU!?`L-XiBH3h|q2`#*fBL{1t>k#g`(7DN zRj)IAsgIvSOse;-8W(YRI9{@ib9QuL!$>-s*)TG}<TTN3Ja{9)#fu{+ zIEKIYovQ8q!()@R@0Nytc7@`&<%}qf2$W`K0z!wOkJ;>;R3M^Z90K1;6(k^!;|d#$ zz4x!)dhDqYKMM=RT1nRHqJ~=m9&-=L8~xkr;0RnZ8opqoif_LG^fzIct#hXfIF@fI zPFvYHat6kZF!JG18))g-yw~f_S~Gug0<_-3|B=j%ikn%)tRf(Hx1_v)9WTnFIjTw{nYnd!-KTN4x7%PKkY@CtuyTIz@1i?J{5_wmT^71XiM??w*Bsjw zzVNNdwH+~+Tnj;u9Y9rgw9TjOxKI0J+xfO*D>ERl&Z%qhs|zqMC2c;!cP37=ZbBYc zvDJawZNg}|_EEDrIzZzN0+jQu@6=qkNK;;kg58qyBg&Qh9aanUVNIB0yDa44=_xWd-M# z&9kR{z&Y+_m1`c5x)FyXr8~dX>K&|cuv-zaoHbCk*z9g29R1Tv`Y&+Xa61Iu>D$Y_ z$GK+AsKm57+{0|=EsrhgQQ6CrR$oT>$TPXA#wbmZeYe?BMRn!lDBEgL!Bl`SDnK#x zM0BOfYTFKGEDksw0lH{dUYB}JLi}OZ+GNA|DWPqOJkHcl`(jvB+P1og9WvO`O@#V0 za~kW{*1n1v6fM=8S#Z#>q9$5-+2jqIckEPcpGszl2J{%V)HbF7Aae(ubP}DSeCLo* zASepDVN}>nm*;f?hiim3Yd40PzJL?rZg)KY{VnQm6#Hk}uPn=Tb*DW6_GVgi zRf>-5WVhY7QPY!zwcl7GY#&nz{o?eFg)_}^UhI9epS6cnIKS5(_FL}D(zRApXmgRY zz>odhWjk}<9H6?yIrpI#aN6L)5}(QY$l%ZkW%>si*Kpb#9bdI?#R<1}F*ffKOx7%; zYFE#QYCfRptGa1DTULH1w(oWU`gPxWZ$5EGv-goVFN{EB??8=)g@2Jf#Cbt6Bp_jU z4XHZ_no!-fT&P{Nprq)o| z_c22RxBZj(%wKQp^R2U2hu~*e?$v^Cl>Wiv(!9MQzHeRhK83NbH1%sPoE;Z(Tqkfu zFkM!#L3x}{v)t6`_1gPsQ4~bTmr+$-J)GIeQMywkKBU4yhUA@3ZQ_lA#S7;wa*X7YUNSP$m-z5(~*xr%+nwg}n#&r%+ zwbeCaZO_ouylh}uD)ADMWqWF#v|Go!Y&SV>3is*Sv6wW&puYa?iV?hZ#|^Xxf52?t zR}suD87OXKI+jd}yF71W!I<^UXd8vAs+MsAD(cw=jWtx(x>lS;EDa=>->ZlO7R;v(U6V@+OT7_nHO{^A*jmUDox8pKnv2zU}>%GaAwd=^wFfvQJnPRdyacXsh2LHdA&L zw*#I=4bzKg44?1kX7{?pou-DaX303;8`-H)9M{RQ>;XhK+LncNvr&Z}ML9ahSwB%n zu|S1SY96)KEYwRW^NMiAyG8DYS?o`vX?&;-S}0Vl z4qc$`kEu!Hb*aCuq`tnly;q&{q0`o4*|l9!!b_HRPZgFv0rr^mrXQ`^vfbCWsSMoK z&RDQw>_CmjXHEHVA@|-gmZ_(bZ`8$jOBs)xZ_qn9QMRPFQ>9goRop)C=8_BjdlTAM z9N~K~b)oOo&fvat$)E4>nl|jawN=E!%q2=xg-1Z~8OXK6@7<_-tS@wUtkH9-H{zh) zuS9gfvt^2PHE534EM3(uvX_pl;_w+=aoyT^VyPpg#B4{~eObhHLv5|KRtAT*zWx2_ zD%pyzH5b1K=w(-Ju+s<{CU0iTuQxNXdUE#iX%Xh5Rnocf*|uOqF~iFUI?x@yK?wq`%G;#P7i1mSq&WRBm!tQTZkP(+-f-8zxOKIQ zEED4cG{(;;vd))^ydiUm_E&^B${Ej&HDR;cSyqw?YR z5#2`%M?&U)_W07g#?{^E>wd;7cPv<=*X|lu7}i@VD()(~OFwS4+Q`8!|EB7}FEaFJ z?E?4JE$Z(qH8gp`rd56~)Huo2t^7qybml`=-AV;S5~U+eW)2eW?k~uMxj>K za_U*Fw%S6gpqzNIZ86W@uX`3CSU0$;kv*18eWs%StlO>?CT{O~Z4^3J-aA&W*T=Mx zwk{il=e_OP&uexbc%gDaNr18y!Nm;4e(h@4e8wErnG`*%BfIw>;>Z#$4yQ{g zmFz8KI}1tT1%={gZ`oWtOzqC|JaKzBf!mUvQi1RQ4$poKpU*PMMehP0hutoZoO9DephO@6r05p{DkiO}5O) z9Pyjki8|n;eE8&X+f_$4%4S^HdOcJD#@c?`k-9*3zh^RGG^;Bm6`C)PVXDzsP$9c~ zQcP1MnU-ERKY`bAgZvd2t?3R-$gQ0}0z%YU*IZud-F`|pWAaRM2sMq1!o7W}Juc3c zS!of&rrs|Y;TpzIsL!zn1;wQ~blMACx#GR_1Jlk}izJ1s5`sOs>?`g4bnWKS5BEnz zO~kOR4(b>fNfMHCsgBE$&tQ)et9A`HwWo_^uDY4}tDNF~r#;Ec6cB!O_SOcElR?`V zPISU#;t;m)d@GSrGVfz#s2zisx{hwj2}pv$z(j+cY*W@MhB_CynRuS*bPli;<<&99 zDc^V2(FRWGmcN$pTR*SLn21Em>8i)VRG6<-aM_P)F8t7bTS4=aIHm7ExGA??ebV?? zhiXq_ZJ;&pQQYT(3DtJFYfcFQR&T*)@T z7MDA9RcP9HAGmLKcMI*A-GQ8>!xt2qFWX)M6Qd5 z^E5XepQ#b89wjcXfYTqL>$ZAcUl7iis_F3J`GWG;)e2iyG-kcWsf-(kMd`5cJ+DVkyj ziGmB5s$ZND&GB_KTu#}~D!N{_B5&12>DWU5ieL>Fjw8O$xAONMh!$GnlF}FISFe=n zpW`hr_s}@p(?)%{mj8kdjg7~oH)p%XUG|iTE9m8Z%tJr5LL-FJ^UeNdove5Hze*x0 z>x(4{t7`}2qe?@sDYMRpTjkyA(5C$xa!DmroJnjDDHVWI4|ikp?xNxI^>luNp8(}qCm%;kX1JR$Lo zljBcTTs$^*LOr_aZN zz3prYYuTMgt1lVOJMs4J#*UJkb;q?b)Y!_`PQIwQq{k`h;y!k8ZDV24!+*IU1X9_r zJdX?s*ruqx=jIXyw(X%;a%i6}zo47Cyd=OT@7A$=s-wfr(DNCsYn3#;o`jZR|kB3ZL`t+A&D0|*mUyY+$botCRLyzRNz+1=HlaGZv&%gNJ)?z++I5Pdo3>X>XN%bhqFF|IxS1MtgHFt zLB4g%_Kms^s6`B@$ID;wDvW!wEUJRZ%UAp(t?>PQZCPnmYPGZ&&lb8+KD*`hjd$f9 zF)Y+^IeU4|tbYM@ooVUy_Lq@Dd-QYKHCD1se<<$Kdtl7%ZL_#km3oj#D6US$ss71( zR=HY7wGQbQ@*5AnkXQGMc_3Tk%U=~K7e3%fYK*8A9 z-ne>x@y@sswT;>{4Wi;>$OkivGkA&e^sH=WHO{pyQ?^lD(Uq}NKW`OfOB7CBILL5X zpusiPXl1L(CaQqYO<8JKQB{F$QjEPOvZ+#b2o6SOaUj5_@(m?Z9BN!_ge>ubT0aRiertLQK zZs5C8^3BI)zEowe)RVq#V_i{wY@%D0&-COTbl9ZK7&4vxDvsTSvupKnFKN&BjY}Df z-0mofOupFAyh1#^Pf`ay5VvcJq+?KIyq7MCD8 znaNNX;~hYo)G&x+tbI36e5VF;Xi_}8O53jT70WC2mwfUFsI+fUZ>{TX z?&)YKGCnCVd(r*~;7qp8^Y&6n9gfBk){>edH*~!0id-_aLyLgG1|J<-Gv7t;q`Fu2 z+O9XVYn7*Y_%@w6G$U8X6dE5ZTYt>7O5V!kKG(7MYZ^0~d6GAJiKuhdlT*0dR_oIo zM(UGe)<-z+*zDblcUsI?(y01Ko%2X};#$$`@y=@M_hNF?HjXCc4cl}GB|fa0e{%Ef z*`4i65Lj{+et=XU=dXxRA`d9{cEf^;mXm}7AwaY_5UuLX&bZ!^1(VLXqdkx}5Ze6NmR6Nnz zB15U=%tZp3V(M%JBVth-qe`?Y%}-BUAu>ylZ6=aGN3T4CF53Yx?}b9cis1dtps?E| zBG4RWZCkcsA&@iG=@GX%Gf;(T011+l^e#C`QC_VBKUIe2#}eGJqjVPuYCvd1%=Zt& z&n67uEJ`NyI=n0+91U~!1Mt-jwdOUn0w+6oB;;DDmSNo11~B4HU~Ngl1i~Oh<27Pe zm=w=CRanW`IN0q2==g+KqJ#4FFMfG#ISF>M`*J!R*K%bNg(>wjul@4k7XKm0mGv$B z_#=B~;dn{FbSe0A%Pamtl4Uvjvq!QSBu$G=QJepkpCtDL^vOBY!C-=*XhE&0y?)X6 zV%u0;iSN+mWH?_D?e@!8&tYE_K`b8u|tQf4r;3*_q+ zD->~lQY9L{w}_bRZ4VHVm>v|#8_H}Rgq6b1a1qHk!W^Gtuc7-Sstjo33O%(xp#R^A z3y*-&aQ8-#aF@E!%QHK9ln>k8n*eik4EWy=^juxGE)0Ye9eAS(35M;r>vZqkd5t31 zy6C-cfQri;wrfF+c(+v_I7Pl*m8H4|-iR ztXko}gvBzpyc?gLn`u8ht&5Ic>d%y2uH!It?K~2@`XxSEP zjYA$hx&s||6V+lhVou5Pr&f-9zc@D+GFf4-f1sf&AScP+S#mh5Idbyd83~bZ1rp!< zdwQO^yq5`6d5f#n?s?I925KhC-MmHa_}722q2b1DLQB4X|DGu5wrCfDp~}#;%-MXX zIeRd*tcAJwJ7|XEDJNf>Lt)Lja=9^b7eDGCW0q6}`1bF2_2A*0O93QKe3I)8enoda zorae{)};c?>?yvGi#EaeZKt&2G`8fy?GI-9g!7D+yC0$+maickEpF#?4&DA|c+DBN zsX)xPRrgXqrp-(U7e3_l1V4^w(7I78@Nr~!W2@`*5b+&C%Vcd(xQgou0uo;xoc%eO zc-V(K>GbyM!PdNqtHD_iIgk_^C`@-2kA#6X9Dbmnl#WnzVAxv7Vr_Urks8F$cIrS~ zt{L}XmA2jq$S5vR%|BEvc!dz8W&@`V54+0!cD;Aw`{IDn>mE|PM65h8+(qi11C#C0 zYTs}i5{1_DB=ZSxgQtJm36$fI*WTf$q^_?!6W9@;h8ET`tK#^XpsxDKXA-xW+z7!% zXvpk~;p6iz{`^v$2;ret`dQVzL+LdwJ^qOBxG*^JG5KQyptW;7fwo?&5S4X*9OUaD zOniL?pTTBX>aNd|*&HE=>jNw34KR(l^?3PN1=6+*}lES5x7da?_ zccHq;tE!LJ79#OFib3La3%rS;Xq1PEpNQUP3Rzhv1{;mR_!f6SwMS^FD zu#9;%fqYGY<~=3CcS7viCC5JxrwCvCVWsVB4RNZ;m?(m5{1zYC`k3Utf~p?^la@)8$4Jc@g0xv|cv|!Lekg>8 zCjqucUkEN81*nL^Iw7V}Q-9?YZta(475ly^WDVl+SS&;|3Nc96ArQJqegYI5VR(u* zI8H-By$Ig9z3C+IBNZ3+8p&$Ktw)QRsD?zj3M6ce#b-Ph6=NLUhnizRo=0^Nk9%{) z7fYP!@)Lo$lX7(1hdp0a&bdhp80v2_~q zk9}wtc&0DIdhwRpLvxl&4&xnpJHxfy&pEwGlfrk6yw;wegB*{_q}=|k z_+Y;2`5FRMX^HtnsQ1S{tGGn>zfFl+RPD}8UAD0HoZxD&hGitRM0I*0;d~17^cAZV5{*Kv1jaap)E}v;>t`DxRK=0IzY{(3UAhO7W zMygfu{#W>t@+6FW`IH@8T1D?l6E%_c=QWCN?yfv;W*=TVC!`~Fv+itzP{EI))0M#% z1lO8b8$#5{@i7Iq$637HSrc0{jAKR{3f-gm3L%JLSMhi_i z#xBgiYm1`KcqBs&)T&(;QEqw2FfUc5)V@8j1q8E~T<7WCI|zxpAkC>->H+-DIgjN^ zXzj&UmPzz7ShAlxx`Fwq>Zn>x*5y-1&|O$YTI@Kx`G+<&#)o==R#dL^wC-vH+j9}i zmh4esX6~B}Kd+Juy6N3t)8@ThhaA(xdzd!)*sWr&>s=6GO5J=@E^rnm#Vn+d?5z2g zb*?SA>-py6%z|-4YAUztl?CcUj@!+NVIdO2cE@s3mTKCTF44+ynYFWT3^6;$5D2v3RU_=Tpj#B_}fjVmetLt zF|Dl=N3P7?{0ca&TUy-v9iuNX#jVotY(Oeas}Ympxvv+}T_!BPkCc$U}v`*1yw~9`HW;Mrv zZ>h6Z@peSctZZ`~t4Lgq8GJC`3a6+G#pGaXIY20v%MM3h$TdnS}Fxb*hqL zb5X)IOTqDa*GiN#nAc8gPO@$)wvYIQ7Aard&cwlVt)DZR@w(=fsDKwFczyhF*{$1x zxo;JN6AC==mQHI>cXMp}9eDeV`HeV*X4Co5;CxA4Q*4Ruw}Du80NDXgCgNT1F}>Kj zxO_T#M{Lw*79P3C3qjX8&cFS8yseGaBP|hIt$kCy5lO36Mzj?RnG&1oQ>Ki&ukubC z`kvt=7;DB2M zy;|x*na8zW^m6oPGqnP?5d1_6S}v0B>H$4pUICAl(V5HaQ*bMx44s)?DE zXHrc(3AQbO<->XAJEe04E|B{nQU6Sa)EEZ!hGR<^uEjiHc9$eSg>+f`g}w^5ujW`*qJ!DDoBi)#2?HN_V+@}Qa9$tpU%^(V1EN#zHfeJH|k3GJQJwZDqe zSL~uF1&Ef!X~dp{{q>hL8{?mM-YlZhAda9}&On#e42NjVehC!u2`4magXuL&Y3MMT zAd-5Y7}21vd%n{GVIS6$7xDX@H*chGN4@?vtRk9KH-mP+4z6mVm&4g~J9m}@?LmY< z4t(8b=QHdfrfWq?;d+A}B1p)s5Xe;bw`St)N)VjtWfn&FS2N$> z(R?)0K&R!|MiM#bba%W+y(Yfx4w?b}nkgb9N5N}?neb(qV8M@*P(ubo5N%x&RzxI-lU*1k3Ge5`7ov+r}N(n``ZMHjPFsAfq6Efqn9 zrnNn1b7)I=V&7O{@GHLPNzUra>O&_tQ71pb#h?XG`#@7hJoDNe&zV?n7$`t=XO;C< z@*1YTw@B5aeA*Z-#?wL9POLSEVbenXpIw=~8=5`UkTmodF|gNcs#{KicA!5z165xZ z$zMP&%1dw3U8)wS;cV6CarPv(98C#-z5)s2gF;Ca z34lHWw*wr#Gh90zc&0~9BAaB!C6~|^;b~EmE~=y43edbT)_a09#8CP+fm(0jZ^J%@ z++s+mEeYPHnD!p20K`>`UbO-@?->X|NKjbzC64eO38eYeL&eoFp{)2k;LIpwR8Mi< zN$k5TTmFK^Tkmn--jH4j*hqIbGal5#s~Fc&sEN0`d)6b@aQ)k`K0WY~YdCsSOlx?x zMb?~!2m?KPIjR*69vN%JJhpjy=>8|N1N^A&os)5=*o!uZ!~5!0)srqq z@ZQl%Y$rWCoza`>*SIrE1UL4~Q_%XAerI!_w49{i-BZ6WZTodfVACCD@<=_z zci#A?N@INc|IqOLkM-ogVuJL)%Ir?uqnMkH`EVa3NKGc}-Jg?4cn~aV0lJ0gi~vuy z*m-+nNZfCbaBL?TZW8ba;gL$U8yIZKsjkXkC$dm3FxD!dJ-ZZqPB%`}*8)l%m zD>L;dXUo0bXUkt9#ueSHoK0D)jBMyE=wP$&PQp8L9Qu9zA%i#V4>d8lWa5@E(UCyr z6q5JOF8R0<50J6>%Y4^`H;pZ?y@*MPDoyZXa*y*N!M7I3errYc8=P^d-_Ba~4U5{5 znAgx+d*~^^&+m}CeZU22&0V+9pTwYgE|I7o=yzsIAgON!x7hS#IHf4==V+c6wwS9V?wI04)r@r!s#s6kz`(+4x=TPcubvVRMI+yoY9|G!dmEOVKdImUa8c99CS6ZZ&RofEZ#;=xc zI-1w0T;#{gWs)E85RBBvBJh`_l9S~HyKRnH3@`=ui#)o|@*EFG3HL_&&?x)rpBG`j zb)?@R8g!fFfSgB)M~P z&N-&1aVEMDS+&z%BII7|60lmXxe)rxp_F2dvMVH5Y}B0N`Ki~)W21!ZT-H8!fdA-p@`u*4A8{eoB){VS6pYo#YyXi5HZ^*GWH}I zqLY0LW!R4tT=z!I`2!CSdGKzlMvM`;74WD;H(xUl!uZ_!s}q~PgFo)P@&9KhHo(!A zbuOg2;^~Q(Ermoo?E)n-j?HO>=3Kx{gIKJvqz%-=%85!O=HGq%55?^<4E=d-W4)>X z>F+HzzQVv{EyQ5gqEQ_04PUkL$x%3f1!oUT8@2r9M<*_22FUD`lFhDckh z(kmS632>JZZw1Qu4@L`miu)-|ld8ac*Tsy+FCRHrx4J5c9GV9g=rWFU{Ad%N;+JJ; zU(dklkq(`!90D)m-|V>ZRD56DTI=VH68+AQvw7fU-G*q}yJitG?a$ zt0+wtFA4~>r>8vU^Z3T67o-*}#@fSvw`Pb>kJ9oV6~5DW+>?|;13Y=uZ3!+9WIvtc z`kprNP@&Qze?+3+0Xjbm=sZi)F9J~nBv-xN1-3o4*B`Dq&n#V0+;Ssj(U;I+3(~hK z-pqkjFzUewdST&KW1oy0h*wELeQ!i?fA?hrnA}7xzo?V2xe zXJ;ZXj^x*g>`zizE3kI;zgL;$=Ec`10wBvgTOE#xnyz{V_2&@D7fBL=zu<5del<|I zZMxZ3VYsXN9ox#Fe%G6O3EZ-?R|M_crh8Z8=dn`bzk}6a6Fu85*RO;CRnM<*wM1Xg zv;9Hb_0;mCg|0K;eoo`&*h8G6BsHAm?Gcm6^+K{?OmSX>Pf@?|+OcICZjv5K%$trQ zn~aL+BqgyfR>$AX-0A2b2OW+FXz$$@&Qqz$H3z)|GvV;%fGAreZ5lX*7Nex;mFtD# zDJ1;TdMpAXE017e>X)N5Agg8nEGeGr&*gW_8aCe=1L)Rl@=(7!z-ARYG$ws=--GSz zj|);xv+I*na&U#sU+S9C*LU=ftbUDr%MJe%W#K=QFR#v(+(t=_E)5l9J$@DKqACYG zn=7gACFoh*E$I=BywCrK%PJMb%R@B-F6SfDn12e_=u z&&njJ6{E88muUjsPzJ&e>c4hH6tN&&FS(1~XBeHO1R#5&fN6#_0y7>W9g0cW zYSg?Wszp;Rv3`>KpBVleM%eM^at!H@q3xRn@R)!O+n-|_@*roBJ!zK(oZtf__=AXo zO#|q_&nJY`Cina$?&usUzUCrdp`_$jyr103`Yp=k&q;t+RF_Va>t+1j!zmOel5>Yg zS6ILh_tFJ?pp-4EDTubSAQY>x05MHkz!UO2DRI+Lih{g+8qrwS*myFLDLKIaw;JW9 zFv}RxVljB+|NL4;LXxr+UMQD|u3B<8CT>Z9Z^OBbVdiUV1e4q7C|t*B6zKmpf_6v= z0$NCxpg7jd6#|s_KKgRmnF|;G*A21d(xT_s&@~7fkbN1|UeSYTRRVG^5Z~Bs*Zcv> ze6og(>}w$qeInk@cT7H~r=KCv(20d&RvUAIgzl2e4D`U=0asR~k`zF=BueWuPrrL~ zg2ZfmTbKlTS#cL8R3@J( zML4l7R-LbzWF=epTv7h}!I8W52)d%yjN34}nv=G8af;5zP-*%sFWzKJMs4TTU#wEMM$0E`pGHaLh<{+(_W7Z0w-|0A{{E1#7+%jDzqvC zyX*D=sl0c)EP91)@Hf%{dCaywe)q7l)$lhK;M_SC&i2wcQE2N9W<6E)b5EIP+?E4N zt2Hy*if~SM4VE-%E_lY{TA>+9TBli_06<{T!bHN2_f2(fs00qs((VHoB}zAGnx^C> z*Ra7Wv*5v@G`Bg|20oSYH`28F+}w-$k+5qY0~O?*v%%#}yDfw1zFylH-F>VTAy%t0 zowu&;Qt*FMpfK;p&CjO88{}j>ev46!5Ecl5>m4zcwVzIyzsxq@Wok11>XQ?H&4-6uD3aFu%AXm>zS+G=mQowa zq`1J>rzsjidH1`9{NTA!${CxFAbi(Tij;-K@ zQXY|n7>d>9j-6{mT?pzLV%@6omLz|YkZ{ChNOR@3VeXHqGzGMLAs@WP?_lM1FGG?P zf1*a~#;QFLwm2ZINzB#ZcVimr|FP-*)bZRWoxFzE;elKJ@{UcFvN+QyPGtgF$8Z3d zBNENh%A@;3>Eo%t?j!HpFQXu4?_=FrQomnOQ|#q-KT2_~*dspTwv&mW%3;20-ID zpkTd~W9Y}tk&50iin!W_oPwKdTM{I$Nf%0te^Kwn5{6%`xXV(i$$%JBAo!t*_lt~h z_ncx$qr~(b*U+sGKe)I-FtOXH&T9*WHuV6eB0;3|Wr45B3ytd26WuJoqskcmNJ~3Q zsR*y=zjx=yNQN7rs*cHpRPIU7-5;&yk}VFZS+tY0YjzIR$tFxWMEdVdxpgB7SLE0} z_kcGC6<;7|xVvsIlH1DH-~^j~v~b7HGFJDHM+>WJoGAy(W0_oYw>KkLtaUy~@IB0q z1W7g{7QLL$Fo@Y|f2~Rdxsfe~bREjwlk-#>%AdhIhk#(%3TiFAU zZ>PjD>+sMH((e*=m+{?brjZn7fS;4PwLnVIJ;BsaRR1c+MM%hxd0NaJT|} z#F0n#8;m@s2=??+JwC=X8`!|#Ds%p4ue~j+L_`m@VbNst=suTRrbWLFVznKVTY_P$ z_2dLXCEUr2_mOZ%rjWII!Kv4H9!VmEn6ntZ(24YW5TIl=XVTZ%JPD2O1GpqRpJNU#`CtXF>rc8w#@CGXGeDJm>ePMmZW(J1M|uthc^QM znFeY~@eTvdiNhWe?s$qaqJz(uk`VDcwnDotu61od%J zx6o5$dN`Wy!5@u0M#(21c*Z4qQ&Uqc`chrL*C7F|*}mUN*0QE_T2*GSh9w?LDMCum zS;P`}yO02OhEXDy`*Vt_(PIm!z%()t5|KCHfW0p{yd5M=7^ZX!u-8g|`#yg7pq>`~ z>=H_8*@VBpLX0xpR@f#n`-Awl9}mo}iAA7)%Ec}C8a~xpJvTBs!B~6hyaK%pGBt2h z;bKW~kIfqdEJJ+V!%SRpGq>|uX7MAqV{ksy!QXloFq3B;FS)JX&Ku1gNJ_&s<(P*+kf$u1ey+4e5+ra9)3tc+~h?8sdtS(K@Aving!gd=efQ1ybO%y17np2us@gJY~ zH(nq3!vlPZ@-wZC@j)cP&+LK9K(QKB>+bpn_N$1sP@MQdvSkV8MJD{Fw?H0FHN7F# zgyVKT(N64~Gso{cqEGLH_?8c3F#+7fj&pANm`)rIyR<1cvIP-!`agcHMFZLfZgVjj zH-)J2hue>z1jL?#z`$lAmcR{|217MDD}Ha~A^UdlKS|h%0}3XpYO0KqLgf;y=qAJ-9 zqK-U4jG`%eAkQgw0d3C{o9fn91W>m%C(mIwZzBfXUYT~1(tzK(*HWMzYb07o{t3s# z2s*VE0S=~~Wv@;0O8&_S&c2MUx=ylITX1#x6T}Hv)s*;QT@G+8L+s0}?E%WUxqnJ0 zcmo+=MJo5z5Ga83Z>>NclNu+T6dPy`^*xn`AHKS+{q4(#Yu1hC?@K?leUnxBYx9E# zqRWD^#6vAYt{?q5^IRdrJwGACj|6E14Vw{UTOo#nJ)rb$)1f*F1U4nidsGYGI>r3Q zXSWjl%6RA5qYniwpxVho90ciaiu)f&cQqcDj2ERGgt*S_9pxCj>yBlIeT~ipF50WL zl>LO#>pLcj{%^GMzw1+Cz1w11_CDygo8IZq&`p>jwB#HU4_2YCO@%z98QgqP8QCl` zjI|bf`hV|TbxDTi1>Z}Joj&($pKLR2D2RfM8z)ozne6$rDWb=QsU1fgYb zyC7~^JA6}v_{8lWW}pb*uQIyh9QP7G)ONEM`wxknkj$G5Hnq?i{$>!uxT1YtT!O7P zdvq6e6|NUPbwe{zr_PhIw435b#6Ij?S0=WRJz9_@<^~ia0sh*{sHrdd2w1RujQcW{ zSHSP3Dtmw01OzH?wo`aT?B8lA_F{PYylYV;20`ma%haYFQTkq4(*MvM28h|TEZm_f zhqZZ>AKb-?&)FhT%G^6ye32%ISI_a^G@|}ruy{v7=6@Gx%Pl4gM98KBj3T8(y@r;~ zKQjf5`7|cE|dir+CVnkg8&i=1U6?E71YrMiJ8Ia2!hmeTuGgYQ_QxE%zGrW1<+aUkjd*mlau8Il<+L47~!)@dYO+C zcHJ?3_}Stgst87?t8w$N3OY0ql~E_te4POn{75(&N^fT)t7kNfof5_)s?A8`R;xp8 zB&LNfa|`4vbFE{2IzN@HmVqh)as^V~v_17iQB-f{7Cbm}zg_?cJ0Wlyn<{=4Phrp7 zMUj?YRQ9;ZXnyF&K)dEfVyTPeJc$szLB*+x__SuFE}-mb^# z!b^XMvG|z|l0J4%aQDX)J79IOD=8@9q*hgmPHFv(-V7S|&S0iWVh07p8to$%XTY0S zK0kVjIdp0p?Ui-@6s4YRQj1)ZdN1>!e|1ejn{LJ)niEJ${*T5LfMr%?X-AWfV^wO_ z2E{pU!;4=$fKc>hH*Z12ZJtS_Mc?XW3%w%$onzuElY2N@2FL#M#{je@ARQbl=jZP( zMaEL_@E6nqUFf#-zr~X<3ZONoNze}Z<3`Mc7Wm381V4@vBCW3|Fv@|kC@983dADbH zwW#pux*%NdS!-nP5Jw!+_N0y^EC($U>rw4d$LNjzz?`J3O@8AmhNAECc zOzd1{bn*d4(0||s0)F!XhbSoS{|!5O|0^n=!lisF~WTw#o%Q6`SW+QCKltn?om!`-e1IYSA;A${a3P$-`)O^50pKo?>EJ(J-M}N zi`pv^%#FTLa(Id?m&FH=GY-tu;#c2BHiBVZ)P?3}DAHFcmB=@smAr4c;hBMsj!tef zqB1`H=g3jAEF|;%IBfvS3i6NxzAL{1l6AuEq#@Px*RDuJuUS6E!b#<2LHnKoF!lp12^OR(k%Vp{fB?a8 zGW+{Euwmrj%2MHQg_VuF41LVxTbx=$lJ#>Cbh+0&M`;2Jjr~C9LGiGo&kj0Hy-Fpm~i8TTZ zGno1gl2Fz3KZ)82_K{G#By~R}n*fd<->6akJkIA1TGnbv3}Y0^dMZOkXxl&k3rsUO z;LOdhUMl+WgYuS|Q_o!koVuL%k%+TI%A<$eW-N6IdIWlf7+0@qn_jk6)cC69JRuQm z&&g2%z90edD%Q^48FB@y9uD!wgD~iETJN{Tgzem5w4bT4k)&e&*L}gihl3#uBY~6Sf8HIZ7B)y(SH6Ww9{q1hI?|2-BZKoBz)0B`9#cmS3#e z59^RZc~Z6FuYbWa(W%S*n1y5q!=;$N^9e+onmdgl*b7ZHjt{U9%MIod(kg5=?y%Xg z`HUxnMEx!koX1IXCy-Thaje=P`Vc! z1`@NnOV0ok8WpE_aY}w9^gLNIMD!jWnV5G-hFnC_++Su`vK6YC==cFSg^?Y;debB| zju2R6bpeTGCD|6{kmi!(II9Buye0l44VgJjb$d`>Yl&Ixv4l&mF4kmlX>QV^{7WN; zO*SA?dxnMdb47oTSE@q>PiFz{nUUoISxOkT^{N)vR~OR06SL5t5Ydf*LE`w07*9j8 zK~k-;u+luYE4L8nNlc|`_H6*%3%wVXd1Wc#;e~i7RB9eHZKs@q?jWMB-SQGpnd{Rl z&?~ve`P}Uy0Cw#yaeU zmkNtP$`)U~w|)Q+)dyxRMzSF{(GXS>d9Xej85rgX(M|T^SiXY#Q1+GUQGZ@~yvlE~ zvE9lY$)Ifc#(tvu|7C7%IsB39Sf48x@d$}%;KajUa7$c&Xu2u+!9uDHlQmfiIQ2gE z9N@;0xocS|SWDC}r;;p$eV-1=i3OLdS>f2g4l~X$A=cSN?s#v;l1~(T=S^?va^_Zw z>=rsf{}0j;1UX~E$W?vu{@Ddb;+inKd>`yBh}Cj)$nMFC=-oDszZ*i05ji*oAGZ*dl+n{Ruv=*jy4+i~CuW6@C*rTMl1#{DNEdt^ zZMOchuwr@uZ7AZ!{4o;4nOiL7OjmM^a%0~z_gvnzq;?xTUQGnCg49vOZB?mg7;Q=; zK5le^P?=EMoFfPgp$!UPO|qjVh3>m_3c*)Nx6S*>R-e|*Q*XRB3?vnUu{@1km%`*% zRNldMw4l4E5;`s*aIeLLPyYT^6C8+{Wc8W8eP6rf+{brk8xzy^J^6q+Y#loBh7qv71cLqr&!qBVb*~o*BWypEhP6 z^K*!`bbpkqCK*wQ^ayEe>`9yFn*^-qUT71O+y>U(oOHubpJtnoy?3OR3O*ZCBdPsl zHH_u+_sqLn+G(js-n_FSYM=7|$KIQVQ{A@zzl#h}Qif!Tq6~$SRgrm?*)n8S2umUJ z5Q-!vl9GA0uw*Io6ltOXndc-!W|Ar6J}>wEJiqVo?B71V`}qF${vF5Oe>}r|Q$9ZH z^SQ3`I?wm}^=2wDc=-!Ntvz6`x{M5hs+tg#t7Z=;=ZP4!WRu36 z;UKS@@*B~aI>@08?HDk+{ux!)C+5zv!YTPT7-BCJgDPy8y3JlZ`)L!N9`V3tou^qbGJvI;KzE*8Igmj-dd`Z(5+-Nw}k+-O=LX zoa|)#Z)A;qOEva_Sv%>XMcq6=EcZzPOCk+UV0V#Tdc}GJoOL0Hkh+7$gb&nf3bqw# zcWA|LU3}v31c7GMOLa2@Cg%Y*7RY{>Gx$o6WzOuv^eBFHLg)Qa!GHw*7B z?!I;Ya_veMA`8pIV|rs8`G}A;Pk01ngz6XCeEbS-JoZY+k(37s&)y`6V*YZsu+IgHXO=y#)l7D)!KEae9TYf>Kba8hUNR?W8j( zuo#%Bo!oT^gg5STt#D(PbxfJ7qUjApb7Gv~aUL2a+UVq0FROFFO%+c!sRAhXRP2x~ zgfftfS8}tHU01xOyN7}XVB?z#xT!Rxt@&2J14sCEaM~IkAUY@}nmhW@JSPnv(uz?y zZ_za4##QUED7sS!*$Xokf1)5TERKbqrjp3W#0JX<%H=+;C7acKPR2%T9) ztF%Q0eRoOl*71cT`;5hDL=FL2L9vullNsjgw1|{X>a>B8(nKds%{8L9ZnQCS5k+2A zW;2J#U8B1oiXL0C3=(~q6mCvcoTA)!u0ut2ofIH@bQAn6URde^Fs7A9ro;yU4fo)} zfl*fWcEizrXsyU2Gus6LTvs?KyoAjzq(oKP^m}xflR_pG*MA5bAo5t6tpkmi$E=`+VYq%XgqfT^QMO=GfyKcN7?lGxf7Tz+_ zk~@v&Bj*Z@YFXK4@&;qW*Yn4#@;`?kgoE?e!n4{$oeI+SHlL4nPpygtpAPR}e*n0r zJndiKA{#oMiUxYv>|E=cBgVM-f~I%KFJ48!KE!k`fbpli#)wU7{K6-(pGT|cZ-Ui~ zwHFvj=_W8gPa^jy;Y581w4s>;628CBBCs#2US@#)MTe4gIZ zn%ejS@{4{qz^Ga|=VF7K0|5(r{24o~aah^3R?Id#bChdAuD=8FG!3kRFJEwn{o$@2 zE7^Wy2Jtt#n}1-?$h9S(tE~?sa4STfC9s4I}GG!u@+3<+>%3GSxXxo4>i+ zxXdYueV__Fh9|M7@n6kgaWb?2vRXF(@{cQ=zSE%5RGIrs?94j^2wej>klb<8tGCY~Qy?aDF6aJ*mf{!kMPPf>JssUXjFzTsPyHnhQP+^eB7 z8%Oj(CUfrGb1KtZLXA~j5UKDoa79Vl75E7_O3s+1x-Sse3^#>Ay4`S{uW)aWoP}}z z<{q?bm+T++h|cFI0#NtK7BV%QWjn+b`qwR5=W=P%)v;*)a)m0ta+igyC7b3%`qJXt zJ)gunnPx#tJw>?MGD?9JbO9^PkiTeb(9|Ds1 za#_;BI|wykn``I;WytZCeGK@EZSKM_@CPVCkq(SX&D~6ZzZt4jLLIL)jE>zhO~liS z=1wsV>0Be$N+~$tZ!$=oA2yN^+}y8XAvcD+lYj9yD|0xoYly!o^A2^N|Aa4SKr))_ z{Koex8H9=EA-yn$ZEs%8?4#^c#4Iqj2l?TU?bS+1U$vr^`o_;;0%`a@|vD$ImFmIDCkw>sZW<$%5w9kjG+1UVNMtkuyY!&PLBC zg8iIupV7Q()}~m&r!&l-PU+(FM3?*Ydx%)&O|vBnvF0oSb`640q8&CBGoy>4U0&6E z3Pk8e4@}bJL%s@?_5aWs(USgS9YE#FSjTZt#hZIbS*=RWv2yz4UA|b>mD(w~yA$WQXY_ z=ejoER%#8T5Tn>2rQK4zj%o6QVuAKB9~6D`E> zM!ft1J42tm&NF!tUA1M<=pCBcO+EMvB8)0QW+ii@aITDuoVyi!ZZh1^u0W!%bzIfs zei!ov;N#GF9b^JE9GPlHpuq*^y}N(qH(yMD>Og#GhP!?%{{7PMGL&WIws_huCV51| zTfg178l1x>&_NnMDV-|X5qam$%lLb4t<55FD{a-n&H5MAJ~s9e?e%}>>?eIqkD9GJ zt-QjMOLJ+{hPgF*s65rg#{8j53eWC9Iib8Y6{2albeY!0_U#2l@SVGnQY^o20?Ud; zcpQ+?mC>voJi0=}h|%0TnDJbD>RWL1s&Zl2h@DU&f%tkhT+cEbj;a-oeV*d=`;Ooxzr-c`tZa2u@I@?ib(_`Trp=x%)fqII^wS*FyEWF8J5S;Qg3k4&H?ib1%v7Q=JvinDl1QD8R!0bdLG4GCOtqPaU4V zC5xc=I>qeSQ@*uCTe_SjMIl}Z<3F#4O^WM-Z6|Ahj;mS5H941_N;=3&=}UJ>zq>6= zSGIALtvG}6cj|K-8QE9H$y7;))=Uj*&xeLMw>xh__i0VeaZhRlLQC`xq>CP&)hQrQ zc-VAiHm@z%SCVti-<&CWtZEyN=jqZU(Vj;WD^J;5<im?p@3{4JBE}sfjN# z=U?QA=$xXvJ-*k{pdT-PPjcQK9}Go1A;Dx=F-tGyX|*7ZOPQ2wsJY9=eKhtv@ibnv zy@o;jWl{W9{UYMNrMkpGxqJhyWmkCI!_KG;huF)jmMTPNN&u+|NTYL4#jnJ`UL zq-OOWY7b8pi5gSG(cPoswebod>Q5Iver7xQwgKy}yp+&RW@0ynFQvujyMG`ZSI0Ul zomBu*R*GfPq_(2qY_^Yaa!q39yTVez@{9LO=(m0bZt)GcQc7|fG3{j@YrmK(3O-Ah zej4E$htvX9I=YD=N8=K@i++FOiM$c-tXp>}@Ik7jqwM8VLPCw4JUosY%)|~#zTLNT zBQUW+5!jVP<;jWH0q{gu?F!vz81>sIjQrtoA%l9Cj;j;Yb8zHu=(K&Q_pvkE`Vgq3@W@H474j>C2Nm ztUi6a=oqi||%gWHa>@~3voMQ+2m*?qIKeOuWsVKSW4C;!uTtMpxk zLF%3f{5V)xou1{=^K^+Wt3SxBae!q*vxT*KnR*j5sbbJ*LTuEb3tQ%bD{pX$)q;)f zz^5|?+Iodkium56Zyyl)byYiQZ1>CW)U%J0Zww$wJ)JZSRd+u$nn?%0{&WQOmFZ}z z!~Nps6MKny57(}!EPHgU+(d`F@_c{ok^za+Ms6>)M^!Ky$Y|@?vBB!_(@-;{X}5=q zflB9hYITD?iBx;LF0uU*C%Sys7;+e|c{Xw5{<_t$CwyKFKE$f8e<3UQ1$l{tC1P)m zW^aktb?AXh{-?4wH6!bkZ*Jw}9p`n2qffHw`2>9AQY^8Ckiamg(nY_IDi$D{V?5hq zz4Qj1x2HAm$_Y>Ao%7Jz^2}7gwEOXlU=ry}UXp1>Vvzbd0qz_%y+)bBfK6YcVqk@-o7I~)&I1;kWLDACY0!4Sdr_gQ)i*MR3qM5 zgCZZ!HK_h3QW=>t%nZ}EP2y8eao!AlrYzpFLPvIrhO!Y8^&3wqqc~|zDB?B$-lk@me{Eq9LK{u8MbT^9{fb*(z+O>EBC$jW$5 zwq>-G^O;P=2%?*8CzzZ$a`*d%J)UV1OeyAnt5tPnm*n$6Z z$&uN;>Z_N@uA-o5mzEX%lBPNuGg&?_32|EG1;=ef$niTFN8K>O1Xs$D7Z@2c^*wEu z{8wr+6R6;|;PyDj~rai@lS2bdj9PB+G2eM(4)hFbNy3Sm(B}O$7jXUnOr6vYl zHC#G?!&SsrFBZhxDDmK-TjEm|Io@hQ>%4YhwK(Oti4S2x?V{6`(3ySvb$#&L_xB3* zcD38&er2Ih*nFk0PPF3ep~iOD?zI=Go)6mN(_5?WNUS&s7P&eXamO`Ix{(IefphLx z&H*yUnaXG5FuB#^uXSf)dCxDv>sBRS2Y&6hj0|~gdH8fO{ON@~nY&7APOTjsrxqzp zxfAJcxKOEqyD?&76GwGhZ5wYPWeW^`%Chu_bgx$sE zouz_VTW=w#rVCHf*U{Z`TT5A=kzK6MQAXeE&UXr2yR+V=c*(Z1g)vPX8xIm6;LPd8UY19stTo*mOVAH&V@!&uXMxu(jp)d!7`#jF!x=VBlRl8nxLE19 zY1^ElX%gfSF&*5{lVyvNEMYTF0ZHAg3d3I3w|+DVByXHTs9<$e*9RrZ%;PW3nn zFwW{^+7kuiBg3c}HsI_&fcNnD`qHFiwNA{m?zBPu)fwkX+6Vmn#Jdvw&Wf<4F-SB_ zK3C4T7`!XjbL;yywj?P2j#!q$eAZX`IFgRbbG2~)xuVAjwv(S5N>Vip6f(c2_wJ!| zFc;K3qPWS=%*IsBq{UP%h7H3jhzW%SX?SL?1;qD_PP|pSSj{nYVGFLK>IJFre&*F1 zz}{pv_rLF4IYH2YM%KWf*h1x-8r_E_T5RrS?Z;?5t{iw$u=Z?n64;xu`X72#c-Bj< zCO+bdJAjG4hZk}GkW-Y@z*YM_HNPnHvvAeP{_xbI)Np_IfJkS5L)Q!qfA$K3sDY)} zX8FW#Vky7%cLQ7&dBIw~gZ?-O2&416<{e}jA1*9HIngN^z`{JTXl__*rF*{1%Pg?A z0h2%4YsqXc>UrX$mb#{(-ou<_@uZs%)*|q=T{KZ^&+xNabW}9LS-H_nOU|0_KA%1= zN^Zr_!Wy}67Eh!l{bbcx7L=HuJgF)}&Zjr^(>mp;_tV^FC^-piN_k(|Hg+p_zQEV& z#eGQk`4GA(cJ6cAv*;(6zW#i$5x&+>e1*#|!Xtjuf{Sd6yCh!xEB~UZpfxs%I-}%Q z;NoVxy8`XU_!D|1Ig^&efNZ=VNUSRJK6ZtL#WxSaf#kkO!tPsY%67dHk0|{873-96 zCid+q#72*0_w<|7MGT)sZAVPjMCs(6c#}TneYn^d&Bw-Yvrl_iH(5F*b41^!$H9h( zk7HKV--q|rFUtC)%lAy~URO!Ffhn6$YueSDGY{@O`{G`h#^|Q`IWvGn+r3r>UI3>% z1*G20Q-?H)Bd2*V$A@mKwCRtlXtbTSZ%=Bf@pv%JpUk{y9CkfU)KzFLfUTW3X`CCg z+}0h#$0zV|Jz+2Cz?Noks|K$hY?wOi55iv!cFFF=KTJ0?qO{TcI?2Fc>XDvpVo2rn zjtUmoTygahGU7g&iOlGJ{@Ur(=8Myx#a=g*EZPzsE{ZjbDZWVgP%0S`{iIum?nxzs zy{Hr2UEM*kjs*u_1|ZLPk|jwJsdT!G_vL6OTxC$bOQH^wZyaYE$g2sgyqQMD+0rF) z7VhFjgTZ*GBNu*iwAdY6wq*;8a*WHhOpdoN>=RQPBz8ZwQ%=kr36HPF_L^u$K~V0c zN)rQ3_AF_~I;%L;o9!T{GNNu>XxPd*FWuql_%%tZNqg~=!TGbW;(nT?$M_pwu_Umb zb`|<*`zauPX+it|)P;A~qKR3uMn+-Jb6dG%zh68d_qFrRyGa>VpQIZ$No%Dj^h!MW zGXuN~Qt~NJSFJ}(nqH=SfMVfg+Ntc@%JGh;%h&G2AHy<-#S1W#qbAoIOD&NKns@5) zTh^*R(8w(TS$7X~<9D*I4FJCd{kpLjkc7Zzh$Z^eAmKjq~FpP1m0E=H_m+bT5>6u6O0D-#-BnpHSK;u{zEohorgJjTP zrT{gq5gE=8dY1Vh2bsOGS?h!v!QjHIA3y}I>a9a+3Zu`tbe`S-M=}^8q<2)=;K_Ur z6fQvBFdSTWnElRs?5z7nHT3O~e|eT-4!+UzbKv^SIhNIWVl5z$~*r4C%l7KVE@Wb57b8C-HsYcv`4gY5?@h-hTE7 zKelm%m8oIs+^v3S8q#-h`~qY`AIu1@LkH89dIS17eFy{~K}^$g8wKp9;-!zb!N7zp zE;G=;DTB^<6DUOH@VL5wczZqp37UjpiY*=s{fK^soEVTqYJRF9&cB<`v7#lSFe9KMSihT3EMwDd5w@Cg5g z60#S%??0X3=QmH4?NWRnK#TdM^s2;eyeJ67KIk9lQbYgw4}WXOG+)EO^uNdO`Ip4( zzYuWyXLOtF0fXa0yJaFbT*dzhg;V{y+{gXez&L{c{3{CQng91GoLV>kN#U&41PUj- z*@C=rNA*8R@-hoBv$V(xs<8%qx_*i|j6u*m-RaoVRw26k?XM;;Uep&P-FbZaVkU!V zh$v}$c=OeE$((dw9qaOq<(|PVkl{xZE%*8rY)Uy6Y+4LDjM4^iLySGfo5#!38Qro7 zA#!eztJ(dR@BRPuPcVD{%7zf&FIauA0o3FLiWRKR^-tPoc2y@fe# z+-PG$7eJ%sPm`(0VJN=8LOPKTkz6UqM(05e(+8`cy_E0by_0Q@0^=y+C0BY3bjYr0 zr;ETsJtkiwficxvUX4_@%l>{iBlep$0z>k2|-mG%h zccfmCt{9CmownRwdxnG*J+B00<#{mVvImWe?W6qRjD@liudY?lGVxo1g0UzO&A{q6 zu#l5?l`qjH2*u;pZ_pbDgElnG@6PvGY?dA zED!3-RKx!8E#%bo$deY;-PfC8N17}x(TEdW4%}V|gle)j%R7Hwd$m--Je1CtyEUMoA)@ zz{lzXHLscMgRDA6S`1OCYJ!k}%wfy0@Kx$$v6cRK|A1@RgK4?F82Z&lELUIvWQ~k; zktpZU{F06=C?vCCxPQYFhJ=;%A$>1_=YYbi_DK4Ya9ZN;A<5Gkti{DJl6o(-tXfQ3 zTi_&(AxtE4E-S>G=;wU+>H6yY5J{s+{3i!+Izy*$fU1&TM-05u6_|~A-kyiypW3fW zAp(>Yki`=-LkdIN3`aHlh6qNN{L3DOkq4{l-| zb7`2G`Sxo4ku6N$D@_9-Iyh8P1>_JspMlyj_er-83sHCt3$OrC!FzU5_jp>Dg&|3U+(Bdx{cWt;N(=L!0^HJ{*u16Z>HR#m+kIcYd~@} zXCk(ovv6CLB}q zm03%k_T1VJ?d#^^t*N`E3^kuaO>uE)3q(7IJxrH4CTj_V$#7|vYbllX_)3HFFlMSI z9-r^Gsm%h*&orHXi#=0zt)~^+MmQ!3BI8cf`C404!tJJ?qYoSdv^gYKCSH+R3YJXl z_CQY&sTSl3jPwF$HXmM5N;z~dsCsQ5k?YFzLU+KO7Te?&@nd9MfFI^P*|9aDZidw( z(%jFAujY|59MblGujf{-!?Mmnl$#!`4J59dxXBqtbybo6d>G%7Uz`&jhoNNWnj$h0-~$vHxyfxYJSQ=0g|srDF7VXIKv!|aF1Ht5Or zzdoJyJ?qgUleVm}$_Ip&y0svq{MME?h9{-aBVP=EtxSgw!;A}7$u|OYC6&hq!%;>d zyZ2)Qu~YK9PPn&u3NqncR1ab3S84RQTZMis(Drvb!_&#G!}w;%>< zS)zI;t!Nb+L(Ymu)rIH9xHiufn((T{F9(+$;izorRyZc9UlAJV3`CYa zjMe_Zp#poX3k0Txmp$z$>1{`e-8gncZ`VL)ip_C1uK74oYYi%T;(t!e< z8}#ILuzj(G!xJV-r}`XZHzxoB{4(LOQW-3@l>%A-VD#yBu#!jN%YK}itghf6phmHs zP=s@B!2S~D0Y{?m1pSsx-_3D>%gA$U1!%E4*qvufOF(KP2Ww`K%3&YgZm|044kAKU zFgyxb5_DhS?1b|Vx7fCCdu>nq3{)k2`~Zvda~5ROe8BihGhRLmRA_audyWuv!-P#= z6+oCS4?k2*AydruQ}yk4 zcjYm%H|-h5P#6~0i_4*PGEosr1hJW$kv&8MWE^AYV92|whkb|H7YPpbMqIm^g|KPq7fozNuZHINd@^3zI~Z3G8KSau9O=scff*cs9cAU-lZ6cV znx3CSz5rwtFZLis_~#{(nfN(DnOD1S(J1f8UwdA$g0h$z8&+K%#!H1RP*Smzl=yE*`}kkA2Z&Gz3K>RKvU(1Md$}z<2!PXZ|H>@r zJdQCxwzzj+gYgZ}M~xx(_7S4Tfgtzkl_b#IU4prPK0uuiCk7g=2{Zi_XI!@d_;n3} z)U*5|P`on0Ul5CK;@d&EfzwYOk-4;Hs(FGh0U5up0T2kO&XKYIItbo6mXP}z(CjX^ zuR}Ydlc34&1qttJHc8-XMY+k>r@LRC1tR83ve|-(!_~8JQdTo%SQwMRQ z4!fxKp10WqqG})Pt$GwM(J8&-tHAt(P|OLVCK&xVqT+1@%r^tbvkdO}GBgK+TFMC- zk5KXesslRXKqbG!!zr+wJDd`a^dCQcK>piWETmEd&+v}AU%Eq)9P^0LfNh@iXEyXe ze$jNrnFN*vlb{|z*dY21O2{^j0hn8t4YWe~^|>-eiKoK}y|2)Gd%FN~UC^SI%#$gP z``T{Jj9J1p)?8j?%rEFNe0Uk;IXM68%s1gOTC0U#Lj5)D)Do!E1B9I_GWfB~4bd)3 z>h=9KCpQi^PrDQ4d63NE5j+Z>e6XiuiX5C(V@+uLY{mapnsWGe!{8m;uHP@ z#(bTKafRQT;=kM@=B)l46u!t_5ZJIlFTMI2c!h}o?#HOQ^E7{)6>11*D|Fe5x>nIA zFk?(8IeBW=c`##xl}q_{#ooVb%+bD$qoTRLqLkh%0W#e{I6x@9WI*`i!)nmZcKB7l;4S+EXgvTo>) zI6-eQmYw2p^7SwS@DO-Cc#1ryyD;2*y>8sk{s>zh42ZN_u3&UxazXhGAbNrh+?NJK zE1RQZKdS*hPh;G9h zdStlp{aRC{7(i>4?a<4@5UH20;XGg{reSsS;&JR45hQvbWQzH=_ynjNv4Bg22yb1M zrsGa35m$VV%C#6uL8qEOSI?OkC7l4? z?GV+yJ3O~Kru}+spH*~$vBW&nGDSXbjh0|*3KvsoDo-V=nNX6c z6?jj92m`y6GB6hldVr-gz2iC3&Ts;yE~{}i0CR*DiJe+le<)Kun{z+LE5x@OrxgHa zWA+d8f|!@pI6}lE2{TK+ofn|JNo3Xd>$lIolSuv54#8?wslM#8r;(z!db0$Z3r4o{ z|0AZOe+SY2Z`_vt+y5%HhX0it1ML0|K<&8EoB|jH7sQf+-L(_Ei7?`be8C zY~PQH|0`RBaO^}WED8-0AV@DpPHu3O0(rp)nY&gJX+4ho%l%#Gf57I*q3}Q}RfYBYl>@TP(n)&oGS7m^yMt*055=m zazFy{reQzr0Y=5Za7ONN7g$Y@(OLnI0T|kqzDke0Jf$!9peGE);QRiw#Ip>TTZuWX zx4as?WWw!}Y@3sMsvmVRG{CO6gA;~4iiSey3skWo5(Q!H5F(9;bHy$8@l4|ujoUX!4`4}z7b6dJV8p&6CZ7W3%LCE_TV^`$ku&Hs{~_hGHbf0=l~FIqC6r z(ApXZxj^H{P?GPv1#+cwfvfG*I&ylOf8h0CPYF8k}DmDWGr zKOW$TIIu|Xykpy15F@|DlU90Z-cK0(fn~TxxuXTZbu?~XWfp*jf4?8+EMz+ZL8+@ye$$n!@ zg?dU9xeUX7semH0_V*Mn$Irwz49yD$t#L42hYO2pX%_VxT|)3M}x9v$=~5% zn`{9f4OfLQX$19g%fFL*(OH4kg(G?)||psD+GLt*DnjmPU>ae^M`|}C(O1EyIKN~ZW{FXH_E^^ z)eU{U8K|v`sp!~j#*V==@+gVS1zMdB7G==niSt3Is&{Jr5~I1S-XIAGJ=rC?#E7=p z$CR%DB+{KI?zYcZ8j5ExF8I#JCo#e%#SMtL51=#{<1NE%>;051eCZKC*(o@>E`w5= ztI#YXh@Rv8{(@)l17*`GUhfg9{z^w1w$E>^HpW5l5PUmt&r?~DS6pTxhx?;(?oZK8 zWL1R<7aHz{)ql|~fy?#E*8>475t619bV^+u{Xl9&c4`O*I%6RMX5?Fnl?Pp*u{iA< zxNa($f;gdJ9GH#~lqpr27p##i*@N`be&Ag}gtf(88r)B*suKnh9_`m)r_kv?z6LXUoIDnm-!@!DAh?2TvaQ`{4*Dp9K^eVuC(g158`G zxqFLJ6k!O0LH_w%&7%P<;;F-N$Sx3qX-<00ZW{_u3UV)^ics|ph95AFUS;-^JFaxz ziCyO*73AEgy2&`h4HRB>)nXr9P7fyrEJ;_h6J75+Zu!GaLsN#Rby%^T!Sz~-#!!fF z0lRM*+z;u)eS6X26Hkt2P-tfE$tVlU{}OsgKSQ&(is}W4`XsbViV~bEKUTU=ys@`} zKVUPy>k=GJ5#>n=ojCTN^{_m9n;5A_aa6?!(vT00$nrs)N$1VFd)BgSj0vk{J(?Eif2 zpr7=1VXV;+j@d;pVOEKmqUDC#A@c7}XN+tE{F!EL&M@%8oh$&xM*;^My1auJMBq#x z6DbBjE}-_fd-U1nojjf8yJQon{ps0}#x*WgyWZ*HfX-+0gbYX`k&Y~_y{+|gL5>a}p!0a5H;j1lB4kTa@;TiGp zlKLJ*xu-H-mTqJB#9!<^Uc}y;135q$0wB)z-*7aB?vQNadm%_Qa)yVF4_(J90|qwl zYk-Ko|Jh9nD7q-Zp)2twa-jW(W=r1o5HKI~`nf1>(}58U>^+WX?ugJ6sLS^}!|@=P z3R@tq1&^$&(39+GO1gm4a2?1}XIa^R$roauWL65{x1^_@7XfjEd`E=>kuPTqpzngA zVaH&*20@gVkGMNpvYIrE{^}<}RP$wQ8ulaXc1JF*9x!f0B;m*L;%;M?z(8nb)#ee( z{Kb8z|H65_>)&)=PQWhZrxjB9=*=M9;p@;sISbANL?%Fn-1qA^Z+%N;%7%7$AU>dF z1b*F@{xCJ_glYuM1gD`%p#6ItK86N7^kO34-yg!QaXkS5LB=9CX*>Y;~PwN$EYR$%f>Q(Mgz8Z3I*SE&UKN}s;{(_6l z<`~9BU>-BptA1`Bw!ZpXzMty$O$hC~F`-fpXa@H4E>@uEe3J748K!fkl|NfM9x|w6 zxqGJL6FS}~vxB=i)$=Qv3J1-s@b+Y<#WZ6xHtjDoto;90bj~umtwjK22Al^H0RRe!&`C@M>NC-}c-U^iiF<^D)+Rjqd@Ks6TPD`mt9s_&I z|E9FB{|cl3e**yG|JCKfu7YC15YYss(lkk}n63YKAQDl&1)PX{aOpa2LhT0+;QwT6 zgCMhmC}#}WaPPB-z`E{H1an@(B|ETs?s&($a&^*zAl_H>{U++QLy3}A?qH5~@TmWr z!vs#slK<2x`kxFFMz&D*1)9?NP`4li4?CE5=r|?Xk?WMHF9Y*ur*{OeedA+Scsd*I zncXISK=DlwRbhpy@>(vSiFK4NP4~1x2)awd8Y)cx({A=J=L<9VX;Rg!glWyq3dAOW z!=f`BK}t>SK$qDGrVud7zw+AvNwzi8k)jkeM33%lSq7EQdkDW63h4Tcghgpa#JLs+<6j*~OmOU>-vBwU^ZhWwt2X-@V(xD+P`F+ zzf~JT1Bq!0Vs8ID`nh}V!q6SYX_#FXBd0ySi!`J6hbL0<3S>3A9(e($qR?yW(534a zl4$u1vZ;Qd6HGAZcv{nQ^zZHBw&I(g5&Oi+ZD!XQwWsMbE4)cTe~*c&-z{zUS0CHkgKslw zZcSPm0e~d|5`ox1vhRZ#2FUPWmP5SJw#jz$K&$Gv7ss_4OKI&*`1aluJijzk1*0;a z=Cs@FlYu#1&)_^#(Pd~^=fX)xu3M59WWFkaUpDydjBiie1pRV(9dE7xB-mHIZ~Yxw zaKPDb-^eFaB#D~VJh8s{>3}NlP15j61>qzrA5e>so#H6*06In?>7A21Nj_fr4}c{* z22faok=wyZI6t$$TnAEBWk67T{3yIn;S|b^@3URb13bnLx~pc~ZEp59&WA)hG=LST zj)J=f5`&?kT;W%(yxUQ#0_45svK{VcCfl+n@St%BW5Rl)62P%$6AJYKrn89Gl|VH{ zNN|$)kOlMNN6=w?>tGIb^T=_h&hNAxy#n7ub_v6|^r!Mq<&`36Q*`Z!bwN*X39zpH z?I&UO8UDNtfGdB4h<3KeGro_<5Y^#pSFrD< z-Z=$7{}+1!?}*qb%tl?#=j|(E*jv^BzkwI38ALq)BPsOXvLjE?9s)#UM(*~5mUh`* zoqs!;|F8GT{{KJmKaTe(eh_7VgMjlRv_k9w)JH-ASSn_L@b(*);0?+G;BbkWegd=f zL9c-Xehs>HB>?)`0cyc&BhU$m#|Nlw@*fX)&x>Gsz0|YaXNSfr+ zjJHARdlWr{5GN?{21V3^fD~sQ2$2Mc7|hZQ|H=jsu{X*frBJa`SBG87w-^E7QN<1+ zt~Z)N?H{Pzsk>@g>7ENjpSJ|9Bs}04N?{pOnH>ZHCCWzvWtBa^8DGG7um|+PGeF)^ z@7kGdX5ZO+3jqaZKq`cgmnP6gF}DYVrl{3Uj(#zx!!7#tjuOb}p)q%sB^+k*wZ<<D0W# zPo2RUQ|DLM1rF%Dx}g9TQGg97gEF0J?_XAk z2eSqGh0}*lS;^XLqE1!=bT#K2cp@nP_)33wFDt_c{GU~Lu#Zk5T8mUY^y)Z4N`1Z@ zx?92UyHdkpTE!*_Y$;Um*zbX-f(7Zxi|7)1>wAJ^cjN``8zyi znq8%ldf#$iFW=@+rJd3-F9nL2vWoBbmUh?}++@BZj?G0i2Wo_d}9kowO|B4x%3k_RBpHD%7-KN!0N*0 zKGTa`h3*UP`ETfvQSVIhZ$JoFl@;rhecz7@`&|BU4{6}x^L{?kD)Z}k1Vw~$MlyC) zX_L!3p*G4BHhGZDiKr6~eU_2Dwrc zB7B#YJI)!Nx9gyhI189*G!@$fp`a(gFKnikN12{jkL`ukHOc#3=RDl1Ce%|#ZvrY6 zk#rp-P{q(Mv|C_~W*psZLl1O4{p$~EY&zOcAbKx+0I0EunpLRxhd1W0w;qG_uB`sB z-xtse%?1Eo56x|1b6EbWK;Hwi>wJ(|bV4P;vIV8S_Mq&i13gF#jzTQDp(<7WqjKS@ z5hqov13YiJ!oYC%bpfF}1uT8EXkHnE&hm2bXa^&F&*0n9RF0xgP+kWWHA$Q(2W7{= zwk>>B4hBm>(9xv?<&LonK#nM2|Dv$~xT&WS{KW6jrQZW97BjFl1mL2m1B3b7F-MO` zEi~}VhF=FRc$Dp=&R~U`9SRIJ_npW>-D0?tef|EE&IZUM1{SAl(4B}fkss8J_{A*s zNWp&-JYcpU(Jn=oW(&R1VuT|NVX?4BP&O3oO{XylN5Q<8hC->U(idZ0HQ4baQ74$4 z8v;;@KVynr(r52+0RmPU-_K-sf`!8W>A!gG2&rcKbDpPZW^KHl%`)d57-C*Gud3v*b0 zZy1{g!w7~F)t~E+x4<$H#O_pnBnOh`T;Ovo_t=Ky9%`5d?Y*fYP8fuF#O(5s8OJne zlb${#;ckBlh%61FNj6OUI^5pyat_Q@fF@!Z$hKhc+p5r3;Y}R*S`QJ^=p#-M3qAA2`1%~@S$3G(ax%@pF;B2I>0ut zn1MgA4#Gf& z_hh(5*X?OV^xmWqV$2*AAQ2~xY;WTSO16h|fZ}xmbobj^>!Ea_==9uJ2@jlGEt~>- zD660bFBh@ZUB$J%Xg1h@l_+Gr6;7tX=yV!i1!GPMG(-3du~r8me3rKy4F~3+h3Q#x zb|_4B^_(%xkWbk)CB8O#V%@9b_Vm|xuU?02N+{c$Tp-C$sd7Ux@Yzjxn&kk}6co5I z%oW=I^8z_{M8ykZYuKpkpnMs}7(R50HeKb;=VsrVENJzomYlX&o% zPx}6XnUykr&^q_C5=fuT)OD5D2M=qsIw^*ee>lAa1Mr=sr+c7s`P~aKUE{}H;A5zI zE2kE9AZ9HP&5VJSSO`6aK9ngl3kRkLsDSE(W+cL_<>oPur5`d*ax9+4lqh`i|hdg?1&GvaYheke5}s`buf6OvU@;qZZDn6amERZ z1v{e#xMU|7g%T1@RzuoMRLf9&3ldj5MSMhObfMq=Bi>?9yI`U`r@TDbUC>gqM!I(} z;MsUl-scb$96Ag0puJB=C%0w7{8~5Z3NPG#Q(LhKaOL*zfLpmIcHkA@CrNRdoMRcy zrEgLsf_F|=(Fw{J$3O71XV+{T+|wfY>%+rlk0Z)f*G+fOhExp#R1Xc%H??4EKYSC$ ze^E>D;!P_vf9RZbuu^fKahq;fvQZKr3y;sUNpH@+>bakD1%!{|(itt9uaNv4?XFbF zVQ5& z%dT^X^G09iYa>?p4Q(je3U@6;|^jts$H51DS&h*<+C z`5379?k1S1oskSbEG2OX#JNBZt$IATHNkCgy z$&}8e((~89BURk@kLV_I6+f~UpE?NV5iTa^1~&d8*69<&nt{EaC*}>OakD{}jyEfi z09(R4F``jITnk_YFOy&L_{!mZKQ21XSlTx{Izpn9El9w95)lG^=yCV?)+dKR{OZc3 z;U6~nSzlpA30Lht_iccaLt*WO!$p?-Y!Mrs2-YkYBdF2NVIK&y=jaB5YwO;$-;ld7 zGF2rMDy`>M3h<9OxTtu)?i$u-OxyH?O8DE%<0sZlxfS=bezvHE%j%mA znVh+>@vv?WQNrB4`4P>w;4GN=pC!HLKMZX55&3eH-M&Btj5(%$i~_K%&wAyQG_S=s zDYcb1K$Kh%d=M2^OCQDL);_?qh&3w1j~aLe{WO2~lb=uP*6#ixH>U|iy&sa#59kaE z`irYr3S5O{o3x#R-}N^B(9hQ1B&L!z!5^Je$Fn-s9cjeh5+!umJU zP;3&W!MDv~?yh?Zw4Dv2{%1R!jr?DC2&uM-WEu9PI@BQ(=R_Vq%GK4J3_uXVfLr)1 zfcDC@-jOBe{xPPy!_!0gX#z313jPpJ)*mW9J$M%Iq(;Np(m`u4vQ-N2#7^_qzwi-Y z-G?7qzb9PZ%|;J6y|FBKo1#1xm7e#;yZ9oU-X%R&2*Asjs0mULosR4=h!8KCW=I`5|7#b}aT2V?8UV_g!lpSB2fmwo-8rsX6&Ho^QbD2m+;o8jXvhslEMkD70F zqbl`+sC*PtK2BEVf+x+B=f@i#jK}hGZpP&}wJ~YoFrA2xVxMMqV*SEnG7p-hKby)1 z)WDcn^_B2X#+x_WM>75#GZ1FW%^hXq|M7V%cK2v(w6 z!Fld?&*19yBR-z`q*+11tuJ|{myG&a zmP3a`o*NsasCsy`tap42T{FAd4l`(Tnc5eAp+RZFvR?r<&BP}(c|5%r$C(mMMz){z zaW7d0xCe!E?pV66Eg%=}go{Gg~Ah)Z_%H!G~-h_-!V zTAq)fdO^_asPg$ErmE2Bvc}L}%ud@l>Bnq}OW##Xet+NAWqaI=nr{J5(%yCJqfe|0 z6Cc@lG#cPjbSatXtn?nWzdV{KJOu@)3+}K(<_*w_w$IW(Lo;lr+Kw$kZOEGn6Jw?y*m<4H+I+G{umg^%5n82hMVmhEzNO0O zaWw!)tNX;~9c>cgg_#uHxp6Wyx_s-fQAtC@7cMj7Rs7-h3FBz#DTVA@I(L`F+(`AK zPpw76U2&{;sogd$M_WM@Wn>LqS!bpAx6C<9@AG=eY1Y#w-uxmSYhjU{9^LKV&Bd6@ z5j}c`H_wrDW!?6!yK9aU4{ee}lVYgU5~ra{7=clJ^OgIL*oMWjt{ZC6#g2!Sp2oc? zk;bv*M8y%lfrKD?yp}DwTnZ$V!jg`sBI7?nWi(N$fLlTi)({2C)x-$Qy^PkLn5Kgs zvJtaY3xK+==zTaJZb^;xNHoY-fgGX!(BrzR}BK=WA9G0tmA8^B`)jh zwDbpEE^i;axNbEqdpbWO4#TuxVeLZhA8|f3y8N1>%hSb>ZhAfhXObh6r)(bTE}y~p z0G8^HAy<+z9k%tlb|qZ{sGf~VdnAJD)d5s5nz;4+BQRFQboq6zN8_p9?21~W4Z$6} zhsWq+NykIScReM@9TKzGxi4_;=FIS8^U>Jn8U6Zs1i90d@*3VAhp?RZlzYkD#+v7d zng)F9E={#BmIcqOD{BpMF=lbNtV}@3MDKl09lXRr^m*B*m|w zIvv8-*Rsp&jmhkbF>Rr9z8a!OFh@1h<3=Wg0jsMK4+-*%mo9E`98U z@weH3+Vsz)*U?NQeHJucE4Q%|KR(5O?v=>W({?g5yIFh_tz&_^asfdd>!);1h4?{# z&X{xN%u(az`f1^M8|foqc8yO-`_p4?Z?D&GtG_fO)2`o3sSqMwg2@TjFFJG>_ePyn zxouDrTa5Q_aL}9tLq&wNlS70O<&~#_-GNwlq!U!Lt;wvu9O+J|tSbTgZQrFmB)tkf6`$V!?33wX|sg`MLxyV)}>*lGL+aZi$%3$IxXxM zs#upz>qv-!ykeQiihG(lFH-JvIJtV2l#HpDQch@aRJ1BsHI=k4wt^gQ1#UrDOF2r) z!|vXZa#~$Z#TPtcPsdKx5D6OxW0osB&iOw&i@{@oh!P2#RgQ(aV^Bp$OFQnhNXZVv zoPFVr@MCEH9DE)-KNavs0Bor=75RSL>aY4e)EpXT%x_NBxIsTaiF<(;i%vlOXAAZ- zazgo;1{+;9#J$bBVik|F+lu{=S{r~-?=k#AP3+curS3~YN{+&S!LecS-26~|a+nu2 zJ4EIH@KW4LhBnw2%ECuV6F68ec~iN8lT_U61U4NkJR`hUs&lyClQUkk&$%fb&&%*r z2lPguzma0$sw|9`gf$N|a~gj`rTJz=`q`zME*D7o?vF@(L&ZAJrtEYLuX{5fOg&)4 zL&`aS<*nk7m(26b<9NJoYa2Q&w88UWQ~E4pOdvV2wauww@tEAq0ub%Ju$nPkfq*6e znQ@}Rs~Q*uxt0ubEaZD62EF*ft`d`pb5fig-|ho629M~oc;DX)H}914V&W5Fef}k( zFEAEkK^zT0EG@;3GH6-9ifhxaDWymfKz$W&JHKNI1jya%fUA&dJkPLBoq?5I_u^zJ{`@S-3(|OtqJymN7shOl_F5*2TE!qJr^Y zek2f{Xu=ZJg2Xy5Ol8F8>vobB&RggjX!>9*ltf>QDHzi~B9x9*?$qlk8 zqWp1sBn6k>Y-osuvP#Rg(y_{7nP7$naw~#dsYr&<978ab8EIPUJ~=gEQ3fc#=_n?Z zgNd>RAobzUekGw_=n{qfUTG8kW<1$jU@UqnYVPRiK@pzs{X=Dul9l7`tpc=gb@*DU(9%85`C_fE817gVnhmhcq~*^7T{{GFt7fGYzBv+)E%xhCSKv zw0eZW0rHFIDoITZp~D6IP!%S@uQ`a!FVKg>%o|v0tWv%f`Q4PKXN_5Uh1(W_6QMa- zA86|o?wT*c^Wmn?8Mx0Ux3&(1@V%{7z7!i~Tu&a}9rt!8qMwwJbSBNn)>ER4>EJMd&R2XPXh`Nv|uE z`H1Hl4_-#wql|u%)Z~DA!It`rsp?of!u#Uq1&Lsb&pjsY$2JGfsOj9_9wdri^KWMM zN+2m}_PjI)xa0h8D2_jH<%>+z6*0gh^J@Oe=0w4ZUN)+@@V&86f!#yNP*OMZi#J(YKU zC4&3;@NPlZ$4RCZzmOTozZg`Z1MX#%6DQ>oa4&P8<$OrkB1#yOZ`vxK9MJ&+y|dFC zmT6zy>wRUtdH7(92K(XdrQae{cn!<;VTX!2he{<o;+*v17XJX3j=MY+s(w>3Nm020 z29Laiafugm^Q*-X`Qsf4M5dT>N!ADHGzt+Pnjl!GG@U;JpG{!Xc=~QOIPpmy8VSSf zuk>S6h84V~uks3R3pH~Vzn4%-1!`aG&g@NsP^Nu%WWc_b0(Om$G_+uGBFR6Mx8UHC z4q@}*>EINLD6vla5rAwh6MkIPwvuDa1z4<2!`Br?72epS-4&7)?d;6zeLuTML=XtuG|a)4dEAA@ws&120bJchqeNM5m1wz>aE2`A7C~@UC;Us%w5#^8s`J=Fnu#& z4}M~RtjCGcMYlkc~lRrs%U7UFZdED!jL%K@r~{cuXl? zf`I{cPL$NVUaVGsC0{=Y6**oGQvq*uvKF)D8@0>ad~yYcJi&EfIB?pnYr>cXu<0>8 z8+Iy;rhQrfd80uEsd>&iAwljJbr7I%p=I6F2ZEo0+7*wW(o>*hZcrqY$1*U9Dg)rs z8=zj!5{Ol2m=g;`$_E^{1YluX!-b$wE$3rR4}j7QR8GzM9#q&I01B!BAYCEoC`zLk zh|mNmBRFsI093aHlt@-@HucT}h~~8dNQOYADnX7@EFj$rfZ1R@07Up0s49Q!-2n=; z2L*^)FgAgENCza+p0at!$B zih1fmWqkpd+zKe)4kFZZ>3FHo0?xt;6nPACbx1zIDc3(Jsx*PfTtGf7z(Z68Bz&s_ zP9K_2Hv@)27}4QV=Vu_87ZjWx)1V~BGe-}~{m}ld3I>HPadNZ@M&1sZf294i{#o5O zCmJgF%{znDJQ@JdM+5l+aRb``cg#&dYDi7pi2L@Zm78#&@*L{0xw`96?+G zX>9l!<%X0SD52CKqA2?yV6xe=69%9TvjDZl7myR}Q4nAb2t)?l6Jog^SPw+B{7YPycitl%g^1`g#6h6Y62YOFWmi- zSjRyM9u2qx_b&i1%`YGW>ew1Y(sA{@Y>@=~tzlt-X!GO%bZEdc8W>9uK7THOm-csY z&@RA}2?X4vXTbv*P@Ny3{=cJd{>QMK|DzpD9Z!77{yX3m6U~Cax%`Df4-*UqM2Z1M z3bvhjIQ;}f;y%3nHwryRGh-`b#y{4~46as|M;cmD1ZlPFqxSX=NI zcyd+&B2&M{%U^wJx=mmcVQ_tL;`ad=!9-N(?|5{}E~*HFo(N?W-tFec_Q?-2AeLaj zMCGm~Dtj$hDI11hz>+h?TgbI@-@k0_#u(aKarGH)X=@*lpx-m1X(NZjFDd<+Qrrt$ zJ4q+Zc(T7(-@0pXF@D6kfA)({8|A+4!)cYnsv~XpF7; zJZY=t9ZBz3oiF0jvOg#7DdA(KBc?k3QYqg1&LsZUlqS!SLAPSvL-2eqBV0CTYFeWl0y`9tt)1YV*+m&<>wS@jW0r7e=UY> zSPhFR@_!;gNCm4BpTdmH(`Ltt{R+NA(7s8`0So7d~v6A~C?YiLc|~tYTsn z+Q;+uKI4|JdeaT>^)BU>`1R_LuLuXGEGmkGkHhnl<;|;YrJB&xAfcFTKF@zep&V{9lKFdv7%=ioz zQ+CoG_+#UQD&shX1^FkW@Yrb5vG`ky^a1E3K_jJAli@0Ja;RebIG?Zw46Fl=h!OU&d0WEjdTV?okbZs~ zQ!_OgL_$gA4zG8m*i8B%$*dGSFZ&xmD&pB{&Yj0!RK19|Vc^go@5Lke1EsO`DvR)w|ta^+L&TtQ}S88 zS{i#5%XAmj5b``iC4vkbSZFu;>N6`R1gz1xHNSab<~|LiEE5jh7g;7cXczsyI>$H? zk)T`x&lbFC+VH$JmCjQwn^9d5h zlW4{&+KcusTB()8rt-E?rzPvq-40aA*>8PF7T>A@HJL3GKlS-%)-KbsHmsl(coCF} zl{LSOcgjDpYK19)Z7|+KF}miW^8ZqNp@#JJc^h%$J;vUYv2znyXX-}eWj%r8p%>qt z+OjHB>FgJ$hG~T6I!Sgoi&dtxWq}DFF?DjcIPQCm?y)q}cMhvyLq&*#-wyzKdQ zaR)AUD)gngHy-Wh)qEZUC^vJhkd?KgOD~fpk2)Q?`zWoVc_%3NajG@*WmnJrou|X( zv$#%ccAZ%;9&KHEtO!q%IgEBr4Ft-~ZJHg^X2>2dg9P)i=QiKxJuI@|Atgr$%Awa`f<@5b^;>?c?$ z_t1?;@S^?BwX@xo|K>?RH*8o!fGKh=I`kAiL&yh`w`Cp!Lm#rgp1Q2Je9F#&xa6=e z*&H0GAj9P$6Gyzb;);|QK=a>bM(L~AltAIGm9tEJQD+i^!Y9yf`)0g#iLa?;Bp-N{ z_3b^Gn~wY@Q$KaZv!5NL zF1EHlqI6MQg)j=9buq*UW1Y!ob_pw>YJv?b#eVsUByXgN-mg7CgDbFZmtckYdy=lT z_otp>c2E**Y(>QP%vurK%1g89ZjnGtS|o)pp$K{{=yeMIZanW_Fn16hBK=LLG#VLZ zE9R}lAj9zOI1VHdG~uN!jUuucJ21Yiw+?I?CaiIxPx@i?ZFS|lTHS=dC%t2P7Bpdd zSu_*!o4PK}2wC?4|NhJU1xn<+GQmjVyZKugo2}86-e`rUY)N=0EyKbHb_dasXlh&j zta(*=UgglVkxOI&T$nY2dn?v^g4hk2bRK>U-tjN;z<5U>OPMC z0NjSY9CZRqY76^j_TE$7hU^RBhorWrx4EfgGPc2PGj?AduHBtK^6Co5Yd64iR0nYVLdA2hMdTf83#T`X{3on6H=NCo63==?#27_vP`Mp z_mF;SV@$a+NbLE7U|pa4MnrSj_{6W9V7STwE$@>x32162>qTn2ph7*Og;U|{qi@m3 zK5CUk!!3R4H(Vm(5_;C{*9Zs%8%LU=N1sQ-IZl}}h;&9R^=&7zLQQb>G2l=W61{=- zP=s!x=RXT9R}yhk%Yo1`Rsp{+pLvfWSB8sYl9)hDQgS!;a$8l{Sq_0G` z%gWuq7I#j2T^Yj1I}Dfl@esTDQE#(NI*_%hHPl(;E>(oHOW9)1GE!;sheDM^wY|$* zD|5YN+`)QTUwVm%H3kQKhPn(Zt4jl1*-pxRl7Yxvk)3N{(?va2tn6^J=x*Z-N(_h( zce8eM=HtCi_}08I>#AS^0R+U@LCl;iM|-u+SXAbXrAP(1SbY+*-CW4GoeM*$;KJ`W z$5b#E_AE-&$){jK?X&6LwKEhcgns(|A)@-)3UR|_{NhMh$~uQ9t-d#{IZeBZi=psR zguz;B=McuYQYo6+Q&XvbiX|{y&kad02;~Z{u!BiqR_HbCwpl0Qn*W%29#XqxQc*ne z-8}`>*RTev#1vZ|NXhzZLC3N?U4t&%BdXZZ z1uXX%Hg*r5gO%q~WknYBt>i6MPV!9H&Js&G9U&&a?Xg(9I)O0kC!v=8hMxZ!?TLj>JwIgT|+P2Oh#3*jpwL_q5 zwM5l9^eDr@Jta#cAwd+)lP?aV_A9!-=8u0rmlgGPPee!%oNyBhV&j{1Uq{|LOhr@u zOZ~z$=eKto>i#uWVRMgTiq$Tt)924z6m?Azu^-|up)R{{T0hNPIvti}H=i;dMA@vZ z38*g6IJrxyT3M4F@~xLyu-Q=_7%!DYyQjrDvJ}NBC$-QNt*J-|WOGT>HKjyHHq#cJ z&ZSHLT9%RcS}w_jKToUx+8zK7*Y@BxcVMSTb5xn`tl&wnZK8|*h2s?Tt&m=DcJBJ% z9n{X`GC?G^i0A?iY0ZGhncK;W>KhqO=!bW?jDo<*uha`|8izD5_m4k+u88Ob3mJI# zG^Vn=dEhs-U+c5+c}({nyIi--yBLQtXOi~A+Pjq5>kww_+J2BA>D=y0^CSjoaEGDq zZTS4h5eo$8(7Yomz>%L128Qx4gW}-mW@-G#c;!fE!eOZqtKB946;iC=X1(sZC;C{! zX2AJ3*9`e#MC!^1VL|K#%&cf-!qckY&+dEDj665W4;Lcmvo)w`iVgkHqKv-|wE(PIrIYMpBv&{@#?mt!axCGt7Y2_w-tJ^Kfc+m^_~j z?*$K4myY`6!g~C45SHFlE9Bf3le98PaG>LRPb zLWTF5sC_yvVPB(tbZ6QAR)YgRhpA=h`1lz469Of(fc}j6-i+y}?znlX#N$eUDB+L3 z{rB3r(7(#yf6+_%i*$P?=Rf7{DnznV>9_jtzX6-%zQTyFHow8+!<%~t-#6CcaZ%w` z3$r)?eg)P!S#WBH3yWZwpcQY|4Ho=Cdm}&qexRJ0!k2Z>9}giNl4Oe3CF>Xw8Y;Z*KVaFT1;p-a~x*9!)x_g1d<2fxh<>d$I3x z-eZx(j0k%vXKYnCV4D`XcnB-Ahk`PjCaiDxDT-hwp zFuyd%4M@|m>m^9;^}PLrPUPZ#pMTXd7bH-%EzMe7P5 zGK7!}i~cYdbxYoRb1RIPEpL>!x|ex(WZslNtxf?|_9@4U_N zA^M)371z{rz)p-f%*ONaHw(N*_sqQA?wPz5;f$Lr8Vq=Zly11GK7U8j)SZ>&*Xx^# zapMC80?+#J`?cpOc~ON}n2EJVM^bdWH3E#T{V)2cp*D;?*Ijw{Hi(tw*=6J2qM?I3 zpKnP6EO`;Ksoqad|C~2uAW3a`!am@CwjwgCEQ36@IppsFHfzfuCCqI$`O$ZnQ84?# zJ8TC}dwRfTWjOHJvh7$6gf`7;1Nx`Lp(An>An?U7_RI)n2y^UM^}lrvC02xWD^}jJ zO|6Ev+~ey9x7}AtlnZ|^_j%*5Rtp6Oj)heGp@aq`50Vz@DW}IER`#M-y|o)5-vl(E^2@OVye#i zhOniA-!U3f6@2V)Hwjf@?``33ubld0KJ)MQe62_`H|^+eSNB=I6_S-MSPM!U)Kwsp zOFvHYch^=R0UOEqX_xRNB9hz_$VnIAHAcCai*-=6cukM&WHoGeb($LU%f4%0 z9~y^*R2?yWu6Hqm9*b*Kb&cGr>vkZo#QN+J+V*?JXiA{PR%s$UA*NKd7JW#())1Zk z@{N^8-H%eQfHG)XV#=Zqc(XlRA?pj-pXl}+f85WPS*}&Gsd{Mej7rL;6uc#>Wifb( zNMZG~YsiFW9I@6UORJ$aXkfJs<`_qhAJEje;E@RZv6V4_^C3E@TD6!zQTHHhA8D1Y z+RRHZ0S(@ey_IJzDTe7{`T8wG`RBH)@5qR;Pq$4d@1aGL~cuAiiWbDWWY$CcspE3*2|p4 zcp)1MX?5P}I&vBHb@hAiV={RbE{;7#F&&j&o_>!b=Y9OcvC_(y9Zo#F2m7RMdxSTU>CEcm(0+gX=m6x{+8RQ z3Za-W-WvCV&isIa?K`eLn7z#{tCL>U>)_grK5>1|g@hNnt0yk|`F5oT&h+HX}<3;tQWl0o1&Ax$K*rLPU882P{)r#@EP`i`Y)>z9cB%EBdHPssxjo z-Mr7v)PAgs|B8-*2yOIW_Ov%uh3|c{J71LfdfrT>P_@in8!$j~{zp_%ne&?BbJi|)i*MO+cE|cD5az}jIQ}{L)Wza`pU%DP8o;Uz^YPl+l3cHD zaIy9knCz!>a1SL>rpPPVuXL!(j}mifq8gHUz%Sa5gb9qtE8^diG*m3xviKApLZ5Q< z(Og^DJ?yZT(`tyGifuaP1T&3)a);Z5$_-{37S?o7mIT!8Qt|}YMNbQ5)?l^1Td&5d z9WbUdvxzBt`%R|aVhV9m2-gMn3e_x25Uy5U>k9JIFn{;BtCPH zfK|l(C;Al^tjx~_OL&H_U-NV6oHV2*HxkJ7mSasM`*kARlP6V+Nq*1g$})h_>k2urN9N1IO0)7-2?I~1GKUBaS?iAS$X_vJlvs_@UP*h zdFz;54X)+Qg0AJAm4%Y@i|TQTiNU4Vge$Z0I~SFZvr3DCfIU6EA$j=k^or``#@(Ul ziowHq=1_-|E#QpB*ji)ti-O?Pi%B8k58`o*=>Kik(ei)ovIx-=Ve_pjz!%g2lpYnr zsIVkkg!ulUGzd;r84}l{m^7Ac4z)Pcg7ceV7Ji@Y5a9wm9o}z-K?)&ldj>pBWhsg; zBNjygdK&Zsy*U+Wz(QW{@57- zsG{Kc%g#SqG6zY5cK&f1({$G8T&~cwuCmdi4!7-%h|%LL(=XcrHk$$Y@7={9CytBS zh10fAtc>sJ{OA{MHrFN^Cwd7crK0Gd?+NsPHF&TI_c>)Dmvb z70#!}$TznzZ81+;7IxJHk~kIj;M*V1{T?&&FJ|0VszY5(arwr)+ijCH`;Yk90=8|8 z-R~JRi6j(qBBvTd2=D9l(KxFvn|@K=sLlTQkfsrDob~t!1*jM75h9W97)b>=Z z%yC;ad+T14=-BNiJK+#;UG2~}wsleMa9=;|Z(9hrZ%!t>ja>q_Z}shaUH!$WO6>I@ zb1rtr60T5SD_<4vK?U{)?E(4rv5!Fyzi<^}*h&owUuk;fH`HX1tiHus^$N*dSJ6so z3|rNoGfnn?P4+j$LJ>Lfh(5QKe-oUY$3&P*yc{f)`05kiP;Om7R4P`dXPKWU| zUPi{>P$5n&`LKI{!@F7{7Gv<$6)o(nNrkR$7a3`_q;dOk!VI(R-F?GP!PmJES&`Yb zZ_JGM^+T|aRQKKRnvcSfm0!S}OCpB&KGtL~<`oh@Pd4GdIl#0rwb?iBDZEOcaT!tf z+|XZYW@0&g^?ZGPUORpDc(r-CWPiELS-8IIe?1%Ho8QefU~T87ZXyNWR~mkWg&o^J z#G6{^nJIwDldd4i;7zd#+L!)$L{Rl}pr)w*dAa6ZDQ?)<g-joI-7%+A3q+&TyIO5v#Ibe z_|ke%!U?^7T^gGOy)e&T2C?kFKB7b{`-Hf3TwGv8+*(DjqPgmF_|yoN5nPrL1SN&k zKPrw&2t>T|%gTQ8j>M(>Z9NR@+ZW6(g~n}^RMnkUWxEh9e1LV*l#t#j?01bfRI^I6 zY%dfOSF-TDU@+3&%p31fd;ihJfb6W?Hezv7k?faZ4##zY2Ca1lb%gka&e9z1IK5-> zv8~e_2eM?rxqbR8ny9UN>A>MrHH`noyxVWrm^^4Aw?QJuk$Gi`nMpP*JD%gart`0w%& zJ9rr^x%R?l_+Q3triV`RxKU>j2G>G2q|aedP_kTTu=kZmm{;eHTg7;zLkyfuQt}(a z$?ch9%YL}vT*_V0S;bt+aovcme?YzUc{qbzRl4`PRq$RfN}}3D@wwuCYLBfw z*TJ?j|J=J9GgC>K1w`k4?tn#0nELifwlMtTP*hgyk8ugiv>$;4YrZEM%pKNW2UL~N z=2tKL8ZLrMdzWYqR&v|waY{xu#BiixaOU0VCrmkvCHOJ!ZGR}xzTYjlt_(~b(=+~( zjDJ`b=7y@;Ps*4F={`07^ySm#O7Y`m)Z8B3i)6O%I!`-m!>!qO% zpN9>Cj8v=OeRp1+o5PdiEr*6Q&)bs;pNE^1-{mb&RRlpd2}?DU#%*otW2>^(K^r%} zpFBUc?5oZkr@Yi_H855@j9GBi>as8FmhA8Fkyv*mU6(BFS2k+D$LZO1crQZb!JMK? zmes_%m3gf!KLB!=~9dX0f7yJ#6XtYi)}z*>U;Ws15sb>5}!*b7}nTh3ZV- zLm2LQ1ymV!jZDXJMG*V3$&Feq#++<$^(RewAGEgv@SPP(#sYq)h95$xJ!y2Pe zF*&+h?{{GBy_fn3;TFe(@5dAr&-@PWT~8bnSEU=+gV9?y86?|79$WG8%1m&4T0Y;V z>~B{~SZMNn`SxiEp4g}Uk%Z4Vc%?w+(G@YqrA%lPhos?gqNXJbjad~;Fsu3Tr5eb9 z_P$*i*spe~AG%-s)!ehzQnHa%=V|`D@cUusmGyOY&3ompog~Qnn(z3SYjuKsbLwn_ z^Kd?b>Nw$eVskA5wqZu2fiL}fr2V>mKRBxcr;59=dUL$h(@|s~t%bAo(omL%uXSI6 z$frr;{ce;Kgy?!;*t#rD=xfrs6#bS;D7p`rcYgOg=35CqUtSivOxxykxCa&(m3PTk zWP6YnSOt>%?(fb%wHRVm=91_?L5GOUT*7Wt%qfJaOFS{R7ledSKEW-Ss^nVi-wU0Q z*`E6crQgW~zrLJpTneE01k8)+tR!hV>(bkcc9S^f)3mPsaIr{B&b8Jg6=PHPYlX~l}2_Hy?1Tf@!?1sYEhjP zgTIJd*!F{Q`LL+4M#I@*_}+zlpC5IV3wd?IDvdPfsbxFQ{+&p~lbsXxsY)QomGr8s zkv2?XhaK&%sSvFs?=Un|Zdn^e9=l#}@2h|m!x#sh7U^9bCcWUkhr!u`;(&fw(&zs5 z0h9Ya@tND;b;e)SkNIHYPvCcfXocT)V%U4{hH8ym8)?!9FAIvMqYNQNz z86Q-~rw!}p++Gr25;`)2A$aeC+*c3!Ro=F11vwl-4C#bXMl$zi793T^CNn`OufpGY znW_CG{<>XIVHWY<3$NJ+sUM&9EC{Rq=+JZ(8BHbkm9XGUp;VAj;)3X;H8;VvZCq`o^_h_^+ntK{3yhF3gNxRr%7&8P3}@&hDd4KM&d+-8Wai)IvMShl&#Q>#KPo$XbLt z)FT|Up`sjc6Su-QrjB|Gj|YauWa>n921O^2&w5HkT?f7jc*91wQ6sYhVIgl18_%1x zBH_ZiPNCrXr1C4!?gp?HeI2UJk-T6snLWp@X#9CIs|n%=zY%@SXnZ>#?GY5bZjMVD1UlhrRGjo43kw4maC0 z`yIIrSd3ZMlVIR^&3?uaFBE}f+Ts1zy3=$}lNF=O=vj_KXlDY@S;pC^(CctdKG)gmOFWU@&Gmc5Ay>np`jeziR;f3?pgzszMsH_s;69XQif|W% z^{&G*&Z*mjH{w18F%+g=I?09tPXKDh>cb#JQKmNk! ziRZUMXF_upqV2chp|4Gl_Qmq0N9OyrO2apKbi@Yeh44mmI%p+4-iq}`AYEDKKtn>=KzFzNEAp}rm#lLGzl z2XwJ=eEiLF%UY=*%;Gkg7e~bAnfQq=Vjk~j{}k0;O&NP{Te#-~OUu}$@4=I>icDa% z=D<~#`4)4U=u^UUd{^CBCTE7};F4q>0(WP=Bcg@Nqy#KNz}9qnJ3Jp)dlP)iPCzQ^ zgYSF#ZQ8^;vNMkyT_~2FC}wZUTRWZDKPKtk>F4Rw775q3%6#0tvu&NGnv;+(SLlfsbjyu$Z-zVLW?+B`zi zqOV?B(Qx{L_@6wFe3(?)4ghnN96+=AU!F%38*4{peFIBlkmqqZekt-76Kc>Y-8E76 zG9xG0MrNQ&f==%0RrX5pLcd+e++rlR38c+h6^1NAskodXf$;CA`i{}38>kbK`s}mM zNigMGqfzczr_2&6!`tpVK3*ED5nd=rKWJ!TjXwAcbowNA__*lGe4s#f<}s z*J#KLf?bwXkAh0`)|Sc}D&|KoZw^M><*ei}e7X6ZYn@QCfvvwlM`Pm6(JP1fi=G7mqxDVC50XVcRx12N<5|c}&GC@+KI;k#ijdMzlGbMJ z3%a2@ANQIO@9;l;tVH-RL+D*5tiG`;xr{%3 zhfi66;dGb7v-eh8=O<+8`CXKnb7HD$Jyv|!S9{iX56Ggd$ceB2aj3Ym#We8^ps)i` zyP|=?fg9Nv%G=x6IxrgA*#FT(-)2LBQ)hx$?*8xoghx+F_Ap@vokFi=ZM91+?SG$k z%B-e?^~dOINldk}v%-(ITv-)BZN1=ZbzJ}8Xk+xtI!y%Hrkj&Oi!s~~{Nayt~D$7)nJIdz!LQWiRU?S=FqG}^FS1SmAk`N`3Xp)zp z=%fyUQbZLs?AY9d{KB92un<&y5h2~AA$5nff>NemWOo1S z#pFC37U`STTo?|m8_FtM%Ms_2o711Da01JN<}UM}(vxt@Z_0+8akHJB2k0o7MjNWkX>mP$4+xE)t_xyiDf5fC>1jt zs7h`jG^VX$9?C9jtyLR3_RV0(He-@jnaca^s7L>Z&I4nSef12E?#Ndv-ZvEWt04hT zRZFZG+lq*m{8^3?iHZ$_1rFW8Z_-5~eq=x#BDy*Vh_oj%`d(9%5}*Z0W0GdjkHe9G z+a9+~DUwSj@R{LhJE{z)^HP`+fmfcRy(J)sUCNyC!|Cj&U;ZM6U;=fEWsaErrkhtoQiqnWpWeo<9uV|3=|shk8nqD z2zp>1{;&LiT~b&bTcF1-0MSaIf);=MXbA!117mAPU1c|0V+S2j7nYa$s{-O5_zkCk zlq}HYfpN#beTo1pu4`{>>A=VUTK`=z_Lkd`87THiC=C8bsO6uMLqNX5AAy&E{dckg zn*UGj*3@XoQUfP02%I?KpR&Lf&D(#9|D*ALSMqNs0;=%<`jCQ=_CZHJr~oMvz=HLU zfBthF^X{LTtc;D!^%>2r^i7SK8Emah|8XsUs!-FTeWRoV1_oOGs-n~NzpG&RPb#FW z1cp%M0J8xse^ntm`rlQ2_*2E7zvbU^J^s9wPy+CO+|j>he*FDM`Fs59pDG&P{Zqxi zN5lSI{O{3ie~RN#{Zsrev2K5t|9ddYpYj%T|7!lfLRTj^q z-!=Swi2SF97@>b^_{)I#@A7{gzx*i;2KG@D9PGc1X8tbz*SE*Ni{Fa>oA^K9CGt|x Vz;gl$`auC31|GEnDbTR!e*rAS`9lBz literal 0 HcmV?d00001 diff --git a/volkovim/task1/__init__.py b/volkovim/task1/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/volkovim/task1/histograms.py b/volkovim/task1/histograms.py new file mode 100644 index 0000000..7ae1594 --- /dev/null +++ b/volkovim/task1/histograms.py @@ -0,0 +1,45 @@ +import csv +import matplotlib.pyplot as plt +from collections import defaultdict + + +data = defaultdict(list) + +with open("results.csv", "r") as f: + reader = csv.DictReader(f) + + for row in reader: + key = (row["Structure"], row["Order"], row["Operation"]) + data[key].append(float(row["Time"])) + + +def avg(key): + return sum(data[key]) / len(data[key]) + + +structures = ["LinkedList", "HashTable", "BST"] +orders = ["random", "sorted"] +operations = ["insert", "find", "delete"] + + +for op in operations: + plt.figure() + + labels = [] + values = [] + + for struct in structures: + for order in orders: + key = (struct, order, op) + labels.append(f"{struct}\n{order}") + values.append(avg(key)) + + plt.bar(labels, values) + + plt.title(f"{op} (Histogram)") + plt.ylabel("Time (sec)") + plt.xticks(rotation=30) + plt.grid(axis="y") + + plt.tight_layout() + plt.show() \ No newline at end of file diff --git a/volkovim/task1/main.py b/volkovim/task1/main.py new file mode 100644 index 0000000..163dbe5 --- /dev/null +++ b/volkovim/task1/main.py @@ -0,0 +1,66 @@ +import csv + +from structures.LinkedList import ll_insert, ll_find, ll_delete +from structures.HashTable import ht_insert, ht_find, ht_delete +from structures.BinaryTree import bst_insert, bst_find, bst_delete + +from util.randomNames import generate_test_data +from util.timeTester import run_test + + +def main(): + structures = [ + ("LinkedList", ll_insert, ll_find, ll_delete), + ("HashTable", ht_insert, ht_find, ht_delete), + ("BST", bst_insert, bst_find, bst_delete) + ] + + modes = [ + ("random", False), + ("sorted", True) + ] + + results = [] + + N = 10000 + REPEATS = 5 + + for mode_name, is_sorted in modes: + base_records = generate_test_data(N, is_sorted) + + for struct_name, ins, fnd, dele in structures: + for i in range(REPEATS): + + stats = run_test(base_records, ins, fnd, dele) + + results.append([ + struct_name, + mode_name, + "insert", + stats["insert"] + ]) + + results.append([ + struct_name, + mode_name, + "find", + stats["find"] + ]) + + results.append([ + struct_name, + mode_name, + "delete", + stats["delete"] + ]) + + with open("results.csv", "w", newline="") as f: + writer = csv.writer(f) + writer.writerow(["Structure", "Order", "Operation", "Time"]) + writer.writerows(results) + + print("Готово: записано", len(results), "строк") + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/volkovim/task1/structures/BinaryTree.py b/volkovim/task1/structures/BinaryTree.py new file mode 100644 index 0000000..b98af00 --- /dev/null +++ b/volkovim/task1/structures/BinaryTree.py @@ -0,0 +1,83 @@ +def bst_insert(root: dict | None, name: str, phone: str) -> dict: + new_node = {'name': name, 'phone': phone, 'left': None, 'right': None} + + if root is None: + return new_node + + current = root + + while True: + if name == current['name']: + current['phone'] = phone + return root + + if name < current['name']: + if current['left'] is None: + current['left'] = new_node + return root + current = current['left'] + else: + if current['right'] is None: + current['right'] = new_node + return root + current = current['right'] + + +def bst_find(root: dict | None, name: str) -> str | None: + current = root + + while current is not None: + if name == current['name']: + return current['phone'] + + if name < current['name']: + current = current['left'] + else: + current = current['right'] + + return None + + +def bst_min(node: dict) -> dict: + while node['left'] is not None: + node = node['left'] + return node + + +def bst_delete(root: dict | None, name: str) -> dict | None: + if root is None: + return None + + if name < root['name']: + root['left'] = bst_delete(root['left'], name) + + elif name > root['name']: + root['right'] = bst_delete(root['right'], name) + + else: + if root['left'] is None: + return root['right'] + + if root['right'] is None: + return root['left'] + + successor = bst_min(root['right']) + root['name'] = successor['name'] + root['phone'] = successor['phone'] + root['right'] = bst_delete(root['right'], successor['name']) + + return root + + +def bst_list_all(root: dict | None) -> list: + result = [] + + def inorder(node): + if node is None: + return + inorder(node['left']) + result.append((node['name'], node['phone'])) + inorder(node['right']) + + inorder(root) + return result \ No newline at end of file diff --git a/volkovim/task1/structures/HashTable.py b/volkovim/task1/structures/HashTable.py new file mode 100644 index 0000000..dd22790 --- /dev/null +++ b/volkovim/task1/structures/HashTable.py @@ -0,0 +1,51 @@ +from structures.LinkedList import * + + +def hash_func(name: str, size: int) -> int: + total = 0 + + for i, ch in enumerate(name): + total += ord(ch) * (i + 1) + + return total % size + + +def ht_insert(buckets: list | None, name: str, phone: str, size: int = 50) -> list: + if buckets is None: + buckets = [None] * size + + index = hash_func(name, len(buckets)) + buckets[index] = ll_insert(buckets[index], name, phone) + + return buckets + + +def ht_find(buckets: list | None, name: str) -> str | None: + if not buckets: + return None + + index = hash_func(name, len(buckets)) + return ll_find(buckets[index], name) + + +def ht_delete(buckets: list | None, name: str) -> list | None: + if not buckets: + return buckets + + index = hash_func(name, len(buckets)) + buckets[index] = ll_delete(buckets[index], name) + + return buckets + + +def ht_list_all(buckets: list | None) -> list: + if not buckets: + return [] + + result = [] + + for bucket in buckets: + if bucket is not None: + result.extend(ll_list_all(bucket)) + + return sorted(result, key=lambda x: x[0]) diff --git a/volkovim/task1/structures/LinkedList.py b/volkovim/task1/structures/LinkedList.py new file mode 100644 index 0000000..091bae4 --- /dev/null +++ b/volkovim/task1/structures/LinkedList.py @@ -0,0 +1,60 @@ +def ll_insert(head: dict | None, name: str, phone: str) -> dict: + if head is None: + return {'name': name, 'phone': phone, 'next': None} + + current = head + + while current is not None: + if current['name'] == name: + current['phone'] = phone + return head + + if current['next'] is None: + break + + current = current['next'] + + current['next'] = {'name': name, 'phone': phone, 'next': None} + return head + + +def ll_find(head: dict | None, name: str) -> str | None: + current = head + + while current is not None: + if current['name'] == name: + return current['phone'] + current = current['next'] + + return None + + +def ll_delete(head: dict | None, name: str) -> dict | None: + if head is None: + return None + + if head['name'] == name: + return head['next'] + + current = head + + while current['next'] is not None: + if current['next']['name'] == name: + current['next'] = current['next']['next'] + return head + + current = current['next'] + + return head + + +def ll_list_all(head: dict | None) -> list: + records = [] + current = head + + while current is not None: + records.append((current['name'], current['phone'])) + current = current['next'] + + records.sort(key=lambda item: item[0]) + return records diff --git a/volkovim/task1/structures/__init__.py b/volkovim/task1/structures/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/volkovim/task1/util/__init__.py b/volkovim/task1/util/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/volkovim/task1/util/randomNames.py b/volkovim/task1/util/randomNames.py new file mode 100644 index 0000000..79ff6d3 --- /dev/null +++ b/volkovim/task1/util/randomNames.py @@ -0,0 +1,44 @@ +import random + + +names_pool = ( + "Иван", "Александр", "Михаил", "Дмитрий", "Сергей", "Андрей", "Алексей", "Николай", "Владимир", "Евгений", +"Павел", "Илья", "Роман", "Артём", "Константин", "Виктор", "Георгий", "Максим", "Василий", "Олег", +"Юрий", "Валерий", "Антон", "Кирилл", "Степан", "Денис", "Тимур", "Григорий", "Леонид", "Фёдор", +"Никита", "Ярослав", "Руслан", "Богдан", "Станислав", "Вячеслав", "Арсений", "Егор", "Захар", "Даниил", +"Матвей", "Тимофей", "Пётр", "Лев", "Семён", "Платон", "Давид", "Глеб", "Родион", "Святослав", +"Владислав", "Елисей", "Анатолий", "Ростислав", "Всеволод", "Мирослав", "Игнат", "Клим", "Евстафий", "Аркадий", +"Игорь", "Лука", "Филипп", "Альберт", "Эдуард", "Роберт", "Артур", "Карл", "Борис", "Вадим", +"Эмиль", "Оскар", "Геннадий", "Марк", "Виталий", "Назар", "Мирон", "Савелий", "Фома", "Еремей", +"Нестор", "Прохор", "Авраам", "Севастьян", "Евдоким", "Трофим", "Кузьма", "Фадей", "Наум", "Аким", +"Лаврентий", "Ипполит", "Панкрат", "Афанасий", "Евдокия", "Прасковья", "Марфа", "Агафья", "Ульяна", "Пелагея", +"Дарья", "Анастасия", "Екатерина", "Ольга", "Татьяна", "Светлана", "Наталья", "Ирина", "Вера", "Людмила", +"Галина", "Любовь", "Надежда", "Анна", "Мария", "Елена", "Юлия", "Ксения", "Полина", "Виктория", +"Алина", "Дарина", "Валерия", "Софья", "Вероника", "Арина", "Кира", "Милана", "Алиса", "Ева", +"Агата", "Злата", "Яна", "Василиса", "Стефания", "Диана", "Карина", "Лидия", "Алла", "Раиса" +) + +non_existent_names = ( + "Ноль", "Целковый", "Полушка", "Четвертушка", "Осьмушка" +) + + +def generate_phone(): + return str(random.randint(10000000000, 99999999999)) + + +def generate_test_data(n=10000, sorted_data=False): + records = [(random.choice(names_pool), generate_phone()) for _ in range(n)] + + if sorted_data: + records.sort(key=lambda x: x[0]) + + return records + + +def generate_find_set(): + return random.sample(names_pool, 100) + list(non_existent_names) + + +def generate_delete_set(): + return random.sample(names_pool, 50) \ No newline at end of file diff --git a/volkovim/task1/util/timeTester.py b/volkovim/task1/util/timeTester.py new file mode 100644 index 0000000..3a321b0 --- /dev/null +++ b/volkovim/task1/util/timeTester.py @@ -0,0 +1,30 @@ +import time +import random +from util.randomNames import names_pool, generate_find_set + + +def run_test(records, insert_func, find_func, delete_func): + structure = None + + start = time.perf_counter() + for name, phone in records: + structure = insert_func(structure, name, phone) + insert_time = time.perf_counter() - start + + find_set = generate_find_set() + + start = time.perf_counter() + for name in find_set: + find_func(structure, name) + find_time = time.perf_counter() - start + + start = time.perf_counter() + for name in random.sample(names_pool, 50): + structure = delete_func(structure, name) + delete_time = time.perf_counter() - start + + return { + "insert": insert_time, + "find": find_time, + "delete": delete_time + } \ No newline at end of file -- 2.43.0