From e36a8b4fe919844eaea3765c0879f7d4fd4b2231 Mon Sep 17 00:00:00 2001 From: Quentin Dufour Date: Fri, 6 Sep 2019 10:05:48 +0200 Subject: [PATCH] Add R files and improve graph --- r/tor_daemon.R | 75 +++++++++++++++++++++++++++++++++++++++++ r/tor_latency_crop.png | Bin 0 -> 37167 bytes r/tor_latency_log.png | Bin 0 -> 37675 bytes scripts/Makefile | 13 ++++++- 4 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 r/tor_daemon.R create mode 100644 r/tor_latency_crop.png create mode 100644 r/tor_latency_log.png diff --git a/r/tor_daemon.R b/r/tor_daemon.R new file mode 100644 index 0000000..7cc4de2 --- /dev/null +++ b/r/tor_daemon.R @@ -0,0 +1,75 @@ +library(ggplot2) +library(sqldf) +library(plyr) +library(cowplot) + +cellssec <- c("1","2","10","20") +tor_bw <- read.csv("tor_bw_2.csv") +tor_bw <- sqldf("select run,conf,latency, CAST(latency as real) / 1000. as lat_ms from tor_bw") +tor_bw$conf <- as.factor(tor_bw$conf) + +gbw1 <- ggplot(data = tor_bw, aes(x = conf, y=lat_ms)) + + geom_boxplot() + + ylim(0,1000) + + ylab("latency (in ms)") + + xlab("cells / second") + + theme_minimal() + +gbw2 <- ggplot(data = tor_bw, aes(x = conf, y=lat_ms)) + + geom_boxplot() + + scale_y_log10() + + ylab("latency (in ms)") + + xlab("cells / second") + + theme_minimal() + +new_values <- c("1","2","3","4","5","6","7","8","∞") +tor_guards <- read.csv("tor_guards.csv") +tor_guards <- sqldf("select run,conf,latency, CAST(latency as real) / 1000. as lat_ms from tor_guards") +tor_guards$conf <- factor( + mapvalues(tor_guards$conf, c(0,1,2,3,4,5,6,7,8), new_values), + levels = new_values, + ordered = TRUE) + +gguard1 <- ggplot(data = tor_guards, aes(x = conf, y=lat_ms)) + + geom_boxplot() + + ylim(0,1000) + + ylab("latency (in ms)") + + xlab("guards") + + theme_minimal() + +gguard2 <- ggplot(data = tor_guards, aes(x = conf, y=lat_ms)) + + geom_boxplot() + + scale_y_log10() + + ylab("latency (in ms)") + + xlab("guards") + + theme_minimal() + +relay_count <- c("6","4","3") +tor_relays <- read.csv("tor_relays.csv") +tor_relays <- sqldf("select run,conf,latency, CAST(latency as real) / 1000. as lat_ms from tor_relays") +tor_relays$conf <- factor( + mapvalues(tor_relays$conf, c(0,1,2), relay_count), + levels = relay_count, + ordered = TRUE) + +grelay1 <- ggplot(data = tor_relays, aes(x = conf, y=lat_ms)) + + geom_boxplot() + + ylim(0,1000) + + #scale_y_log10() + + ylab("latency (in ms)") + + xlab("relay count") + + theme_minimal() + +grelay2 <- ggplot(data = tor_relays, aes(x = conf, y=lat_ms)) + + geom_boxplot() + + scale_y_log10() + + ylab("latency (in ms)") + + xlab("relay count") + + theme_minimal() + +t1 <- plot_grid(gbw1, gguard1, grelay1, labels = c('D', 'E', 'F'), nrow=1, rel_widths = c(5, 8, 4)) +t1 + ggsave("tor_latency_crop.png", dpi=300, dev='png', height=5, width=15, units="cm") + +t2 <- plot_grid(gbw2, gguard2, grelay2, labels = c('A', 'B', 'C'), nrow=1, rel_widths = c(5, 8, 4)) +t2 + ggsave("tor_latency_log.png", dpi=300, dev='png', height=5, width=15, units="cm") + diff --git a/r/tor_latency_crop.png b/r/tor_latency_crop.png new file mode 100644 index 0000000000000000000000000000000000000000..1529eaccbdff8be8788d18c9302dcb2f066cfd66 GIT binary patch literal 37167 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 z
    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
    %k>Xt5vz~yGS%GLk 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 literal 0 HcmV?d00001 diff --git a/r/tor_latency_log.png b/r/tor_latency_log.png new file mode 100644 index 0000000000000000000000000000000000000000..c89eafa5ec85cd26f7526a96c9a56a7c0cd46f0b GIT binary patch literal 37675 zcmcG$bySqw_diaTG$`FIEg&7zD5ao?&X6i99Yc3YrvlQ_f`cG6LrR0B2t#)|Fm%`N z0j~GH@BMuL{jCLSG4Pyy_SyN``|O8MU2QcY0$KtzG&CX&b>&BBXgEkTGz@J#OyD=6 zf?fS+Xqafan))ihM|5;_3=9lROiU~+ENpCS92^{6TwFXnJbZk70s?{?H*OFT5)u&+ z5fc-WkdTm)l9G{;k&}~CP*6}(Qr^6I^VY3fR8&;d)YLRIG_VPkii(Pkj*f|miH(hoi;Ihok55QQc>n(W zhYueT6BCn?l9H2?KYsj}l9G~|nwplDmY$xTk&%&^nVFT9_36{6?Ck8EoSfX;+`PQJ z{QUfaf`Y=r!q1;S7Znv17Z-o|@&yWomXwry{ra`Ew6v_O?Ay0*<>loS6&010l~q+$ z)z#H77z_@F*VNS1*4Eb5)z#P6H#9UfHa33${=KQGskynirKP2{wY9CSt-Zayqobp< zv$LzK>&K5D-QC?iJw3g>y?uRs{r&v|0|P&Q{u~?}{PpYC(9qEE@Gt^_7#SHE9UUDT z8yg=VpO~1KoSdARnwp-To|&1Mot>SVo134XUszaJTwGjQT3TLSURhaLU0wbC`!^Da zTw7aPUtdR|P#YT?o12?kTU*=P+dDfuySux4dwcu)`v(UHhlhtpM@PrU$0sKzr>Cc9 zXJ_Z<=NA_jb6>$;fDho?sT(??p$V{EextkQ$~&W>F{5cH-_v(ZT}#7HrEIM`9B2Eu z(3-T<%D%Da?bhj`VRSyah$DGZ#Ztvyg%oQ`fmEdxlT<|}=3SVAg8vpyD`q6FD=T^S z+oD6z4PL9}#W%U}MUy#z1gO6V(VcjFe z$`V%{qhZGLXMPvRf*=Ea16P8w0Uw=0Kx(8|_g08uQNUmO85|fcAC_K_@@K|Vbm@Qq zPX?l5kie68lm9;~{KQ%=&`?nS!-rwhwn3u$!tKF+PFl)swsd5#82x#Yoi};j%jlp$ z3Fo9+TS7EHh`SxwIvUPq5NgJIRXM#$qU2%V+Lq_*q+b+SK7PULQ6$sc($qC=TY9fo zzr3zIEwwuEqA!uq>?OZG!VE(B1Hv!wgj~MJ>Px_P7JaJz&OBt4g)y&_;M+qP&7!n4 z!It?(1?Z0*Bpo>;J$aMBK9L#A-DfP7H&jMm8hm_uWL?2(MHbd?W?`1Ei+8&_$Vx7eW z8Z|ac4fhycH-wWTt2DBzklK6ty)RevUZOiN$S;B{JkN%5v{RTxWu#+}Aadu)>aUEy z-1Ho{w6MN_tB@(_pO2V!3(L@8Q5j`Wk@K_3oZb}rzaEBwe-zHjt{fZ=NZ%}Xo($l4 zyu*16qVWZ_>$o9k7+M+e)iJM`2!-2t!Wf;ZpUJ9QBK8Celf(O$yU-S-yjejO6A8aU zDFT8ma2?Vf#6dm0nRI-P49`XrBUcYF`(h38)9%tZIfLg7?gv*IXZF2E?|__EL#6l0 zLXPybPdm#|gXzOR$yKl^Fx2Ruuoj^pUDT*<~Pm)iU_JfK3~rB0Xfi zTca9jl02_notY6Z_GLK3w6l8`!brf){GH<|ZfL4Fi>UMDvDb~8KMOafnF{yx-r^@a zPU8NC+oU<3HeGI}MP&KLwf7#>QKJ{)V=qW?E3v+Gk$E}tW@xGejkB2NF)R<7^0*+% zSawOjduQbvhpMG!rJT?7CzpBeYC`8ou~3{N4+L$BGgT-~SL9RaIq#2ER?Q#_?*=>1 zoSgf`q?X!mE#JFaZ;UJZzrG_Aj|9azPHvu>lhv+mhMS~XM$$i9Xohw`pl)%3zr zYh0suB$^C?jZ~mNRKNKSjqUw%`}NT^Lnomk?JdZra3R#~CDm{E#cg_nw~@a-pxYEy zQ5^ov>)g}?&d?3vO+DYqJy4pKk`ATd`mS7c@T<2ur>`6-XLrlqqgkeK^Y=+8zeohf z2jmmR*qYCpkmr+g5Kk`1d7OBt8=MEl4G{fW#52 z@{sQb=Ovp@rrEXmGKS@*rW~a>{lO0nA(M}T#tsDsL2LSBk9Jq%K1qIj&rrALWn4+aUsMcNaFMhr(s2s4FCH5@G~+iX02cg!061N zbia2qY63RC7^bVmP9vlE)@9G>WQ9A*k>1Y>3bvjE9IMXm+3l|W%r1TKMpla|>=h!Z z{~OP`rRN$s-iNMlJc2$Ic875}+No&mUALY8P(68>m9fUQ&-KbT`Fv_e5JhU}Jeks~ za6p1&;<{zzqxKz)qjT_BZ~a;9>rYUR!Rfbe;rPl$)yT>(Po0V#albvu5~!8aUBirx z6{Sh<1UwmL6F=zn%SdB{v)^OPA*7=WnffM1zT#plM$bArt1t1ECFY)}K6`2bQVOR` zkByYSN36*^@8?I7b`9RYxOxQj__4|}Qt~)?Hr-@nw2O|d8ESc^k@ZR7>qW&5GRP+_ zP|o-n=+>z=>vmvd0n-0V-qIV-a!N2lWo5hiCt7RNM7(UJ;m_+f6vSVgU}#%~&q3eqYm7)0_Na zQ)&6hke7DrWVqCGceEk)GGk0I0_J%UkfY7V-~${#9;qcGB8UIjitt6h}To z3lmEdM4FgeKOQ-d=fg`cdCRek68-Zky`SCVRrs9I7m{h`RpxvS>W2Go#Vw8it<f7TKkAix;1>VSa@ws@L9%&u!MflZG zK1O*DZX@$Noj*FBhB*{Y*E+s=L^H28Wk7gs#*d(m2J_VK6*j}-J|Ty(v?G%6b%!Bd zH!7TT?Qf4whD~|lfLsc%^ux%+pLT}qei$@A&2K<%KH3uJQ<5U@u5i`?D|*Q=kHPH> zhq56S)w>|5yU}2BJfnw?oWO~Vp&|C|+(>xO$@`;ZRTHVFv}jPJV$g3z1msrAfncru z1J}7=_#=dDfAnHO$~fO5HIqW=AcO%Xpk{_NJum2gK&;8?%Aqj;A@2oEL45FOp&i~S zM>-!^eUZw;!UbK^NDO0QZv)rtZi+AQhM~x%QRrtTlZ%UAPw?9%(8KB|1mdpEKo}v} z2c;9lot8G8mXX(*Ybn#{gD|n9;EX_;oapueQ~+{GR*-;0ztQNrVvZ#7_5~Xjw?Ims zU(h#BzO09l6PUbcyA6eE!Amv8K zx!bcQmhZ>k{oX{&MJj-fV4>Rls__HT8)x4T5@&7fJf2ezY{1V(LziNkJxEPg4c?^| z|NHn*kD*n0c{~}Ntp|?AF{1FmD(vW_ ziB2}_MM)_J#RFom1fNm;z7ewl^NEf>!NCj&1wn&;dB@Wq=V~3j$hkgfxkGQreSDZ$+i*cuC43(IbDUU zP*`v3l2c}h&$HvUr45OV+Ki4+j`(yWF-|Yv4jeU!H$=l)6aIvL297fGvvUGl*h6=4 zBuX6-QYn%~2qN<}=jFXeZNHuI8Rv1ho!yD!L5XaV2y6R9@SzV!_-@s{OB7p!-Q%QP z5aOnU$c1&Q9RmDYzolF4{;Ix2{Xu@#n{T)?a2|}=6?m_e#NgTRj<@Ta8zVx@kjjlW z)yJyhyi|3KT7E%_2}n5$Ad4tFkFM_-l+h?!6k~d9w;M-1KVr+)g%kxhzV&-HZY<~D+Eqr-oIRfvGtJ`cN%GV>-h?|a8EkIU`+ z@qsq5VR~eKVz~(EJ_`a+ zs6Kro#EC?Nk<3z_P8EiaW`w9SIr{wcHP@Ye-w|P7*_1Afz2R-1rmqh?F$LbBd-&Rp za8sHEFeq|2ac*f^QTDaqR1m~BCCW&?Js1w6U%lm2;BsBb(!fV-!O&C zx1I8DK0!1|d+?Mu$=Z?VEsQ20(v8YN3qSaDT}CsEsT5b%r07bJ>92}yx6&R)Oma9A znz$$#W==hm!@hTT&$CnZ3kX*#O5W)9iyx3}lxgK@rY>1}g%CrY^!uFtuE|CS!>htI zdb)fD)BFv)rJaEcBJ=`jm4gxyZ=-!b?h@oJk)_dab9(ctcMO=!2(r)syUE`AS%!j; z5!r>VtRiH(^INkQn|0BtG%+1@4L{NBz@v*tKkR($E8CMt=uVHTQMijt>}?!;$Rv;UV;Q2_(P1~o zn+HcfG3+KqK{+&2)M{IO+Z`;~qm)2IQB(1(+lJfVo2yYx)3lDr0CaoCe_$lIA6yFF zXL2;+!Lvs1Tc5HXatEGSj;m(jMLKg<5(JHyg^-3Z7YSA22fZ^+s&R9VRzj+rD4tnt z+;}+fh(#8`@G%GJ?Db8TYC4F~#v%X2Trl!B$)?97(?dTLFVP*egTOFG=y*~4*~8E} zs7I9WlkP>*wp(GB*0g6XWMA&)6qDZUq_HX4EwizUzn>}3r?nkH{qZ0WgXr08MsVk( z>zg^PAqt5d_-1rSF(K0&yg}-{J?$=3y6059?7oD(ZxccB2t^2l!Rz6x&aS9O(D4gt zc}pMn)X0TXN8&IYojr4_&=Fy8-$!b4)S1_@Yyy&ZCdKte@m8i>wzsxy%+kqcb=r6(NLqg5FHYyCI>bH( zfX^wEy0o?oyt+(U`i+n$a!hn!#J-yG`B?OY-3W({7>Czg!el3~paTQ0f~hIvwk^JQ zvw~KX-$x=&ZAKN4#k70vxZ9bGIYb&O+MaELH~1=u=dwceXlVj&*%bJL+NYO3k3f1og(DAxQ(7CljuTI8-P>BU%5(~nfxf7y;-AvEQBmH;= zzBs%$l6U%J>0VH-j&hW}5_AVZ?bpwedlBnNvqw4%E^vR7@+lE{9xU=CY1N*@yj?tu zaXuKd8~|EYgod*M=7!#@iGY}*1qB(-);HvQe>9b8nH`4gwxBT=f2M>?4}wHYa(PEk zU15P6FoCdLkPDXGt8)vCP6)_}6|wd3x0GWPM=?4DCt=ySqgzp+d1?&O6R6cXAP;kv zrBtEw3UNr^MS~YGfo~@W{8>lv4+cokWS0dh!9IfGf5;*dLG6Ay4+ZWa@U3>BQAo|5 z0GP#YiM&_acv+PFz5h8~Fs8+lv1)l3IK+)Q2kZbv28G6RHA8>gx{8xj4q(bvm`zrK z_w!b$We6UoHI5*Uw5*W*b_~)?@qfrv#v&!q2#VNPyJtILP+mZ74q(j=h#XLqF2K2e zIx^V3ZJ8%}ye8ER0dFjTT!jAf#3QH4H+~e;T@2YD!68R=sILn^l&9b#feCQ_%?J;gljt4_|Y+TM7eei$i z04dBy_M0^-fdM)ablJDjLe;Y*%@)ueG zXGBhKjObGgQ{wiPP9 zoW3vyNr_Sb+?+ut>dWN#=4OM1Z23*ErUbOl_>Kpk9UY)Q&Sf?C=rDBGoWN?(9}m$H zJX3y7E|cjs9_zMPqxsDf3@eU#=(<`AWTxa!lLJW-ZntNp_-Xwkrar1&mnP-NUmFVU zH8#zUFVOXM(rqKp@Vth*F!cw8-w90uWqB#ECe9^|lgRH%$Z^F;rxgXM8k;>H<6eU{ zblJA){f-+&cPnh3?`&u92uRP3A2pv0Ur=~W-3N%+DJKOK{e+B(VqF;*&^#H;##}|h zWqnS=z(mGOG6#{jEkY{3l9quR{aUs=>3Rp?C%}N2i6FU9k4&Z?55=ntyM%3g-*%0B<4IbhWd0w&`E(3I&@LL8BdV*riT%t;I!f{xe(*spwk`h@%m`!;STjQ@f3TC~xk$LAqC^ z!nYd6 zFODaQ+LUhaRx{k3x>F@sWBthZ$sGJcY(!*_c*~mzq6q7T@kf^xL_>elljQ{}y{Z8=`Q^?~%)7FV{wr*RrD@WO$Bz70z)&txY7GR+L)jaNz?USw=_n zm{=w3xD%Mqt3;ckeJ&Ja)lB&fVX#%|V7*4?E#Q1l-20=D49)Hm)roocg>;{X(D5_# z<}X>^!{NrVRY)ex;tOvPzJ{9N(QW_@Qkz#vmn7bKQuSby8b`yS@XIrVz4)JlX^cUB zyJR|nU5xE*91p03&{@GQC1+>z{yw9K$Vg-1h_k6mqw=xGP8Optc4VNIWdhqzBrZnY zo|#9E2vaJEnWi^u_Cu0Zy|DqGf1%WIof;E!!1>;|_lF?j351gcA(Yu5mrsvr26qHE z%8eKkJu2SXHcRAM-6=s%RZ>>;dM#78rIShH4A5fhYOS+TVEci9Z2B@^1n{wmcNJ`? ze73hTSpOwH2#NlXUfCSB!jAq4bRZwR)!gLO9A8ZPEXHSaO6c5p^u=|hQ0;#Z8X?Q< zOvsFQ`2$0LkSsRTUjeEV=vOv~PJxT5?c5O@!~d5D)M%d(V>zYY?@l(VMaz_xCw(X#c6DZlWFnqY5-Vxz4D?tnr<2p4lcc7mj9KN?pB(8 z#3ZXTA=)DR4W16WE0CrE9s#HOH;)OQkT|&7GO^OCIY?rmi1?inRN33t%Cjr>!CUXk zI%}cNTSjK)q|Iq+9H+9UsOfHZ zLm9L(GAJm!K_nvJ@|gdE{9lZf(e?EbJCyG+BUqXgMpuDQWcbK6C4iR{Q0O z_g_ZSk#Yp-)tDCs``m~VhJoKJxe^g-UTXP?VzxskmSxV@3U3r>oGeuOUAINA4Xh7R6u@QE+~9dX0SWz9 zA3#`T98qCJuP5=kL9Wi~&P8g#9!mO*`Z*xcOVc6+@)KBGlYa2@SB=#u1}H*;nNG3t zp9mi3%mBxH`D)xUb4Pzgvir+-k%Og3vUT|0iDAWn&sGuDh~xS4GVywClhMS|?4_J7 z%RMW89)-wCo`OrwxqaP#`{BiBB8A2Up6=<UQ97dt60g5IJ#_;uS+@Mc6C=G z6qaY}IaTCR9A3VhToO9d*#J*WT~lP>n6h^0J9i*PjDQ1gcQ2qr{#7f(IGz z=$p~1QSQn~#b-uTggY{vntZx{Q;nM*#2xf2D_b zdlGeKFv|ou#3b^e#(fatPHO3!qr?LtXV2^vVL}DjNaeuJ5!r5o08=5Ii5Bbuz{_;k zcIi2RCK$&)$1+mEaC~1%3n3QGC%M6N#Ma^n#%G$|)+d}zsP6R~{#-)$g|WiIl)?NU zlt~Hg7sXPZY1{tpDmRZb^_*Cs6*?sq_!0%^H$ga*oimHAJ&1r{Fxg!G_Ry^FP5!5S z%SC6f%zdy$Z)uoYV<3J&@daq=_AF4t$(k-9I%)YtKBT?9hA@xp5h`&N)+H}@8Bh1k zzl5iT2@dK^Ly{leht30q67Ur#i+E{0js(#2#~wjr zuU?+zK9FDCTw%n&tCTGaeTr9#ber#PfDwh5*Kx)J`XfHgx@6Ef?F|5!f%`D+E=V$F zL0%`2kBop*#f4n$@W~%}yL25QLGIqy%vD*X3YSB$EK;-%hrQEb*_>B43bsV`quIT5kbC{3*fpLw!sO|%ARx?gf)Lm5{zJ<>B>Imyq zb6@4$AJl37L!wM%s>3Guf!}393^fp|{eMvktsx%uyIs4!mlv#?IYn{4%KWVsABosv zUu4T+QGV}aXtmrz4+na<(F4o&Qf0G!156HZN~b%Uzvw0j{g@AHb=-S~*r z5wf6ym=d36HD!1)`V}6;%FyaOgrwd211QUpUl|IT#*Mg^;9}=FgRz|9IIHliC+lmF zIo_@w+I>two)4kF>!5?5{y-;ZhRUlGTc;>po%rml!dT=M1=Uxdl5x^A;T)tCfX95$ zb#DO3i0V-zn?M-|@lZP{2b8a(^tZoT;db>_BFyTzl0Gzu#(5F%NCyvKGsq|bXxvb; z3@9m^*B%(%L%bRIg9dAe$NkE_tyk!7z<@Oeojcayy-dGcR$6i=;%9Cs!%)1z!ss+o zdH{jZBC+q&$UCV2$i}&{?$&Qv+;H~FQ7^}3#WE$vxgNK4Zp7J$(5rb?iyN6af=YoJ z{gAYUK#eZQvp=BuC$!l)bIrsmGb2$r9=Z zEuWtd%|)GdcrbHG?O*pX|1eFq=5D;ptKmlcN~;^liZ7_;rvu)lh`HlDIOb7K`km&O zsiG8PVDu-3hpbAa_g?P9N2IkNJiTc}OhQx)46qGzKJSUBa81TgBh zn0wuT8H0=vCjhn{v|?&bs!fr%YeVB~ducUE*{$?!yAAc) z={4T=gVOH8KeGT`53b9SLt4|0e+bdtR1ZH~7jX~G4?3Y~E3tLISx2ID7wx_~>m>$n zwu%?9U5oO=A-ZSe_U8IN(fEW0@t3y9?oZIBB8O7sF9x8N45`n@UX^$~n3aG08I5C- z1h8Y+0(dbHK+m+ISeeyx7jwG)*S&T(#H^I=rOIfn1IcX@e%i8utJZb*5>Lf)We<~P zK-*Bj{FkH{X#H!qe_r2gprl@0S(Rd)8u!+Yg4y|4)Wq@(_r&iBLrm`Ch%YJrqnzNW z5r)uP|FB9vy{vFV%>K(GkbIhmeaR~juN7oz=K{y3BbC6aqX_i0klee&9nWcy2F zTzH>&&E6Gw33QLvokRMyoa!6_21s4w-fK)zHdrKu79@rR98D6J#s%=Sf5hUPcFdq& zaDc~AkEPz-K&hU9^tKu5H-=@uB2jq63nXDrVv2bw!_iPbU{yi$`@h<1mq?U3YlkG6X7)^bZm#)!|e5v^2sO5K+_MOpqa?>*LY>0byBYG-L8sCKnN>QBU=h)N6-_U z=A;$|(ExfHzT#z4(-%Y^6q1bI3Egx`qb15(3@=j{GLTcD-iO9Mx6`;GI@atMuZ!m) zU81E(<~)-8nv%d&`qMpb|G=gRqt2!l{`dK+xVJ<4XShW5A(-SoU1=BG2;t^K3YUJu zpBzu0Is&zBZAhqnnl5r)DKhwLO%|W7+k2gRq~1c}f%>Zoi=>wd#pFFe)b?F2?YR?? zHE~ZwJ;cNm9Dv96KtLf$=~1^f;jhGQQ7 zsU0Stp-$VMp1Ap&dfIN!kyIr%dF45w6Y%zEIr$1Dsk~c^oD}ZQWa;1)yuM_^9`=4x zi-}M4Oc6}tS|;STEYxFE=kBGn`gmd+=p4dg;>4cb4`T!TP&MSA_!C;A{g-Vs5wdH~ zFuv;W&;9)isEEG`Ax*nz`8Zl*#hul%m6XuJ!uNMsfSb1oNEg83fGW4W4)fM4)Tu!! zGAf=T7?e-E{a0)NnwE-}CX7O7KTnmuh~)s&VH_m?#C8pvHw2^{z(LB1Y`Dy7f4ho3 zf@j+A(pAhlAV}CwNpBT_u&;DIaD&-#88Z!C(un^)=XPISL6q(W*?qz@BSd4`#anv@ zp&f5@)`;ToKOctq_HW(f0yl#ej}h2c(njPY4Fu zNLO3G4qtmeaa3{(fgS{@O%+;@g8YfLm)%OhS&ku-v{&an{(-Lq)x-VIMj!;fI-k$F z1sIJ0DI*DN@%!&6f4xNvGE=NcZnoE_qMDfdHyzofo5js_(A5-S{)ZH~3l=$7DPtZZ zS`Z}U|HTTo{mcEgL)e*Ldt)hrQKp{*{zSMK*CQOBDjLFH7s1{*C`CFgRUH!$gNkt0M{IEA-}b)wBNygj={=l^To) zLZ^HpC~5k0A`vt-0%rK5DWDNe0E8sbWi*FLsVlkVb>S-^{*PF8VGHGquc#a2Ws;^i zEWctk^+Ukh{~@vf7f>)88{{IKLG&102~L6fvUT^zf`GPO(3MTdro=TGeffw+IjrK) z1avX~j;uhZ8}HI18>6gt>0faxm=28fJr4P=*s@>?Mb$e@?T{K{w}le)>b?X41yf;3 z)6cIXg%;`l&LaTGeS7Vv)sH-mtz-`rFnv!nS1~Au$sC&Wdmw55o9SHAeqV=l8(hG{ zB)j{3Fo&WQ#S(D2i|c`>!;zOM_D@=^MkZ`1TxKWXa>1kLK$PNJowCC&)KhZvZDK{( zXZ>%Oxol>TUn)DxBZb!0A>1BE>m*s zTr5es^Ye2C6W;%w5?3jWYhqN7Q43%SxzIH5f`QcpyajHO?CfzT%Us40C1rYy|gXqWn~$ z$8(p>)W5WR^Kc=Lg5-@$M@)(wS(mCL&{w^ZG_bVha_J;qb5b{u1kr-tmwI)IT!KSj zX;&jKq{PemG)X#7D*Mfer8C}3cKSW(m@9LeY(9;UzIX_IZbKd7aK&jZY@{qlqO6Pp z^J?{dFV{*Igyg%MOK`vReW92O)BUFf*RgJ{>(t1?`R@LAEAMzQKv_=#W!YbYfm~Uc zWoCpV-pyBf7jZcDp7FX*6#t}@{?vd9fLo_YkLf$!tv;|MNnow2cG6q>G~!Dj5sRe% zZvV8Umi5PI$f|wRbPRf9*#cvwe5w2mNRRSQ#*ZXZ<{aP z8T0913I;c6_olqP0kb{pNnFFu^X9|m#T!P?8YXXChH~y=y~V&nTEv^nAWjAAz2^p0 z&acT41dAN>t(UTiMZvMWOOQiF25Pwmd_9tz?_gwdgX%o`RZmXqX~Vm9VWw{6)b>9X*hr@`4mj| zA~Y#^HHiSrmnaZYNAL`gvXcJ(!tsu%&&3tW0q0W+0Thl`Z9~=1*>ay9Yw=PXlA7%H zRLsH`1meFvi@4R0Q2<+?!~ciQ8-pidczeU-fx*ij_wV$hZd%bhqy_jQpZVS$U`?O_ zll_)e@_#e`obls>^hQV;ClK6?0i6TRjq5w7=>6puO}fGHhqCpGn>6o0%gjfNoEMHH zL%#j59aV*_Yeqt|Dl!ZlmK(yr;!m}y9nz!#=Z>9qOOU@Y80*&oA;y4OVvH#(^5$~` zsTC%XbhjSqn^s9NvaCP_$d8MQ5T?xl#M;KqQw`=DlQDf~fR!mP(PMGhLMXbz$AEHy z;Fm{}{JQxIA?tBqw@x>~kjtA~eE=N9{Q(CiuJsfvRn_VXQn+M@G^&EAoxtr+cT?Eq z@t1{|lPd2zo2|fY3=i8oA>L6j|13(U?{1d;Yn3cx0r7jPZSt4PR9OmjT&II_$Dx3> zt5{FxS#&;zz))1Ty4}!YbsutJ>poq8OS~Ss1R0H+p58(vj&`xYNm-$ms~bg;^SN@t zg*unv(+d!*{4E?9N(^-x0_#m*IP_Q!`YFP^gBH|EYMQB-n2;6$*Dkt*OjyCoq2FaD z{K9iWkk6)5-L{f=QRE*R_{(R;=yIdWU0n6pxzKl4FQdw9Zw99&@#-DpRw&&&0G8;% zFXJgX0!-E2Oi`^aRSjJn$liY0zjR8n`LN{{l~?zPrpLJ2)~IiP{$;Fvy&4aQ(e%I? zVCwyD{ViCnCmYsvv9a8RpAAEnzr|Cqf9&l&8DYX{)THvW5h5+46YS(l&7f+>vYtq6 zFJjMKCZIR~P>Z~)Xel4ifUsXSPP4sf2Kbddcn^$t6I8oRZa2vk;O2@(rQwBGr+xB> z_{M;J3&`T`S@PnY#&bn*(O2ZBDWjETFi3kGc6G^RRcm;$1!*Ns@rIjkx0g#=e9%2uPZ53zOrrd^cpvMRTOM zrRhk)wBkL5s^jJ55TJ2iBnofI&&Rrf{&S6ui=7*^$UgSYnv|E+b=cM%ytfMsb9yZ{ zX_fvI2k&Y5sRi-k>OQqz2ppKWyerDAzI{Qzv}VHjVUD#B1t0nzM;#WPV2W5B^b1s_ z%gR5_+=CtMFv&Hb8hNu%wxRM2FQ{osvSi{^C9{5iU{ZVH+?DzGvLe8Mrcib_dxF@9 zzz1eu*@ePsl9Qb;FO~`p-a%w}&hB#8_jsJYND4(?il! z)Fti7Wl+bj7N{P!>mjOE|6GI0HPJA+C2~h({jc++d}+maQ?lIWv+|9HSBmz@mP>Mt z- z<)~WS(E0L052ym1>u^0a=H<8aawbv(bb8O-y@83Z3Q5PMG@aVx?@Q6=N5A|Hmz|Ft z&NmZ7wl)INZ#5zax>2#CMgha-`Fh zuazUgPvW-8P~9mHcaW7mr!Pmsa@$BsD4!+QHlabE`{J=#eodeRbiz82bLoY#)~~hq zEldgS#QcVOh(DzZ0Bi##C3|HXM&PYgGx!*!*07IEEU^}{HGqpTv@o@3I*qno z0VXtce@-q07BV763nnkUA_n=aZv431hxDd7(sen-VO`>sG!3X}35VMXtJU9D_o~ib zV#6G#y0B_(H{UoE3zsGYrfq$-RCA|Ou6Gr8=EMHQ*OFzO0uQE?XeTgYj6;{sV3xIT zUMdI(6_1>i*buGg+;89^h7ds1_Ylc7jPzcw$M?NB`K<48OgrdzPB%6!*{H-yBDC66 zSP_rWfEpne8H=1lOAvh(igN|?%F6Wkfz=NYqs==~r<*dp2Wrguxw&ib=zt1)S^;tx z6axVBJm6>$6>eruC*%^y$ISvyo_@H9(p{&kR!H`^n=AO|!7N!X`VNRa+I`w@-NjdU z)o`@%*1~%OIP}DPrlgvjiW`iOWhy4}TBa``>35qe$(S}&MO>f60X)P~Qu`AEw&MZi zu>FKgc9~eONF{=Bd-0wa)UJnFX%lfSO}`EXSTTu_R{krymgs{K^tCMd;VJp=p~!kX zXow^})oMV)l+y|8TEeN!0$g2LDmnp{03<2201(xmdhrotQgx=Ukv}B?itJ{?^l4jv z$ITy2+?{JJGWYm}oK*)TmVTq;OD=tAfY!ck0U=QDp{a&M{i$_wf5T-PUvOLy9B-++ zWdzvx$zzuCj|Q8zE>LX!h_UiKX{~C767IFT$onCCM>x(ut41_jaX=4){szL;>bVhu zYtw)}>;|yEzqB0le#yxxp6zjbtWURyxzw0aQ<8;UXHigGBoEwygUD*8JoRGtn!x%4 zBS7ONz$KB~rUA(Jl7JEMFwTK;W*X)LOi)B;M>`j6Rp(hazOLA=;0MtSa&gQ18>*mi z32B%BaU(Or5D*=Mxa|~7G>ziN?UKjea2S6cbv(SGa!ZubezMiC!Hix&7Y=>SSR83o zD{Ql;rT`MC9cYfP=W_UL_P*cUtUifzlM6fqecDwaBE-c7*dg^o2jq?L2Q9v%1Nc!k z?yu<78d}GQ8AmlG#izY046W5R(2ECO#PZT-|W_zlNBE~SS!rof`NSaNHp zBq!pJG0M4tadYyCz8WGMit_HBl6lDFGzQtB_%{7)xKNz90>sZH?PblV^W682UkmW3 zXaV#+lIo$Iz^LwymCq2#*9)JwyvxGcFA@?rZkzD!cWF05Qheo=S|xD>aV`j_deopK z!LIreRDuqw1p>+-3!5s6=}1|zOIfY}lXQBf&3wT1JmQN_l(F^446t>bYs3b%AbHo1 zqq?R=BhV9NP}Pk?5j&Eu93(u^-v?)ds((gLO03F0xLTBS_E9h15H?I;9xWRa2A#9| z*Ay|+cE0dkJLx`Q8}!2VRj(WAhxCcV_$&}v&8d*= zK9b<-SP|u~LNKP7!rQx$NwR~PSB0+#O=8#(_AJ>fwQU5Ne3H8l&tK}vnuohZ*|TNU zYTv+m8ranZ%^eg-6WzHvu@8w`qOWzVmn|&L>nS|teM(7YH`)AsYzE9`e_yD@_=r`3 zs`HR$^=1DH_Ms6-u>H&%AGMG^LWO`luTEIZ04dr((*c(|7#T%==XlVo`Xa~viD}AD zrHwWj{W89oP>$1kAMQi~ z{XFQm=)h43K=E*C?p15ovaCI`5NSukO(S5I%mOcqZK&FXZCZZZaMe5)I`^zajux0O z&)qUZniwOdE7FI3r)r!(*XOi>~H4y)e`?fPUzY|FGNIt2)$p|?O z95mW;oD+Jq8#?SrDIOxz^md5WuuA%gif7SYwAfbk7MsypG%jZOVsG0xxOO#Kxwy$S zPmqM|Pzhv6Ys&5HNo6-ly|r|rBJG1V^#z_8R8CM}1&fqw4z9?uY#iauq?*j5=KeqrWu#9sZX1UOYGa2t2V zd(nP$e|y8?0`sz`N$W%>Y5E8PmgjkB##+SU3O?{({K|lm2Bwr1PR-G3=(>PuS?eQ8 z?{locnehI8yIlFkv|2Jw>}@+?+jsG2WN@D@Iz{RZNGb~_F55&84Qq9%QOGvFv#*vQ z&a;S|XEnWZ8OvuOdKwoV6>;I&7%g6B2AxXoJ+!89a#v4$WnKT)S8n_-i@ZRz;Rfe_%qPf zrSw8#^<5CjuYL^XduHpZc`!+lNak{@__BmuxO^alLt&zAn);-S?4nqg!^(FH4tpiq zY(jkqnYWN|dj-6DJfZ_^w%R7DSw|CNhu)&HlYr!;ZmN422JfhrR!jnEQd#_OKr8q& z6j~s^qjQdHdd-&4&gwx0IVD71wBo|tV!lR0K)VOH{rqr>6ZCYR!SA)w=0D@iZHMh> zQ-Dak+-3dyfixB!K=#SNVQ?Pqx5;WCxO4-peR>lJq0k`Gio&+KJ zDkpxKZzyt{Egx15aA~1u-m|m^M(pD$X6&r6yaQ?d5s(MeJA4E3VWn=?7>2n zLg&KXE#YSlTVa?s0aGnBik`;XjXT0(VrP;{l%z?Hb~&!57|&vmvKo5(` z8JdUhIg(5w?2g)$AOFUC-Ty{=>cdSgo$RzzMo)J_45IJy%O-Uv+VX85TIAcJT}ySS zN~$db$QTz0$wY_Pd+`uhBEm5u%IN3_?EUn4KyXbxwGTQ((US{WN?w1C$^oVb`(7Q4 zv~w>SWMt}qANu0-)a)9mC%tt_dkQE8I^ZyJf0=1NaLZ+$X{Z^9-vfaW6NnlRnBeSdl_EMFVCOD z-cFD>2wq6X?m6XPioW(jncf}iwXLvmM(Vlf z#R!vg-k1=C1e*-?sR(qTM}-kMPKNJ-fTlvCSGJzp8~pP_!<4mo*0<3)V>PG%q?A#LlsMTiZ7MylU-;A7l^4Ym+43 z2&pB55-iL*^x`#snCZZ|1Qy=}s}Znu>UX||4|xQ-qH}=p#=RlyN#1p)jDxu4G@fCy z?qP}dxGRqrq>R|b0NVUj(1E*)#&=0>^M#NfTpq-`)V0-XV3f)CB(ZEpiJ|s}t}U@q z&n9Xatk4MYtKd7jLE*}}XEIBgWGrr$)qELvo@k#3JeR$2gW6&k{5T+*A761aAkQ?2 zMOMckNdGl3!3N~EmT<2K*H&4Ih(?%i8>30!@&w3JL#WBA9*;QLkzv^g?BT1qw$!b{ zCrYCs=A8CiR$k`hXy#M?I^jI>itxSozX)5%{h+QHpe;P$D>h$~t2eKGM|ENc7%Zc$ zTc9Auu0$(*<%JQ7P?fr!>N^V~Fr;og|>r#LG4{-kzkfktS`uiL4z%yy7hqL^%m ze)@UL-(ellc z#h0!yAY1R=i(W{o&IeIU7V=TB_LBPXQrd%;L366c2(fG>3j+Mf`)1TP!TCx`q=L>D z!87l|JS3=R8S3#eFq3CaLs#2O0tXLSB`%4uWHQOqNjQ?-NM?9lyfHraKLC)*3!IPt zhdbPsaB!1sH@{y-Vbsj&5!th*SUqtUTsBZQ)%SZ4gf%AX3$Hrp_1j~DK8_7GHX;YY zHoMN?oiOZg1cFR!j;Q%inb;JeD}tZl+IzvwMr-Em`V(kAz7HfY*RbxCz87qn4j?=4 zP7cQa>UUY@rrQ9HP<@2^5p>MkC^K%nhq-oz5nimi9nRrXx=3>Du z-Vuvr&-4ZkydOJvlM2LE%w!Q*p};ADz{O7Qa7_}S(q?Z3S24b8l=Nd0h?DC7Kkt)K zPYYww*4RvLtf{@M6MI3OHk_yxcaPnPH`Fv!f(w`(eN#Tjg_0to^>^JPx@n6xXDP4L zyrbsH!bq%IaQcm>F%Ufs%$1FK^)6W$_9(}nS%AOaD{J7Aj4bsVcZ)LZM?fMQ?)r

    `sH1`>mD{rej5R@6Miry>y>GtH?@3YK%P1a(-;dE zXh&eY+r+UDFk{KZtb3B=Ja3=oRj{d*UzlFnD$_2sf`sp^5gaY~dfd2}sM|ed8dHm* z^UVo%&FC1=)27}5uH6Vk$5!K=FI(ZYH|aU1(1NkpKs{7h=p9(gcg!dK$zqBWK6{hw z++xPqn1YqY{Pg=5E;Q{QhFGqjVIjrcNUUXBrFJ=bJvi^a(I$xP|6-LX=;yG_R>t=* zn}OLB(P@QO$TCGhOlFJLj>Q%cs=fG9Bqo&PNU=O|DCWJ(q_sjIounfft|Y_j|GtT4 zPv4yR1)2A}Vqn^5QyIx@R#ha*6{NoMgvB1Ju(-@%oSj~N# z(K9y$KlYvPhG*m-mTzamkv2H26OGB?5*=#_Q$y5ik>Li{v!z<6=G^6wNtWQPp~hes zUA+x;UA4~p-#MiCleg72C1qX&Lu1G}blA+k&a0RysgrCyv8#2J#$dEf?xLDCWv1|% zy}?o>U$6mJ^Tn%X$nIkMhUo@As1y^um60oX1q79{z97BPZHj*N2zj@7ebxt9M~Q_DgR z_+|$ZPF3tzdg%Eh6!wK-o)L58n{*i0I{CAkN5V-H>jyP4p)SiHslfP+-bi~^DYaIM*)dNR(w4k|sJO4l9I-%AGFxnm@G3SF4J~a1 zdP?8WL@SlzGaub4NdMfY5{D&L;ycnY2#AizaMfWicN;3qhtNb%iIQZTWB1uYyNO&G z#dMVBgh_M~l`=4(b#9!1Bo>Vz`<~5qboY5zV-BgC*NL9(JCV|(PVD{%`jb~ zaOK{g_adAxco%4NM~Fw+Xu9$>tmk|P)zR0FPEYBOmJl3scP>()3AA1L9WS*3;Z69$ z-|_fc?Kxm?nUc7vh|$t(+D#(^tuCs@OYmY2zn=8xvC`n&YJA?5zekdiB4>*d z2t!%HCs!b#n|J{-={PK=yoGxKjJ8Jj5N75|hE06q*--H&_oVd{k#-!s>TUR0Tm0+YNX3Pr>={7 z{b89t$z=>V;^~uD<1xEG?qkCQOTW-B1Y*RmDu&N}5OO-jkB1-84&?5V4{M>LOc|S~ z&_AAcOR^bi`?&V*jL#pYO>}a+P?Tx0V{X#DEGW%zw~2Ejhe=lj;4h5nYUwVXx>X+d z-mju>SJNi=QI71Mg>l?JIGQBOH@2UIwO5|KMP+!A*8Jj<;K_OUfKsAFDdhtk+=b}0KTE+B;iGn`C^tWRZ( z%8t9ZQMrul07qCt*g2fZDn^SC<_+Dq(@{=~TbD1#NkqM0yjfuPgW{;!x)O|V4W=t|#T8Vpd=A3@^?-k$>d}pw_-W>t`bK?TO_wbprZJyh27m)dT6u7c07E$c4FCDB zegkkXX$US`YCDzb?U>M6PnJx-FhTz}(6y%@&!wi&$nT&l&wy-5J__S&636(~5(Cq* zt3WZ`4elFxnr{Bmka$SPO)fet*&30&^yz}{OGXLsFP;+dwF&OQP-f^g`q`I`pYTRb z)cE3uP$)+=akVHGCrzR`bqszR6$Wj=A#2joYW=RYt3mPmn9$Jgc>JDZ+UWluYi}7A z_4B;}BcOn^beA;J-GWjgAs_;~D2;S2-Q6G|AT5ou(y^q{jUX(wbT8e_^TF@0p8vb& zx}J9nJ9FmDoS8FcX76(kKSOznsh%k$=bt$9@hcS(e2&?RNU!f)V({lO0|6_(U0QRH zHRwaBGiT&FT+KTt_?+26EVQ%ib_e=jZ2QO9g znnMeLEc#q4Q~g3uX9nR@Q`GRE6et`6&wuwiC~e6yL#-)>CabUey~rh6KCQpgbAlR> zh^RMo3yiyEb`GuE*BcL{k-b0DkUzGNS8{lxbi4=QMB8b2yFylJb=}Mz7aSTd4up0r zfk$}IHd3^VBV^9QVy~l+_?)!O02Hv8pI1UW))6Xj@^|&1jE^vCYFLm3&{>X|7hF}) z2d-b%{$>w$yM3n~-x9}q3Uuoc&CQMnws69066vrKLR2V{QCc!;_(wX5sWJU~Osp>t z3dg%?$qURF_lt)u=Z;6VP`Vw~zg8x}hB8cI63|#w$xUz858n=%n9;*?OGfhJ3G}_? z2bd>i#d;tdObal)rFMY@@edEKouVJ`6HZc=Nj?!on;p6_=oB!zZ1LTH|LJ*^l7D9t zf5A66F1oNz|h8&AcA&C|fX=QLrvy1G?*MxJB#TU8(sXV`%O@X;CYU~0^aNSk1;w`2B zopy2>@e{SE^}5dn2S!fXMM&Vt@rTfXhL;fZ%jB@en=q%-K>V>q;MpDu?U_n9q|n1{ z_evh)&s#~1C^B=KKU=cn>#(wQTJj81V|pkCrvQ6C^I)0%yQ=HcsV8>NMx34Q8*p}vAEO@c`|6bny8lD$%e)hCtFI61pf>m^@rz|?B+ zv?0)|YY~kb%tr1CWro#@D4ln<4^1YubCD}T!72yTf}a)M_&!TEg(5}eWz!a#1c`^y zlcHXd4BsD4pU)eb;t)PaLdxo_!vGXX1njR626*l#H~~lJvypd{$`>{40*m4cWUa&? zj2HeE=*(#ms0rY1z0?B@D4I?>^7FqDCHvW>{E2dX^3Zn13I^@S^qdO8ghOWpzau`8 z6O9Gt0j5THKSx#sDk?PSaTP8%nVIH~`}zv{Cr4<kf=5LgMtiyLtg@aX$8lkmJ z_@_Ds9`NT(Ocu2risu6`JGo8)P1#ChLOoRLZ&gn{p(!d^lAIA}JY6e~uEtav?_nkwG)+l;s*l<68}On!LN$OCEoF1m z$9xq_X>2+E$UjKg@!H{^4?=%7ezpG005{Ss2Vlzy1L(wzAu%C`YzyKi;u>dgibMK$su63;Yw0`055?Dlnz3ea7_5c-B0QNM?j!6SRLy>jjX{|Lmk=v zZ;>NCpZ_T$UR70rZFKfJ7hZ16mNknxNp83BzFHk5O~yp7w3c<03<%9VL8$8ltOa0oHH+m z>~WXzQ+V7z-njB?2owV01j;z&FUi{$D@XUKRE@_&HW6U}^jh;51gMaK(tC7YOXog!H;^Ht%hJ@jTR zKfhzKC$8Y0rP-;n-20krlLT+of?5Odsw08hp9vv9TW%_TqS*Tue?s~o^n7p{jBz_L ztL7rBON?r~Db0y)wV*k7XWeM(1f)hjkd|rm>bI1MNOFnM9+Y&rC`JMIIdD;i)n4U} zi3LS-`Y9$B3+j$=qEYIB41QpG7G+_yO@a^`qpgt^54%So%FQzNka9HcUZ~BMu@2L9 z3Rqd)rx9v!i=u5T!Oj9yn}YgZdH`!h4myLTW9K0$ag)`Z>HgLQuj;Cdkx<(ep?qD& zs=gzBkYNR6Ckf7<6z%<@kR^jZZ)kfsit7lENhM7DwxjL^>Xw-R(`L#$(L@S@+yvcj zB%U4$=>Tv*Qt-pESLYH#$@>;SPAs#3J(9HJbyM%HV1pV5z+MJQDf;&AFgP+$hEA9f ziv8LA$xH&LQXiD+;4SDKZUcAt7POJx^@i-7r3j-Fn0*CC9Tgc7wqK-H$R@2|+Cl6L z<|XS9g?*|-a)+l+e*f`l3s%^Q@SFM0ZeW}(omadI`{q8pUx^4eg{j?y@|N>{9XGCR zP&f5g?*(%5jiuRl7nv#2;tMDk;1|vTxJ396aSa`q-OXg})f#QwO`D)SlD~n$m4zRp zK@Ag^@|VhRPH25?B5zw%Sp1s!k-$88dr-7$bV@!2AH0mCw|#7qmrnyoe8@$*g1vGC zNIFV$Tgkh0x#wsks3?L!tp0eoi{d{kk^u-0GZCwbW@Zjj<(AYtUWphfD+UJ>xW$wc zQr6p@<#v9IyP)KcKIH%f%Eu%3H%17gPh$pWZGmJFMphy^QX=dDK_W=z6+ApRT&@Q1 zY4vGUB!DAN{g(d21TjdBxAxa2)keYgO&>YE9v|oi9rt190>J zo6nPG%`975k70K4M%y~>+tu&n>2@v1Pb!=fn6=#yCD>vOYM<}H;ZFpK>I2+eAE)({ zA{_!s+adZc^i;NB_)lJOQ96iqkK`n;FRcWt9wP}HF@;7s$GFK4JKj}*SqB5C_ncpg zF~66-G4HCPwARw}Q^@_w{-oFe!SC&R0jXDu!ZU4OggH94Cd@Bdhn3Xt&f_i%uIF`9 zig)tjMQ0{*eF{as?Jg%&-6WmbgaP>xC?t4p@d@2pmj@QcX~B}=iaktAun#QdiJhXL zI>@sg)T?8j_C2A_sElf4^@gl4HFTND7Va~}n~^SKe|Kl|YH$yUipoz6;)m;PpHC*tV{SJ=jOva|6FH43iMG>3{Y9 zjHunguH4;f!?OKc^M15zKq942)nNAkN!gH~$H$>QOo!z(^`L989I1+k)MjjdcrkL0 zqxXfEP3k$+3xE7tVlR?N;^SXiR71eJ?dPsWwI&szE$4+s3kI%V^4DN#bxy|V&tCmY zX4Id46%Slts-onz1$I@OJ=bZ@3JO9OuyR0byJEx+tgSBC{d?ShMIwm58LkmaZ%vF) zBUjHS#Y!Zf^=IQ4W$19&{+jbXOdRD!hAzV1o`oGJB z#3NPKt7XD)oYWX@(tgw7zWf8(eI1pDZmb>lcW9?!cH@Sj2Pg1DI*8TA&JR7F6ku#S zKhi`Xp9t+_^F%oF@vFX0hs^PM)~j`f5}8FC=8Y+Ce#ewE($+@e;K<}C^drsVaqVmaIbZEjWt zR?I~bdvYmIk+D1`N)oQqPow8>J!*?=pFoZ9Ef>Ue-O_vguDwe? zy(Vj*oIc!VIBh-iV{%pC7>>H`1bt9a&iJ_@%H!4Ej-JH)K{y1xpag}}}TZnvg#I4Og z6PuWd9Gx9gYzDes?6h)t3BcQ&z#zfDvrmc$AQT$6*Ogw8Kq>~mapq)Q z4}dP;E}qlaf{P4+e$_*10JOqT0EmnVz?R0;S_e;Ur(I^xU0!UJR7|URu7J+C?Mod2 zAi1_R<^vS?$xi?~Ar_BZ%Jask{5=gRoVp$s~TB>%9#QPk+J)N>48x%pw0jVfiXDj z=jO`)cqpAtXbRvf=+$D!$03h}gHdjRpz^-0ZwDY})epHp=G6Sz@a-@*`zbjZwpjzb&=YqGG&#@K9|dbKb-Q!O)SV<)dK!P#)Jq@D{+;;q)xH76l5Ck@@a4u?<-vc67V5yeB15}@Z-Q?$~-{R6t z*AbseAQ#k^Zz+<)K)Npik$-G4QR}}+3 z$9-UWQ$FpzdFrl24gYT06fRKlr6DGqZGy zTOtd*mSmJ`HGW}m)(e`ixcuzKw^`?%nC>(!mX&zS12AigjGF+d25~x z;)IiEd}R={k7_sf>WDn))v$rzXtK%K&H5U!z1W3u4`Il3)U+xtcVwCW?GJ5eUx%uC zFzXIlzXxm?>>4TL=#kpO$Mq|b z9=!aZcwY99`KC>hIypkdi;=BaA(fKGQftL*r``2a3+YM8tjafUsDXy6RB2Bi%=5IK1uK^d=J*mXKhW>z^7)}2|DxmK}hCO?p}pD7gFw0}hcmP^>59-gwpH0p3eplAzxA!DsJhNj0wj=JljeXB{WI^#@Q;kmZ5Sd>P1LM7g#m%vE=upJ#(@WPSryI> zC-|i?0IAYUOWlo-g*uCoow#MRC-3kcZ^#0_SzPe^^k8U>%S?>St3ZZ!`Qp{Jk(~Cf z0;j%Ef=Ag%?p05`I)j*D2xr$Xfk~$;>`e4lk&^s|j5w?QJSoDb4Nw7HcJ&{NlXG5Av8n!w~QOJeMEr5X1yDmGYbYNw6rs z&ZdP2;|hqZl9_Wr!1Xa0++CN_D0QF~dXGGuhCyp+w56`D7f-`oJ_1}96$xi6C>+AU zyd0b2rY1J~!R6rYdg$8K1PYYMfQd^2+L&Q6u`Tv@<4ecOFGFV4aOUqJ?m*%lmwU@U znopCV$@-HwLe7RJXaZZ?6{tw$`{pD0b0r>2|3miv@Wg1OO}pbCT-);75m5 zZzrU_>x6Bzxh3uk+)2anh!!38W|#ilYq;b99Z0JZh0-MC-ngY>kjzHs z_;mK?(5g=>|I|-g_TYrUKN~M;gU&LI!PR`x7a=Kr{L$|_fk>(MD-w2yBPe_d|H{>H zA0a7pg2`s#fuwO%w!zZfUSVI2Da|ZYnz`-O;!&ZoNMMz!r(I;+qu%g+6F4k+Z zI)IotrL#sEgEDl?&yFwJz6%iSK{Z}vGsG3aGzMX-ToM1rh%_?3@PlOtn24LGUkW&% z2X2f8P&y4ddOGxnzOw-^Vl)>O+90>@M%(Y}?}UHzP7}wf@kig>FNW%@kS%Q?AsUsl z-S`#p6-x^~mNhY|9emd9zp??sn^}Gn#hv39BfSvT{qOWgpPN&@pu;zR2Tb6xYrooQ zh)F#LaKDfkTjG{S2wQTmJI=eq9-ALSh(o6yyma+xe1lpnFXvv^C~pF&4o&2P{vi9V z8e`095s_*m+*$;S-%FIi-4>h%;ya;>9`&E2m!XT-co)}lDFN@~fR zHRI7$hFj;2U}bc&CFX&KLkzEP<)(Or&@Va7HVCCl4!+OTtm{fPW$H(`?R5xPzM&y5 zZk+@9&1>rJF8M?gi&OcPyy|vY+jQ4Wc{BTo19W|!YqyH?s3g@Q)yk*VYj!*MDA#8Q z;BAHp!6X@yfJT6HAs`xLXuqeV@x3)(YP+AwAUg)&qYW5_?6|vHfHCSn-KZ#Kpd z7k$Ugy5F_nKof+sTN9Yr%q_^z zxhhLI_Lv}}IdWFFzJ?)%8a#9x_O3H*Xz!}H^b^O-QHO>h8$57#FZA@Ik-c4PEJzke z>we`8Upx)WMn(Wsf8C+4A3v<%!DViQLQakLja_NVFl!jF5t+9UA|2@3MlHmwZr)I2 zCxod+_cg$%gq!2E6j$)j7`AJ=YyM=}khcLZWCxbs(H@U{!_b0+{)`^7yMg*aGLq{ zho61o>xGB{H}pjFklaa;T4SjkfOMQK%gdbg0xUwZ3VVlt{t5Y&0Zy_(YGcZJ&=tN3 zqZXkg`ZpGUAhzyFTqg@21Ofjlo6QIO?ANq0Nx-rD*X_G;F}D4#a8-Q@f624~WG#%8 zf8bn()^Ndw!cl#?v;h?DR}=Z-d?esih22f6eILu9o81M#oUUuro8=Ku$1G`U^LI%rsFG2n5@)scNJ^+gpj^0y)H50Ra7RCjJ2yoki zAs|KVNr;i8neH@(9NPxzA}VFLnry3dlYduA z+sO&s2@s$HU0M+b@|IPFpBbDlR859K{-Y>YodBO68z8lB((EMb(ZJ0ss(;lH56jD# zH>|HSKad5^bpW@XER?AS;!*p@y&j(i*g?&Jgj)am&N_J;YW*sh6kUOF1ObeGe{V1I zy1F?`shz;d&!Jjqz@rS%Dl9wxn5Z!;dnnu-o1Y9g2XXxOt77Qd%NI$n?Y4gRcu!(B zLRXz6u<^r#0nW3Ke+jg3bQ*z#V>dE2^_ti=U@&gLcDlv%M0w`$YUqK}*}qj$-KfM{ zgq?nca?!5=Zy0b@Ul0ST-m@}N0*^qjLy@|JjnADGuYDwNL1dV`I4NWdaG#}q`De8%|1IMRmKYxKd?p@w2t~5l^`ip! zvnxw4OzHn}QQnWz3$U(u^=Wsg<{U&8y(83I7!`W-equ4?)jhwV8g36HI0tFvBah7N z5q$!(uqX22=l;kKwGQf!2HYZ!x$y(w@PE%pDFm3#7-|6EeC7T?%G6_O4UBfu)Ia#< zs&qkmDgm(7U3%C{GSJh%4Re%pv<`nj#7us10{Rjijtn$GR@BR$qP%y0%uiN$vG_p* zEl6fX9U6u7m;AHD`01WnvtPPVfwcAV8DaEGfKjpm+K#i2j4W{+#%-AxObmeDEvTtO zkN%Q9av#}NU;JfvOo4pC=h-2| zfBf>FqCm;8yyKZc(O7aa@0xk zTZ|x=$s#!Sr>e^m&L=GR$>X&}ocmNL`2QgJ`|lZ8QyecJU3Gjz{o61U>5rLt!MOcM zPVgWk^-1(d98cg2xNY^8i3B(M0*vrJHOr2l(-9##^YI@%m;M^S3Jr@M6PjeTBgF&= zJktgmVg))L(f`tKAs9wyQeBIR$AzC@tr_8PCrm?Uc%zc*cOl5^W!>~O3ta;qT5Oq6 ze?STU`K2PvU|?i%8ir;G&u?IBkQU4-2ZZBKN!4F3-@qX=DG1>b9!^JazfxD%nvdW; z7OOqh2q10C2nzC9QV4Kx0*Ua5EZ|HtQvy#{gl$1*9uAOC{!EKHx_NN9zq^ThP0@40 z`w-;zmY1lC1fe zBwK1Gha3d{z>U2=yIOx{f-Jy`onc{EmRpE(0cIVP_AWTebWbvBR*=!`e~?!H(ysTX zFMIiLAr3rw_J!w5HtlbS%NBxuH6g&1fvs<7`Y3)1?s4Keu)Cow3@`XlR{Q%SKcfpA zU@@xpn^>%nj!G}{&3&7}DYwoXr2c^nq`V+#$+^O549#F12{+W|+M(gdu*M2M+ zaN@HGVq(@c>jPKg3yQ`Bgpz2&@5$a4Y*gr=TD=9CNpN`sM26vAnx0q@8ljeSGh zxy&LKF%@pmFpP1F^NF=us~rjJjK<|?5s0lYSTF%zeUWlstDim5hGT`(YDR*;CV<0c zUHe1-cHtV1vRTi)&!jVmGlco@X(L{PX+$b=0O3ZG^-7Ai=ArX`l)Rs};V2;UWi&2# zi@@g!s>OSm;K{?SrPgLnhS+<7tPVtpf8`DJ2P36V?rbJ$FQ^j3k^bE-@pZ4z!4?pI zxLvyN&Cr=+M37%t8+_;(0NnqF=lh(zEp|uKre;Rf1b~xKZXagGsWu^85g~vHJVr|U zKy~dT# z#zF&7a!)kw9h=x-dE?wu-~xM6JW};;R9{GF-AN(-%~{Oc#a9cPRkim(ia|_3y5FRp zXbEhWJx83Dq)$~Gpi{K;uq`;k_j+>C2rLFUsI~a7B|=kUCmQ?}aXEmuCFsPJ(gITq zGSAd{61sPSlXZVmQ%|!P7&H3Lte+jq8GHx+!cB;8AX*E5jCzOdPv&RzE82BO*lMU#gGuQIDONY>rZisn5m)paX zT)O4^`u;^RR^>8lg~|~~{ZIknXLpCRU9t8!5}^V2p$qIg|HPP72F>Ir$=52NfAHa@lTz47@K_}@7y0&4X^T#cYFW&Y^X>%eUvmYP&)n2+ZE zfviz~%fm_KHHtsU?lj7#hN?2(%Cz0ym6VyqF6PW5sq^dc zWCHSJ*Fa%e?VlL`i~JsP>IN<)N}h*;MJVZBd%$f|J5@ZlkP|Z9KZFN|p|ysRq`o*2 z04IQF`BH4GnhwA+r(Oz0tNpk|pOljH|H6FJ04%uw^r~(#k9`NW({GplCndQaYWCE` z0r3qSH7)?7PujCKxx3ic-1S{e)o3PzuS=$WmBr*g*qyKHr`)Clq0wA^#eF28E zi_T(kDVJ3v4LN7u9@Gy>Yrh+)zXu5$b(e?Z40k``h&_AtI0sf+-xLop6?DxvqK)S+ z9mD!QeMJfzMAR7(B_bWdVY?Z!cUD!{bgxDJn;ZsgO@tI#_BifV&n$xHp2HD={n!9I zgz5Fo67PFkYN(ZN>HS3Oi9}{$szxB=DMZ`;hS#Zi3ez;j0I?m3BO;jlV9s-y-R(7fdVx zHV89Y6^>oYTZ_}_E1fU|RT4n%Ab9&lBV{p0C7=fPU+{ZS{6U*93`wW4^-kE z1X=7!SN_8c3v4fhR9R&1-*)%UF3_4*@3MlDae>|pK-L16c1di>FwOEG1B|34D^3*V zp&*O7H~h1>1dj{TkcQ<=Z@J=#oL`+i??%yg>(2d6n`PqjWMy;7c3@1p6aCz|1ew)s zZVKG1+jOxEeWI%S5-f*FS{Snfvy~%sy76R{zG+-vYi+9*J40;Xf2%Kze9;3D<$!@g z)0p9D*isU?nN6B(N#;_gyWn_mtJRfhI+0ccbt!tIi;7F{}2A*_4F)^aF7p5<|s z3h*mk!Y?NZfWNcq|2SvCe;y@5j(|O2R)x_#G0Eun-%QzZBC;xv1R@+4OcHxpb%77k83@9A% zmY4#_tTbn?3f%v?zV?cCju7C9y@A2Em=$z3ZZi-DVV!TkBmMU-g&Sg-PHhB8%#%NH zT2~{tJ2rT94az#sd0qlP`?fhz1aF;#;7*EQqs!HS%+*-n{lN}Kc_`64?jQ}C?EfVc z)$9gd8Z?dv06i_BN5D&jnwh3OkO-a>;Nx>`RthKZQokASkzic;GbrWQi30fe0+PTC zXKwy?@m`4Xzl-ZRfk*#cybzSK|L@|@;J^QV4EC;E71!qu0vDTNQmLX?oTYe6PP-~xRCi-8Z63TaUC@MpU75al1Yk<=OKl+O{6 zBSrjTIx)AJ4=e;mrNk9)>E}>t5h6xCeBGIzCjx`0Q$3DCCf_u$-1vDm5S4RZq)Tt} zBaSpA;w8JU1#=Jgx2hLUZq%|Wwd;8!EMIU);zN5MyQP&ngXJ@ek(4arG)Kh-pE`Gk zJJ43LW z%KTGQ_Tnk4JHfYo>UtK=IkVCsNa78r!(rv-)5azYoc=N;DT=zIKpvu_ZH>QYGfE!% zRIFQGohT*F_z@J^+C*BPL)j~to8SqLnHYSUkq^>1VP z@Y8KRm;a92#Hrc#O6y*2%hP$!>JuRdzA$Uyl(7ZCs(MAy=$YJat{M)`yYut1prwE5 zSbMOfK>S=;11%Et97ogSJXlE@mr^iHh^w)jvz!a=M1jdh>mLqMkk@{JPN@0(4_jnU z?i0=Dvc&i=m=$CRNmM^m1vgJ3)O6+r#)JgG<4T3=7dI7J;IZ+W-6s21bvm8#q_yTZ zUz3{!;!Eym=XYA?ch{s<$j<9>x6Dn3%&tEIQFo!M!U8nnzf&ospQVD={@jY;ndY|wvPcCpbSpKo#|C@9&m5NXDucA_jC zJJwJtYz8HKww#{e@(ik;h$(W(JI;c{o;cajbLF{&k9L(RjD4qhva|L^{11n^M)OCs zCr|v_ndODU$3(-sSrV|vRBiG4TfO^ zDk2sW7^r#}5})hqzU@fMD}*HLC5fvm>=n6GRuZDI`HXV>C=^Wa-iRn7ycJ3ORICtS zg~BUcRQ(N6@RFI5lC*~rQl4- z;-%q?iU-w;;<(m5JY3rwDv)~SMe)0=8OnQ_^x9!P~ zJkfc_gkrC%ag$<85+-1XZECPnH>ni6kFFyTsg8-|MBSTb>ssO?Pn1th=1Ah7x1pJZ z^@rNfhv8HY(dhth)1J!dwV1xQts}fM&f=+T?JabPNg{lb-uq!Ck3JQpe2O~v7`vhH z%IkL%<7<7S^a41|FiViF@x!cf#H~=Y{DUmbvV50XP(OH^%zK)xr5DFjhCWDEvJX!e zM-OciFicS!c9Lu2mK#zy5Z{@jwv~N9Q}Q*Fwn(BLI`PBN2RY8yBWoU0qX@EZU0Ro+ zEZL%OH9X~WFShyJ(gsM~Z z6_W>0urwj{Ry`cF{3GHX!Y;{D6cDPPY6?{u_MuvrZtP6NB8f)mL=O)iwEYgtAIqw| zxlPgVtSgKcUE69L-byU<8~QZ)%TtA^dzWvOpTAMk1Dhc#KXfAPd*j@eebP}v$H?su z3xufCsp7=wM1#oP1w+WUSl+xXhw*qFNz)uiWs+2v8k1t*;QYF9VCLsFiTUV)V=Q*2 zB;iCybi#)m58BvA@Mn7y5>tGWUt=E|C09n6@LQj+pY_-DfrpPufaGYkrk|rj?pY_E z$h%(Ai-^tGmET#1XmU|Sdio-_@plvbjT8u{lLK+DnAc{{J`1x9u!)1jOiA!5EHj@X zF)H8tq;^!0Saa#&KU?z2_5FrPE=5R^7g+Yo%)TU55i=OmczS-SqHwXE(1 zjAzPg{|Q>_k_5?o)kP5ojUpJQNry!9F<0 zX@X&5FFeSZZ1c@$A_xrj8@Nl}F_|Kn^2{FW9)Vo0Q%P+EsvmAp-*nAdiNBf1;LTfe zIEf$sBn=pYKS`$7B8`&UZx=AeupcsipoKkqv5TCcF>T-l-{T~-HY2MzVOkR?|c|zY=cMeqUx_+JXO`! z=!20>R@}#NO4jz_nojNx44iH~vPjd(K7cXh>dT)VxI5GNhX+MG?_=k*lz(CN4w|xA zY39(P;B^wFEi(9goDj|LUw#K}pFkwx_x%s`C9tfrmKyKZqA3 zW)yULWA7?VTibe!rwA~DQ!J;qGQ?nAWrZRtRK&*rZEk*h^QUl*r+`dfI7L!yZ6Cgd zxWXuA#GonnQ|<1{jcKs?s)qQrR!g~*{YWVq#^==+wMtaP=Gy=1>^!e> z!}G<}FSH6x{oKC>6w651hs0L@I$p96HVu4#IQw8#cG=N|U5j$H>l0Ht-=^0eKbP@d zui`%m`fQkgtboj2J>{BecmnvCL~Z%Z7`rk2HD#Ch3saTWYh}*CyJe!APB`K-i(Ntq z`m#erJnl+-z{Ew~({AdgPcjIT<=Harh{-fPZ_W}F&gWGhG0{DIfG(@d-FV4+bw$UK zV|6oQRs&6CKA9N^dxPeUi2+OH);)W4+x~V(&T4wrl4*i(UPiz4V>g*1o6qxU z%=v$IfpC+OA_mRR=sR zN~70*sQzM?t2H`P@|^a;?$R@J`CFAj2gQksDya}wKYFp}q96{_Akq8g-;rMVpB$h> zr^;WfNGu;sbth??qZ5!Xx(QH3dlRD*qUgA7JUeo}nD2QkCa=08;V?XQW;l}Rx6;H~ zcc$0m_?GTw{*!iE+&it1DGR|J3ZFgr*&i8N*@bKkREK))o=1+r!o21?dtnJ){T1F& zlg1A5{IB>YD62c4Lzd2%($zgK@PGV91@e$Sb&BWVWt(SIhh7x{C!Z|}+b6#E-G zkN)vm^aMix_EkAy|ND3&j-6EwDQLSsE3oKbY>>-Ry!GqztAp;RJTdeQyy0<%()|z5U~l z4E?n=T$^E@jO5~X z|9OrSwbF-&31UxXEyzZq2KdXO>R(zSxJjXUe2@|G*o28>k*9g6b^odRsO*(rQuVHo z+{7b0O%3{&0kX364{-HUZrMH}G)C+B9ijqJ*&m~$qGDN&z>XDPA~}Xxf`b0H{?+`- zq;rFewYwG4+I%+_dS^Usub<)MTGTSEBMLz+n~`8DdKvU3X8OeMpx#{uiRCeVgl%Na zgZ<;k-_es9#45DLun0H6Iu8EAA^j`2$-rKoWQ%L_#DeUsJk!yquh#L9OWI)SsF8 z*w6vBRqwIa6TEFb8Q+V_pgFGN_=b3gT81r!ttNuFi2_f*IMwXqe5IG0XI(H~vFc-f z(MEvdqP&KJf}gAW0yy>xDtE_~>2Qx!wO4O_KNN44BUWOkC8v)GclI4s-K0kFzeuczybNQifQevq) zsB9mnZ)6?tP%diEK{s*cyA`6>no?~3`a1k#F!l(9bi0n0MgAIO>z;YtlBJYjjhJ|= z$pE?ZTI2A9U8NfqS+Hu-7kGZ~7i65c=oKh%qdwp|C4;+4RII){Xgo^UNw5TiC$wUP}f z26LSjlh%;x(N~_UAxs9n;uPhJlqI(_jkL`-`Zww6F+7pcIODsQzPf)t zWVbSoz%-mi&RloqDyOtzu(2* zMjNHyj?LPC-^+#AAN&Zr4kPQQUDzd6MRUavTeb8qE3O$q4d|ru_#);OQt?<_dVG*- zd7w9wo6%N!glukQ{R3{a<-l@`gw0ato+rg^=tM}$Gs!_yq*K*FQLvyI6mkuH!Y)Xg zu+6=K%^9QfZg*=o8e9xX+sAC>V}G2ljgJ$r)*&hrqPj_=m~2t;E9KOD&-fLs)S0(= zW3c}Er$=$Svln=rhE>k%Lq1UR+&?gZE`@NOj&eNNS zD?D+cLncBpzNPsc4IE~z!5R}S!NPHZ-(Vb3&tgRSE~5=#_5X^QGAJ&dvd&J)4txxJ2Tn&GSx-$)lJjysCQuruQE2_Zb zX-U)i`#Q2_tH>rdb{$$vc$lwPlk<0g_bP|2sCG_74#zB)4^+J1SPkYcB7CKj+8;lQ z+PR#UMatp&MNVv#*Hm+mlwDD9`dGn_+BgLxf$5t!zOF|8cO8|5yZUmZy&+J%uDs*_ zcFI&c!su(^TLpencBB-PmIrAyyW0pFS~{^g&^v92&JKoM4s%x`mU1C7tWb(fPPz~7 zu0LAB{zxupKC^sQE&Jhs0Inwy#+qZ~86j~&HbjOtx%6t=`TeseC)W;4)!ct(2WBOv z^qROx%B;sro3)0kK3%8=6*YQJw2L^>7r1}$uV(DKU^fE>OXrX(;(dCJq$I1A9>^FtcT@iVNYBMUe!WWEo;Q1-;iV2VWp98;PZsBM0=)NIWwT(;gj*Pxh zd1Ti<_Ev>rb%(b>Oh=0tqo(zzhp18bx~%!1z4i^2aY>my2WmuyLsVJ5sI_EvNMg4< z)F(5Jt#B7b)HF@hO`Jqcz}CNe0z=^X!T&b=@?&f#oR4*R2RDq5EH8r%R?!=z9ToN3}?ddHEwb;RgY-N!T zhP`>Fbu31Euds(FshB0^k-Pn`&NJFB=&chh4yRcs_L#O zyk5G$_fGMD&$yDk?xy=C#xJMf1VNsQ6U~O#~`?2pU>Gh31etyVm1n zOEgZypV&N=a?tJ;Z;Qr`dlw_1hyBqpR9~sx|W~}JzeztgMc=FlhROV~VkfDqbJ+ln2 z>=(k->m>dH-q_M1Gac_9sy)SqUncKcs%Wa!FtfFH3eUHszQd-5-W_ARElT*rw(uUy zjpe~Tw>QO|lo{oX4X~dPyrcHhxx;u{6-kD!wl=Sb@SMiHH?{Vp5B`xm9hR@^!A`~83^C1JdFMl}zdnRcAoeon z`}Iyr=AJ!iX|)@!LRdSucEwT1yy=#z@1^=@sx4a67+=gHk3_;q$91~q$SbO?%?+Y^T&*NO|^>>Ggv_s z`gKY5p}PWo>%-Z@7AEV752z1qK5c``vJW&ip6K3iF&Mll@Ba9#67V^>R(#D4udFMy z*nPHPZN1(s3&q_n%Q+B+HS9ISBj_qFW7)T2+X9T+CYc$J7yBGnVNDO@wEPue!0<1`Tq^mTGoqgsdlQ zAQRr{LbjB3d7x1s+__)wj8Puwx9v5TDz)ALhEGJ(hM$b*kB%=r0o+W42Y7OTtqi%~ zT@mzdbFuq-IpV^&Sr!=_kTiO)hGp3+2Cc~Do>XqL-QBI=>j7uL;F-Lsxsc1a+7Z2` zWb(5xi_VOo!}XFbjc)fcuRtHSnkp*_iS^=L-wKYR>K02>EX}`b9plqRca7wum?`Xs zYSM4ur?o?2==x;l=gWR@E0?1$nkGcM4ZmQ3O^TR`~fC(%#_GDnL)BM&?k2_K)Oy(Kd-Vu{}*FEb!S}0oig*tPEDk zd#fLf5zn${8q-&UZKBHr2x>_6>C02+6H9kp!o0HMY&;ctA~OcEtE!zs0}LOQVGI4> zKNGISXeeW-oj6eB92))1>Jt;P;lc_8Aizp-eIWq^AizrLvh}QYS10+d zY$~D2%Q_)WSv8|!m3fMCCscWShPk`f-!E{y#ps)OQLT7fHEw_Gc_an=LZHQX{nR9b zZ|e^G2Ate)?E2<+I1U*F{Xgz%ritj{;*t%`)=c0n^Z;7XGSYiFt3aw=pYR*waZL7_>ykG04w*eNRX@#R4qVVq7jRBGw ziAy2JN|ssl!%g{if&01!pgy?|MzRyrG7=zT<#>|f`cK}>6u*atJ-;$om(q4;VJI_y zw`nAR-)-g6cReL?@W6@e$i2zunV+JC4U7o=%^@&D>G+1!vw+3g@!MV?izUOX&AyiC zVU;K@?HcZ*!R%#eeC(o$kIb#C+|yH9h0mZn&^^o76Kg_iA7~@KI%h10CMu9rK!kry zpkfD;#>Gqz(Y&o0>77nlhfVA`Y`fjtUuVO;(O_I}h&;Fj$}5UID%w8g9j8%mj^wFH zQ~~sO_-6E8kBWOeLI6Fg-pafVAGTq|F?Xc2G5Wq;%aE^MMAN$Gf~+eM>lkl^I9pta zNI;AmbdX{#cB>vkdo%lU^;jsSU+N9diQ~#^>K+`3NMMz75!jCiBQ7NWYQ({dnRYW?OQWk|TK=lGu=c}S62SG}?6ll1k0Lt3uQ zrT=F?E*;#T6SMtVzrNImlEOdR-wSPuS-15Bumzv$4J;nKI;%DJ!S-CULsn)>CJYk8^N>afFRwPLSh zAIk0jv1N1p<|Eaon;g7q5*j8<&;b@Si{I)9oL~DTFYS>ru#|~BaqIQ0tCr6%RmYk> zylTZ@)T^s=^vV1jWrhdem5!^%zinrYVt2T;DfQ{8sjlag_U|-)`XrLM!SASlgu=hq zDba%5TlgBbq#B*poIK}fUe3qElhb(_toGc0l6o@ycO!5ZV#2l$ncBB+@|)dT?dH)v zIg^h;#_sevXZ7117QhjUCAw3eZ(d_`;tki%&hx1sKb$n>XgIZhlSNK}!Ot#x1K{|@ zCGpxRxu187@BjO2@!iVpZ~9i21v5WzG5B_;?@uCdhuS9IPT=^4gVbm9N6*Cnd){Me z5I!!UEO7hJ``BxauNgeDr*KXW>Lx@!E#c3KUaP&`2MpOxjt)Gh4kZzF*NIt-q!elF{r G5}E)UD&chi literal 0 HcmV?d00001 diff --git a/scripts/Makefile b/scripts/Makefile index 6f05559..fa25d97 100644 --- a/scripts/Makefile +++ b/scripts/Makefile @@ -30,16 +30,20 @@ tor_bw_full: orig-client 600 1000 100, \ orig-client 1200 500 100, \ orig-client 6000 100 100, \ - orig-client 12000 50 100 . \ + orig-client 12000 50 100, \ + orig-client 30000 20 100 . \ orig-server, \ + orig-server, \ orig-server, \ orig-server, \ orig-server . \ tor3 -f /etc/torrc_simple, \ + tor3 -f /etc/torrc_simple, \ tor3 -f /etc/torrc_simple, \ tor3 -f /etc/torrc_simple, \ tor3 -f /etc/torrc_simple . \ tor3 -f /etc/torrc_simple, \ + tor3 -f /etc/torrc_simple, \ tor3 -f /etc/torrc_simple, \ tor3 -f /etc/torrc_simple, \ tor3 -f /etc/torrc_simple @@ -108,6 +112,10 @@ tor_guards_full: tor3 -f /etc/torrc_guard_8, \ tor3 -f /etc/torrc_simple +tor_guards_full_parse: + @. parse_lib.sh && \ + parse_latency tor_guards_full 8 + tor_relays_full: ./run-3 \ 16,tor_relays_full . \ @@ -140,3 +148,6 @@ tor_relays_small: tor2 -f /etc/torrc_simple, \ tor2 -f /etc/torrc_single_hop +tor_relays_full_parse: + @. parse_lib.sh && \ + parse_latency tor_relays_full 2