From 9ee50b308247b18326111b81272944c5c7ce2090 Mon Sep 17 00:00:00 2001 From: Blake Mizerany Date: Thu, 29 Nov 2007 18:35:06 -0800 Subject: [PATCH] * Default error messages * Use SINATRA_ENV var if set --- Rakefile | 1 + images/404.png | Bin 0 -> 23305 bytes images/500.png | Bin 0 -> 31056 bytes lib/sinatra.rb | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 4 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 images/404.png create mode 100644 images/500.png diff --git a/Rakefile b/Rakefile index adbf2fd..0011b2f 100644 --- a/Rakefile +++ b/Rakefile @@ -4,5 +4,6 @@ require 'rake/testtask' task :default => :test Rake::TestTask.new do |t| + ENV['SINATRA_ENV'] = 'test' t.pattern = "test/*_test.rb" end diff --git a/images/404.png b/images/404.png new file mode 100644 index 0000000000000000000000000000000000000000..902110e16191774a1e91bafb86b9a6e9d5c12357 GIT binary patch literal 23305 zcwPWiK&roqP)?2pTfN1P30XNT5vekmMzqhoDGN6lwC1Jmq;NND(4|ha^M{ zjK(2hLZX>51}jd2akvbI0lRHuyYIKUSN*fk*;TvOS+~9R{!iVy|G#l@>eRXX=Rf<~ zYprjs^{t7fX`nm0qdRu*nCvb=cXUSw!tUsf4usv&9o^A^usgb=17UY`M|X4}?2hi} zK-eAK(H$KKyQ4cg5Ozm*bVmom?&yvVgx%2{-LZ2=ue$_${AikHVq!uo@eP0KE>Q=< z?ie%V$nE%(gDu{JA5R`*m*#iq-8;ub*F~|Xu!nEpuV!*`GFe3fOX*kfYbAGT!0wLD z65i?vBv2uD62r)0nKiKFMY!$7FWAAd1L4i%TV~fZ2OBYl7;+eU9SB|S6E{RDEQ}z;u3Caz`V+U4 zp7qDyQ481zE#$0R!>=6AUxcU_JwjE|h3q)^{tk*A2vzGRx^pBQuh}kci~M`PMv!W+ zX~R!T`WdPDEC>l2D{LCaVF$$ygen3X_b zue)Wfj8>zQcCqkAw=5Jp5SA_6XbDBECTBG*TyCIj8zQDdM0T`pz1n<_Z3%h8u+-lM zop+5-zh!aQflzQqHT#gPQ}Q{neIRwDQ&Usq1)ZhaMxsKr)fx;mKU4F2VYCQV%#rvl zAZbzvbdKQhV^I!ky{F)l`6#$_YK^-7RN7CL4!xFeT60nzov#-}dv z2zo(WmLS#K@0O7^xvH8yzeP;qSiq1p7H2!8T{epMTT0m4iyNUc(a1K(M~J$m4U>)%bqbh#J}Y7VEd zcAXYOd^H0Mq9wGYEAWfAvA`a>ORFO%Z^130p_kQJ!u??Y)6UA-3%eCnl)mO+VNBMi zUvVXOjBTQkB-SrWnQ9h^8wxGYPU^+&gVU|XBhxiZeHBJO6uIDrZ!f+P|Ke^1DUIGu zgTS<*8k)8?Eh(-TZVi%0ie1f^=8AucxwTXkXaZygJFNwQAJP2``#TePV z2(e_xqPAaZsOE6gaT|E6>18cwl;Z`ryHXiEqrh(;E9i(5QVJy9Ce30rJ8C z97Jd;9^@Tyad`*A-FHE8pwCMX?Y3G_>Zi0ADSD*Q?Zmz)=4_IUA}bh5lIdw_V(&4$ z=HlYwKmYSTfBDP*@Y2gKUAS=J^yxe2<__F*&l{e8`stOGm3O@39q)YSJLl%+!fm5k zO;he5mXLg+^l`xKbuvsnA-cqbhreT(>-}^f+%*?8eVtl}VkDXkNit58LA-h1fq z!PS-3x4h-SS6+EF;4@gQw?6c?haP(9lb`(LqmMp%|NZwnX-^K$@Bw?ho`^uuHNrKI zlpqs-I-IN*t7L5DNN2vJ1L64d5M*WZC|^XN5o~0WS_WgmmzM}XP>MgbWtx8C;^ya` zdoDoh?QeT1+;Qc~)fZoU>Bx~IPdxFJJMX;n!3Q4k$`gypa|emSZy-+eL2>pI&&)XP$ZH2S5Db|9Rqx`|i8%<(FT2>7^gdgkyU88_z!b z-#-6^2OhZZeLwTQyY9MkVR7+;KlgKg^S6KVv5$VtlY8Xvn=&!{krAiGHuQy1Mqd+m0o|j&H`NbDs z3`UZ-2x{yo-w0AJ)NV>7Tr`-K03rzOc;0|wX9;(j3k63Rr1(XG(&29NC4}2Z$$H*? zPJYFKoMuDpX%O6KhnIcnr5BH%IC1#Uk$%75o0>Xs;6U&>0~#+ZUATPt($#C%=I4*T z`s%A+{p#1Ae){RxUVHU@@B5j%@4nl(M54bpgnT;WT^#)8?~@a7?AWnhzjwzV0^B%z?%eEw*>G0tYwPp#^F|#X+0-!Vuse!l z!ldbF_@!|tvdae2oJk{&nb@yF& z+;M7R;+25C2AW_DuUx+J$}6wT9+)|O>W-C_)y2idfWy_*)nm8a7M#^sTa#@U68}W} zZSIR^Yq;%l9P%r7M+x4D!(zXwSh>-GupWWNTEXj8WV*>d3Q`9>lc} z$SDJHKD+~A4FWyhsr@X?$pLe8rpU@fM--D5aZv_$6!iWbBkHpo?bE4-_dR>|Y={6u z>=yub`O>A}76+emNR##!7Z<`g1m`ovgaMhsYhAd$aPPhMI^PZ)z4@A<(|8n5{R58= z#c8M9qv14+F-l~Q<8Y6HkaU!bp;{`c#GWCE53z(hNagu}io!gVoTQfmuYd?bZ4nrW zP21B>W^iR?<(uF9X1KkyxD?FY`tUU7j~)$A3cx#f@Zd(X5$xgFv*(sqRu0e1EG;bt z5E|T%$LMK&4<5HrYh2<*d89CaTRfx8P-JLub%BQA4up9G+Pd`Mm|=n^Mu_^K;Hxth zjiJcX5jo}NB7KfkoJ6r#bkwY9~iMQC7tem*?< z;>C--sj1nSnaRnCW5!oTKF~Zaq1dgM!oxbs9!x8ZI;)`eQyZ?cWWrB07d^GFqQIuVTD z@#DwC&HL`VuRlD({a3DB8DuY}dg0v{78h67)|Qu-PMkO%|C-$nvcU5+E*U|iR*Qq9 zYd&vBV@ip>hGyrvf;g0qSiI#xXcQ0{*TwQG0WaYu*@Pn|mT_P4+N#EBD0U*lcxd}ny%^Ups&0UNzu&q-Nj zeG|~@`;2Figbgo_BgT+B;YM(%RqgXVSIalGTdBJov#6KKjB7Km32+`+k7mrHdEC{lP~KvEu6L>eBEC@nLx6 z(&FN?&wk@w?|RqF%naE+wDuy<6-tY;M}{`J(W0qU`DuqtH1j2!w*0H`2YCA7ykSAp8LP^ z$8I}(`0(1=>iqot;X{X~XJ!I8&zyPTd*6HR1UgQJl898bl&LXPl*gTt9(L z<#9Q)__^Nw?sxyxPyN(y{Kjv7{p(-SK>R_NSlv z)LY;B*6_K4VblPFCq{X^&}^NZ=J|utsDTTQNQy!fI^a$z**bxVUuebUdyS##?F9t- z!zXe411DxUw+4ESp7Y~Q3ubKp{z$L%2+n7S^zOd5MXMF3&Ab9s1#8~^Dy zfAc^8{_pn&t%j>S(*x~f1xx37IE^IftmmSp8ZT;-ScW9rUehw&We{q5TLyE3kCdzz zJ;_+SYqX^jXBfX4==IjwESa-^7tE$!VC^~hI>aQz4}S0ivd4euvB##Trvo5~f}lrp z$s^*F4Q`EHiC5wBNFJC>I2nz|i#No1jD+~%vO}Vfy{IEwJdF0J+esgd^wE(ZBS#HWFTY)}o z1E(l(OCeDJ;d>KtZN!p&PchKm=>VSGbr9MiQLq;WD+oc)9`?PzyJRCzd!t(otX{y zeC%T%`|yW996~`qjpWrP3;Olnyc&sd&j&rF`_?F9s8J5w}v zH1!a1Vg`@~sa9)BoI^ut!r4U%`dD@+8VzenYPI6Nb7*ev$f3h$&!7MGU;p*gziZH# zhNr3-oT9TOL6`QjWLHfG58XAjU-6s5U!nm~ktW?mr?j_Q2-LPl{z$EsMO0719TlXe zNdqDAMeDRD67LV@@Gzs^vW`}roSYh@Cl1UKG6sBQ&9;@OcH2C~dK`zI@C1LSxH@0l zs`xk9by0xf?|Hs&?q>q49p!T=(hY5Y<)cVSS1@nq(b$M=xTQ7VYsU7#+}!JqAHTl1 z*g(eO6)A-pe-a}rad9_=GrjGDyGxuMC6*9dSI`^w`Hh=ACNy{gTc)~ULyJfRCDyEI z0iotDYL?lVUUSxnHshFv8J}|Cz=7LdcRWB58t^20Y%5)7^s)&UjT7Q8We4!wg)u}7 zO7pk77#8++5rKxUVswb&9gehzk_KPH40}%oSxpl|J2 zDkb3IUQLY)(873 zg47$uQMW5$VQ5mWPw5;|4%Ij&knR{1dpmx{g) zr)tzADUf}-n0Dd{=pvEMJzHS1RN}aV9mC;Hu%o>55`3a2wpg{OU`d4NjcAbA;iAl# zt*U6#Dz?9xO^}dh_4_l24;|_cCQ{^|UTXTBFXb=ku80`3-NPEZwNk`75_o@GLL>dH zRp@HVnrv^09Zi-n?s+7Kt7Xsl17g=jmMs*`h)pU&iBPIxk@#ht?)T;n9vqH^X}~?S z!&aSfCTyM7%%3n6Nlqgp`1z5d+XfquUa z&=^*_r5Do_4pelS@$9OId0_47l5pWtJ zRKSWBv0S1d8_QRP_Mtq#?mtV|jEbLg-4Q314|?+p9tcAkENoEmQco}?kBSHkaCG$A zzGBv+PG>#<;mq{ZW$;x<-?4$osmXq?C+4z^tsNZGxjmpY z@{M?MR*^&q?_Cn{K-dJaY>g!S4IGk-EKWz#M~9Kx(m=t<3yTCL63ga}3OzYg(%?KFnR+}Z4?9TJOw zGRR4LN5IcDlLIc z-Thh?t9&EKi*4hDCA!U?LZ6}y%Qm@2Ozz>X4E=nuu+c6a$kJLZ^F2EXLa}rmOl2oc zbBTY2*v){gf;ch=se-QbWVCIx5Y@vh_hUrSS~0Zv^qJ}DgNI_pOx_UL`ejZiIzLgi zswUef?PTq(HSm16bh;j~zg&BF1LGBU-~(qo;;u zI~>&Bc9_9NnsM#tKa8?9zVl@-S$6-n49+p)v3R`F zEt_-a-){Jf+BlSKuTZwfUswd2`9hbpl&zyvbUT|VB^$AS{fKNcC^Cn@igG|N;1&~x zVoy`{=iZG8ZOsVC4I#=#iCN_zaP))o4Ool5ii){8uU+J>S9o`uw8KlX6PJuROrX{6NU5o_Qiqk7L|MZcs=$6#C@jW#C#mP5!*DN4XSoaz6G~ zu#*OG%$Cqln6um4v3!(ZF3qq7Xad7fID(eo}v`ItJp>S+zDh{IP_R`|YEu*5a{=s?C?ypQJ!~a4g#bf;yY^YN%i@IFOi-7 zECxwtWDAWHMbh}xAO7U(2T(n z;vzDG79(mr+-(pEPn=Hl)N1qGvAsKpl9ffI4(Sr$!+H&qt94x%03P{h349aashDvV z5@rKqu?or#CM)P1qw_|*p15?Ia1F^4im5`7#=?Lii?|)i7vpzFIf1TSuV!oLycW3g zpuA#h^hX-@>eteVMNCFf=DH~S@MsxBt)i6XgNd(3rg2oHdF)m0k-fZ& zrHMhiVyivtmA>FOD%6?jD(z|TSnRBjX%?atn!FxM<+S!$9n{7g`3PH+5lXkbY@sPs zb$;(oiXtm029gp%_P_$$&gy5su1RB#NB098Mynj{>JWbjnghm!-I#AT-5X~JxgNB- zutf~IoE06Ooru)0Wkuy|=ViOa*Lv--XDi`lw-zvmMu-lc=%Ro!Sxvj#jXq5Y%1b5F zs^Y_X4QWF$+%-O|w0T3KNt@g_&Z4SX+vzgCQ&CmPPtR};CVS4JfEp(A_-G(4Ak=;} z+|l-a=@{HmPY)>Mbm{D9XY6~A))a4-UuR#ck%o=fj$A2q;nxTrV?kNb7g3~M;e2An znTxu$*|he!KJ1QKLPJAIY(Yx%aZ-^QuMXt|luhDiQ-Yc&Oj?<;;;>oY30O;1R?x}r z_~t&dhHz(%fg!sBz81%9%avvcJtY>R9;{ffp3Mis=*S?gp~--gmaY&9+cw5nbT0M_Q*?nya|^`)I{dPW-TyB`x8AI2lGPTE!YEURqUE?+K2tPkY^N=}-@nditVt~<3}gnJ5W z&74*aOgViqxHV`MCqA81A{u3WBd7gR$6PZyVjVYyXREh)VvsB1RvW{~mZ;N0WDx+Q zeALsb>sjmM!Z{7KQ%kF2&olIYvnhLjW!Bas8^IL1&5@^W&bdL@>H*H|kuwM8iQ+u+ zcAnkA(`B+dme5&z+$eL)#ALlD+MRyI$se1AHvnuq6{U4m;>n0*K-%dU8ayJEs&K-2 zZ8gpZmWufqZiPoL%d;^Vb!1vpW((Moq`Zd(6pbO6bM1FICd?`{YD3O6p-9_8a*J27 zZk#%z73(s4VxIJ_=K;3AS}L&Hh7vS3mpW><`md$mm+cKz)YA{`Ugd}s5JX(Z?gW}V76jAD_H37 zT(fyBaL=yW{XC&~p|xTK&8NrRy2+Tt9m}W@aVGAx^K_=jO1=L&y^O4RQCy=5p0dl9 z92oW7*)KOsV%xyWE+o6Z)-T~h?o7%T>8EjGMsiYXvufj`PF9;id&?9_QEkGwlg?fr z9)5FIr$kU;2RK@^nMbzZS`|xK)(2GA746^Y?CeF66YD=WV7&jS)r5j&})*hN9V;nBAmAp*dy6=;3G?eTZMH zT?EHphjd75sX6g8uCA_<1Y@J9<$F?vT=yQ_D!{3Aco$+q&Al#iAX{!Q6%rD437?`| zpHVQa?X_GqIlC83kfjGbRo8xL22u4$WVE&D!WlaiH7I9&`zALjnOkGAwMA6cau(KT zP!uD>3Z9%dHzke~a#IiZH>FKzGOpM*TEbG3LRgNoh12#v6VQ+UU33A3G%V0KJuRWF=4&C*S6E}6FV z`dw2jo#1q9dF!{`YynIeK))ti5HweqU3X&lF?s@Qk>`y0CmSp(iBiD)X?ncC3~qG-}d2rfHU3K z#vVHDf6MURNq*y(T~{l*~R3c$IB4&b)JPs`~`B6J#tUn?%6zr z5hCtHOlZ?wJSehL;kH~XNe2<~!&yR6QE5?;Bs9K4r@1TJN+;xOVV1tiRwg-n^Ro7~ zuE^VSwX;tbGYUpCp~q7&^A{BvJ*hlV#9`~N8`@6Sk^pQJE&7UzJddEB<`aq@DZl>NB5$V- zi1?0p+y$2Ns`jVGU+Uh#_ zs7UhJRFvO+re3DEyNH- zL!2?Tn3^}JQBacg;+}{vVCrlFR!XTA3G(Y;%LngVOy~@tvra6I2`e_{()g;>mvHuH zwTz<6Q`?Pb3!9vNw%zwwvPG5G3<85F}6%2paT zY^Z@VQ(~7KkoADGe40H3X~F`SMUmA-Gm~T7c<^a?v_MK5fBlZ4^W;gbT$|n~QJdIF znmc(~WzB6S3bk`D)mh?jvd_&~xL?Pm7jJKGRc;nUjbN6-iN8n>O&$ywP;4WfSWHGkQvA?qxD z(P9^YUzd3|LFmlaWn&(rFI#&}Tgk&oNP6TID`F&QF`y@#cVVc81`3jg6(7oGbp7SN zrE#WH6{<1&NStTuX}B3zfI5ClXsjFFLIPXGG2#^wSwS2zhUa2Y;0m3hQm> zipDXn*;XHN+7o{ZnNt+Zvzu^UG^;gihrZr?sYAn8+iSAT4W+fLw&ICDqfplmWdNAp z#+-a<-l8$bZ|*`&=-+GkWbC4NrbtXS8zE%Jo77nnt*bDLd}o-A{*?4bU8cUt4efDa zqYXRY%%d1)*3Zf~*(T#n{VQP?CiP}vKxA0?XA@&WWBc^Df7vo6ULIf+AC}6BXvB;` z@nx5np$8SKMsXWcRB`RC?zGRatPV2V|?r24uA5KMhK0N-_E-r1u_-7N3erJPd zJ$XDjXW6azUMtHh*REY(URr9I0I0rtp2!nQ>P4M2K{n>MLy}UdtBP=U7l;{8%G(oo zXqPhie*Qf>>w$PE-=Z}qD#KTtjEBdMZ}IA@ul(=-^$(XXU5d&*w$y)C61&Nb87q|| z@T_AGb8EE2+jNUlQcWx5fZ8nX&L!*Hb2()805OuK-F?ohll@++lYUv2EX(EcnH+{M z7k-{TefmA`eebE$r;?lCS!6|?cGlpOmi0kNk3!uJFF?l zY+J^SrrzTH+sXJQ zbj(zOPiG2lga+DhckvK}WO{TAEPfL9muI7_QF&a*Bc z_lS>(MHJcnsKRdVz9qCeYgmhY+Ay*eRYsyYg>X&{{H$HF$2>SIgSGe7=G7EcZyHx4 zY0PZO9{O5rT1vtg;kV|Hm&SFCV=9}!FU;AqqD^7&Fj5s3YujVO(vxVeo zrCmpqZO`VN+w9*^-k#%O^SI0HY2X4!*4RvHHI4qcoaJ)h8#Ley3q2qy&0X1HCqE4` zJP#Z~B%Tw?w#DrNF(bm#zkzARC1do$8+{a3(FR{S;6-a-wP`wk@HyH{=$fGBtl=yr zCri(^r~t5y=(U}OB^Nwfv{>zJ?kEUT_@{j;92o*qSxxHKysWf{F3;v3$Yb!^*#+Fr znqzz?mnw5+oSmzDboDjPt--_Y7H#~VJ+4TCAe-j(H>P;51{Ps)GG1xLLW#`EI6+9X zinYCg{K?i_aq<(+K&zTe(zNl4a$N0`WByl&@Y`@V6N!qiML}IDv0PL@Q^AB)a}8vp z%*sJ*D^pq^{%cQc)S$>+b8<{gO=+XRxoD*QQalRf(i?VvQ^jf{p`a*l!Dp|F+PfZ; z1+-gwLNtWg{tUaY#=ffjGV*oem+Il}3GZ&xDjz149xm}s@%bk*BE1)WDb1E(|cyObn?eB{3mCX(L5u_c3J^`zjisJj>A@`BX&h z`un~|ki40raOp~9BVNCrg_a!hupn8J=#Qn-!+1-+XRqP?+@j;A**g9ryFko%RFX8y zDO&uov!hNK5(AbMeW(@Rho^u+KKV`kU++dUu2|YhnALgsP6O-wew`mJnG+FvrRu;% zYoP6DvmmK#5jz&ictigweYdbc7XeY^zeWE<3R zypbM4zA^ArAvT7#9AKTf_bh#T#cL!`EEM)gJZ1N9|5|6>7YtkRC%|2{Qn4s)S8%}nVXt$E2CC#RW>P|9hp?b24~eY{N?G!`fNsLq>Chf)^8UR5=MtiS=kSzU1VIw z3Jsg&?k}?hw>U)|nQ7oq>u>hYp!8*8 z8c70w3`H$1a|taehEi!Mf_buK`+K#sHs4cQv+b6USHp;D6Or@eajp3DY)VZl_=eob z3Qzw|>Fmx@sTIfx$Y%jSSedOvMM1_gOP?CiL6MHIQ>rK1Yf`kAY3i8S0xwTks5zfI z^?xLRMynXjN}?}nyz;hNLTuTxzA}#k#m`wcn8DuFJjIPg+(zlfU-v0I zzA=}#09^pCRO-UMKF+oe|2ONm&vi{kT=)k})%}VvufkyTDj;WXeqt_>INYS%DRwg% zeNS5FrN&0s#kFKItH!Wp{a#HS$dI-4wC8Bevb?=(lODwkjjzSos4VlJykRP{d4(by zsJSf~1?^!qwe*7#9BLT|etO$Z%xLVWZQ{rWz+W@DUwe0BdSQj&(s+%Mwj>6tm&1~e z6dv!a4y^-{Mww*AGwpy=v#5p*F-)udj+?K%(F`i*HY|tGGmF>uDtSg%Y-KLZ%@}dG zaRqDv1UsDO;gWd2q09nOS3sNmM7=vo_5hq4_4h7m6pp8p(m6svdwQE)U+lf&#ZVP{ z0Vu;8HNbl!E?XF;g4yzXsJf0YXME)(ke$IHzd@XETkV=eSamk6S8-ji`66jRk$OqF zJF%~V7kTkTjN>9+^5=<6#C(n?2Q7M5o<>Te8_TwYS$=QCpC49w4K*${bmpc3hrVs8 zFtKf&oRavqBal)@erXkB>-6AC3<$;WN&}=g2WflRQD^eRpzra=E>b0NW}LLAh~wsq z*v?WC)sw2O2x!xI7=Nb%_(p<4Nn3N9(LFXGVNAKl(m>93XEc&#hhjpFN+OYiQISBD z4z;#mXLcw{T^RkrTz9Us3QO>kJwN06PJ~WV`SO z#=D5P-=qygOLb@;vXr&+PyEd0l4}ozg(x*YIXf|4o^3^y@+ab(SBeps9 zXb#xZi~Z9b#q-p-2}6FxPGj)ExQ!nEWVQ9P(}0?qlNcx_^on9_Q?8eJQ)E%lV0h4tJjYM!Lg!J~PhM#Wh5QC~6RVQ4hwlenNb zohVL~$!6hr+5>b!K0BT)D)}d3?7%7;MJ+wso@mxj{7^%Bbi-cp*}yDo8?)&_XIUR8 zA)ZXuwm0j>dLkQzn`agB`^$TWtngSwgLLj>LpK{lMeN^Z~TbDUL4mXDN!> z1xtrQYhp(&!$_y(Ohbm&>l{X@x%N93r4>s>!{KcCV2}QqAz)#|dxlJemJ8U0m@t~J z=znVwpg0UPB>+iHDTxVFx4xLT&wkBzwV_Aft+Z}V%ODBni!p3PP{*O>aC>TCqhKGg z6_$-MG0lwI4If%Vi7~k~m@l!V&t;Q zF}PzRyI7r=^5>w&GF-X{%oVk=rAYQyx{r4rYlQ@To6D|YkHbmapmEuWxFFjviMEyy zwxngmSuPr!QtX#{ps?dg3?|pD@pw>LzYiZ~0%og0c9A8EBz}t;83?9=qfzO?-*@Pa z4mt|4$pJ_8voSxEczW7tdkT8%29=S1LOY5UBVJx56TLPq7cG|55JM^wjo6CrjwLkm z6BKVO!t_$H!>r5T*UZl*V4cF-o)Ks~-Xk^7Vy}-)gkrN0 zIL3b^WNv(9Oz2~WA^wc_6EDJUtq_SBo~v+<69V7l5MEOTW@VgqV*cbIt=k$}LC9G= z&Aj{Tvo(n)Ftr<4)^h_yBw--qmn!!?~U`feey2x9eSsrbjp@(epa2tYy{` zeX&-CH1+xeFvBor4Y<>!`+W-A@RD!MsNa}G2hUQZwM0s;wYn}Xl|M!^IA%+z?HqQi zviKre(!w4j>UVY8D?5ylxc3YyQs1lDl$yz!RzCoo5umdS-QPvsJ~iT*vZQt4X+On; z9JH<%9kV6Gwu>ujbL~SCD5iZV&CS+=$@o_fktn(iywf}@{^x{~_Tqeb@$xI@h5{^$ zz1bDnH0wk4U;iu=jbqdvDb5rydXbVxlTC_bcS$3jHzHMR=(ri=zjF405UO_Qv?nYf zXDm+fo-qc5;{>6W))To?ks~(D zqqs|H9=S7^aZWO+pkCXEJNUt{RXciPHj`5Z(m%Yq$g~#iCdTV~#E!*qfOPi}KzbVI z4Q?My8S6a}6B3p`^*7;+UySk6V^W(E=2u1ZrZ5tJL&jKaBP;}SWfaj38{rO{*glWZLcCC8)xoIXm=;g+ikUqMLXcYNG5N`N6tevgnAzJKY}JBizf`E2 zY>}10HNreQ^=vFwPjob5-Uk@mXq4JF!?ZeQQHYS!PN~f$b=J-De5n}zY2>HPN7x1v zd$xNTgrq$J^tluu)wn@UkcVJc+}EAStD;O@wP(eZAWO|=Cgy}l%oId)9v-VSruFP5 zb@Z}L3nepX+dY0iUZ}=8>N^;>`(PIGpiIx6@;AK@3*D2*G6fHCjBJlO&Jl zBbGF&ysQ&d%5#cgo;|TylkVfqyBtNNW4J*mY|1N0Atx#Yy1IlmBOOe2{Vb2A4V>W( z*>P2f9upx*c`Rc<6bDvWg`~Y`2_dIMY8MCLL`C|^_b~C!mO)p=)Ra0YTg`8*DCSPD z0lshx#;3>tiW;5mXO@~u!;jT~1d5`H77yDwZIEQV_n#$9MWMvpVU?#Od5E{7NTtS~ zxLhX9j!beu$()K(KcXlDub9z{nBTuOI8U+C(q@&kFpQUOZVZb@J!3XJxjs>qLz7W9 zOnNqhnr-;vjVYvImlJjI2nz#7dnP9JBe_>3>J#bH@sgt3XbA};YA6C5Mv}M=$kM&fX<^n2e_%$C>be;(0O?Sq*$Uxbg&GPPaTe)JcSTR)tkenGkFcOK7kx zB)a2{6mQ(Nc*v zs%QynL!<202W|Ex_`1$VZVV+4hZi`LCnR=>t4rBQSNmcb8;z3|GD2Tsgi}Hy8a+|E zf$Ywj*UDv9`2D<{b$?hw(Ay%#GBn7Qk{Sdl{u)S;wFta zdiJFyjK(lrL_ErvG~GudiTehLgPzz?OuF)dQXD-d`czcDF*?E9OwzMSdC?d;=cQ%d zB3i zZ82lD)QnAACB)u)#46gxC_<}ME3s>j*wm^~wJBA5^<_39W@}U_L5vtJH5#inAMfv< z@IBZ0`CQL)U-$LAALobjWV7h~$JfmhnCcsu5gsq|Hw10Ce3tL6~QJQ z2ykHq@99f=&g&Kn{4+nCrhiQ*>I1$1j4g=8tXT_hk1bD68}gUCCG7s%g5rreyz4_0 zL+yW5J~B2wtR)+o;v*e*G;&q+7C8hMU5rk9*4p+PUr8z1i^Rk@DKd)f%M=FI7;t=* zv4Oq)eu%2NngGv%H_T5$SLP^$n!C z=PL*n0kSCWYH??_=tu_)->sn2Plku&oJ85I4SefNidA&OWJC%~1U(xC$!xx__%1o; zkzXl?H^M8^2iq4E3e(V}vxrg-;8`kavYvi+k%uvjZ@G}bS89eJ4rSA~I|bT=)hQFp zuSDQDz#0o<^J4J=S&?jX`u=E>w61dk+wot$jPILog8XTNGn+O)SOB9O1nf{l@Ms?H z(cuxfq0OcXO5dTj#`ag5G9Ai3UKCCQe;JZ%oM*iE%bm zaQzu}tO{3GO<8VrFD%qci)oD>MIq$^B zM?K3J=?URCn37y?h*K_Y3B(Knt5pnLJ&+UpIq#A9q{r$li{B>3s$BBJ3xL^J zc87~;R+B;=?H~b9KD4W*f%jI#FD1;!ZJQ_)=>UqBh_!(>7?*zl>nG%F#3ajOjmC~e z=_Fgs_S+4~=^f6};Cz!79Jm$}<5Ye}jwt|&(6nK8w61Qu2f$M@^?r<3&+b{CS1bgs z8a_bo-iS&rFmx!iWLPYE{Gc`RGoo0oE!GO;?p{-ASMu~T)g#XNH6htd7{MyDRe3NyYHH!Y_J)k1)2$Con$FuP0%cMVJV%tO1u+B5HVSCu%6f!=J#j9}~JJC1Cu zoO3026-Q3J zFu1svA;VVXksmCSxX_T*DOxqucHNIiZ%_~_XP$x7Cp3Gc!}i>NkIJSkwE=8hdrOCL zv8GiO$8~qQYc6Nzd=eD$Ue>hz@w6i;mAu;|nZ^ZcSy1f^W=DxTYa;q{90eZguw>!1 z?Ov4a9OIxEtugU;56?8`Qjcnh27*`e&RSx*$0Y3;AYN9^lA66&dh0oI9mYZ~0GEuJ zyLrlL?x|LR2T$g8^?i>u0k+Q}5k@0AN00J9Fx_+3an`j+(vf^>YuI*<{LA-#d*iX1 zi-*Ukz1auh`ylb2ByyU9&D;22QI~p+Y+QpV|6R4=odi{g)Tc{o;~I|ubl+l~WSQ02 z0FRY`j{)s-frC5QJhSD7_!tK!uAhNrOMm02YierB|2cUWrf2ohO*X-auqm}ottCL` zz_Rar?sIic+b{vAr8Wb4uy=& zeZR7P_M(CUh9$Sa-B!1mQng2rhCSVtCP1}1{)_LX#he-z%A@297%cMDdVVrVyow;M zudlx&l(aJUAJclVnW^P%u${ndnfbVP>4A*dQWw#;rzIb3A<8$ECeQ%(W&xGyE~@0) z43U=v=6^K^={-0hIN=Eh|IPq)BUNxacW$XpfMBeoBEP;CDC{pL(iMtn9xSM^dQ-vBSVfcL~yqaMcZ5Fn&^oAK@Swc zN$rOr1LRed?CO{rG2M2%sjxmxd9mBSGNl+dg?+X|hoiH!!sdJ%C)xCsH@McH_dj*vQ^Pr?`Oik8W z8a?GJCctb+c6D$>TZht(^@l^3SmmNoYd8)TQSgA^R65|(R13lS7+kaO@By(K231fX zG~CwJ<-9!OV(OR5<@AK`B69-6zn*!&$ifP=LzhzhelNJZmC}GBx@4lTowy<1+x7F`k{dz|y zGVV~Wfh`#!|RfQr7CV4Mxm%C|BY`4roo9xSpp%=)ZJN&Ua>)ShleEhk_BXQX&J8^2N4 zD91Y;ql$Ost73pUCk<1GDT6j+B^=gE@Xu@GK=!F0%%^QFf((voyu=fM2u81h1k1%$Wc-b)>C!LFh0ZTCaJ*7kOaBAS*e zJ)wL;tJ@Rw`NH2q<$&FOc84wmVP)mVkGWR>lS-^Aw)RB>GGzCl=z7lbn!{X4b)iUE zD&Wr)Pr!oT%;sdJS%H#l!!TCsA3qixnFZ4Pq-<8*E`J~159-5_%N?i|b}1CTJ5P&t zQ^1=*dYHn!CpolaWECl0H1Stj%U>w?H;=I2BxET8Z?I$NNOBVCvwM?@wh+oF_GwR6mVb=eOf+pYdDJX^C-zKM{ zqjLz|zh|a?nYu+jjQzFSxf^yJe$wNMMmIGD5qeLF=;i}<;|NRgq#PKmo zwso~YRJTz=SuHB^@zsw?*V$Y76_^F`)EH2fw)o^d4tKA}*3+be063b5Rr&EAWU);1 zuCu}o?PZ9r$z92QW^*)(r4Hn9Zd{l5=h%B90(_GSe6WJYb1$)LSST@o&_U~8OR#ZR z3r2H#V(`V@U{UBlho$}R^I_YAVHdbYXAEHQ*K)(umxCRz@KvsB7Pa0}A9miL6M|RR z>bo$seE2p_+bj5_FnE_?3;avB&H;V(r@B65m1`Wb<;HjRJ#M%CcOfoXU*t!^p=)4J z&+E2O;<9EPLKEK~7_Lx+h$RS;vt}^yOu+!WbR@0ie5bMl2c*LPr(VKaT zKCK@wR6w4WXvbw!73kk1EJc$0{0$lG94idnF}qsJJjNfaqW`&}Z{H3TGH87%wUGJe zs!deDg)!K&TPMgB(QC&4RmA45MKa5ACtZ*XtT)|`n@f^^%wynKXFy<%Vqet#dqbA3 z9cSq+!TMnwQcMH@fICX6 zVjq1G;E-3O?tQ)^I$o%HUdDI1u{N9;fJg5CeB#jQySa}J9S=Syuk?M6yJWwzWxSrA zo*@IFFL%6na|=!jmQD+9uwjrE1}4q*q=xc77{qADL7+pA+MUWkakOHx58%r2)=YbQ z7ycG^39>6ZfPg!3V8_*I!!G8~htgxi|DKjD>k1vWABdA(&9%BUdS#W1wU)fY9Mb`> zw$N8AztO~);J=}(OrDqVJ)49HJ}a8TUNpi?DtYPjpL|aCZEDxts#>_CrKS2FE09;& z-&Uj7yij1Smy{kGPS8hOjpe^45KE%b=bdOS1czi4oF2P{qI;hgp{hV%w9XJwSbj^3}!9MFhPDn)K4;6AD9+Ld{>|Tb%2I zLUPiz9+8@wi}9PYulF6UPfWZ*EbIAtduKly`jAJG(=%oOFZ{C)!tmAZ|b5W3aAl*)@|qZU!ueFVs`N=_7keY0BgMreo5)#{ov z^Ph=n>l}K!Lr>;rn~P5RL`}KXk)edM?`xhxgXGdK5miT#&{?jbA!C!HsORrF(~_{Q zYRo>#qbn;~Rz9|TYJs5XmZpx+pQ}um-3j~4==C!FRJGHe^=f;4tm@~@>Rdz)#&(VrbKRQ3ViN>|bU0S!J1Aa&`_E>Q&jjMUsKr@-nhc zXR)o`*}=noQz-$21r{E_@rtI>1~{L^Brj3M&{Zs%(HqmiA0r97NPz;q& z3cEfuyPo=MGDrg@)kr{aI==ESC*G-=s4B7V0d34t@YCC7#+JI-nkD>_qSdHlFo9DL zKm)e6sh<{>LU-GnUyOg*OY!PU=TFYwr1!6uIMO5!JejGg9oQIMfFt14!ep>p*&%{m zNi#%)V=vy7+hqJmlS!MwQrWIHUgr#(&$VMz+gmF^oYFdK>rF%rYiEd&O3~I#y+enu ztE(%xErtJti^SC<)YX||q1Fs2h`Y*m99$lBdA-KKB$q3;cxWh}Y7!)Jk;G*l;RFzo zv};2gea*^^|4oA(EyAkYHN`xafL~0Bi;Q&C^K#J{zy3&0_<}Uq+mKaBd8^F`6Ss>R zonv~K(9hqt@}Hom<(BHkYBo_E)3EUGthcrKg+u3M-|#4YctGRftL4~#GgLuKmy1N5 z3a2W62!Dg_9nbbMF07Qdpc8^apYgi3zTf*_L{CzV4(FqE*khfCndL7G!rhwcXWUxVXIG zR_$nM^Q~%UTSm@%)W3hP%#n7x9WQoEww1Hiu`QVB^-VrWi%g1JKm9)8dkha5xbJQB zI3p|J%S{EJwtGKE-c+#I$A|jY@8A7F0qJhcwV4-=hTG=k&sZFOQ69?+Q~P|2Ow&ow z>CS18Tp7Q4-bQS1=``jPyDcw(!|4yj-|Y=-kBm_Bg&sm3&VG=XkDl#+-N&>?$1(Ec z6%-T{7ACBj2d@7_NM~XbA@sc`uMk)so-{@6r@Mh_7)T7e9SjDuvEdB-P+g5-z8un5 z+drE@^RmYz!r`g?sMtZVAEKW#Y1)IV+9=;F))M(ykzWlTb|$L(7cl-w)^B~)c4%v3 zG4V?G_z|7auqu*>jZ@!GuU9!;E4n@{s`tukI*RF!nSD3vPG}(UTz=ze?4I0bu!(=4 zE*&iq=j-8@#K9wU|8dldj*fa9i+go*K2M{%Qv5SftOQn6TwLH@JarJ;6)L7R&SzRQOs1C?q=Rgv4H zXJ@`>zG9BjwyQ&sW@^>MFx*@LY-Jy5a@yju8Y_(VHJFL5O3ba}C`P7<*#%*_7K!i1 zLqzsU^8`CyJ6U+Nkm{<1eUG>&c2xRbJZTqF)$2{-yHf3%Wac|>4GdnrrrS&S28CMM z2HlC3lDqOVFTJDkV|MnV_j&tx=q~V@2rLS}I>pUG7K#=r94QEEQz_PT+B+?yDg@$! z09a;3f-$-mz7pnm6)V9*`WwA}552#a8h)`cQI^kk%d0Y-ix--UkIOBY_=?onZ2WSo z7tM&0W^<+T+RAxp)#f}*h|6R}QgDK^<|g582pe|?qr11*CGA6QAV>Xj(@gzn%98Xk z)~Pityt-eGQ>;lYUf7~4-1&I;UW`mjgX7UwD>YI15>#Ue-_{7EQ~c;Ukmm7~xPuepo+$#T z+uvhd6jn;KYoSdA^R$?R{8pAkU+mwj@ACeCF>hP8Gxb0t;~TqS^2}EYRZ>$e-W^l^ ztMYn(t;(`;xBGaJDD!A|AaDOfkBVIv)Y#ON5hyaxOlgJf(Z?k0-{HAXVxm>(ix66k zWZ3@TfYmaq@_3=ap}}!G2molME{{nXq`$F1aoWW`nnG8pv+6pMXi!NT#plpN7pzu%Ac3ZxkrotQdBze196kHHRe+Cfm7}+$D1@y zK;JWKQCEynxN{MYmBLHy309MV6RChNhp!%Dmhf31XkC3tXQZk zoabbrSiAr#h_n`~_^(H|*&4sQj+wfdVqiAIDo!snNyTapxk{s5tbyICzEfX@3au9@ z=CKw1e8#VkY2^BVrLTgnR%@B6GShB8ynF|0D>tf04>{TvtdOR*1gQ_cxk-`|$i+3K+2-W12NE9^ zXS*3u!4uZ9WO8Yod2_JTM8Eo&DA3O&WKi}Xs$gPEqYda@mW>7ddQ<<)y$DH3)g->} zE}i*pURg&v^6^z7NAjpQ%C`V$SaeyxfUmvmdIsLw8ZEx%s_ebNTu2~}$ zV)Vez$^%`d9di>;6(NF~r%H0u^0D2l&v6Fgw7a|hfm<3l9b|c+ixC-Y`+2P=PnnUbvlRhWG)Ef&@Z?D|1zB)A}_*8sYpU5{%MP1v`{2B O%TU);r%uZ;>i+0p1b25R#oaYXDDLiF+}+(BZoauQnIu0lXEN`8 zvY)kbB9#;*Q4k3bAs`@7q@{i+LqI_Cg5T$VfdW6X_ZSF(U+@7xH32FP<^XpiXEO*< zQwL)+GHE*_3o~UiBU4YO5i{_IJZ_|ah^l(5oaw{yg(4FMc870@q_w~p?qGQ~|=34wv+FBi}&h(8Ag zehyH*3C`2IdYM!E$IBE?TCSVenx38P#Kbm-z_dT!-0q{gxVmw1aT%{NPbv&bNN69* z$jO}?y9pM1gAj|O9wo(S#`YEb&7QDvu)&We*fe@3L6uX`QnQC0PDTRc*7YOI-OXX+ zx-JBl$v+N?+NxMiecP_s`>OLcW_fveG2-kT`^EphW_WLJcGg~JXXlGQ1Y~u!dT~jq z&3Q~*$MR&^7{t{IMIGK&d$vk*TZ;_sl9H{RZ4k7#%c@7MU1V)SX6EU;!^O*sSFPsS z?75c=w;?AV9~{xsh-W-EHzzJO)|$yVS*(uGD+Se0^43*UYk5T0Tjcv6ANm)}lasbx z2?-c@)b5&wm-_DG-j~l87ZNpG+~RtVfVP}}D4Of{=gjSB!~#-9g|lmOfcOUgyRM02 z{E#FrE)I0|simcf`QrIKc4xcw66##irt=*r_Nk{h1;AyhmwyyG6En{J|E~iJ3CEi> zX8Nel*~|=0KN>wH%zcqRBRIiCwy{gnv7&N;4@|EQfH*xq-SnO>RgiRCEiNuzS3ca# zAMn1jR%~&v%!wpBBH%R+$;sL1(8wOVB|kojXf2-X5*1as;}BD9(Wndy4bPOK{Ai!) z^`_%4C}=s)$jBh6Y;@itseDNC9<&AknGs-gOKcEPNVD z*9g_qYx!&j0eb89N&y1{b_G~BNH=Z8D3}yl!xsp^bU>p< zjebY}dXdKNPJ>0$-rgQ1HPz$I<7cUf+EVa*jx!qgdZLiu{VYhb2;Vp`;u_Zv38{KoxXAY-kLk2n1#D+hl!hXw=$*kAkf&*Cq=70g(M zh;47Yzi#@v`=Y^jPJCmaPx4^Km=i|3mfS0sa3LV&mrJ0s{RXuZ-ksO&sW_e~?2wb5 zUSC@CX~*N3qDs%n&3#EdKO^cs$H86LcfQ`_aFNCPY1u*F&eZWT+3K3f?Lb#kw)ODj z@yfx;8ArmoGCeFsk-)>xyU0C9NI(!v!ucBrZCMSdQKQpk zzZ-@kVyo!>nYje)@P7R2nz*{#8;Z0-tV(7X#x-rZ@oCuCK16!iW4(9+SPQup$tW#7 zjKQyadwYX|im>~Wo~)*|JZJ(RF=`g)vADR{RNJUrK5u5WAK;{llu^5M*P=ep%nw-PZ#kFWs3 z+EeSfGQG}xJZ(goo0F4!b#Do8Y5J)b zi2;{U6XFSf7Rm<)8`r|z%mg~1zNu-JKznR*#Lkwo?mW;gr9Kwhr~lg8b%L;_E3UNN zbL=38{xHF<`C%9h$?#&O7n4W$a%h@#VVDZRn5^Ee#@=u$uY+}n+fjq{3ESFHj?djbRd z&wuIbcY58+uDiCvpUwYTuJ=Szx?79dSD}_S@`k8$Ib`mhT)P=bsp4bsh>K*h<{ybn?g)^XtH(4p{}U#lcMML|JWZ{NrK z$Vo~vExVw}^*U)-{Lm{@zg%mu`FMN&CV_l;4K2Q2rPGD_&+fk<6F?wTGZcUXi2TxK zbA>kak$)?J@`jvSzD*-ZnfzBr6BDw(XirWF>xl*$8XD}YnZJ8E?d6FE_x1L{1XT&X ze~8WlF)%FJShHx^*=LuRTly6EoO*c}7*1(&ePl$+uYy9682BO`UnG;kzaNbxjW>(; zHi&#(>Te7r9uNkT4-alnI05~VM~c1~AVh%s@K)ebaD1fn$YQnRwg%!)Yh53x00K-* z-IArD!sfv!q*16r^`Jonam0b3c>>X3St8)@eFNjpiOuvC<Eq>s?X1`_n1HOvYzyJm50(`7k+pLx!P0GS=llafE8ypHDPDFH$1r#gVj9_Ux`SQh<%Z05Ij zL80e`QqIy*`J%N#@tEDtX&;xLaj>Z&0^R-mRge;Yqvc1{kn3)Mps{8!+*PQX9r zAQJ)t0?Mxl_2H?hk7=wXMi@= z2_G(&PtV28H#9VWuMg*4zN-(RNH`+!52QTkzb_tuKfhJ#JU(pqZ5NxFSxn}zfLFlS zl(65<;pwlL>+2?JvF2tTb`4PI0Pzodc3|?C(UQS{00=g!00rO)9U30IdHh6r6W4f0 zYIi^Ydp3F%wQ|NQ3_R37cJoOY1%=Vc$+)N}{TAo>)YYbSizK!Jq!Bj%jrQs3-+A46 z6&2QIW>lM4rav__9wTWEV)5AzZl{Fdi>`x4!h<$<%q7>_o@uaBQc_4z(dz2!v3^g( zYJ`ei?~LM7%V!9)wjL?OJpI?>cs$m-q1;|v7Oh6V_0>7Y^~jCewJ7Yz@QZ5Q4gxVm zUEkNnDhT@D2rKD{nebHu@eEs0QjAa}UeB)z-e)sMX?R;%&Ihh*kO40)W2u{*mPWmQ zJ?%v*11g)%j*nTb_J%Q9T0AKd%F3G4j2h~C)e)em)#y3V$Eez@Ez2wld3bqSc;Jc% z+$*f?;{pRN5O)31eP!2mrqP7fK#=sZB7$Y-l3&PnQIPMLm>6GR;PtvNVEgX7NbUPS za5bu(o!mrAKX)&1w6Pj#nGs&l)sLd~$Cmw$l;OSk(cB+brH!C}MiH8>j%yHMIB_uw zFfuX{;ew~n#ePiOKO|dh&Sc-DLtRYLujS%Wms=BGmx#IP9fDHD0InI_=mBs8$hAdz zY^u{U+#(^)aW>?Ar%y(dGB+isrERuYItc8icS-rpnkn3w7Yzdg^M}NQqDS)k_Q{F0 zt-$l#=lPpgxJaR=S5J_E|NB1LC^6)956AYY%|fMSZB{(3P;CfxD}L(lO}7C_Z+?Ev z$l6e<4@T|ZBISR9(MZ)e87*QhffGE$sk|RDrhDfG$qQG~R?-N}hP#7kX3o!BqQNwZ z838I5hkFGxclY;oF3x*w_@vcK=6#^IUd#6KIjo~lg)lrBdHFuBZzCimB%7aCzKV3Rzjn&JeQbx2tNa4{{_&Mn=ZPDfsz8s@cRUxqtX|YSSfI zHMb*=;*|7{ssYKd^bKxT&Q~4+A#F`%X|W2-roX6&i9xD5#MG4q$MrIXa?)yh<#R8p5GB70Ros z5~ccME=665c)g%1uuHU^os~U3pYM*@t94s^B<23vL1$JK)wiGK z=5ZS|J375S*l{&B9vmDrHoC>d#d&$PKDa&T>*uUcf{Ax{>C2L%l`~xV2Dm;y>`8%g z4ZRQtLL^IFxaRGtsob=1jL$-%0WJ=WUnv7dJVc|%+U>l*B5Oh?A=wC?hX=l4m~eFoLuqLkOmR;^XgH2h$)=3%JD*7_Dw1;B z`?$wOf6ueuY`ia?2ePr*+W@di^uSQ8UZW2#Sz=zI&RyVnEXw`SGBFf3kCUrYSXK0B zAYxvUoJC6_`g2O&k$NI0Jv}`iy)|NNTR?{I!LkJ+B4XOXkN4!!iiem~*i-0~=`34A z91%`VPT1ks2ZUbi8)9=eH#hBn`K1DQnrd#3N=CRw*z$n;>yngzm9QG%e%gr!;^{j4 z`00wIJM#^44vqVdt@wXh*&IY34F6Yy#ovI`f#oBD>bB(N<>lkjKl9;I*l}-oCK8jz zty}u2|CgHpk~S>^iwUcyJI8%Y1DO6l535oC4`TBWZFEOg89n8&@m1Zj|&stabI`xL+ly-tyIboH2 zJ!Tu8p_8Y@zD5@Hjizs=KzxyV-o?=T4k>+d_=S?4dk)53a zihK%!rn;Is>zZ|s>%V@4oE#FC_U3ecX}MNne+;bb*0o|hsmLDjgHd$3k!qG;tN^a%fd{rRvjZ~M$UQx zIskr3e;%L`85QT|=DgsDV7uxj>+37%11p!3s*xAY$-!ayuB)i%e$$Vz6~e;S%*CzJ ztUy~+*4%a)85jBM-=>(mZ=3g`L#e`0|3+nb6?P;5R99BUL(g|`(m=Rm2w~V|ZEIao zt?rbpsiW1>)&?fqrR8O3e%Z0nuU`{YD|Eu?u;^@sU5q6qCEY!w_0lSPCtYSo%B;xp z5-9CLeyOW#d%?kLn0JaL^j0=BH3b((;Wo3_;t zmFkL$Q$4}(eblP-$*YZiA3b5Q&!M5lwatAIVw0{R%#--FP<(t8sben>2s?F3)pEH) z;?o4-hSbR$zkJ@L2(-t2Lk5JXD3hL3U?|1DXBu-pA0_m)xnCZ9qT`%3+Ubyg%QM`? z{0gbv?(FOWJ105uM@nSk;P7xaL+ilk0Q+;5b{+(}3XRTrrWu!*&fjj!uxEfOsNpFo zwY#4YkIUsTvNTlE(pp|yL!MvJlJ5&g!RIsmUJnL_Z=%7Fiwl5-epIf5Prg5k~UgIo{ zjg1!<7q)~@NGPjXgsz%m;$oalSmldJbmXU-zGx9<)zt0mM`8`m9GaA0V+r{uS66Mo z>&0fVv)2E!6WqyssB#qPBJSyhguSp72XCRb`a&DXW&U2u4&Sqn*)2A9n=vp1cWKUE z+?qOqO}zKt{V`HSJkxB5B(*-z5F`?+IO^ zE|xo1mxj~Ie@Fzly1G6W@)%~~r)wE@p|ieJx%6nYeyd`?xxXS#2Ge`?rca-*fDexV zFWt!4YGzMzAN_P%QkH>%}Zky$0@kUaR7V&rS_GRA4j$Dq@&W zJ8n6veQ${CW&8QT0i+n@NHkxrPVJk+RA8HY)x*VlW(|LRk`&l59>C%H8d;msKg%Ij z0|lq2dbEAPb-aCzgu|R6WI`<@)>G|uOhwkX^UyA@Qc_<8`*s4XNi%o}e&m+R5%?)d zX)IzUmBZobY+?c}3|d%Qi!o62^AmM)l2%Y)9`7yK`RW!^UM>xPr%zduk^UztuEBaJ zDp^scu%G}nJiJF_fL|Y%B`ZEIs>13%%b>+M^yjzoIr{XhA~xHpz1nb7I8tHJsc!TW ztaly`4oY6ua`C(!9YqIHA_P5m|9VU^uWu)V9ZTcQ{9yKZM_Hw!8mMJu^?#*;?Z^7{ z82|i5I~+bX1{qjUF+M)7dP0C1>4e)AXw$GAMj{kwe;w$xgIMl5n$XU?QH;p5FQjZO;VG1-8pmDRCDu5WL84L&|TLS&?K zI&u;80d2HgLEq1P+g^D)J3Do^g{&4A{3{VT)U(Y^av9!ae#_~tgm03>JdO}>=OdWH zn|fVCw}My_aP|J~tf*^eJ@2oV#Vn%rkXMXTIdgKY+rf{Y)A-u{p5nNna zt8oa%(s$NoR2wKLC}U%h_Lb%3fsJRa+HY40({%9yUt8_py_TGnY63R8d&GNt`}`mO z@mqJjC;r+CO_<4Q$^9XlXqLZVus)@rLzu&ss>zm7U@13HNZt~2$%s)v>_?OwNE(gWK!|oee!u}tL0jE0y z(fKtOD=|KR6#&OdEa6NaUzCxL#X6s?4WU582Q<8!EIpASb`l9o_lE1N}xm=HEIOQ#SloKRdgQz`&17b)h_ee|{Z)6_sN};SVspY~TF-t5s*t zqSJZSpz+CczNV1F<{4F&sA8^;!`OkV(K#&F*(ZrA-eygVPvVCM-^RoL^XJeGqP(1( zqp7qs9ha`2-pQ#HdT36k{x752{6KP6drsoDyz)po0!S({vMpw9*X^KE$#|0cix>BF z+^Tm-vHb6u8%T}uq{67j&M6=RTNOB8eA{DjQM)6{_KqRLk+TdV7BU27lMPct9Tuk3uXa;qw>3&4zv zXx*qdyIsD;id23KRfaoj6BW#8>7e!bKmt03-SDTnojuB20>1rYSS0=TM}qX2r|>4* z=e=#|#8#4VpLVqd_1U0UmqQBrBGz-{bdt5;T4k$F*A3igGeoTfp4>f5xnwfH{oyZw~8xt;nP>-`5+(y$Pv zX4wHom`0S!o50bpLAcmhL}wv)H-Q-$DUGJrf42L=Of3$@NFQz<33+`i9hIi_0PsiB zUvOzGXrQ5?HMzn5dwVz)zXhvpztX-uHPwZlln09F(zaD>5l5{wA}Ao#*Ht4fO!oPQ zOu+M9NC;I?mGU1QEn|O9Nl8h@3PDwcVMz%s7L{4C_A7ZBjgY`c?GTCQ?gV$Kd?xe4 zOk}H*$<=f|xN(~5fZDC5ktr$g#y!~*F+}qveP(9oEALEk?rwi}vyt3tfIt>{`mnR^ zNozIEjeI?)YmtV9NFp;-k8sZz0~AuB$~x-SY^a95{ELz2+X<#|NbNA4s)j=+$|bU9 zX4KBF_|I!m`&~A6P-P=@bU^j$lf{~;78hJd?WNZ5zPC3>%F0+xeL0gqemJsDm7O1l zM*H!*TA!uW9!?pA)QgR2YH2mXx~R*@j9%{!x%oG}zCGWrr*Yrrs`Lk`hnqF2mYV&s zQd`}@rwV@M9XGA2sHm>2WMfU3o11HNpMQFODWX;GnGg_MTlJ?(9b+7y$kx++JYP@D zOhl<95%PHg>l9MnE{9!Kf%5Tg{M5VKVw2A~;Nz`DlEibb|JuY1pv}tw*2x}Dg$xe- zjF{WUuMYBhRkgzr6Mro7f-B2`Rr|XJ)Gl+S+lgQh89e5*`Nwa@YFIaiw~8qH)jzA4 zCOJbidgoH%T?E`~3JSl*Gao7I4ZOVI2n-6zKcHwkf`Wov4ktUW-n#f+nXX!_W=oK8 zndj%{#X8~%I8Ra&g)K}?<#IUouUqN@Z=0V&ii)t%6GK9N;GwReji{C$c{1W^Otmk2 zgETmUguei@6AXjY0=s`uK&pdN+|e$0YDK`Z?uG>E-P~qoW@Zr8{*?$TFL_Vf*!Jxz z#7Q&|5)36Y3R%s7YadnBxoM+5ec%1$V%bznEl^G8+vtUZ`|iqh(cTBBc8|v@B%V#x# zM<#;GlhAMVcp0}Ej>Be1sWJGhmQjO!ZTVaA*J1O+@{QF0Nr;+H`}D>8Y9VkLj~E(b zA^!~#3CRL;V4=Mc?vgL7_w+zxh%dy4({Za?HX&gNB6Gl7O$}Q`soO4Gjd#S1ORE6G7Xo zKO#ZfuHJcHrtF9-IHl?yB+JRhF*iHU6t**O`Gb#d(mA~?lcCXw>+`VVF)V?t{x)Ui zO=}&>gWvNe_4)RIpO0twh@h%+*eq^)dmB7(9={zJth|Ss&gK2>;|AB&)S8Y)^UDoE zm&5U|(F3|?suJc0bJNrNV=2jH6rusc-1 z)gpIsdgy*Xy1!S{FP&H_m(KP)%cR2t`#LJia=GzN-0~&I`rYerF&am3S0QT1|Ff+& z6b&gy;QR5P#qRfhpPHA~J-zUqZunJi^Wx>aNrjoYI+NRugb(mN zbIAMbX-fG0sjtCCqbGP8l~L#X?YXHp-jMe*pBpOA4`gKGu|&>Z&ard0+~CkTU*nJq z51@y_I`sdz&4qk_wOel#YqrU{&#(WE6uKMndR)CT0AtnfFCmgg0F=+}JvW(+<9@7s?Ay`s z-y3IN-}m>|2Vx!%$CnuVtT9An%aK23zxmlD;c*bXj+OVo&~kg@Y$Vg%-1_0ZJNPPm z_ZJL6#j+`XEf+BQ!Y|iqcgst2;mn?9gR?GCSy;Ippn!=qif-Uh+r!#GYpd58WCb*|SFWJ{cK4&OnYme?C5&oVJf0Ah>B$oU zWjS!~_$kn$xq)9{ZHQm{yYT$DN6&DC7$VmXxSb zeszuzb2+FC29S}R;SGr#Kb7gfcQi9FCB$#>aJKp#wKZ|U%j;F7Qd3)-mzNh82dCQi zRvw+6IT9HaBKTyzZ86eBGCO;Zk55b!#TF{Nyd2?S3$_Oy$VtP^^8Nc$180r@({?zh zm3%i0g>aHWgds^LBeTG;r}yXcvnM$@`Rn7k8YRs;9mW^R_WE>~g6_e|$;lBGS`X)s zME`5phCJ-jsjL>OTbwE~bg9;)y`*nL3L>%y!@rBz{T*Lp7Z-h6d{+bfeDys(cq6uO zI#%?E(rSBjhHZ72_*6fRKXF{d zC4gtI6gQ5WdFQAKI19Y=58=DNzYaSg6n2yI5iq3bpEiN;_V_&02U$514d5P6T@xxhJB=~95`?CXk>@ztf#oErU7zjj) zNSUP|OSr?aX6Fwy$X}D^b8O~) zXM-0#^fmNMn_t~2BqhOR_QRGC?+D2?gt1CgUq7d`6do0fDSu=}`dio51ORsB>Ghz9 zy<-;uXc40UJum>mzh!NEbpF%{Au@nLUr0#b-o6?kQraUQDeB0wD5tZtA@;m1+%`HI z@!K~RFe8kXf18AJg^4IAj){%EntYCON~o=6eSv$S^qB5%&fiwQf>y&r{GdU#B5 z4rC0~R}-3+S=?OT$r>0KNE}Hkt@Ox91S3*Z)U9ux&!L>0riiuKRh;M7G90PddSjz5 z-83}rAU!oTJ&i>OQC`0{O*ggarSGg^D5MYjjj#3S7-KQeEs4q5p%##%E+22tm;O(k z_4P%4Z^!TOsP!Pw+4|V0Vv{*E6m&chFQVJR^fbf-!a#q_zwQ7LfzBFtAA~U^FJKwy z>a?cOozr}_>cKj*B7^_0M(y_276cy1uDqPCxi}|>*-P9?x;(TPmJglM7fJW_=2v7# zhn=-GK@R3qX&L9&?(uQkwWV;-=V-$zdanINwR1XSUQ<_mlZCalm$f#*w6%i;P#G8% z9c^TDj=_kzvdkajWf{}Z5c~Wtvx0?# z^Uyn*{Qim-5gU8|@X+G-zOur-`1cxFvx4{~>w37+cB39}{Pz_>_JEkj_oZHrd1_=N zuvkO_{_%3Cu>YrZ`r}d`r5-HykY2oidmX8!R=Mq1V8eTN4EE#c;w6}@`?5v4`>dgU z5E2qpF)|tXrKM#={45w9m0>T(?}Q4ty+z_6&@nMVa68!B>m}M>JU%&rVnWd)!1Pwh zmztfO7dHrzrgi}ot?(~TPk%8FC=6y4651GDfvaIiNM&RHC%r|&(lyhlkR&c4@v=WG z8w`g6$r~~{IyvcQa-KO9Pg?qrb38=q%VD!1$8_-7b^%kRtb>H|3rRb=D_8N&CoGJ1 zWn~2wU*PGwB_93`6(VZ*hA0KcR*=U}9Z^?J!YiyToWC;^qN1Xbo{lc`cZD4j#lJMQ zEhOr%CYC?nhyb;f?Y+~()01$jR#t zz%|gt$92C=oDvH5@cn#$jDU9A4SR(Ohzgw&xV@Gn?GuaR@$M{Whx!rrl+|Q^+H3A- zYE2u!=dgkKILoXDvfREqp5?ZE649t^bH2B>_YJNt=Mi~rBd1`*f%2hYOX9MW$h)^vpZj&w;C>=&@Gp-LD~84dLX z1DIXRh#<$}YQ8|li3T0@!g4h}cl3W(HoT7I{>ta@kG%c!bi)jy6T z(!4yJ%Z9xkCjtEZKZD^>w{|Y;k2Pr>jEsIMD?6L3AEdKml$V#!%*;&3Lh<1`tZClB zM-U_$!=M+4kmBH`Qd8N$Lqu6oLhH;x?;ubULD%*F2pVEZkP@kOj31{pwEIF3W*~Zj zm6~*uSm87!G!PY!?GXR8SXm4 zJCA@sdwYSdHNBd;dTTRJcvuL4C)fTXQBm|ZZ-8uqlt6y4@BVI}rv1ix5yHcFBI7ko zd2Os(Z}Y?FCe>f?vt|U7CjT&aH1OjGU{jlN{anXdN6i~`+^ey)6u0jriH;l)@s*<) zd3|wpl|fJtnkR^^Oc@v(iwucu%Ro0YBmp*z2PwXc%P0~qN0Cqc55MVRtK;MGkq~8F zl403eUnVg%uY2=+6y!UUm5ilXp`~dtMG<&$2wD6r|_MDIenHh7|oDaLU z==jvse=5fr7uZfRGD=F!IkWMQZJ_w&DI1#rtrF1KvJPcYh0Q$34aZ6akQs%puOU*i zn_~8Z12h*O4?3g7S%b@e)S&Kad=d?AYNw##Nb%KA8+<#x&E(haCak22~jh~&v z#EH7B@9EjuZ`BwydY-@y6nvNeF(9p#o-Q){PE=upJB6Hh7lYiQJ1Or9aCcvv!I((n zMFMl?_BV2s5)TirtJ_j{LUqn{Y^0gSiU&W##-Xu9MlPq5xpMABE)`1Ez^a6zo6w&Z z_SNXQc{WF+N>u?sWvxh|ejkLb@osAqlR_!U@E|SkiqeF9qui}-{g2LN-WKT*x`2*k zDnK2!-kGoNB9c?NpsK{e5@Oa`5A$*BfHK6}HGr2bjS*+19u|IGt6&`J|i3{k)!Tv}|V zgd4oFylghLA^3;_1c}vbMri-_xYlv#jEo-I<@z3wJ{=K^YFOt$=MDJ zy{tO?!WY#ePxBH^*oGuzU`7VvH3q@b;2>hQGK2okg5GhIo?iAf)UjDqYgw6;qQT6f_#9Id&$ojh(t=!MtW%n-GF4l?BzSTTSuG&B^P2u24H z9-ILcCvYB}88#G_$BJ`gUbD~a8va`-ipzy=e~XJnZk8~qZEtTc5v{8uXsD+9;%Ych z_D(D=8rWt5B=6{8v$89+2xCxF3Z5UJ1K zNP>>M(dMWABCNUbkf5CE>evQsfV0(c6&;HF1QbVMYU)rNF@Lpwo7=;9`fB)5{uRi@ zVhXYVY&w41&$xGY_cJu~mgWLS${fw*b8~CG?SB~0fBi{MM=3eqBJnC5n51w-de9*3$ld9mwzrclWsJApCAR zHa9&jd_mApHtTeK{WfoQ@vG(rXl*atx$;s~T1o>VAR(c4(M5zYXz|gKqzxK?>V&Vd zaj?kD&OSXdjNgSM6QC?p&rlEQmleUDPClUQ@?H*u+mpJp6&CIadkHJr+j|LvLtx@+ zYz)BP%Pmeu(f?ttmUMa&b$ffGtbz?u7e;-C9rXj;xKKKo4@)K`#8kAQ=#ceS-4GB0 zQiOyy?(W=Y`KK%u`5J-ZwvJb_^75j%05@j|yPTX0iUd49lB62K=40X>!Cr2nj^Q2`0ZEzJB)n#PHM9qK|z!{#hIJ~B> zCR`&3+68|r2v~m0r9Gl!qDSmw%P`1}Wwi3ub7^jZ#km#rt~iYLncw?Dw`K#<<#1f< zc}E5lGqLh4E3Cx4wq(CWN?u;%eunLLX){ZfBK0@+C&E)g=i3|X@?*=XASkv6dk2Tq zOuS1xVVKj`-g|0 zk6ol2u-VJsQ6IGkkrIhgS@R#dtkHZPykZ_rMCkeT$;o%?2 z2|8QwA02FLY|PCOp$B_P z&`?~QFCO?iz?A2#8&=J%+S&=045XiMfSDFTf)o6FLw^2;e+?)At z4lFD}Wj*dhXT)dc=PjAR1%m@erB(bXv7KWMieA=jEYa6-lwl;4^Nhr7t{f%U`WDsTPRGRDV zOT%ob|7xe*>c{(QseIA51CpHmA zLPW$tgq@Jjuvx4wcz>2;3&#MhG@*UGJRHx$PutaY5E4M_pl$e*n(Oqp+zN+=f^$>w z$iu@|@J>ujJQSA;@)%M6O@UX6z;nc+j{OIn|9)bNGD2P~ba1RtU0Sv3o^;<>a#P?^mx0|t%Tz?_( zK2jhh&6OneG#yW4MMaHspB^=?C1(09f7EY@DD0p65LauyL+xN5X`aU`UltZpp(r~Q zpoAO!V+lHhJ6eZCJvvuz+37(=omsaTWV9Q8IF(yE>q|-^f`5c4#4>$A1dbb za#!9biOSBtIyQ!s=j!T8%NgHNGakEqv&eP)Ou(JGv^2`mZ72_7b+hcBP$) z>Stgn6B*Eo1PKWZT3s(I+lYe*70t!Xt;g=;;gn@mW`9;uu*LW}>NWi+X%;BIu1uV! z?BnC}`SCteiiwHo@`Mn}kuj!G4Z?W(Wc^Hz=z+@08Id0#7(kx`KO_Si)J78k?j=I2=y z)_|zK_k5-^Xo{3}K`)uwjq|ZdcKONxXs^&dU$-0WRv{Zdy-&))APs2bp)!~&fPsZ| zf*zw+bKTpQIs%@rN}sLT)O2u}4sSJWdLg;>FhMsLad2~!4)sDcOG6DHS4roL zu4r4w5wy1P>`G~N4~D^6!omHLMRMW7{nx+5(*>e3Muw=a4wHTm4%X>JC<%B*rS3t7ns-?Aje>yXL=;39`A!`hE9;H4|sOr{v zK=$&l_5RfF{d{hb-z_O6MfBp$?F0ZZA$)dr=5y~%$-$K;3+J7i#$RxrLH&pZY-wp( zx2Y)r+4scj^s0aQy)Q*7D=ULA(9yqC?(EJKhHD5szI6u%Q+#6?_#r8NwHvq_p!$>E zBO)SI|BE6q013IGvomn;=xZCQHqr_nG3?0~`L%SHC;MKrq~z~tGgBu6#=}qu*K68A zB2ku_H|v}PHi-`ySfQam$E`vX^2|a`|NTQWln1Vk|99K#+6;fMo<1fzS_fn(s_w=` zxd=Ar+yYO4L)Vg~&gzopvxj#NT)Ln)7l2F$;YLYwiF@#WwQt?PAiwhy|uwx}Kp zhwb_&K0y%F)&;n^GLF4G^JvuWBDWB{yuG?FM5xMII<^D6^R+UNoj^*Gnp$e>OVd)l znVA`Dy4lxu4#Jy%{{0Oq*a?J&-_k0zFwNn42F5AD8)G4V;pCW^If#jo6H(R5|M5v~ zW4GNK6Wb$+MHh9(_`bH56-&tN)6fwduN4YRyOHl1vbnRlJLNwiy3*XR`xj*i957Yj%jCg|`hg3aWV1 z!R0otR5v#`$4LRj^5-vJs3ZbM+uJ<=I#jqS($XU&VGw_xG%5lW33)eC!j%KETU zw0zlo`b|%Z?98@To0_UX!Q_-2&#SFKl~TW-@ce#fwDwUG%x?^Pq&Q7tW!^lX*eWJ9 zpnPRunrAmTwq~o-u9u-9*;!_Ly8u7Gj;-WurGW6;)BE3j28lQ#&x7%FG$9Z04#W+h zER?LUo*SW~V`iT8vD4C7RNYi^ur-z283R^Go3?Zc0f>iLAc|aB4$KcsBkCFtnC;cJOovZSE+~thRn)e0PZ(oaM6O?MsK8a-3w_SNSJp zeyf?0nP_H3r#|up{TCt5k&)@>Yn2v@Yx1Z}R(;=>6li#~YTbs>_4W684gH_Nq{2=< zOVdWk4hstl&+YRQTIqbQ^wLfhN)WD>9iJo@SY2NG`x+9l1d-+zR(wAwSha@3aoEcN z15x`x^{%3d>LBX@_CI4pjx3h%VS^H6?Fo|-%JXyGezhFj-&($9?VV$8I$<}~=9ft# z%EO-ksiikKwF%NppYyclocO*<$frlx1N%)$ez5w=*~zo}%-NPC!e~_KPvAtBL3{qSC*;m^*#W^u<0MQc6!dl>s<+AF=F2Akrkzds zja9YetB9s3wN^qMn~-n~u2>S^yIRp;IQB|0Z{NRWw`a>PM$2Gq@w=Z-^-$OyjP0v~ zPnMCEh6O!$!fe6+B^pOZM9U@=wg~1sXF-^nUzV2WPyv~aE;E8w8I_zsZo{@Nx-c_K z9yVNsm;nUkOwlM=f;8M{jft3ovQAD2o#eYsTui2D7K{umEcO#o!z(Z{&~~AlK~D*_ zWiMWHaE@GgrA?^0Cxl0df+(gpf`o6jv3JvER;(E-M)!Loi4gQ@n- zj9YFcsS_L$5YR)6AV361j}j9%Ktxtxm6tbDCRY$8LpwwPL7V06lL8Mm~B|mxHZ`M_Qb<9lVmJ4xNId}M11YcC8+TbrT=mG zz1>;O!T?en^ZxhoeDHvg2W5|}|s}x5`q8>H6GeQ>Ba_=%-6P=ys6<+~*Ca!pZMp&Hd zIGG};W*sRKUcdL3W~|5-T>%5O@c|O&JFtZ)=mV)ya~$2s$cP>AmvLbaI0xp}2-0h5 zh<<8fefIa#jFrr&_6zyqoD{Vp2E)pHk$@jtl;d^_6-2`WzXvjY=Alhc0p^j#l^v6W zNOojdy7s_Lcr-)`sruyy5wc;~JUy2&!mr}}BPcN?$0e}T$;rv%k=5ox(~l5lWsFXo ziGG7Vr!<3qL5|rb7oV$QFm_VV5QqN5gNh5oYGi7;WdBrwDzMPEPMk+i$1tR2J8tKQ zCr2m+l*u>|6|sK5^~N)K>O_tLwQ#K4gJ`f#!Qe$K5I)Ar`7+!vAF5+i#^gVX%l zqjsV#MhFWFr`P4zQBfgdbJUQR2Vv00({{G;ZU<0Rz1--~(_8;HJKJnB{9DiFc_(^G zWPIA;zZ)V=w8_|I=x*6&tB`U4GZ8Fb{ZczWFF!hZ`avWy0%{^;64fBw%AVfdg6hjJ z8CX#XeUx5k3W4rfaoN#coYp*x8cx!5vt{UrXGOMOummILyKR3Vxww?TQ~=c&d%BcF zY)vd3#lM!AcHjFAV{siqVt-wyn1h_HwxKp>uMdoj45>@UW%hz&v)tV9#ZO;GUdPq&w8N(CxOm9<88L^uT4@q9yJp~Z%%i)n`gbWOzd?e)cszjAz{ZIbecNt(f+iEW?FAJ{v= zj+x$!C8TEP^!;5uKwRk7SCm!kYx4W>GhOn1ZHyOw;i04qnfPgIkZ0BPY<_s62JG>Z zmy?&3k(tINUzC-Vsj951U+@|*A(M+dU_L#&fk1A55&%VRG~3fKQ>?+EPTLTpl6w@k zg!7Xf3rixF5vXa{ub1W*gFho-&<|Dd7u8TFBo%tvHoAE0fmsN~HWb}~PRvg}} z$vEaB0s&*`h$!8<%~p&~fYz8ICJu=oHO0<7r;VI^v8^)3hQlCL-s6}Vn;{zMvdkeA z!2sfQX@fQYuhNfByFJympCa}~YJ~}nlm82DIFZLP=SNCm8z*uQ+d;OHsTZyF(@KJdVsPPiH zfZI5ML4DKH(nu7mfuW0wE7a+Cdv;Hr90ClpoCf@|eED-M>K(R+sZ@#{49#z8Wm!%X ztTHDjx3I7f{Z&f75^H zI+sCg)B$As$@%k>6{$5O*vpU!2p}XSMd9J$?j)B3iqLofD!MGp*Upx8R*^_%6*KnO z%zkJ>{7{QRC#R(3;3-lSnzo?@wzhV$F)@Dr{-Z{Y`Z^VI=w}C0 zRt#aPM-ngTi164*GEs^s23c$XnH&SurM(P&29lT)-h7A>0Z&U!ZJnV3^NxxD3DnFe z2|F+N82Seq0H>>`V}|JTW#ttHB>Y~V8wjPda3xyKF#NoZ#5Tb27PtQvN<*Ix8+O?8 z5fKq1MvQ=fxOnj*?iH1|ySsDrI6Wg1S8H!)>*eX;>f+qtBm{=isOT6R%tR+-C`6u& zj-Np%43R08P<8~)t+i@tuoeD5wE5Xl{5 zpkYVCD4|Nvq`JE5?YG{VIb-_bXP?nR6qmd^Iy$DTlz8lZ`tiraq@=*0AP-t2L**ixDnXqToi;{ z)>Tv^tb@RSKsvXFh$I;HH*el_a&m&gLCppE`SlI;H?ChV=+np7*N2VYFmBAR1lDPB zaS1N<`|l6t=H{$gwc6Q9&bjD-)n5L-DT*{y7!(w&NKvp^Q)*QWUL9T)o(>*aS!orS zf1i`<;^G2(8^2;JcQNtT*w}>U0+on85TU3X82j?eFE{<~$_BrsV= z_otr}si~HhRLwq2a?voIM*shvN@)(*G*ne&@}9zqZEM$XFsV zuC6vLDk_3Fx3;mtM=)V*ySlkr8(LElUR$HCfpJn;RD`E)N+mrrdZAEt=n#S~4MIW} z(XzxuIs}kSygWu^qOGQx5`<>XC&VcPK#^Ih#2h7hTZbhFpczkU`1z3dT$=XFhUV5- z2+#rMBr7N^gsp}104F#Fz>f-{qevhGQOFQhMttwL9t~sakimZP$tURLU>Ptmyu5vY zI^4BfEFCRqo6rHK0eM)PW+%TDAkhE zQeY4F0XdSImI`iPQ(N2FfS*Rw3}lv;lq_Akbmgkm{rdIA6A}~+~M=1iJ=A8u3lx`ck0wf7*@L|nVFgE*R6Z$rI*n;tgNi? zu+hWva`VuY?dCE*KAchEwE>B5Mjc7033 zQdi%OIndBiL-BoS9eSj33G)j*g^%|%eCsqtw-tYd3t%-*xIHlQVI(4j~zP}6&3aI zM<2u5gZ}Ab8Vv2qTv_ZH;dC=+%$hxCHd+iP<;F+^blwc49(1y&r^os8=L`)E@T#q= zuci6jw1;QFBMc48s;ieRTkh@U30;kQB-0Y~4Pe^H@TS+r6x*gI~eOiKh)OLGHa0Q zUOv9Q9eSQ_-i#H{tl1E*-rhb_LmxR5_ETpUXF&OAR#xUa@4U5m@iI$GOJh1_U9MEt z)7TwicWF8Z&TtZOB?QRz*l=Qg0gOXyYcz%h%wX^cQ0ua?axX705Ws)G`s(@f z=OL#cHB{BrXHK7*G&!WzS!FzG^h3V%xd;UsnamMv#lyo5*ALipGok?gIdkR!pOsZr znORwY6CbP8lxSih6B?2+>#Dc6H)__ENB~PhZKzk4dkQ!hPcSJt>A=B#z!=N88I2MX zv+=_X_I3{FCw+qZ%H=Y9J3A+5Iix=XL>j1ST3VkzeWpyF!XNernYtMpyL9>TPq%FO z2d+BDuMo5T3QBE0zMgK1BGt{+H6r57!TtMK$R6L$ z1k}IT_08rj9~&7NyEwbz7JzElPzebM0y=qp+qSKP2M-Ah3v61EW)b>rXvUi0pM*1z!li%-mZ z^5c&_~7Kg5HZf?#WM`bfPv0qnDSBFPFE0mQD z^$pkwkt`O8{-8#L8Cq9c*Vc3=dzcg>c^*tn^eC8BtxjX=)YZRD-+P7f_p=K5`T9jf zM0~gByT|9wO-xMOzkeT*6goPIJgjn3l|@19-McR;I_jw>p910Jxq?+`=^5CtvLulS zT4&)Rih(O|*X>_!U%hHI`7p@MpIr<0do7yqGw)Qwd&WCC$(zp z-@hMTn>THWi;IW&&dAJia+0B{z<>Z}XBURX8#kiXu3dZW+O^4(r@&rzbabE-swxHl zyh5FGthw0e3F+ihJq#7JXA)WFby z^Ii~mRI6~h$_k~iL;}p*=IqwHD7m@0H8pC=4?Wey{LAOQDlaz#5zu9^glzUH9o4z( zbI}Op2I9k`wc(~@a^kRExagVxef;sni4zG{>8;{HJ~ix zG;E)9=g;x6s;j5x=ITO|u4%7ZO=25cJrvl+ZGx+UJQoxeLE`~MOcn@f><5`kY;J~2 zC@L=Q*RS8_UwodKnc3N*a{m5){xm$MeF+W@3JW`g`vS2FnKCswIVCYEVf3gG|4^(l zPEu3^v=&~xaGn|lCit_kuw+B<*kDK7b_wJ9`nt0;AxJKn=G(;0ndWn2Zu`=uixVCu zli)UO`gqy06?5i1zGu&F?%UI+e|!4rg|V?Qpicsl}da{c{#xwyI! z=N6rqM!Sxlg{3)QsaDshXdx5jX#RK;QwjFhl8IVMy!0s6NhpIz)P5QDyDN|>U?nVj z3lMwc=waAx!NGl;U0m1!)vD^OtSq@)PS>O$)@%a>o0dED_C~Oqs#WUtL1w{Cnu+j&awKtW&5_R3l=R3 z3;${Ouo2Pg+#6%ex8~5%V=;h@j5DI`0dpkRbd}CwmCjL?~(X_UK`_t1>d($lbEg#d<%PWG-&CCE-3k!1( z5;7qImX&cG6H5p;x!kd?uAcKhfzg;sO~8;f0u5?2l}bxXOGwHk2S*W|*((-_8=D#- zuv99wwUsrEIlb3aqQBg>ZPVt>VPRn({uztD{)Mm#+u;293m_sotr^xeywTClItNP$ z*#Q$SDFH}0Pey0QhaLLyiFr@mym=E){QUDzr%VZ*K7HoFgZp_0`~oY+%({R2wM&fHLLXXj3l(+Xz`n6#$9Z~sW1F3eWy*#q zF)|{POIQjBzOS{slRP7M3RP9rU4(5rIXeTZ0y^m5!t`4SKN!lOL4!R#JxO9=l`1DE z7iK(KtgNj3dgTo^$_g>3>L^cqFB&9#?Rr!jCzGiu#DP#CEG#NQgQ88MqR1!_gu<9H zV_Qe3YRyp0r7&@8iL|{}>*KiE%>!xOg*m^S6tFDe^Cn_l^#r4?GIbUQZS9u3;t*Nci z3VzJY%7ksemfyv-6}JWeYRzh(R!Mexnk`5;i)1413F_uGrSsqtlag5oVY(_)>xbA6 zz1n`Z4V~OCqP}H&SS5bGzIF9=c!)4JQc{xDbfURTE^~8ph3HI7O3Kd3>aO5h0QKUf zOX#avS($(OVvTB6B9gg zy_}pJ4gXgH!O*+Dw%ThhyV6{r!K1N@MCIkWO@e_OtI)KZIx^bN?*&G-Y?BnC( z;^J!1jz5nWIqJmmqlq;8E-N>#UkeHj257(d;gx-O3O8^1_+QVzD3i4;v?rH2 zy0|zO6&Irs_|f*Tq&bt7W}>TXKk=1&hs1#)aPwwta&i)E9FSpWAqp9U#nI6*FffQNtC0n{fOkGn8JJ;AQkf~_q-aBZJ*30`KK?HsuE3kC z@h#hL$l!sX!N2@=3P!KFxtW!vB>;@Z)w&oqmP5kVgu->}-)Xg${pZi0H+axsHeo9} zC#Sf$-Vc)%pnCY>iD(zDpWSsyOG`s%MArmXp$~(Cf;$8%v)sPj zwR6(s5O)s`hzT&LyLHBvaf|@B0J0}{a>hR!TU)8QnX!pPsZ=)5S)klc^z?LTt|kLr zJze|++qjsF%#7@;Oz;Az8vM3zzkcXC*k4psc=__Bg9rAtp@>o`&SGPO1MOfgGM0-Q zd3MRNJ-fdxYE9Au^s;-;%*tgO7;91v-M)7#72(#i@}XjF6*40tFtcA_u8`fB+y?FE8i z`RC+h1Fqj6Jn*mQU(gEl<hknot&7QoKjF&n46my6BB**?3vKe&;?H~xQho$COotVAR(LI#~^KFEID%c zh!I(!Kn$5;XlU3z-|F8Pt0czJrAI`tdyv2Wj=He9-` zp$jDZ@cjW8Q(#V`Mva2jQdTM%p)IDXj29IbwU3VKqM*WLT9{=8#LDEP*jQ`lzNn?A zK>c`!3aYECwYIi#aB#G;vchhttedeh9lA#S{Rz(_nTNQ(#naomBGJs5vvBWmaX0zi zAx>0*D*`zaCX53HV9tHB^J`o!UpKPi=kE_Kdil!b-+ukIyu8d&CU5=>72%C-}M=vV_})G=##mw6f%Ys!-grJBp~+ci@12Rdm)N2yjzV zb9n_>Ur$6wx$rGJlAD`0Z{Cw-Wfd1LTw(yml|VW}|J&NyZrHHF)5G(R=(uc32JRJi zNo^KGV^{_NiZ7 zTx5c(=x8Abp}n0$KtLdBPKb|JC=?y?TRu?#@BbF+)5)j}jhzNLip1ivp?4TnXQB7HM7EAaFDqpv$zVR-HgN8OLrNiet$*M~xZ{ z!GVj(&(F)tBTGvHqIm9$7e8xnXaC1Vp70Ag0GS`JQkPd$kR@uxVltJWp3DTs`B^Gy zuJ5&drx*~4!E65dE@dI#m+R^617Y>#{HL@I!aWyuo^uhFgH+n-eZmI5cI_&0n^ac* z{*$|_Avk~sU72m0&}D;L`j(Y7mwv_Z_m;E(P@xKPb8`i4b3V1{tX5V~xdR3aov9YAMq{zTPZ|fIZTbl8uIj$ubKm~n>>k$}Ha04@A>c|FN+76|RDwV;n2KybDm7{=rBYj>#_);q zA<2jEp-LLDw24xwQQOY}HEl^+i3CGFl%>RD$BrGajaTfM@p%09_iq2oIp?0czWZk0 zjK}64i(%$1cRBa}`|k^XKqqf#o}nNM<0aU9~bb1keo4 zHWb{SZF+jT*=(p+a2Ke8Y}$CV_$rTk3LcZD%SepLpW& z$FIHi+H>d5{?3jakACiR@4WL4a5oUnPe1jv7F>JZ*n9f)>CZm;*`9KhFKN}Pi7{-x zQ;CVw0AIK;J6EOKNg`ME>p{87_BKgHX)BrWA}ZjQ&F(nuq@jk;n{pUFMD1YhY!0hL z^yj(31*}ZQX0J7mY2_opSG2HY39Qv}o0bMDGEKVRV2eND<3oS?XMg_BKm6ffQ8c+~ zGT)D<4iGZAYO=3W^xNEcVq$^^%tf>3?x{eEC4lODz=}I>ICb89l$x44z`47?-H#qS77Ewz{o_l) zOEuT--G6k~U3We4#1}!h9X)pZ=dbSt#KKp=9{!IX|NG&?zuvla8*Bso+`4TW82OJr z`bec*1~V9dIx{m1`*YuYpLuG}(~KXc!cYIfr$NBJ^71PQv8w+9nKL>%0{VPZ|2NlS~#>dAZHD_uo0h|JuV?0(t@`1P>9T{H0z@aO{x5NwN zDoEE9pG&#`tAyTpb_axJ`2u&qp<9LzlNZ1VUgLZ$P?K@Qb02;5 zumAQhzd3TmXU^%P-TuitfUW$P=B)B6m&+hafBX9Dw{O2;&6+ib<5^W zJ%?q&UC&;atJiDIX4}MShO#Cq<DJ*xIQDmZd?Ig* zzyod81Y5I(#BI(5A}MAy$gx4Sb@#<`;P45esUgP8AXDNcsW*B#1D-}ztR;{}8jys-w@~`38-~0ae-+udTcxBhFho`5{ z&s~@U(`?_=)HlEJ&7;STPVL*bYI4<<&0B;mMn}g0++*WotF&6-$sk0*SgqEo^k2Qv z48`ii#P~HE*2k!b+^|mH1s;dpq*-hytItKIV1}!ju4b%)(Q@X@>7XH$u0bsT$?!_fXAR&up;!wuWPRDR>lH}>v*^SxibSE*DUc;JD%@BaN(vjyht$&)Ad@1Fw8cF))L zyzt@+Z@u-_jvY5W`^>YIN*P2b7?#}*I!j9++$t4sBVrf0f;vuBYuLvaXH`-4JlqQ) zd~{?a*pGr;GFU6y?F7W7=di)Wy`5v`r^K&zyRE-_d1ZA7R>2<7ISJ`nqSbE&W>?J- zHRzKl$MIO9+8hKvd*nCoPwhY8H~Bi9pS||ltFQi7tKH(5#I~*5W@mvlpW!&fL%Vj3 zPfYCH`v%y+IG1f?Wc&7QKtkR1!uoaV{$|fp>(;G<-`D)s z8aNu27+c({6=Zw0dI^{XyhXklH&I_0jE4f2nRu@cyIA2yV^C^YRy2&vQ_KAcJ)>z& z^CV#}I+Sl&=pP>RI`R=Y`Z$i`J~iLLJ-U)tafo`$k5%B!hYuefNDuz2X=Rc{tKHA@ zG+3`+M7ATMmcyI+!K(YnBVvbkn5G9OI`r$q`=<8$4h7P6@7~v6dHF|{R2{R0B6huL zvWOERmoMCO(@nSCdMntCJ9pj!Xxy-VJs899y!-CXTW(pmKGNmhB#V?2{kSb=y-}aP zc(Gimpkv=F_t>Tl#SGsshc@&`5%2DcS`FJxWGN>>#6Yw+k}Wg9W5zkD*Q66bdjbJS zV%+ji#Foz8P~SunAGIH=VB5^h%v@eV7sPJ+Iz={{>+_QQSPCefRSP#rF-OBE9dS3avlosZKVGlNAT#K$wMLD* z3V-na`>*fa3m0(Y$dQlEoxA?}t)Q82zV_Npn>OA3dw21cG9KV@;Dp6Y)(PVlhYlS& zc<>Ma`?@Wg;fl9x-ps>CKy*7a-fm`Q8enM*BGfrX{)_HX{zgx1(2!f$0K|h;xOwi!1L(>trnN{EE!!g7 zt?PvwcMo^mza1;ks@t)m$K(kW?AG4ec6%^gPA93eiT`xSKZO5vfy`cxV~xgY&xZ|% zMWEKI0GkaPuF26TE)b;ee{dAXzEdAYxY?1B;fe9_TCJ)J2>`D7LSb}tG@r}QUz$gM zuUgMM`|N=O2MUD(sPur?PuzIpSHJosn5jgvwvO_1e;;53vXQ0eEeS>JyC+Ya0A@Ek zGXoSm;YofHJYc~wRv0#XwX;$|we1z{i1J|d%-OTk=g$w1jO4PpWkFZF>)k{IQlO~{ z`4qbS3a%KTZNSg9luVwQ&FL{e4mmSK#+dtp{ta3<@M58}Fm<~*sSQ#Bnx*P+I&=z? zFA$S)$hMRJ63SI%!Ohmi`HMAbcM1=ei5s)t$W;pu;Nsj|y&?TluwH!WrMLd~tu0%& z{PCB*G`V`xCcg}3z*6!PNG9Fg-o<;fa$64<3B!A71*O|Ne<-q2ZM2 z9BNhbG){9pjj@V1J9~aW(AcXsbv$3Yb}bKo5IO_ssteV)%A@%Q>?X+4VD1RH9NW=M zJ!40E#<9e?UMIM92gzfE=n21U)_`BHm^fS>C2%4OxOAx_N~IFc_)(n`Z8akgRDDXXlic}7FTecZhbNwS=5N3C+;czq=}#Yj{4rKdTkUq9 z;cBdV?z!i|haLtw48T5l>h${c>oK!Oe@4z6>4MWV zx4}M`92w8Rm2p%gu@8C$?5u3DXg8Xo<>thM;2GO8wVI=&V`e7|Kn!OH1{Y4^3Uk!S z+`4=L_J}5EbSxvMSXo>G0M=|Y;5x~C#mjaLMn_JOCs<-ML*o!$pQB#*DhyK|ALjv6 zz!6%oZ=`EmQBrJfZtmT8-Ow8;P9NRK$>@e_1Vl3#QgB z#|k$2&qA>XpX-t~-d2GP-@15lE>DeyW0KC{P{60)XXsAaSUHsk5#2%7)Af7jNvQ?M z2?tr8oaZeBqLCp=t|sk~!mU$E1Z>y2^XEH+3Pv(zKI0TmI>&4G z?%l9e$B!R>@PYdud+af`^%!t?(o6<6N|yw}mBTaLc+CcyH;K+LTXl_LCky=9b}W^L zXmQiVo@_ewbu7$0bEZ-mg0q12`?1Dq73cpUJ)1Qk`*o4U;xo(k9^G09?;PdbbYk=@OXupoCu?{V&&opjKvWM+bRyWSO}W{aw!ywK||LJ#xPAA$Cs{r z3h4Ps$LTmAs6bL=OIcvvaBWQMK(+O{U{6emW-bQ}TCgBkG12ex?E}u>E5JtT^_om! zC!1paF=kbs$w$(B9p*$rXf>bt}X-HKLSlT5VU&0I>_J_t4wTNraJCp@cq*a-m zL`OZ)QZ7e#-OjAk*x{066&Mxo7jIn57o5mHJbnQlLx>GE2uq+-krcomIiOtxRc!Qi)?3VTvdRouyd}Z}>YI^QquvX8s(4 zH=_~kp~;Y|HEUz2xm>BB)kt$_NT}90%%hzpJaExxaly@kK8;_;G8C7aa3%n-5uyCC zIyZn)cAQw3wbS+HPVh~Dl>x#hkJYe<4c`0^KSH4(!dyzoK?2eoUc`}E-bx^>*rw6~ z91?FRFfyL0GwJ9hfFC^Hk>TM}r%sj2++Ee-*;yc};ZS2^w2fTLEgp3d+vHdTNf zF)a&#=zOCI+%Pm+@o~W_7-&p+I`JY3lOoKW9xCftowf;nU9#M`^a0*t)|;agGdN?N zs{R?J@GdZ0&6WlB1TBzP(cvr~GyN54h^!#Njt!5X!~9YF$28;9D&aEBKzLxnIek0e zpyWC)win1x)A4zmeUcWo6o6Wgx`V^8^pt|xmRZuJ1NRFsL4ez0KhAQQyA8Dsrvu0$ z?D4~j3~9ijZ7j$u9@G>ZR^5Gt9H7^NsxQzZC=DopU$fBw%bI(9Yr=sKfb55@0L{EX zQ+(j%;h`b&7;C;J=wosxXJ%%B@5r`B#+BM6SI5T2K88SbvC7VL>iB9W$D~;gL9X|W!{4H z|0ua?OCPM1ipf}DoUlbLhBWq$#(>O?Lw`)JO-MlY(QZ@iTgLZwD}qM=&!uX!jLDVY z_F0LblwF6P=8zh1Ww^VM`-2)hhn?}zE#xf<_a(l|2S*N0G@VwjUcE4~X7<59eNJZ6 z2Yy9j6_l!6vDoQ$Raw1CxuUIHeNC_y#L;?(pZshl#$E51DC4)W;2ib-`#>dnezKyS+z zaQ9kd=i3yNLhH`4K)v_mV;WhcuCY3}2)=0{ql#`Enna)DigHWnnpnqr`4HKT5mSwwen0|Sh7F`NwxS4PI6FmxxED;u47Yy+hh z6>12jfiF#V3#A#6mj~!FJ6tHJDh(G%q=QJgDx~974E!owm4SPIIaWOa zeGXdI^oWAipsGEj9GAH~&SL7GV;1a;X~jui=4fvgGcuWX$qwXNt%mN|d;z|zxfo|Y z1U>4(Fp_qyTmA~Nkb)I<;Gwl2d`o>o7>XMl9PCoCx`Bg(r3?u75*5-d7XX<|!7LwD zxtX%}s+(5)8?C5l=iVa-e63eMj$~ zL7Ll|_ ztOPO92WIn8P!tClc=A&{2S@)6s?exiGlj8Ts)t8j#=R4fX%)s>biph%EW@|d)iO8C zr{pg_qTrLs5Oj1$g_lrj6;<5~`I&_20wjr=h3x|shC`IZopY=UbSZY^dfg;FaAO28 zLo%K_BtijpKy9z_;bW$9SZq%OVnvJJaI?VC{l(o&k@PrJ+fXW&zi4~PMnLyA^u7cR2fAKc8Cr4 zhdA0+3n{URd8CdN9XAdjGlG2u!(AfW3*>W6t7JpZV^EDfr6Px=b8_h;bxAV-&tCd`zCZ``+z-5~_^oBfTHRuB4AI;A#98Fw zOf4Pu3OESZuH|x>OLkT|R+U;Nh~s*1tq)0y7FxTFu{gFm*c)Vf%e5Ih6x6Y~yH`vJ zHOpkwg4A3Vc4@GHW!Td1MjXb-YxQWMzNh6xQkL*wEIiB{zbQ_v8j?{}+>NiS%I1J_vD*T{ISIDVadxiUkjT($!i2ZeJwY=ct6_c_#F`^yJ%9EOEYQIz3Qf5j0{B;kTQ|a@7HxIbL0Bs`o4Ej(3$#{*T+Nen z%vz*UsWViK*oc>^1S^FZ`b?|c;&*ZstPg!onAl_pF^^Y<{JPpeQKt-ek&M$jQPR)} zJbV#?%7lAkvJM@&usnO>@BQK3BFhXrC37rwIPs7teVE_Ma1JpgjgWGSH3LzeHulGI z_>r=s9PfS$7Qd`Cags+|bRf(69C`zAEYZUMSG5_2cr zo;!wi6LV_%E!D(V)(U3Acwu>vWcL7 zTl6H=P#{H*31kC|t6sV)p@jp?Y06a)TIpkjS)ZY|}fhU9)F=MI*429G%gDzr1T2#m4!w7}NR2rlv0CKy^wb@Fno9^{3Mpa`KJgOXKKS|p)WL#Z5T)9srpF()UJie`9R4)%)h0fj{$l)|A zl6@FLyq&_d4GrDL57e;x?=Mn1*pW>EUeg0=4CqC4gy`(iH31y|_;SlFzZm5$X=GP)vwx_Dk5 zPm4>$1P6P-g>6DSXrquE^ZN3`wYPF%rpgU&^Dhrp7r_2kf{|%luNdqOEMBLGQ3#jF z*S$#nGs!U0cnZ0UG}9yP>}u74J-59AgsKUf<&=IQB-rQqmdAec?a$&*mptUQ0B|mk z*C+Hk2Y%9(RkpYMNHr6BJ##xRle5t$aGXAA+N?)k2E;D2LKIqa)AMFyjLc=wlYLxx zF%I_2hSjAr!54fDD@_j%sbx>V&K7A;t~4W*t>dlq_^ZvX6mnd~ z-E@+dlP}Jm960zzGD0-rx=3g(ksEnQ_^2bfqg@DOS^! zt`w{3N>{p4tfnhn=}NJhu5_hXO;@_om0~qr=}K3M)pVsR#cI0Jm97-4=}K3+tp68a Y0NARUGu+4*=Kufz07*qoM6N<$f?|L22LJ#7 literal 0 HcwPel00001 diff --git a/lib/sinatra.rb b/lib/sinatra.rb index 9bb99a6..8585118 100644 --- a/lib/sinatra.rb +++ b/lib/sinatra.rb @@ -64,7 +64,7 @@ module Sinatra class Event - URI_CHAR = '[^/?:,&#]'.freeze unless defined?(URI_CHAR) + URI_CHAR = '[^/?:,&#\.]'.freeze unless defined?(URI_CHAR) PARAM = /:(#{URI_CHAR}+)/.freeze unless defined?(PARAM) attr_reader :path, :block, :param_keys, :pattern @@ -328,6 +328,11 @@ def layout(name = :layout, &b) Sinatra.application.define_layout(name, &b) end +def configures(*envs, &b) + yield if envs.include?(Sinatra.application.options.env) || + envs.empty? +end + ### Misc Core Extensions module Kernel @@ -445,3 +450,74 @@ at_exit do raise $! if $! Sinatra.run if Sinatra.application.options.run end + +ENV['SINATRA_ENV'] = 'test' if $0 =~ /_test\.rb$/ +Sinatra::Application.default_options.merge!( + :env => (ENV['SINATRA_ENV'] || 'development').to_sym +) + +configures :development do + + get '/sinatra_custom_images/:image.png' do + File.read(File.dirname(__FILE__) + "/../images/#{params[:image]}.png") + end + + error 404 do + %Q( + + +

Sinatra doesn't know this diddy.

+ + + + ) + end + + error 500 do + @error = request.env['sinatra.error'] + %Q( + + + +
+ +
+

#{@error.message}

+
#{@error.backtrace.join("\n")}
+
+ + + ) + end + +end -- 2.11.4.GIT