From 877b37c9033fc2af0f40afc6993f6d98822672c7 Mon Sep 17 00:00:00 2001 From: Sergio Benitez Date: Tue, 22 Mar 2016 16:27:12 -0700 Subject: [PATCH] Polished examples directory. Fixed `File` response bug. --- examples/hello_person/Cargo.toml | 8 ++++++ examples/{hello => hello_person}/src/main.rs | 9 +------ examples/{hello => hello_world}/Cargo.toml | 2 +- examples/hello_world/src/main.rs | 14 +++++++++++ examples/manual_routes/Cargo.toml | 8 ++++++ examples/manual_routes/src/main.rs | 25 +++++++++++++++++++ examples/static_files/Cargo.toml | 8 ++++++ examples/static_files/src/main.rs | 21 ++++++++++++++++ examples/static_files/static/index.html | 5 ++++ examples/static_files/static/rocket-icon.jpg | Bin 0 -> 88512 bytes lib/src/lib.rs | 10 ++++++++ lib/src/response.rs | 6 ++--- lib/src/router/mod.rs | 4 ++- 13 files changed, 107 insertions(+), 13 deletions(-) create mode 100644 examples/hello_person/Cargo.toml rename examples/{hello => hello_person}/src/main.rs (53%) rename examples/{hello => hello_world}/Cargo.toml (88%) create mode 100644 examples/hello_world/src/main.rs create mode 100644 examples/manual_routes/Cargo.toml create mode 100644 examples/manual_routes/src/main.rs create mode 100644 examples/static_files/Cargo.toml create mode 100644 examples/static_files/src/main.rs create mode 100644 examples/static_files/static/index.html create mode 100644 examples/static_files/static/rocket-icon.jpg diff --git a/examples/hello_person/Cargo.toml b/examples/hello_person/Cargo.toml new file mode 100644 index 00000000..21381940 --- /dev/null +++ b/examples/hello_person/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "hello_person" +version = "0.0.1" +authors = ["Sergio Benitez "] + +[dependencies] +rocket = { path = "../../lib" } +rocket_macros = { path = "../../macros" } diff --git a/examples/hello/src/main.rs b/examples/hello_person/src/main.rs similarity index 53% rename from examples/hello/src/main.rs rename to examples/hello_person/src/main.rs index c81c84f6..de507481 100644 --- a/examples/hello/src/main.rs +++ b/examples/hello_person/src/main.rs @@ -3,12 +3,6 @@ extern crate rocket; use rocket::Rocket; -use std::fs::File; - -#[route(GET, path = "/")] -fn root() -> File { - File::open("/tmp/index.html").unwrap() -} #[route(GET, path = "/hello//")] fn hello(name: &str, age: i8) -> String { @@ -16,6 +10,5 @@ fn hello(name: &str, age: i8) -> String { } fn main() { - let rocket = Rocket::new("localhost", 8000); - rocket.mount_and_launch("/", routes![root, hello]); + Rocket::new("localhost", 8000).mount_and_launch("/", routes![hello]); } diff --git a/examples/hello/Cargo.toml b/examples/hello_world/Cargo.toml similarity index 88% rename from examples/hello/Cargo.toml rename to examples/hello_world/Cargo.toml index 06d53b5a..2e4a531d 100644 --- a/examples/hello/Cargo.toml +++ b/examples/hello_world/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "hello" +name = "hello_world" version = "0.0.1" authors = ["Sergio Benitez "] diff --git a/examples/hello_world/src/main.rs b/examples/hello_world/src/main.rs new file mode 100644 index 00000000..a1e7d9d5 --- /dev/null +++ b/examples/hello_world/src/main.rs @@ -0,0 +1,14 @@ +#![feature(plugin)] +#![plugin(rocket_macros)] + +extern crate rocket; +use rocket::Rocket; + +#[route(GET, path = "/")] +fn root() -> &'static str { + "Hello, world!" +} + +fn main() { + Rocket::new("localhost", 8000).mount_and_launch("/", routes![root]); +} diff --git a/examples/manual_routes/Cargo.toml b/examples/manual_routes/Cargo.toml new file mode 100644 index 00000000..05095dfe --- /dev/null +++ b/examples/manual_routes/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "manual_routes" +version = "0.0.1" +authors = ["Sergio Benitez "] + +[dependencies] +rocket = { path = "../../lib" } +rocket_macros = { path = "../../macros" } diff --git a/examples/manual_routes/src/main.rs b/examples/manual_routes/src/main.rs new file mode 100644 index 00000000..7f74f473 --- /dev/null +++ b/examples/manual_routes/src/main.rs @@ -0,0 +1,25 @@ +extern crate rocket; + +use rocket::{Rocket, Request, Response, Route}; +use rocket::Method::*; + +fn root(req: Request) -> Response<'static> { + let name = req.get_param::<&str>(0).unwrap_or("unnamed"); + Response::new(format!("Hello, {}!", name)) +} + +// TODO: Work with these lifetimes. +#[allow(dead_code)] +fn lifetime_root<'a>(req: Request<'a>) -> Response<'a> { + Response::new(req.get_uri()) +} + +fn main() { + let first = Route::new(Get, "/hello", root); + let second = Route::new(Get, "/hello/", root); + Rocket::new("localhost", 8000).mount_and_launch("/", &[&first, &second]); + + // This below _should_ work. + // let lifetime = Route::new(Get, "/other", lifetime_root); + // Rocket::new("localhost", 8000).mount_and_launch("/", &[&lifetime]); +} diff --git a/examples/static_files/Cargo.toml b/examples/static_files/Cargo.toml new file mode 100644 index 00000000..7d6a7512 --- /dev/null +++ b/examples/static_files/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "static_files" +version = "0.0.1" +authors = ["Sergio Benitez "] + +[dependencies] +rocket = { path = "../../lib" } +rocket_macros = { path = "../../macros" } diff --git a/examples/static_files/src/main.rs b/examples/static_files/src/main.rs new file mode 100644 index 00000000..3a55d065 --- /dev/null +++ b/examples/static_files/src/main.rs @@ -0,0 +1,21 @@ +#![feature(plugin)] +#![plugin(rocket_macros)] + +extern crate rocket; + +use rocket::Rocket; +use std::fs::File; + +#[route(GET, path = "/")] +fn index() -> File { + File::open("static/index.html").unwrap() +} + +#[route(GET, path = "/")] +fn files(file: &str) -> File { + File::open(format!("static/{}", file)).unwrap() +} + +fn main() { + Rocket::new("localhost", 8000).mount_and_launch("/", routes![index, files]); +} diff --git a/examples/static_files/static/index.html b/examples/static_files/static/index.html new file mode 100644 index 00000000..67ddd36a --- /dev/null +++ b/examples/static_files/static/index.html @@ -0,0 +1,5 @@ +

Hello, world!

+ + + A rocket icon. + diff --git a/examples/static_files/static/rocket-icon.jpg b/examples/static_files/static/rocket-icon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b6000fb0d4d9248ea688e585a463faad0fa419e1 GIT binary patch literal 88512 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%0AyXO->mo;?q zlS%8nt#rUZZ@8+R_#`#v;wQ)Ib2S~SHPa|az~&w6peLINNm-M&?cccY(cG)HFEC5P z9s^lVo>&Bj*{&!+4ouUI>*wjz&Ek@b9TG*L_OK)<#yN<2SBz z>**7EpRVB7<`q;J)qBQmylaX|Ta$%9e@z-4+S^)MfLB-N>fBM-P9lBdk~UJn>D)Bp ztgn~MRE%1i&e#HX1;MW8PbN2b)UIzP7&Fj}e@< zeHpBo9vaF@+23W3D~?3?DR@kfLeIxAyROfjE@0_7dth_$W2O-Zdqk%rnH+EK5ct+* zA~+9|Mx(*uaD@tQuyP%siRXn;p(bae1rSOtk*Tl|MRIm_!o%yG&wmsb7uSsA;b}Wr zJ2~?w#;)H<{qWp73GW1ooUd(nc3FVhO1**ggr^&vc=T_qycsVVmap-C&I@0Tzt{bB zWRy?Or6ub5W}uWCsWT9Xgq!bdiAUZ4t&{(JfxxSHzb<`6`D|I% z0^C`gs(GFg*hvmQ_W9pPhuYLPHq?)^@?4Y0H|R~oU#S~Ba@wF}&9OVm`I@#?C==UO z?vI>i@&>vytGZy<98B5c6}c?3t=$l+G8?&r&J;O;#5X21GBNH^!{)_Q1|IUUG%u9N& zqFagRnN5sJ^BlqRF-hIbBwN~UOzd3@TGX~1zi5jKQpdiZI3A9vcOsws*Q&s=o z*MGR=qz%nxlj0{%q31osWAU=a7ad{4li&y1|JZdtG;7-XX;9iRx6HK5a{9A}@`exn z)Z5JGRV7X0bk3#QRCy~>IG&mu9uv^F*uuHhNs}8OAt?dk;!e&VPTldI)yr}fi3!`P z4w7@mVJFLFNiz=@R)K8`U^iB)%>_Qq!T!v_RC(v?%#kus$a$MGLxCk7JB=RYs0ptP z^&oo4iK}yiyJ<7DC5gv$pOg8$>egA;P51lXnKmw%fjaYtM6ym=j=b$vgQn$c&%H8Y zYhtvdhN*xaMuxLXETv^QHsg+hg@>u@hJ@?9nXBXM^SKOJci@T@LX1&)<@pkF|6G|p z0JWg)>cjcz#LFx8vANwrVS>6I5b0x?M(uU%{ItHC?@;8H%xOD1OFYg zY8SmK0|cToc+6gW`k@QrZRjk^-steF$1r57wlDs{*G()roI?42C@$|X=$3kVcOE_# zvUdbnBhuhX8g_qA^nQ0g_R&UMsDh=e-RJxvg&6%u(NL(xBvUa!XuPu(5usWVRc?p_ zTF`a!1GU?D$7}cD!EvAG3@{(z%XtL?>r0}_PKC<4dQzsmy%oH@6b%=8K{jXC(S>C1 z2A99Gq>$olI`~G;T2kRJ7AhDKoK0hH=@CY?oSep2o82Xg1b%7pK-+uo#P_j0OEzPu zl2jb2&C4zZE8!8AUGKHnU{*=ki|%W|D2J0O+4!~IF}4l0si6!-$W`-`o!c5(ZYkl` z8agpiHWfg##1ExT1olppi8|?7(EN~F^p^%pMmcq53r0$KY96k_y15)lL8d!7N-A3q zGK&U7BMqAe^7X*w(nKwj+S{F4_dXp75^F}g>5hsH@-;4%*7aNkW2a)RXRntWXECt- z*>59evP!cuWK$V-GzNZ_NW(kX1$$=A2I|5zQEpS$JAH@t@H5zqIuirc4(G33fwcqX zh)3B&%533NCu-vx%3q~NtwMzT6~0dQe(;)PK9!}g$dz!4L+;6_z(rj<$!}aFqB>2_ za?~wv)SqWCq(TCvTgVSLyw6fFs%YuRsQJdF@FV?2A870GfP8B3XO&~VPOlsM>|!$P z(YpyTM@?<0#!Dp$tTUb2ExvA^XMQ3w$vDA_6ZI% zd(iWNA1>-HvXK3jnn^}#sEfy8C(CF^B9RW~Kh=+#0K)iT0Dz{Qef)#2ee8l6yn=JW ziOD(oB=r3~cI`q$jDL`n>I1HmQa68NywiXHEs*5_jB(%myv;|CzWXlsz#B?@SaE!@ zLa(&UqwLri!q6E#smViSH`+u&03+TqBH`L(^oXNKcno;=#IaX@>KNpN1f40Vs|xZo zS5my%K(3KlF}dnX2Ar$p{qKA<2TS&N?4a$k$eVe~i@MF^N$1fg3ylyzC1WrMhE*WKs23i|o* z`MRclo+cj7Er})wpu=SJr^vJB2hPHI-IK^ZduT5f z9P_kiV!Lh~%vck{>c7|>F67$GzUJyWvFPG5OLaP6=^O6i z{11G>CuH!3FVZ^L>*^wmmR{|Jav544KS1%#++GK1#x%s)q^-Zjd}|8@MWq+h?6ed5 zjY`h5V9?Gly}ravf2_yxMV)ao8x4 z$fR`0LgvRD78IO2*$nEarnoo6Oeoj-_vHG}rrZMc&?RPrk{j-75Go>gL%~&k|ih)m+~-MRg^X>rFgL+21|MI`a#m&qnqmy zliUnzDXZxP-??Y~Ro(jV4!=Q>r}V{=8a`T&c`pBnc#SY0mf42#LjpA?uFTt{aWA%( zeFwxjua>8u*x+8C}ZR#^^KS=G;> zV(!plNi&A###Oqt(P!oUgC5&+RS5zzt{YFw&O_qAm^qi=5c108tsIZflwP21 z=4FI(iDi(YMZJZRy2eVZkHJoN2N>G6E`@i@vXNXadB~R2%~ds{v#5#KF?T`ft#0@; zdr^QI++dy}Za!W1aQcVeUViv;UGU*L%Q$Y881&BN8yB71`qp>P7dHB(cl)bx_k^`W zX7swEl!wAIG(BS15dOo;?*rq{N)FvAZ_0UB8*6K)dUq4?A*imCx{NO4%KYVT47^j- z!@SGIzel^b3~9Eii0JW_=zEp-Hm9zt19icNd9uz+;q_FmWq1fO8Y2c^z-W7gzqDAj zO;TqEhydJX28nZ_1=Bpn7G-wK;iIEv4d|*$s+3u#SZiwsP`O^oq`fg5cgHV>mcPYK zW!I%#u4;ifym#~AH`xpNMb9|zbwh5veA?G()UqOmvh_sCViJiO zs!vhgd4++Aa{m3xTE|nBJO06^KZmB2SvWWrtOzP4iA!$GtMr70-kO$WY zb4|4KBDN_F5v6i%M3Q?=m}Zq>v79>^pHw?+X_GJ?mn{9pb^yPwpb}8eV2GkoyfX2T z1%N9RcCngUi@cRhr-dON8JTagoa>&(r@i`AVg!2_{;Z|5=z2_=o#H^K4LcIh1mR5N z$$J;u##QUOUJa~JC8r{2SQ3^P zXh(69)H+w&uhQ~GwWmq0>PQ212%C!^>RvW{l0m@1g|oKk2wwk`z7lVr0oRJG!F^FY z;a(2s%=bPVmz;HW3xf(ONEhMXA5Z<69k|fPTGGvnixPKfHEIB1Hk5dHZ7nN&Y6f$|J1nQ2<&=ke$CnTw#+oPA=GC&a+alrujFita`{D~mqxSu=QxLf zu2p+n$c1nNWhpE$1{Yp$HzBlF zfickq@cSSMl%^Z_`%1lr*1C&E2EqxhLutk38YhxPMdc1Yz$JQWlKQOHy}S9B=`dUj z)3i*R%+BZ|kKZ0=ThF#l@04Q#?!8N1%buhV0+BJXPEu~}_El2LHTQR#Q*^nm9{HII z2|9317n;^!;-oXxTDz&n4b3!xC>5XQgtCRX9#8^b!UF||?zP&g^=Omb*RDShi4++Z zG6hS>ymj+?v^eTLaA6T?$)LB7omw`nWvyr4fyXk37YEmGwf-JW{uWdIgl{=~Z%zV6 zLCLB|*4`;%#iAAh4Vl6mn*E&*tQ5Y%oL_jZoGz^TjBT}_Ibg|IkKLJ(?0Km;bi&YI zRyH-)`r>IB>I`BJ`otuT-&l9%q<=^C%WP-o%SqH-dPI%$RiFAM!aS_WC@f&Kl+aLl zHp{QbzgKDV8`rG*fVjQTAhLB-xpRoZNa)>EZUr&bRv&&uBsT8(l_d1neQ2JDk8jZ3 z{F>pZyJzU6WBSQZ*cLu@Jx0g<4fH!kp=t+?nVSRLi`S2*23KIxlE6B`RnC@IK zcwJyyE)jc|OwMNNg3oycCDE7AE10A%nzad=HidG+y+&*nF(ecqsf^Noh}QQDrY)R1 zrf`^&*6I%7i^4e|W1h1M6Z9b^PbsxR6G`F3bto7x-U-%v)oB0*i2Nlx>2~9H)1I{` zz{Zc>*XH-p0(vI^a$wAE-T0d8sC8Kr(wv404BE_Ya?W7}Dfkj{P0V=UK+u|j(H>|a zn$oklB=+QPhk5sUWnDlp8&9OjTT&1-dMWlIWgFO(L~4EZ#$lmBCyU(pr1&;*Fg z(vxWdk`RK=&9dDVO6*(w=o_!k$4=I*Fx#s~*8j0sDp^l62k%JuX=@Y|kito<@> z()d+z1iKEoji=%^T$5pF%~Y12FTrNsUSxV>K<{Z!Nz2bP7TykcsuJQWGebQqGt|K- z<9Pvs^Rb$Ec@<|hn(s$nmHYUVbYkGbtc&b5s^@ztO!QF{#w;#!&TcNE~tVnFAA?&!UDu8`mD(qi8aArAG>L)s0@EsTE4^nhbkW~B0{D9}g_&eGa|tFcVh+gl}$ z2jje85d+2BbN!4jJ&U^rJx*0cdjrzrL^hAsE2tqKQ>^T{G9Km!I<`$IrBiu__*VJr~ZCvD6Lc>0U7uHl| zCMdxkAPbVZxY+8aP8oErs7y(B(L8hQOtrq5L79*J8wjO7f4A0zTsSyHTL_X)IZWNR zmRs_SmV$O9HwTt+sa)P+KL-f6g?ClSv=Cl#nyc(e0; zainsYaXd0gQfj6_>bjwV)2}q-1^Fim6htqj5Z}@Z@m++eL4ZuP+J+Z+Ujw(~WK7}B zTB(n#7b5KwRv)wy=5`==e?og&o^bzoOUcW?fKPrVmQe}01A!fxW!Sc!RK*UfZh zSunNlmyEoKG)R8WM{#lpeDlG=$%HSu(~cYEfkn>$4{zTc*VMB8i^pSc2LYvX4hRSc zh;%~ms1)fUgh&Y-sS=um(2EtN1r8uBK+qt8BoL$q0s#vh0#ZVN5Kwwc=!7EpqTc&^ z_q})TU+?3cd_Ft-Gkf-|nKdgrvuCaEcf7w?Lr22m`Wu~hs_Yn6qT94FXDvR0ae(N$&tO`ov_^m6i-{AfyhN=?{8|UKzGC4Yafn432x9 z`0}NHN}T+9!kz`ivAY$iIQtv@{9g_NmZ`n|fWC~piE@xB-coy@xI0~GgDr9FD_4Ms z{IST5QB@j>R%VBIQM2bLq3hVdtxaV0t@tVJiDWJq?9RU3XqN8I~Jq(ruku!`Bv32er z=$5n=u}L0$1#gIp-OZazp`+5CJO)XCE1mVxH%TjIj@Bf7ox!l@`pZ6uPNs@;cHauw zWQ{^j3PrK4#b+W%475V`Svr?#q`E)L^BroQ-2g{-(0Bmin?oJ6v4zgzgsCCaJ^y=s z%5zFRVshS}(mg^O>Fpl#X{Zk*8Jo(WR_d2hij;Zlg5&8f-xq(qhRUw!PA^oJsG?G8zX=B@9uf$>Z zm7tIlV+9NAFM2%}ru5v0AGv8BZ&ODI zL<#cXIM(wK^vVV98Djm6Zulz}lTAI^XaiZoQ`;l>mm2~+KC**Mdp+W% zn&RNpjlDa_nFdvgC2%M_c%>n7VKicSAYf;HLElp~kQA0ST@wdqV~L! zXT`d!xM4)xKu?G&|AwsUIq5W8F01$ohg4@w%wCVfxnJJGgM?w&dMuDS!6Cc{rD9j-Riyl?YkWQ&N2suz|2%jJsa;n zo%4!4ch^4Gk>o>t@{xUnkO2jnPuMz0rTb$m4?>JfZzh}Z6z7GnX7{0`W^DR(1kd_ipKj= z{9M{vjqwnm2T{ujU4zV{J#w8a*UK0liUVP$tB=}ugeYZ?7j!q65t7YPrh>~Gm9t(S z6hpJp=4#9(EqFxc;vF?=zT||2v9GYTcLPk7$1wME-S|Ji#HXt1(;R+XvqVSR#tlaz z0A;QDU5Q?sbm~@-*&`gOKEW1eP% z#^yi+_l96u7za)^n=M04(e91gn; z_ym>B(TwZyiNS?rGc5*ie^l}=-!T4FrGN3}%YvA{n}osyggwyGAFp@gzGJDu;+Nz9 znAZ4*T2Ei`rOI7o$K6LeiK}j((z`vk89;Gi?Z9O6bb2(6ynO4+^|VtWq02OGtKBO* zg^M1AROIJCCW8>zd>g5KZW`~mXn9iiE#L~&a6dhs zK8K@|)UR9_>j!&(h(EB#Ze!jaEHio51^}hlETwx|b;4jZW%T(AQLR{(+$ootOO)D5 zI?5KBv0`@SHAGrdAig-eNjtU2)MC?uhe-y2Zg?o94HqaNFeQ0~u$`=v2-yBzYX;tPK>yU+X~m^{PdWCJ`!h~?$WCN^ zoYe%=4kW`^AGg#azg%0N4x-!Cm@LLO!S@Q1bSR4W(=EfMHVXVcROH05?9^J+iE2io zQ?--->DRGA5$d-2rEun(G{fN{B&CdQ2hB_{17ER=NO*Q$yr8;B?J6nIZ8SB7s9iBc z6qOYh(;m6qrSBY48O~9~j543W5QGp>*Qj{=*^%1?9PAX`-F8qGa2`aX*QJI5=MA_leWvH{reBe ze;gUuKc+z6@asQ!Y0DZV#d5pxH~n*;Zfp z0P42iBIwla{S(2?RwHCFO`iCjN?wyaP~kc#Tvie{h3x2h_BkkU%+L5#k8omyX;qFa z-+74aTpuY@=SXR5#F_h!VOUy_r7_j12wLlu(6HMsfrV-F^;zlM0Nh;OArFjEg0ACG z#pnFNQX>!aU=fm;%fo~iZ~dY7NfQZ4JP5t_7(K_2c>MN6=KuBl|Iy~c0L*C zT&F)A-YN-lm~{Z}-xxb-(k{{DTa*ByN}8z38W9&2zk9jp%+tln64su|p7I7cFp@{Y zo+UT4At=R`h?yHI)?dnWq6SHmIgA9mzva3f;!~}9mcY0-%xtzMgm;C9f<1N^Ah|sz$ZoSm z-T2UV6)HxM3YWJ7O8Ma4*Fk*^jHN$9E3cYFAO83c1^-aC>=0|gDfpSxF;}37iI-F8?VM5c zg}|pD-39`i^Grh2J?5z!{V?Y-jFZHI-JM1529;^J7wb`ANqmR>`U`{gpb#g(3z`Wh znzZiunds$QMDCz)KA!KxSzL-C{|rMuyklh|5K)K#PU(}mfj*Ac%J<*e-^O^mv5i$7 zQ%xwl{A-P$&)-W}-|&n^lq1?EpZ)!nE9}fcPt5*}2dio;=)(9a&!dw#rL6PP3utI1 z$g)hU3Oj}Ep%6m>{83oC2*mmP7}!6e^i71dj#k*mzJ%N1Q9G6nfB)$D;ny1h)fN-M z7lH$LXX(uz(g6T|=7oZm*=$-PH&CnLjVUB1 z=A3pwrbQelg-uD9Tlze=-rBbS-z;~|(!5ta!`5^ZtzeO1#e8T{@AHP*rbZwopv*zC zzT>B~Cz=$WII2OClT^*ps-?&mcd^nJrp&Acl{ulzFd4l&j@@8WWN2u8K-*G)$Gkc1 zz5V2vM}U``1v`U50m{3amEJg8`rz`Z9{@+N5;F0`-$T+gUDw_y(T0&R3EQRDxWl7A z-2(qr04FHM%fe8uT1{h2A~mup2Dks$xfBb*=>AU#U0w6rzyC8FMlgwX#H=R((3cQE zPS^PcR=Kvr`5+awHtar&**WaN<)ppW~%BP~b0b^K!zES;g$hA7oj_Jj%L(o}O z^BgKJaVICgm>4<_PdATn@}?KtmM+p2yX2EXDtcMys(YFV#fRBWe#YC!7F(^O(@)R( zIt1P5UmdQ`akNxQC&*z!s$h*RKvjK}Z!{k*TD{}vKF`(mpxuKWfQfTgGHd;Ps%PGZ z$YKINL-=&TdJfY#r;r?vxiwXy+nq{~-ie-)1dI%>aAe=(9uDKAc9XGm>0TkpPfu?> zYvePHS7mRxr)+27`uzn1>nZ*T5I$+f0-Px5?rxhITeBQqu+sO4L_DLOqFPHTR#wv8 zC}Mm#?rVc{$HGwi{9rTXeu69~5VhHVF0}N=SRU}5ve8RF`G!NQ__(+t5Dx<2WF;Zz z3`GW8^L(%riIKwQN&x6q6(`&brgbjo0jQs#ClIDGq1+AR?Gxs#4(cg&EB{8W4*0+T zhgKF59-)V_YU(I{rb-my4Y1WN@?wD?9v8^jcVAO>B*?S`3_*E3Z z6_W${y#TtrRfwCB75CQ!4g0CMH#ta5v+;JFo&w~YkoU1l&GPhuPR@H~mAjj&Dd=wH zhUr^{6La(@q-|4rUtNiTh$r##d!JGK8ADju8owofw{@&Xfx!IuoA|&^Y)FXpI#uT# zd`vINC2-@_$f+4roJOlSN@2cgDB-mcU8G(Y!pHZw(N2MCYl2G(8NXuK^e(42N7*or z=<$Bj`S|=??EO`lW&P1fs#0ffgC|SYvM#L88Z75%C!G{isn1h}TiF_(Xt2`bRx0yA zXC{D6;;Un!qDEa|hZqf8@vJ>@|A;?TJHILXz~nQ78<#AVC-fvP_|9e&Vz(dqq=*jj z(<%czhiR1&-Z1FH$cI0M=D%`0Qf!N`HA<^3T{afm(zV{ZCI3It^}{G*=$&{mdF=di zAErVeUlzEL()04wlRGQ%!a&tcz`sS3WkR=Ycpll&-ARKfU#-6#;-nRml zo)8C8{8_cswLLKH26Qh@W5MiIasj*&kULPe{*?=ynfu;0!7gIB*x-UceKP)H=KbZw zV>@kGU=nz*u+6!CD78{0rLuySrM+Z*n^CBl1d1(;Yu(%|okdng+{4AC1z&AGW$s_8 z(KYE_;#Mcl#AeIXn84RT96K*L>5+-Db;G&oY$6t?Uad&n$Wa6(8e|X=HsMW5JP_ox zrgKWM-W^?gqB6I=u9*tWRMnEh<32KC?q5Wyo#11pu2iX1599d6NyF|*Iu}-;q(FrP zpW?u5zTm8s&$)aR-ixixL5Ae`W|1)evZ)#rbZ+Idm9yy`Gae1&>5>F(u2BauXgS9B zu!9E%o2wU^?M9h*X4sXSs$)QMc!$c(&E+jAro7F=IMlu9 z%$doUv}>Q!PpC4Nsot}6@{1Cs%o3!UCFe~L(mvCMj&AV=ndociIxBN)=Z!L!$v#s< zrIqEjD?%A_TDPn7xXtdhfFNZTB#c4k0Va{ZUe`?wxA8x!I3o*@CsyTz?? zDjFJdE*^5u8t1zI8|&o!&|v4Z%s$r53EGlOs&PtS10fXDJhyV?bCHV-h#-71s#Dd3 zq0D<1;BA+a3PHt8VaB9W5f+KJ?<#PZ7XFb;xw((k_pW#B98z2E3NxkTy80HGvxx_a zfB!ZZTtd&CvKnnJZ3r%m+0IIW*e)@#4ah_P7gX_k$)9$xWJTlk#8u%AtC^9%rp7kh zJQ4m+S-jd=0xfIWp&Kz%*0DnS>PdFcMRtdL*RR-@HFUYb(vFiw4g)m=tBnGvpZ0cL zeo+%{(E%e%v^Oy^ztFh){#8D-COg4xz+W1M4`PD&EI`WNcqTdM$3{J^-C3SXbIO+r z+g4)35)4WOM4H+VF6~q-t_g|*+0*qH6mvKI%^O$HYHkIuW~X0^j=P^yyq7+`k%3$d z=uQCxm6xEbbe>CB^SrRVQw&Tz*j zKeBIu+3ich3&_qvP`YYw=7ZaKbgFY`DTwdR=8ESa$vj&O9U6Fillli3M^> zU};P_eP~6ZF)N}ZG1DbtC9K0nEhZZc&4M<1O^H6cV-aM14 z!irhL3*O-ViE~1^QyInW;HpIoaYhfNCP-tnbO=!7#2*ExE-5=zXlP2+h7_~AER##i+?rxA%ydqCWc8RJPv@hMxc9$a!SsCzp6tG@o3JA9v+Gw_hg^QEWJac zYha=p{Ek8&Db`XU(_4Ge%FBzDs;1f!17MRAkbod)X7nUR{BqPw8!zODPJ))&h(k%x zFLI}Wr}PqkDYNP`t`>^2Fe)My^rXhZfwRvNukE*Se;huOHnxcRx zTOf2`t%q8^I9K31mr;25&5uWh_cK1lh}b)01k$ZC#pUDE5ryaf{O7~uzwwQMTwu*j z_-@Y8#TxSLzj9Ul^7Mbiet(#iYez1{x~AE=86d`H-K!jmf@0OcbOkt{Ox`$BhO-rt zA}RZPte^H!XAb9KRy2l|BU;^6Qi?YTx_hg)(yPlr*;g~A7KGoNkHr!)GjN#+hA|1c zKA|61qdVS&W>t;D$)=83pUvPK)Lr{+h)vc6H-X^q?E}LTRG8xk1h}zMMb|JLe8FOj zb;PlQVpA+CHAS!?c0jJ$Elt$SL@U9<~ zUm=c{J(~ea@QiYHR+9@kHQitKVgpuFTa|~7OSKejd{3jY#q|1Rk!w4V4tti}Fe+)L z1$1Q%G^Gg)6A=kCh%835<>ldP`>jgbSb38$ks%6;TCPG7h-dD;=vD>G;eg2e>Av8g z+HKkKX>*hIVVtH^oZ4K*a-YdX$-25fuNKB~pba<<;kYy(=$2MbPfM!Kf^V@NUTyTI z0^P8p1g`2;K*(RtdX&+tkf8su$E?Zrj*IU;w^i50!qOIT#Vc-<51*QYZX^8#wz33# zAhmKhK$4D^c|HE!*=O1JnNfMH4fQL6!hJdYfz3)9LzP#-Rv{Y(b>AZYuo>@NwyOY; zhl>MzZgfUPv-coM!s$8bRV61Rz@U8(&^D7gKPQFKGxLy4?FysC;*!5|8T6D5og{18 z=U1bt+DT&i?rClz(}5k9fFbg5LQQThcAhv-&a44I@q^LPL#9e?yp6iLu$K_Q`os@_5e}2F8 z-#HvoSY+Idifn!*vgh14|LDfQNL7_CL_Oc}n-7%15hV^k&bky1r09GahpCHDu-lfY zagtVk6xEf} zTLjAeJ1T+mZhm>9Aw(6EwT@W3j>)82wPQFIK&-mD>$7cAcQWc-dg-7KNZ515$%Scz z)Eq&j*BikdORrz`+(WHZVW52_eSx`Q;1qD8xAIssYBiXp?i(SbY^qlICAG7%E0p=g zyZ%c{3Pfonx@OEj3o!cxA3;oWbA{-zoSh0lO9cLXpp?hG7@ppF`jwI2b=lT8_~z}k zX;)HovLu6!&R|e=!LthnWhr!W3!{T7E-hW;T8g?!sICMLGv+~ys$C25lW8)LQ%hp? zHW;TGF}{I5V7;|mn1!8+m(|BgUl$e!KE;_6F=7(YZQDSwTt-5b!v`r8zu#*$=-|Opr&9PARb0y zwtSkW=PQ?0R@^0}alk7r5_KFC5zwSloo?#cX)0+vEKG9ykvuAHY^ zrPF{8dKz}gzhtEx4sXruS`e^x19n0%r25_%T*=*!-npyb`SS{CY2|^dMOW`J&)i{v zd@+S4Yl_Zc_Wh4zZ_cJzeWpxs0)wHMfa{+QVTx8jgG_tE z+K;=$Y8mN47uvV}GPF3am((1=aNwI0G->JxBumb+1GX)BMiSLfU-W@P*UT;kqDCom zn7VprrTJ~6hNN-?ZzmjVtqh46#1RMprwm`eWbR3h{T`ZldkRu$W*bA_R5r@J)_&ys zKgEGEAscBO#g0AP6j-e1CS&uh%fo*$_Md%vz@YZ3`5CdHpprdl*@!p1_y2>y0l~?s z;v(Ncs?|5Y#*YY5weucggsYBXgAP(bZ@2#X%JtVt%zwE3r(|CQ!}lBz5y$v!Blw>0 zJ(PL)@1-0lBC7OG-8TmX*hU-^K7#&UsypjC(;Ms-fq1VTiBd7IJgD&RZ~i&C$K{8B zB+wV;^$5QBf4Xx2A4#4-dep!)3LoXZ)pEf6`(<~?OUJ>WsvX=t+HC1puEhfxZ~vd$ zeqP2QK_=aN$#nDK?f)R-psk{?0$cYhSC{J8g#96nZ^aH|S3TH>TYV5n{L1BgSs>#- z-1<|pEeMQ?{q?bXhkpML)vIFGzH%8e9xTW%tq^`eelOJpxVqD{yUVOylRBvU@IT!6 zGqR7X(kCp#`u1M({wJveaScM1JrC9pz8s4%``!k3V6OQfjk?kOXYRGKuUut^e}v@x zjQ0JTI(dyr`&c7Xl~u{dI}Jm>{3qC)ASD3elP?dK>z^qLV8Xr+UXif(T`q z4f#&rTK?C+5%ANpc;#xr^{<0oiQ}QWtUDE7-u~yON6?{x`kIJLh<15p(T zXxANuf55a4H+cgz{c!0Iyy~pTz{%Lddw*W}PmlcnQ0xC+_G;E5F53W9%q=}Jul8kQG1cp~`U3lf!KwEfz>%l|rP&cf=H{f|P!-VJdzjh84^ zJrEHSJd54eKDlFb=-c$*zm|Y<@t%^x#ijvz&&)&%Q8dNr13v#=_`%*9Kr+MOE7uz| zE@;jf_NeIL_ku$Hu^&d9tuLi$(3$VS-w35v~!EgV4Ek7mq(3K5{fmb<0LH&5U zaReXVA&4m`Aj0_KEcW-P1hCb`b zySbyqHC?Z3YCZhd_MN^GGPz+IG1r$@qhun!X33crvM>0I+!`sSo_{osiLrGF>9dQ}sE$5rv!+wF63+Qu)K!;sNW6xJv*Tzh z#a+HB#0w#s=Hx60tx={{@`$uG*T*0)=O92|a`v%HL;Ez=a}%2!7LI9C!DCx4UuB0d z#^FA_g@s%wC?PfyKvs{RRcTB*DZ0l_nY$Lo_}sr5j3=kp7BKJvl~GpCOYSZ$q0(C> znRNQIz$;p5=E19J<4Au$Q0<^TxB9(kBs3RCh{-_Z8pJa*Gm~Xdg4;j(E_0sE4m2*` zv)*aIH2tYs{XO?!Iz%(_7TY*8wOv~=^710y8H&Y=c@U@jWts2k?K?)`qRahOIteJ* z9lca;!laQ*1_g|S@POWv)P>-?R7%|xpH24t*t&W5S`7nRZA+2<*|CK8LT$;V0y*dQ z>Lvr6+(y2D2D6ni5-KQscR7@}?#T2IwFUpcg`iTqNdL;rE}81!2r8~ZKtU)1)9STG zE{vVs-Lbjg>Ec$H=$tA{{WPif$@NP@WV73dL&pe)B#p|9NxXYfmC5Ly3qh8Jra4T- zt*`cc3vgt8RuYm%hDc|Iqbm9Tb;y6}`N0@+aLDNT=UzB1r+#?pM87EeqgJRa{+w!{ zmtDj&duNbyRw%hKMRiS=8G^l+bs@Ug`sVC;Jtea(KW7OH#TxdNOC(Yg9gcLL$IY?y zl_?sM>_fGp902sWwc#{P5uG9_Swb$NMy!XPeK}^DP$zLLh7{cg|?^$hGzF$ zmSrsavu6ZYRfrFwzp}dKY-8cs`8ruAWyubF419s$v~~t6^j@sTPWs1g=xSqk;0GV& z7cii*$(i3exS4&ab4hk{3#z8Th!yqqFWs1qVe--(Cfx7rN6gAxN^-xyjb=QMZ+Lds z7L)4{DcbaZ49N|~{>6ma+T7GKwJG1^xf_B71*rO-n~iMnZTjbPdGk9{NWUQ%XCE%5 z_;A^~DPeA`ekdR+yM`MPV#^#YcxPo{wRMqDV{VmcD*nTe&TU%nFNu(9X{K%a+!SBx zL5J`8{IrnOr|&ky0@lEWBg8Xw`-O`(l~b$~u}Ugv&65?R^@8E7JPS)-3hM{}jbmK> zS=Olw!(BHdp6O&MK@*7tWCXD*gVr~@fg(lDKX{;J(<#vv$m72nL8_N~wS8Sq&(_qb z_4h|0yF)XQYVAHKJsxQO?40$N`wP0G zCPkAQbvXiY;f#B$*vuJp^?RIjtqF$!;tu2R{;hKZtjQ|V%7tIXJcc6P;R1m5&*8;J zo8G4ltoHb6_GdjL)4Dn6cJR$@nOgg~KYS1ud}da%6f@@s`^V+&b8>>$q#L@;%gqA? z+b6(xna0L($Y=9ZYhOA3&LRBrx=H^l(>&{9(@^4|gvJ&}{=Vo$y0h zH*a^$dpsw+3%%Grsf8oI!zem?0SXnif4s8D5wQ zO0*r0b|Acbm0G7Q57-{1I_wyzcJPQd@AW=iHxMy^gZdqbaF$5lyb0Ckk#PmN0lA!@6Mo?-m5p7{Vy zUVpJGA3dJjQKFoycJS<=1HsX_rWjvBGRt{S3H26|c3g+I47Y%X!@qKEKI;V+&FFtHQ+FBAJHFJ^Ry zR=rB=G+9JX@c?IWN}B@ev4VV#Z=UN%#$}w-3K{?3Beq+M2oZoLFQ5{^ppe|66=1G&L=ty8CHLs5xP2G|o*zw0NuLD_1^G(BQn&v*HQY`?bly z{`=G+_ds0YORUZB(`@IgI#XaX{wBA6=p>Bki%~TG&2bYTU6nUo-hX=xOUJ$T+I!;I zo;xxLt9*b>0!0{9jYh_-RROSMp7sya3e~Fl=e_naviER#kP8L4sQxweG0!C4P0kX& z^I2w06YY$GxjKS58#)JlSB52ImG{A^UI|k~b=m#Rji-J602}BEw1$xnK;p`@k`01G zzz*EN1z8tH%eaHDA@0&h^E4QhIaN@ryB1Up_+`!sh^Gz+sn?g4APP(*Om~E+c-X~9u!bj`_vTLeeHgJ zWO6U{EkQR~0GVKF5nO3uZ8y8qWp_2bKsl8lM+BDwd4xG|aCtRf!Xz|{T*&C%2;;Nq zw3|j5CP1+$BPTcgnVFl%e;!=C*^Cyq za)1eSGGTqTOn4n7z|{46>1~Z+>^nY|bu*1zf$+EQ@EC%Y+u(L8EGIIjIqX@eM2`@k zbDyDE9oXSsc$_k9ultZnpKv7&%ptM~S<=;|D)DgTUT#ogOf0PV<@&clW&PxHn^}B{ zbW`+80z573l-8R5@a~hW_S7I5XON+E7~Dy=?1D3&#oel%r7lmKhJhNOol19#F3cb> z6w2C?IO?7v;By0zV)| z%b<#Oo8^{KsZlQGw&>YpAL9DdF-rQ1!!v9|1nPblm^ei$H;g$6rrf_FN;FPPq`*GDBIfsh8N-9q*ZK*6)kgI@?7NfMk(q>bp9Jf+nwsRB zt0$&7;NJ7p*Vuw;&#zpLl+f@^Cw4=P{nmVDgy8)(!;Mp8eOEN@&cX)n?b^Znm_Xp) zM0q#gQ@*^$s)r!&63v9m8`2KntFKr}ZCg4w9a?vBs9O&Al`HG%T75boAPM749F(%B zy+*XZ8F7~ILO?9$!qJbhe87FSr4!QHw{Oa8jJ<9NP7rrgukFs?NyyJ?Gr2qKYoEuI zLq_CJhV_46ZaCn?;>}KzQr`6rKeZ?4uvB=M`+NWV%_;6Oc4v%}Y_g=~%Dr0~S7^;~ z%{MPP71!c$5wThW-Oq2F^qT<8RtONkOts6bI6IDD#O^YL27<dvE`o1zr{!b?86#eR2y~^swHKLh{`LPT5d#;SnZB#_PM8jCZB3$TN2gC)utc)SmXu5+)(Eks;%#_1CSGSKa5 z8--9btyK3{=WGRz(F&P%M`pyk;R;-pc$CY;fDe=$FMGEytOXZzC?*s)Zx-;ONMjXY zE~)nG!Bh@=oK{sS|C9?+w!+!bLKYf>)^D10zG+jxJNLkb5^A)9p#U!Cp|#vG9Eb9+ zUeDHpPrapFg{c&_551obT+|&SKO3HBSFAOW0-Kb^aN*c=V4O_$TV;g<73n84{~(Rl zF1R8_N@5DLQ)yBU{0+ocOCu?5Eg$2CQJ1=47l+J-0>DA1lG=xN^^i0tbi&v@^y6pA z3azhvV%eegYz5qmV!k~NXR$zlW8K0Kzwh zPzkWI1Y+mCc0d~}RP6n&LDo4Rk(V?Jl<8_kKV+@bTG+%Uo~1sSAV%~-cq zfUqk%xAOQLgVvYqyQj)>yBO%iDxA#bm_oW{w?B%lxfGV#9hRQiNU3e8T<`;!JVIK!8l5TAW(m zB8D`-5^!;)`k9^^ z7P3B+#ig7iPBCfcrnkL(*TE->&I6_?ZsiuXY|q1aS#|jhchI3#aunOcN2=Vi4}${0e_D@1K=(+OG{ z7=oKYV-fWU^+q+JBF=UKU>ajUg<}H{$inSFUR>?%EW`GLoGI4wX4<#xA&% znuqSDBGH_E*qOpK4*i~Obmgx$&H|G*nzrZ^X)~O4tCMs>j5>x}6xHjME90RqTZk5?@F0 zE#DGf!1Jwn78MTYD#-Yb%!lNHIzW5Y{fj%Kn)xLINnodYuG=g?GBBbb0N&j@oYSyF zfMzsHsSObUP9ty-K(>bQKG8pZg{!gc+5V%lEZ2%+>%K`%h#Ic0+^(pc_*mN06${!5Gc|e5Ya_LkQ_25`f$ZVd5EthqW*;omF|5hElw;zy6`+f2RYnw&w9<6E z&w6$#Io_~5>%p>YvuZeis?~vtCR&rzQO0QnEv6Pqi>5bK>GbRCyTvcMEk&&zRk?xf zJ{I=o?=eqbw?+3q{AT$7NKkW!?X%-K+yUO^+?Jl?ftidfa+EwAm+tf-)c&fch{LBl(=Y-q#yklk z71Pk)r0ucH6ZUvJ(Xcl24kt*sdMm&rjOWzvf$#hFj{FuN6a8L64>|F{ZN$9%?Ch%- zJ%4}ih7+Vc-G+I~bLB2J)pB>dlxLUkApgT}mn77ui!&mXHo~MdPmc80hE(v2q}{Oy zVEKleavfi|J+&c+oxd0y_Edv;Fn1kE#w!8j>50Of-5)c2j=V{GGEdJ5(zFV($)>iW zBQc!aF|bhsJ!Jk2LEhR!kdA-(}n^I44ncA&)jB*k(%p07h;AL63kzc<8UHr z1PTvA!HTL>B@(oHb>Z1c-}Fq=$IbOI`@PbU-8yR6v1D*3_8NjE(zMg&<~ixu|A|yH z+IWvCV1rgY-&ix5@`Zb?)Tf623KGh=%Me&s55 zo!c)p(H~|SNOm!;^U^|?t6k^D&wh~v{QS7sUxUMU>fX5zB8r~mpTgG%n+}Y2@agV8 zffKD@w9f!N>ym=xU;RPnwBl+rB>`ce3T7%?FWl^ME`LxjEF`$EY~ya|Vu+>abb`5v zea>R&T|gM`vRaPk?VRcU;)&!o8aGr*&Avg%DXe062pm{bkS1PuJvtUq`_PNf>zx(i zQP%k^=X_RLn0&q4vM$rxq}UPN=-3k)>)@}-l3A`}`}p5*iFNMcIvDVUjz2)Q1iQJS(o%l;ZBD`Z znO?wi{7`f=PF`=26)K3WRo<-V3@SBM$t~vjW@-OON7S^(mKG4(z5#~!4cMNRu}%Z0 zEZ`s${Drb%YQu5sdw1;3$+PRi3`a}u30%fz@AqUKdx(|m=9sbB4Jw5%!aa6na zV@ye-;j9;R=Rw-MNhH_U!Ys&g$rmizq#EX}6}ZqAD!)ne-yX@w)qxm!EQq%(X!EvVR3=p(#SuIko|M=~v8lqwySwQxa7uFzteoFuYOV&j+oxV2 zx|H_5S;y_+x7za@FTEL^6FA##aSdW(yz6-vw7k#bauf2}2!PV=O$%Z} zyn%$?UViWmKyDooRwa{b(SV@y^yqfcgV*VJ!4N-WXr+1fY|`J{>)$%?6Vv6TTY%3` z;q>{&1WTfVzX!2i6;UQ&Nz})%WHVxj!y(PR8H05htL_)1E?GOQ57zISd*AF3jnRUlZ1Eh24Hk)Gb-w8_g2Z=J z)IQkixW5fuIHMX%zXEF#4?C|leGe;&N>hK_Kzj$2D~Qv~oHwx6bfpH?sTs)K=aBJ# zODei%N28$KUhZOb+5jf!>6NO~-&k0m2)zKb5oXwg zZ7%i9SXhBXwz8dPWssw(zQE*87s7UWF-@0^$9!X6SSoe6cLgAs`$whm*zi&nK4O}F zb#wm2>r1HfJ7IU$EnSDg))_?8cC|h$-Ih>i{_sinvY;z8mMg27kB;-mm_@oD+q??` zplf zPKB4fNK9&?)ejbrm-&0HMl!DjOwz``l)Arq?)d!ep1AF1AUPomN$d#{6HyZFv$|S$ zP?|a_!r`qcD>olz5F(lM$Jc+?_}=QbHWiFbLr3&{lBBi_3#QMAL>8WV$+>jE$4wJh zd#n*w)Wup)=!>36??las*Cq-0yt&;0)|w|HuSjzc44o7;Z*XXXTI{#5b!XYMxcrfB z_e(BC`)4=W?-evaEKI_#Jn7=TU+qx3wJO(`voUe8#_>vA#g50gg1{kfJ*&iV{BYUA zu&1MCCn!h>(*9+>Kwzm`v1~`HZL)Z(h~8ln&vAJoJrbfZ;u3>V!@&*@zcu{8$FWNe z`8*gF)(@FQd3P^x7d~WMHMC=>7^L^>d6^_{u#5#b^;~Qz6O=S|RzOO3Yu;6qdnstP z*fzSx`kdljy$J5aEb!wH_tDNgb7(!^SFRYg_4;65aZcMrD9z-vn1F6X1b3O{0w&>U zPupQSTW(iRV$ZGWsA*T1+QZ6a>n&{VZFu6ux-G6MD$87)n7BY-r<4znq+c(P z121Br>4LcTO1}AMs-AOI&#-sT1r_+^Dt?>cDcx}bY?%`k50>2l8HbXlvCSb4GTDJR z>GPjBT9PWAVpfZ30tLN9c8s1D;;Zi7`mEYcn9fWEJkTDnS^{c!xt_Q{4YO#iPx;GU zsejM+S{tNAAXY174DFWadG0yDkTo`2yhUB@;kN|M)r#;tMAw$rh=e3e^Q&KO;QwK~ z--kn3>&7Rtv8er3HYnbWn(x(P{s1J-}@P`0UEe5@BE3T)9bZ) ztbNCHgX~z>2En($C|BW6U!A4L!F?DPiFTJvgiTF^nqQcs#9q>LToD>Vvl5UXZhWCVa0N=+bkA!RyG@z0V=`%7P+G5oS)g zm08Mcv;DJo3E%%t4;0h3>-1O)icqckeC!VYNU{0rAAxA6A8hBbw7he#L;f6@$f_l@ zt%O2qULr(VchY@CT!9!YV(*kBNH>n9YJ4V!^c;UL1cwf!n%~yxa?0G4y3JEo#oT`} z#*pf7RvE5QFQ}RI$a?Wb%Ol|ndML3cJj474+H6 z#wwU}_KCF1#TF(^DQPq3t_U6YA@?U849tWpbeu}@p)O{fce0q*G;BM2u zO0qUnB4^Z?lEPA~8l8cyQ=FCT%KCq0j#UMA2+Rx*grn1u0$FA)5A*bNH)blY6 zIgghH;deX+iyupEs;O0C-yJ=Jn+GdrX4T;P5J9rYf)A9@gqtj#=pci@Dsb#|6MGPgHv9a;n`E&Kw(i%-=$+6c2|%zcmy`pL-gT8E&p z*|gReJZpYJZ+b_fii0;O^?+D(|1{`^Z|F*9VHw|U?WBNsd>{0wiZVVT)M;Q^`+ z;l0>9#EXdst6o3;^X)egKav4>HA#WoZA|BOneLl9wQF1=)gUw(9=dY6;Yh-c+o=h1 zr^+H(MBQ)265MBA!dOdd2~m|BWy?@^J*#F|w`S4L8?Aedq5|h7&g6mL44ShzN;AfD7K1Iynqs{TBAF1654GH$$5!T0Q$OM|<`(6W}gJCo^hyk`v;l{MexrC|{WKDckh^_{K&Gle^OW?E92YY&B* zW>tld5&n~o1^hcZO1W;RD&Xuj2S)890p@7O!hpxtNNQKH{~q5^th*?xxHa!|G!AR@ zG{e;B;kT~+taLzFv0ZK6&E!l0qh>BwteUM(UTqUgnZAEbdcK%mT$_CC)nhj_IuA;K z_1$b*-vYmS68yO&R5-OLif76p8@e+bnR6$isDSoYf~bCwJ;nFbjuJ5?59{N;O)pha z7PIq_jrqzIV)E*-9%eZ6gx88=a}g#P6}-)?5VZFR#T14ACJSq97!xj}np@*%wYTvM zBPr+9_fvOngjjIqk35|DW6WUmEz#eKi`6`u`Pj;&7|j6I)zf9L+uOJ8 zpYXziph0sbqPDi7{e7kpCE@>zy#EYnDtrEbakjX2T^13guAm?wqSE`WQdCMr2$2%9 zg0xUVFQLR$K{_JR0t5wV34ujQ2rX-YNEbo~5CYO6K&T-=Ncdm3{@(xh`{H??^CCIP z%{_O{+>^O;WC09AXkVQLb=cIG+q?DSOL7eHJ%nphot47&&=%@x(!s=CSAi); z*R>sOB)lTRQp&t4g)x;$wj8YB(ruiVu@zA>LS2rR_XRGH?^7IixgH51SeT_~e#2-?;!wTRCO9xElKW`c^P8rVw3NJOGL> z-E}|C{oQ|?#RqmtYFDQS*1Qh$^F;WwFO1?=cbdDxb3p2-> zXXRy-7Uv(^v05@S`IYGSo{ndVr7lvfqQmH%%g(*j!lTyYa8bpq-6gvhzdRuQ$t{5g z-C3hJOpnhXomG_QVz>8=3i(aO&q6z=8!!|ralqFS1ab{cT_vhb(iDWD2f>vxc~!ZE z8Pq`P_`6_ojJlFHhY@Z!mXg=69G0D+Mkg1*i=7l!D4Jl2Ay7XVS@$5rUf;+Co7~VF zRZCy7LC-_(;gm9OX6yby7!5z~nKrI&l1Vb62QmnnfY$$E^F!N}o$=mjpBcnxC#(eL z&#*GL>;pn_$&Z{5++l_NMfU&ZEn;nNa`!39GBR?-s6W2h(@zgyZ}jG#le)#$A$()t zjtA>xT>D!0pd7ty{I;qbH zP))}!a=F7o8%xMSZ-{WpN^dAr`B+qHQulC^$EDEM;0=>b=rgU%!(c0uYjJ{i^DrC* z+`a(zVm7@QzB>E#`SQI^B}t%A$(PoXcg@FXY2{A17BMCJm%@{~Iao2ZRI5X%x}> zmTe@OZgNv(<-WkLCA>L4-BqfwqK6SR2f*W{cprLe5@ipFgrg_BDNyB%1=Q~yG+vpQ ziqKk6NY1s&=l1LNy+_|j-b|0AS#uxXtmvx+EOX65OGU*Wucm_*9j0`Hk(I|?d3x#! ze2E&#=vLF8I!{31; zC&ej7pi|Yo=Y8LPi$Hr6Ax(f-`}jGn9w;E5)WBBjuF_XACJGnP#qz~hvxmQb)a--0 zyv05|Aj|36x$so0cZDOSQ)FcF*0})!Qj#!`y!eb_Wd4KnTHp7ys2yf?Zm(n4)b?#A zR%d8w&6wP$d@{sNRd1Y96PqZf?8FcbfyX;n>H~qpM^=?CjC`RLXkV$K6!iw7gYzXG zGi9Y~B9YB8Q?(&U(B9F@BGM)Z*JjdYV2vqx5F~kWQJ?tIW!6m;@9Yyr?%ozMHOVXI zm~0yJ;DY9w_Fdgt@!>5QS1V9#r>R%P=Ek4@82^9sava61MtW!mEmTKnG+=Mq%F?|n zz|ZZR^DS6}3nfM2O4hjU_jd8aKmMvVfs0pPgIA?~gmw3>2bz&l$5SVA&qerB0^u~m zV^H5hQg*_CrH%N2*-pTgs*%;_i1#>81(sTR$dTRbMMWIbtsGxomg-uD#bNzhZk-QL z2loWzR)8H9UVl?jh6VhKXEXbZa;)hEIe~^os$XIg4NcCQgxP)Y0=4^_8f6PI7%uj@ zRyiXb7lWR=c`h2Ojf9t&FXq{~mMF{}YW;L*>cLg=DKjrW!#1+GmxWDLB9Q$+?`Euh zn)1=DKiT)SZ{BIvBZSm#t^`nVb<#(8=t4zzWcGs0n3{_k>vQ8 z_nf2m*gP?Lbaq=ALC^pSN`qAY@JU3RW4bBHfj4+rMW2FUu`tqPUe|V=n`C5eU(g* zEPPJCVU|#Wy0-w<^ZqqHAHDg_i7%v!-k%j~^mvnZ7Qy#Cezza$_SW;aQRF>FrPNx9@BZ+an&nU0{ljK^VA2Pnz`>QFQuO(s$38n4QWccIfE)S1pT_ znQMJhf9Ts^NV-Y>i15#4dh>>N%XmPpN`eB}yq8Tqo@Mmz4;XuYWoKI@)Gz{PS!Bg(dr zWsO4`fz2V|mGB@+(pg1eGmudyNd%M}N1Xh5FAo2{PUDyIn>#C7;^owHo=U0~)>NJL zz>FYJkf01G%(@t^p(VfCpiJ!=F38yUYm(>RPCssF4avcWr(>E-)<>$2H$>QEkR~}mQ2~%egu%Jp7Q(Z^ zWyRr(g&j#qTS1A!v)(a-_} ziQjLmuLtHK6s0U7t2q$fSjK7}8@Y?1rw9ve_N|Yo2e3}-VqzL*+5Cd!S5^zJBscOO z=Woq<$*$xmjbBt2D;u+@=0M$Tr)Yc?g6-1bVRFWq^ZNpiRph>gzlRlTd($@0eb4ow zFZw98&v)78yE@ZN@8y{P5w-Q5)M$J%k{fwV`H;u?Y^#BV@se5N?=-%UEkl{xXk7HB zH>VCIL|)%6e=pzYqsPaHEXa6=CLaA6k!)>5wbkWljSWyN+|`y1ubh-%M^(U-Qj39Y z3Qdpcd}yt!H?9iA*dVrK-W^~szF4aE$x#JS9Wc!S5+fc3St}5R|3S&RB6O=;t+cdK z3*F>4Pru<_AzUv?1pfLu5n@+{$@qlLbrb&O^W6b&pXbI_5FbvWUI3c2$phGh9Ht7+aPdVn2-?QB-Ks%M4ng<<-^)R8)m>6Kw6h9AVW#F2}B@ zgA-_I25sZNj5O#aDFE@KD5F{{JLXhr_9f)sC^Nbk4Zy+(AE^;F3b=!Xf9 z2VW?=0@U-GyrwWT#2nqiVsi>Zy~2KLij`I z6?YpQ&mbn(y#^@I_ipNzsdS0w{nYuCklz{BRTVU9vD>RWc&?1d4ZFcAyt8PMr={p% zt*WQp7~s6ATQzw3*MuQ!W*N)TGn#|W_eR9LCXO%33`v6bQuG^Wd`(}eRIa+&pd&y2$Ymp2aW-{6nz|HGg$$z@9vqH$O zI~(U32nqSwBx6cl9R2*@9je*3eC0qD_-g#tPk8^@3x;6$e9I%VS?>MS4W;1n7KC+9 zNNKJ@vHwmslPX@7Xq%NQhmmy(b8=O$IaQ_z3jg^_-26@+i>iJa=mD#sTim_O)u3AJ=`A!tR~j zsr(?Nfh14w3!F%4(f{XkseexX`TwiuPV12_X3Ew)$OA9EUt%Yfm%LtBA03vOm?;U6 z&5`*Cw!CX|6|4&PC^)ki5nA$c#bsB8PC~O2PA_Z*fd`1j!c%Hy_xJWM>zurr=6JLbhok9x=O4{64!?iR)6?}>UlZrEp8 zN}3o(;1JfQPt?`5w9MUkQ3E^gbN*Uam3|PsJ!O<=DJJH~QivOhrV;HoidbWX2*@B} zSG=emt5Au9h6WXQl(ZAf!4_&}#vN|Q{PJRHBU86Yxua(6#AZFuG$>F}Oy)WJ%rcPf zh*gB!c=d?4w|CZ-qm^smEh!pB+#6Thj>*&aVW+h7C8Q!E=6@lf48F68?D_ZbS@6Mvad1JnkX86Hma!`Q9+{g}ahw4r%W_0md6e#XSwln6YP0JQ6hray~`zPY3uTY;35 z9MG~FQ4R$BK8l#lOjkJ^sGwQG~TxfFN3+I_BJ_H2(^{ z<;TX2w83%d=0QDb5ET_Y6&<(XjJ<2aVzv&=<@k7H9iDQEB5{f$C@6U-)+_sl|KE?4 zuVx;3loiJmU`*cY=~i_gtE#+|YW_nZdbaWvU|Kmj0?*3Int3Xgv49043)^I`U^eE> zA3yM$J!2u2@eY6QO|HGv$4Q$Aqh!vlUL-gcInunVnxq}7g@7G0pEMA z!(Y5&vLZw$qfr`%e&Y?HEO#}TBWE{+kjo+P86c_uYLD`3yqHn7^^PgttFRP*6*I^jxh5W~VeyEwL zBWpN}!>X!BB{nBP*qgvZ?em_zVt8tOk?^!nNoL^=vX1^O#c@4H+lh;Ira>ah;E5hs%!W@$#r8E$g(Lku>YI#z*4X%9z=^+TQu-$ZIh{&wcEH<+nHiX2KDAgpJ-dDn*!}-4= zPtDerc2R`}I{Vc8oh9H+Xr~AvuqESFk&cr4j>eHkWy>?@4O=VU;IicqCF>YfPEA6# z-iG`fu5DK0a4OO-!%o-d<=;#dkhA}^^%K#+q*;{#l?#^%cKf=fTcJ|rbt&2X9N}gK z45p^A$jUh}vE@c_4-?%NcvYZ3D4p-|(ouI|4A+8YWF^WBvZxZwMfB8AS6KvKL}>oy03BmZp!3kH72>$PAmL zhK9^$$8Nd2(3E?PH|Cyid(;w$uuHljwx$xZvpm;M|F~dNzzPN&DkXR$2`|6+vPB43wXJ>8 z8+#S)By;wiAg=brQ={&$)!?KZ?FOpF@HTqWseL!tM73G|>h#QeTsr^*uK#n@~^Y`SVi${vd24u8?oJs>r3xlC-(x zZHpAvuUrv7WwyrLSr|G0|EuR3R`+7bf#ildx=!R|<~tjM5?#lt-#BXnp62T2fX#O{ zZpGqqTzhfD>UojF^{@&SCO-r;c8q|VRczFdFRAotaz}d<%ZUZi%)+d}XUwLm#jj+M zo%Nmt<<^A4LgxC%|5}J<-<6LqoVs-d3J|*)#UZx7&9y z92rE1%0~tuO-;SMr^+J>Yw54n)TpVfZ#+J)oIM%(o3ltZbou6Nt*V!gqk^6N8qp53 z=8;(wDcM`xJ3}RT1T#l=3t@w z0*Cu}pZ-0*F(+iQSNIviDd~<1;-swRNin|Jx;zPEB6_ZoQuP0ebAJm_^r{|c#lDJf zEl>A?%(Tx%n=O-SaV8m>kYd0NmY2B)U#8SoHEu1uYZ{cg zAFy&-W8)T6Xq&VzpuLpeU}UxBH4dYWD><)WGkf?fK4d*4YL)MycO50NFE9s9xc&mPgvj>RI^lGN_&W;vU6SqKWY zt2~(;dg|7FjjDY>G*2uNDB_{=9+(!}J-5n3iI6pV!M6n)k~(D}EKCu(%*0 z22D2m;H3QiRUhnDnA;lDYy26j;JNpxb=x zZ?#dU-$kF)v(b>NUw6!xPd_PB`Zx6lx}#?ZFM4GMhSLK`Iy;c%zkMpmt`MT5)cK;-aw5@p)!%gPF_II^Pc56RX&Q*|aa;~&vbu%MoF&@dpIL~D-m?A& zP=DxNlqK*dXlCGnb!_v_fCtSLG)V@&$*ks2=1+`z?+b8H`vN=-t$hL7DBzaN^dsF* zbLgmzyvK&`3%s~nLcL=AYStuDV`W`^sZh7#$qsm5fXg0A;mxCVRiv+>zC-al(*RQw zV2!p@3kF8!2jNiDD2|Plm|XbHFMMomOb0KG%%_G!^{gl`n?%HH{jo2(&8|9bvx;(@ zx5E7iKy<*zMaQxGnM=jD-AIl0N#HjJThK`f@9AYZjlbqbseCG0L>8UBRJ6qCRcEL` zP=|&k&ki+kL;_bl8+uGlI(K$*YAjO>!TMk*)1$47W%$zIG1W0dF644pg(>(#&qhEK zOr<<|LLoee)>(UF?zvl37+Y9ku1{?Z=cY(hV-PiI4qaWFT|L)!Wj}fh`rDe?>elMn z+msf^%M_rUb5!Xq!K0!nZ`nEsiAwie zO+)+&LDETv;q-KJbxIvY&bx_FINnGN=bm=^48-LziCKMLw9o%h`%Ie=o;HvPJnCF0 zvje%r6hd6O{lQV$uf#ZPs}h4n6~J?fRX*UFR++f)EHI%2h=y94)XKB-v)NT z_no0zgv>`fVtjHy0YyQ~xmsJWvo}5x*{`2=qLa$5Nu>UgnSZ-(R8TeK%>djz?v>*J z*LF5U4Ae1Q;o(RG0`PFKl1(VIO7B+6jQ~m8EKH48+m+!&CbyP$z`e0)VDWSXQb8rS z0KV?zM?`$YM$EtexEY|M-qkhL!9?|@tiV>sm#+`)3*1dvpPS2PSlZ8`xG+GHi0`cN z7WrblQiFlQJ>t$B$LjxO2PD1+b$r`S&kTyL6F~^n&6!Xf<$dl&z!FUA@-KGIm;{7a zdhG5Nqmf5g>13%jwh(SN6N{AJ)C1jG@MG>o`Va~UG5Tr8u3*gk=uf;Bs~lNT35{SeJs!_g` z%*I!T)E3#b63F$H-q%1AjnuMM#4|tCd9=sa;#%avBin$PJ!MS~GZ8_RzB;wXu z6zXo%l|^>bF!`9ebK)=hlwFfbmVV)jMYcBosn3~-Xf7DoC7tmv3fP$9()KjCcNYG+ z&vvOh`Fz?simV@jLhcL1>>C#E!!Z5^M3ioL{s>`3=omqkAy)*AgJJSm}X<~c^WaH|G@s0xz%RH>xT%KseGe`@~jsp~vR4S7e(!OYtZliDL5I6lE ze?rqsDf8V>MM(SE*O_*0{lCvxjF=)76biVN;i;(W&U)9I;PFT?agxpG+3Avof2HPE zmwL}DR0{U7Oinj!OKbpcd)nm2h~G}lGJm;DCES3P{L~>3hTB#J)loQzqfqE(wLVu4 z9(8v!+~UL8)}#N9^k4T5(WCA%#sR2dN#jZVe0fBX_jnpCY5l^ZDFAHRA!YV9BD68) zhLVZ-XoPhy1+*`~SW72|2I=rQil=zBBXX=epPVIRhQ)*+dfm=egL9W-joOBxk|ohK z1FKfmlW&jRA#7e%6V1=ESJCWI2=9vecLF}7pX{qQpaV84x1iR)In$HG>ULL?Aq}U& zV-J!B+lhijY3I70beJHCt7^*rDgGT-FH!bz7bCYe4O}X^aEOPEW^(O#!7~wu?hZo_wXl zm%cw+0X(AhwAqFQSn%h#Z{u++X^D)c`2fP)jpRn6L0so$VJSM6`2h5Z*jdtl;X4+c z=`vqfa1ONqc1E05QtWssARw;BoHB@-LSSwjKf>AS`q}AsFTC^FUX}9aol{cXVq?RC z>}u3!HI=k zDUgp#iA+$NQV(|CI%S zBHq`?hW@FbfgF#z28l*yPrWK9dej8+cC zN98z^8e4j_mVM@o8i9DiY3|Jo=VzhiG4IWbTckHUAA?}wI%4dby}`c4ZuKK-4$tR3 zyqo?Hx$8GnYt~yWL6@F^zD-1*eT8hjbnQdwEU^M!05k;!Wq~QEptZT0@l_pJxx6bC z&n};Wns4%cWqq&}Kb4u2F1{7|J@~w`PyU!hM0n>hw1_dn-`|-(=&hjIoui zgPoqksQzs8kWX|X*lL~!!O!oNt!s}}S!jL{V^dJNZoy`I^>&4<6t2oGzaj9^`vS8DfLh#q714We3-p42ZbO1Qzjv7H zg(@cPq-+?hnEXHMdubWi3*ne3S+;rgCSS|vu>EhRhnq~IS7XN(r9X&^ zb!^dUG&FhP$KM<>Cj-b8&G};eQD8tbS$kozvfGP8dbgyNEnH!SMY%a9`Y|WwjL%FF zQY9O$Jo5_)ayn>c&?>g;e)5^A;MkdWQIEg|SI1jYe$TJ#HQ4n8o|S;ZoxeFi`)_ZP z^wZ}{gqYtLE_)s`u!EPpV5#Bf^M??8kwt%rI)mU*OQ@Q~n)8#Xr&ttHKNR%_sL3Y2 z-M%Zi_n=;%G-vR3gV@6&{m^8b+qnf(G}(!{(;j?&Qxz`vO1)iVT#=3U3*hEo|!(FJWI` zMJi`spx3}1#YJ`O3v?P3a`?axyOg=^QLVskF{K-@nB>OvThHS;#^N0K;$vj#>`q$EKJJW4ikebZ>a@&_toK3 zjr0S%)hGQDW$Q5yVCv}Bb(W`(?b%*akJ%<`Y;hT0x+E}RrDN8Y4Zl;Jsa-eMSXI|p z9j!Ea5%hm|TeshTB%%Xf)vqtU<=t>OMxipMLJN3RSHpG5Jkh;<0e9T?=@Fo80|eM9 zPZx5JleTxBdK_DS{PO=urT@13?OkBO&-&Qu$1Uun>x^Iuil=vJA;;h5V7ZJriVQ)j z#MRhf47kO0P;SHgI(xT4MsaDE+;3DUkkHay73@)wi9L+^T~BK3wP#mvD|O7PzvUK! zi1@oS?H6jl8YNvg&NoB&Rbw#9LD){$$xn@{?W*jE6m48eKC2c} z=v#f!DLwUO99GNYqE0f{h$^9rx27JdYFnPz+@T{QiR)f%YLSt!+qt>{#|gp5CJ3eO zwn46lGVjQpm z{U}ID8Q*)#M*t9aSR=5x+d8=~;IS{TZuxLzHY9sXouSrW;Rav~A3-9os{s*<2d!K< zy2FT{e+qs0FJ<32BY_l|g+DTndOaAr6x?`zG&fwn=D{G=?!mp~fts!O*l}HgLbL_z z$OU+LKnvJ-y)iSMDCmQ4@0?@7v%@Iv=#@SPuweHSi?NywtC;re+1xYl6SH|I+Lqns z#}o%f+M%^zVYB6IbOEx;NVnD@j&5c=>MVIPJFcV35pTgxO18GJb@t@8krhL=nnq+B z6cjvPRo#r>^_*FXdiumm7k&O&ejw4f_HiY{7&S)qMf` zj@|+Ap6nnhq^K*<+b%h=RcH#(LJl6-Iv3c*Oj{}!Zs+sNNOzKVpJq>Zi2^Q!c$JS# zSlR~(j-9%eD(&4eE8M`fA;79tWba(owvdH3PpHp_^fI=Ya5*UCho!*rYRRtNnv8b! z5g;@DH%EOW+#*9BrHTv}6#0}fGhT&dF8KfY3s4**iMZ1w=2kb%pRyjQ$n5YsdbE8* zAwezU`Rzq~zqo5Woc#7%%d0F%^EsP>g@WLU*!YsC*1g6Mr4SWsv(^UJa+wU@MBivs zkm?aO6eM44Ux8NWf)?33>kwW2BK z8ZC0$#R<7+{Km~hBZ#82XVHvvP#@mV@bi_lqFfo$3w8S3*XWd+hQlG(#`VRN3rN~b%*)hfn4ia-NOo4$9A8{8{z+QnADf;!NZ z4Mq7-s7E#?q{8iNtEJ}OfjeJT*4I!;(^HDK`T_&y%hoZAb3q?T4^qj9V%lCVdh`H+ z`pIvh(Sdhp3yoNAM^%!9Kuw)?DXtC81p8y3o&p^FAGL3-N%CWv7)qbFPySkX${lN9 zv6W59yc;j!zLnVKg3?kk%f0npm7HLQcPx^LnM+BlR!VU~Prsb{#8g>v3!@ulYI28k zCvm6uEto&LjAm@OG|n9OBUJDYlE2xF#g@jRv8#p_3fPxHGOx!KEM6jG(Zgx3n`-uo zwLwRZo4ygR7@c(qVT!mfE7^FQmIq5xjl8JPQ9EUo)8<+bWgoZi*h+Uj8nfa$XXY4S zNo(=|rE?-z26J`VkaZ=vkS1^?dcbc^V z3DtU+?gN196p{GBbfsT+zBBg)vIFeZz4_Mq7E5h3F<=v-Wh*9FWrAJ5T8cHz8)O`d zNpb%406&qEXT6LqTfj!*Q^os^-}O^T5FOhB3TxSt)Fx8y#t!?8g49kqS2wC8f$vMe zOTKd@-eB}RmsURCO@+i4-0T*N{6JOh(_5c&4$}SeE`EEPB=3~a*t=_9zg}E>FKWp$ z015fsW@xQ{_ z)U$q$m}M@MIWiq&xEZ)c9AuU#ruP80b+J5L{*mU+bI}?bkBO1S=#_YcRf&OZtf{LLUFoPn- zrq-gGJ;sBh!mc%LU$y87{uFXD&Q5Z}B@$uO-4~S-B&Z27>{Sc25Vq3Wj>X(-Q~&MN z&#)i={SSV14RkTw?cux*98L_2vTJ5Rd!edxtT#G&lB8+0P|l;^hDKs$ek8bkJIJJ_ zALUg}dp&vLmB~iny^?8n94qh2wRiv4tNnM}|EMSUaIYAL?5u6R$OsF%eF;E@DKYm2 zZrIHE)V7zrpU_WzsL3&5N8~|;A(EOYuZKviHBwAb`N%@8YXle~6&UXWXz4sdGHK7A zf8(yv(#q!&9+7^lakew$_R+S#i2RD@=`g2;hZB3OJ?#dlJ^owLKgP=X(l6%(cF&j& z%-w;>jlVgn6Ks!A;Fj$Rh-!Qte-A-8BCqNg9u#+4J39zoh-OAVk}F^ipX$^pdE0Go z#T+GqaKrgQ4&GV2Xf3z*)VSFf_a-wv@l-}n3rs11R{dgWGuTx&78B1}F3^^hU!)3k znw{68$YoTTMP9=5`V}@NFQ0(zc~27;;3Sr zMuUTVe;@|mp|oqi##(&mD#vtwj+qrq3AP)ZEP)?qj$xV;2t0c^o8B94qChf}igF}J zr%Gjj>}7f4VYa-)PkMG8D4}n%V)Ld@*3l4)9|+a)1q+p@vAgL%)mf!T8XR#a{q!fF zz6JbN^2u?QyfY4V)V^-!iFk;|TVY(ZzUp>RnD{o&WMAML2)CD42W;6xpv!0;iJyVu z#^!s7;Zs8{2OWvbdowxyG6_~{ocINFq?7@`F`ol)OlRHHvTzo5qaz*Un)b_jv=Q4> z56EQcgtG5)i|P$@#yesXgi$9(zTetzrjG6v>2viEL)Cz;^lkCs$URYVvyjDBNcdfY-4caT;X6v=Q(wK)P!X#H!mNbI8xD@M1KvSTFVx-$t?QaC zSSK}Prx<_i4sxa!qMPhWn?R>u70+x07q`I~8cMyFz=Btoc#xS?BrCwa~$y}$tWmT@gg}gW7%UDB+D^N(|tA+v) zCpQSDPvh=YgQn~%~ z=3s$5QDS6ysQ@VMi8wTibvQKElgp_rad^Cj2;Bkz?a_m#=gSEY8wwy=!o3X6Zi*;` zn3~>=MJsTwVF`<=BEO2Ud9>bzkjT@>Zksu@TQ`Pn`6l9rq2S3i#z7YV#m2$*ZwWDsPQ+^G>NXmcg#G?J7O znTBo|T(0N7{;4i?wDDV<%6Z<)t zC(R=-lMzj}elc^6sW*qF)BFQIN;iyo;KW*CUPU(B$Zw5k>7P`ZXP^>_+*{BFU8Vk- zWPE2Z@4`0!ZgX|Y0QrLc@n#hzhc#Hu;3mR>=EMWagtvp%PZxU>I|G=S#k?UbvVJ-K z9O*j~lb66e?bBD!s~y3cpEXd$bEGQk@{NMFf7*Qb2M1)%?wFotaS%vQqyOUPY9%Tm zfS1zoLftlSJ3^{oh9fz@o%pBhE?H35;5I2wJ|DohyC+&3#Tz4&(Co8;Nv zS4Z=_(2H`y0N)!DxWn%Tif9#_5=u3V9>iH-Udw+R;L{S2&eTGwxhI(}E_F)|pZ zEphUh1~S9JOA8Px-B^6tP(@6zUQ;*ChA3oHdCJ;~jG-*K;=#@;J~dd&`pU$qw({I6FkL13aP;ynX z<6pkF9O7}>b|JUHeTc~&RLo?5L_Y}|zx>q*agbC98Nlr{l!&@5!e^4%_sGHL3^a}C zC2CIY?TE-qb41#p(g!0y2GQqAap?kDyIPP1e-Xw}fpbJ$*Xc1w8#IG94s|SJ6Rg}? z`tYi6egeD+t2cA|dXMfvp5JqvAIr6yxqgi~qVFk#^xx?O+Y`kpl3f92fj|QG;qMj^ zKH2!``2p43Zjp7iKiF`JP~e<_F2tY<6p}-uA6h}a|6@@A{_PEWK;F&rYC9SFu&Y|1h0o*38SV%>MD=PYt4ezd`>zA#% zKkff))ekTp{i21Lo5}DJLsa2fpqUSZ%?oSpdA&$3ufSznf;$U*J9yA2K(dR!@KQA*SK6&%H7zAuD%Je2^wxoT(iXtR;y#i^Iye z^u77vy>Go#W`~g$-u@^7DD`e9zXAli=(W$l>B*5b0lVd+ln@(u=Yy>eW7Ez4`XxJ9 zx15uSd1*;v9>ME}ek^(<3U_xZDK3fElwbIqbnelibB3O0+SCL^2MeU7rQKt19`T5c zjZKvP{`yP@4hzS+!n504!(5RrGX@S{Zss=w_+R1jql3k7u7-bXrV$(^N^>p2n!CT( zeW_-oSx{WIa#8BjmtTGxU?49#SRF|HO{2o`G;bYSi>q0(Z+$d#IsfFZS74G#Q_ngf zeIX|$R5sJNoCsInF(r%MmX21KXK*a{wb@qWUgOjIplWYw{&dh$_MxJ@y;J)F1RXC( z#IVos^-#v#x+0-GyY~(as%bfyb)1wlK+x`dfsWAs{y8)k@0{I3>oXFZLbs$rNlj8J zG5LkI92x>B`Cu5?Z}PevzA5nC;T~L*%dR_m+4)txw#_b)GJ*oiunL@Z7tsCfXC<>$ z%1>ldJ;SQ^$Gpv<=igw}N-?{oVgV_(lfMnm<5SmhFXK*!iRM>Yw=dsZiH1C_Kj8jl z-d{ZqSu8o8%d|h4d35ZU`uOutYSr45AmbuQ)5JluSd8qj zH%G8xZux!G8M20>G(6zghqAwbSYf|Bvdf+*ex&h*MQ@Lp{mCLcCm3P<}SFV|W{tA1F{s}j1RpQ?Rvn4jXiHF6~( z91+&s|NP8`URPuP)oTtJ!Si!QlJWZjM~!L4Rg@1b>po#7hsn-qOsm(DI6<~j2H7o< z)BPiuE$Mov$WPCXP!66AUBDxXLnv;Gn_+gck;3t=$QLGN+}+ig3TMfC#quTXN$-?n zzF3{VG$SdTln(#3x@TG5=15-kyDbIo6YsI<>3dN0M3%D#J&CtI^}_{WxVheUrryyD zlb`eKUmq%skHt2?Emz>e6bFjn8N)aFImF>`Vt9xT*a2*9xRmuC5ha&hvChAvVcRb) zqrO-iD=Y#Iyys|vEn{wNh?MkelWvX9r);e@kAL1xtj}h)&n*s8=pCcZCG!w#$Iw;#jz$oK@LW$nb!XRN&d|Ww|60^8Njy>x zyDy+WMi`}fdeH?%E6{pb!tD;@;pn~T-HQgd99RaZw_5t>J-3ViaWtxJ=D{v}joj~%Z?FHL`6fHPcI$Zk*oEIAV&s5EA3uZ{ zL^vq9nb2|MXnJ$}P9EeAPAbSh(`FuBkuZN%`7DAKa+@$X+i12YIz=~Swc4q}WSTRX zwaIETm#ykhud5-WL~bpDwXx?t)_~4HMVDlgtP{?X-VThIkE`2v-I0_vr1#Wl$1eO3 zPVPGGZ4yJ$PiAZn*51o2yl9_rH9i0L!YJ^oau!iH(zuzXtf5g`5%>D}(!K!HW}z1X z(xs<}z!qMf^xlh3WOPeXnSM;8ouq2Xz~N*B-X$Y!VCU)8k8?hJ18LcYDlRy&5L#K8 zF+kmYkia_^QZn=tX*K4?7>Ev{gqv;rwsF`qwX@+~d2C*J)Zo-SEqt%$IIP&|%>J;Hy>ehx8vB-ses_Fg=;6if4tOiTZWiSADqnV0A8USBcY*po`-R8M6bY}y%P zuV#i9T)t1}wXPp5Akw`N5S?4%=*s)UXBYF7h3(7I;^W_)1Wii{b8}s9iSsvn+(Efi#QrBH|bKE+-7zWNE&$CB4Eg(Q{{-p8C!7yb$@k$_<%G^x1n=ou{g> zKtvo?x}cyqKHm6984&uL{syZUU!YLz7dM@mxc5gm-LYOuvdZ?tfNble-Z-)=GgN(q ztfD%LcuE|*IFSxz$w@CQBGw-M$*ljyt17t*@`J$NaqEbjN^wOi9xQS@SWVCKf|#XV z|KNB8p{Q@;1>ZgJkn zxD3%LnCND62SrXRH~&^v<(X<%xg!-|ska4rdC1k_c0n~W!!E)v$SArbI(V|LP6y(Y z-1mS`D_0Nc?$qPRHhmnd^Gxa}5^Y5nI9gK!jcZF2oq})=_a9sVf~D_V0{>tkd0CQBW3V8C?uY_lhq_d9BRK~{m5^p!QG z!nL6A_V$9PFxAnvCD+SB?Wy$p=p7_Gi{BW?!(!}!X5ErxF!f~-v;arHvwh&~r zlpZ1%lP8ZF||}kLTp14Nrc^+ii8poLr^u(MPjU;ckT1M=lVVS`Mv)< z*L$ApS=WWEm31v^eeZkS>t5gQXYk_Ohr{Q2x{>xtCljW9Ee4)?7T4?j_VPad!TlV_ z+HJGn3*G#q3`N4!O~^%XEqY|XDCT}jDaJ2wja+b;e^no^bnKX5MQ{WHu;kT1#j&$_ zJv~3&NqMbq(2sgyW6T;?ey>%!(3&T8QX7$=KNt`i6qMDD(|xcpU2)iYTnB){y}Rfdd#nAD2!Av zDq~hR;Pa8Ov*wu0u^>?v4L#l&V`l{fPKVLD<5+dH^)|O;L8m1&cvQl-rmUJa3>~K! z7ZnodL19_L)Ca$<>S;9KzDFVAT<^e+OPuk^zE+Ro5A&(YegcxM#zd$s74D zY){UJmDH+0Zcm|g{iF5JF7#B+8}sLtlM2P=Lwu-D2pFQo`N4drdf3ALUJUBPJreT@ zU2*DmBv$=BrzgaEC+J^kq<@C&-}~!};J`hqWz<7t6WB*Rg%hFu^gMAx(l!46<1Ccj zwmSLta|pM%w`0Xv$4S+N6F>7c<#(@WzWfddw`;%UaFF0vsX1=QeE}0tdnMGXQ$UQnYV&Xhz5wle!i%) z=xh-+6Ehx%_MV@oHqQn`Zl-`}Oh#2DArYBSUV}a{9Daz%@Cpp^ zoO0n*+e9^5qm)6Z!-h4t7g&X?yutcs{#(z)L6u!D+keQm{^Qv6AA?JHyAnVU?kBl-?7=6_(;|Ly;6NCPX*N~9&~;M--4n*V1d!Za;! zPgQbk-M!g+!Redp{A@>a?!GhdP=qhST zKaTd7>|c#b20Tg#?Hhv@WbsL@)O_ZF5z_2gKb90YhV1K0Xua8j4}crOoW?yUrD1`- zTe~J`kSh9R7sI&pbdfGYjP0Rs++WpES0i&VSjUS}oKb?B}`BJwM*V_(z?Y7hJXG?Y7l{K-t1 zP{76{NAC``iGTl6Bru@>rkDalXKobC&aiu=>P3=+slRZEPOemZG_g!1&QpYIMdM!U z^UF|Fo8pv4!@#hsP5E_01U^_L3i5%ZnRqgH!i^`%JEc|Ju($z3n`n>_9oiqF68`o_ z9DwC|%6!@!`^?92%F)eGDE9g;l4q}q#ys&@8c1j4Gi_1JJ#IJx{g&ILj`eUwTIB`j zs=a?4>zF)mn~0}cm}ajSbQpB|JhF(yZfsm!NB-z}rF>^Ogsd6@pWyL2v-0g0nLrYW;$lNy zG(8`9mpk4)7rf#{xi6uxZ6P5+3kcrmI}AQ#RZQ{4X2tgBgF6#ZrBODZekfoYyj0v| zd#%v;He2T>#mj3tlnT+|-`=X`O0{tHU%o;o;OuFZ7VP)J`SLSZbScARh zq9!cq`q9_Mbng@qyg}rAz$%Db63F06a218fXlUmd?Par>YA?P%k6&h9==vdoz;BL) zDC(P20dpbGSX&8sBY3sjznbjJhpo?4ngC)w{BqdN1kY(=cpbSpRzZ4F=p>otYjiNy z^N7dmg<1UNpe4s~Xyr|67S0=!gQ&ri7TA@exC6JBjX&c4BSn%Z;~F)t1ppPXj$)2^$BtP(oVD2VuQ{FBFfL|?9FX+yMC9S)^S~$wN8CTWp3~C|NPbHRTN+fxgF>=ZB5kf!iV#81$ z)SM5^S z%yW-ns>O4?q)N@6`Hm8Udwo|{R!mNqoKY8H*ay>`y4<=1A<-vseW8rX;B{PUn zD&yKJ_roLHAGON=vE|E!&4oPrRBEz+;VAT!lG0Su`5Kl`9%B-1_lfNHvb;J`ud;;p zkT`Yb(X|hg_U~5c^Cnt=GvR5FF&DPyH|45-Uq6)B&&mg1A~ zdmST&k0{H{N$USn8zAPqF7Py#^&+aG?eerl+f5eC6DL+`Vx%dfcF+ih7ipgaMH3@i3zJ>i&Wal`PqantH}AkJn|7n_$Ar6f z3qTbCqynl!NiO9!+a;RcZS7QOX8?sd=Hc9B{!c@7%0I351T|MTbg>R?X!6yZ82(1r zDC7ERvPnSZu1kt$ex~lTJa`Xx`oo49+k_!cX(m>lSmVKpCG>24Ok#&Eu}osu^Y03} z+B-@)56b$*Hv|Kpg8((?!JzEMBSweX%|XG>iq=s)Ne?C_KH_p?RrpQ|hY zf$0~goOUlKvRg4qSF9X>LPTlp8tEW#`{H85(T|C6AZaCAx_(QHN!~I4F}VOhDO>rB zLq+}bRs(?tFGQ@*e+O9!bC!3GR^wkBfeJq-x6;TcDSocJJJGpg3kUi z31^n**k7^{QpcVD&=OE623@7Bw`|YX<4Yih(1VZk#EInSL;QzCOg4Vot0vM!#s*cM zlXT~C%am>3uQxQEPU#ze;7Uc(Cvzkq+xC9GP7Z-(eHo@6Y*8r>NWqyemHrf^O}{*@ z5U9@f-;d=Y7)o~WrK%}fI2~wM04=y8F7C(9vbSPyAOmP^^mW_)l=C8mOnnE05t00K zD#3f)TJdFEw*G@8F{z5}1#v_&uVM)*A3kN35<_?Y9M9XB{|LBm>%ZCyFQ{J9e;E?+ z`4pfOqi#QZfM1SZ)`@}2f0<^4ZN)*eGB59|+rG^Lo506OK}^bH_2DMQ%Oy-lNUS*Y znxH|-CRP{r$b*%^)whOqgL_aJrc_^P>j6FqMJ7uNTRb7H&&Vcz;uxOww2KWihPcpm zDz?4LJTk2FY6i^iznotFe{`2CKL6@3h89O(MeC?cT`rc1F1(y;(w}Q5T6n_VzzCpF zXakBwNJb6(**_C>v zf%}};N-HJwnFTj`I@RyU0pjYhZQ(|xvb8Ly2b3-&-U-_Ke7W8=m#dIoPaQ=HK3~0W zkLa5=Xo8&!k>kVVQj3<#RQzqv>a2G3J{@KNy8WYFi}e?}hyFFtekmZodew9n`Xh`7 z8Gbj+ox&HmwbHP(vi9ODMw>Kk4)=Z#qHN*LyO#AGcjFdW{AsI9nWnCde;@FP;6+~3JHc>6p6EjFPSRWtaT9v=z(QCI6NtPX zV-%8%y!rifI@o(Wv<~;l)i`@-r8c$RgCH2Le=Xla^qLSoabHPeGr;(FSjE4XSkhYpvuxpsTag5mE&^6KuS9l>HZ5~Lm;wb1`!Xz`9- z?O7>5mNY^F3V84Wx>pjtoRp}H^KX$swLGyhNhnoYyPlM1h8XEI*E$}$i}u7UtzLlM z=|#tB8yF`{aCQE&WB8PTL5NhIrzctVcVsK(u@IBIb@vJG8ryJo;Y8@XW)X_Ym4f5O zp_Cv>?D#ARnSE_-3VjihsL7qxc(b76Vy6lpOC~e=x%B731I}-=0BGJU;A#r!%dfgX z!Wv=H)=-BT$!={4(Btk0j!wV-=LY&xIvm;OD}O}YkL97I*}AfQ@X%arT%BCrFlk=X zGQTBf-A+YQqas8tb4)YJ*v1A$(z)pKuKpnZ?!3LBqtQx+S)DmgaisV+7F{N(;gCg| z6K5K=)EpWj6s7G{fd`q0FUtcBm|ZPWJ#JY}J8ra87`MfJ+4tV(S=~X)4nGbnV-wy3 zVs=DTp`(j>m>p)4P%zX@6ph{~m<8Y8a9o==C=zq>k>;d8|81zl7F4l&M_sn~w<)Jn zO=-VQ7R&2ZFKy3yWos72j#JE+HP?BT*WXl)UVWX?()u^`?7=f%ZzBfhU;CbY(l+c) zBcDzhQ}Xs+KZ+^G(%$1A%o(2BDU=pw8uJY@N_;EWzfj!hu^u<%Q+v>f@=7>%V)pEgu3P8&Z)5XO4hi z!AVO6dxo$p#iB#_>MTv5hp6EX82i+3AaatQe)}^KGT$2}n8}5s7gb()w!&C*A?*v; z`sZO0J|}b06$hnm`Pm9tV3ik-y*v3ZcKTOdF(C=F19uI7Se@>igViicjTZTJ$U-9% zH5RkhymF>XkjK_ecG{caUU>CEKqliO1Ab`>wWp~ZOmD;-l&jCLl*N}p5Ot$Eviy8r z*38bby#=-{>}7*{jnUp+{Nqs+&3YtwX*!ds;w~>cY$#dxeW}TP_W2qfiVp%y{ZonF z_HF70-~-V=$@O92I08V4!-WrpT<1ce*8$BMK+!?-rEu&2ZkXeJ7;fvA`^;_mWm@O2 zyPygBdGjqD`Es>=4(;8n9tKtylf*qZWFFkQ(Oy*gLZBZVEf_wG$FgY$7`+wm)+STK z)d+m(fz^@RGF5aXg+HhS+J0Uj5W*;ut!)I%aRFR7T7=>x~$u$ zLGPcnmoJP|=A-Iy^7heyydD#htel>Pljw9odDti$Z-yDV~ z>EMkXzWLjq8s&_CLWu}|(dE$SQ{idaH2`nUymQ#1(70I!oy#|L+-iBVt1e^e5{Lm) zm<~fIEl;hXcA=;6`tUW&{0^((>UOS$p`C@2l1DNb$qCRn)Qor&XYVQYT8j_HF|cSv zH@fAH?(WsD69+*>v0Q^U3iWoEuUTri?Ny|$XWg1b)!&-+TbyT*0X{HLC%ZvROMBy4 zO{gkJOY2n4jrIBFX%zjJ5Tg%9mNtF6XHT_zXYi$en>Ch8bXOo1rw;c}pdw`yG+NOz zDq*$7)#@1oY!&A6!^l)-vO$fE6_GQ&yrV1pIAG0JGI{du{Pj_(P^{Xu>*WYUmXV?C z+mZGGV8RAC_&9#kqkJ{v(l!wa(bw0{=-o;F&)kzg1?=CkVzM+(r>3($dnZ9Y3_$j< z(BcQzFfiE2{*`wLAhEL7=%|_HBFcwJL~nQu=*NCA>QD?i{0_?|#H{u= zmzL2t>^PihFsy7y(4C;9YAVWDkWrE~tMF=>n91cm@8vRw1~4LYYH4%6xM-gw<*Sx$h?{`o7V zQD}944rY0whg>dOc>(Louo1oa+n+;zzQnh{^Xf`qCIyNo#hJ>7(PY%IO)ejIJc^=G zsG>fe^)A#|Mk1mxgXujN45bIJyF&gD1wdJ@Fk(%-`pOs zKu5-^Tk*xXG8}`y?Z?PKVH55b6!{eaf}k15KvXtvIq?qryoE#Hsf2s;U97>KJLNBq zeFdbnt}KM8c9^~$KkBO_xUFFt8qUW$xm3^HDXRPnrTPUKrB|7o6%x+snpDnKh~BUx zd2*~n8EErpPWz#v>lEwDjmyY5C;dvOr8i99Rbs%VCzw>K7!iR=xag}VOeV(O)wtxo zHXa8rL<($dx8q|GLoxc!R>DDAeU9b1o@wvrD`wr#M`s5z0auc~izi8MCu(=G25ap@ z_lmSyhZ>yXYQ18B@}8p>`1rjBvy#(MzX=P^!Q6m~SQ+ET#f*FnBEQ!Ex7K&!kcrpv zn#KcT&y9nXuA>TnCM}s(7#$(*a5`dZ$3~?gP)TV>B;);J9UP(&5;UVu^G_MS__N2a$;Vg>^X~SLOdlWWh9B=xzK^^$ zIm~EzcGnKAd$feFo4rtpkS9iN#F+r0s&<^P}+PR7bIDakX>KPJ{3h*2{gXM;NzL2 zQB{bBQ@2IW+@-X-rKpX0Tuha2Xl7>it!124CNwn6&q-mR!6h4daB6j~^CV`8bs@=- zk;)y|j9bbIX>3Qh*clpjO7j$QhL;aq>#^t!?*x__r4CQ3hRObwBb zL}IH*vHV{^7XTF3pKd5++``ubbk5FvLzTlBzHqH&9Zql{t5)kDP<51U`nRu;ajS!*KW&q|=jS+?#?^z)J1Dwem)W27a; zqDWU^Fua!W68+KBUR?aX&IK@@#F9(D^1XPX%IB!g__-){dLf8#uT~$*GC0bEqsrUR z*y(EzqYeH)-h2LZrT@QH{*s;J7KU@QO6t^$UVvt~G|4KdEJ1 zRCuAuETw+j!sZ^qt(+OyR1*L#{A=s0a7XR(TeB~JP9p5~`~mkcfkH0vGSeRx6v5HIP?1B%aIT^9Ep43#+M8kd*Qd+} zH6w4Hyr_-MKoOA#X!~?Z6}NWt$S`2?Yxz;u{r~8SL>q+7{!*;UhGh za?mC0@uz^su_WL`WwDP9&hl8n1DRD~Dyn`q&Z|;~3g5ags=YO#Q*+-L^~}Yk21geD zE{L_AfPv#{rQuL0STf|3Xa7e2kw3NAyIQ9Y#c>W-2%@5Nc_~tRAizvQlZdZ;{_U?) zL9}afF~XL+S5wPsn#E48vHh`0S+_>NpDJGjN&apwZD=5J*@p7DiWY_jPWXiR#A{c| zG7Y1O$RnvwesSSn8&#kR=OfpQsyzrO3X`CW4^HhwA`_G^jr(=PX%QxxaKPmONn$t5 zxqkIN{hqf$uD3wFh6IX-8(%sX#_!e!UEZpEY2vl+TI(0P>HU4>FYK3k8ynv@oWCXs zWy`DNF`!Meg>0%gzN`}qx6Ex4f!%FR*5b?ybkJaMu*J$BVF2-qY0Ho`#93B&9jV+Rw z3QzoqCjK>^|B{d6X>dI=P<5^VQ!kXLiEBud`jvHnpE0{=R!K(aVfobE}oB znMq!?GvI*FmnEu`jn({Or=j}Y8dBkz=Uk@GRPn~>@F2~c$!E6{-urC6ML15$DIn=5 zs{7<4M+=QX2kTUT3YVtz=Ip&zeFIdEU29p@rZ22fV1C?$@`h4VOuoE>uLM26^Og6x z&Z2X-24L1X_~nw84ny4Nc=qT~JO9IxB$R6@YWHc#E_P}ySImjb@(2v{01*Pe>(p1< zK~rm-^!P=}YnEYf$pMS*g~hq>(_bg44r23XZkTBXtz7aKZFe$hwjj4F8gn-?9sPyy{}f#=wl~wUSrRFnc`m3 zQVeD6%BXjMBt;RvKYUk@Q1ZtVvA!-^>l5)^_PjJtVMl40-xpeQb5FB{9!*z>=mvEp zjZCgWnFz6UJWHZ{WjqOtZYy#kTTkM6da%cy7EZ1RyjHm!k<4hQ$#zmE%9nn=%+qJ8 zN{Ji1v&j2s92P{P2FlbRx zvjY=cCmjLI3&wnLoX zy@K^O>q4-oZ+)jWZ#YugH?boEc)U4xL#30z(Hx#d_b9a!m_2zvzqXb(=~(mhUQLV4 z<=?gHiYw^D_3B3XD|TM{6tSU8U!-!i^!GNQ#O%SEL{uvA!9@5$Ar^RuI;(;X4c+>$2RoKX%Al!?4mJ^or zr|bQ9uY9p`*V*}<_2QLajjESP;INSCS3fsyTGr1P!FE-cK@}@CeGmWHJn9uVnQ3fjH2M!HN2M^9pwN3~w4=aa$xjj1LIGU5*6xbQvyI%|dO!r|V!g zh7be3Z2M|K$?eDA*Co%9pG{C*c<}#I%^3d!RgdusMu94!Y)|&Rg{%uW&Hy6h3jr3X(ZBtV>QiV0}R$rG1CrX7!t@%>LQKuxY{Kf-8paE}MvRv=Jok(Vy7beh3C^HXWEO=u~HDFU=(l zIZWJ%4xqY+O)^3n%uTbxs{1Q)9d}3$&%X}+(azZ{FUB2JRchxZc5y;MEwkcIdWhF_ z`D2xGOIa20gM?3@M|*A%YUQb=iLm{lYq7!0bKxAMwkSq-Mqff$HVdpFUnoG;fq~yH?P&WvdRzdHcbBO@b{;G@NZu^>o^nfqS14OBJddV45JACi8}}($=|+t zp1C(T2qGESV1mj88~{U5 z1_W_efo#l;5YBe3XTJw#z}X&{U=4;EjSmYvVmsUClFZ|}J;>6IHty#Z$rgcn%izS2 zQwr4sO7-Lq$)CexfC;Q$TAQA252BJlT<aoBrqJk9n7*Q9?PklXZ%6D!~Fa@?%0NYq`7t7DEB*MPGP#6@oxLNop-?O?~ zF?U7FYjhT_LiduEAgVln*HxzC)siWJk+|J4($;9h<`0qIiPPC|J!2OKnEvc2yIz@5 zg3?OGhLqg7M*t??1fvg1OMQtPWaMV%N<{YtadD$dJ9;haNdvR6X!Wss#GzDQ81_38 z)N(l#H8G!=bWw;WzP4n7Eg!FX?1ki(iG~EJsG4tWR*P z1I4{w+o<+E660cYTeElNhkAYz)aM7wr-9tst3lr=Pc9D+zNdb#S*FuDhkk`hgikO~ zGM{doV#TjKo4fu1qo+^TFK9rUu{{X8pLv%)cIg-{Hwreckdm@$Ck!|PTen(kq6+5O zSy4(|Dg`^WTKM@*8ym-toAvy$H37IsEtrH$OUryJsqj>id-W5kpx{lyg-Vki`GT;| zIuW=(!~I~z@}@NPk&aEd+~3-U;i5i zRJgD$Se~p5-nrYxiM;ybFAM3Sj&rC(*E zpQZMO!rWHlY?!0;-IQaW$ie8+Vas)W+qzos$s%zJ&C{tM-E9k6Kmw($A849W z=3+caCKAU~Ffm#DeSNfpk#IY9r>y?vg*`#mXoK11yHS~DYN<-?z+4IlQ5VOrj;RD@1ENkm>{x#eTy2hdryI)DdM+SB5vJ! z05nCsbncYlhhu*!z8OpRs$@cbbiDyH%zd9vCSQ7B`c9Z%a)L7VxiSt4vVaWDnr#H2 zJqcJc!A~oTYBAD@P}%{3-Y167>3R^b6bML~H(aTd7=e$-nm6FY1Ez+)-=^M7(Sir}#%3w|FJ&E;O z{<$Wl=Udt;Qj~@nkl{3y9E)wfBk=l<>g|YHB$4ohl3<`Dqfun)r$tg})s;k-G{PQ_ zq-9{9KDPQnNxx_Q3)z1h(^(rutIj{5?OVrKZM#mRvyz^;DqGpQzGmbIiB|@oX3=CK zA;$tWWcq3}4k{959j$|3iAMR+iw({ID1BDN3E#YhT zBeG))qiinvEz}`jm0uSLSbQ_d7EBm3!qn%x4FBl9mbMdGugD$iVKIt>YE(0?W%s#R zzKmT^%R}ymGb@mqpi#Eb{gr1w6&vUmbGM7jIK0N0waSY&}iScU! zC@Tj9)dzvh>p=B>7_OF29h|gGkHis}NI!s>f$(qN_46JWT8`w^WP?`C5Q}>9agD|& z(Sgm8*Dy)Y7=7Hm&e-(;n~+&@j!Ah*T{_7KN2=;lYY484-B)>|^aWCkU+iCg#t&4f z_frpu!#wNKF>tc*+MM4Km$`hjYe2`r8R5>uS4e%uvJTd(l-}-X5Bp9!enF9uP$xt>amo1e~ z{4IS9!GPzk?nd5l@_4&Ev3SSyl^en5=WM8j!tp6)TnI+QM$Wl;P!juEa4uk_K3cz=Fl5lQcC%zF=p79^MDKk_Uhy09RKJ zGu3+9nvZ(S?Hi5T(R*GNLQ2?)geV$9 zuR|Q7_#lN1@6ulx_*Pr*Ap|_?(F3}5WPe2excCG4ugzZJhUtgO(~!&SC_Q~YzmNVw zEd)ae;`*iSr|mjB+zlmqkwCvSg(JkzoA?#X5>nTl9U#_m%I9Y8@Tz(OYUXP88*LRo z1DAZ z-Sg>~_{KxyAnYPV40J2m_VzwWNrlZ{v_C%3Kz$Yk=j%C31FQilzC$O-fHMsOl#ta- zJX+r!hd)!i*2i8XCqY25g7yyfjoCU1=3*on`0MO4l+R9g$r* zdsDBmqLaMRx7PehVaca4QW6)k5hw)gc+KwN>z@bdekq(FZ&xi1aXkWhSldYAuC$Yd z{<>yq4H+#7vwthf_`7WSgQyW&t3TcI-op9XJz{I?Ep|ILG01}4NDlxy~0yI)qbo=d*`HXOE$QzF&o zmTf|GZVH(PP=DxO`;a0b1KK@DLf(%`U#_&_5xZws1FmFfP|OI-Hsiqfxu*qDUu!2o!q1X#MSXXe{ZVke@u9+!bC==}b8IvW=g21!KE zH=?doYT;5D@E9PgVADP7|@zwn3S_}EMMn(B= zFy{RpvF(~iO%2Pi&eX`l4Drf8xQy(z^nH)eYIUVNNDL|H1C+8lNANQzfXYsJsKYJ_ z&-7Dv&wiZrywT!J5EoDhr66a}hMnh^N{Muu8e$4&7~Kxh4I+^!(!(PMq@z^XjJ!tRDm} z7*{WBLq1g;Qj@4LPPFcTW}4?O4f{jJE7nFQ_6PJ_Q{|=LGi=gfw1YYc#I?0AIHLCv#Cx)FS}{J2$q&$%ETlTM z3yT7mQ6+90PTKLl>GUU7VFwMHkprfd17U^u`ZD7X#m;FZ;%f-)`d(S0bo`F8h9m~H zlTjWY)jC})x8dp7BgpJoDt=yT%YCXqTU)~h=8`tap%Cj@iX!^ioX)|#Uy&Y6UO9;i z2=N`L1lk|}Rq>fzjvyr}Y~rsQ6E}-{a)08zD_g0gMiVOu)_bo0H?Q3D=zld?Y*g?$ zR=q>glBfIeeAlZfMa_cGiRx>9sGS_Sj{1!BZ{Jqq9;?Svew&RK_mnL8H;>P`p%&3n zj&_EtaefDRBrFySjK-wL1BN*zJsz@rGU?LbS=y64iyT!i z#2C6a$nu}EGF?MT;up$l0VF`$QW}& z{&N=#XTnDB)J2x2_c*8MAE~~@$HrBy%nS@yRw&##QTa~b46`NWI`er@kmqKOXd{H@ zr~!yad{I`drv9?tyrY1DCP#I5FxwSIl0}IJ5-GfBF$kxkTggnB;sj}4FnvqV`$B@khbo+ z7S;IfT0Xuc|MH+_kn%$V>j8;hsdA;aPwNUPC_qToy~sm@6&do+Pu@|#)XY8(CeDTe z6#H{jh0Od5=S}3YZEOa(F5Xv2Psr*e?0kky{jMfG67+_I3@+$YQ~xeQJ=CFH)Xur? zMF&UlDawel*yg}I&X=VvfxDffOptI49qm7Qy7#NP-Wc-A&=DsO08(DSBvKMz2+``ag)bL_~3e+H_UkX?svK~bAxc~gXr0>Gi1!cwdd{U`pzenkBwI=|VVb9I_ zYzM^~{>29CpN$!@>Q0dG$~>Kfl*c9}D%}w$78*M5nnA4>tWowSi(l8*Wx<`LWt1Xh zBI*y@D&V{gUunlN&E34NLKp^5!6SV`BkZ0q!sZ7yf^iwjj4UeiXzuMcY9k7OfO6jW z$?gQF&&h_B-_sW0HH$2Fvj^u4WV$%NI_qF5UlBvMES6K-Lqo{>qPc+>9+0Xn8Pqok zok)-$p4S`j8Zg)vm)(0~8oTA&%i$%Lmm%vJzQQ3RHdLW zteTHQeN>AJ(8K@Nmao2QerHr4R<^>b>OKBATIzyQ6oldWWNYiS^9@E_*Zst{{kIDg z{22uaH{zo5`Om@I`TPb0-+B^rV8uX@ za2cM(w{BEuJg0r^c;tO@GkL?pW-_$!u$6YFSI>#&(WDzcX%U$ctYw_f%>2YfxE(2s z-&E-569&xwacp=7ZZgTKX*>FzYz8&q%v}$d3AH|K{UGYMx*Wy%+ZjPIWfk3#&SJ2h z`_0z@&x)1G(10>ThjFElw{E`7<{Cz(6LsEZ$1(pt3Fi>p#=|&t6R#U(@%2-_7vg*hLkUa@G)epv3H9Q{)r~5B`$qC?%6P4*?%EO_nw*ru zW`^L#^&>U1Z@cuH^L;#sCAeqr)~I2%^dDiMxAU$8clp%rk@+D|t&L;9`>RhKl!~6J zlHh_(dwcgn2zoAdLCERCdM^zw0)+YOmPi~TZ2SVPAVhVR*b`?w_XH$kgP*{9qDHl% z#h2+<6gSGwRn{ltj17w>(TD(+qR;6V-jh0;+vy`+w+jLFJTuVjSg#nvi)7y0xkBvH zsc)Zn8vT?H@43QwHNLt)xW62XpMWcV#hV+M86z)-RJ@&r?mC~&n7#J-sUw%ap-F{( zTso|B&{-K)(P+W6q5_e~zQiHBSQVWIT`AaRS?VqNXbLOek=l^)puD%#K6b7;%aZ_( zOo>Dv$RhX158BE2sU7Uwxs`S(mwt=$rcWnj>7wLQ z)8*32Q#W#UGv3DahUidl_i{2`;CF34coUcXZ|&ALr3A)Z`~3XJUe8^@mFyJRy2=aG zRNn4Q&pytyQN26hp?IFO-1Ye0lYzhE!wcU3uia#TNSUlvkMxMi1^4+`xcWGQe=|7B~0rtZfLwVSuQh5gG3=?V9# zO`W85s1#4>!a~WdEcfCZNe#1TiP@Nt_GN8W&9GOj5TGkLE@LvE`>lz!n`Vsg1$?D0 z|Ck(;fnhe8(Ac={k*qX6ACi|=Ouw1pGLDauE0Kowo}US|6F6BV8bx!q46Vkr=xeKU z#?eWg_!{@3V6w3b*jO{`w#cAwJi@9En$nK}OG>!x?2=B=6p2gW$=mXtKhctvSCeNZ zwC@etj=5=sXz$#izIc2dBsZ*{I5N@>mbiWa;?1%3xm3V%?5kiB%%%FiJ^dz3t_Fc= z%*Ygmh%@G}f84~<@XA_!^Ft8s{=zM{gD7x#WploHukTKvhJTv!R4nVOroOcp*I^e= zjr>?W=BNq2Wm)dYRE=dMe)xe7Xx@h*F^OF`tMJpHorFPmcgR83UBp?t0v51!xvfjq z{%Sr6z&8EmdP&6op&n+GZkFI=YX8mGKljI0Bj6;6cT{3UbPg#|ae8g2cDLx!{%Uy{ zxcH)BDd}qAu3y1A4{hW$4t0r_S6K~YZ6j{>p$u&$3)oU!v4t+Hr8G*@$1C1m1@d&` zpUivj&Hs?6Z$CI^a={Ue*a&*0l#!N?OK{2Dxj*%`&Dc2BT1MGNBO_b1G9Iy|;dzR7o-ezztrcGXxI=QdS6xy)71 zjGli?+EBUt;#H&`p*SyyxMZ{1W-4=h1D2AQ^0urL<2cr=->r0}A)wjyXl4xQq1B6i z>{!j6yv0sdOLv|i2pzmAmdr4R=sPw?=AxH8zzk6K!wlvkZCKkR?`ntihfi-OB75tN zZOXR2(0nZ&hb1mKC+jK8kF;e-{GDrRwBav0FvZzBI{~K8yYsRA?-oNYrrr0Q1aEK? zhg(Z1pW62g5@?GDz0uP)W=0O}F_jYzy?!Tn7Z~I7T@Sp%dwE36LklWLjp?h+B=SOcb0GnZ-wXF?>E37e2R~`^y`Zmej$D ztw!PX?W|l-i22i30v+1hYhFsNxPx9Ht$fbZ(Dgv>*{*CEYDZ7`z!@B}^Xt1xb+!zp z-PhI+t814|guN+4V%F~N5GO|8ZX_KJ$U5W7((9($h_EL$)|}l5nX8)D|9 z<#t&?>8YM?lDCrX%zIv9?dmwnXmH>Z0G_E){@q81w!bqztN76O=fi%6o8&G$3K&&W ziLf)y>GsJS2HO}B7roI8bYFwq12YyUQck!xZ!$B^X zbB)=i^}1UD?^Yl6*52w2`Y0SL1a=U@9F#Du66tUF7Jo;<6h^iwbyy}e%9J&KmY&l`79+< zj9VaDKY~tDf8H4|nXq2q)1zwJ{X%Av@`0a@jJ%u@Jn;*r^WRe+U{0BNDi2?1TY@Ro z-X6=W$^yI81q5TE3mwN~obGpj`Yc79S{d0jbK81eu5SSvolB@1xWBn|>rkg=-> zh*r&LrQU?>O8~_D_?X-lvHG!} zfW`4i9v7LeXB#&iFtF{leUTVQmfhfN1O%2Tr^GC;Hoc^*Sa}JUF+d{?md`>bI;+;; z-;aeG%`)eVAMl%9&gK;b$A)iHUq1`@&~MD-g$J=x4W*f(RZ$(1KdMVUYQsXJI%=|k z?&ojVTPtS6pS)Z0(K8tw_qQ8&v!A->`bF%-wS^bJXAc zif)5=-sss~1NZv;+=r45G;mhbBG+z?$h*9}R9KR|Rk~jHZJamD!^n$j97;WoYA;AXDV%`jhs*t>sLVrPa6YY*dRB$V1{fYeYwS5((beO3r$^n?nwyG_huS?fqA_1&qe5)^b$u| zG-7+=Lg2SiHNaMFsaJsOteV>umgJ*QNeM9E;{F`bX8teuOxFwk=E3~wLW-WxPLwUi zua++plftyDi1+Y_^j8k|$mQchvy_=N!;M`8 z;CboOZuxRn1c6$_hS<8YK&}q~SGom@dPzt?HY$n~!&c9*7^O-v{$bwoB6jXp-ZanX z2UYC_we=;r<_|y_Y1*Sr*8a!p!R^Ui#v_tHD^{t&B@fz8M6kff=>lR**3IzW(~7bS z1poeSLs?C?R3H&y9tK$LFKrQ}Sp`5er$cRm^dNK2MG(T?b9X4M3E`EKu5ZwV1Plo`mojc{a;F`MyqeATq-FXB5duqC>8(_=dtbLF&3)m-kvdRidH>dEXo>8GZPw2}47=^+ z57mM17@3w@BD8JQxZg~a1}*-CXK#UNTV1+~4XqrR{smE~T%gzh8hR$mP`vwBEW}xE z8>oPwRAybHLSM-{&Og739R1_aPMkbf7cd8=svQFS(ulw2)>Wc>V847dRylON*C2m<#JtGUoYGEu$a!1T(Y zDq*eJg3fhd<<*_5`7|E`;P=J=NGE=DXht$C0jT)0woLT^QpiOdj;F6b$~koZ$3$&ZD=h>~ z6w4ZNfZXk7^r6u+IQX%FE{cQG550F6rz7-qiYz)tuSZY%qzJ4{-ub4~2#tTlk{H`NGj9@==3Aujg4sSQ2J&)pha4vZ^=o2;r0J`r|#!A`LXd6q6mB zlCSQT|4|eQ+^?Ab4?-i z7*>R-CZGX2?0YAx+x*f8le7*v@^EDIPb>Mf9b@M6B79qMR{T9(U(4g<$};E`(l1K; zZZ&N?Sgl!Nbp>z?6*b@s&un;~{e6Jfh#+h*Rhl-{0+k_u9-t{&b31M%DmI$h zjlD5VeaLumGANSDSzq#pcWRMJ2i+~RpdAjO1DF}OwhtR#lVR5<#`U9`u0DmC?wDmE z7$%WJlN#U9W%^F23T$HG&dN>$ta>!E_kno}MdV=wx~iAC6gzwCvh8@-6< zPQ7^shRYFDphg)F0YyeSZRF?Y4MLz$hyh89L?S8G$-E-|7f_XNG8`nVHRrA`GyGIfkpk*{hhC-8>d+ z49gxhEshK>E3MO?_308$RG=ntAYX^jAr~_|9*@Bjva$%L9UQKyRFs!jpr5<5+^?`< zs+pNKc2uAdpbbdoNDN3{=HczMq!mF6gjvx%2Pj-m0hc}o{RS3mdZyb;Upg(NzE;~6 z(=PayF9rTMP*ue}9-6Grx0>dcXIXi91bttxTY!_9h{=igX|#U7?)xcEg^!ibwrSOn z@oe>FTi2->GA|=ZcWv|NyW=qP)KFD;P4wcHRz1|kEwnBoQQ*~_voG;^px+$vD{#+T zW(D>>x3|7j8Z3^NBfDpdXD2{!m}mNgJ<=Ufocy@!s&ONpx;^+4)LaGS7M3o>YT(II0$#c&>5OOzW~2UL9!E zXMb%k%)Fz8o@~ZJEZdiWIR?Wtggpw!Q?^P7&eDs?h5~qJe{(W4`$>J&pj`K`huPz9 zD0IxX?zD*DTkmWjH_Ch0+WqE>FX(~ZQZpegWGX9Hv~~Cl?c?%FB}vrw=aXwHE7}q7 z9dJbo*Byq=%Ky6W@Lg_*_Sq*M}=L-YHr(l{om5om>#l+r>yN z_zW0Cz>~1$q(0SL6BX)UtWPZ%JaS_i0@&R2GaPAyB0!bg9}hBO0prVmql(dUfY;;7 z{ekSV{%kveLr_zEdrEbSH?GgUP%O;_$2}j!K$&DUD(gZki(d{OZBvp22iU6+&u6M! z*pYC&LQrJav+~eTh{2)?l$Pqt4kIT#{a_JxGaq zDXf`%v#J>Kef7cwWMDHw=rLB}^H!LZuwoN=v(<5G7rV6JIhc5(6y5KQf8Kk9LUH&h zn?#{w0$a=xR%zy*v~k*yxcxioUE3eLS1mgjIv;B>g>jzPl;L9m*F)ecvHe=q;2aU2 zE`jRFt4EdQG-B(c^&&13)6%jJH;#UKBHUXXg5fJ*&|waDAS4O`r_V8}d%szzFxAWo zOG}&a@2!veLfhaU(}s=V&f1-v^7cN0;EPgSy&At$O11+ve2R28jLgiV;rt6J#<0zf*<vm6A>>_fMhfD2zstyM13XtkR#;vIJ;qqE$H_r zY7?6gJ>a47(n?vH#z}xR^5}2L!x79Uo%Iv$&&^@hu0>_R@d}ctJuE>dU?iqeA~~r( z4yNbJT(UDY$|B9o^}1?9CxSrebmnaSv;4RB7KWUADRY{g8?Sk?{UB>+il^k(8C_Mx zvRKA>RaD<{8YHBZ6z8{=c3^)lkQrW?`P5vaW8qL|YpG)|~HV6!?|_ zw4ZNk5P?xcUMdELz5HIAEtJM9^NYCRGk@%O2qtUTVH3dFk0>N7Clt5E_QTU=@fx2T zRHIvnW`YP<%EA3tNj=fX+c5P8pZeXDt{8HI-!c-TsXOKk8vRX@g+isN!Tgmn5+Q(G zS6=>`9@HRWsR*eOP*toB@bT6i6Sfg$1w+B&xfcbR^pIJ7h&)RlV&tx$0Wweo$m!jk zSK3|MJs|v?c*gcKk%?lm@r2iWMVr`J=&vdNLZZt!eE#uPdZq>Xvy^T3jD43PYty{} zUU>%(!ZpP<$=)Ny9~WE8D~44hv)3T{D=1X~k{;j2x2AI1E)4FC2+}{!lhI}RDD>wXm8wocwMfQcI?*JM3v ze<|BFN;i3*0SoIm8RjLFbaZOVHm@Xlp_NKzu4Om|x=o6$P4HzV_t+q25+p9Ztn}Mx zxoO2y!|=pw(J3oo2_?eOmmA(pznOUo*9!Tx4m;&9xYc)= } +impl Route { + pub fn new(method: Method, path: &'static str, handler: Handler<'static>) -> Route { + Route { + method: method, + path: path, + handler: handler + } + } +} + impl<'a> fmt::Display for Route { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f, "{} {:?}", Green.paint(&self.method), Blue.paint(&self.path)) diff --git a/lib/src/response.rs b/lib/src/response.rs index 9c9c51a0..d38a15c7 100644 --- a/lib/src/response.rs +++ b/lib/src/response.rs @@ -81,11 +81,11 @@ impl Responder for File { res.headers_mut().set(header::ContentLength(size)); *(res.status_mut()) = StatusCode::Ok; - let mut s = String::new(); - self.read_to_string(&mut s).unwrap(); + let mut v = Vec::new(); + self.read_to_end(&mut v).unwrap(); let mut stream = res.start().unwrap(); - stream.write_all(s.as_bytes()).unwrap(); + stream.write_all(&v).unwrap(); } } diff --git a/lib/src/router/mod.rs b/lib/src/router/mod.rs index 0514593a..a275dbd8 100644 --- a/lib/src/router/mod.rs +++ b/lib/src/router/mod.rs @@ -33,9 +33,11 @@ impl Router { } // TODO: Make a `Router` trait with this function. Rename this `Router` - // struct to something like `RocketRouter`. + // struct to something like `RocketRouter`. If that happens, returning a + // `Route` structure is inflexible. Have it be an associated type. pub fn route<'b>(&'b self, method: Method, uri: &str) -> Option<&'b Route> { let mut matched_route = None; + let path = Path::new(uri); let num_components = path.components().count(); if let Some(routes) = self.routes.get(&(method, num_components)) {