From 5cf4f5a27a9ee918003ed5d15ccbe829c45c88b8 Mon Sep 17 00:00:00 2001 From: Branislav Stojkovic Date: Wed, 29 Apr 2020 20:55:18 +0200 Subject: [PATCH] Loadline work --- diylc/diylc-core/lib/app-framework.jar | Bin 51787 -> 53875 bytes .../src/org/diylc/common/DrawOption.java | 6 +- .../src/org/diylc/common/IPlugInPort.java | 2 + .../org/diylc/presenter/DrawingManager.java | 26 +- .../src/org/diylc/presenter/Presenter.java | 117 ++-- diylc/diylc-library/lib/app-framework.jar | Bin 51787 -> 53875 bytes diylc/diylc-library/lib/diylc-core.jar | Bin 332508 -> 332516 bytes .../org/diylc/components/misc/Loadline.java | 164 +++++ diylc/diylc-swing/dict.txt | 1 - diylc/diylc-swing/lib/app-framework.jar | Bin 51787 -> 53875 bytes diylc/diylc-swing/lib/diylc-core.jar | Bin 332508 -> 332516 bytes diylc/diylc-swing/library/main.jar | Bin 697234 -> 701375 bytes .../src/org/diylc/swing/ActionFactory.java | 3 +- .../src/org/diylc/swing/gui/MainFrame.java | 10 +- .../org/diylc/swing/gui/TemplateDialog.java | 5 +- .../swing/gui/editor/FieldEditorFactory.java | 5 + .../swing/gui/editor/LoadlineEditor.java | 81 +++ .../gui/editor/LoadlineEditorDialog.java | 424 +++++++++++++ .../swing/plugins/canvas/CanvasPanel.java | 573 +++++++++--------- .../swing/plugins/canvas/CanvasPlugin.java | 34 +- .../swing/plugins/cloud/CloudPlugIn.java | 5 +- .../view/browser/ResultsScrollPanel.java | 5 +- .../swing/plugins/file/ProjectPreview.java | 7 +- .../src/org/diylc/utils/BatchConverter.java | 5 +- .../diylc-swing/test/org/diylc/TestBase.java | 3 +- 25 files changed, 1098 insertions(+), 378 deletions(-) create mode 100644 diylc/diylc-library/src/org/diylc/components/misc/Loadline.java create mode 100644 diylc/diylc-swing/src/org/diylc/swing/gui/editor/LoadlineEditor.java create mode 100644 diylc/diylc-swing/src/org/diylc/swing/gui/editor/LoadlineEditorDialog.java diff --git a/diylc/diylc-core/lib/app-framework.jar b/diylc/diylc-core/lib/app-framework.jar index b70f1e2be64be4c82b5043c0703d13c201504007..1312c8997fad2085e7ef7845e0c3ebdd6c935e1e 100644 GIT binary patch delta 43777 zcmZ6y1CS<5*Dc((ZQHhO+qUheyQj@*+qP}nw(ag|O=Iqy^MBua|Myl@MrKs)+>uo) zVrAyuE2ok{pNc^dlw?7{V1R(2fPgSlbCePgDB&^w)^#&*;rc*8K-LK&!s77ozoxxA zvZGZ{WmQz&a%hBc=zhT+#>T+AC&9s^vwcRRB)O`fXFo;5JVv9)22xl(x;(f51N~pm z|9DK8AOQQfz9K{Zr~d2wKNn_F0x(Vz4=@baKVwMZ1))qr>V^D&hL#ip%!~Zb`~P(N z+aUV4=X^IT-2eY8l7K-t{?`>3{6Br{N@VHM!GM5JlLA4602bOr`c%mnbc?HD_l@}@ znEB(;%Y_AMtxBfq+hkew^&2BI5K(t`zeoD^9j#R13AkT=B@uqg6U4jTNk}n`sXiXe z`k&77v3lN4pU(9GeBt(S0wPFa%(2_*NlZkB?XiD&MblSZi={b3+On)VYYuO*m=za# zLB5K0(-xuM0i?b1Cg5BBh=zo8L_|a+DE8<`naJT}#~bVo1|ve`TU*FtWY$f#?4dKk zvg~0|M#;GBu4J&%>W5khqwc}j7=3bOSrXiOx>H+TZelF1uaEhPjBY!2TP@IIy0w>6 zS!$EqVyiFYp^@%za!t9tf$61b`!43vu75?53UNzx0I~zm8@p^T!G~JGL)NmZWldI& z2Z?=vZCs|-+1a+79y4!!hsVbm>*mPUFx-JfUlo$n%+~5hg z$GX*NiskR(5?ZB6T}IJ6C*(f+G7xep!ZO`h!+IRNFp6p)B}?hY9xcI!apxJ?Bia=v zerI9q0GKOvy~pll2^O;Llkqa5yq7Gcq0VCvU6MX@oZ}U|ZK_Q)i2GVI(dIFbxJv7g zOOrHqI9ax)MiJ)Jz{HbFSv}Zyl(H8T*TnSQWI`{>>c-$gf4a9Fn@{6nREd2&98j66 zTLoKLQJ}q1Df{Q9Y7dZkpzDq02A@3yM|{A%03H$|;?ezr6)QB{&5drSGravM4qd?w z_ho^1D5tm$8|`KT@MYCzz}w6$bE*OWvo4Lz>!)UY!FBg7!H)Me5qD^Q@!URSNi(bG zaY>fBtS~58g$Wz5VU+WTtm@Miu1TdG8%{Ywf`h*-ZGLs=IWbKlY{IZ<Ii&Twk@uKe`1v$MZVKqu$C@}-E~qU- z68F_g?9A{`d9Xm0$nj5AfV(Z5BM%oTa2FK%Bu-UoAMcPEb683NWVVjGgz^7D(VwDM(bez>I(N8vN-loE>dqm<{vS|_ES1`r{C z#zx-E5|#y}tYDUab;&P8#{39794?7x?*>yoydo@@lU)@(i*;1>DPT9IC7OO>;EHBV z0K4)TK;~e{pB2ng`EQ2fh=f2p%c2{rY94KbQQ|21qOMUrO!YsB=oQ2%R4)Q{4%g(C=x@DD@Q z@4*E$g98D{!zK*~P$nr75CY_|!s&xyqGHv^=}=l$X^7OFh9DY9Xq2`PCXgV)O0&UwDG<8cZSTE&wSIKHpAFo-0$&fqgU@i0 zn#v8p#L%vXM9MHQPHDdZ96ImZCghW`>t-$C?h>y~^YiEN+LHj|SspJjogrHhGh!vl09tt7=6lb35?(pbQ{ zqJ!b_BYRKFohzh=(4`LS5rwADThme$Q~<57mdWv7hJ@?oI`tQ$xa&?yb+9y+*c^5?0a(m4tR)3!s~dDhP96(K@M%A0WawF+weU!p z%~N7x?4ovTuU)GbP`gK4yd$dr{NNvXfIB54HBUUOWlugP0XSb_Peka(k+_&DbB(-e zm%_w$qE^>E{D31d;g*)MQi)cnvl_1Jk!`djaqmsl@~!6{$iPOBG9@l_m2K&h4ml zE^8TyRP5pJQ*W)M$QiO#=6DtVVr=KCPCm&_A`v_0&}`vQcCY8Z&3fVjh&0ux8({g3r@#cmA!CV5z( z;Jkll^4{(B-_D-mV^@=GSHfM^6_xZ?gjK6nf!aPg)bzNIknZ@sdFJ1)uL>R6vzgb| zZf%`ETh#Y1Y#n@o&Y0%DB*1ZG_ePF7Fvfxh#~wR$ho?3O-81BVKVf`D-`8b@mI2PI zBB}^m^gM+vK-5d?a~JGP_`YH+1J8sdPzD6DM+36SSB8mg5RC{RouDC|(ZhH2@Crh0 zF8LI-5le8X_7r2hb@1}5HID-y!`q*NN>-777ao!z$FXQ4oAmat{3y_~Xi7FMhU?OP z;TLL&IbtzL_V|X~6SWJ|9F3%t9+iV4!=}WAncN>cFKXSsft;6Q83s4Ul!ouqF2UG@j`|IQ-+uzIk<+wKrB5Rh>aGnoKDMcxsW8Oh&a zvABzlEjb<}RK*HW8p-*+9UNUYS`E6Uux!;6xBB>`f?Mj%Kf%=#R=+TwM`>+H;a^O(TWUcQNO( zI&K9F)+;?ftn+mhg>TSwbEq0Lp%oy#H9I^nJv5&Y`}5%Wm|wt&m!iXubH&_~#h-yn zz$t8TM>f3;6YXGtM&8ksc1K8?UEA~8ufe+mb| zcaYWZunt9F*HAmXSSBG@=#4E@v|1Bns9eh;`GTM;)!G|s&E;=6jrXWY!b&bZzLL?L zzVkxZPAJ)SVK($_IQBLu;Kbe--gb;j>-@lB$NvVHHk1&5=`Xfdy$A#nN=En}lnJOVcXrroj7=q9D5yVa$&eyI1p^7y-LI3A z3Em>s}P!&D^8f{klw zQ`WJ6y@YxXy|PA4d%6!c@jDbhDgGd*OeWq`kx5q=twBGoReV2KabM)m`h>B+Dv-j~ zxZLsd8#fi0G-WP+(_Scb?a`AUN&QY3Q_8A0gryba@oBGuq(Ei_ln8EdbK4?F(yyyY zm)593ZjlHsTZ79YgV0G*6&+T0A!{g=$Y#DYlf5fO85Vcv!4B1P;3pfKZr2vA$4R+# zr&z7va8eu{-<^gH*0^%lQ9$iYne5aME20=%|IU=BTk@KnFK*PC!OyHF=>e|H=WE=g zng>h$`z_2!^Kb=VS2QO!-sV650Bose=sLYk{n3&A4#qjo;LpJGyIm2=?Eg>-f%C zbo~Y0`XA5%tPG}h#;&d@DpL-q%xL@$i+o{0VHi|*0?Xo=GC2{AurzAQH0YrWRF}KY z>8nf)q+8Z7fKV`yhJDaCs^Jz@olYUD=!b1z|JjF*m#_D$4@4lv1|3Q4SCr|)fM9XH z@POK)LbKzWvT(|KFLF26u}0`;w-$l~_9A~x$qmLf zxAa94HKM^5$sYVe*)JWQXXR74s+n)zfJs(?mkhp=99bR4;sqvBT-iSZ%w&)jW}(~a z4JovMGDipo_wA)ZCWVV5&BeU*?x-$5%#QUT#7kYiy1( zRC6zZj;yBX*a??b%9vX@hl2fNLND2qS@h{C*hnwu5(_O)20#z3!H?D=p*BAX$`CON1fbA$SEUsRp+Q+rTd);dG7 z<8U&ioFA%Y@q20{rFkczVheF>S;@NxZZD}k&fNI9Ha5TQeiy~Znb#?h3XQ+K!`vO=LWh6(ZSkSV7oed}`2Cc)LUo80m zG&!!PPaDnpRN1dL*z8yDm`kh*Kk3611f(=Iu^&Xl(@+uoQLEs;qtw|kHN4z&ZRej} ziYIN)D-lUZ)f#8)c45^hQndv!HaDV&Jcu7TCKq1eKl}TmtNGw@qe8RsX(DOehBHo! zi2z10x02n3S+F!y#Wx#F{FRN<8)^pKoc?pLv@G;Vv4fI1*e5cJ)YUT&oO3?R_bBQ& zb{gOVv)|tV@Q{hN;tG6rnMF2N1$MpJ?yl3czqQ@BBOlc$`!x9)nWC8Cchv9VyaE*7 zv3+-G!!Qs`cg-GiMzY{_Uj{uZ09zRP{91qIgu#bG^2l=s>?pdzqw+yi3ww7kIU8qHQQUT6Iehl(%^hORJn`_)1FTJCv2cL%e) zrUu!udt(1S6t=!ueQlzkqcd6wMha zL0;lG{4E}bodOP)qH}p`PO7V#fbIP;3z!4H>BV|}?qNm8oyR2Py6Tzc=7qVa&(>p_ z!b736WEjPFnzGra;pvgk*&-rsgQC*Usnj%a9I#;nUSh15D8AurA~lEWr^ez=Il4u6 zkc3Pv0quH5^b<9OT=c~-9Hgg4ljt*4ewb#>0@477sPG*(#p=6TCo z2GX~r*-YmbRF0hR73edsfLgKY_)Z^><}u%+?#B+{(d@Bh_<^$7ay2Dfyfz`HWzdHWU2T2Y)|W)4tfE zoApTi^&k4f`v`bLfE+9dlss`pmvzW+DfEbyBfm_+fp6=>XOfzpV8tg3{6S?FL?@+eX*-^Pr)A=+row|OGRtX;fg_d&>KnI7?#riXv% z9Wj{nhXXs)0+48XVJ6${QMPAOoqef(3&4BjtC6u@6r{D z7#jLO07ZyMmM9&pqi)k<-7Ya`MxhfDtVXB0t!7oHWmBW7wNz)48WyXHs-<<+;H7@W zK%=JhrB_z{w|`U97#VJ4z;8*5-Ot^-uin0oFOIqHuW?hL(})!sf}x|1`~74;zJh(} zlsmu@4aY%qv7h{aDviq_p`qq|bFgFiJeedxFLmS`)mv&*FxQE;_wOz5@&V7|qb``< zvi%R5(f#Jn00ud$Q`^KYs|)yd_0>dr6Pv zJz$~(M)r;`**kpbApvRKf0XVO(Pi%$sh{=|vv~g~D@U`c90Sn1D@?$5Rqk7Zn`ktk zsYJ@P==GwUs;n>w3M1($Itrw(S66 zJT}h`J8Ktp@ag!j9;+N#`1s#SJwkEFaFW0B=NOsxOl(1_aT~eED6^O=#e#2X_^CESH`+!F2v1748yIxgw*tG(mNB#Oum*B!NSE4 zNzd5m{&H|RuI1zj_94S5yziLZ5eIdbEvnvVSh|Z|W=voKk>EN+{4Hu66h}N+kCo}| zu+X8uj`nKY6e}VZ$s^}u-GqFhhYXW}qGN}u6q}FC{43BI`UYE{8L7tw)qf9Q)cRh+ z8k670zS%NFxS4+k^=8f{mq)N(91izxkBV-CjwoReF1VN+^EDVX`HJ`T`HZ~N7X978 z+=waNlg9KxLkCWp0|Ady(AL5&kExY0Q0jRn3|&ZGNKpX-{&grqzti>Un-LpC_Ezl~ zPo{M2cDZ{SV%qa3Ud{-$=vD&I-eAZwpCA{`T;XQrq!By?HA&OP#x$+t-A%oYA4?`n znRUlu?IxUPog;pb+xcT5+G9#|S~MK#w)2xU!`IqaXW{6{Q&!6XCRgc5oqD4N;e&^_ zt6wT_qepX*BMf_4EJLx{Datcog3IDAqP0y{Tz@O=iFO~+V|omQAC_kmCMl= z(;#cHa$XEoHo(A2_akLp4>h*f16?^k0vX0ZU5xly5eH3USjva0`mXgW%c*WF2BmJe zphlD=Web&sL;=#Vm1=t`Y1Yso6Sz;oSRC6WAPcT;_0(~#C`imz?WE$Zw?9}el%*cu z?6NN^c?m7XOv0hE*wPh1E^FGq3~6jrZD$6BW1rJ)u{`-Em%S^)$lb$X*Z>f80M zfk4JxmrSPIl5PKCeK{Y(+SceXg&Ku5!cjktS)Y~MxhqrU^&8XD#(AlPO+02*ECH+N zz`tEnM^hsU^{x-@f?hJSm4pt1m8AgIxGCmaNj@}rUI-KP_z#h_^l zm&HRj!lXJ3Q3NyH|F(5F*x|CUR4q3=Vc$s~?NQihCU~NACPk$z%gIA{ zU88Fw_(*&O)TUv(R&M!eWLI#Bnl(>Er*?`{V?xoy3fWOWR~nmNF9k+KCg+5%7}D|foN`n+Hwf`JEhA01MI6y2#<(q_F+5=CkREFQ^Wjufiw z2n+n{#I+s+j@Dl0JK!P>^mq+w8_pLbrrGbKe4@R|OV|f1pImzneOwF~(PX!nu1b68Br)K=Q0jU`7 z3=(DOqnxW{X|#p$$i65ayS}+n(a*Z2{ZBMbhTZJyRX&pAyPw~PGRqp3Q&gE$-mefh-MM3xoqgoePNRFZqd2=IcVs{DJUdnOg-2dO z>o8glCpoNDQx~Dt_GV6ONJA!v2iTSs%#(>N|a)f19n~ z0d_{K9m4QT3q3n*f`BO{9Z$hH`(bUJ5bfYMp4zZ}2qu9a^kIGcI?(jY)fhK8b0;bd z@E+Pfb){%zj^>#bjxcnH0D(EUw}|dU)5e${tUMa8bs_wrvJ#FLHN_8+GSyw@8{DTwaL&=MJL968KE~HStq8NzczCeh(UDX~FVq|X%!C|os&xfsFR53-UA&~4RxNgZ-bEGBHOw$@jt&)8(&eVuo;Mg-S z#z;UB^ybcc;O~IZCU%kcLM27l69y(65ZG$e;XTw|*51f-(`*&j%Q;P@(}hg~WUCy7 zkH|Jlb)Kw{Vrg;-ge?ll8A(wrLYqtOM;&wzO8X5veLKrJ+8kHQnKsd>h)t2WR%jrfK3yDJNNvFlS|G z7G#W7Z-DY|WUE4w{9+maP@mr0^YDd|J10tTi=*inBa-y%CK{Y7=LvEy+jSz+{ zq8y>`@63fB7KnQ(2NjMdeJ z8Ve*k=6|zJ2bq*d9DVK~knyL>-j&h(%yjEKj8_g}wd+R&Ip{-!yG@Qv2JXL1{TX2{ z8&L^IHsWRbe3;U}iK9&b9nWzeEphrFzXGE*yw?pMD*(t_qSQB)X701*hm2;@bQa8X zC!GmbD|&79Y{h%2OtG@e7rcZ)gstBugOM3V?o{9b@m&Pz%3Iae8;{*sgo* zF1x6GZ`=|XfvSC1m|KA#%vI>yMF&qB+_2kIsITO(CdK+l{4BNrjGQW>V~PsB(Rwe} z!FadxM6Yi{BHYMpn-jMcl}ZpKz}S680Lx9;GM zj(Be;a?d)Gwyw;YQyh!SmgAnF?KNh_TFbUB=8Zs%hJ@{S#`(^a>p8<=(BwA!qoj_N zr0JSx>kf95+9ou>S=3oVir7)dN;Kof&FHc5#?oZ5`bBIr--49p@O(Sq^VoZFmq)iJZb;O+P!$iB0G4((gBZJmCM~>)$*lz;@aecq!VxM$zK$DWhU1xq*ACyr zswWQS0k!N04bScr1_LEHc5sU{?<&QOmaHtQ$ML{3g$0$@F&sss;V<&BdYouPli;AB{?%xGqoK7Yag3ib)M z*h)*Sr3HsIUGIVYs2X;PIq^Ip1#h4Hdw}tnp7y=dQ84J&Vxb(ir4o=SSzi>za6G>Y-NPkU*Xrk))t zuk%i+qjR<_qT@P+Fr3`mi4bv}i!&I5wJBnG-WomrKk28qxE*%-zk%vh5FjAFznTLw zVCkd=W*k7Q@|41$5E?&b!s9)#0Mi3xGj132Xh=?CCIuEI8QnVk%{&|et693tCp%_9 zAfdUPET>fLw26X?%PlwMYk)t%52Sr0^oJ{?zDT(ELXn0lGUD)}%Lx3zg%6Xd<8+eT z$nHE&!Qrk@)_U}C7aV`9mK=Q6Qwm4jt{&acFbtsMSFn6mE-y(loaMrg)kIeD^VGMv z9p-|JiB+(JUONA1=Qir#q<65%R7r3LAuBT!Lz|cIanG+pMMFx|i79peHp6lQ3RZ$m zfNq^RZVfEWvo^Nzd&C5peAng-<&M2;IV!4)p&2=2^bKX0cEJj(D&6TR1uoh4jZfE% zwTR4zr&Fv@Ig#%(jWMD+(TM-Di<{D1Ly$!rJ>IcbL=j&6!feBjq~#!|%y0DUum33N z{y+RDX|g&^U99Xhu)?iq!|J~b!i zQk#F*R7_RF<^9$wD@6{+BMIz}467+m)wqssn|yHFh71-;X>$hlQLA6)RDIjIKDCO7 zy@sBm{gS;ZUs{Ag+1Rvn`$$S2(`(6LH~E(Rm37ftF3o6Q_-(#+u)n zO*f+_?55pw%6ez^`J5X1b+z?xnDcTWIagYOx6=dHxvYZTp`=J5K1K0`OGJlZGtJdb zR8dl%wsU~ZZYS zF|ozQY)xD#DJB4b4azb*!K6JN!o;sy364@4ukhzIId_VE<%VegklO!G0JQ4Zjf|4U zsA|b%i9_q7$F>!-xO66W?;;&W8GCiVEp}Jq{^~sy1Up}tFpfv)ueE#lY|KQ0wR^DK z<$HN&lb3YV+V!~FY~wq0Nt_29jTDTWOL7~$Dhl(9NSri4)9B1rOj6PVJ-p(9HMDE3 zo)+1(Q%PD#jMMx*^kXbmu@Ih*!~GIKvoKEL>j z@`I1JAg?!KZJak%Y$c$19=aGsf2nz7WSMIQy2Ho%DXK!8ckXXT{i|- z6=W}z=HdgWG6zNuxL%!lLABHfT$vqFzld1D@JJ-h>-l+v44Rw|^GgqqG<83*`^L#wi+>OB$d?s6Yizi6T$2oZz zylxTzJJ?ItV61e&T#L^m3O3%FAb;U3qwlLdaJO(XGn(T~iprTuQJD6czO^`+rLWmK zqR%Q~yQXhfDzBlQcP~-pRnRiShR*JKwWw{G=d|QS&0x8*4l&Wb;A$J|z@O(5X1ydy z>RX&5L1C9W!ne^JAYVuoS!3E9!P4U);NAxS8B!VqJCd^;qcY!4+-#8Cj*V?i86S&W zV|nMY*AswgP#tZy@EM)1nLU{{ljvS=sV7Ebb*1`)Gx_T`be|$qyrKTofFj&?Eox0N zp@Tr}#x(cn8`=pS^rigQ&sitsAd0wvG%kEvZX0ok?I`tZ@@|AWMuOUQP?}oeio$OI zwAyetvLkS=#NPyH>~}rm^_{m|>;&>1I2+>N8a2l!LHv5ec=m7NvE&Gqz()O;po;dh zTS#QSXd@}w{6{hx(LCD!3<(JoE%Sz>e*2adwOQOaNkFM(dF(4KkA+_)y5J=qN zSA14bGcX_F1TvDQQDw|X38pq;{Cik{Uu-tU^mu%6=*aBV^bXZAR0orlmB7=bS~h5v z7*7L%Xb5WR=J6y_i+E|p(v*z+OGuft&AA5#PGJNc1iH?=UkA?o?O6zrfPiTca*L(3 zmCrocTJP;X;3{UqoAw0DOD`K@k9-XM@-cs_e$Y=2{;-ixmDoeJ)O-9R3yu#!i5J1t zJqYM;7SP`?7k`Ffq)n*AlMxL!r^NVv#qHQ3NFlR35_%4D3!yAQsWqe%RJgM$GzWe9j&dG<9&3|OW2QDx8F6aIp5LW z(Q!*J++9s4sNl#mbhyVyDti9zT2vimZ@V9KZeAFZs21uo7 zX=YaPFj`@~5nO;tJH?Sawj+4Hk&0iHFc>pEDY_8qA`2TfD{wOrsVPSw$2m(aWIeX4 zi9Sb!HD_Iy-6fpf@m(s zUtx>3JW{;JCC?&od@Je_F>zL0xK${i z%!bgu2{vtm=xcA87^lpuwML@NahB1;Qm-O67B?A)`OhgZ5`P1d;kHuPO>Jy`yD_A# zsCkI`f_s;es7`a#%#^=Zvlm!AZKFq)2Hv}^q5)bjpg#_ENK%@Ag3p#4t6LDp#w5o5 zc{bUQ;wTd^K9DjCftB2DKkVq%7f8_7va^d|!jxo{XyIOmS$igrm#oEa~vM zsX@p#SN9e58aEOPdeGaIvnK77G8$YUvEMK6zXz41BbYV9=zM zo6*yXHGzHt5k891$gQ&%?34QGfgGp>1}olI1kc@bldIo@J5c`>&`NW?Rl^tU+v-sn zYgJ``+Z4!@SnQxBz?p^lwIf9Rv8(cL0AkUpvzq^7;Wz61k*Eo^1*KoB@Fx6 z4{I}5F~nJOVt4J;6V@C=9Z-8vaTOkY*?# zB@bq-*`b6P5;Q+e)y>WF>|H$AIEH$Ow1;pMk+pRv zhS}bbOGtdDEA9{9D_-@1Tt2`E6}K~bDyf8}K9tVi06>ow(A(VWii%}#ClmR#MI2U6 z+71dIa$B6bGu;?3OknAx{NbY`3+{J5Cfj<;%y^C!cbJZE7gJ^WvfJ8m^&7BFhCc@! zH=FH+`Y}Rle`eY|zU>12gX_W~wJ4hC!erWgBx9wWn(?==A1HD(%A&b2}A!}91#rufsZ8s>39 z~jT+fpg5j}|$V|?xI1%1)rq`|c& zg5!80jBgXkdJfa7ZT^iWo-F)@SiZ%N!oJj?j5%7jqpvtcvq60j%kG1d%$Z?0%^u}u zEB>SHcc^DLV%wkZBBxU>_?$!T#8C~a7_+e7mQ+6+BzHsy6dQoWr(iCU3_hh9zsU@q z4iO7anSIP-{!An(7hWC;`TQqj@;?!i-wK6~!LUF;JeWX0%>V9~%Z88uDVoqmYAfjc zj2Rh!EFVQNpqK(#h)hrtV_@3hB1FLCaX`({mA3LG$guHF$FxK8R~8Q?Y^z#VA*yO* zvQk&UYkn}Jx3q3<`WsfSZi;tp;={`L-2P!5BEuFM>3;q8eckcA>p0teJ$)aFzk_5_ z%()bYzFl$3i~n*U+^p9H3|aa+nYLB?DGUW7@_1amb^kKFFM#&_E21Lo4f$Z_%Rdk% zqh`vrcGbF$l%+J$%J=Ec)CMhu{fGt2Vlg}1^g_ZbC%ae=5{&CVxX?~}Qle_w$ zp5Z4E_dAo#5Oc%Qov-W&*Zi$iisQhW`Azrn-5!1~A>(dx>~-=U;QuL`g);@87-<1cPndks1b3`Lgz5G zoe@(@ZDOfaQ)H`9Lf^=gNk33?otC56vIaT>X|d0mrkybYEW`*XE>%6DzIb3|G)^ zfQKF9>9hg{G)*hy_OZT78KFckQwmiT?l`liC@5`oAMIp8#h%u0+U52QPQFijy)G!|zU5L2IdOZ7kLW_{f!PBA3$T=kp zK$Y#mr#p77c27R>WUk$HwiXv!Y&1$?%dGPoZw%i6km{K}AtlR)F71|)=%jAS#squL zl#|2cV{P2C&h~*7G#MSa^+(MLfJ+hm)(~u%pLC5bq!YScbl}G;)jsiMzlCNIhvCqs zGF9!?-NXb?voUk1xs}$^B||1_Ta45aXgf?$bDEjtATF!vn_;=}dY7czI^&WZtYFye z9+Z0qF!3D()39FMm<5Fa8j_nTw_3i`LsyTC9^!~rF~dwZWG-~gOHdCYRAXr3l6NRJ zY>c=ysHVLkPd58?s#UQJi(|0bp>AN3B)YoD@MkP)YJRW+gZ>!>zD;7^os z&MdKIG!3G*uA#9e!$rerRKp4;)@brM1WVZMOT#Iq>JI$mE~2KV0uac zX*P`opEfW{OG>KZM{MrFL5N2dpt$u5N|ck^ZiAKQvvBMg)u+b9AA$M%Or%!j8JA@8 z*@D_Lvj;q>ryWgAv@S2yY(8!w@ak2UQr4m?Ror1VN=M{PVxna~WU2aTe7i%;$!$G^ znpJ`rv|$#$B??B~NVw&AGi%(cmoVZ14@}(0#iXhhWj|~u8%2$`7N*?Hg>cA;2Ry@H&CnyIdI zqZWF1KNhc~i#RikqR19{`VnV1-G}4}$oj$M!KW-=tydDwVp6~L&C*Wt9qf3O#4D-@ zhx$7zT4`!eu_&-;apaD|w#0qFRZ5xMOO1-UF6SxrQ6xo<$t-7mx1WkeRttHe701bN zqt)Xl)t-czNgh&N(-Oprp)OLs1uaHV$o9{|d@Hrp$-5xF63RFzr?^Xzc>-2yJ)%wL zF5HQw>Z;^uiZq8?`DgBH?d^nSlMA(%TfXP^G(};4ogwJTB0~g-+vFC21$mKP2JafR z8a=E8Mr~@f*%p>`$77W(XI!?+U_WRRwBMuiBggA`Wef!-WzwU71ykAs0+P_EfDOmG zGmTe&M{7E?h9G0Z1i8Ivg1_X~Lm2ia^2TW16nQ#{CzGT=$Hs>3{o#%lbg23#PdLis zUPyRBuIM|G%<7%!1*sC?GhlqTFY|^gxiJR>vGmdN30iBYPNiIi;puj+GIPqH!E^2I zhpl5k-JAe15T<=+I_VJdpwAW#`70`UxlqrrcC70UQKu!CIdMc$+~C=Qw#_u*jchnL z5A0-1CI=|=t8k@`fLQ^x8&P*(Q-~u`hQ2FqFNpeuyT7qScXPNVts{n<%;%q;m z%g0VhfTy`CgeprqP2S293zspb1$wpzN&G{XtEIf-PiLc@{(F5s^HHFfpOO#(b4j37 zj%U4>NpJjB2gJcFh+R&IIqi_I8((zS17GRVui!BVau&LX`0#qxg}?Md)^nrZwSrl( z3!9)8H`g4lm5#oqdTxo#4?M%XV0BDlw} z(8cHNAvIb4oD4(0RzrL?K8$jk??Be`LG}3S19nVi%aKq&3QZY1+pEC%H-2)nD*rtm zW?Iu1>W#x;-To<`Y#V_;c$sL7GF)QZ6xQAZRx-c?|=I-T<&T-bbw}$9McQ@53Ax~gf<+k-i>#rKeS*TF!^U4j%j43I~Y$KM=CH`r#8rYMw={ z61SleKj0;u?D2*xU26Np-l z^{%jeRN*u~C>NP9mZQXY`NNBNm`sO7cu4H`i^nLLPnH$VrJCg`z?WZ|LosTY=#=(! z0ryit6wvPlXL%aoror%BHRln5<^r1>z}YZOlspjp(-I1Htt+>m`%3mJSN)@&syI>x zSmX6d+sH9B0sgv!xX$p&mz9h0*!I5ZC;hEt(l1#LV-MiatP?ZG+@9Eg|HIWgMQ0Li zYr`FNY`bIIwrwXJ+vXeFwylo&#x}cS+qS;^=lmCE?=h-wYSc}wG3yy?&H2C}wj)Z| z6v9bHVw4WI_a1oyGgh0R<)l#WJD7<>VY1_(ZSUM zAqv*dvRGj0X+!2A-pT_<{mW#D;JGL_M`G^~^?ur;m?1t?(F}XoJGtn$+3|m%UaZ3R zt#P_*cW_}gJQvvYoc~Q{O#?E-ii-1NX}}S5$R_v-XEX4=$pf7|*&G#F&C-XmHJl1+ z#+#+2sdPthZ`C`R4R$cTmxXF-oSAeyuqVJ~qoaB85@mZX+G+S3{6OVnwVINcTTpNi=aH_Ku5NI`ZaN7`xd7&XXgf>7k$LhT_D<`L8F z-xb!RbW=G%ue#jw8_+Se$b!hCPw<*JaKSuhNjoY83!@ifTa}GLV)wGqV9Y$1Gh#l& zXiC9SCNDolY2h|t%Q69fm5|te?^hkm`*C6M>^x=4!Do(6)8d&eVZ?w2|3~ztA2S-1Uge^NYJ@2e(cm^3ikrxEI!ie zm=|j-Ozzkdd$rvO(`9>Gu?GPxcUVi_OU~&l5&Ma2qaO5vvp)wpaVECXUQzisGUbuh zG@I2&VMOM+8#H~JiN6Tubr=tJobdRWDE)6%t2{Vw7jaqZe5aod} zEu(B1R`%VjGC$2*>O$!4YZRN=4Qxv-yqS|MdESaHqB$ZmH%ME}3RdDon@#JJ?z#p;22( zK4a8y29OS7S6RsGwAiv`^No(LiT}-^KdK2dZO{RYaVN{zEdd@V(k=E=aIw*Z8egmL zcXCY;f-^7UJKe;?#vk#Cdc{|f9FsyGSFn|<5^`?_Ur{gNbBeAG>E$Ex4eqUybG4=8-l~14mM22vL z(oMl@{PhGQbP;>v^hCBi#ylv(uGnMh7Sl1e5ijv30iwe_v9XsyyYri0&`mkIU?Rod z9;03BG6^z?xMrii1dA7NZE3wM9a&&{CfZW3M_x~t9VxL8-GG5( z)>xc9p*he1b6(An8dtdCT~g=^95=_k7H+qwY6X)|kJ%>=e3AXLHecSlNRtU4SP=yU z|MLptD;Z8XhwfTTgW;1>S}p?V;7xwCOJ1}HiQOHIdIsc3iA$WNukalJxJov2UMIyW zAv%k8h$ySm}9*XNSju^h$Qbj`rFSF)19NV*_2>kku&+Hx9M)1qH@cxVoRY|{?u zcen@OPjyQ_HDig)IHYPmXeSIY3={cSL@ucw53P0e4lIB}-7mP_hk6J@0?P$oyRX~? z%0jYLd_EZzj^i{|A$!jNdcK)?Kr#jorN9(6VpWbu`p3wb!bTw1A5?Eu0dL*Q7!dS6 zlEphi$(MZ!xK5_AT+So-d%yQ@MwzFPKy=R@=p1+nEPK-gc;FH=NAZplJfY6l*E9DW zbO(+XVym@>Y{d>>U`yyhr=a{&k2lVn#Pl8V|BN)?zO~&Wz~7mH-#ifcBn4eTfVYo| z2L4wr>xta_1dZaaJwtyxxqy}+B3w(zB8F5Y?fh`CoHbjgEPYAm#w^@?S^V$5hs!Bi z#vd**9~xOO8)rC-w8n|On8(Ql5L)Al!eHBQ|$;ojHm(B9riSG`?M9%X^v0N{ z&&7m!%GZ_x{6*W1e%Xo+^Kp>qKJxtnfAW7RE(x?r{aUxzu5hEPA`^djY|7AXEbH2m zEpe$5$?skm#d`D-E~4Xs0B)EmW2Vp9o7@MyFW1>!%!V%LLO*0d({-sd!o74g9XCtF zWcRYgeik$3%Fjx>4bBhW13pTdTYV=-$!=Q`rkm}XC#&sN_HHH#_zbh=Z)FDxWbj1F z3LTmNaV-kgY0MXCSorfSJqh*hRwukuk!^w^^OFloovd?vXZ=_VO2YCe{*5q0ciJlpM(xlu$SR*P} z=>~<8o#KYRZ}!he0J`&zF=guercU->5Aq_N*g9G7BAPRuCYz+7!o=VIT-gu*@#7>a zIWlL|%%5bdTv#04J`B1qHvBv3M?jcxUSaYSlUBfOXdcub=MqQDR(8nb3x25Gjt&gd zEU8w&prA=I9n0LGyO1rGQNzGvzEc;zVkr)a`KvZZE?21;2Y_F!+%@Da+=itl7}CN~ zzQLNVcqS&$xDM_;$5Hxr5+TsIA?>c-rAd6H&Q-o)^U*`t$`7LMj?54@^;CdgI4@qPDCsC*{!E8ZP>hK8-yPK(UjHK+EA zHK=pZJz_UL1Dx|v`$b$(`-R+5e~TbhN1r%dYj#2XXfk@L;;*Pv+akY*08V-6>H1o$ z)P8XSP_(r6wu6TO;U=;?i4*3HrKV?N?C5~O1yI=BGAGOCwaK!iSd)4su{Kj%8;bY#T}t$cR9ue=)!i05%N8K&;i44<@TC&3wmc~kHqiB=shKE;+)PYI*EU3^ zK~0qwFp6u_|GW<4u|hRYS)^?zDDa!-iOHVPe)xsCEZV)b2nO~X1URYE(WS+%-(!n$ zr%lK0i1-Xmw~-7Vy+BXkkE|U%tmD!1)9GbLS88b8f>&Qf%DCzA`?#nCG^&l3KWtrW zlRnEZ;Tzzy?TQu@t18?EQsuJ44UR^q&yS1&c#eP+Z6GDQ`qO3)oxio^TciG(q2&q9 zZ73HB#|(}1pIg*mnd7v_ph=nTPtBQU7&CJvIWV8Oa(U`!T6^g8U|hxO>3Cx+t2a7v zd)ufj9>k}s549(l<{qgZ)-Gn8m<1J;EQgjUE|M&HukVU+mZ(W|ES8laZPC?SxkaS` zu5W*lJ_O%^+h%f8UAkwx_n6Je`+FP6zmMZ&aUZ~9$vih*ZO4HJ(Cl|fRw591LO37% z^y>_5+&_RACYJx>>qmt@Kx7D5<66VA1_OmLi*(nFVR>Z>QC|OAcg0#d zl$@0Q$!K=Y9g?EFGz`pfaWly zB#ZbKBFexSYg`aAz3ZFqhY}_I{$hA#Nvn@bTFvBv!{89_9!#7TFS9;caz^R|;7^#q z+iy`^Alpx|+gC&7&cZiwrqnj#kam-iZ5R*=Tk7Q$S?@s~aRf|W!E`j^xn#k0bmOr) zLR#(B)(+d&#OUb7MEx7CsTh73_Mu;2MX8;%t=*QlXs<boue#a2`S97`%2&z*|-ef4ihTs3U zEvs!{pP--=@)`97oGqtco1gv9LE{Z~_tw81UZb|r(`Op)kU0C{pVgQ|Hb_wpL7K5K zM(7=b+%8e__u&LK1+87gvHS_-wnj;9_#BbmQiMXfctdi#$n)m)TG=8!fHwb&dp|+m zD4{sWHS9k1xIo)n3^>o?vW9Yk0h`waf4Q~<2=@e4JPsmBLYzA6k7D({nbDu4e8Ciq z;Wh7m>5eu7Zt6;S6O5vIeqO{Cmy0Sj)ZFw6!^a>Vljij(SILW(cIQ46?kul|| zoDkKHL3;o|zPH!V>rHWj2_7!+0r z42G5qg3W@HHTXv#>8~9a4>|TElQA=j>1mwavp@67HC<-`+Rd7{*3G-k;7Z2@9<9y# zU016*Z#^|)3s>GOohzic`5%Itz`ZBGr-#RqxLj^oQS+NE&}0R|^82_SFURT9gw*#5 z!a-rSnrTaT=b&{uE9D{Yjvz;L&)4 zX%tb0k(^YM6j4#Cxzrd7pm@6{Ah~@*Ah}~@;F5bPeb8x8{f%h3`1xEunf+yu76f_Z z@`vF`?I5`$hD?))KlCcnQ>b+5r>Vh3Qm8c|09V-542qrwi#o_R!p=gY12y2 z>p$p95y5rk{4wtm9f8Sd5j(sgGl+_GOO-(0URR*-fmezK%&3}?W{p$Ob1iZ>J=RFf zda;AEe}r?j3lk6!G6$mk zqpQ>u=-t9~b7i*(Dejd(nFAWNZs~(6wQlhPYqd{Aa)rHBHQ563h12SJ?+3{=C3F^^ znN|J27H)1h|BTv1vP>Vz;Ar|-J$3fn03R@2)TJXlRoXT*I9K5QTXof?q7*8OODE6V zEV*?LZCz4vWbi3}213Z@JQnqT?(V!~r2}2fI{R3^S>zm%O3$2Q<`T~p|ac*MH0Js@2 z14UeDcn&-Z#nnX}>A6T8?eML7H+?M`7C+Ht3v(P7`imLQuCrL3e*m==Ozc`{t=C#`k-cx; z=X8)jdm9@OaPXW(T>}`i&I|?X0qJuUBUU8HBnhKG1Hn)@1R?R2Nd6)Cm72c=o4O1N zHd~c&qD3;UwSaBnUEhtK*L z8S{3C^f#w7m1Bej$Pc7ivDR_YrA6e>?VzjCh0cy~dU&;NTDCn#XLxni0j?JlLM@Xa z+v2xCv(DUjV8#7QG(JK7o#>xf3mpKRYbI4&}aPzFz8`3}Mfdt|QmYP=$ zsu(J9CD7|G(1_o~eqpwQsIy1mP=v8A9+5fQ)JAd_uPKQyjn3=5*lPPS22O#(A&q}W zY>B>_Xa&#JYaA6s{f#d;OGRFi=knoiHjCjCLpK{WF*@RCfD$_j07kv*t2(Yy0t#`# ze)fL@R-CAls-4dd{GC=g*fDES617K&wkDS#YWi28ZA+5B>wAz8=22tp9r-h~HR)CAZvedmOVvDdGa9iI#7|O1_|Cu{d-vjhs&& z*GAbCSPHkpo!HF@7#r(HYnu~S?LhCSF&|0}yglt0Oq86gSr5R-P{b>OG%2Y;qhx!< z^2IX>_asx*Xz!PFSu^`H%yBC>o2VjdSdA=hGT$&S5j32)pOrItN$lWghKUp+P;yiD z!h!=x6@Y}_FCQv=rl1znrF!>_=@GOKgj7vTY^K8jB-jT4ZD5|!g3V-H<%)-+ z9x?3wf)I1H-^u!kvQ;zJT)6-C+EJK5U+)~(|77)Ux>?}feK;t2G=q5G-sjXXQXabO&#>65|Yowz4h z-2_7zKG(|fo%wqiY2K;Xtq1ozak|9pi@u-nefr_#WNoo|W$4d6vmq5#o#24W$cV;` z7+xmI7L*6j0eao3-aCfvud{HvChYq*s7;msKHGMSEx(50bP3s8y^|E|65f5_d<6p{ z@c_AfkcU>%>5*}1k_&c6PHC>7f41{1-<>}pP-=#I(Ci*)gvURchkJ-TX6;Y-LjYwr zJn!BvrbP>Rg4d8CU*$J>&wiA3;C?V}x8p<`sPE=P{RWCuiIQk3dS-D2HwGtO$8{(W zXZzYtFu@svDrsQ1*wdX##S(9)1-D*!{7Fu?)4lTi+F`=(ZzI1=as_pFbCibj$j(Eoyb@)_<2*lNiR$|u3BP;Pz+K$ab`JM2GP7)dT@E*{tKSHeJ-Ps&2e(+q4e1~!10*3A=NhR~ znPDsG&H}Oo!=6p!+&N1%H^oIJ6D9;Rk*0wA;o|YAepgp6Tix_K`p7z{&VnWD73kc}0fQ#g&U?`$ zOY8?G5f^gk6Dl4Xcj)fHPARv#q;G55^!4Pyj|-<^m+78cMQr+IPRSrar;CI<$riG8 zK?WEO*8P8CoKM{b_V#~bhJtGwMQd4%`=^2j`^`Uw5$>ONmwrHLtfc}NjiuH;N`9YW z_1qL}x8T~2O*4TSCQZ6?0bW!R&ewId@um%z3&4*+u6DyPNH(bqWD@8%Dx1a7SSSC8 zphF)`(gn7}7h$X8R;DiutdJAl{6c59l@~acLxx8U71*1t%pcm$IRP89OHz%Ou$SSa zB@#tThy1yk96ABa`;h<$zho9)p-Qr(mcO1@m)zK=h}OrKr@_hesmp7TeksqB^*5{D zvb4m|N>&gh$fW01oh*$g3x3y^SVCQZPd}QoqwdA~!y4^frxL=jcSge}_+AeF0xsUO zPFsk}WQFi!Lo{!YBhRi>0R$%P<;q{>rsVhL4^NzlK>aJ0ed`AR_y--8@_1k+q|7AN z);k)6L*~{g6@I=WC!)<|876Mf9;Ah^il>87B+TRd`Znn=n4fyANf0=0_U#&Wbcpf^ zb!1?w9^sMNh_j2^O=uy~H)(|@RGA><`gVTNk=8(>s~xMnvQ>j)hWm@6zeM&00K*vN z8(zA8+btGWY*jNrOOuxf%xqp_p^A!XqB~*;a~V-dGxky7D^-^JTRY(Thn)hqs5T80 z+-x-%>)U9NvdCW-dY6NgR~-cv##BLp#`1Kt1!1466IsD*c{bLt>9Y1k!Mo9X#vu!S zvWjGWg@b#s%6y6PMExK`zql8J6S!9eZNVUy)TSZk-}lCVtA%^)S)btPf|>p{m`m4% zBgVTQcgVjx2rw!Oj*ekD4GoDpAiPCeJ04ve)^@2pU^^QGIx5D`ZC47jWMy@+)}7oZqC- zx9XO|x^@r%cUSpd=gI8em0cm5kppk#4TZCvvss1AHz{EG6OiS^VksYJ~({hzQ9SkW;)cvmWJYKClJA{14RNngMipCua^fmP5gnnx80kyO z>|9PD@l6;ea+mu-{5o@-_xFzJZ3$)H>rA1~k8=12_}O;Rq>f|C2FD1(dRgEd&?!0H z9le6h_{QIXcm~6r)h+xqz+1NasbL7@Eg(BBgESen4MQOGM_4#?%(okeV4TT7!vb&g zgz<&{ia_^rND(%8A|UxAjOZ%~0mCtjo7Qm4>az<-Ouuu^f+e4wx!Z` z5VCXt7)DM5lhEu1JoymE28mSB;-j0lABSbnj}}C|RJ~>{5C)m317)%q9&s6w&=#rf03BAMCt zU6yKA;Xz*qh_=!m>`Ux?X*`1_BE-7f(eD=JX=)MvxW+E(koQwq_TOvXT9N-2pC?2B zpOGLP+rQWjk)3WAZ$%atac=SR4;w(V&+HI4Rl5zG81`#~@R0Rl3yp|INPkmgnGthM z7ttV9@x-sY&Hr2#Bi9Q7XcYD91);g)?;eKAl4j1%u*}90a`1!Eidaj zwymC3JfgqCbiG-aiWS%!#t7^q+DXqHcDaOlx5Bx@P^&bN?Gxs!Lkh*9C@ZQ1tQT+N zz2aMh&pLf23m_ZO3}7@!>dK7RkSl3LnhgTHwxX@JV!Z4Nv~?r8&J=a#UCVK62CEug z!~gAdN?KLQW^N^ohxy<8E;1!HHjV#rQOi~T<9x@S&1pWbr&n#kbV4N9@ zB0h}b@YVv3AO3ldkbOshweSEjK;BHmb`5wTBW+%MTo^d+ZSfx6Nd@3Qd_?TlIPE(; z{m4K<0L`O}gGr|Xhh;&65<%wBfgvNd3!OZcUr`lRq~XP828!8t9Y@oFM~CM-*YI%c2eA!_XPo;2BF9C#1E~#< zN*Jq+7vi5@`bc``HWjpE3}l5rNf;do#=TMIgr7Ub{qU0*!d{?Kbi|r7L&lqbpj#nZ zEuyIAa;uh-s}{pka$qh5Ey^H*jgW+QfAn5MxzrQ#?H6HdAU)iMG0$TdevrJ@FCG%S zMl5Egm*8(}FM(kE>iSFu`28#?vCef)b@ONR6exz6zZMV>pFn#Z`o-MLu@Mt)s{{q8 zkTy^ZIMUEUezH#A=eXBdBHT=tL!C>Vrx>Li*y4u?w-oSF^+`3_43G+I+}N>kr_oMD|?S}`h^GRi0OYYt}=ko6DMBY$g-N0~xr zcDoA%47cQ7Vv@H_Ll%&jGk{|RK544)IZNK8S2d z@J?doqE|E5*wl9a%htTj+Vy5bb+;CH@ihP3@S7tW37bn1BRWD$%koC(bWB7o(ta~1 zY|#PDj@_4%XEFsEaHduM!qucGk?@`?LHGuW{d$s4E`T|jIFdqE^Iry3afAnf44qE^*9q-5U ziuPjq$>2UPq1Az6(qpba<24g}@>T3ydHGi91mMg+P_CM$yw~e-j{C6mcP}LJ+Q=%;hXsI|FU8OP&k7G(< z>(PMB%m+gHrbO6z1(@Tcn5D{t4!4*rxe%X&fkDdXOqRaZGNh^e4>+9Yo(%yXVT6bP z_qjl$y|_#4Sia8PypLSUP(Mvo>Qd{B)%TsLC5=*L+;OR#C4|r@VKN{3 zCCf=MEq>~Rxk^O^-HB>hD(^#E!U02`s)^oNAzyBU0SvsVR_l=3J5WrXtq$|5_J{h; z6Yu|84|OPZ9z+PpZ%?;x0>0RH=MN_-euy4WqOPN&qJj45hTv6pMX?tl4H3ye6T=^1lw^1Kvc7zoiFOepxxn`(`8V`06SS1cycuvF?JwhdMFg3-X44 zD{>ogP;d^xD-TR9xlm=WsT47@IOuWbiVevM2h{2R&Kx+h7-Gv$A2zrfrQ-mG>ta;Z zf1kCFY?qZDnXW5MOlN1yq*~Efw9c(s`>1f>U+Gr!LbCw^qJ`4aL5!mL`pf6JZ>=b~+gncHI@cyfejs`2PAB z9>Q%yc(*@svv{SiRMj3A*+Wd#`_!2$GTC8wcP&7vX{Mxa)!4#e<%z=Rymsybjbn!6 zWYbWy;QSc)nd*yxPE!9N$edhc*B)+c-tG<1J)=1#9TdQPf}E!>OB zxm3Bh0HfLQ|Kw|o$OH5D$j*07{gO`%*Vt24L2(kfmFrxJ6XqPG!eXj_N=P82Ve5<# z*B)#3|7CugH#~k;r28w-R}&lOAU877Htu`;488>J#V#Eat8k;mx7TIrSlc6SLmHP$Php#8Yhg4k z&v0n_WWy<=9)ujHvi5Ibz|F^p<)f)fIgFuWqi7w0FKErEx%`w~rOv(WBdnzV7FqzI ztP=0i2-Ga1yOh}@L4DN%;4JPYtM9mu;ht){;Us`FfX;y}DQP}0c_``oE4Kx2plLa@ zC4{C){`D5sSGhsKD<%V*z-3sTCK84Ra~c0LuSZtQ&KtdzPF60#+5~R?TfTt$c34#J zLcG&5a-pE5Jhj$>j-CLsGEA+CNm7(zABzFSi^#xR$)M<$@COwUput-y_QTb+(z%Vh z@3B7XuIl|Yv@y=vxY!t-*a7FhN0W5t}DvZ zoB-rIqVG*n#oLjlMvbGXzylt;`Fg@UTY&T|Ofl!#Bho$Pr;#+G3M>pOd?@r3Se>%J z*N-wFx#!Epe5RxUK&{I$G({ADS6jmq1>i2r2w^^>viWwKZQ-;~wx@br(JgKW`i3e0 zqpA9dI9<&PT=H~>=Dp zD~wDHf=}P1cJ}xr%R`3T=cWV zVp(uCw7TX;pCD=1Bs}h&Z~v+br|8dz{Jem%zw`${q$f(XzJE>P%ha7p5p+J8Gwk*`UYMYpsVRwWp4n0YLDl=aW5@ z)!{~Q=F-E(=V}ZY^CU1#qrDXqWtN|0;0qPNin+t&%%oXPKcO5IV+fX%SjV8-&@okI zjj2GPBZVdDFxu9LMI&zcqxQSd%(=tH;UP`_l(CZLNtXJ06>a`MDblw@)fFWtttmr$H zUKXW^8LRO)IV)>!Ow|cXWdh3CZRtq1+}vD19BDq@*PJSUS*D2rfN@j#%#lgs#>?UE z(q?ybvbbWHftezeCN(UWTto(DH3sGdg#gZ;+c+o?53uT354a;B<#kC5={N3OAm4*T zL9iw0xDeS!M8ALd?n{r;rcP-ygG9o4qObe6G` zkL^fHPG;0qQO;_Bon+TVRa1r^F!kiq&6EfdK$xh5EETCAa#s~#O8qZh{-1;+t~T(u zoxWk$2Zyr5GR%IIdlJm0%kRq_{p($FIG|R%^5%NJzP>220GEJjfoQ&mQD?gQn%7Ir z?zm6H?ka7|p(DSYM!xk%A&p1Gp@oB=2MAG`-eKa1HB>0a>U>CKh_`QQ5E$o-w$7QHkietNatqERG@HPLzsb91--L&l5S%Ye?Y0{B zx1B1!J>@gB-}t;P8+A}&!&GwRqiV(8>-(w!Os%;M8CR;sd z>Swx5^=lpga41pf+8an$VBgqWwvC8Y1#Ei^W)?!Pk#{_sbg%R(Q%@LwE()yDOmy&A z2$@rJHiljOF7MjFr#jjKz``Y(?!ZGPR;kC_)EdY5ztx2?`L+(GVY~9%)M^VZS2Dw; z(51>_?hbYV;!}1e(~VIDlSWJE9fz45{m~k!scZo46W$~ ztID7eVvXOtkOOBEJ@Sp^?&3b7sbkYMwr{vv&owOyoV24j$!AE~+@Hw<4l*%bA)c$F zjaGibI*c{O(=#Y>c66Bo4)d+q!5h52!IDaTwGbI@(xJYPL zm-;@F~*S(WY%S3mN9k&fBtpvHLRpfd#l0VsO6KY^u6@%C{ z{~Ee8Anmu3>%+F5^*|q1nx?2@c|77Bd^koZuoh$L17rz}^M=7#M5y z!?JJ$?f1EP6SA)5opnQb=DXntmzbA6P1^vg24cUQz~CpKXq7gC;_lj`09?IaAOz>4 zBt&d`{O9C#UB|@9cD$mNQ5OV|H;lihz~THv9BUn#OoQ;kp4UJvLrUqfB6hPjpqhYrgnIX^%L z{xKbfH=o7!S|*esBK8@XK~;Pa!agOzPy+M5+Dbl&cQiAIAEYjgPe|6bY4j*3jMVTk zUH9Dd7}F`f`!1Ce+Kr29m{LE+(&`VB+g0fy_0o>N(7#NupHw>X?!YE{1<{`oAbm!- zukjI{W1F{iI6wi|6pUs;Y5c)6{%=}O0jqrYFKG*ujOAf>uT@^MVA9Qz z4pI4Sj^}G3zV=PQId)FV z9-~hP#j~~STWsg_weLmY7)DU*qDL;p9A5a|(rq&#WIwff$wFt9O6}7jV0i)kzXs14 zgS?W72>Q^(9a8%++d2jv7+8#Fn68g*IQ0jmfWeNy2j{L@e z#WRQ7#B*}=Nq~;S2Q0HWO*OzWFJ;P^Ik%x?vRd-2%%133p-s2I$xdKlf5iNz-AN|g z5p5e-$oNMaCXgwwdBsZ1j!>5&7Xx`tb4V87cqs>aB!Lq5s)@APq4d7e^}WjWW7eU& zy1lG=1!>hAOz%oqTf1mey!(7RF}-;>+4WT<+qHpYea4eTi~q#>nE~ZLPkXsVyirN` zVSIoYgg!x};hvi^HB!-C{8J+a`S2o9Vj|1-KW=O~%`{bH`cr*i9+dT*hKXa7PX|v^ z>x4_V{vet3r}Q|%7;#P&f0ff~*u9ZaJ3e_2D5jZfQCgOZiN__n*!o~i3O)3(gdE-( zeX>3|@jmyG08xsFE{4QRDH(jT88xcaN4JXUuw=4dA*f!fq_nANv_|g^%Q)Sb=C*Ft zb(C)~NUJ@Bc%TKr8cHFG;zOsEYGj-(0$EY3-d+m-`8hu>je}3W{n|Fck^-pllLW&c zlJw%>k~G5M0V;C#3xY_#xI9uxIGJda$+t?sW=RFt!LrM}poM>lIY_R)t*#X7=<=*` z=6~Yw59Npi4+aqS#t8#mRYYNhg<8zb&CEA}=6`y=o?qd6!C0j!x4p2%s&%eH**I$2 z)dnw!FQL9?kdo0TnwRGj8uM``y!Qs+Z`87c(8(QM0IUfYBiL;HxC|g(@i>&~0H1p0 zh!q|VpR_AVUhr|L_=pHQ+B_d$tt|{IcLesUuP;_eH(tz7af0%t2+tFRUBBI{S>6;! z0p($K+Y`;QHBcen%UXe#FBTS(k=NhmZyhA=VhD^=M{!4e}fMigMB=HVt6Ks>MQuwCD7Ge?-U=hqUDBV++65VEH0 zS~dzetPQ$r31tc3s0K_xUxmNsViDFw#Ci+?l`mE)$X7yG0(x4?+{<3{%27vMtZ5_fq#dmPAC126awgI z;Hsg0B7l<@i$K@=3!~FQ5s8H=SE|>A3)-&!NcqwH;FXTo-)lmi1Dh=UXOqzP0r9!I zO8ma>ps}a-Yge28DI)-hvhIia^m*gAdE(Zl`E+*A*V~@L50U3?gbNRfpAZ^o(c(9D zXvR#+U1h&{BcUOZm~@BUoZ2u%aFzf?ZAxKqrADl>BaA^=Og{cvRHjAgQHBJt%FZ%< zValF5@|Th)Mck}=dn(W1dE+PMN8?SW#UZ8Ug6S+M<%@N1b03XFAUa1VPe2VU#9 z7;Ps}IKhDEf`2;f>$M=Eo6#5h&Dr&ar#K84X?XfbXDyADFY43(4lUb;Yq9}U*@jLy zOtb@?{j+JjEgDy#A|~t8(4nExh7p!Mb(Gm$-4==D3H7d^Q_$Q~ttrURF+}X&Qr+}R zWc;6Owp#tz9PMW?+PK_yueBS$f_pseJ7RX_$0tT&IG8y&d`bWcvp)$WIYJsucpwst zEfmbupK+F+JIW&13_Z0ic&Pvf`M)YJc@X3p2%ac?FP@oOZ%N_svNVo`PO#f^_^1g7 zN|Nen!fGizUQf{&>@=uSn|&oPHQ>1-G@c(O?y2=fS|bUL7d0x{%G%FDQ$ z7foT;SrR>!xPd`Sg^56+uWQ^uu&eR*iiCb9 zv560ncu*7UMMRc8D-V4Of%`b9f0_>3ClpU{+P#_84m5Pd8l`uL{8YKYXUG1j(A|e! zndIaw7UlQc!E$eNC7J|awA7j*avDI-%osv12;*Vauf52&&8i9=nN7#s4A$K3K1p#k zPwdM0NWC2*UZ663SutI^aoH-GmUVPz6HGRsy|jhmG8)7L~e>J{^jXhp&zxe9lQQ@Bv#7+JJob2LZdxAeFPRu z7e+g`W}zv=?n>!--BM1!Iuu!}L4O5`75{@+Y)jAVn4fZ1X&STSu3yT^HQ7`<(+qA2 zRb3Dm%HWx3w)+bJ)in~^1nW+@-7$?1i+`V?acr#}qMm2~G0^_|A9mbC5o5gN(=RDw zhABV6U{?QB?k^h6Qx4SS3K0!6F=>X}>v}4hsnRr<25-(|`Kji~N$}ymuu6XqA|^xe4imAMLtQAuYBzQUr!@>KYm{O;;-I_!@-22 zM~mK=p%pQqbd~(3jdX-SWs=>s(ITKE)aeChd)@EOI@nK`g`yh1*5-4Xx18^c+k$c)DkjQ!=I_+U)*q5NR-J>$d8LMkV|5>>gISeFBw0X9 zsNOa9>7Vs( z87_ZD%Z;45ZjWTRE{Xh~NNCl2nYb-tsVK+E$0?sMQ*ZnOMi(TFA$O0-S->O2v|>(j z6pi-dz{T`za~FzSfAN$j0D+97O@TQ{2i>cUc(1cLr`6VZ>KY3NwjURhW}Tx;ZzaUU z{jjcdU9*^*j22L9!IOLGy_i9DSql+94=4AwChHtLsQ(S685hQDi6<_{pHzC03B0Am z;t`m^Rb%|-Ho2GxBByN-U&-_@YEZ#w=VYy@deTw_XUR4B@cov6p$?bo$GJXkmrxew z>WVAuQjBvh&uTmrWW|9T%9O6D{K^UMx!N&{|3NU*TFel$)sO%+I%7;2p;)>R**QDb zYV<7bWL_^V)wGM-?%J!oO|V%85Yh2&9g}0;@j0pCr4q+S+GcJk7CJSS&@*TnV7*hI zo4UgSUO>UyBB1v18UcLF&S69ta^nt0uT0H?>{X0W7p86Eri~XCEHf1`k<|_L35=K& zq-pW5L7#F@0d-0^sTFm(99iMb0o@=qXDb97(&AU(9Xc!02TO)3iP#>QsHLtTd_(yF zF;2axLZCOeal~QjT+~~eG|rSE*8MCZ2-(i;gK(4d7Qo>$(+7Gsz{MALQ@}(`Zfj)` zwT^C(#^N2BL`RY|w_>}$w(f+1RUt%IMgd}mKJ?z1PvL(d>=qM{_zht*8rOl7zfeqO zrP=}@%SS|51NNAmg2hIlHXxIb?gh0Aj^vp}3xj5LOTR#XDElm(Su?cyL)L3Aqq-tB zSzMjk%#BMY8c~&i1a(P%ELP)iYH-qUt1`&NiGT+Xf+r`k+bfKH#_|zm?Xj$;Ofn zNEOZ$mM&1t*PvwW5<(3}51n**EnvwxDf{$4#Jm?s<~MhzlS!2bw>BdOI-yITxmi1kZ-D7i*^*zo-VRPm9&#%MkHmi$TdW+^IrsMG!}pnci$5$Hpv~-f6F+`1<|6JuD!FV!X!THTADKRiC;^fB_zD7V(yHP&mW5P|1W|mDmLSB17ZTrg{s~sMrj- z4js`**$nInhe&p40?jv{#S#FcIlbuuX`+BBF6^nzG=CD>Y_TH$Z%t<{(>QsBxM+CK z*w|?3>Y8!00jhO1($hqNO&_-OpxCh&ocPb^pn)ytLcC#CyLbZl9=;o z!>oo!j-YAa7~Z9QGIfQk`X23pMqOy;ZJH!c*7ei^GUOV|ctv%?#!cvo#*sv4)>4xA z=8?cWr(#YtvUW;NKDM@+#1?A|^@X|)dh);~YMSQBIZ5p8sb?%U_7k^A>e>Fz$^!L8 z^ty}rc)c9WUI?Fkl^B3UgH{&0xL75I_@X4LrG|DSZ6)1}PM{jba&6MvG2(B35*_~B zEdEh%&nx)9l~c5wtS4Q%Yq36pDGuweWz&To+QA2RDHp!PwE$xlp@%X|uMfy4KUqr_d>w4GcNtX?748_L$0xFr z*hyeJmGaWI^E(O2(bsyxwrE+8me322TXbMD5?cplEYj=u`USfNcu&iLZ4JAQxjjJp;AcAA5*fm5p{{P&*DmJo*@4O5Cou{yxH z`dF`|rE;IZoe|=BtA51*S+dA1XH+_)vomKNKYv9gJ6Nj zsC#pYVLia0ZYFhEdGccXEK`p|q$^a`CDMx{V=WrV3m9Z}5ykGhiil)LV2YV3T&W6!u& zm&-@t91Euom)ZR#Xt~!78wUAFRXU>oB?74z!`WIIq~htA@N z0XaNhB8y~xn`zHpXFS|&3i72_Xfz!Cjxxn|B}8h=rdFRgwv~Nep3^HbC5~pBWmN){ z9Q7Sy8DZdbKAW(5ILRBl2}rzS+VEQ(Hk$v83b>5`%=rM;V6e7n%uhIRT`))2aoVO0 zd+5B;fZ)ALyyegBCzjGcnWe)1Fd`fufj+Wt6nSDGIAjxa7JX|2|Co>uj2GA!yiUs) zy$rOa$qn++fisNg2A--4NcD|rdW=XlriMt*=euo;uFx-#Gt6NOJweqH$?;aZsmR=x zv=PCA11wPtdVSOMH#En<1Rd-vR~@GxB$3@uvy6|;;69a}RHe3pR;N~wP z%xOOrwm#m*+IN0)yRu=p3Vb|!fg=^H2~tP{LBm!rr#V3bozZ6DM{3eiALRAM6`#j&J?ZV8jAY@2g_gS5nZV0bk#|8)Om#6N;&D>)J zYfAX2Zci1z)L2h1-(pZpS=LXxH%T-sj;X)wJ`3DHM$@%ab&N&r&Gr4`3i>W|g* z)p_>i)k|70;1l{;ek<2ea@VVmVc$?xv+qg)GW_Qh0~|dZQLN_t=f(-~6?Tor8ymj~SqWMk3?p~JJ9P;wjQc}m$b`N@vOE4+&4 z-AWA27B7KkAeDI95NVG{t}7IaN)n(%Ig1=NgKi$g3(RGMrX+|9@WGKVY7gliJ&PQY z#d{?aQWBrKHC9U&moNw`MMg4EOV#N4W-d2)%|F$a@e<=(iP*>&nsQq0`N0&+Hd*OZ zGm=x*=!cly%Dyc;jV+KdOS1o=Mg|EiPgGNa-w!^# z(RLSmAO>vANvtB9^xi(5JEe=HAkxlemPp^82P z?X)RXSke~3p4E8i?`VUgY6TAqCYpYTJ$9x2Z8(fNNF@sscu)Wg2?!$}5meR(d6azN zpgQ>+`}M#=?cOdzu<|o(sVN73MwB)VOll%l0^_-qr(&_31N5E;>b$W)8p$4OZohL` zf>9PUm_yhl+KVN(5x30mu1>&*t9#VX{FV}{9E_4(u$caoz2=49eRZ-!T&&r8ok2=q zuo94xf_9BTNEC#Te4I`~CvDCj2Kk0gr;OhgrO&H^q%7PjUtW3!8=f;Ap#!F0<8EH7X5yi*g+CRA*9Kt{twl zO;3p3g62D{&_S-?4g0vRzMH{ssE6BHlXIJ~D%5N^eWQYV8cH?B3%wH6bwJAo8vkL+ zh;0s5M`uXI4kMdWPJyYw7vp7BhpCYZTTd*N7VVW>-)6}Oo`HHf8aBwYU(+0 z8{~x7GDUw-?-H2dKckL6kYTZ4Ofr%n?~vg9_*|!1XHdTd%;sX=ekDQkTY;{$u)q|n zf!W>iYO^Uob2j;iQe5>H7YxQEGor1n>V`TC4Z^9>?w$S--Rtvn^JXvSq{OdZ4-UC> zGD&lR3i&H9QVuOFV5!a8BDv%vbm0VV<|^=?Qs~Qy@h_1(gi-6cqAmenx)W0zhjXLz z**tmG2DOIBzP%0}U(>NjRP}%B441hkG_vY6UQV1F?FP!)R1h-rRz}LCP^Y>JMJkvu zB0tP>mg++tz|Wgw_m5;!5$)yQzgRaQTs!nu^J173p}xK5j%Tipy#}24*^Ix)M;6Tp zqE>(H99(KYdxXoLl)5X_HXvk!7rDP*?$>OOpXvxeco~MIfe*d8fYp% z8(VHrtB^uov2v~(773XWQMwy>Kr2sFgYTTiWqn~hYO+}D^QU8g9F9aG*=JdbUOcHm z)SM(Mfpr~`?|0x?GpHD6zL-J!&Db8-=$b@)$Rq_1!mO#MK^Gbt9|0+01}vMa3~v^G zHZftj*R~KsmeMj%zKsrDLV(v2D_OR)Fxs0P`%722v7G%ZLDeYn3Tn%?fMk{a4p&}r zwjvoGp&@x{b!$MZf#`96)f^JZ;YH(_>Fpx_N_YcTK@-XgH^7w&KPbA;hq3VEu9j>k z0jiHv@{!ws1AH`@N~^JTgf(^(p`(rVq{(VswD6|;(ldFWECEhPB7gT;kzF-`r{zfD zCh|&c9w0yZ$D9K!O^7n#qJ~-8M=&oi%He)G*d^=PC&YkQ%`DZArUTFUizW#7QRqzP z_$6gRPTN~mAI^tFFRWa~hg~h2Pug8n32KsCUkcS;>xKN_3J#w50drUaKiRvLIy0j( z{A&E5mPNt?c%$4rU2k79&r&*3wy}M#osEA)G1Hf0mibLU;wX+9&HEI7|5ERs>uJ_k zKA#|s;vdjOvnZBG1*#up*mGB9QASO|S^1(UXRHTp5{{u_ItL?l07$z z0%Y5d^)q{}Hza%Ry%Q&hkHC-|AOQ%Bwt>+h;8l}|L^F|hf6DlbTiwpc(l8#8>!^p% z>CIdZt1X^hv4MT9XC=|h0b^z#{-vm_J2};>=M}k8fuK!O`@wC|Z3` z_PUl%i&&&igK`%lw;y|C;~bt0jVN`*6T1cj^w&~dvR#FpZ8|A2F~gnU6J(wJS!Y@N zh~s|t!|spY<_t{y2(#iQtTsFmB^rd3^w0+~ea&4yr32}MN;ZzQk=7@sx~jg*;a{v- z1CcI5kKfpf6|T7vlA^4ACv3y$Me$R!y^c?4Bkt|;rVjel=ig4)n|qm>(8e0!6m&f7 z+I>>S4k;;1;U^SCCvmBQw1T$g3weg_yr4l48$0g8c#SQ?=Qw?A2Hm%_JsSIv&K#Fh^wgIp$1{vbRR}X1`&}kOUXE?N z_iasCku|8s(wXHc8gS=IGDEGQUyq-$W_*Svi(o+IaOkpRP`Mwbfjg+YKU{#A&;i7G z{XolPVOW)@msG1$w^55)`bmsN87#C=VL(2%L%p+>-e8e--|f&VK9DfNk4#nj#hGP( z!~>zlgvrenk5x@`tK$7!zJ3aq^?bjfo9YO;ZP*mw<+-^C6HbI40diuUP|Wzmd!Jq& z8r+X;=N>vL_WqvEWA4M|^&;^z2hKLk#U@fMpnN<#= zOj;2XX^c+|tfQ3?*QjSM74X}2m^a8k=J?Aps#+XE%4-L6kG@BCmy?=F?U-s50X}=T z8+574wMF@2ZHCdIjUB&uT0Kfwg~qn$y66Fh_G2U(P4hGM?}}D@os~2zAfOBEb_^Ih zq%=hC+83*0=Ddk5Nh5yFbB=c*nglN7u@&+v!Oe&!cFcIU%~$QfS8t z%Vd^EnKj^)PYlMDozVC3qiU#dE6)cJnp_qw>p?; zWtW}(18PUBR5<;#G*qsuWh?{vZYslMUrK+W8P=|1g#n(0#H5rQ-Uj8+>aKfLk@=Ko zOCi@PK~lyfN$vhK59IM;paslW4>Q2|T1k#(%pHZm(0KZ(FF9A0qv<^FSX=in{!5Dt z4+oBcVmDcX&3D!Y1rDDbK5isRS2+;O+0Y6bZ0AUTJsJ%0s%bJZ<3&d>wU>D(RDzrL z;s>YLbj2_eo0Q%zN!a9{&dK>|<0bMJgf}*Yh50n`NA*Qq@zXl102kR`Nck>)F!LRM zMrD#|R6UIEIU%FWZDue$GeB5Gy@U(mT39r-ZDPd@V^mHrkFYJuO9f@$#xsvTPc`fX@H@&?y?-+^V;exrC|!K|GZ?4!TK49*{@?$bag=X>a~Y9zL;= zjZUe~R;kSaHI*q;$!VfXg}nFu$MXVVd3V)uBb8$rK=LdJ)yWiT2HKaifmo@`^QoPK zTT0pt6~-RN2LjB#LOyWIdKUWWG^3g3n)F@7ZnIHjYHH$q3h9ZAK*pH7WYb4@t#xa* zjQ0}vEk$fqT|oQtrQIzm0`Lo?`YI;_(Ir|xV)i8jx6XKi134NK$BmEH5*ljOmrp`A zL8rzOpl7MA9YfUmOvxBCDp+rXEUmS}23|#G#BaMrbbYC_Dju8l9AqnEdCLi)?Z`@t zn>C(Se~XRN(xPK~bFOV@ni6B|<2KE>VoP_ewRfW>gb56fC;29Qr&RgDCpxXho=Uph zZO^aGHZv^rx?6wNxsy#XeRyJxlkXGl$bnS%P9k(m@;Yfu_Av+L)tN zT77f;72^vYGRx9I{w>#i<15#?>v^MrS1RlLQf8AB3EaG75<6dPJ8+n(kSg?tPL&eY znTKSsKN$m6r;I|FP87uDU5T=(8`Y34+9dfS7Q^-~vp>1)A3uYOrkoRtt_tG~dA{CC zZ^09C$`KS}s`a3@eOKj1jAND}GNRg_TWEfy&l(KlSF%mAyQXnnEiK8DCl0*e5eGMz=mS7 z=xUPi2Uf%PKF9Kr@2J@Q481`5+`IG{{Gcwg1WAlFvS0-^UQTA{lsFt=oHSOsG}pNa zfujU~&rAT_B)GFQW7SG63NAh&Oa{F*v4NBpAzT~r+!(1#>PTX)q5^bjpg`=UhC<%c zh>8L<+v(I!HRA=3NbGPFGf%EsM6teLGoPrh86NS#R++p;Va zSQ%}1E0bmmch`GWtR};+=f{6@UArr;=H&NK87=24zGEBzMLK1XAg~Is3e(g^YT_PW zK_oX3wcSe#)BN6QSvt1Kg{q?k3vbP2CWa!K&YS#{Ukhu~krZs_f>xv(BXlf?;PK|w zq54^(u#YYYpzuMy#c(6@7W2x?X67^uI3o4jmvn=0S)8`*O*K!;cygBXEZ2~lDBh=h z(zav76b@539lO;DDP*F+eIfZS7PMMMHEFQ`m30$C^A*K zh{BU$UW11C;tSH;hBR!cjTQUw*!<$gOlvEANP0N6MccLVc%VdXl?G`aZJh zh6*owJ;!&VKrC78`x!f5EGsMt*5|qkZ=QagqYaVJBd4H2OAZN9><_-NShwF- zCjK;U@M1i$2y<3uuS6za^8JG@mbn@t(g;Xoc6-}d$*DFt4*P; zA@7H)qnLK6^f$@kY>ss~u=P@IdfZ-8ZZEr9;l8#Vz9u4FH37neSVJmoV=1$3@}x-A zle?q-{8QCW$6x)SW1^zaME==FJHaHibRLq~Dn%}=Eo}N^?3$QGnprM|UHXwe8OBpdQPIHABH(13f5A$ z3cu}wB6`iJfO;pTrdo2=7%by&16hq;a4THxCv0iw3w!96f3Do&RY|YWj~SR@U^3!t zdDk^hC%GHP_klS1b*Su)Oc}p4{0U}>xlb<2CTMZN*jtRqt5S`Vf6yRi@q2fx*#zVJ zwh|k&a(bT%H$Y4WxeGB;u3-lyGOXU)US*F>Wv4n0XW;y|RbEN32C|SqlZa=xiV)Jq zD}Qu%%)SujZD&cXFZ~s9&IRN1IPcj+G}*EvT}lvI`!|Q^woO}7wW72Gy9HaHHAJ~9 zG#8Bqu( z7@EI+8$wMAizBrT33^E)kL}SC;V*byVFZRIp5g$$c?-CEMGYnfdsB86t&0#(RFtk0 zkJ!=MRPZEt2*X_Mt~@0t$udy~Z#hf5Wk?fR2IP-Nh7|L6za0XoW))6l@+$~ z3fcjOrCs5rP2J6h$^#i}5o?+T^uRsZ77;kFFbA3C%L$HXV>!d>yQhVezA&~@=WyDZ z=Ws3bKXi!EK3iPjo>xveh25&_39|oiLblR`Hjg(8f&YGGit;>xO2=PTZxt ziNBiL(3>{yg-t<;c0(l!C^R7tO@+CFBIAY42??MUuyV#C52UF)mgS#^lj8dFd%c{vieO|g#5jMEy)K^y00x3 zQ2e!RR#_P(b*NpxXzwzevOq*|b~N{feT#rqCA*cCfR#N~7%a4vFr2@U0-l3Zv0jEh z)i_s%zb|TF%geE;tn7%xBWum$isJC=)S&Hh3N=v4o~s9%1CNin0jbX0`{SYIM8e$H zt(jZfFce1Smi_~!sh>6VB{D-DWRim5fOz)LdSD#bp1uNnuW6Gz#!4`f8MMP~Ena*2 zz{fOTSEGT5Dc#uX;zwlGv?Wh=Y=&?vteOv$U~YuPf=BIvQgddrw4?>_2k` zFk-7r!`(Nh_7|eOR2hleM~>K5JiA_x%&V*}e(B$;J6%E`zco@U`gM;=)1R8k26zyE zy)9Uc{)95FpTkgtusj#-g*BLaw1a?jyxRO4f$KZ1PHT@+%kWZrS3;wr%u(FkP5KXU zzvJVyUhx1j9$qmkNRif0#$WAvSM_?g7x!}6R~5BZe-0pas!JJhQfGIOE@&wS#zOj;(@gOUN$alt z?ncO3=*>s^H3j#5^VB5Yc!|2))Ot-<@jucnt*0` zBBkZ+k%5`_C!k0FF8#Bma|L}zFK2CBV<^L z>7%B8v`s#$>+_)_xLu_*LoHLhrT1)lv2((M3|AQ3UC~i zk?%H;=O(5EOc}Ptdece-W%?_E_q^e<)+3NayORRz1?_0Jp3#f;Br~7pk+%Wg850ti zxMX>Ktky2|ueT+s6dIrbPZN#U>wI!6WzDe8Ft1YRNdEe?T(B0kMB}po)n?AK4`u6m2DR{M!Zv-6y?f6sF4Z52LZLWI4beGcDbFs( z%UQBb^(|*PB?IO>9RsEw%?0i9571o$9`FL=B66#cg&2|go7o4G{#K-co=@jk@piz@G$>dB27u{w~Vg7L$buNQBz zu}Ge@<-Q$w%lM?~Lvgpj@D=4)D?)3^TE=?|bhj2FvTE%o+Dkrd9H>(R zrg0C7-g8M{*OH*YA(wZBVC_wzZ&%L1K(;^GbqhWk%L{FRyTK zg|S+mnRhj8)vlEbc{o*2ZU#D)h5Aa?g}uDzVYMfrr2N1)F63MpE(%>2H6zC-ig}lB z_Kt6{fPaTF>>cH(H)cT#13HbgQ`+`X3&K4wA_W^f*$wTCz`64NlY2;ZXJ{B~Sjapp zB&GAuJ&T~JCO$M=$UmQk0igzv8&4Y$elri;&lZqcGa*;gpL@}N^L`$LH2-};r2Tne zKpi|=0%bN6{1(vMOb7!94WfW1LVv6^zJ(A*;O7AX5Jnp!NVo+6_sbY1NV~`Hc2#N= zP{cp&X^{3BXwW#M3i)CS3i(g$KPrEI694`3(}2_80w7@p82`5VC+VkNW|-f4A?s>R zt$<&$?DG|wQy@b!7Gy|f{VNL!DlfqL4;W%(b1U)hUM;o~!YCpBG5${*dmAC7#^~P; zsiIX&(`>u>KOCV0+I#(4dfY&vU2Nh*Vpgr#+%}+>w0ad9{LC;CCnf`6^&vPHBa=F|ES@$u4Xnst@ z19g0s{w16#n2cl+g6aD|3@hy~;bI+3zks^F!uyZ#n*e0U(b~>R;e{Y#hZr z2xuJge%z;K(LZ1m&{8MGFK~497akUf%}J2OUExQPtHu5SL(4-d#S(&|I)6K6l*@VF zJ>*LL0?BDA@Q5P#>>mn9yz93ykE+i;0>>!)1O9hG+W)F~RJrgGv;O%%Owh+J;$Pi( zR4L^VI86U9m`IZngxvSL6Mr+vV?sgkJtB;o{UvyHQ~r|vD1+-GaH0Kgum#Q|r~c_$ z|ILQ+zdu7f5He^`LULo^f)smxoAWzW#GgzNk2Gw&`2_~_VuFf$$bXshH!}MFY=0T@ z2Tb(~_%lSS5h4v4@&mIyl8P7o%Wm;de9)WT-zNMw0P24ok|gF2_;*OuOfUW~>A!0cz`zl6WLKOx@6@<@wF+P?^>AlSa& z*UHabFXxaeP#NN)jE@K@Ill-$H!o=R{qDnm_ci?QAUjj=7hKl&+sXbe5<{eOJ(4_E z^aqR$!tKZYb#@*t9XPw|g8ch`pOyceX!!@97r@&AwrxAv*tWB=ZGK|gwr$(C?QCpkH^2Sf5AOSU|9I#0nXWU_T~l+e z?&_+m`>_~wDj5_(Q3ezY1_%fW2&k%CS3UuO629_pExGXYtq%kQWR)N+Bu@Vv?a`4P zrHm@0tm2YGBXlwI1a~MW>zV{Njm8!z^N8ldniTaAMH?lf>>P#8_n7$1=Go!V0rYRx z|ENqDCjk3beL;r&PyJW>|6Z6$_oX=hA5)TeKq!-tP#|&tt>zyK|F_Ryf%ukyaXT^t9clZhHTZ)46Uw1> zH{MW|_qA{T;F0a^9s=gfM^1RNZGJP&>U=h9^XKccZ44-P3{fe#0dGjIIy@c8kv3GQ zdnQ%Qt#HHv*P6NdC^p>P2oO$;Kho7sd)R}eecv05n7;jUDvbHpxTK`?_~cQ&4AHXVK6f^#}*IDD0%Yw3n_A~|EbuTt0aX=td64d zX>N+zvoiJVg_!Z0W1Cu2Ic9WYXR_;6a?u%_yR^TDguCq$1C)hS1|USvzSqc9-3Iu9 zdGZWgG%W{Tg!UqpoT%IE3=gFW0+V9_R#92!Beqt%Q%{k7j$B;a&(oKorL`OytJ6EP zn1r`ejd>D893`mC367DATe_6rbaQk@n%TI$?KxTuCxNwgUd{~Vd&cFCjX60vX{E+> zhaKCspD=^Nb}0)v9$+EZw@h@%Lw;$S=`vPshGDZ))h_DXs^nxsg8>&uPMpumJT7-r zaiYg_Qqd5ZF*3MmB`uhx@Dn#zI$d6yU183S@sd2Z0xFV9&b)?bM=@|gVNF!8nRev7 ztZoc0B-~PdWCmwVPCeq~Xh><4=17c#4V8sYwOl}9iq05?7r;_$s8NdTBQ(s9?fs@X zOvxfJVy;@%$-?A*I?X45>1Z&D`KB!RI^i^{Asf|XFodG!JW!#@{aLw|$9auMpUS+! zctq<%e}wBpd&rBuXB})i_|#gZEUlWws1M(0gY{R`Sck^%poQ*L0bXC&##Ce6vFpRE zT9el3Y6(UTr7d&VRDA{o_RPo+qT{ud@-8jN5e0~X7Uvw`#M(O`9PM^IwvNV-Ik9>{Pq3BQ21yYQkIdEk(Cp7E|E zXV(R6W1kp<@M|ntUdy(Nq5m`t7R7kb) zFbg@td^yWKiS4$i+oNd#v;aM-;iU6IE8rcpI{@C{FCjvP_}(^(iV7lXj`BL=gv54v z$-q0z57BO+E?i9*W$)p%vNw9AVt_DMlz}-1p)#9 zT=WozAb3g4@+3`zRSk$Tc$yJvgScvb3w|Oo99#xhM!9O2mG!G{leh1^7C)uaMa8wT z!gsNNMIWye8*c7W*mTcpn{VIsAG<#tub+BATMlwUyz&$2s`W4`FdT-Rp?R35-NpGZ zWtEQF)r_z&v_@sr=|ZY_#xO3^Fe&YTKyECSQ*<^XA)&H(mIlq3V8w>Y1T<~)$_5Fn zHgp?t>42c-=q4k6$|E24)ZqCl76z(c{mIc$hhLe|Yo^`A1E@GZ$O_m^HtzFNmkXV} z=9>?BPlJeQ3D&NKprw_YTEuo1u9LyOT`cr@tH9;xkr87vwQ0m6GQ*J-EaW!c-wq(ADIFk%Mu4s>Gt2+JF8 z5fUno`3PAvI?&cfb%jLE&-D{%NIWk+A_t$@*4c<;DE*HBXHOt?l9uEs{pIF(t$3_S z&!twW*UK^)c-19;TIp9>RWCV5*VM#!nCBEVUon>j_!eY|D2Cvc;;LByMw(;#^)HSS zPcLRPcIWFt(duUWl_qo>25S4he#M2je6W^!q`+2{ktHnUg%CSvYndtDL=IU_xwz}7 z5f6lEW%_+hU~_pyQE*vh=Tis}n%!X?n%z-y^fX7QQC^ze5p?w117B>y@;4;HiuE8v zY{IHHu)NcTNm7k_Y=JbueMltZJ-W4Et@R&k=xbn7^m$pGH6s~dQl%@=zDRp8BSbGX zpQu|CUA23Dzxeq(rpo&a&(_#T!uzD)QW$#Df^UCY9XA6atCAT_B13LqH!DGpfqE@> z34`gtOm26;D5Iy&^yT_n&}>@$^Y^YOdfy?Zo32#W@nz~%YCAt*qBwVdWL^2ZH8sJ> z)I?@w%+-8Pc9LZ&)-PGhxXmSHDhk8B`YJa?+wh`+OWbIc1{-?=t!r)lOcQm?BL?>Y zN$YzIBI*cxN-A`cY(&qRdP3~aAqQ(>xK1pIleH4p$g5T72G zRu$v>VAIPYZL1Q%J(rqtxDNt>5|n{#o)l_fg246KhGHuL>{;o~E)3QQqx5T$*Y+0s~}rtnX>rH#;;5#$i@UNYx=wHE@85zI0Oa>Bh}7!J`^vS^>VHPa3^?`_}lW{ zS{TRLrwb!e!Y8*sDVpG7a7;Iw!@nV~+n4F@9OnkcZq=0m!!(Z1&)cCcL+GB7do*e7 znctE??6m&Z>jN#JLynXs!4HNW?VuMoKUc`$J%oFv?gW~ZB?RhodHzOaZNV+x}B(`Ep+Zs31v}!G@Cv#vah+C!72daH^#%I$#tq?ZJK<$~}1L?OLm^s`J%>kPEh+ z%zvlhfyuU-;At7{I+u3E`NhwC*|f! zLd4~C$F2f1*1Ut(9NTpV#YzG8Idb0~A@Jdhk)`+m^5$YcNiFu>DNW22O%bxNXDJ}q z2K~i735=->uSTe^hAfpa9pg8P>Kh0#9sTX+i8-<77KHI#b4#kj7U`1-i9_Y0ijtor z$rS$(X=KFB5L-D&9)KVtuxc3^3B)0}4s|S>QA5t!xQ-0_cXlg^&9>MFnU1OY7aH^1EZOdwd7{hAi3`8(zS})M28DPeYGLdD75qKkO)!(NZuW%8a5O z;*nboQ2_T-^0g(^O%dvh%+w9zYR5}>acNOD8xM_!H;H@5%==A08VFr6>@u<#pB{XKHhAdrlKuhgwavQYqZRw~dPeJ#8+@Up=S zpYxYN38XV@RYUG*xa1ea|3w%z2+w`-FTw+V5#|7}Fc{kyIyG zsjoGeFPO-+2nZ2rIk1ofy~Ni-X-}`t5+0YgF$e68mJBHzQouh>IGVFSjj&y`3V&{T zmRo>e?$6u%HLpJc4tuf#=^%)mczdW0`gZNljDoAUWb0<^OOZY+0~5|4jS`{h0qq@^0#3MhxhSa$7_+X*Ko(HpwBZ>C49 zbf3|ebd_1@6Q~^b&~XICv?DDp0JUyu7C`Ie8=5|Qaj|)dc~zA!lhDyH8bSPV6`Wn&CW%_jo)U;)u4D`p0V#_?|XzyYFFYcv@3F|$7aW?`5 z0^<0a6x%zQGnypvkkJ5G|7Q&R=WM5M_E|#of)ctAr*9+5k5sOpdJfZvatsa~P`E7~ zRj|VP!Zo$xNz5XEZ53+v}K zu6UEK%QF3%occNRC!zWFT}dcmBp11x>sTEefI?h#}PK+yKL@49<3&4yAmrYIqmm^u_VIuJWNNG5rA{8(jJ12eP^YR zN&ft(Z80ysJ2C~$SyN6)h+Wf~dR3{&I-`|)@s-h&mz&VT5}Tup)YOArAWIALZd7TK2(A2jb!)PwSR?X;5yNriqK^c{VN9r@Os#%(-5F_CBLi7NgVc{1##EegtLhB@4>-2(O<*AQ+Tzb(V42Gjl)p6gvkgnRiPn zyAq5&|0WX1)jI8Rzfe+1%&^@p7?*}R!rsHn0-`hC;Que&TCzV`+aQ2|mf?Yb*#3+E z7{^Sir-1@Q=%ATmeZyZdF~xL}l*dz_wp0%mralL2MM$g%!blro4$V@+F|b}vR|~%8 z?3ksw?WMVSG%F_WsITs+_S{Z0Ty+jV*3aFzcdxzn_Pzd&?RlGPI|HsB+M`(|Dd<;J z0x3W_5d>HIKzpj93YwS^7>u(l;Ay91yKOr0(+U6_VS3-A{^`y(^t38CqJ2;g>SGaef&#e_C z%{@5XfZ-dHBh5WqP$Ixry9<>5&5YrzG#~?`p9%!6U1bVgMqbfX>p&i?caZMYD8p52 zspAdMX_Jh1lT2SR(y1-e(ND{jg~c9_NK{;PQyF_%bxX7&uMpa4*1j4@wuPQbs%H|& zCtM9PzKOSd9&wX($ds}#vdq|}faVm13D!n!UAa;*lFB*F$rU+1{bp6&BPU)q!WACO zZnunhdHPxB@baris!(I$(%a^jsjqZb8F-}XiDFi!5_$t2JH@(@u?R()&vKJ>-E7+4VQTadk9i3| zf}YeeNbJ$T-+FOkG3^-{)R`7CbX=6u#3|i_N{J3cEv}?Q8FWqKWM`MsB+Q_8x-y(# zsz|k$C2P{s;Jt26LfVr3p#c66bCnQ^;38d~duP{ljWrl?N$R$_R1clA-Cb%(T1yE! z($Dhg3U9wJ7ugyj3o9|C4c=LaXWdV?ag{u|9J z$4t}BpICb?@Ur`aCgI2*ID;ElyrCFaa>cOX%s%|W>s^f>_%&TqS41+;6l%}r6Lp_) zS*LNA6ME~YKY)niH>`l;H_8a(w{nNeVDU@5DRd7z9Tn&0@feZKyn()&0^t#$0FQZ} z7Cf5a>1bK&c8-ze`?g4*LVj{f2L1SVO?dFlrZR#~lc2EXEzjcES^Nw>!ZdL$_NZdf za}2@cQsf^Q7)B}SG?Xl#YZCCpJK5OY;1%?E$6`$y`Ta?cG2t4uj)mP72R2BmGogQOKlp>o#p2~J+y6I-Ao<2j{r;)-r`Xk7ZO4LM} zXv`$d)Us16ll9XELnm|a%AKX3dkw-ArYEC?LFZ@&_}7i5x|cqQSPG<*erB-oBCe9v zX`1l{Q$hzHh0s0NU=#^Ln&l0hVTYi1sD{c-_DCfXg95MmC>-ZoQ>g>eF?%gN9B>e(yr;4J642l}laV$=2 zqd{iAqDnY^1k2mKF7|TrF9GD|Yq{z0?1hDd$Jltw=3i8uzK?>1bKT~_DT#SX-ajhB zLzEP)d9?Hr}<-Z4w~OmGPFrcHkjUR_d}lCO8^b>QRpw-K?VY(48~ zO4l{GJ|)tK(btYbc*W_7G@2twQW-D+6BybO9xe;<#-6baRKlbc zNgcDrJW_lNJj+Q(Ll&FK>dzM{BWyM~qfQj`);c4VJA%DmMo_8{4F0u!?v_P z3@#@Ju4GYbe1nFFj^`u;KvGvF;b}rh51->ND`>p@@KAMVhN8EDbo!6jb-%T`?H>Eu zP!A8BwgdEdL7S0^a+`?G77Y%&v`Gg^f+A6+DSE z7JY+y+9N--ADS6H>r9kd>)<;7lhFEylBd;<4c>(V0s`Ox0rCF#N(YxT%!~to_CPzq z_WPcpK&3#1f(C;EBN3Jq7H+Qt0)YVnfg2&3a(J)lcx-5KrSOY!G+0HO2Gg0P#@q#=PMIV!sC8RB@?LI-=cXi zO1>Rm+M5wV@1-Q%)3^%^BrL}YQF-_bS5b=HlkDE3dCMv8tKE;W>81vd{}I3i#Gn14 zQhQh7_*1>lNOO9Kjt&^vQ~kpKj;~rfxp=nuQhE3zGtj3-HvlM}W=+iE{Z>s!0-vP;iA17NhmIp*QLV<%7c;4}K+_UMg_%L!;5G_ZJRy}p)<#&3(49mQX&PY? zJBBu4tJR`rDqVnS)wl%cb=D1)zvx^yxvO$&Utf#YixX|Z1rK`ln?p@EZD`N%`w?bz zZ3cRkHEhA$RNt_P^h&Njg;iSD2xe^%KwlUx!LXeJ^HU6Om4xwvJ>a_k>Uy&3Be1Bm zgNB?D>;ki3{VmQa27Ua{4hCz#{2SSicITMoNj@MVMxd&RXWI}Uw#hq)!m7H1-}qX| zIp#q{y_Ocuz(fZ@$zEl**fq{vJYs|R>p(Jo@T~ZT;i66l#dPKcKa^3oNp$iqtDqj4 zDUdkeMQE}f8^_abp+j#S>Cvz#NLV(4N7c(R3HwG98BQBT+Xh{6#vhx*wa=6K8e40X zu*Zkg*TA|3XAv7<)^8E(V#gVH`F!msB0ltR{wKz3K6wv8sX)Eq=W#Rc0R-m@?BwL0 z`;)WIV5dFh@1vh4^od@KhA$}_FrmD%IBdH1wsP!xKTUD6cDo?S!!hDAi(!tRBVb#m z*DbFMIX?96GH&su@|jjDygLtLYd!%cAiP+voFdP@i2<$lPP z3PvlH8@H~X;Xn75K)?m6tmDY+p_ps$rSlY1BjZ2FMKW6W7gs4cbCd061T;&qiWhZ zQuCZ4Z0qW?<=ykXliyMmZILpnw&uKknJiofxTb@$C|C)qmGIGV1g$2~Ebda4kysN9 z4dZ9-Ug?`gWxCZoqs5p0OT}zrXjVqaST%;Y46F6v(Wlw3D~jx3$cys`r(bu$g;h_A zkUG@>2+%EX=~-7jm}JE9!Qrc$Cyh0&99JRdv>2*Ui#H?zI;P8Qy{PBic`3OHKEx$J zCKZY?yRKNv2$xcI#Jv#+uawmflOK{uso+5$1X3%a5nKwWsGcxc^%>}^NVkq~MpBa@ zb>WZf%u=#u8Dtv7pGJH8jB)9I)GIV9(hoTR<(AD_sHTOwJRV^bG!7*YdOXg{K)xy; zrZhphr9IWoo0g}c&(CU)=f^yTy&RQt+AGLk} zgtcKl-HG_(%lw8}3i!Ob2yml<{330%R`U`HZjp^8B3!K&DsOMjGUIj*yoxE^l1JpY>A`u+vn8P zVH&(O59}H<1KTvTrL;htTMux{#n4!Q{MmFenARS0v)h7ANWlnPvleJM?HK{YER>?~O1{wn8}~abt<6Z4si@XwzA5(3Qy1Rg z)W@6-x~U~(`BNW9a%=udM@NOyPvygOR_Rh#>C!p-ko2jH&}>sw3(&W<89!WGEYfxx z@9_tT!BMdn1=%`08mbzbEhlb3tI4J@(8{5^NYM4jY)(ySc19V+lMMFq;#LZFt4$RJ zV!6IicG4FOyETh2@orFeT zk>eF_F%`a7`Nl7^LNCx4TK2=*Eq3qpiff{U{Jv1d9S9us{oPOKGoaBey5urI=?IRNy zg`0ypW#8!oJ(>Q9V>sy@USr2^j@+<08mjbA`PybILXcJrk)H)q2@UI~VB&biH50rL<%KAl zNL(j0nlx@5uY!BlSFBKik@`pprfN)2GPpRBJaZV7kGQhae!h>Uz|Gk)C^|uE43v&g zgQ!FsZU6df!vH8Z?npj`oo=5sB;gz{5K_K&Skmmc1cGc)LuW*Q__Gn(fCT3jt{Np1 z1!z_!jY9r-keo7lU5zwy3`8mk=2W>l{YrTe>P5x0v`)-Mvlkt(d(oDga!gUY?sY>D zy++z1FF`K;`JHd_vaqrdCF2omE2T!-I`Km^02UmEq0FDwp~P6L1@&I`qWa2tC&d(1 zgR+BsXy#3RXsIwxwy93u$=TM%6W2r*K9E(8t6`5c6I@v)IxM|2 z7Y$}5qL!TBKbm(+v#G2fcQH{%BqVG3rhCoi=4!j*HF*Q#x9A#9v2|%ShN)*o~w)Dk9VUfRxiz*nw#|98y8J_G^;o4R?khVmwT!w z!?aSuG>aJP#SKiD)Mg5mmUPVG=tPON;Qd2GaiYX@3}{nDR3@N3U5*oL|= zIUP)yt?dEF(yRN{^5Yb&KkP~J>QM_&wCoGy2gc;U^E`0bVeC%FlAFLL6dhpKiUl1W z;Yuo_^9^ zsW6_heUt9BC4a0w5!oB6e;LcJqAu3yPa6u27it3R`i%W@rci+SPYcxaFLI|=6~~Wh zOJh!|XSnIY!0CcV=t4?#*PM5Th2sTu2GJNsEqq|w?ro?;50=_6V8a}ue8U-8js-?9VeXxq==#B0OvXUOXwU36}E3NL;_Ucc36xt za;gAW#}pO1;td`u+hH!JiJCVCL|Nfi79}oA%AM9)h|(s9yeN-pDi{+j%n3@%_=N;b z9x^trk4`vFZ{2~Op6Jf|RyX=X^6vCo)2`EtmlNKk9j`2`_CJf-Cu{|x)^D^BX~Hnyxp1H zr9jdmz6kXOjk_;myOR@Rc8!lPI58(M$`i$rI}-NtSTt#fEzIv-c|-Xz&h*+Nne72` ztzP`_u-M)%s2H|?SON&|Afb0f?!q8|{g}|dkPs*Xy!X(%nIlUcxU%D1J&LdBBa~ubWFH>Y3HV zsA6XUYtGF~Bn@pRPaJ@)La{mPwo3vW>cXR10-s!AdyKo4g=HYTW_z8+S2#F+@XdO^ zL#Liene8QYTjdUlah;?(;On$yBXy_C%gFC5ZDqF9vRms}uNJPgP(bFkG3gB$n==LI z9a-NHam<*3KWrSw8vjOiYln}3Rw9!NCkGSAOCGycI*9lN{x=N>{ZDo@s{)5#lr$@# z0tmMr3nW6rgSlytGq%c1eG>6uha~I|L)nt^8gg{MI}+Gi!|exVMa&JOHe7Jp3Ev-$ zL4!8zfo9!xD(#vr+@vA>-FMo#g6y_N8tiLG zF0-sM7M*5l<;g%0($l1?=BPre*8nV`NsTZ^0Tvjfe~cpT@EPoQhCuP--=_X!=`tE8 z4m>mv&`pw(kO;s9%^dw(uCa@imp7okejlVDKv^=gUzq@z6D{N}k^&qW5j0ZXEo>)X zC+GT#4w|Z2+s3yDjc^3BFubN*@R|axxJJEl#Qm~KyJqv_l#zez=svv9-tCcS!-2@* zf&a$6?{mi+@XGvo^-a(R^^>@^Tr>DL3qpB$Kfh7C#wdVy8@&Yor(LV*XFO*tDS`AjHnZQ)|9B`(P~+1Z3O@py}DVPA@9wWlXjc46hHYvZ)dCC z2LXTLB5TC>N3EXtw545?)_HhR^Fu^2Y4HgOKld2Nlgn^3$))Vj>b2%#u`)h`Yn3fb zMbTd5b6<8;Gv=OLMh4ikV>CgT7M4MRoMbt*RiQgCvI-U6#?Ke5ik8;hl@l8Jg_}*{ z%~rreukBe=EV984Dr;k`rRn(TOr*7meMy$fR<7Lr)(DTO$?)d!ev__Dh_i&|+>+fI z3ACK?BiL_TS{zElbIl!L5nV>f^uvpF)Ct$DK`SA&e3)1})*G@4heampT-Y@?2yvoX z-jB)dj7V7CL6Pd>QZyAF6#W^=@(YKj^&5a2|D`yl$VSXzV6^^eS#*mmk6AVtK!6pA z3-Z!#ksBAD->=B9vEw_(8l(hIy?}VQK#3^hDfC*v^N}l6H3bR3s}+tbV4#Iq-9=#T ztHWl}MZE(KwJq%^9)C*ungh~U^?0O|BxcNNT3XAE*BYWBorBL=8vgxIQkqF5j;_=PEH(z*KCsBCmLY7QW z0>fJ&)2u$k`WB1TJGFnca7V{r{YJnr@z%Tk<^NuK5cZa^{*_J_^Q97z9GbV!4L^5O zHf@ZY9@OZ*soqJZ2NGTuns;!9;}>8s`IZujd1npZhkV;j_4UZ-H}#V?i2=akS9U=D zr9Vo@_Jz#YG>!1+-IdUK)lTCJlp^BtK5^boTAjMBBg2|2H{Q+n-q#umQmcv7_EcOX)m|76E zu_Hpt`!rIZFB}T#P;jOOXCu_AL7A;wopsM{!=dKyn+#RXM5U+M_Jx$Q`(SHp|0>t= zY=_;2Cl8;HAw7-V0@Ab8g^p-+HfJZjODdG}5n`0H?Rd;!U#-zlp%6e=N9#8NsbFi2 zjdYySMWr>3mvS3#bl0Oeg&A9%IO8pIn|TUnSFa5sE~ljR+RnOcR&}NR0sOs~crP0| zyK~i&mU*4Sk|Z^Q`STrud#QLXNR_^5qwfo4vFZTFGBFt2Bm=~)tNsi_jf@Ni5)Pkm=yipP}G#fY(^c2-uXt| zUkZ7+3jBYL>+}!rlQldzstK0+Ps9vR6WbH&yCNJ&vq6-F`uxsXTq#%HI7XaOVz1V> zfl=kKB&J8>iY);cvKPpf7$;#4!W}3!ZaTax08n zQfU>ifzvJw-lLq<4q9C}WIp0llbgjM54aYC&r7K4bS#2Jk_V4mJbMHQ=2UT5X&uzw z40>&z4gnf~?SsQmzC&WVFH3AS<_A*ZFnXiqd_+oba++;n*||m>X%&7qqb6T=kVUhDA|GRi=V!)C1Xs5aa}D)iRzuIy?5~zHUZE~9@zQ8; zP!p5W8Nhinz8th3Y2u}dOb&vaqA|TvSqE+|m z4h8{#1otQV60MI0+quUX|ncB?pU_@g-To-B^+2efzIowg3Tan z+S%HsE2WbR z(9ND3Yj)*9f^WyJg0IAy;gXvAJbaZpc;R5XqoaFk+1lA&-%Xzz-D2MAHmYnrGYdw3 z#ACziH4$QFaI@9Ml^eY!gC%df;}ufLL2E^^npM#*d*;IDX3tlnh`nW4HeJ4x&9rpx zX6N6iXuE~soP`~$bC7Z`YNM3%NzDrbXd7ALXgiEMeIDs%&0$L7KS1C`S9nnr+A=CN zX&8(yTtSnTq@Vcf3|7)R)R0PC#1`eRRnu9t*D?xH3o9;26lmQZiQz!%}K zWOBSog$>}8{m!yo40_snXxM|*$l@F^3Fzo&-x#NTThcBgP!T`Sqs)}g-#BiBZ3`#B z&^27oWK-=4BGP+H_UnwA-{;pqXBjc+7}o9>LzWbp*OX|{K`bA9OzrkyttCX1$sEUd zFz96t*Axbt#Q#R?nOH!oV(ASb1!`8MocavN6 zB7>auF;-2}8g5uBLbnR&bI~GVGdUDbofFmtudoOTVqo@YitwuJubPwU+~| zc4b2>-VnF=czcb(08fidi%jeH&15-tk^5NMMkN4MS7{hG-+CzL^}>a`7TbSzFF zR*i!OgPFCX17H_wnLJI}r&#ZG#dtZWpt0W=|CsNqb(`%Y=`Y=N25>rP8h+e=*zUR^ z6cu7`tRQ>BVNdrONf?s?ES(yS%2Cv$4b#!xl#&YgCatOR7U4>0f1I#~!j!XA^3uUz zPxc#%#Hbv>tNF1l9@y#>_=(Y&mI!x%N(wt=ha?ULD7sH>;xu|26ORg}p;s;{s#ygV zP*hrp$PHT4%~O=!YP9R?q}4z}=a3M;5Q)f@;w;v~vx|YFM<130uuC$n$}O#Urj`^b zBSx^TN&_zMl|ZxVHx!8zW=N{7S_|aWRVJ)>qPP$S1Ba^X3#^u@Gc%3LRn%+=))v_2 zK4)jbZ+YyzOhVz+>P{0EL#-5JLamfnl(mcsrbft7j35P+4jPl#yNI;i%5_RfWF<5$ zm<^+~PX#h-WDBPNN(%ECT-@*F<5y0OE%cP=vjQKQwX%|$C{CF?zM523JZ-~;Hh4*+ z0;AXqcNa$|hAwqxF)>g{(?&`oiF)16F$>a{;t@_KBsqy;?ks_H&_2^CHoXr2H7T3SWRNQ~w1iiG*`IlSX} z;)-#|To8YJIb+$D+Lv$K|9$|gdVv*A5YA}vNjdiLe%<)i`SSyH&gH}a3IU*Jv{Cp%lOy0{0jQDN z&zxs~^*dgivOw8jnB|w8FUsnD6FHz5+si7Uzd69rw*MX}FwENvQX;e} zIA+!^Ia^^lANZNB1jiIK=*|hV7nabU11d)Zphgtc*rA2xW6I1Bbst2v#}ytKe{SUSE1*9qSi28Zq1C&BM^RllUWz*AI?Rj)}yj<&K=Ezqu6}beUfCTDawl5Ryv|7* z$>z6klbC+1P-{t)tY(;0#7|OD99JUwg**XtAyZ#K*tB!r;mu_FK_Cm~bs^TT%L$jC zfTQ81_C4<^6j#43CyzS$rYixomUNHH6f!?cp$a>`fY8{SwEu#SCN?84o`w=iu6<;Cv9)Hq<#okfct^L~5ndCCggO6iV63GfEtlTfTUfPuf& zs55?!7SX*L?1-8q?1$9ja!iLUHqpL>Tp(*fqFBR?J>2B-UqTB$0o~s*LzJ3Y;0qaB zK)Xjy%C94idS@W{Ei#8b#5@6jrkbeHN}uk>bb>r%P4Vod7ws4#AT%q)&|u+Ou%`!_ zk3>XfI*G0w4eL0%H+h!8a-+VUq3n793dU29T)hcg{e;n8I~J@Eoj{%@Bbn{9Mm$)? zBU@X5uIpqVBcF2+fyhu#04?arRn;M?F$97|r#)Bm%Oj5Gi)MXv;h_Z>+^Ly&xkP$^ z&*!Iwn;}maDGhUmkKpph9cIUr2pNn4(?wVqDetcYc_HjxnjH6cu^l2>2>~$9#6jSN zTI)=`=gDqQyqU|w$7c>V4E7z2nc^w$5+$_~b|VeFXg`^q*Pp;iOT()Dk|lf=v$O+y z>9lc6xUUC=_y#ygZZQGr(-~OGE$J|<5s#tIeK5- z=IyPtZ92z%c=7&w?sGpk4bZiu)%HO^^emR=8p|$}IQEj4dY9O*pDbRet z^PDpC@MO4QoQ_*Lu{+R~Q*Myz&`zXLQpf=CmLZV^xix9)LEk%tMG*JjS~W~aFSA^g9TXE3S=|L5OBn#4(Yx-tNb4R_qX zq^ECV^#Y4NiB81IXvI={1l^c==ddELV>oVDd&)H#2eeedwI za>=}MDhAB*6&^-8 zJEMKi2abQ21Aipk^!)vg&{06UI9L!>xP|_BAd-wpS|M3lNK*(}NV4du1=ZA{v0*#2 z>VAk4{E;+P6i#ZPPTF5_$ z59cDD&q92J#xaZDP;$|3ri6P*j;n-oBjbJKhSu19L<;EbH%rasw>$w$IeJXeFc-nX zzrxiTyOlypRrk0<_I>4di|tlvGE`O$@zi3tvl2a4C$L|*hgwYZFd=%ts|p?HF54e7 zx?60{Sj0PY9byVQezm8uid7|6d8O)2$Yw-ong1z1ipA{+XSnp4S{*khv0%+jiqIXCT5tCmUF;o&HpA8KPDMBGtRBi!CE zNPd`rYV#mU8HyO#(O!;}Q-uLjYJEysiW`M}skB)M4KteNWVX?itt>XgiOzBh-9$v- z!-!!tZ+6Ug897k6a)<&oK*mAE$#hRg&zhUi#b=rP`=TBk-EA6>rO*F7J(QdmHmka) zo?*dqdXf(wvbx!NVlo`ABQ)gd9dSA!hdWKr34$TjbkZ5oHewbByicKGSB-;F*D4rP(@z%EyUYYVqbe&ASVhWjb+tTE;DoM*wfG zm5N<6^=EQ9c#Of z79PWpTDzy~Epqs5zvQu-I|K=OUX~dxe!2U_KkGI2H`nTV%LPe477_r3`51M93BSF3 z1ExT?+YrD6Yn;vtn3xFg=`}Yrtk=Y=p8vhXlRE|r)3poG+ia*LN3A>hOCH85b&rF5 z^01_1J60c!y+vGotB%PyeW8EJj?LY};`a^Lv3+Te+285lYlP^c-cJepQC8ONmk%y{ zTYsT|YHzVfa@M34=d>8rVdq>n9cGk!q^~bu7q?zz z#&sKM^hW^P_kOYKx)T`Wyvn{=wM8-b4Z8Q!Br5D?jyJ4w~KK zq&Aq;2|MVO-B^>zw8vDL7D>>&<7GPB+5uVw?|1zwKcbmskH5ujQBqf%WoTRsdf&5l^-s_`#YZ)eMbzEopWtdmdFD7NIXXJ?(k| z`4)!#?b;uIe4*W#Y=x^KKf*-8ts(Y#na;d0zWyGz4zvz|P~Kl6I}`qpP+w>iKK@~s z`L}09#ESEGg0O0DMwNzeT*Et~;`huwwO&W}Hr>W7yWFmz5wIjWL$e1zSpe;kdP6h! zZw|j8IvIwOtlLdBWjMxo)g3PtxsVaM{Tp!CeGTDvCQeI5JhTG5d<0|eUCL3c=5D_Dh+#M3hF2YZ!|~#oH>N<2iD99#Id?=1RO}RJZvg9 zTT-QllNT}`{$xoE-(j!*CID2Bscf4Ic-qToM5Qm#kQ6@sKd#<^IkPV8)(tvV$F^DWfcb~;X0Y}>Zev2ELS(y=?~War!Gt5fGa|KO=rv&Ouid5>|8S4tzRqvIX*yp`;S zT!YZQM_~ycY;Z7gRq(jWo{Acld1UY-xJTyuw%Px<$BX0ucFh#r&?x;Cr=DBFHiyCLo#$qhBk=|pRhmWaK9 z2Nbbd*l|wuC(DQ}r+D44?T>J%TjZQ`=#QA#c>~SA#-gOrMBa&^;TG;v0|OU8Y!xe{ z-eY$#FWV&b(z87qRGBX>+7jVETIv%dosa+DS}>~?xh?t&J7Je-7eerVU$?%SU;!Rk zDjMh?b`-3PV|>e6M5fHWjftRU^U6i!tijXLDk0e8L>P_D_6eNnQ0bj#6L4QKnyLue zt0iURO11i5!B(2um1+?f&((In4C1vP34tX8z3#UJc*bK4~Bm%$;?6 ze?%Kk^=28wY!8ueo8qM9?FNyX5PCP;JvFF{*U#&QfV)$pugmEu?%gRj;Q6)wdnh>G zHe)C$tiZ0MR85dW51v5TuBb2DSTY44Q797aixh~V_hM+_eE$d<-|2v;0N}0LN9p}i z6rk{WV+oOayO$PlAi!6(+aTaAFD&1$K*dF^xFpyrOtfmRJr>4MGbH&aH7;ATjeW+M z_+!fov+Rs%KBOyV)?tDJ)V?Ks7Q*Zi*V2cGm!nEYr)dvOjHmv8dpvi4ZR!C;;kq|st&4^TB{K~VxLF+NU*N=!ek!73PPEu?RzozYtd4xv_ zD^JZe_0g}Nw~GuB`#V6ZgHBhSUMA&nyzwfm6c!x|i={zb7r16E3PdKv{o1mHAg@G`KIHwWI-=}pK8Pd2dif~T&i_=}RkNZ-B*DVgE z=8e0fH0OWu?KqiIOk-J!+$BYs=o%?igr+<4`nF7TB^b@yUwQ_7)Xg zaA<+9+ewec7YNC%e1Y&C`|Wh(vc9~QsQM18qxz21qjanDUL)2$QtpA?GeSsqA4`6x z_j;${NB|^k!hx~MOz01>zBKgq?=OegP>504uIJ0TdT%z`@XwX(Yw?lS?Lt&!sCP`+ z(CkSaXKIG&EMqv)@D_24V@sb}iYkbWX}$O3`;Dlf0m-nECe%Obi&L*)t8SYW{k7_7 z$wgDG(7^5^DWa+8=|7!WzlX`&nP%XVCow%np$?{*jYwigh?6Yp+5E8eso(y{(ShRO zd`xN6YK!IKJ*bm*JFfVAYgf9(d~YI4zB8Rb$XeH1#iwaP-HtFtOkMmjcGTDIs=Xa2 zkLuh{57adGldsW8V;o*`Sa#NbyRz~aFH6CmeO{l|o7$MlbnRZmyuET&HS*{8!}L*Z z;T$jd(=hekmJ%tyjVvGn*J43`(0C8SBoeu&33sgzQ1E6^ms!A%7@;S#1<}^hPDZ>x zI(xX&^c45A>kNo4FKjL>%RnbJ(!fq<9*VOE zYxjE8J1TXjsFi9N^JiQcoJNFWbNpG66brq5jKBn5Vkj#Fr9u}C>3wlqz)7<4t=(34 zTPkt1wYr3PEPZ4<7D}v|qn)+Kbab(~#_6O>!}45${lEg%dHe;x-7R0%dB2%7 za2>bo);a{|o(>Jef5oSeSt5w`j62gI*eJ`S77b9sR!^YX|31PR)I;;>7q z0+zr7!uiP4wtVt?NOs<(IYP^W~;OMA7n>z4b z)`QrWCm1?`XlOP|N#@-Q>r{ew;)m8gc;0fo^i&uy6)a6xV# zM9^zj7db&~pY%su%0DA{aN>N3_)$HD$fg_W;J-ukO0P7A1c_%xADBHMr|XFJEa_7- zsuLOCGB#=*5s%u^!g4k4w0S(@sV7htkq-)=}9;~C%i{3UxzWIZGC8hu4@qzh6 zb!(hZ?n!aMS2rAd(IsxvtNaYKYM8ppkVAjK?V!n9Pu$VJ_}0xOOiPmzr(U0~?~x=x zz8+G~2)|vN(o+mR^VF~wODMNByD=KUh|}(Ss1%`uEM8yqzT>=kol=%K(8Co=|KKjf z7bzSYK>y&`AUPzL!vXJsm8v3lqNpHfRS(KpH_s3ku_y8ERFs~hAa@bx1#1eV?d_Hf zvOawWXtfD?`H8bkO1K}*7&QM@^#ooE(5@vfx=So<9tCT5U1NkqyWVwPkf`)v ztBL~P1vv!QPG$#-w_2!H@9|RpC9eCd@~+LM@MK5eS0P#}ko;vbV;Y%X4FuaH&CNUJ{}j7FyI3=A5)fuTpjq9n_@A?!XAXerEe!$B^Y6%0M*sv>YD~H8 z7oDjxtFR7`G^~BOEB~XR3G7D{az=|+q} zv6V?EIN*S+)8n^$(BOEI?r-;saq)d)Z9j!Q6>#0j1#oYiTmqu#89xd>QRtlVn<|j0 z-Man;aJI++qhhhDB*@mNiJ?Lg5Z7cQmy&+x!F63Af0i$K2IaazEvNPlEE%)HTi&nI zJ>H!TBQu4nlT9e{G%b&pv-jloH?y~ZM&yW7ur*j?ltx)6OK)YX`q2`N0TI>3V4?mI zaTV;>JmsPY~vu!#F9o23rn=VbwLlj}3@>L)` zZD9x~6h8{;H-_thsoK@noR*|MpWbgoOUs6x8U8QfZKK8=FWpZ>gdUQ)*uf3+a zPeC?yn(Z%}CTxXO&rQ2|;~%0&3O@(-E%>Y$gKuvBP*B)6tywWe*G3LUhnQ$Y8dk69 z7=`SbOFU>M+KCUf@SZjC7ATU_vD-!4MT+OSxn&l+Ve^+PX|18li6ywQrIc+F<;(&? z%pK7$A-{gfLhQxkz#_CJTZ#-T|B_V*%iaX@XgAIF*O&}D7;2K`R)R-cq2Y>7xA1d- zFSvAE=+7exRFktGJZ&yC!~4VcgLYVz>p^v+eStEQOE++cTqYP4*Oq@?tJY11g{<%$ zj^=^c#}$nrN)CCEH$NDj*kH z8@(fEYx@J~D8y=O7SIjR!Wk~-mmwFAX<}ym7O(b7_0<$x?q$4*6^ei)Etag-R8$TTPZyRipvD1N(DTUnGL8+V8|D7;3Lp{ffJ2&6ic;OjG|TO_1Q1Fa&$p3J6y$Dp}#! zhgo&Tf`&KcLCYO!3(@Sd*@7*9U(<5UiK2EgrQ`mQPqJ#Y-^}%S2rmLms@J$`hy@&M zz{pD8QIr0#KG^z!OM=j49bc7@tBmC{G9`=o&S@26HFAp_Ru}#224^{lp$ z95s9?KG0*1BoF@wyfVv9NNL-_h*=O5bRIq0-bsH7Iy1+ja+DbeMYg@J^M7pCvUUA+ z7W34*=n(SpYc42zD|8#cN`VYQM2Tccjv6N83zo3q+tC73`>2cVr#U^1s~I?oOs=Al z6~nR>;@7R&@RX3JE}OEGqKg^a{7q<)oV%8x=3HyP=roP=}t01)>a7 zsSXLWhWKyEa=OJ>?D`94tlsee(F6OtdmMi8nf!d*s7*l4vjBXp_7=`tY!8#&H{3wN zW9|jrQ~5w+=#`bUO#Z+grmq{}LL-S$^@TmUXKF{7mIc2&M5>9+Hyg?N9TLDyR5Q9M zkq|5(EVQzG=l7+ZnjUhC)-UB``w$44TXI22C}u7gIdE{h70NFQU<7)fsoq7ScaGiI zJY#_%2cR-8ui`fL6>;w(*W!VrtMFDKI2;&8vV3>`fMD|WBTTBKF{9xjh$|VGUScqY zQ0nVhe9?Hf2B{wIK{kBU`5V;Vv+(ll5;+Xy>7acS4g>pwg|xUZKtP`X+DGN^^_?iw zPv(8J^TVV)7pNEeeP}?kSPG1ahG&vN^Z=Lz9_tJtV3)@p?{RuYKEEk8XHpy{OY$hT zgTP4R!mpV{_zAVxpY`Gv@~&^?kARA_Wt+X<6&a?F(y|*3^JeGw(5_o)TS$Uu|8*@C zy-RWc}KPqhB=Jx)4(t>TS@)oQ=5`6}FC8P!qI*M&TQvTcCqR#|DNj-6G4o+i zWRN3M=Ctis@hKQ&PfXW3Ob54R?am-~_CT5wC3R4zJl|m(oZSchaD3`W$eVWUzGPP* z4r2eyvYXRnL#uBg-*svH%f-oriEKImtb^_rm>$FsTe&WG9DecoM%RA*$SY%Npb`fs zgxHhS+p^53>)#GLI6b0VYDZAFU*cFmH#6e$0)9T=#P?YV;23AA3UPA;4QSc@UHd^9 zmFD6(p6{2qEb|SJkV#EPO@Gku)IK7w;kd-a{x?Ac`JgLrx0h1>})0l1an#ALc46sL$C# ztS;+yiSV0sVh^y{_!u1AAKDn_fZJcMGVE+EygDJSfv63M+HA*2Q9|~4R`68wA(nRI z`NQD7^YbbJhS7FRam}Kw-OHwjZyMM6oa?vvo(0>DQ5k8(Jc&V3N%|ZAg7o*d$#_@a zCznAPIE%lIHXbwmy8;7^C=v%`sW3^~$EX~c4vJj?W{9lEsha*aT=flJjn1<;QW^kEQ!Z{BvY1b553851d_RmrigI!2-GDL+qfw|I~>0*V2sl5K< ztol5aa4yQU1%;gU`Mi}k_}2{n*F$^Rcx4<_{+Hpf+i5u^kcqaboCIH-z{lQU0ncIv zuIAj~rBsNKQmSj$4D>7z`M#eS3f;Q{R~&9L)uw&n39YTUu!zcr_r4iuSy=^&FdwBB z(h(&A6`8mMg#|SBz^Io+_YCWf!7k&?Wxg7*y+2@=to%Vj-)pzSnzZu=M&8=yDFm%f zkX*d9q>Sr?0T!VuBX9*@_hJi8 zpH3iXg;sxF!21jDgW>cvC-N6hw_=t-TOl_zvCD?pfKZk>{%ej3#r+oUN5k{m6iv2xP$p*L>hCYPq?)7G^$--ypmC7Zc;#b zh?nm8V&YCbY_dDhib-vLH~pIaCWUZa6#WQdyKNgSIikheud^z5Tt#(G(x1kF@U_C5 zx65G?ch$p;A5XO%Q^c7{$k@>FmcegmrclBvAb7|Nfa}H=tS$_ncjmrP^qU@v5$8HJ zf;G|=l8FPCiB~=u&{?{fbz1F)#Ix!vMBG$gpy+Iwg>YeBCds=9qMR4Ng~EQG_u18> zl6*F9gt2}`aT!KTa28ngWZ(zM^&sA}@r)w~n30FrsqNe0?ss`$;wN!#Kn?Nv79#gH znZF(kpzk$!pmBwOA5uO1dPk;xIF$~5@{CQ;$oCT>d)N5=OVZjC!*Hg48_;r1QdfH{kZ@fb1!`<%Hy$*} z^6!pLIht#LF19(oqy($0JvTM>KX4WXXH(f3AkLA)Wb=pi4~GxOAU#+P&ycz??Ec}n z6Dql2rr0Fc-BwC%2Rvd(*OuJH@SK9cRce#PpQWpCFmNg^@_N)ljaJtn`n*xRd(&wq zx~Jb4782?MzIlfr3a|c*AV~4bO%};<4sw9EhCR0Dm5TJMh`f-wr@5n1X)MbBw$`lb z2b>|d(;V^(ov`!{ppc%v($UMzz4o2^YU>}ty~Zf2jAB;#gSsw=M5&J|iI1K*mS~iK z40QjbFX>7xw)mCYLwCq{T?&V&sD}vJPMM5f^!GTrlf?F3$ z$jdRu$$S^yAR`lx$4?Je3ft(Dqwm*5(JL)URv-^~-Yvx_oXM+e&8y02d|1^L(8O!{ z`sgdRfaa-2a@-P=5Yq>hluPQf2ldbT!FC0A$Di|SEYY>s4QZh|B$hun~6zQMjkQ=jKTQxy_ZIHMtr|A4T8F1hPg zOIs20c=6J{GM&!qNSTt7(}K>34vRmFTS*;>v5)v(ErWq$YF#@U;e6YZq05QmJf&MKYOl zy?V{L50EBSk%{GSB2<~k@d-88<{{oUO=(og2&#r!qp2Fy1wUanuiW_#eQs9`Z!9iJ ztH&83i9Zd$2_aUfqO^&<06?@iFK9iQp->}kNDo~0^j2OwCPohu`h&0Pq(JKfsL6g{ znJbbKrU-#LhixdLZ1*Kb61fjfV&i&X&x~(!8JAE3eKV zojrL5{XfsFPOFNu2`R2a*(7=XX-Ha@i}VOU!atW}VlvZ9AKI&815h+C?;NC<0F>K1 z!B!e7oV~E<+@KAOM?jSF`;I6m^B>XF$Q6{R4JHfcl8vmh=3>k9WnZh@YdO?0#vS2v z3x*8!U3!pdaVXLhUzC;%BoI& z%`Dn6ui_o$tN-qrx8;mw0<)ooe*Vg1!$K{bPbdIiOb(RB*lA^j%5(fi%whVS(@dJm zi@?km6k!FqcR$i1%pjn@Ht)y-0m|K99Sp=iNv;7Zyj83u43Ns?VH@~NV$hcVEchI= z0J54se_5Y!?cMl^T;HF4Ab~8$kbWYJ5yF!_^0cUjE{vIsC*XTVwco<)UzMcXpXCtU zOFx(mCsV=WwdtS#a@iI56%MacaDP8`UOIT-VyIu^JXYrz4o!iZ>C;DxlliYNXV{E< zbz`*(vW1=FgzGhM<5o35W4|1-*2+68V$d{-HR8=A%NW*7APL9k;q$+bXHv@69G_pX zx-`%)%rJf;{vb@^EIc5_|Rht_#u(Y;~Cn&!!hvyqg?PjdVu?H}(SG zrAX1nluQzm*pqfkcSDJRmsAn<<3dM=r2e6NrMG-E5#f*EyL&4TiGhX-xXd{GSwsJv zoF48|vz9~UdYxi@7${I?)|*&7MzZhjW=URGlt1ruWzt2X*>i4_H)a^WQwon#5BA*G zHZzr8W3_+7Lfp{OgA74DUvR`~-qq~Vqjkx~Y+Zd_=GU33j@^>mdHeR??-8Xt4od(5 z1p=b?W%w8WUt~Q@VsZ#_BAfpgxl{#J1MPE*%tZ7zG>K8XK$)B^{Lk-A>Uo;9Ws82* zigexUGMWP-zi~Nn;-riT!V_2sjM9t6PbF<5l*3+9+dS1(c*oF9yD+=KNM{NhJ zD}Jx(YrZS)lblVcSl@s6LY&=|L+W^Nh3G%T5x%Ge1Gh|8aqtIvouw(L0CJQOUBELl zLEjJWyc8IOQj)R(O9b=&vJtIEM}`2T+j#9^_EG2zrgGw9S=r#9L5>8L2n#r}2&`aD z!{P%@Bgf7mLZVI*`bptYjq~Bcm2sEF?u)WI^YmP3ZzGUnFvmrt4Ich-r5e4l3e#BB z8sS@(tb~^+tJ#g&E=J>7z)TSeODeAdx$(5C8L9_s<^tvbG0_gk_u94HWmB238v&P@q)$s?PaW7rVs;tEcoituH-V7PHqbj7iQXTRiF2VPz zDeJJFQu>W+LL+Y1SQ%OPchuADGRA75$Hq04h4%*DY+|dRy(6G+ZEuRA8FquR8AV>5 zd~+aZ^5}sb(CF2OqOsLJmW-0A;rx(yJk;5iRH-^A7PTC}PfZ6?A(UQAp_Pj?ws5W* z*DS6knj3+iR_w{jFv@q1sa96yY3qGj{d`}dIce58YEI5CKOE08Sx3R6+4XqYQ*rhO9%Q`RUZ`%%kwMwm%EtC?zm1Hz zUe(@Sz&?XKm$<*#hP~*$?BloW#ky@v>|(t74z_aKXM<-QdqOsGMIvy8%6WJHA!>=n zIwy^h?=4IMawVx}eE&Sqy-1f0vPci9NBxduzTD@PDN7slIsZ1+^NMRlaYd3A^$F&P zv_5zP7>Ls}hH3kY2SG^iU?L;8`friB_zNnnpjyDt83h(xgg@^H4+SI&hd z!pR`|qWYFQ!cfl=$~v#zwv>7!8h1HAFMIwgsb>krsR3V#8vErh z5dy5;a5d1k3Rgzw$z1V9YA(1OQC3EOE3d_fs%-qqppduP=PKqvl!v=?XN#wdH(!iD zgqlrJ+*Z`4s!h5JfrSljtxlxUg41-N7wF{_xG@+7o9t#ypj(T<4IP4->iSyETs6$J zoy2_n&CLWrW+OA%x%`scCnG|!0|-;18Uc3?`4Id7c-kQN-$vw^5^%@;X(IvdbmK3o z&>M!~sS2UD*nEV;aPCTc0<;HCSO_m!QK=#pgC|21nEfv#-DCta6ED9Vp3t!k5caK! zz3~|*UL>Gx-N~agZso9dP$Fx8ta9*`X0A~>mz2wwy1-q)^8VF|jG` znXXPw#aw8)`Gjq}nmcRx2#a)8CIQM*Chvb9#PueWTj_a?FRb>9Dop9Ultd(hDW_PP zvTPHhUTy+vj>?#8Hk?CBB8gZdOE`>mN|H&b=RIKjg$LMvi=ueP-)AS{#puB34ce#u z)wFZfZlTl_xsarnlas4xCf<&W?EVuaEEy^g=V$az86~SdmEhCoZrn67ysTbS^!Z_H@bzk5xzOOb)ciAZIWYO*n z{({0_^X=)=F-dZnsAq*gh>_8prJMAigQc6&I3YUTmcD=K3(!+!g_GUn=H@2D_1HJm z@R8?gCzfNL@3rI>d*ibY-001j$q0A_&!kA5P~h`&l@&)!P2eKey8;M^&$ZNnB+j_O z-*H-;noDxo#3n3tLobC53wA}rs7}RH`-J(*cE6ixT3dHfp9Hf!X{yN*5j zR1~Sz(873ebUBHyFh9N?6xgAnPTT$qGA$+(BguC2(&8k4`~$e#@f5BNH|Ah5Jo2<} zs~r`k**d8+Qd%To z+f^yowh|v=v$K{knq(VKD`4cFb+U0AT=pmbhdX| zk@V4(+R8NM-T`W>E}>7PR{|Rtb%mJ?It*;3xC&b`iJcP@t^e%CBW%v6Bf_dtJkF}P zYph14si!rIQ||fs9ZpK3eBM8v?*#)1pCgyY(j{FK>bQCDu>hN*=`8wqzgacWzf8TD3z_t)&VpDWLCOg-!<(tdQ6Rt-vJS@K~z1vNP2)w zoWK-R=t2~?O{PpZqNxFD2m|zi&pq#E^W2*w<}kR`gA7GF*FWDw#|&)?zKoEsFC)uC zUGj`70Fv0Ag#-GOR;@bt#D7SQ^$xAkovPruLnIxmpgq($6jS&m(m?=1KHANGnH!dv z2`}+~{F@Z)$0)|VIH}|vvuV(K*wWqn?K9P0T z5$JUrGKki1;MYPGI}3QNAziP@JtuQg@cB9xnGvo-HO2;@Z~U4@aoisW-IH;8fB(Kp z0@&_B!tnJju`Feh*!#>`#=G3p`ajE3)2mal9wxGSA{N{c3f)nS5vLRyoDdsU1^d|r zM@YFu!(;yvXAPkiQA$cfJo@qtu(i!=|9z**F(Hq9PgPDD;iAYYj2jtY`Vk@i`>(~> zl|u~c%7$@Pn}C4+6SLwIvzqMDK-nwj6EM!jcu?NGaq|wxVoqCi>zBAyYU?-yGp%+9B^A{$9NTg)jq80U|dS+J`j2@74 zhiZ~ z)8|JetQRLX94wDA{gLBh!SKKJJu>&I68{vjJ1li1dDf6mmoT>2{Gt^SVZ*$$hS>%r6O6{q=R}RUu&iQCS#Ba zJ?^z*i-*dk0rC1~4^G}G?p@Dp=Fgr9`d|CuFpH?RI;y^+mg`QKGG(o0MhipOXnL*7 zSwn4L=U`KxsFLpsZoQ$ZEp!~1V*QZ0*8a6?dql*FAYJfZ*2?lUHh<|M>7QgTYW0&q z(|y#o!?dIR{gpg%C*!F5bIGXZbE!k8nt8;gd5xK4-*O%0P0Hi->K?z6;P(Sk^;;Os zw*6w8<+^@&^J$S3p>GPG7$0HA)^vV&O8V6muF6-9GHZcf~MF*G{ znExIK^x2)`ps#W{(9lGOcwyi|9ajzQ1F_{tzv8^2c5$`1Ff=twl5$f3QOVB*$aR#w zW__eYQLL|!)pT)^m2LH3ly1MCUrS*h4zC-OH+s4gM*^(68~p($M_FCZYpM3v4dx0T zAJ?&hpzwR4WYa&%f*Y{pcK>}FRvwI{yb*>)eNm);MXUMA;$KcC(7yzr(Fdc|?0Le9 z%YJ3g{c))`2kFVvmlT!zxrZict%$=pHtmK-S_@Y@V7v<&1($BpLuRn&yKm_17@=oc zidYR=`+IAc8xM;Qpf+JJTJa+!1__5}(dcx1pNT{blswT3ZK^j)`t;n!4%F%?y3|Nr z#^=*Yk7(S+n{OmWEfxW%s-IE$f?gJt-4G!mopf*^%LPYa>2>W?o!s3PiDW8C6#mEG zvR~v30|SQRGSE%A4Iz^d1N9y7_Ks|?-U6mWkZ`-bMqu^?+c-DdJJ9d$4F5$>Pen%| z{Bc|#Cp|B@Nh#7mHw|%K+lTF$LFmT7+V6G%BUR5)by5Ak1nOTQn3*F+j5wTGtl4(h5xXCsv$=6rCee(|vJNE`r#&!qfTHV5Vz&S43}-xr zHK+P!TcOC){mq<^h9||4nM_8_ZUaJv2S?o{%1|vd zx&l%%G^lbf2N4PAjsYP~_H8&#Q8{~{N(y=7S-ue(;UQpw$E!}`=?gc4Hyox<*|r11xv4MJXn%6)Bln@#4~p`x zreu#kq35osD!`V@!%=>%4j7pR{OoKp-YSs`z(n8dW?dwt4r%%p#%wUXcyy=+uMB33 zvDSRXP1QWaUqY+`3Jy*8m=B*Wb}?PXY9)x0ep0qopGr%^c7=9Qp1aG-UA%3H2C`90 z#xgzZXM_O$rnqyWMaP5ABw$vriE5mhu@#~2>qGcw8j_RB%`^H^z@pD3U5z+TN3~RN z1l1poVt**(FU@+-0__v})ClgzHU2Bw3z6rn*e3lb61LpgsQ(<2+ z#h5re^VNZ=exZ&h{{16k;}3)AZ#sXf?}3npYeb^ZN~F*vmR*zR)4Z>Q~cM` z9T{{xhc0AZz&@5yH6B7ozAX3G``iST=B*UHpkJOcwUwjF^K+~JSE{&pm=k)@qlRx> z;f-PTM~vMm{b4$3Q^&rQFyRl#;$82_0|6;EU~Z0#{&;5O?3e@pz7g!^Cr#3h%IpQ0 zV34bY6+*~FyAu*hxqc0j%5S0&gw!u-#Ah%oyJo_zIfgosYt)dgsri=k&3w5!zW$m1 zWs(mASUB%$0~Z7)rxR;-TC~_3B{hyCT8l_Ez%_plK&%Bb@0HK zRQZ@yc7us-73rbCV>*YB9|uS)wZe5;B#^!j76Vn+)CY6%oV~8z*uaE;2*Uq{9oU%1em9m4o>Gu(IRD7fj(+m5|n>+@tZ#9|F zIo$#i*;_Q^cdonVM#FKkcX3;O@U{Cm?P{G7BQ8PCXaNGsl0%fc@R$@XdT|WTw$C}M z>WZrQg+(Gi#f7zoXy8NKyZhx>D>qUC*wKwOH4F<1dX)_aly1slF>?S|LeOO2meUZm ztAsYHRmJ*ndi0H#D8pUvA=TTjx(|b08FYia@QB*m=m2{)c%VswF#DrOjh@5L>!Asla64RE!ETZ-v_^ys>QfSR4K4+>S=-BhnTH%Lu2CC>Ph@@uL+!J(1^y zTko#&J2W+ylpSMxQi8}e_DncWj>>{38zq#ba!ii#sW>}=_rN01FGF@R$oi#I?hEK6 zJBXF--rp}nqL$-hC|KQEyJ^@K7?5f$xjS?bojbkzF}An|wCm4;=0{q@tBrX><^SD0 zf%*}{Lq=ci;?yp zudiJqN)!V(*cH`AX}}8gsAaedSc*{rSdt=jV1) z7x0`Jo?=D@Pwq*RkB6|>sL$+C+zkUHI=;Zzc3>w)y1# zgN7OD@}H-&<}Z;*LIR*WpzhmSO>|l$Qt5La)6eeP&Kd^5=k+HD*5Den(I}_0g9+6r z6XQT2fc&th2|Ypzy_c57ht@xUEOrxSLx8a7hTOOt&*V$kM|dMi>_rzfBI-^Oz`;lT zRx0+g@SBG?Y9{E`25V;Q&IEc!vW{S+-(C0^Gx)UFjHR1yLnG)`EnXpK#Y6ym_(J49 z1l~U6CWXp}H^_~REqW41UE6YYgidCS6q_^`(C|Qr|7S(f!FrUY6`AQ(RV+u;b}f%^ zk)Xwk&*>y#r9Q;E_V7e{Yr>JO?kX}6!Owfm&n8gsZ1S9cTOU}6)5wfKPpUwMl<<-^7xascL$YB*(*#LvbYk9GA7F9#o~se`^0!fLjy#HJ^DO%4$gK3Jq6 zOAOwm(g8AxLY?&D=v95g$>@>GVplP9&axd=%^>-yOtV9G4{X8_Jry&u2^mB~g<_hMB*gkpic`h+0?W=rs9FsT15eI!Q|g zsa;8p)rcE>1k82h)mig28_3nzJ|4b}tsY$?qpvThO>h+n%wUy`sEgp0bPvAmycTh3f^>r7>?iTLUQV$wWn zOv(loKR3pmyfc=lHSRBIa(_={oun>H--^kIvbjibfAOb!VRi6J92;`VJ-W$Pb6!1v z*5i~Xjh}EL!NXf%wYw-MA3G@|3#>cX{QR-|i==KLR`Life*7; zcEAIF-YTqKm}W$)eQf#_wXVj2ykOKu9^K=JTI|!;PO^O~=D{mbO_ib469{tq)fxKy z%bUnTC%9#zIW~7&dV6j#5~4cuq(K5}D3kXyq+6 zJNUNjY17iNJ*GI?HC^5jfR$S$?}`J?m+F|A8wLD>v^*^47#EiKD}xu^5zDN(Sv}I9 z_+J;vu#3lR_&KFhj-vk3r5k?pA$5Ww6)`)`mnKtaH*%~NW^%Zv+uPNG5#s<{N&(0jT3)zS( zH!5whI|alpQvS|Oh#PhII5j8jpu8`2$89}hTRW4K^)@pYN}EW)y&)mhmD`=6A?9<7 z=!qwqn}ZLff;>?#dL6ebfn5EzvqhMm&}pwn&`iFgCH8KUYlsWzpZ!&TikK~Ek_fYh zp9s~fe)={A^v0c*&nEi}e;_xLLz%T)TT0zIbq8BgX_uR0<&^@5Un^F%*ggqqVW^z^ z6l=Ib&A54{I`Sd`3y8x=0eL~h8~f3`NRelEAGERGsB=Co*0IaSmD@8iDFFIXduhA4 zYAqL(UQ9~mw(t_CkcnQ%xtBY4ICV?`&lD>0)jL?yp#)MEV(Kl+?SIT_^+{&IiVaveUsIW;{( z)|OU^A2W;Pgx&XLkthB`_pC$S8-0R{y(%v63offL4+mNlGe1mj_>OPEa(ZRFQ@a9c zZ)iS3S8frudt2Nq$w(R0O$LV&I{zF1*WXKkxNk53aWJG^W6V{DXc{$t=HA+RQ)Pcu z(tz*&Fn4651oLSlE;Z=pAwdl-=X15L3zbjfHtG> zL7v=M)OOOjjwbCN$_us`hIq5)GOiCescqQTOu&fD*DyILU(%Dh%gwht%~42u$8 z`)=i~00PAt$LYfy;ln!xuD2G3yNyZVzIC`TFfBLA%3;nT04OA86C4!Ny z$ic;12?pG;N=CJEhManc?o=i`bYb3-MM)K*@nLoQ#Vk6dF2fepUt;pelOOPGr)iNy z{ng==`GUwCu-6cU8eNGndBD=eYEZvdz6jyDXV~en3=dK8 z8szLV`PPCY)TvNm0z669l1`T(^^$M{Z){7dH^ieFKvsv0u3X*kROTt~*a$XMusH{C zl~xfD=IvS%4dhO_SF{4gRhEpH%6A9o+W@}-Ik7M=Td$0Jrx2}oR5QclJ3%6htr*!MelUv_c9mR6ku3)sG<_IIRSaI|SdJjZqZ9(+X)a4Gj;qz!6x ziBAi%_TOY49GDNO5cFcPKaKqOOjxjU#Ag~kt@PM=nVxtPkaF@nX1IiCs0`Z~QLEB_ zoP+RR;%o3MI~rHVbd)#R{X_ciQBrvAD{Th*s+xpIj7P*zoSwx5l2!Cn7KG6F^M53k z)CUVy62X#K>Chpg^^`%g(7TrSiOMA3`ooYX{mgI?fxD|MD&yke;d?8@yAFW|djfqj zbh{qme%{QSx)$64K(R(-p}%5l7Vbm^3WI6z=m%fz7bLM{E;4CxXMfYy{!d$H0TtEu zJ${-2=>|chkrt#uLApUCq$C8SVdxw{qy=H<21zOD?vk3JyBq0{P{7}n_x`>w@BLZp zu65_$&)#RBa}Q_D+_OW4zLQ?Wbkdw)g&?hBCp#Dm{RlFCJZH)AD?;M)Qmux~{9FY~ zl0m6mt;gV$^Bk^DMRN&1mW_*gO`)_!sjVUy#QA2iWTTuXXFZ4Q)#W9>LfHDQmrG`+ zUkygDIJ@<>aJ?D6JS(5xXbFKbB?p`+u0jfj?toLBv-Xp&l1Z|JP*fw)$8_fjImJrD zneOKm)n<@d2Jb=I$gRg5w)P3~SEWzf6Dcg)3br&~xhhHTouKpN+VJHH(9aBQ&c0-W zPIc$Xi3Wz6jZfTHihpao*Qxe-%szr0M>OOOuo06Ox~>4CC!=>{VYTA7N(?&}kn#c# zThtTNnV0Wp{qp}5t|89p8SIT|;QQT6%?uUUt-ufh8pSMGq410x{ALKd`s!6f?DQ!} zl+VPK%iN7n4evznQfJ=TB|OQ9pQtmD6vJ4fIRVGQz9(bKwhR(Mc1l5<%hDHA7UocPpkUhz zU*R=9WTWF9fdm_}T%)esV8{dj6JPvm0FI}gL+ImfqZXQjLbU}dT<3U}d5Lz?{NY}f zdj)VjxI$Q3G~cr?Pmi5l(JBzM$*n7KLc?$XHhDINN z_YM6JD3UC0;f|ozo0iDa;ArOJa`rQ_vIom-|xkWL>o)m2Pt60`lfq`qb?>0JmwgPEyVQ1*iT`pT0;PM?cwX>Te7)N&IijAh)R=Y>YB@L3r z{MWDnigC*2nZTH4uYoUP7`42)Gg)Lp2okxg@N5Q4Wy!fP%fg5NUJ@|t8YJr~(7f(u z>?kl7B;8!RRPB#Vj7p^O=1YE7KzXRroRRjmrw4JY{VYiz7O~}r2UXI~<|(eVtWKYO z9@^*j6)*No`=}AGl4soaQB-b>Vi$wea7qOEk;KtrgUX`vv2Q~Kmqm{DjK!55WtFb` zf@hg-VT&1a`lEsP>Qx8+BxDFhcvo&&lP*u1v!~5F)p@UR+wa(;Z(SIShkH(++z?cJ_l9F*s7h-WziJQ!|Tv2&?r+ zUHcM&J%Z|ii!0kxrr6mV-28#9SL70$4L5oJ#>iGQMVFM8wXPU1Pmq+I$R&itxK=U5 zS5mTE8Nw)pooW5;U%Nc|_SCs8mO83B-$1gX+ehJbBtWck+xjhh0H& zcCb#gHYvC5i73Hb_Dsz4d{w3f=$o0r0dC=0KG4F7U)FaqDOI(~;QXAS>`Y%@%uv$c z(3**#&A5`;J_m!gd~)hZ8#V4HuwO?_2frW(qBmFGxJcUUae-xM=zV3V2hm*(rbiF3 z53uQiks&m5^eqR_uAdzj2(}Z4;@C9-nX8(wyqLo=y|g=Ip3ISSQ&NIV_@1(aMOxJA z1}u4o z)o&~bdq&aj40d}G@H4xh=gsD|k%%w4#DyLxwH$K&F)&ENO|oONL;F3a?BmxlRWcoJ zSg$dc`(JFY8hN3B zo!bD3xaVR$GcjLQWu^7=3>F|pUp6~s)j1kCPknHv*T27+LT(e0`WLR z(`qtK>5^eRwV3Mt`f|*2VltKM&|&u*_YEJ;{d2X6fj2N`rBLqqqV*{x?7rF<-WcVP zPQ`R9tfZfmt|}t&QSB?2A^LS~2BwEtEszRGEFb5*bgb!MoQ*p>(tTrd`t3I|RxTiv znG_ebWhVNK+-o_WRXOA* zS25Xp)jw=H`s-dc?9(5@C6DGplBY$NAhl~Zjs626QS@h+0cRvf@&wZG)5~QURcCAN zKy^$O1)MKRtMTdGV|=`ktbNzSF=B)ssbi`Q{0S5GDVHi4j^z{EbX+;^_n;9<{GzWL zW{i8zOV^#$bo98Zw(P;y{$hKl?=euI$}>?5{7j>lDQXl@aq4{+u*lG9g}(_7$5gy%#t#*!fE?1OFdskPH$Ix5s<*om_p)hPhJnN<$`d}Ec%u5jm}4nmOpSeN#U6g4 zclY(f8W>D(#CxcZm~yv6oQ96fA#<`Nq@KF^lVrz1H~uZ$-GBf3y;3)vuKfCG_4P$f zpt;i(I{e!OXWHoDGb;FM08AFYQ$A)WI=_YG{+=V)MP7z8x}G_Q10PRZKW14+P~8MG zxZZ5$Nx2!zx2XURbdFIe*%&L@qA*PH%yAoKj?~bZ2vTPc(T?(ya>%E+`8*tEo$>rI za#`@cQv$;mv%2}@!J_-G`Od4^Tr0ZA1_S3%M1o0U?*lnOpli;lgO@eEO^L^s7LK|{nPDblE z>Mg~VF{7CmHrAn@opSn@1Fe)q$0`2d@AGP7@D1c-{4Q5be?C!jjk#3cjX`Q=kG6kp&zVJ0A z#icy^#aD{i08~Oq#HzzNsZHxwmncjYo7dtA*5e6oV-a#`^L8GDwq8gMFp-M>4GU&r zIUm8celiZYQ1@QqytI|jRxC}3$a=}>?4^|AOo~&|{0$ZDM-9@5I;O?@YtEX|)$L)& zq&-3g!AVK6^G_0v0tHfs`+O7Lt~ z4Y09ln!QXfE1&e~B57PcO2Qi?vjQgJkI`ep_9pS9rr`lbeb#im31xg=;XDiN;C7)8 z^U+(5p&eA!=AVZq&-$1qCZ3X`5iY^u%(7psouNh=ZT*h<^`7bL4CrpiaZFlO$Hg9v zcH_-<e+ zG9G*%FPpV>xC2Bf@x>g)6yJs{bH-Dx56;yWg#R=!G|gnl^UWs649jE#w3yJtmE7c5 zOV90Jm-^kgBjFrx!}X|PiHxNDS5dB52Qv$5l7DQQ8XJMv*<|m`G!m|ngE~2C+{-v@ zlU}Yk$bvt4tY2TbT8g@VKTeukIk!F0aF#}_pIQnlSNP|zVcl4TSd>|Ni0^wWx7Z5H z$ojQkM`#wcG6ZMd;|*va5gc2_&hJ6&bRg7R0ck#JoY{up#LBj1=3(>&BntQw>&jYDU6=Ol%JvauFwxx zFfw%9j&taOjdWif2HNfUIJ04;4PhuTRpMSj#Ej8xsB$4252=?a%dsWuN3oSw(BEc` ziF{Hu@}1}49a^U>i*OAE zNbroaWPv0_R1c%9-D|0X_s0gClLx(D7`<`CMS_$=?1$^XjTEIvsRT9n-n}iWRgqEd zAA)F)B#W~Y&ArpO&L>GPMuGL|Dc## zH6~fWEsMAOX~vuJ-hJAEDo};B(T;I_vtKdahzngoJqFd(!1aDBq3qHl|JM)SqGv+b z4P^XFjOLl%V!1AT$J#>BTFlwf4Ha~g{LsfPRKkZA^Xo}Si_IL#r3tyuItja!>Q4xD zA8%unqSu2>%i4v~XJKdN358x9%^_g77Pxs{&@`R%u1Gk^$hVblVT}@Tx{Ni2G>#1j z@h_7oQYIW)0t?du8NM%UVU-M+y=HVrFIw%QU&)L(Ii@Abhoe{vk|PVL4tCc2_g2O^ zjJFn5M_*cFt8bt_v0%@fiH&@g^uFfp3Yw4Bl1QUcolg~5RGSJ5EnNcRnvQ2N;{M5g zktUkscRg#t&@<0B6Wd!Mdffi;bMNXKV%4=CF)O^>VDEW8v5@KO&cqW=i9c7)-nu*V z?}8K&HiIN(s0avVP^B6^$bBiIn~8=qMxX*{9T8@Zg~F&n_5D2644deYj|(qG?kQP% z*zv)-7dnsXcbqe2K_Tc1cn7ke?}%=_$g=dYV$Vg?LKXv<7Y9nHJXiBW7~lhGjvE86 z&5p35YdECk7sis!%ayI3Jr}3t2(taqfUVrt+Q&#obMc^JlUF^V{`;ZpGiHyi>WF6_&8Ixg6RRuAaO``eAyTnsI%qr| z+Ww3ArN|k3siqbwn^s#HdC#CZ$sSXeUN>8Oyq@Fuk1+==?(yTS?N^D`pDq*paVA-G z%({eR7*x_<@lhuyeukKn@;rZzTr7!;>EWd`%(l)`k!BTtJhokjlwK@<(oNp5qBi~1 zYEvOs%en678(GmCf*AFYgDLWQwL)7paqBsb=>>Asun>JzvIui4B3*`#SJI;EYy{_N zy zp&cK2)83%xb3`;wj~IC*5!OEFgI^?<$&yK}acvtPwtDNv+b(e>N?P#=>FQo3c02t+ zs{DslVH@VC!OE;j#M7V;^DOU88d{Wclm?vc}siKc<`v}N364pj*RA~&n-u0TRMi)3sMsGXk_nPbsMgOdHmV`nc zy8I+Rb*{W-(a#Zh;0r4wrT8(VY_E?pso?e#v=8ceQpM!eBM^vxX+RYtMqEdrN(W|W z{S0PUvKTYxqVVmvCpjBlvkSg@@l1sA{m*rpKs!82NY;`7 zd|!}WboYDlH!c%IMbrbXfMT&Ru8(x=evM)0I*4i=Vgz$Mjo5f?(E=C1*J4D;d&qJ% zC}7MyUBuybG3mO^3qCQ)=*~71vOEr~Y<8?Q$$Jld$dy%H(5O+AOZbtZ$8-1)gnFCu zsu9=XA!pM+9z6$F8tg*#yr-fo-jaQDQ-I~_IFevHy2N=h*7yk!*>?-W&w;X((lH** zo`!nKTMwpQxb(&8UdixHKcEc-d&k3_;8voBOr&2L{e#Ox&Tk!gW zkB)s*+}hry^8Uv;j3&)dD+@VeSEbS)9#y$oqtOFemOp|^BgamoD(S0azEvq1=o>uG z3Wa>~V%o0t!x_jTbZkVnJNAH;L!KFFEYRlFyn64deeL?{=lR!NZ|+Nk$-|F@?h#k_ zB+|4l7rSUqUURX&esRoua)gc9m<@y(nO^zE2I`3xlg_GpG{{q+9};^3R zBSn3=unKwW=xy#QS7-YAaQwb?8rF|2^&zNA^y#UG6%EsP;KWwZr#*TFy4^sz`s90a zN+|m?P}-jRTlX3)t?b7QT*sBOq?V#GjwJ zour+gxIcsSKKpfj#N?ZNAry|t7Jw(F$rff@$LXdZ?nTrICKF%lET@e_7hmfT2tq9@ zIx|$--7&rtQ0xd2_acy_3C2bphSVD+d$^B&*~!)Lj?sOYQN+A8s54&wNh?*UX^!j4 z{udGIO=z?E^vgbsnIg=YmU*szVN9e7vvH>lxlYGAJ!5shxGEPcRB!hR%OYNu*}$eu zyZB!6uewswRaq*<3iglB*NX>5EwzQ3mDkU+3PI3Ihc@|4ndpY4=cIFVV6D=F`r2#W*&=(~Dd{FP7g@5! zC#T$xak@@CfAEOvPZZ{y{y0lhbK(wxW3Qm>n)MI!x~>ew;Fa5^rbzz6KXnc_G1&CJP`C_hbFUkwd{hYq;p=sO0!iCH@=wr~ z?kW#aAee#f+X4TQw`5=+i7Oc6o0R zQeiZq=jN^SN~2i(U9a5Zi)(vTN4ZalCkse*80=mIo~cL2LEAUu`8a|hqImtiWAH<( zp9L+;TIW!u3-v1>0$_;&6=6c&@?TstcS-iVJJ`xN&ggr`me1k4t#Pm#=6pBc_T^GhTlqH%hs^hvD4 z5%fLVbvD{YdDI_a71@OWRno8yzKcteD-ps*={FsAx{yjKTOE-<9iQ3?n<^%PjSMRl!`KM0y!=a1x07oD4n_*AVX&H zf^;4Qyk!p(RWcH+CBfh<{%;wApO8{DG=wOJMHAuzdr)hpFh$+XLtyE;;2xyP70`K z2Nue0bH1Gvh(foQ@CeYMAstxMzc2rh08VKBeE2Qya?Ad%xHk3wVISUMt8Q7UPU8RQ zq`bqO037QdbCB4Pp!mZNp^cqb4}aT&(Y2D00Ib7AK%rcYKXM2N*?tyC&?rQ5=x@V8 zU6c=h_uGPa)5Z@7F7N^lraQ0_`XBgB7x7;M>fJ?wM0oGdb>(~b(7rCLzwXTd_dIa^ z=iWVND-J5_KjRKU_}yT%7FcZ`XlM(tknK)`b5ONz;lFf!?502>BK)IEg%HH{Z#^RJ zQZ!D0(RRSWcvla}UxK8#Q05-2+g?`D;mPp=AQx~vx&y~h{AmSFaSsXs1b&a<(#g}L zYT);YDiA}@cSiv40n~w+9t!Vycnf;IKMd#u0yK00&38cxdH{S375hqf3lhGgbR7Y} zw*P?KjJII+-(YTZ)Kn7y8vh5>W(Gh3C~ogxHoj6c*4vh|+=ga`w=le)@>c7gawkBiB<_H7 zFK> failedComponents = new ArrayList>(); - private double zoomLevel = 1d;// ConfigurationManager.getInstance().readDouble(ZOOM_KEY, + private double zoomLevel = 1d;// configManager.readDouble(ZOOM_KEY, // 1d); private MessageDispatcher messageDispatcher; @@ -110,9 +109,16 @@ public class DrawingManager { private long statReportFrequencyMs = 1000 * 60; private Counter totalStats = new Counter(); - public DrawingManager(MessageDispatcher messageDispatcher) { + private IConfigurationManager configManager; + + public DrawingManager(MessageDispatcher messageDispatcher, IConfigurationManager configManager) { super(); this.messageDispatcher = messageDispatcher; + this.configManager = configManager; + + this.theme = (Theme) configManager.readObject(IPlugInPort.THEME_KEY, + Constants.DEFAULT_THEME); + componentAreaMap = new HashMap, ComponentArea>(); lastDrawnStateMap = new HashMap, ComponentState>(); String debugComponentAreasStr = System.getProperty(DEBUG_COMPONENT_AREAS); @@ -169,7 +175,7 @@ public class DrawingManager { g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF); g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_OFF); } - if (ConfigurationManager.getInstance().readBoolean(IPlugInPort.HI_QUALITY_RENDER_KEY, false)) { + if (configManager.readBoolean(IPlugInPort.HI_QUALITY_RENDER_KEY, false)) { g2d.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY); g2d.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY); g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); @@ -299,7 +305,7 @@ public class DrawingManager { } Composite oldComposite = g2d.getComposite(); // Draw locked components in a new composite. - if (lockedComponents.contains(component)) { + if (lockedComponents.contains(component) && drawOptions.contains(DrawOption.LOCKED_ALPHA)) { g2d.setComposite(lockedComposite); } // Draw the component through the g2dWrapper. @@ -456,7 +462,7 @@ public class DrawingManager { } if (currentContinuityArea != null - && (ConfigurationManager.getInstance().readBoolean(IPlugInPort.HIGHLIGHT_CONTINUITY_AREA, false))) { + && (configManager.readBoolean(IPlugInPort.HIGHLIGHT_CONTINUITY_AREA, false))) { Composite oldComposite = g2d.getComposite(); g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f)); g2d.setColor(Color.green); @@ -503,7 +509,7 @@ public class DrawingManager { public void setZoomLevel(double zoomLevel) { this.zoomLevel = zoomLevel; fireZoomChanged(); - // ConfigurationManager.getInstance().writeValue(ZOOM_KEY, zoomLevel); + // configManager.writeValue(ZOOM_KEY, zoomLevel); } public void invalidateComponent(IDIYComponent component) { @@ -570,7 +576,7 @@ public class DrawingManager { public void setTheme(Theme theme) { this.theme = theme; - ConfigurationManager.getInstance().writeValue(IPlugInPort.THEME_KEY, theme); + configManager.writeValue(IPlugInPort.THEME_KEY, theme); messageDispatcher.dispatchMessage(EventType.REPAINT); } diff --git a/diylc/diylc-core/src/org/diylc/presenter/Presenter.java b/diylc/diylc-core/src/org/diylc/presenter/Presenter.java index d1427841..7558e054 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/Presenter.java +++ b/diylc/diylc-core/src/org/diylc/presenter/Presenter.java @@ -51,6 +51,7 @@ import javax.swing.JOptionPane; import org.apache.log4j.Logger; import org.diylc.appframework.miscutils.ConfigurationManager; +import org.diylc.appframework.miscutils.IConfigurationManager; import org.diylc.appframework.miscutils.JarScanner; import org.diylc.appframework.miscutils.Utils; import org.diylc.appframework.simplemq.MessageDispatcher; @@ -191,6 +192,7 @@ public class Presenter implements IPlugInPort { private Rectangle selectionRect; private final IView view; + private IConfigurationManager configManager; private MessageDispatcher messageDispatcher; @@ -208,16 +210,17 @@ public class Presenter implements IPlugInPort { private DIYTest test = null; - public Presenter(IView view) { + public Presenter(IView view, IConfigurationManager configManager) { super(); this.view = view; + this.configManager = configManager; plugIns = new ArrayList(); messageDispatcher = new MessageDispatcher(true); selectedComponents = new HashSet>(); lockedComponents = new HashSet>(); currentProject = new Project(); // cloner = new Cloner(); - drawingManager = new DrawingManager(messageDispatcher); + drawingManager = new DrawingManager(messageDispatcher, configManager); projectFileManager = new ProjectFileManager(messageDispatcher); instantiationManager = new InstantiationManager(); @@ -265,7 +268,7 @@ public class Presenter implements IPlugInPort { @Override public Cursor getCursorAt(Point point) { // Only change the cursor if we're not making a new component. - if (ConfigurationManager.getInstance().readBoolean(HIGHLIGHT_CONTINUITY_AREA, false)) + if (configManager.readBoolean(HIGHLIGHT_CONTINUITY_AREA, false)) return Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR); if (instantiationManager.getComponentTypeSlot() == null) { // Scale point to remove zoom factor. @@ -275,7 +278,7 @@ public class Presenter implements IPlugInPort { } for (IDIYComponent component : currentProject.getComponents()) { if (!isComponentLocked(component) && isComponentVisible(component) - && !ConfigurationManager.getInstance().readBoolean(HIGHLIGHT_CONTINUITY_AREA, false)) { + && !configManager.readBoolean(HIGHLIGHT_CONTINUITY_AREA, false)) { ComponentArea area = drawingManager.getComponentArea(component); if (area != null && area.getOutlineArea() != null && area.getOutlineArea().contains(scaledPoint)) { return Cursor.getPredefinedCursor(Cursor.HAND_CURSOR); @@ -361,14 +364,14 @@ public class Presenter implements IPlugInPort { @SuppressWarnings("unchecked") private void addToRecentFiles(String fileName) { - List recentFiles = (List) ConfigurationManager.getInstance().readObject(RECENT_FILES_KEY, null); + List recentFiles = (List) configManager.readObject(RECENT_FILES_KEY, null); if (recentFiles == null) recentFiles = new ArrayList(); recentFiles.remove(fileName); recentFiles.add(0, fileName); while (recentFiles.size() > MAX_RECENT_FILES) recentFiles.remove(recentFiles.size() - 1); - ConfigurationManager.getInstance().writeValue(RECENT_FILES_KEY, recentFiles); + configManager.writeValue(RECENT_FILES_KEY, recentFiles); } @Override @@ -640,10 +643,10 @@ public class Presenter implements IPlugInPort { } if (componentTypeSlot.isAutoEdit() - && ConfigurationManager.getInstance().readBoolean(IPlugInPort.AUTO_EDIT_KEY, false)) { + && configManager.readBoolean(IPlugInPort.AUTO_EDIT_KEY, false)) { editSelection(); } - if (ConfigurationManager.getInstance().readBoolean(IPlugInPort.CONTINUOUS_CREATION_KEY, false)) { + if (configManager.readBoolean(IPlugInPort.CONTINUOUS_CREATION_KEY, false)) { setNewComponentTypeSlot(componentTypeSlot, template, false); } else { setNewComponentTypeSlot(null, null, false); @@ -681,7 +684,7 @@ public class Presenter implements IPlugInPort { drawingManager.clearContinuityArea(); projectFileManager.notifyFileChange(); } - } else if (ConfigurationManager.getInstance().readBoolean(HIGHLIGHT_CONTINUITY_AREA, false)) { + } else if (configManager.readBoolean(HIGHLIGHT_CONTINUITY_AREA, false)) { drawingManager.findContinuityAreaAtPoint(currentProject, scaledPoint); messageDispatcher.dispatchMessage(EventType.REPAINT); } else { @@ -742,10 +745,10 @@ public class Presenter implements IPlugInPort { messageDispatcher.dispatchMessage(EventType.REPAINT); if (componentTypeSlot.isAutoEdit() - && ConfigurationManager.getInstance().readBoolean(IPlugInPort.AUTO_EDIT_KEY, false)) { + && configManager.readBoolean(IPlugInPort.AUTO_EDIT_KEY, false)) { editSelection(); } - if (ConfigurationManager.getInstance().readBoolean(IPlugInPort.CONTINUOUS_CREATION_KEY, false)) { + if (configManager.readBoolean(IPlugInPort.CONTINUOUS_CREATION_KEY, false)) { setNewComponentTypeSlot(componentTypeSlot, template, false); } else { setNewComponentTypeSlot(null, null, false); @@ -776,7 +779,7 @@ public class Presenter implements IPlugInPort { return false; } - String snapTo = ConfigurationManager.getInstance().readString(IPlugInPort.SNAP_TO_KEY, IPlugInPort.SNAP_TO_DEFAULT); + String snapTo = configManager.readString(IPlugInPort.SNAP_TO_KEY, IPlugInPort.SNAP_TO_DEFAULT); if (shiftDown) { snapTo = IPlugInPort.SNAP_TO_NONE; } @@ -807,7 +810,7 @@ public class Presenter implements IPlugInPort { } // Expand control points to include all stuck components. - boolean sticky = ConfigurationManager.getInstance().readBoolean(IPlugInPort.STICKY_POINTS_KEY, true); + boolean sticky = configManager.readBoolean(IPlugInPort.STICKY_POINTS_KEY, true); if (ctrlDown) { sticky = !sticky; } @@ -1010,7 +1013,7 @@ public class Presenter implements IPlugInPort { LOG.debug("Area is null for " + c.getName() + " of type " + c.getClass().getName()); } - if (ConfigurationManager.getInstance().readBoolean(EXTRA_SPACE_KEY, true)) { + if (configManager.readBoolean(EXTRA_SPACE_KEY, true)) { double extraSpace = drawingManager.getExtraSpace(currentProject); minX += extraSpace; maxX += extraSpace; @@ -1110,7 +1113,7 @@ public class Presenter implements IPlugInPort { dragAction == DnDConstants.ACTION_LINK, dragAction == DnDConstants.ACTION_MOVE, 1); return; } - if (ConfigurationManager.getInstance().readBoolean(HIGHLIGHT_CONTINUITY_AREA, false)) { + if (configManager.readBoolean(HIGHLIGHT_CONTINUITY_AREA, false)) { LOG.debug("Cannot start drag in hightlight continuity mode."); return; } @@ -1162,7 +1165,7 @@ public class Presenter implements IPlugInPort { } } // Expand control points to include all stuck components. - boolean sticky = ConfigurationManager.getInstance().readBoolean(IPlugInPort.STICKY_POINTS_KEY, true); + boolean sticky = configManager.readBoolean(IPlugInPort.STICKY_POINTS_KEY, true); if (this.dragAction == IPlugInPort.DND_TOGGLE_STICKY) { sticky = !sticky; } @@ -1247,14 +1250,14 @@ public class Presenter implements IPlugInPort { } private boolean isSnapToGrid() { - String snapTo = ConfigurationManager.getInstance().readString(IPlugInPort.SNAP_TO_KEY, IPlugInPort.SNAP_TO_DEFAULT); + String snapTo = configManager.readString(IPlugInPort.SNAP_TO_KEY, IPlugInPort.SNAP_TO_DEFAULT); if (this.dragAction == IPlugInPort.DND_TOGGLE_SNAP) return false; return snapTo.equalsIgnoreCase(IPlugInPort.SNAP_TO_GRID); } private boolean isSnapToObjects() { - String snapTo = ConfigurationManager.getInstance().readString(IPlugInPort.SNAP_TO_KEY, IPlugInPort.SNAP_TO_DEFAULT); + String snapTo = configManager.readString(IPlugInPort.SNAP_TO_KEY, IPlugInPort.SNAP_TO_DEFAULT); if (this.dragAction == IPlugInPort.DND_TOGGLE_SNAP) return false; return snapTo.equalsIgnoreCase(IPlugInPort.SNAP_TO_COMPONENTS); @@ -1269,7 +1272,7 @@ public class Presenter implements IPlugInPort { test.addStep(DIYTest.DRAG_OVER, params); } - if (point == null || ConfigurationManager.getInstance().readBoolean(HIGHLIGHT_CONTINUITY_AREA, false)) { + if (point == null || configManager.readBoolean(HIGHLIGHT_CONTINUITY_AREA, false)) { return false; } Point scaledPoint = scalePoint(point); @@ -1310,7 +1313,7 @@ public class Presenter implements IPlugInPort { // For each component, do a simulation of the move to see if any of // them will overlap or go out of bounds. - boolean useExtraSpace = ConfigurationManager.getInstance().readBoolean(EXTRA_SPACE_KEY, true); + boolean useExtraSpace = configManager.readBoolean(EXTRA_SPACE_KEY, true); Dimension d = drawingManager.getCanvasDimensions(currentProject, 1d, useExtraSpace); double extraSpace = useExtraSpace ? drawingManager.getExtraSpace(currentProject) : 0; @@ -1620,7 +1623,7 @@ public class Presenter implements IPlugInPort { this.selectionRect = Utils.createRectangle(scaledPoint, previousDragPoint); } List> newSelection = new ArrayList>(); - if (!ConfigurationManager.getInstance().readBoolean(HIGHLIGHT_CONTINUITY_AREA, false)) + if (!configManager.readBoolean(HIGHLIGHT_CONTINUITY_AREA, false)) for (IDIYComponent component : currentProject.getComponents()) { if (!isComponentLocked(component) && isComponentVisible(component)) { ComponentArea area = drawingManager.getComponentArea(component); @@ -1731,7 +1734,7 @@ public class Presenter implements IPlugInPort { for (IDIYComponent component : selectedComponents) { String className = component.getClass().getName(); LOG.debug("Default property value set for " + className + ":" + propertyName); - ConfigurationManager.getInstance().writeValue(DEFAULTS_KEY_PREFIX + className + ":" + propertyName, value); + configManager.writeValue(DEFAULTS_KEY_PREFIX + className + ":" + propertyName, value); } } @@ -1739,12 +1742,12 @@ public class Presenter implements IPlugInPort { public void setDefaultPropertyValue(Class clazz, String propertyName, Object value) { LOG.info(String.format("setProjectDefaultPropertyValue(%s, %s, %s)", clazz.getName(), propertyName, value)); LOG.debug("Default property value set for " + Project.class.getName() + ":" + propertyName); - ConfigurationManager.getInstance().writeValue(DEFAULTS_KEY_PREFIX + clazz.getName() + ":" + propertyName, value); + configManager.writeValue(DEFAULTS_KEY_PREFIX + clazz.getName() + ":" + propertyName, value); } @Override public void setMetric(boolean isMetric) { - ConfigurationManager.getInstance().writeValue(Presenter.METRIC_KEY, isMetric); + configManager.writeValue(Presenter.METRIC_KEY, isMetric); } @Override @@ -2023,7 +2026,7 @@ public class Presenter implements IPlugInPort { } controlPointMap.put(component, indices); } - if (ConfigurationManager.getInstance().readBoolean(IPlugInPort.STICKY_POINTS_KEY, true)) { + if (configManager.readBoolean(IPlugInPort.STICKY_POINTS_KEY, true)) { includeStuckComponents(controlPointMap); } messageDispatcher.dispatchMessage(EventType.SELECTION_CHANGED, selectedComponents, controlPointMap.keySet()); @@ -2472,7 +2475,7 @@ public class Presenter implements IPlugInPort { ComponentProcessor.getInstance().extractComponentTypeFrom( (Class>) component.getClass()); Map> variantMap = - (Map>) ConfigurationManager.getInstance().readObject(TEMPLATES_KEY, null); + (Map>) configManager.readObject(TEMPLATES_KEY, null); if (variantMap == null) { variantMap = new HashMap>(); } @@ -2550,20 +2553,20 @@ public class Presenter implements IPlugInPort { xStream.toXML(defaultVariantMap, out); out.close(); // no more user variants - ConfigurationManager.getInstance().writeValue(TEMPLATES_KEY, null); + configManager.writeValue(TEMPLATES_KEY, null); LOG.info("Saved default variants"); } catch (IOException e) { LOG.error("Could not save default variants", e); } } else { - ConfigurationManager.getInstance().writeValue(TEMPLATES_KEY, variantMap); + configManager.writeValue(TEMPLATES_KEY, variantMap); } } @SuppressWarnings("unchecked") private void importDefaultVariants() { // import default templates from variants.xml file only if we didn't do it already - if (!ConfigurationManager.getInstance().readBoolean(DEFAULT_TEMPLATES_IMPORTED_KEY, false)) { + if (!configManager.readBoolean(DEFAULT_TEMPLATES_IMPORTED_KEY, false)) { try { URL resource = Presenter.class.getResource("variants.xml"); if (resource != null) { @@ -2573,7 +2576,7 @@ public class Presenter implements IPlugInPort { in.close(); Map> variantMap = - (Map>) ConfigurationManager.getInstance().readObject(TEMPLATES_KEY, null); + (Map>) configManager.readObject(TEMPLATES_KEY, null); if (variantMap == null) variantMap = new HashMap>(); @@ -2588,8 +2591,8 @@ public class Presenter implements IPlugInPort { } // update templates and a flag marking that we imported them - ConfigurationManager.getInstance().writeValue(DEFAULT_TEMPLATES_IMPORTED_KEY, true); - ConfigurationManager.getInstance().writeValue(TEMPLATES_KEY, variantMap); + configManager.writeValue(DEFAULT_TEMPLATES_IMPORTED_KEY, true); + configManager.writeValue(TEMPLATES_KEY, variantMap); LOG.info(String.format("Imported default variants for %d components", defaults == null ? 0 : defaults.size())); } @@ -2602,7 +2605,7 @@ public class Presenter implements IPlugInPort { @SuppressWarnings("unchecked") private void importDefaultBlocks() { // import default templates from variants.xml file only if we didn't do it already - if (!ConfigurationManager.getInstance().readBoolean(DEFAULT_BLOCKS_IMPORTED_KEY, false)) { + if (!configManager.readBoolean(DEFAULT_BLOCKS_IMPORTED_KEY, false)) { try { URL resource = Presenter.class.getResource("blocks.xml"); if (resource != null) { @@ -2612,7 +2615,7 @@ public class Presenter implements IPlugInPort { in.close(); Map>> blocksMap = - (Map>>) ConfigurationManager.getInstance().readObject(BLOCKS_KEY, null); + (Map>>) configManager.readObject(BLOCKS_KEY, null); if (blocksMap == null) blocksMap = new HashMap>>(); @@ -2623,8 +2626,8 @@ public class Presenter implements IPlugInPort { } // update templates and a flag marking that we imported them - ConfigurationManager.getInstance().writeValue(DEFAULT_BLOCKS_IMPORTED_KEY, true); - ConfigurationManager.getInstance().writeValue(BLOCKS_KEY, blocksMap); + configManager.writeValue(DEFAULT_BLOCKS_IMPORTED_KEY, true); + configManager.writeValue(BLOCKS_KEY, blocksMap); LOG.info(String.format("Imported %d default building blocks", defaults == null ? 0 : defaults.size())); } } catch (Exception e) { @@ -2639,7 +2642,7 @@ public class Presenter implements IPlugInPort { Map> lookupMap = new TreeMap>(String.CASE_INSENSITIVE_ORDER); Map> variantMap = - (Map>) ConfigurationManager.getInstance().readObject(TEMPLATES_KEY, null); + (Map>) configManager.readObject(TEMPLATES_KEY, null); if (variantMap != null) lookupMap.putAll(variantMap); @@ -2717,7 +2720,7 @@ public class Presenter implements IPlugInPort { public void deleteVariant(ComponentType type, String templateName) { LOG.debug(String.format("deleteTemplate(%s, %s)", type, templateName)); Map> templateMap = - (Map>) ConfigurationManager.getInstance().readObject(TEMPLATES_KEY, null); + (Map>) configManager.readObject(TEMPLATES_KEY, null); if (templateMap != null) { // try by class name and then by old category.type format String key1 = type.getInstanceClass().getCanonicalName(); @@ -2744,7 +2747,7 @@ public class Presenter implements IPlugInPort { } } } - ConfigurationManager.getInstance().writeValue(TEMPLATES_KEY, templateMap); + configManager.writeValue(TEMPLATES_KEY, templateMap); } @SuppressWarnings("unchecked") @@ -2752,7 +2755,7 @@ public class Presenter implements IPlugInPort { public void setDefaultVariant(ComponentType type, String templateName) { LOG.debug(String.format("setTemplateDefault(%s, %s)", type, templateName)); Map defaultTemplateMap = - (Map) ConfigurationManager.getInstance().readObject(DEFAULT_TEMPLATES_KEY, null); + (Map) configManager.readObject(DEFAULT_TEMPLATES_KEY, null); if (defaultTemplateMap == null) defaultTemplateMap = new HashMap(); @@ -2768,14 +2771,14 @@ public class Presenter implements IPlugInPort { defaultTemplateMap.remove(key2); defaultTemplateMap.put(key1, templateName); } - ConfigurationManager.getInstance().writeValue(DEFAULT_TEMPLATES_KEY, defaultTemplateMap); + configManager.writeValue(DEFAULT_TEMPLATES_KEY, defaultTemplateMap); } @SuppressWarnings("unchecked") @Override public String getDefaultVariant(ComponentType type) { Map defaultTemplateMap = - (Map) ConfigurationManager.getInstance().readObject(DEFAULT_TEMPLATES_KEY, null); + (Map) configManager.readObject(DEFAULT_TEMPLATES_KEY, null); if (defaultTemplateMap == null) return null; @@ -2849,7 +2852,7 @@ public class Presenter implements IPlugInPort { point == null ? null : new Point((int) (point.x / drawingManager.getZoomLevel()), (int) (point.y / drawingManager.getZoomLevel())); - if (p != null && ConfigurationManager.getInstance().readBoolean(EXTRA_SPACE_KEY, true)) { + if (p != null && configManager.readBoolean(EXTRA_SPACE_KEY, true)) { double extraSpace = drawingManager.getExtraSpace(currentProject); p.translate((int) (-extraSpace), (int) (-extraSpace)); } @@ -2861,7 +2864,7 @@ public class Presenter implements IPlugInPort { public void saveSelectionAsBlock(String blockName) { LOG.debug(String.format("saveSelectionAsBlock(%s)", blockName)); Map>> blocks = - (Map>>) ConfigurationManager.getInstance().readObject(BLOCKS_KEY, null); + (Map>>) configManager.readObject(BLOCKS_KEY, null); if (blocks == null) blocks = new HashMap>>(); List> blockComponents = new ArrayList>(this.selectedComponents); @@ -2891,13 +2894,13 @@ public class Presenter implements IPlugInPort { xStream.toXML(defaultBlockMap, out); out.close(); // no more user variants - ConfigurationManager.getInstance().writeValue(BLOCKS_KEY, null); + configManager.writeValue(BLOCKS_KEY, null); LOG.info("Saved default blocks"); } catch (IOException e) { LOG.error("Could not save default blocks", e); } } else { - ConfigurationManager.getInstance().writeValue(BLOCKS_KEY, blocks); + configManager.writeValue(BLOCKS_KEY, blocks); } } @@ -2906,7 +2909,7 @@ public class Presenter implements IPlugInPort { public void loadBlock(String blockName) throws InvalidBlockException { LOG.debug(String.format("loadBlock(%s)", blockName)); Map>> blocks = - (Map>>) ConfigurationManager.getInstance().readObject(BLOCKS_KEY, null); + (Map>>) configManager.readObject(BLOCKS_KEY, null); if (blocks != null) { Collection> components = blocks.get(blockName); if (components == null) @@ -2937,20 +2940,20 @@ public class Presenter implements IPlugInPort { public void deleteBlock(String blockName) { LOG.debug(String.format("deleteBlock(%s)", blockName)); Map>> blocks = - (Map>>) ConfigurationManager.getInstance().readObject(BLOCKS_KEY, null); + (Map>>) configManager.readObject(BLOCKS_KEY, null); if (blocks != null) { blocks.remove(blockName); - ConfigurationManager.getInstance().writeValue(BLOCKS_KEY, blocks); + configManager.writeValue(BLOCKS_KEY, blocks); } } @Override public double getExtraSpace() { - if (!ConfigurationManager.getInstance().readBoolean(EXTRA_SPACE_KEY, true)) + if (!configManager.readBoolean(EXTRA_SPACE_KEY, true)) return 0; double extraSpace = drawingManager.getExtraSpace(currentProject); - boolean metric = ConfigurationManager.getInstance().readBoolean(Presenter.METRIC_KEY, true); + boolean metric = configManager.readBoolean(Presenter.METRIC_KEY, true); extraSpace /= Constants.PIXELS_PER_INCH; @@ -2975,7 +2978,7 @@ public class Presenter implements IPlugInPort { return 0; Map> variantMap = - (Map>) ConfigurationManager.getInstance().readObject(TEMPLATES_KEY, null); + (Map>) configManager.readObject(TEMPLATES_KEY, null); if (variantMap == null) { variantMap = new HashMap>(); } @@ -2992,7 +2995,7 @@ public class Presenter implements IPlugInPort { } } - ConfigurationManager.getInstance().writeValue(TEMPLATES_KEY, variantMap); + configManager.writeValue(TEMPLATES_KEY, variantMap); LOG.info(String.format("Loaded variants for %d components", pkg.getVariants().size())); @@ -3014,7 +3017,7 @@ public class Presenter implements IPlugInPort { return 0; Map>> blocks = - (Map>>) ConfigurationManager.getInstance().readObject(BLOCKS_KEY, null); + (Map>>) configManager.readObject(BLOCKS_KEY, null); if (blocks == null) { blocks = new HashMap>>(); } @@ -3023,7 +3026,7 @@ public class Presenter implements IPlugInPort { blocks.put(entry.getKey() + " [" + pkg.getOwner() + "]", entry.getValue()); } - ConfigurationManager.getInstance().writeValue(BLOCKS_KEY, blocks); + configManager.writeValue(BLOCKS_KEY, blocks); LOG.info(String.format("Loaded building blocks for %d components", pkg.getBlocks().size())); @@ -3042,7 +3045,7 @@ public class Presenter implements IPlugInPort { LOG.info("Checking if variants need to be updated"); Map> lookupMap = new TreeMap>(String.CASE_INSENSITIVE_ORDER); Map> variantMap = - (Map>) ConfigurationManager.getInstance().readObject(TEMPLATES_KEY, null); + (Map>) configManager.readObject(TEMPLATES_KEY, null); if (variantMap == null) return; @@ -3074,7 +3077,7 @@ public class Presenter implements IPlugInPort { } } - ConfigurationManager.getInstance().writeValue(TEMPLATES_KEY, newVariantMap); + configManager.writeValue(TEMPLATES_KEY, newVariantMap); } @SuppressWarnings("unchecked") diff --git a/diylc/diylc-library/lib/app-framework.jar b/diylc/diylc-library/lib/app-framework.jar index b70f1e2be64be4c82b5043c0703d13c201504007..1312c8997fad2085e7ef7845e0c3ebdd6c935e1e 100644 GIT binary patch delta 43777 zcmZ6y1CS<5*Dc((ZQHhO+qUheyQj@*+qP}nw(ag|O=Iqy^MBua|Myl@MrKs)+>uo) zVrAyuE2ok{pNc^dlw?7{V1R(2fPgSlbCePgDB&^w)^#&*;rc*8K-LK&!s77ozoxxA zvZGZ{WmQz&a%hBc=zhT+#>T+AC&9s^vwcRRB)O`fXFo;5JVv9)22xl(x;(f51N~pm z|9DK8AOQQfz9K{Zr~d2wKNn_F0x(Vz4=@baKVwMZ1))qr>V^D&hL#ip%!~Zb`~P(N z+aUV4=X^IT-2eY8l7K-t{?`>3{6Br{N@VHM!GM5JlLA4602bOr`c%mnbc?HD_l@}@ znEB(;%Y_AMtxBfq+hkew^&2BI5K(t`zeoD^9j#R13AkT=B@uqg6U4jTNk}n`sXiXe z`k&77v3lN4pU(9GeBt(S0wPFa%(2_*NlZkB?XiD&MblSZi={b3+On)VYYuO*m=za# zLB5K0(-xuM0i?b1Cg5BBh=zo8L_|a+DE8<`naJT}#~bVo1|ve`TU*FtWY$f#?4dKk zvg~0|M#;GBu4J&%>W5khqwc}j7=3bOSrXiOx>H+TZelF1uaEhPjBY!2TP@IIy0w>6 zS!$EqVyiFYp^@%za!t9tf$61b`!43vu75?53UNzx0I~zm8@p^T!G~JGL)NmZWldI& z2Z?=vZCs|-+1a+79y4!!hsVbm>*mPUFx-JfUlo$n%+~5hg z$GX*NiskR(5?ZB6T}IJ6C*(f+G7xep!ZO`h!+IRNFp6p)B}?hY9xcI!apxJ?Bia=v zerI9q0GKOvy~pll2^O;Llkqa5yq7Gcq0VCvU6MX@oZ}U|ZK_Q)i2GVI(dIFbxJv7g zOOrHqI9ax)MiJ)Jz{HbFSv}Zyl(H8T*TnSQWI`{>>c-$gf4a9Fn@{6nREd2&98j66 zTLoKLQJ}q1Df{Q9Y7dZkpzDq02A@3yM|{A%03H$|;?ezr6)QB{&5drSGravM4qd?w z_ho^1D5tm$8|`KT@MYCzz}w6$bE*OWvo4Lz>!)UY!FBg7!H)Me5qD^Q@!URSNi(bG zaY>fBtS~58g$Wz5VU+WTtm@Miu1TdG8%{Ywf`h*-ZGLs=IWbKlY{IZ<Ii&Twk@uKe`1v$MZVKqu$C@}-E~qU- z68F_g?9A{`d9Xm0$nj5AfV(Z5BM%oTa2FK%Bu-UoAMcPEb683NWVVjGgz^7D(VwDM(bez>I(N8vN-loE>dqm<{vS|_ES1`r{C z#zx-E5|#y}tYDUab;&P8#{39794?7x?*>yoydo@@lU)@(i*;1>DPT9IC7OO>;EHBV z0K4)TK;~e{pB2ng`EQ2fh=f2p%c2{rY94KbQQ|21qOMUrO!YsB=oQ2%R4)Q{4%g(C=x@DD@Q z@4*E$g98D{!zK*~P$nr75CY_|!s&xyqGHv^=}=l$X^7OFh9DY9Xq2`PCXgV)O0&UwDG<8cZSTE&wSIKHpAFo-0$&fqgU@i0 zn#v8p#L%vXM9MHQPHDdZ96ImZCghW`>t-$C?h>y~^YiEN+LHj|SspJjogrHhGh!vl09tt7=6lb35?(pbQ{ zqJ!b_BYRKFohzh=(4`LS5rwADThme$Q~<57mdWv7hJ@?oI`tQ$xa&?yb+9y+*c^5?0a(m4tR)3!s~dDhP96(K@M%A0WawF+weU!p z%~N7x?4ovTuU)GbP`gK4yd$dr{NNvXfIB54HBUUOWlugP0XSb_Peka(k+_&DbB(-e zm%_w$qE^>E{D31d;g*)MQi)cnvl_1Jk!`djaqmsl@~!6{$iPOBG9@l_m2K&h4ml zE^8TyRP5pJQ*W)M$QiO#=6DtVVr=KCPCm&_A`v_0&}`vQcCY8Z&3fVjh&0ux8({g3r@#cmA!CV5z( z;Jkll^4{(B-_D-mV^@=GSHfM^6_xZ?gjK6nf!aPg)bzNIknZ@sdFJ1)uL>R6vzgb| zZf%`ETh#Y1Y#n@o&Y0%DB*1ZG_ePF7Fvfxh#~wR$ho?3O-81BVKVf`D-`8b@mI2PI zBB}^m^gM+vK-5d?a~JGP_`YH+1J8sdPzD6DM+36SSB8mg5RC{RouDC|(ZhH2@Crh0 zF8LI-5le8X_7r2hb@1}5HID-y!`q*NN>-777ao!z$FXQ4oAmat{3y_~Xi7FMhU?OP z;TLL&IbtzL_V|X~6SWJ|9F3%t9+iV4!=}WAncN>cFKXSsft;6Q83s4Ul!ouqF2UG@j`|IQ-+uzIk<+wKrB5Rh>aGnoKDMcxsW8Oh&a zvABzlEjb<}RK*HW8p-*+9UNUYS`E6Uux!;6xBB>`f?Mj%Kf%=#R=+TwM`>+H;a^O(TWUcQNO( zI&K9F)+;?ftn+mhg>TSwbEq0Lp%oy#H9I^nJv5&Y`}5%Wm|wt&m!iXubH&_~#h-yn zz$t8TM>f3;6YXGtM&8ksc1K8?UEA~8ufe+mb| zcaYWZunt9F*HAmXSSBG@=#4E@v|1Bns9eh;`GTM;)!G|s&E;=6jrXWY!b&bZzLL?L zzVkxZPAJ)SVK($_IQBLu;Kbe--gb;j>-@lB$NvVHHk1&5=`Xfdy$A#nN=En}lnJOVcXrroj7=q9D5yVa$&eyI1p^7y-LI3A z3Em>s}P!&D^8f{klw zQ`WJ6y@YxXy|PA4d%6!c@jDbhDgGd*OeWq`kx5q=twBGoReV2KabM)m`h>B+Dv-j~ zxZLsd8#fi0G-WP+(_Scb?a`AUN&QY3Q_8A0gryba@oBGuq(Ei_ln8EdbK4?F(yyyY zm)593ZjlHsTZ79YgV0G*6&+T0A!{g=$Y#DYlf5fO85Vcv!4B1P;3pfKZr2vA$4R+# zr&z7va8eu{-<^gH*0^%lQ9$iYne5aME20=%|IU=BTk@KnFK*PC!OyHF=>e|H=WE=g zng>h$`z_2!^Kb=VS2QO!-sV650Bose=sLYk{n3&A4#qjo;LpJGyIm2=?Eg>-f%C zbo~Y0`XA5%tPG}h#;&d@DpL-q%xL@$i+o{0VHi|*0?Xo=GC2{AurzAQH0YrWRF}KY z>8nf)q+8Z7fKV`yhJDaCs^Jz@olYUD=!b1z|JjF*m#_D$4@4lv1|3Q4SCr|)fM9XH z@POK)LbKzWvT(|KFLF26u}0`;w-$l~_9A~x$qmLf zxAa94HKM^5$sYVe*)JWQXXR74s+n)zfJs(?mkhp=99bR4;sqvBT-iSZ%w&)jW}(~a z4JovMGDipo_wA)ZCWVV5&BeU*?x-$5%#QUT#7kYiy1( zRC6zZj;yBX*a??b%9vX@hl2fNLND2qS@h{C*hnwu5(_O)20#z3!H?D=p*BAX$`CON1fbA$SEUsRp+Q+rTd);dG7 z<8U&ioFA%Y@q20{rFkczVheF>S;@NxZZD}k&fNI9Ha5TQeiy~Znb#?h3XQ+K!`vO=LWh6(ZSkSV7oed}`2Cc)LUo80m zG&!!PPaDnpRN1dL*z8yDm`kh*Kk3611f(=Iu^&Xl(@+uoQLEs;qtw|kHN4z&ZRej} ziYIN)D-lUZ)f#8)c45^hQndv!HaDV&Jcu7TCKq1eKl}TmtNGw@qe8RsX(DOehBHo! zi2z10x02n3S+F!y#Wx#F{FRN<8)^pKoc?pLv@G;Vv4fI1*e5cJ)YUT&oO3?R_bBQ& zb{gOVv)|tV@Q{hN;tG6rnMF2N1$MpJ?yl3czqQ@BBOlc$`!x9)nWC8Cchv9VyaE*7 zv3+-G!!Qs`cg-GiMzY{_Uj{uZ09zRP{91qIgu#bG^2l=s>?pdzqw+yi3ww7kIU8qHQQUT6Iehl(%^hORJn`_)1FTJCv2cL%e) zrUu!udt(1S6t=!ueQlzkqcd6wMha zL0;lG{4E}bodOP)qH}p`PO7V#fbIP;3z!4H>BV|}?qNm8oyR2Py6Tzc=7qVa&(>p_ z!b736WEjPFnzGra;pvgk*&-rsgQC*Usnj%a9I#;nUSh15D8AurA~lEWr^ez=Il4u6 zkc3Pv0quH5^b<9OT=c~-9Hgg4ljt*4ewb#>0@477sPG*(#p=6TCo z2GX~r*-YmbRF0hR73edsfLgKY_)Z^><}u%+?#B+{(d@Bh_<^$7ay2Dfyfz`HWzdHWU2T2Y)|W)4tfE zoApTi^&k4f`v`bLfE+9dlss`pmvzW+DfEbyBfm_+fp6=>XOfzpV8tg3{6S?FL?@+eX*-^Pr)A=+row|OGRtX;fg_d&>KnI7?#riXv% z9Wj{nhXXs)0+48XVJ6${QMPAOoqef(3&4BjtC6u@6r{D z7#jLO07ZyMmM9&pqi)k<-7Ya`MxhfDtVXB0t!7oHWmBW7wNz)48WyXHs-<<+;H7@W zK%=JhrB_z{w|`U97#VJ4z;8*5-Ot^-uin0oFOIqHuW?hL(})!sf}x|1`~74;zJh(} zlsmu@4aY%qv7h{aDviq_p`qq|bFgFiJeedxFLmS`)mv&*FxQE;_wOz5@&V7|qb``< zvi%R5(f#Jn00ud$Q`^KYs|)yd_0>dr6Pv zJz$~(M)r;`**kpbApvRKf0XVO(Pi%$sh{=|vv~g~D@U`c90Sn1D@?$5Rqk7Zn`ktk zsYJ@P==GwUs;n>w3M1($Itrw(S66 zJT}h`J8Ktp@ag!j9;+N#`1s#SJwkEFaFW0B=NOsxOl(1_aT~eED6^O=#e#2X_^CESH`+!F2v1748yIxgw*tG(mNB#Oum*B!NSE4 zNzd5m{&H|RuI1zj_94S5yziLZ5eIdbEvnvVSh|Z|W=voKk>EN+{4Hu66h}N+kCo}| zu+X8uj`nKY6e}VZ$s^}u-GqFhhYXW}qGN}u6q}FC{43BI`UYE{8L7tw)qf9Q)cRh+ z8k670zS%NFxS4+k^=8f{mq)N(91izxkBV-CjwoReF1VN+^EDVX`HJ`T`HZ~N7X978 z+=waNlg9KxLkCWp0|Ady(AL5&kExY0Q0jRn3|&ZGNKpX-{&grqzti>Un-LpC_Ezl~ zPo{M2cDZ{SV%qa3Ud{-$=vD&I-eAZwpCA{`T;XQrq!By?HA&OP#x$+t-A%oYA4?`n znRUlu?IxUPog;pb+xcT5+G9#|S~MK#w)2xU!`IqaXW{6{Q&!6XCRgc5oqD4N;e&^_ zt6wT_qepX*BMf_4EJLx{Datcog3IDAqP0y{Tz@O=iFO~+V|omQAC_kmCMl= z(;#cHa$XEoHo(A2_akLp4>h*f16?^k0vX0ZU5xly5eH3USjva0`mXgW%c*WF2BmJe zphlD=Web&sL;=#Vm1=t`Y1Yso6Sz;oSRC6WAPcT;_0(~#C`imz?WE$Zw?9}el%*cu z?6NN^c?m7XOv0hE*wPh1E^FGq3~6jrZD$6BW1rJ)u{`-Em%S^)$lb$X*Z>f80M zfk4JxmrSPIl5PKCeK{Y(+SceXg&Ku5!cjktS)Y~MxhqrU^&8XD#(AlPO+02*ECH+N zz`tEnM^hsU^{x-@f?hJSm4pt1m8AgIxGCmaNj@}rUI-KP_z#h_^l zm&HRj!lXJ3Q3NyH|F(5F*x|CUR4q3=Vc$s~?NQihCU~NACPk$z%gIA{ zU88Fw_(*&O)TUv(R&M!eWLI#Bnl(>Er*?`{V?xoy3fWOWR~nmNF9k+KCg+5%7}D|foN`n+Hwf`JEhA01MI6y2#<(q_F+5=CkREFQ^Wjufiw z2n+n{#I+s+j@Dl0JK!P>^mq+w8_pLbrrGbKe4@R|OV|f1pImzneOwF~(PX!nu1b68Br)K=Q0jU`7 z3=(DOqnxW{X|#p$$i65ayS}+n(a*Z2{ZBMbhTZJyRX&pAyPw~PGRqp3Q&gE$-mefh-MM3xoqgoePNRFZqd2=IcVs{DJUdnOg-2dO z>o8glCpoNDQx~Dt_GV6ONJA!v2iTSs%#(>N|a)f19n~ z0d_{K9m4QT3q3n*f`BO{9Z$hH`(bUJ5bfYMp4zZ}2qu9a^kIGcI?(jY)fhK8b0;bd z@E+Pfb){%zj^>#bjxcnH0D(EUw}|dU)5e${tUMa8bs_wrvJ#FLHN_8+GSyw@8{DTwaL&=MJL968KE~HStq8NzczCeh(UDX~FVq|X%!C|os&xfsFR53-UA&~4RxNgZ-bEGBHOw$@jt&)8(&eVuo;Mg-S z#z;UB^ybcc;O~IZCU%kcLM27l69y(65ZG$e;XTw|*51f-(`*&j%Q;P@(}hg~WUCy7 zkH|Jlb)Kw{Vrg;-ge?ll8A(wrLYqtOM;&wzO8X5veLKrJ+8kHQnKsd>h)t2WR%jrfK3yDJNNvFlS|G z7G#W7Z-DY|WUE4w{9+maP@mr0^YDd|J10tTi=*inBa-y%CK{Y7=LvEy+jSz+{ zq8y>`@63fB7KnQ(2NjMdeJ z8Ve*k=6|zJ2bq*d9DVK~knyL>-j&h(%yjEKj8_g}wd+R&Ip{-!yG@Qv2JXL1{TX2{ z8&L^IHsWRbe3;U}iK9&b9nWzeEphrFzXGE*yw?pMD*(t_qSQB)X701*hm2;@bQa8X zC!GmbD|&79Y{h%2OtG@e7rcZ)gstBugOM3V?o{9b@m&Pz%3Iae8;{*sgo* zF1x6GZ`=|XfvSC1m|KA#%vI>yMF&qB+_2kIsITO(CdK+l{4BNrjGQW>V~PsB(Rwe} z!FadxM6Yi{BHYMpn-jMcl}ZpKz}S680Lx9;GM zj(Be;a?d)Gwyw;YQyh!SmgAnF?KNh_TFbUB=8Zs%hJ@{S#`(^a>p8<=(BwA!qoj_N zr0JSx>kf95+9ou>S=3oVir7)dN;Kof&FHc5#?oZ5`bBIr--49p@O(Sq^VoZFmq)iJZb;O+P!$iB0G4((gBZJmCM~>)$*lz;@aecq!VxM$zK$DWhU1xq*ACyr zswWQS0k!N04bScr1_LEHc5sU{?<&QOmaHtQ$ML{3g$0$@F&sss;V<&BdYouPli;AB{?%xGqoK7Yag3ib)M z*h)*Sr3HsIUGIVYs2X;PIq^Ip1#h4Hdw}tnp7y=dQ84J&Vxb(ir4o=SSzi>za6G>Y-NPkU*Xrk))t zuk%i+qjR<_qT@P+Fr3`mi4bv}i!&I5wJBnG-WomrKk28qxE*%-zk%vh5FjAFznTLw zVCkd=W*k7Q@|41$5E?&b!s9)#0Mi3xGj132Xh=?CCIuEI8QnVk%{&|et693tCp%_9 zAfdUPET>fLw26X?%PlwMYk)t%52Sr0^oJ{?zDT(ELXn0lGUD)}%Lx3zg%6Xd<8+eT z$nHE&!Qrk@)_U}C7aV`9mK=Q6Qwm4jt{&acFbtsMSFn6mE-y(loaMrg)kIeD^VGMv z9p-|JiB+(JUONA1=Qir#q<65%R7r3LAuBT!Lz|cIanG+pMMFx|i79peHp6lQ3RZ$m zfNq^RZVfEWvo^Nzd&C5peAng-<&M2;IV!4)p&2=2^bKX0cEJj(D&6TR1uoh4jZfE% zwTR4zr&Fv@Ig#%(jWMD+(TM-Di<{D1Ly$!rJ>IcbL=j&6!feBjq~#!|%y0DUum33N z{y+RDX|g&^U99Xhu)?iq!|J~b!i zQk#F*R7_RF<^9$wD@6{+BMIz}467+m)wqssn|yHFh71-;X>$hlQLA6)RDIjIKDCO7 zy@sBm{gS;ZUs{Ag+1Rvn`$$S2(`(6LH~E(Rm37ftF3o6Q_-(#+u)n zO*f+_?55pw%6ez^`J5X1b+z?xnDcTWIagYOx6=dHxvYZTp`=J5K1K0`OGJlZGtJdb zR8dl%wsU~ZZYS zF|ozQY)xD#DJB4b4azb*!K6JN!o;sy364@4ukhzIId_VE<%VegklO!G0JQ4Zjf|4U zsA|b%i9_q7$F>!-xO66W?;;&W8GCiVEp}Jq{^~sy1Up}tFpfv)ueE#lY|KQ0wR^DK z<$HN&lb3YV+V!~FY~wq0Nt_29jTDTWOL7~$Dhl(9NSri4)9B1rOj6PVJ-p(9HMDE3 zo)+1(Q%PD#jMMx*^kXbmu@Ih*!~GIKvoKEL>j z@`I1JAg?!KZJak%Y$c$19=aGsf2nz7WSMIQy2Ho%DXK!8ckXXT{i|- z6=W}z=HdgWG6zNuxL%!lLABHfT$vqFzld1D@JJ-h>-l+v44Rw|^GgqqG<83*`^L#wi+>OB$d?s6Yizi6T$2oZz zylxTzJJ?ItV61e&T#L^m3O3%FAb;U3qwlLdaJO(XGn(T~iprTuQJD6czO^`+rLWmK zqR%Q~yQXhfDzBlQcP~-pRnRiShR*JKwWw{G=d|QS&0x8*4l&Wb;A$J|z@O(5X1ydy z>RX&5L1C9W!ne^JAYVuoS!3E9!P4U);NAxS8B!VqJCd^;qcY!4+-#8Cj*V?i86S&W zV|nMY*AswgP#tZy@EM)1nLU{{ljvS=sV7Ebb*1`)Gx_T`be|$qyrKTofFj&?Eox0N zp@Tr}#x(cn8`=pS^rigQ&sitsAd0wvG%kEvZX0ok?I`tZ@@|AWMuOUQP?}oeio$OI zwAyetvLkS=#NPyH>~}rm^_{m|>;&>1I2+>N8a2l!LHv5ec=m7NvE&Gqz()O;po;dh zTS#QSXd@}w{6{hx(LCD!3<(JoE%Sz>e*2adwOQOaNkFM(dF(4KkA+_)y5J=qN zSA14bGcX_F1TvDQQDw|X38pq;{Cik{Uu-tU^mu%6=*aBV^bXZAR0orlmB7=bS~h5v z7*7L%Xb5WR=J6y_i+E|p(v*z+OGuft&AA5#PGJNc1iH?=UkA?o?O6zrfPiTca*L(3 zmCrocTJP;X;3{UqoAw0DOD`K@k9-XM@-cs_e$Y=2{;-ixmDoeJ)O-9R3yu#!i5J1t zJqYM;7SP`?7k`Ffq)n*AlMxL!r^NVv#qHQ3NFlR35_%4D3!yAQsWqe%RJgM$GzWe9j&dG<9&3|OW2QDx8F6aIp5LW z(Q!*J++9s4sNl#mbhyVyDti9zT2vimZ@V9KZeAFZs21uo7 zX=YaPFj`@~5nO;tJH?Sawj+4Hk&0iHFc>pEDY_8qA`2TfD{wOrsVPSw$2m(aWIeX4 zi9Sb!HD_Iy-6fpf@m(s zUtx>3JW{;JCC?&od@Je_F>zL0xK${i z%!bgu2{vtm=xcA87^lpuwML@NahB1;Qm-O67B?A)`OhgZ5`P1d;kHuPO>Jy`yD_A# zsCkI`f_s;es7`a#%#^=Zvlm!AZKFq)2Hv}^q5)bjpg#_ENK%@Ag3p#4t6LDp#w5o5 zc{bUQ;wTd^K9DjCftB2DKkVq%7f8_7va^d|!jxo{XyIOmS$igrm#oEa~vM zsX@p#SN9e58aEOPdeGaIvnK77G8$YUvEMK6zXz41BbYV9=zM zo6*yXHGzHt5k891$gQ&%?34QGfgGp>1}olI1kc@bldIo@J5c`>&`NW?Rl^tU+v-sn zYgJ``+Z4!@SnQxBz?p^lwIf9Rv8(cL0AkUpvzq^7;Wz61k*Eo^1*KoB@Fx6 z4{I}5F~nJOVt4J;6V@C=9Z-8vaTOkY*?# zB@bq-*`b6P5;Q+e)y>WF>|H$AIEH$Ow1;pMk+pRv zhS}bbOGtdDEA9{9D_-@1Tt2`E6}K~bDyf8}K9tVi06>ow(A(VWii%}#ClmR#MI2U6 z+71dIa$B6bGu;?3OknAx{NbY`3+{J5Cfj<;%y^C!cbJZE7gJ^WvfJ8m^&7BFhCc@! zH=FH+`Y}Rle`eY|zU>12gX_W~wJ4hC!erWgBx9wWn(?==A1HD(%A&b2}A!}91#rufsZ8s>39 z~jT+fpg5j}|$V|?xI1%1)rq`|c& zg5!80jBgXkdJfa7ZT^iWo-F)@SiZ%N!oJj?j5%7jqpvtcvq60j%kG1d%$Z?0%^u}u zEB>SHcc^DLV%wkZBBxU>_?$!T#8C~a7_+e7mQ+6+BzHsy6dQoWr(iCU3_hh9zsU@q z4iO7anSIP-{!An(7hWC;`TQqj@;?!i-wK6~!LUF;JeWX0%>V9~%Z88uDVoqmYAfjc zj2Rh!EFVQNpqK(#h)hrtV_@3hB1FLCaX`({mA3LG$guHF$FxK8R~8Q?Y^z#VA*yO* zvQk&UYkn}Jx3q3<`WsfSZi;tp;={`L-2P!5BEuFM>3;q8eckcA>p0teJ$)aFzk_5_ z%()bYzFl$3i~n*U+^p9H3|aa+nYLB?DGUW7@_1amb^kKFFM#&_E21Lo4f$Z_%Rdk% zqh`vrcGbF$l%+J$%J=Ec)CMhu{fGt2Vlg}1^g_ZbC%ae=5{&CVxX?~}Qle_w$ zp5Z4E_dAo#5Oc%Qov-W&*Zi$iisQhW`Azrn-5!1~A>(dx>~-=U;QuL`g);@87-<1cPndks1b3`Lgz5G zoe@(@ZDOfaQ)H`9Lf^=gNk33?otC56vIaT>X|d0mrkybYEW`*XE>%6DzIb3|G)^ zfQKF9>9hg{G)*hy_OZT78KFckQwmiT?l`liC@5`oAMIp8#h%u0+U52QPQFijy)G!|zU5L2IdOZ7kLW_{f!PBA3$T=kp zK$Y#mr#p77c27R>WUk$HwiXv!Y&1$?%dGPoZw%i6km{K}AtlR)F71|)=%jAS#squL zl#|2cV{P2C&h~*7G#MSa^+(MLfJ+hm)(~u%pLC5bq!YScbl}G;)jsiMzlCNIhvCqs zGF9!?-NXb?voUk1xs}$^B||1_Ta45aXgf?$bDEjtATF!vn_;=}dY7czI^&WZtYFye z9+Z0qF!3D()39FMm<5Fa8j_nTw_3i`LsyTC9^!~rF~dwZWG-~gOHdCYRAXr3l6NRJ zY>c=ysHVLkPd58?s#UQJi(|0bp>AN3B)YoD@MkP)YJRW+gZ>!>zD;7^os z&MdKIG!3G*uA#9e!$rerRKp4;)@brM1WVZMOT#Iq>JI$mE~2KV0uac zX*P`opEfW{OG>KZM{MrFL5N2dpt$u5N|ck^ZiAKQvvBMg)u+b9AA$M%Or%!j8JA@8 z*@D_Lvj;q>ryWgAv@S2yY(8!w@ak2UQr4m?Ror1VN=M{PVxna~WU2aTe7i%;$!$G^ znpJ`rv|$#$B??B~NVw&AGi%(cmoVZ14@}(0#iXhhWj|~u8%2$`7N*?Hg>cA;2Ry@H&CnyIdI zqZWF1KNhc~i#RikqR19{`VnV1-G}4}$oj$M!KW-=tydDwVp6~L&C*Wt9qf3O#4D-@ zhx$7zT4`!eu_&-;apaD|w#0qFRZ5xMOO1-UF6SxrQ6xo<$t-7mx1WkeRttHe701bN zqt)Xl)t-czNgh&N(-Oprp)OLs1uaHV$o9{|d@Hrp$-5xF63RFzr?^Xzc>-2yJ)%wL zF5HQw>Z;^uiZq8?`DgBH?d^nSlMA(%TfXP^G(};4ogwJTB0~g-+vFC21$mKP2JafR z8a=E8Mr~@f*%p>`$77W(XI!?+U_WRRwBMuiBggA`Wef!-WzwU71ykAs0+P_EfDOmG zGmTe&M{7E?h9G0Z1i8Ivg1_X~Lm2ia^2TW16nQ#{CzGT=$Hs>3{o#%lbg23#PdLis zUPyRBuIM|G%<7%!1*sC?GhlqTFY|^gxiJR>vGmdN30iBYPNiIi;puj+GIPqH!E^2I zhpl5k-JAe15T<=+I_VJdpwAW#`70`UxlqrrcC70UQKu!CIdMc$+~C=Qw#_u*jchnL z5A0-1CI=|=t8k@`fLQ^x8&P*(Q-~u`hQ2FqFNpeuyT7qScXPNVts{n<%;%q;m z%g0VhfTy`CgeprqP2S293zspb1$wpzN&G{XtEIf-PiLc@{(F5s^HHFfpOO#(b4j37 zj%U4>NpJjB2gJcFh+R&IIqi_I8((zS17GRVui!BVau&LX`0#qxg}?Md)^nrZwSrl( z3!9)8H`g4lm5#oqdTxo#4?M%XV0BDlw} z(8cHNAvIb4oD4(0RzrL?K8$jk??Be`LG}3S19nVi%aKq&3QZY1+pEC%H-2)nD*rtm zW?Iu1>W#x;-To<`Y#V_;c$sL7GF)QZ6xQAZRx-c?|=I-T<&T-bbw}$9McQ@53Ax~gf<+k-i>#rKeS*TF!^U4j%j43I~Y$KM=CH`r#8rYMw={ z61SleKj0;u?D2*xU26Np-l z^{%jeRN*u~C>NP9mZQXY`NNBNm`sO7cu4H`i^nLLPnH$VrJCg`z?WZ|LosTY=#=(! z0ryit6wvPlXL%aoror%BHRln5<^r1>z}YZOlspjp(-I1Htt+>m`%3mJSN)@&syI>x zSmX6d+sH9B0sgv!xX$p&mz9h0*!I5ZC;hEt(l1#LV-MiatP?ZG+@9Eg|HIWgMQ0Li zYr`FNY`bIIwrwXJ+vXeFwylo&#x}cS+qS;^=lmCE?=h-wYSc}wG3yy?&H2C}wj)Z| z6v9bHVw4WI_a1oyGgh0R<)l#WJD7<>VY1_(ZSUM zAqv*dvRGj0X+!2A-pT_<{mW#D;JGL_M`G^~^?ur;m?1t?(F}XoJGtn$+3|m%UaZ3R zt#P_*cW_}gJQvvYoc~Q{O#?E-ii-1NX}}S5$R_v-XEX4=$pf7|*&G#F&C-XmHJl1+ z#+#+2sdPthZ`C`R4R$cTmxXF-oSAeyuqVJ~qoaB85@mZX+G+S3{6OVnwVINcTTpNi=aH_Ku5NI`ZaN7`xd7&XXgf>7k$LhT_D<`L8F z-xb!RbW=G%ue#jw8_+Se$b!hCPw<*JaKSuhNjoY83!@ifTa}GLV)wGqV9Y$1Gh#l& zXiC9SCNDolY2h|t%Q69fm5|te?^hkm`*C6M>^x=4!Do(6)8d&eVZ?w2|3~ztA2S-1Uge^NYJ@2e(cm^3ikrxEI!ie zm=|j-Ozzkdd$rvO(`9>Gu?GPxcUVi_OU~&l5&Ma2qaO5vvp)wpaVECXUQzisGUbuh zG@I2&VMOM+8#H~JiN6Tubr=tJobdRWDE)6%t2{Vw7jaqZe5aod} zEu(B1R`%VjGC$2*>O$!4YZRN=4Qxv-yqS|MdESaHqB$ZmH%ME}3RdDon@#JJ?z#p;22( zK4a8y29OS7S6RsGwAiv`^No(LiT}-^KdK2dZO{RYaVN{zEdd@V(k=E=aIw*Z8egmL zcXCY;f-^7UJKe;?#vk#Cdc{|f9FsyGSFn|<5^`?_Ur{gNbBeAG>E$Ex4eqUybG4=8-l~14mM22vL z(oMl@{PhGQbP;>v^hCBi#ylv(uGnMh7Sl1e5ijv30iwe_v9XsyyYri0&`mkIU?Rod z9;03BG6^z?xMrii1dA7NZE3wM9a&&{CfZW3M_x~t9VxL8-GG5( z)>xc9p*he1b6(An8dtdCT~g=^95=_k7H+qwY6X)|kJ%>=e3AXLHecSlNRtU4SP=yU z|MLptD;Z8XhwfTTgW;1>S}p?V;7xwCOJ1}HiQOHIdIsc3iA$WNukalJxJov2UMIyW zAv%k8h$ySm}9*XNSju^h$Qbj`rFSF)19NV*_2>kku&+Hx9M)1qH@cxVoRY|{?u zcen@OPjyQ_HDig)IHYPmXeSIY3={cSL@ucw53P0e4lIB}-7mP_hk6J@0?P$oyRX~? z%0jYLd_EZzj^i{|A$!jNdcK)?Kr#jorN9(6VpWbu`p3wb!bTw1A5?Eu0dL*Q7!dS6 zlEphi$(MZ!xK5_AT+So-d%yQ@MwzFPKy=R@=p1+nEPK-gc;FH=NAZplJfY6l*E9DW zbO(+XVym@>Y{d>>U`yyhr=a{&k2lVn#Pl8V|BN)?zO~&Wz~7mH-#ifcBn4eTfVYo| z2L4wr>xta_1dZaaJwtyxxqy}+B3w(zB8F5Y?fh`CoHbjgEPYAm#w^@?S^V$5hs!Bi z#vd**9~xOO8)rC-w8n|On8(Ql5L)Al!eHBQ|$;ojHm(B9riSG`?M9%X^v0N{ z&&7m!%GZ_x{6*W1e%Xo+^Kp>qKJxtnfAW7RE(x?r{aUxzu5hEPA`^djY|7AXEbH2m zEpe$5$?skm#d`D-E~4Xs0B)EmW2Vp9o7@MyFW1>!%!V%LLO*0d({-sd!o74g9XCtF zWcRYgeik$3%Fjx>4bBhW13pTdTYV=-$!=Q`rkm}XC#&sN_HHH#_zbh=Z)FDxWbj1F z3LTmNaV-kgY0MXCSorfSJqh*hRwukuk!^w^^OFloovd?vXZ=_VO2YCe{*5q0ciJlpM(xlu$SR*P} z=>~<8o#KYRZ}!he0J`&zF=guercU->5Aq_N*g9G7BAPRuCYz+7!o=VIT-gu*@#7>a zIWlL|%%5bdTv#04J`B1qHvBv3M?jcxUSaYSlUBfOXdcub=MqQDR(8nb3x25Gjt&gd zEU8w&prA=I9n0LGyO1rGQNzGvzEc;zVkr)a`KvZZE?21;2Y_F!+%@Da+=itl7}CN~ zzQLNVcqS&$xDM_;$5Hxr5+TsIA?>c-rAd6H&Q-o)^U*`t$`7LMj?54@^;CdgI4@qPDCsC*{!E8ZP>hK8-yPK(UjHK+EA zHK=pZJz_UL1Dx|v`$b$(`-R+5e~TbhN1r%dYj#2XXfk@L;;*Pv+akY*08V-6>H1o$ z)P8XSP_(r6wu6TO;U=;?i4*3HrKV?N?C5~O1yI=BGAGOCwaK!iSd)4su{Kj%8;bY#T}t$cR9ue=)!i05%N8K&;i44<@TC&3wmc~kHqiB=shKE;+)PYI*EU3^ zK~0qwFp6u_|GW<4u|hRYS)^?zDDa!-iOHVPe)xsCEZV)b2nO~X1URYE(WS+%-(!n$ zr%lK0i1-Xmw~-7Vy+BXkkE|U%tmD!1)9GbLS88b8f>&Qf%DCzA`?#nCG^&l3KWtrW zlRnEZ;Tzzy?TQu@t18?EQsuJ44UR^q&yS1&c#eP+Z6GDQ`qO3)oxio^TciG(q2&q9 zZ73HB#|(}1pIg*mnd7v_ph=nTPtBQU7&CJvIWV8Oa(U`!T6^g8U|hxO>3Cx+t2a7v zd)ufj9>k}s549(l<{qgZ)-Gn8m<1J;EQgjUE|M&HukVU+mZ(W|ES8laZPC?SxkaS` zu5W*lJ_O%^+h%f8UAkwx_n6Je`+FP6zmMZ&aUZ~9$vih*ZO4HJ(Cl|fRw591LO37% z^y>_5+&_RACYJx>>qmt@Kx7D5<66VA1_OmLi*(nFVR>Z>QC|OAcg0#d zl$@0Q$!K=Y9g?EFGz`pfaWly zB#ZbKBFexSYg`aAz3ZFqhY}_I{$hA#Nvn@bTFvBv!{89_9!#7TFS9;caz^R|;7^#q z+iy`^Alpx|+gC&7&cZiwrqnj#kam-iZ5R*=Tk7Q$S?@s~aRf|W!E`j^xn#k0bmOr) zLR#(B)(+d&#OUb7MEx7CsTh73_Mu;2MX8;%t=*QlXs<boue#a2`S97`%2&z*|-ef4ihTs3U zEvs!{pP--=@)`97oGqtco1gv9LE{Z~_tw81UZb|r(`Op)kU0C{pVgQ|Hb_wpL7K5K zM(7=b+%8e__u&LK1+87gvHS_-wnj;9_#BbmQiMXfctdi#$n)m)TG=8!fHwb&dp|+m zD4{sWHS9k1xIo)n3^>o?vW9Yk0h`waf4Q~<2=@e4JPsmBLYzA6k7D({nbDu4e8Ciq z;Wh7m>5eu7Zt6;S6O5vIeqO{Cmy0Sj)ZFw6!^a>Vljij(SILW(cIQ46?kul|| zoDkKHL3;o|zPH!V>rHWj2_7!+0r z42G5qg3W@HHTXv#>8~9a4>|TElQA=j>1mwavp@67HC<-`+Rd7{*3G-k;7Z2@9<9y# zU016*Z#^|)3s>GOohzic`5%Itz`ZBGr-#RqxLj^oQS+NE&}0R|^82_SFURT9gw*#5 z!a-rSnrTaT=b&{uE9D{Yjvz;L&)4 zX%tb0k(^YM6j4#Cxzrd7pm@6{Ah~@*Ah}~@;F5bPeb8x8{f%h3`1xEunf+yu76f_Z z@`vF`?I5`$hD?))KlCcnQ>b+5r>Vh3Qm8c|09V-542qrwi#o_R!p=gY12y2 z>p$p95y5rk{4wtm9f8Sd5j(sgGl+_GOO-(0URR*-fmezK%&3}?W{p$Ob1iZ>J=RFf zda;AEe}r?j3lk6!G6$mk zqpQ>u=-t9~b7i*(Dejd(nFAWNZs~(6wQlhPYqd{Aa)rHBHQ563h12SJ?+3{=C3F^^ znN|J27H)1h|BTv1vP>Vz;Ar|-J$3fn03R@2)TJXlRoXT*I9K5QTXof?q7*8OODE6V zEV*?LZCz4vWbi3}213Z@JQnqT?(V!~r2}2fI{R3^S>zm%O3$2Q<`T~p|ac*MH0Js@2 z14UeDcn&-Z#nnX}>A6T8?eML7H+?M`7C+Ht3v(P7`imLQuCrL3e*m==Ozc`{t=C#`k-cx; z=X8)jdm9@OaPXW(T>}`i&I|?X0qJuUBUU8HBnhKG1Hn)@1R?R2Nd6)Cm72c=o4O1N zHd~c&qD3;UwSaBnUEhtK*L z8S{3C^f#w7m1Bej$Pc7ivDR_YrA6e>?VzjCh0cy~dU&;NTDCn#XLxni0j?JlLM@Xa z+v2xCv(DUjV8#7QG(JK7o#>xf3mpKRYbI4&}aPzFz8`3}Mfdt|QmYP=$ zsu(J9CD7|G(1_o~eqpwQsIy1mP=v8A9+5fQ)JAd_uPKQyjn3=5*lPPS22O#(A&q}W zY>B>_Xa&#JYaA6s{f#d;OGRFi=knoiHjCjCLpK{WF*@RCfD$_j07kv*t2(Yy0t#`# ze)fL@R-CAls-4dd{GC=g*fDES617K&wkDS#YWi28ZA+5B>wAz8=22tp9r-h~HR)CAZvedmOVvDdGa9iI#7|O1_|Cu{d-vjhs&& z*GAbCSPHkpo!HF@7#r(HYnu~S?LhCSF&|0}yglt0Oq86gSr5R-P{b>OG%2Y;qhx!< z^2IX>_asx*Xz!PFSu^`H%yBC>o2VjdSdA=hGT$&S5j32)pOrItN$lWghKUp+P;yiD z!h!=x6@Y}_FCQv=rl1znrF!>_=@GOKgj7vTY^K8jB-jT4ZD5|!g3V-H<%)-+ z9x?3wf)I1H-^u!kvQ;zJT)6-C+EJK5U+)~(|77)Ux>?}feK;t2G=q5G-sjXXQXabO&#>65|Yowz4h z-2_7zKG(|fo%wqiY2K;Xtq1ozak|9pi@u-nefr_#WNoo|W$4d6vmq5#o#24W$cV;` z7+xmI7L*6j0eao3-aCfvud{HvChYq*s7;msKHGMSEx(50bP3s8y^|E|65f5_d<6p{ z@c_AfkcU>%>5*}1k_&c6PHC>7f41{1-<>}pP-=#I(Ci*)gvURchkJ-TX6;Y-LjYwr zJn!BvrbP>Rg4d8CU*$J>&wiA3;C?V}x8p<`sPE=P{RWCuiIQk3dS-D2HwGtO$8{(W zXZzYtFu@svDrsQ1*wdX##S(9)1-D*!{7Fu?)4lTi+F`=(ZzI1=as_pFbCibj$j(Eoyb@)_<2*lNiR$|u3BP;Pz+K$ab`JM2GP7)dT@E*{tKSHeJ-Ps&2e(+q4e1~!10*3A=NhR~ znPDsG&H}Oo!=6p!+&N1%H^oIJ6D9;Rk*0wA;o|YAepgp6Tix_K`p7z{&VnWD73kc}0fQ#g&U?`$ zOY8?G5f^gk6Dl4Xcj)fHPARv#q;G55^!4Pyj|-<^m+78cMQr+IPRSrar;CI<$riG8 zK?WEO*8P8CoKM{b_V#~bhJtGwMQd4%`=^2j`^`Uw5$>ONmwrHLtfc}NjiuH;N`9YW z_1qL}x8T~2O*4TSCQZ6?0bW!R&ewId@um%z3&4*+u6DyPNH(bqWD@8%Dx1a7SSSC8 zphF)`(gn7}7h$X8R;DiutdJAl{6c59l@~acLxx8U71*1t%pcm$IRP89OHz%Ou$SSa zB@#tThy1yk96ABa`;h<$zho9)p-Qr(mcO1@m)zK=h}OrKr@_hesmp7TeksqB^*5{D zvb4m|N>&gh$fW01oh*$g3x3y^SVCQZPd}QoqwdA~!y4^frxL=jcSge}_+AeF0xsUO zPFsk}WQFi!Lo{!YBhRi>0R$%P<;q{>rsVhL4^NzlK>aJ0ed`AR_y--8@_1k+q|7AN z);k)6L*~{g6@I=WC!)<|876Mf9;Ah^il>87B+TRd`Znn=n4fyANf0=0_U#&Wbcpf^ zb!1?w9^sMNh_j2^O=uy~H)(|@RGA><`gVTNk=8(>s~xMnvQ>j)hWm@6zeM&00K*vN z8(zA8+btGWY*jNrOOuxf%xqp_p^A!XqB~*;a~V-dGxky7D^-^JTRY(Thn)hqs5T80 z+-x-%>)U9NvdCW-dY6NgR~-cv##BLp#`1Kt1!1466IsD*c{bLt>9Y1k!Mo9X#vu!S zvWjGWg@b#s%6y6PMExK`zql8J6S!9eZNVUy)TSZk-}lCVtA%^)S)btPf|>p{m`m4% zBgVTQcgVjx2rw!Oj*ekD4GoDpAiPCeJ04ve)^@2pU^^QGIx5D`ZC47jWMy@+)}7oZqC- zx9XO|x^@r%cUSpd=gI8em0cm5kppk#4TZCvvss1AHz{EG6OiS^VksYJ~({hzQ9SkW;)cvmWJYKClJA{14RNngMipCua^fmP5gnnx80kyO z>|9PD@l6;ea+mu-{5o@-_xFzJZ3$)H>rA1~k8=12_}O;Rq>f|C2FD1(dRgEd&?!0H z9le6h_{QIXcm~6r)h+xqz+1NasbL7@Eg(BBgESen4MQOGM_4#?%(okeV4TT7!vb&g zgz<&{ia_^rND(%8A|UxAjOZ%~0mCtjo7Qm4>az<-Ouuu^f+e4wx!Z` z5VCXt7)DM5lhEu1JoymE28mSB;-j0lABSbnj}}C|RJ~>{5C)m317)%q9&s6w&=#rf03BAMCt zU6yKA;Xz*qh_=!m>`Ux?X*`1_BE-7f(eD=JX=)MvxW+E(koQwq_TOvXT9N-2pC?2B zpOGLP+rQWjk)3WAZ$%atac=SR4;w(V&+HI4Rl5zG81`#~@R0Rl3yp|INPkmgnGthM z7ttV9@x-sY&Hr2#Bi9Q7XcYD91);g)?;eKAl4j1%u*}90a`1!Eidaj zwymC3JfgqCbiG-aiWS%!#t7^q+DXqHcDaOlx5Bx@P^&bN?Gxs!Lkh*9C@ZQ1tQT+N zz2aMh&pLf23m_ZO3}7@!>dK7RkSl3LnhgTHwxX@JV!Z4Nv~?r8&J=a#UCVK62CEug z!~gAdN?KLQW^N^ohxy<8E;1!HHjV#rQOi~T<9x@S&1pWbr&n#kbV4N9@ zB0h}b@YVv3AO3ldkbOshweSEjK;BHmb`5wTBW+%MTo^d+ZSfx6Nd@3Qd_?TlIPE(; z{m4K<0L`O}gGr|Xhh;&65<%wBfgvNd3!OZcUr`lRq~XP828!8t9Y@oFM~CM-*YI%c2eA!_XPo;2BF9C#1E~#< zN*Jq+7vi5@`bc``HWjpE3}l5rNf;do#=TMIgr7Ub{qU0*!d{?Kbi|r7L&lqbpj#nZ zEuyIAa;uh-s}{pka$qh5Ey^H*jgW+QfAn5MxzrQ#?H6HdAU)iMG0$TdevrJ@FCG%S zMl5Egm*8(}FM(kE>iSFu`28#?vCef)b@ONR6exz6zZMV>pFn#Z`o-MLu@Mt)s{{q8 zkTy^ZIMUEUezH#A=eXBdBHT=tL!C>Vrx>Li*y4u?w-oSF^+`3_43G+I+}N>kr_oMD|?S}`h^GRi0OYYt}=ko6DMBY$g-N0~xr zcDoA%47cQ7Vv@H_Ll%&jGk{|RK544)IZNK8S2d z@J?doqE|E5*wl9a%htTj+Vy5bb+;CH@ihP3@S7tW37bn1BRWD$%koC(bWB7o(ta~1 zY|#PDj@_4%XEFsEaHduM!qucGk?@`?LHGuW{d$s4E`T|jIFdqE^Iry3afAnf44qE^*9q-5U ziuPjq$>2UPq1Az6(qpba<24g}@>T3ydHGi91mMg+P_CM$yw~e-j{C6mcP}LJ+Q=%;hXsI|FU8OP&k7G(< z>(PMB%m+gHrbO6z1(@Tcn5D{t4!4*rxe%X&fkDdXOqRaZGNh^e4>+9Yo(%yXVT6bP z_qjl$y|_#4Sia8PypLSUP(Mvo>Qd{B)%TsLC5=*L+;OR#C4|r@VKN{3 zCCf=MEq>~Rxk^O^-HB>hD(^#E!U02`s)^oNAzyBU0SvsVR_l=3J5WrXtq$|5_J{h; z6Yu|84|OPZ9z+PpZ%?;x0>0RH=MN_-euy4WqOPN&qJj45hTv6pMX?tl4H3ye6T=^1lw^1Kvc7zoiFOepxxn`(`8V`06SS1cycuvF?JwhdMFg3-X44 zD{>ogP;d^xD-TR9xlm=WsT47@IOuWbiVevM2h{2R&Kx+h7-Gv$A2zrfrQ-mG>ta;Z zf1kCFY?qZDnXW5MOlN1yq*~Efw9c(s`>1f>U+Gr!LbCw^qJ`4aL5!mL`pf6JZ>=b~+gncHI@cyfejs`2PAB z9>Q%yc(*@svv{SiRMj3A*+Wd#`_!2$GTC8wcP&7vX{Mxa)!4#e<%z=Rymsybjbn!6 zWYbWy;QSc)nd*yxPE!9N$edhc*B)+c-tG<1J)=1#9TdQPf}E!>OB zxm3Bh0HfLQ|Kw|o$OH5D$j*07{gO`%*Vt24L2(kfmFrxJ6XqPG!eXj_N=P82Ve5<# z*B)#3|7CugH#~k;r28w-R}&lOAU877Htu`;488>J#V#Eat8k;mx7TIrSlc6SLmHP$Php#8Yhg4k z&v0n_WWy<=9)ujHvi5Ibz|F^p<)f)fIgFuWqi7w0FKErEx%`w~rOv(WBdnzV7FqzI ztP=0i2-Ga1yOh}@L4DN%;4JPYtM9mu;ht){;Us`FfX;y}DQP}0c_``oE4Kx2plLa@ zC4{C){`D5sSGhsKD<%V*z-3sTCK84Ra~c0LuSZtQ&KtdzPF60#+5~R?TfTt$c34#J zLcG&5a-pE5Jhj$>j-CLsGEA+CNm7(zABzFSi^#xR$)M<$@COwUput-y_QTb+(z%Vh z@3B7XuIl|Yv@y=vxY!t-*a7FhN0W5t}DvZ zoB-rIqVG*n#oLjlMvbGXzylt;`Fg@UTY&T|Ofl!#Bho$Pr;#+G3M>pOd?@r3Se>%J z*N-wFx#!Epe5RxUK&{I$G({ADS6jmq1>i2r2w^^>viWwKZQ-;~wx@br(JgKW`i3e0 zqpA9dI9<&PT=H~>=Dp zD~wDHf=}P1cJ}xr%R`3T=cWV zVp(uCw7TX;pCD=1Bs}h&Z~v+br|8dz{Jem%zw`${q$f(XzJE>P%ha7p5p+J8Gwk*`UYMYpsVRwWp4n0YLDl=aW5@ z)!{~Q=F-E(=V}ZY^CU1#qrDXqWtN|0;0qPNin+t&%%oXPKcO5IV+fX%SjV8-&@okI zjj2GPBZVdDFxu9LMI&zcqxQSd%(=tH;UP`_l(CZLNtXJ06>a`MDblw@)fFWtttmr$H zUKXW^8LRO)IV)>!Ow|cXWdh3CZRtq1+}vD19BDq@*PJSUS*D2rfN@j#%#lgs#>?UE z(q?ybvbbWHftezeCN(UWTto(DH3sGdg#gZ;+c+o?53uT354a;B<#kC5={N3OAm4*T zL9iw0xDeS!M8ALd?n{r;rcP-ygG9o4qObe6G` zkL^fHPG;0qQO;_Bon+TVRa1r^F!kiq&6EfdK$xh5EETCAa#s~#O8qZh{-1;+t~T(u zoxWk$2Zyr5GR%IIdlJm0%kRq_{p($FIG|R%^5%NJzP>220GEJjfoQ&mQD?gQn%7Ir z?zm6H?ka7|p(DSYM!xk%A&p1Gp@oB=2MAG`-eKa1HB>0a>U>CKh_`QQ5E$o-w$7QHkietNatqERG@HPLzsb91--L&l5S%Ye?Y0{B zx1B1!J>@gB-}t;P8+A}&!&GwRqiV(8>-(w!Os%;M8CR;sd z>Swx5^=lpga41pf+8an$VBgqWwvC8Y1#Ei^W)?!Pk#{_sbg%R(Q%@LwE()yDOmy&A z2$@rJHiljOF7MjFr#jjKz``Y(?!ZGPR;kC_)EdY5ztx2?`L+(GVY~9%)M^VZS2Dw; z(51>_?hbYV;!}1e(~VIDlSWJE9fz45{m~k!scZo46W$~ ztID7eVvXOtkOOBEJ@Sp^?&3b7sbkYMwr{vv&owOyoV24j$!AE~+@Hw<4l*%bA)c$F zjaGibI*c{O(=#Y>c66Bo4)d+q!5h52!IDaTwGbI@(xJYPL zm-;@F~*S(WY%S3mN9k&fBtpvHLRpfd#l0VsO6KY^u6@%C{ z{~Ee8Anmu3>%+F5^*|q1nx?2@c|77Bd^koZuoh$L17rz}^M=7#M5y z!?JJ$?f1EP6SA)5opnQb=DXntmzbA6P1^vg24cUQz~CpKXq7gC;_lj`09?IaAOz>4 zBt&d`{O9C#UB|@9cD$mNQ5OV|H;lihz~THv9BUn#OoQ;kp4UJvLrUqfB6hPjpqhYrgnIX^%L z{xKbfH=o7!S|*esBK8@XK~;Pa!agOzPy+M5+Dbl&cQiAIAEYjgPe|6bY4j*3jMVTk zUH9Dd7}F`f`!1Ce+Kr29m{LE+(&`VB+g0fy_0o>N(7#NupHw>X?!YE{1<{`oAbm!- zukjI{W1F{iI6wi|6pUs;Y5c)6{%=}O0jqrYFKG*ujOAf>uT@^MVA9Qz z4pI4Sj^}G3zV=PQId)FV z9-~hP#j~~STWsg_weLmY7)DU*qDL;p9A5a|(rq&#WIwff$wFt9O6}7jV0i)kzXs14 zgS?W72>Q^(9a8%++d2jv7+8#Fn68g*IQ0jmfWeNy2j{L@e z#WRQ7#B*}=Nq~;S2Q0HWO*OzWFJ;P^Ik%x?vRd-2%%133p-s2I$xdKlf5iNz-AN|g z5p5e-$oNMaCXgwwdBsZ1j!>5&7Xx`tb4V87cqs>aB!Lq5s)@APq4d7e^}WjWW7eU& zy1lG=1!>hAOz%oqTf1mey!(7RF}-;>+4WT<+qHpYea4eTi~q#>nE~ZLPkXsVyirN` zVSIoYgg!x};hvi^HB!-C{8J+a`S2o9Vj|1-KW=O~%`{bH`cr*i9+dT*hKXa7PX|v^ z>x4_V{vet3r}Q|%7;#P&f0ff~*u9ZaJ3e_2D5jZfQCgOZiN__n*!o~i3O)3(gdE-( zeX>3|@jmyG08xsFE{4QRDH(jT88xcaN4JXUuw=4dA*f!fq_nANv_|g^%Q)Sb=C*Ft zb(C)~NUJ@Bc%TKr8cHFG;zOsEYGj-(0$EY3-d+m-`8hu>je}3W{n|Fck^-pllLW&c zlJw%>k~G5M0V;C#3xY_#xI9uxIGJda$+t?sW=RFt!LrM}poM>lIY_R)t*#X7=<=*` z=6~Yw59Npi4+aqS#t8#mRYYNhg<8zb&CEA}=6`y=o?qd6!C0j!x4p2%s&%eH**I$2 z)dnw!FQL9?kdo0TnwRGj8uM``y!Qs+Z`87c(8(QM0IUfYBiL;HxC|g(@i>&~0H1p0 zh!q|VpR_AVUhr|L_=pHQ+B_d$tt|{IcLesUuP;_eH(tz7af0%t2+tFRUBBI{S>6;! z0p($K+Y`;QHBcen%UXe#FBTS(k=NhmZyhA=VhD^=M{!4e}fMigMB=HVt6Ks>MQuwCD7Ge?-U=hqUDBV++65VEH0 zS~dzetPQ$r31tc3s0K_xUxmNsViDFw#Ci+?l`mE)$X7yG0(x4?+{<3{%27vMtZ5_fq#dmPAC126awgI z;Hsg0B7l<@i$K@=3!~FQ5s8H=SE|>A3)-&!NcqwH;FXTo-)lmi1Dh=UXOqzP0r9!I zO8ma>ps}a-Yge28DI)-hvhIia^m*gAdE(Zl`E+*A*V~@L50U3?gbNRfpAZ^o(c(9D zXvR#+U1h&{BcUOZm~@BUoZ2u%aFzf?ZAxKqrADl>BaA^=Og{cvRHjAgQHBJt%FZ%< zValF5@|Th)Mck}=dn(W1dE+PMN8?SW#UZ8Ug6S+M<%@N1b03XFAUa1VPe2VU#9 z7;Ps}IKhDEf`2;f>$M=Eo6#5h&Dr&ar#K84X?XfbXDyADFY43(4lUb;Yq9}U*@jLy zOtb@?{j+JjEgDy#A|~t8(4nExh7p!Mb(Gm$-4==D3H7d^Q_$Q~ttrURF+}X&Qr+}R zWc;6Owp#tz9PMW?+PK_yueBS$f_pseJ7RX_$0tT&IG8y&d`bWcvp)$WIYJsucpwst zEfmbupK+F+JIW&13_Z0ic&Pvf`M)YJc@X3p2%ac?FP@oOZ%N_svNVo`PO#f^_^1g7 zN|Nen!fGizUQf{&>@=uSn|&oPHQ>1-G@c(O?y2=fS|bUL7d0x{%G%FDQ$ z7foT;SrR>!xPd`Sg^56+uWQ^uu&eR*iiCb9 zv560ncu*7UMMRc8D-V4Of%`b9f0_>3ClpU{+P#_84m5Pd8l`uL{8YKYXUG1j(A|e! zndIaw7UlQc!E$eNC7J|awA7j*avDI-%osv12;*Vauf52&&8i9=nN7#s4A$K3K1p#k zPwdM0NWC2*UZ663SutI^aoH-GmUVPz6HGRsy|jhmG8)7L~e>J{^jXhp&zxe9lQQ@Bv#7+JJob2LZdxAeFPRu z7e+g`W}zv=?n>!--BM1!Iuu!}L4O5`75{@+Y)jAVn4fZ1X&STSu3yT^HQ7`<(+qA2 zRb3Dm%HWx3w)+bJ)in~^1nW+@-7$?1i+`V?acr#}qMm2~G0^_|A9mbC5o5gN(=RDw zhABV6U{?QB?k^h6Qx4SS3K0!6F=>X}>v}4hsnRr<25-(|`Kji~N$}ymuu6XqA|^xe4imAMLtQAuYBzQUr!@>KYm{O;;-I_!@-22 zM~mK=p%pQqbd~(3jdX-SWs=>s(ITKE)aeChd)@EOI@nK`g`yh1*5-4Xx18^c+k$c)DkjQ!=I_+U)*q5NR-J>$d8LMkV|5>>gISeFBw0X9 zsNOa9>7Vs( z87_ZD%Z;45ZjWTRE{Xh~NNCl2nYb-tsVK+E$0?sMQ*ZnOMi(TFA$O0-S->O2v|>(j z6pi-dz{T`za~FzSfAN$j0D+97O@TQ{2i>cUc(1cLr`6VZ>KY3NwjURhW}Tx;ZzaUU z{jjcdU9*^*j22L9!IOLGy_i9DSql+94=4AwChHtLsQ(S685hQDi6<_{pHzC03B0Am z;t`m^Rb%|-Ho2GxBByN-U&-_@YEZ#w=VYy@deTw_XUR4B@cov6p$?bo$GJXkmrxew z>WVAuQjBvh&uTmrWW|9T%9O6D{K^UMx!N&{|3NU*TFel$)sO%+I%7;2p;)>R**QDb zYV<7bWL_^V)wGM-?%J!oO|V%85Yh2&9g}0;@j0pCr4q+S+GcJk7CJSS&@*TnV7*hI zo4UgSUO>UyBB1v18UcLF&S69ta^nt0uT0H?>{X0W7p86Eri~XCEHf1`k<|_L35=K& zq-pW5L7#F@0d-0^sTFm(99iMb0o@=qXDb97(&AU(9Xc!02TO)3iP#>QsHLtTd_(yF zF;2axLZCOeal~QjT+~~eG|rSE*8MCZ2-(i;gK(4d7Qo>$(+7Gsz{MALQ@}(`Zfj)` zwT^C(#^N2BL`RY|w_>}$w(f+1RUt%IMgd}mKJ?z1PvL(d>=qM{_zht*8rOl7zfeqO zrP=}@%SS|51NNAmg2hIlHXxIb?gh0Aj^vp}3xj5LOTR#XDElm(Su?cyL)L3Aqq-tB zSzMjk%#BMY8c~&i1a(P%ELP)iYH-qUt1`&NiGT+Xf+r`k+bfKH#_|zm?Xj$;Ofn zNEOZ$mM&1t*PvwW5<(3}51n**EnvwxDf{$4#Jm?s<~MhzlS!2bw>BdOI-yITxmi1kZ-D7i*^*zo-VRPm9&#%MkHmi$TdW+^IrsMG!}pnci$5$Hpv~-f6F+`1<|6JuD!FV!X!THTADKRiC;^fB_zD7V(yHP&mW5P|1W|mDmLSB17ZTrg{s~sMrj- z4js`**$nInhe&p40?jv{#S#FcIlbuuX`+BBF6^nzG=CD>Y_TH$Z%t<{(>QsBxM+CK z*w|?3>Y8!00jhO1($hqNO&_-OpxCh&ocPb^pn)ytLcC#CyLbZl9=;o z!>oo!j-YAa7~Z9QGIfQk`X23pMqOy;ZJH!c*7ei^GUOV|ctv%?#!cvo#*sv4)>4xA z=8?cWr(#YtvUW;NKDM@+#1?A|^@X|)dh);~YMSQBIZ5p8sb?%U_7k^A>e>Fz$^!L8 z^ty}rc)c9WUI?Fkl^B3UgH{&0xL75I_@X4LrG|DSZ6)1}PM{jba&6MvG2(B35*_~B zEdEh%&nx)9l~c5wtS4Q%Yq36pDGuweWz&To+QA2RDHp!PwE$xlp@%X|uMfy4KUqr_d>w4GcNtX?748_L$0xFr z*hyeJmGaWI^E(O2(bsyxwrE+8me322TXbMD5?cplEYj=u`USfNcu&iLZ4JAQxjjJp;AcAA5*fm5p{{P&*DmJo*@4O5Cou{yxH z`dF`|rE;IZoe|=BtA51*S+dA1XH+_)vomKNKYv9gJ6Nj zsC#pYVLia0ZYFhEdGccXEK`p|q$^a`CDMx{V=WrV3m9Z}5ykGhiil)LV2YV3T&W6!u& zm&-@t91Euom)ZR#Xt~!78wUAFRXU>oB?74z!`WIIq~htA@N z0XaNhB8y~xn`zHpXFS|&3i72_Xfz!Cjxxn|B}8h=rdFRgwv~Nep3^HbC5~pBWmN){ z9Q7Sy8DZdbKAW(5ILRBl2}rzS+VEQ(Hk$v83b>5`%=rM;V6e7n%uhIRT`))2aoVO0 zd+5B;fZ)ALyyegBCzjGcnWe)1Fd`fufj+Wt6nSDGIAjxa7JX|2|Co>uj2GA!yiUs) zy$rOa$qn++fisNg2A--4NcD|rdW=XlriMt*=euo;uFx-#Gt6NOJweqH$?;aZsmR=x zv=PCA11wPtdVSOMH#En<1Rd-vR~@GxB$3@uvy6|;;69a}RHe3pR;N~wP z%xOOrwm#m*+IN0)yRu=p3Vb|!fg=^H2~tP{LBm!rr#V3bozZ6DM{3eiALRAM6`#j&J?ZV8jAY@2g_gS5nZV0bk#|8)Om#6N;&D>)J zYfAX2Zci1z)L2h1-(pZpS=LXxH%T-sj;X)wJ`3DHM$@%ab&N&r&Gr4`3i>W|g* z)p_>i)k|70;1l{;ek<2ea@VVmVc$?xv+qg)GW_Qh0~|dZQLN_t=f(-~6?Tor8ymj~SqWMk3?p~JJ9P;wjQc}m$b`N@vOE4+&4 z-AWA27B7KkAeDI95NVG{t}7IaN)n(%Ig1=NgKi$g3(RGMrX+|9@WGKVY7gliJ&PQY z#d{?aQWBrKHC9U&moNw`MMg4EOV#N4W-d2)%|F$a@e<=(iP*>&nsQq0`N0&+Hd*OZ zGm=x*=!cly%Dyc;jV+KdOS1o=Mg|EiPgGNa-w!^# z(RLSmAO>vANvtB9^xi(5JEe=HAkxlemPp^82P z?X)RXSke~3p4E8i?`VUgY6TAqCYpYTJ$9x2Z8(fNNF@sscu)Wg2?!$}5meR(d6azN zpgQ>+`}M#=?cOdzu<|o(sVN73MwB)VOll%l0^_-qr(&_31N5E;>b$W)8p$4OZohL` zf>9PUm_yhl+KVN(5x30mu1>&*t9#VX{FV}{9E_4(u$caoz2=49eRZ-!T&&r8ok2=q zuo94xf_9BTNEC#Te4I`~CvDCj2Kk0gr;OhgrO&H^q%7PjUtW3!8=f;Ap#!F0<8EH7X5yi*g+CRA*9Kt{twl zO;3p3g62D{&_S-?4g0vRzMH{ssE6BHlXIJ~D%5N^eWQYV8cH?B3%wH6bwJAo8vkL+ zh;0s5M`uXI4kMdWPJyYw7vp7BhpCYZTTd*N7VVW>-)6}Oo`HHf8aBwYU(+0 z8{~x7GDUw-?-H2dKckL6kYTZ4Ofr%n?~vg9_*|!1XHdTd%;sX=ekDQkTY;{$u)q|n zf!W>iYO^Uob2j;iQe5>H7YxQEGor1n>V`TC4Z^9>?w$S--Rtvn^JXvSq{OdZ4-UC> zGD&lR3i&H9QVuOFV5!a8BDv%vbm0VV<|^=?Qs~Qy@h_1(gi-6cqAmenx)W0zhjXLz z**tmG2DOIBzP%0}U(>NjRP}%B441hkG_vY6UQV1F?FP!)R1h-rRz}LCP^Y>JMJkvu zB0tP>mg++tz|Wgw_m5;!5$)yQzgRaQTs!nu^J173p}xK5j%Tipy#}24*^Ix)M;6Tp zqE>(H99(KYdxXoLl)5X_HXvk!7rDP*?$>OOpXvxeco~MIfe*d8fYp% z8(VHrtB^uov2v~(773XWQMwy>Kr2sFgYTTiWqn~hYO+}D^QU8g9F9aG*=JdbUOcHm z)SM(Mfpr~`?|0x?GpHD6zL-J!&Db8-=$b@)$Rq_1!mO#MK^Gbt9|0+01}vMa3~v^G zHZftj*R~KsmeMj%zKsrDLV(v2D_OR)Fxs0P`%722v7G%ZLDeYn3Tn%?fMk{a4p&}r zwjvoGp&@x{b!$MZf#`96)f^JZ;YH(_>Fpx_N_YcTK@-XgH^7w&KPbA;hq3VEu9j>k z0jiHv@{!ws1AH`@N~^JTgf(^(p`(rVq{(VswD6|;(ldFWECEhPB7gT;kzF-`r{zfD zCh|&c9w0yZ$D9K!O^7n#qJ~-8M=&oi%He)G*d^=PC&YkQ%`DZArUTFUizW#7QRqzP z_$6gRPTN~mAI^tFFRWa~hg~h2Pug8n32KsCUkcS;>xKN_3J#w50drUaKiRvLIy0j( z{A&E5mPNt?c%$4rU2k79&r&*3wy}M#osEA)G1Hf0mibLU;wX+9&HEI7|5ERs>uJ_k zKA#|s;vdjOvnZBG1*#up*mGB9QASO|S^1(UXRHTp5{{u_ItL?l07$z z0%Y5d^)q{}Hza%Ry%Q&hkHC-|AOQ%Bwt>+h;8l}|L^F|hf6DlbTiwpc(l8#8>!^p% z>CIdZt1X^hv4MT9XC=|h0b^z#{-vm_J2};>=M}k8fuK!O`@wC|Z3` z_PUl%i&&&igK`%lw;y|C;~bt0jVN`*6T1cj^w&~dvR#FpZ8|A2F~gnU6J(wJS!Y@N zh~s|t!|spY<_t{y2(#iQtTsFmB^rd3^w0+~ea&4yr32}MN;ZzQk=7@sx~jg*;a{v- z1CcI5kKfpf6|T7vlA^4ACv3y$Me$R!y^c?4Bkt|;rVjel=ig4)n|qm>(8e0!6m&f7 z+I>>S4k;;1;U^SCCvmBQw1T$g3weg_yr4l48$0g8c#SQ?=Qw?A2Hm%_JsSIv&K#Fh^wgIp$1{vbRR}X1`&}kOUXE?N z_iasCku|8s(wXHc8gS=IGDEGQUyq-$W_*Svi(o+IaOkpRP`Mwbfjg+YKU{#A&;i7G z{XolPVOW)@msG1$w^55)`bmsN87#C=VL(2%L%p+>-e8e--|f&VK9DfNk4#nj#hGP( z!~>zlgvrenk5x@`tK$7!zJ3aq^?bjfo9YO;ZP*mw<+-^C6HbI40diuUP|Wzmd!Jq& z8r+X;=N>vL_WqvEWA4M|^&;^z2hKLk#U@fMpnN<#= zOj;2XX^c+|tfQ3?*QjSM74X}2m^a8k=J?Aps#+XE%4-L6kG@BCmy?=F?U-s50X}=T z8+574wMF@2ZHCdIjUB&uT0Kfwg~qn$y66Fh_G2U(P4hGM?}}D@os~2zAfOBEb_^Ih zq%=hC+83*0=Ddk5Nh5yFbB=c*nglN7u@&+v!Oe&!cFcIU%~$QfS8t z%Vd^EnKj^)PYlMDozVC3qiU#dE6)cJnp_qw>p?; zWtW}(18PUBR5<;#G*qsuWh?{vZYslMUrK+W8P=|1g#n(0#H5rQ-Uj8+>aKfLk@=Ko zOCi@PK~lyfN$vhK59IM;paslW4>Q2|T1k#(%pHZm(0KZ(FF9A0qv<^FSX=in{!5Dt z4+oBcVmDcX&3D!Y1rDDbK5isRS2+;O+0Y6bZ0AUTJsJ%0s%bJZ<3&d>wU>D(RDzrL z;s>YLbj2_eo0Q%zN!a9{&dK>|<0bMJgf}*Yh50n`NA*Qq@zXl102kR`Nck>)F!LRM zMrD#|R6UIEIU%FWZDue$GeB5Gy@U(mT39r-ZDPd@V^mHrkFYJuO9f@$#xsvTPc`fX@H@&?y?-+^V;exrC|!K|GZ?4!TK49*{@?$bag=X>a~Y9zL;= zjZUe~R;kSaHI*q;$!VfXg}nFu$MXVVd3V)uBb8$rK=LdJ)yWiT2HKaifmo@`^QoPK zTT0pt6~-RN2LjB#LOyWIdKUWWG^3g3n)F@7ZnIHjYHH$q3h9ZAK*pH7WYb4@t#xa* zjQ0}vEk$fqT|oQtrQIzm0`Lo?`YI;_(Ir|xV)i8jx6XKi134NK$BmEH5*ljOmrp`A zL8rzOpl7MA9YfUmOvxBCDp+rXEUmS}23|#G#BaMrbbYC_Dju8l9AqnEdCLi)?Z`@t zn>C(Se~XRN(xPK~bFOV@ni6B|<2KE>VoP_ewRfW>gb56fC;29Qr&RgDCpxXho=Uph zZO^aGHZv^rx?6wNxsy#XeRyJxlkXGl$bnS%P9k(m@;Yfu_Av+L)tN zT77f;72^vYGRx9I{w>#i<15#?>v^MrS1RlLQf8AB3EaG75<6dPJ8+n(kSg?tPL&eY znTKSsKN$m6r;I|FP87uDU5T=(8`Y34+9dfS7Q^-~vp>1)A3uYOrkoRtt_tG~dA{CC zZ^09C$`KS}s`a3@eOKj1jAND}GNRg_TWEfy&l(KlSF%mAyQXnnEiK8DCl0*e5eGMz=mS7 z=xUPi2Uf%PKF9Kr@2J@Q481`5+`IG{{Gcwg1WAlFvS0-^UQTA{lsFt=oHSOsG}pNa zfujU~&rAT_B)GFQW7SG63NAh&Oa{F*v4NBpAzT~r+!(1#>PTX)q5^bjpg`=UhC<%c zh>8L<+v(I!HRA=3NbGPFGf%EsM6teLGoPrh86NS#R++p;Va zSQ%}1E0bmmch`GWtR};+=f{6@UArr;=H&NK87=24zGEBzMLK1XAg~Is3e(g^YT_PW zK_oX3wcSe#)BN6QSvt1Kg{q?k3vbP2CWa!K&YS#{Ukhu~krZs_f>xv(BXlf?;PK|w zq54^(u#YYYpzuMy#c(6@7W2x?X67^uI3o4jmvn=0S)8`*O*K!;cygBXEZ2~lDBh=h z(zav76b@539lO;DDP*F+eIfZS7PMMMHEFQ`m30$C^A*K zh{BU$UW11C;tSH;hBR!cjTQUw*!<$gOlvEANP0N6MccLVc%VdXl?G`aZJh zh6*owJ;!&VKrC78`x!f5EGsMt*5|qkZ=QagqYaVJBd4H2OAZN9><_-NShwF- zCjK;U@M1i$2y<3uuS6za^8JG@mbn@t(g;Xoc6-}d$*DFt4*P; zA@7H)qnLK6^f$@kY>ss~u=P@IdfZ-8ZZEr9;l8#Vz9u4FH37neSVJmoV=1$3@}x-A zle?q-{8QCW$6x)SW1^zaME==FJHaHibRLq~Dn%}=Eo}N^?3$QGnprM|UHXwe8OBpdQPIHABH(13f5A$ z3cu}wB6`iJfO;pTrdo2=7%by&16hq;a4THxCv0iw3w!96f3Do&RY|YWj~SR@U^3!t zdDk^hC%GHP_klS1b*Su)Oc}p4{0U}>xlb<2CTMZN*jtRqt5S`Vf6yRi@q2fx*#zVJ zwh|k&a(bT%H$Y4WxeGB;u3-lyGOXU)US*F>Wv4n0XW;y|RbEN32C|SqlZa=xiV)Jq zD}Qu%%)SujZD&cXFZ~s9&IRN1IPcj+G}*EvT}lvI`!|Q^woO}7wW72Gy9HaHHAJ~9 zG#8Bqu( z7@EI+8$wMAizBrT33^E)kL}SC;V*byVFZRIp5g$$c?-CEMGYnfdsB86t&0#(RFtk0 zkJ!=MRPZEt2*X_Mt~@0t$udy~Z#hf5Wk?fR2IP-Nh7|L6za0XoW))6l@+$~ z3fcjOrCs5rP2J6h$^#i}5o?+T^uRsZ77;kFFbA3C%L$HXV>!d>yQhVezA&~@=WyDZ z=Ws3bKXi!EK3iPjo>xveh25&_39|oiLblR`Hjg(8f&YGGit;>xO2=PTZxt ziNBiL(3>{yg-t<;c0(l!C^R7tO@+CFBIAY42??MUuyV#C52UF)mgS#^lj8dFd%c{vieO|g#5jMEy)K^y00x3 zQ2e!RR#_P(b*NpxXzwzevOq*|b~N{feT#rqCA*cCfR#N~7%a4vFr2@U0-l3Zv0jEh z)i_s%zb|TF%geE;tn7%xBWum$isJC=)S&Hh3N=v4o~s9%1CNin0jbX0`{SYIM8e$H zt(jZfFce1Smi_~!sh>6VB{D-DWRim5fOz)LdSD#bp1uNnuW6Gz#!4`f8MMP~Ena*2 zz{fOTSEGT5Dc#uX;zwlGv?Wh=Y=&?vteOv$U~YuPf=BIvQgddrw4?>_2k` zFk-7r!`(Nh_7|eOR2hleM~>K5JiA_x%&V*}e(B$;J6%E`zco@U`gM;=)1R8k26zyE zy)9Uc{)95FpTkgtusj#-g*BLaw1a?jyxRO4f$KZ1PHT@+%kWZrS3;wr%u(FkP5KXU zzvJVyUhx1j9$qmkNRif0#$WAvSM_?g7x!}6R~5BZe-0pas!JJhQfGIOE@&wS#zOj;(@gOUN$alt z?ncO3=*>s^H3j#5^VB5Yc!|2))Ot-<@jucnt*0` zBBkZ+k%5`_C!k0FF8#Bma|L}zFK2CBV<^L z>7%B8v`s#$>+_)_xLu_*LoHLhrT1)lv2((M3|AQ3UC~i zk?%H;=O(5EOc}Ptdece-W%?_E_q^e<)+3NayORRz1?_0Jp3#f;Br~7pk+%Wg850ti zxMX>Ktky2|ueT+s6dIrbPZN#U>wI!6WzDe8Ft1YRNdEe?T(B0kMB}po)n?AK4`u6m2DR{M!Zv-6y?f6sF4Z52LZLWI4beGcDbFs( z%UQBb^(|*PB?IO>9RsEw%?0i9571o$9`FL=B66#cg&2|go7o4G{#K-co=@jk@piz@G$>dB27u{w~Vg7L$buNQBz zu}Ge@<-Q$w%lM?~Lvgpj@D=4)D?)3^TE=?|bhj2FvTE%o+Dkrd9H>(R zrg0C7-g8M{*OH*YA(wZBVC_wzZ&%L1K(;^GbqhWk%L{FRyTK zg|S+mnRhj8)vlEbc{o*2ZU#D)h5Aa?g}uDzVYMfrr2N1)F63MpE(%>2H6zC-ig}lB z_Kt6{fPaTF>>cH(H)cT#13HbgQ`+`X3&K4wA_W^f*$wTCz`64NlY2;ZXJ{B~Sjapp zB&GAuJ&T~JCO$M=$UmQk0igzv8&4Y$elri;&lZqcGa*;gpL@}N^L`$LH2-};r2Tne zKpi|=0%bN6{1(vMOb7!94WfW1LVv6^zJ(A*;O7AX5Jnp!NVo+6_sbY1NV~`Hc2#N= zP{cp&X^{3BXwW#M3i)CS3i(g$KPrEI694`3(}2_80w7@p82`5VC+VkNW|-f4A?s>R zt$<&$?DG|wQy@b!7Gy|f{VNL!DlfqL4;W%(b1U)hUM;o~!YCpBG5${*dmAC7#^~P; zsiIX&(`>u>KOCV0+I#(4dfY&vU2Nh*Vpgr#+%}+>w0ad9{LC;CCnf`6^&vPHBa=F|ES@$u4Xnst@ z19g0s{w16#n2cl+g6aD|3@hy~;bI+3zks^F!uyZ#n*e0U(b~>R;e{Y#hZr z2xuJge%z;K(LZ1m&{8MGFK~497akUf%}J2OUExQPtHu5SL(4-d#S(&|I)6K6l*@VF zJ>*LL0?BDA@Q5P#>>mn9yz93ykE+i;0>>!)1O9hG+W)F~RJrgGv;O%%Owh+J;$Pi( zR4L^VI86U9m`IZngxvSL6Mr+vV?sgkJtB;o{UvyHQ~r|vD1+-GaH0Kgum#Q|r~c_$ z|ILQ+zdu7f5He^`LULo^f)smxoAWzW#GgzNk2Gw&`2_~_VuFf$$bXshH!}MFY=0T@ z2Tb(~_%lSS5h4v4@&mIyl8P7o%Wm;de9)WT-zNMw0P24ok|gF2_;*OuOfUW~>A!0cz`zl6WLKOx@6@<@wF+P?^>AlSa& z*UHabFXxaeP#NN)jE@K@Ill-$H!o=R{qDnm_ci?QAUjj=7hKl&+sXbe5<{eOJ(4_E z^aqR$!tKZYb#@*t9XPw|g8ch`pOyceX!!@97r@&AwrxAv*tWB=ZGK|gwr$(C?QCpkH^2Sf5AOSU|9I#0nXWU_T~l+e z?&_+m`>_~wDj5_(Q3ezY1_%fW2&k%CS3UuO629_pExGXYtq%kQWR)N+Bu@Vv?a`4P zrHm@0tm2YGBXlwI1a~MW>zV{Njm8!z^N8ldniTaAMH?lf>>P#8_n7$1=Go!V0rYRx z|ENqDCjk3beL;r&PyJW>|6Z6$_oX=hA5)TeKq!-tP#|&tt>zyK|F_Ryf%ukyaXT^t9clZhHTZ)46Uw1> zH{MW|_qA{T;F0a^9s=gfM^1RNZGJP&>U=h9^XKccZ44-P3{fe#0dGjIIy@c8kv3GQ zdnQ%Qt#HHv*P6NdC^p>P2oO$;Kho7sd)R}eecv05n7;jUDvbHpxTK`?_~cQ&4AHXVK6f^#}*IDD0%Yw3n_A~|EbuTt0aX=td64d zX>N+zvoiJVg_!Z0W1Cu2Ic9WYXR_;6a?u%_yR^TDguCq$1C)hS1|USvzSqc9-3Iu9 zdGZWgG%W{Tg!UqpoT%IE3=gFW0+V9_R#92!Beqt%Q%{k7j$B;a&(oKorL`OytJ6EP zn1r`ejd>D893`mC367DATe_6rbaQk@n%TI$?KxTuCxNwgUd{~Vd&cFCjX60vX{E+> zhaKCspD=^Nb}0)v9$+EZw@h@%Lw;$S=`vPshGDZ))h_DXs^nxsg8>&uPMpumJT7-r zaiYg_Qqd5ZF*3MmB`uhx@Dn#zI$d6yU183S@sd2Z0xFV9&b)?bM=@|gVNF!8nRev7 ztZoc0B-~PdWCmwVPCeq~Xh><4=17c#4V8sYwOl}9iq05?7r;_$s8NdTBQ(s9?fs@X zOvxfJVy;@%$-?A*I?X45>1Z&D`KB!RI^i^{Asf|XFodG!JW!#@{aLw|$9auMpUS+! zctq<%e}wBpd&rBuXB})i_|#gZEUlWws1M(0gY{R`Sck^%poQ*L0bXC&##Ce6vFpRE zT9el3Y6(UTr7d&VRDA{o_RPo+qT{ud@-8jN5e0~X7Uvw`#M(O`9PM^IwvNV-Ik9>{Pq3BQ21yYQkIdEk(Cp7E|E zXV(R6W1kp<@M|ntUdy(Nq5m`t7R7kb) zFbg@td^yWKiS4$i+oNd#v;aM-;iU6IE8rcpI{@C{FCjvP_}(^(iV7lXj`BL=gv54v z$-q0z57BO+E?i9*W$)p%vNw9AVt_DMlz}-1p)#9 zT=WozAb3g4@+3`zRSk$Tc$yJvgScvb3w|Oo99#xhM!9O2mG!G{leh1^7C)uaMa8wT z!gsNNMIWye8*c7W*mTcpn{VIsAG<#tub+BATMlwUyz&$2s`W4`FdT-Rp?R35-NpGZ zWtEQF)r_z&v_@sr=|ZY_#xO3^Fe&YTKyECSQ*<^XA)&H(mIlq3V8w>Y1T<~)$_5Fn zHgp?t>42c-=q4k6$|E24)ZqCl76z(c{mIc$hhLe|Yo^`A1E@GZ$O_m^HtzFNmkXV} z=9>?BPlJeQ3D&NKprw_YTEuo1u9LyOT`cr@tH9;xkr87vwQ0m6GQ*J-EaW!c-wq(ADIFk%Mu4s>Gt2+JF8 z5fUno`3PAvI?&cfb%jLE&-D{%NIWk+A_t$@*4c<;DE*HBXHOt?l9uEs{pIF(t$3_S z&!twW*UK^)c-19;TIp9>RWCV5*VM#!nCBEVUon>j_!eY|D2Cvc;;LByMw(;#^)HSS zPcLRPcIWFt(duUWl_qo>25S4he#M2je6W^!q`+2{ktHnUg%CSvYndtDL=IU_xwz}7 z5f6lEW%_+hU~_pyQE*vh=Tis}n%!X?n%z-y^fX7QQC^ze5p?w117B>y@;4;HiuE8v zY{IHHu)NcTNm7k_Y=JbueMltZJ-W4Et@R&k=xbn7^m$pGH6s~dQl%@=zDRp8BSbGX zpQu|CUA23Dzxeq(rpo&a&(_#T!uzD)QW$#Df^UCY9XA6atCAT_B13LqH!DGpfqE@> z34`gtOm26;D5Iy&^yT_n&}>@$^Y^YOdfy?Zo32#W@nz~%YCAt*qBwVdWL^2ZH8sJ> z)I?@w%+-8Pc9LZ&)-PGhxXmSHDhk8B`YJa?+wh`+OWbIc1{-?=t!r)lOcQm?BL?>Y zN$YzIBI*cxN-A`cY(&qRdP3~aAqQ(>xK1pIleH4p$g5T72G zRu$v>VAIPYZL1Q%J(rqtxDNt>5|n{#o)l_fg246KhGHuL>{;o~E)3QQqx5T$*Y+0s~}rtnX>rH#;;5#$i@UNYx=wHE@85zI0Oa>Bh}7!J`^vS^>VHPa3^?`_}lW{ zS{TRLrwb!e!Y8*sDVpG7a7;Iw!@nV~+n4F@9OnkcZq=0m!!(Z1&)cCcL+GB7do*e7 znctE??6m&Z>jN#JLynXs!4HNW?VuMoKUc`$J%oFv?gW~ZB?RhodHzOaZNV+x}B(`Ep+Zs31v}!G@Cv#vah+C!72daH^#%I$#tq?ZJK<$~}1L?OLm^s`J%>kPEh+ z%zvlhfyuU-;At7{I+u3E`NhwC*|f! zLd4~C$F2f1*1Ut(9NTpV#YzG8Idb0~A@Jdhk)`+m^5$YcNiFu>DNW22O%bxNXDJ}q z2K~i735=->uSTe^hAfpa9pg8P>Kh0#9sTX+i8-<77KHI#b4#kj7U`1-i9_Y0ijtor z$rS$(X=KFB5L-D&9)KVtuxc3^3B)0}4s|S>QA5t!xQ-0_cXlg^&9>MFnU1OY7aH^1EZOdwd7{hAi3`8(zS})M28DPeYGLdD75qKkO)!(NZuW%8a5O z;*nboQ2_T-^0g(^O%dvh%+w9zYR5}>acNOD8xM_!H;H@5%==A08VFr6>@u<#pB{XKHhAdrlKuhgwavQYqZRw~dPeJ#8+@Up=S zpYxYN38XV@RYUG*xa1ea|3w%z2+w`-FTw+V5#|7}Fc{kyIyG zsjoGeFPO-+2nZ2rIk1ofy~Ni-X-}`t5+0YgF$e68mJBHzQouh>IGVFSjj&y`3V&{T zmRo>e?$6u%HLpJc4tuf#=^%)mczdW0`gZNljDoAUWb0<^OOZY+0~5|4jS`{h0qq@^0#3MhxhSa$7_+X*Ko(HpwBZ>C49 zbf3|ebd_1@6Q~^b&~XICv?DDp0JUyu7C`Ie8=5|Qaj|)dc~zA!lhDyH8bSPV6`Wn&CW%_jo)U;)u4D`p0V#_?|XzyYFFYcv@3F|$7aW?`5 z0^<0a6x%zQGnypvkkJ5G|7Q&R=WM5M_E|#of)ctAr*9+5k5sOpdJfZvatsa~P`E7~ zRj|VP!Zo$xNz5XEZ53+v}K zu6UEK%QF3%occNRC!zWFT}dcmBp11x>sTEefI?h#}PK+yKL@49<3&4yAmrYIqmm^u_VIuJWNNG5rA{8(jJ12eP^YR zN&ft(Z80ysJ2C~$SyN6)h+Wf~dR3{&I-`|)@s-h&mz&VT5}Tup)YOArAWIALZd7TK2(A2jb!)PwSR?X;5yNriqK^c{VN9r@Os#%(-5F_CBLi7NgVc{1##EegtLhB@4>-2(O<*AQ+Tzb(V42Gjl)p6gvkgnRiPn zyAq5&|0WX1)jI8Rzfe+1%&^@p7?*}R!rsHn0-`hC;Que&TCzV`+aQ2|mf?Yb*#3+E z7{^Sir-1@Q=%ATmeZyZdF~xL}l*dz_wp0%mralL2MM$g%!blro4$V@+F|b}vR|~%8 z?3ksw?WMVSG%F_WsITs+_S{Z0Ty+jV*3aFzcdxzn_Pzd&?RlGPI|HsB+M`(|Dd<;J z0x3W_5d>HIKzpj93YwS^7>u(l;Ay91yKOr0(+U6_VS3-A{^`y(^t38CqJ2;g>SGaef&#e_C z%{@5XfZ-dHBh5WqP$Ixry9<>5&5YrzG#~?`p9%!6U1bVgMqbfX>p&i?caZMYD8p52 zspAdMX_Jh1lT2SR(y1-e(ND{jg~c9_NK{;PQyF_%bxX7&uMpa4*1j4@wuPQbs%H|& zCtM9PzKOSd9&wX($ds}#vdq|}faVm13D!n!UAa;*lFB*F$rU+1{bp6&BPU)q!WACO zZnunhdHPxB@baris!(I$(%a^jsjqZb8F-}XiDFi!5_$t2JH@(@u?R()&vKJ>-E7+4VQTadk9i3| zf}YeeNbJ$T-+FOkG3^-{)R`7CbX=6u#3|i_N{J3cEv}?Q8FWqKWM`MsB+Q_8x-y(# zsz|k$C2P{s;Jt26LfVr3p#c66bCnQ^;38d~duP{ljWrl?N$R$_R1clA-Cb%(T1yE! z($Dhg3U9wJ7ugyj3o9|C4c=LaXWdV?ag{u|9J z$4t}BpICb?@Ur`aCgI2*ID;ElyrCFaa>cOX%s%|W>s^f>_%&TqS41+;6l%}r6Lp_) zS*LNA6ME~YKY)niH>`l;H_8a(w{nNeVDU@5DRd7z9Tn&0@feZKyn()&0^t#$0FQZ} z7Cf5a>1bK&c8-ze`?g4*LVj{f2L1SVO?dFlrZR#~lc2EXEzjcES^Nw>!ZdL$_NZdf za}2@cQsf^Q7)B}SG?Xl#YZCCpJK5OY;1%?E$6`$y`Ta?cG2t4uj)mP72R2BmGogQOKlp>o#p2~J+y6I-Ao<2j{r;)-r`Xk7ZO4LM} zXv`$d)Us16ll9XELnm|a%AKX3dkw-ArYEC?LFZ@&_}7i5x|cqQSPG<*erB-oBCe9v zX`1l{Q$hzHh0s0NU=#^Ln&l0hVTYi1sD{c-_DCfXg95MmC>-ZoQ>g>eF?%gN9B>e(yr;4J642l}laV$=2 zqd{iAqDnY^1k2mKF7|TrF9GD|Yq{z0?1hDd$Jltw=3i8uzK?>1bKT~_DT#SX-ajhB zLzEP)d9?Hr}<-Z4w~OmGPFrcHkjUR_d}lCO8^b>QRpw-K?VY(48~ zO4l{GJ|)tK(btYbc*W_7G@2twQW-D+6BybO9xe;<#-6baRKlbc zNgcDrJW_lNJj+Q(Ll&FK>dzM{BWyM~qfQj`);c4VJA%DmMo_8{4F0u!?v_P z3@#@Ju4GYbe1nFFj^`u;KvGvF;b}rh51->ND`>p@@KAMVhN8EDbo!6jb-%T`?H>Eu zP!A8BwgdEdL7S0^a+`?G77Y%&v`Gg^f+A6+DSE z7JY+y+9N--ADS6H>r9kd>)<;7lhFEylBd;<4c>(V0s`Ox0rCF#N(YxT%!~to_CPzq z_WPcpK&3#1f(C;EBN3Jq7H+Qt0)YVnfg2&3a(J)lcx-5KrSOY!G+0HO2Gg0P#@q#=PMIV!sC8RB@?LI-=cXi zO1>Rm+M5wV@1-Q%)3^%^BrL}YQF-_bS5b=HlkDE3dCMv8tKE;W>81vd{}I3i#Gn14 zQhQh7_*1>lNOO9Kjt&^vQ~kpKj;~rfxp=nuQhE3zGtj3-HvlM}W=+iE{Z>s!0-vP;iA17NhmIp*QLV<%7c;4}K+_UMg_%L!;5G_ZJRy}p)<#&3(49mQX&PY? zJBBu4tJR`rDqVnS)wl%cb=D1)zvx^yxvO$&Utf#YixX|Z1rK`ln?p@EZD`N%`w?bz zZ3cRkHEhA$RNt_P^h&Njg;iSD2xe^%KwlUx!LXeJ^HU6Om4xwvJ>a_k>Uy&3Be1Bm zgNB?D>;ki3{VmQa27Ua{4hCz#{2SSicITMoNj@MVMxd&RXWI}Uw#hq)!m7H1-}qX| zIp#q{y_Ocuz(fZ@$zEl**fq{vJYs|R>p(Jo@T~ZT;i66l#dPKcKa^3oNp$iqtDqj4 zDUdkeMQE}f8^_abp+j#S>Cvz#NLV(4N7c(R3HwG98BQBT+Xh{6#vhx*wa=6K8e40X zu*Zkg*TA|3XAv7<)^8E(V#gVH`F!msB0ltR{wKz3K6wv8sX)Eq=W#Rc0R-m@?BwL0 z`;)WIV5dFh@1vh4^od@KhA$}_FrmD%IBdH1wsP!xKTUD6cDo?S!!hDAi(!tRBVb#m z*DbFMIX?96GH&su@|jjDygLtLYd!%cAiP+voFdP@i2<$lPP z3PvlH8@H~X;Xn75K)?m6tmDY+p_ps$rSlY1BjZ2FMKW6W7gs4cbCd061T;&qiWhZ zQuCZ4Z0qW?<=ykXliyMmZILpnw&uKknJiofxTb@$C|C)qmGIGV1g$2~Ebda4kysN9 z4dZ9-Ug?`gWxCZoqs5p0OT}zrXjVqaST%;Y46F6v(Wlw3D~jx3$cys`r(bu$g;h_A zkUG@>2+%EX=~-7jm}JE9!Qrc$Cyh0&99JRdv>2*Ui#H?zI;P8Qy{PBic`3OHKEx$J zCKZY?yRKNv2$xcI#Jv#+uawmflOK{uso+5$1X3%a5nKwWsGcxc^%>}^NVkq~MpBa@ zb>WZf%u=#u8Dtv7pGJH8jB)9I)GIV9(hoTR<(AD_sHTOwJRV^bG!7*YdOXg{K)xy; zrZhphr9IWoo0g}c&(CU)=f^yTy&RQt+AGLk} zgtcKl-HG_(%lw8}3i!Ob2yml<{330%R`U`HZjp^8B3!K&DsOMjGUIj*yoxE^l1JpY>A`u+vn8P zVH&(O59}H<1KTvTrL;htTMux{#n4!Q{MmFenARS0v)h7ANWlnPvleJM?HK{YER>?~O1{wn8}~abt<6Z4si@XwzA5(3Qy1Rg z)W@6-x~U~(`BNW9a%=udM@NOyPvygOR_Rh#>C!p-ko2jH&}>sw3(&W<89!WGEYfxx z@9_tT!BMdn1=%`08mbzbEhlb3tI4J@(8{5^NYM4jY)(ySc19V+lMMFq;#LZFt4$RJ zV!6IicG4FOyETh2@orFeT zk>eF_F%`a7`Nl7^LNCx4TK2=*Eq3qpiff{U{Jv1d9S9us{oPOKGoaBey5urI=?IRNy zg`0ypW#8!oJ(>Q9V>sy@USr2^j@+<08mjbA`PybILXcJrk)H)q2@UI~VB&biH50rL<%KAl zNL(j0nlx@5uY!BlSFBKik@`pprfN)2GPpRBJaZV7kGQhae!h>Uz|Gk)C^|uE43v&g zgQ!FsZU6df!vH8Z?npj`oo=5sB;gz{5K_K&Skmmc1cGc)LuW*Q__Gn(fCT3jt{Np1 z1!z_!jY9r-keo7lU5zwy3`8mk=2W>l{YrTe>P5x0v`)-Mvlkt(d(oDga!gUY?sY>D zy++z1FF`K;`JHd_vaqrdCF2omE2T!-I`Km^02UmEq0FDwp~P6L1@&I`qWa2tC&d(1 zgR+BsXy#3RXsIwxwy93u$=TM%6W2r*K9E(8t6`5c6I@v)IxM|2 z7Y$}5qL!TBKbm(+v#G2fcQH{%BqVG3rhCoi=4!j*HF*Q#x9A#9v2|%ShN)*o~w)Dk9VUfRxiz*nw#|98y8J_G^;o4R?khVmwT!w z!?aSuG>aJP#SKiD)Mg5mmUPVG=tPON;Qd2GaiYX@3}{nDR3@N3U5*oL|= zIUP)yt?dEF(yRN{^5Yb&KkP~J>QM_&wCoGy2gc;U^E`0bVeC%FlAFLL6dhpKiUl1W z;Yuo_^9^ zsW6_heUt9BC4a0w5!oB6e;LcJqAu3yPa6u27it3R`i%W@rci+SPYcxaFLI|=6~~Wh zOJh!|XSnIY!0CcV=t4?#*PM5Th2sTu2GJNsEqq|w?ro?;50=_6V8a}ue8U-8js-?9VeXxq==#B0OvXUOXwU36}E3NL;_Ucc36xt za;gAW#}pO1;td`u+hH!JiJCVCL|Nfi79}oA%AM9)h|(s9yeN-pDi{+j%n3@%_=N;b z9x^trk4`vFZ{2~Op6Jf|RyX=X^6vCo)2`EtmlNKk9j`2`_CJf-Cu{|x)^D^BX~Hnyxp1H zr9jdmz6kXOjk_;myOR@Rc8!lPI58(M$`i$rI}-NtSTt#fEzIv-c|-Xz&h*+Nne72` ztzP`_u-M)%s2H|?SON&|Afb0f?!q8|{g}|dkPs*Xy!X(%nIlUcxU%D1J&LdBBa~ubWFH>Y3HV zsA6XUYtGF~Bn@pRPaJ@)La{mPwo3vW>cXR10-s!AdyKo4g=HYTW_z8+S2#F+@XdO^ zL#Liene8QYTjdUlah;?(;On$yBXy_C%gFC5ZDqF9vRms}uNJPgP(bFkG3gB$n==LI z9a-NHam<*3KWrSw8vjOiYln}3Rw9!NCkGSAOCGycI*9lN{x=N>{ZDo@s{)5#lr$@# z0tmMr3nW6rgSlytGq%c1eG>6uha~I|L)nt^8gg{MI}+Gi!|exVMa&JOHe7Jp3Ev-$ zL4!8zfo9!xD(#vr+@vA>-FMo#g6y_N8tiLG zF0-sM7M*5l<;g%0($l1?=BPre*8nV`NsTZ^0Tvjfe~cpT@EPoQhCuP--=_X!=`tE8 z4m>mv&`pw(kO;s9%^dw(uCa@imp7okejlVDKv^=gUzq@z6D{N}k^&qW5j0ZXEo>)X zC+GT#4w|Z2+s3yDjc^3BFubN*@R|axxJJEl#Qm~KyJqv_l#zez=svv9-tCcS!-2@* zf&a$6?{mi+@XGvo^-a(R^^>@^Tr>DL3qpB$Kfh7C#wdVy8@&Yor(LV*XFO*tDS`AjHnZQ)|9B`(P~+1Z3O@py}DVPA@9wWlXjc46hHYvZ)dCC z2LXTLB5TC>N3EXtw545?)_HhR^Fu^2Y4HgOKld2Nlgn^3$))Vj>b2%#u`)h`Yn3fb zMbTd5b6<8;Gv=OLMh4ikV>CgT7M4MRoMbt*RiQgCvI-U6#?Ke5ik8;hl@l8Jg_}*{ z%~rreukBe=EV984Dr;k`rRn(TOr*7meMy$fR<7Lr)(DTO$?)d!ev__Dh_i&|+>+fI z3ACK?BiL_TS{zElbIl!L5nV>f^uvpF)Ct$DK`SA&e3)1})*G@4heampT-Y@?2yvoX z-jB)dj7V7CL6Pd>QZyAF6#W^=@(YKj^&5a2|D`yl$VSXzV6^^eS#*mmk6AVtK!6pA z3-Z!#ksBAD->=B9vEw_(8l(hIy?}VQK#3^hDfC*v^N}l6H3bR3s}+tbV4#Iq-9=#T ztHWl}MZE(KwJq%^9)C*ungh~U^?0O|BxcNNT3XAE*BYWBorBL=8vgxIQkqF5j;_=PEH(z*KCsBCmLY7QW z0>fJ&)2u$k`WB1TJGFnca7V{r{YJnr@z%Tk<^NuK5cZa^{*_J_^Q97z9GbV!4L^5O zHf@ZY9@OZ*soqJZ2NGTuns;!9;}>8s`IZujd1npZhkV;j_4UZ-H}#V?i2=akS9U=D zr9Vo@_Jz#YG>!1+-IdUK)lTCJlp^BtK5^boTAjMBBg2|2H{Q+n-q#umQmcv7_EcOX)m|76E zu_Hpt`!rIZFB}T#P;jOOXCu_AL7A;wopsM{!=dKyn+#RXM5U+M_Jx$Q`(SHp|0>t= zY=_;2Cl8;HAw7-V0@Ab8g^p-+HfJZjODdG}5n`0H?Rd;!U#-zlp%6e=N9#8NsbFi2 zjdYySMWr>3mvS3#bl0Oeg&A9%IO8pIn|TUnSFa5sE~ljR+RnOcR&}NR0sOs~crP0| zyK~i&mU*4Sk|Z^Q`STrud#QLXNR_^5qwfo4vFZTFGBFt2Bm=~)tNsi_jf@Ni5)Pkm=yipP}G#fY(^c2-uXt| zUkZ7+3jBYL>+}!rlQldzstK0+Ps9vR6WbH&yCNJ&vq6-F`uxsXTq#%HI7XaOVz1V> zfl=kKB&J8>iY);cvKPpf7$;#4!W}3!ZaTax08n zQfU>ifzvJw-lLq<4q9C}WIp0llbgjM54aYC&r7K4bS#2Jk_V4mJbMHQ=2UT5X&uzw z40>&z4gnf~?SsQmzC&WVFH3AS<_A*ZFnXiqd_+oba++;n*||m>X%&7qqb6T=kVUhDA|GRi=V!)C1Xs5aa}D)iRzuIy?5~zHUZE~9@zQ8; zP!p5W8Nhinz8th3Y2u}dOb&vaqA|TvSqE+|m z4h8{#1otQV60MI0+quUX|ncB?pU_@g-To-B^+2efzIowg3Tan z+S%HsE2WbR z(9ND3Yj)*9f^WyJg0IAy;gXvAJbaZpc;R5XqoaFk+1lA&-%Xzz-D2MAHmYnrGYdw3 z#ACziH4$QFaI@9Ml^eY!gC%df;}ufLL2E^^npM#*d*;IDX3tlnh`nW4HeJ4x&9rpx zX6N6iXuE~soP`~$bC7Z`YNM3%NzDrbXd7ALXgiEMeIDs%&0$L7KS1C`S9nnr+A=CN zX&8(yTtSnTq@Vcf3|7)R)R0PC#1`eRRnu9t*D?xH3o9;26lmQZiQz!%}K zWOBSog$>}8{m!yo40_snXxM|*$l@F^3Fzo&-x#NTThcBgP!T`Sqs)}g-#BiBZ3`#B z&^27oWK-=4BGP+H_UnwA-{;pqXBjc+7}o9>LzWbp*OX|{K`bA9OzrkyttCX1$sEUd zFz96t*Axbt#Q#R?nOH!oV(ASb1!`8MocavN6 zB7>auF;-2}8g5uBLbnR&bI~GVGdUDbofFmtudoOTVqo@YitwuJubPwU+~| zc4b2>-VnF=czcb(08fidi%jeH&15-tk^5NMMkN4MS7{hG-+CzL^}>a`7TbSzFF zR*i!OgPFCX17H_wnLJI}r&#ZG#dtZWpt0W=|CsNqb(`%Y=`Y=N25>rP8h+e=*zUR^ z6cu7`tRQ>BVNdrONf?s?ES(yS%2Cv$4b#!xl#&YgCatOR7U4>0f1I#~!j!XA^3uUz zPxc#%#Hbv>tNF1l9@y#>_=(Y&mI!x%N(wt=ha?ULD7sH>;xu|26ORg}p;s;{s#ygV zP*hrp$PHT4%~O=!YP9R?q}4z}=a3M;5Q)f@;w;v~vx|YFM<130uuC$n$}O#Urj`^b zBSx^TN&_zMl|ZxVHx!8zW=N{7S_|aWRVJ)>qPP$S1Ba^X3#^u@Gc%3LRn%+=))v_2 zK4)jbZ+YyzOhVz+>P{0EL#-5JLamfnl(mcsrbft7j35P+4jPl#yNI;i%5_RfWF<5$ zm<^+~PX#h-WDBPNN(%ECT-@*F<5y0OE%cP=vjQKQwX%|$C{CF?zM523JZ-~;Hh4*+ z0;AXqcNa$|hAwqxF)>g{(?&`oiF)16F$>a{;t@_KBsqy;?ks_H&_2^CHoXr2H7T3SWRNQ~w1iiG*`IlSX} z;)-#|To8YJIb+$D+Lv$K|9$|gdVv*A5YA}vNjdiLe%<)i`SSyH&gH}a3IU*Jv{Cp%lOy0{0jQDN z&zxs~^*dgivOw8jnB|w8FUsnD6FHz5+si7Uzd69rw*MX}FwENvQX;e} zIA+!^Ia^^lANZNB1jiIK=*|hV7nabU11d)Zphgtc*rA2xW6I1Bbst2v#}ytKe{SUSE1*9qSi28Zq1C&BM^RllUWz*AI?Rj)}yj<&K=Ezqu6}beUfCTDawl5Ryv|7* z$>z6klbC+1P-{t)tY(;0#7|OD99JUwg**XtAyZ#K*tB!r;mu_FK_Cm~bs^TT%L$jC zfTQ81_C4<^6j#43CyzS$rYixomUNHH6f!?cp$a>`fY8{SwEu#SCN?84o`w=iu6<;Cv9)Hq<#okfct^L~5ndCCggO6iV63GfEtlTfTUfPuf& zs55?!7SX*L?1-8q?1$9ja!iLUHqpL>Tp(*fqFBR?J>2B-UqTB$0o~s*LzJ3Y;0qaB zK)Xjy%C94idS@W{Ei#8b#5@6jrkbeHN}uk>bb>r%P4Vod7ws4#AT%q)&|u+Ou%`!_ zk3>XfI*G0w4eL0%H+h!8a-+VUq3n793dU29T)hcg{e;n8I~J@Eoj{%@Bbn{9Mm$)? zBU@X5uIpqVBcF2+fyhu#04?arRn;M?F$97|r#)Bm%Oj5Gi)MXv;h_Z>+^Ly&xkP$^ z&*!Iwn;}maDGhUmkKpph9cIUr2pNn4(?wVqDetcYc_HjxnjH6cu^l2>2>~$9#6jSN zTI)=`=gDqQyqU|w$7c>V4E7z2nc^w$5+$_~b|VeFXg`^q*Pp;iOT()Dk|lf=v$O+y z>9lc6xUUC=_y#ygZZQGr(-~OGE$J|<5s#tIeK5- z=IyPtZ92z%c=7&w?sGpk4bZiu)%HO^^emR=8p|$}IQEj4dY9O*pDbRet z^PDpC@MO4QoQ_*Lu{+R~Q*Myz&`zXLQpf=CmLZV^xix9)LEk%tMG*JjS~W~aFSA^g9TXE3S=|L5OBn#4(Yx-tNb4R_qX zq^ECV^#Y4NiB81IXvI={1l^c==ddELV>oVDd&)H#2eeedwI za>=}MDhAB*6&^-8 zJEMKi2abQ21Aipk^!)vg&{06UI9L!>xP|_BAd-wpS|M3lNK*(}NV4du1=ZA{v0*#2 z>VAk4{E;+P6i#ZPPTF5_$ z59cDD&q92J#xaZDP;$|3ri6P*j;n-oBjbJKhSu19L<;EbH%rasw>$w$IeJXeFc-nX zzrxiTyOlypRrk0<_I>4di|tlvGE`O$@zi3tvl2a4C$L|*hgwYZFd=%ts|p?HF54e7 zx?60{Sj0PY9byVQezm8uid7|6d8O)2$Yw-ong1z1ipA{+XSnp4S{*khv0%+jiqIXCT5tCmUF;o&HpA8KPDMBGtRBi!CE zNPd`rYV#mU8HyO#(O!;}Q-uLjYJEysiW`M}skB)M4KteNWVX?itt>XgiOzBh-9$v- z!-!!tZ+6Ug897k6a)<&oK*mAE$#hRg&zhUi#b=rP`=TBk-EA6>rO*F7J(QdmHmka) zo?*dqdXf(wvbx!NVlo`ABQ)gd9dSA!hdWKr34$TjbkZ5oHewbByicKGSB-;F*D4rP(@z%EyUYYVqbe&ASVhWjb+tTE;DoM*wfG zm5N<6^=EQ9c#Of z79PWpTDzy~Epqs5zvQu-I|K=OUX~dxe!2U_KkGI2H`nTV%LPe477_r3`51M93BSF3 z1ExT?+YrD6Yn;vtn3xFg=`}Yrtk=Y=p8vhXlRE|r)3poG+ia*LN3A>hOCH85b&rF5 z^01_1J60c!y+vGotB%PyeW8EJj?LY};`a^Lv3+Te+285lYlP^c-cJepQC8ONmk%y{ zTYsT|YHzVfa@M34=d>8rVdq>n9cGk!q^~bu7q?zz z#&sKM^hW^P_kOYKx)T`Wyvn{=wM8-b4Z8Q!Br5D?jyJ4w~KK zq&Aq;2|MVO-B^>zw8vDL7D>>&<7GPB+5uVw?|1zwKcbmskH5ujQBqf%WoTRsdf&5l^-s_`#YZ)eMbzEopWtdmdFD7NIXXJ?(k| z`4)!#?b;uIe4*W#Y=x^KKf*-8ts(Y#na;d0zWyGz4zvz|P~Kl6I}`qpP+w>iKK@~s z`L}09#ESEGg0O0DMwNzeT*Et~;`huwwO&W}Hr>W7yWFmz5wIjWL$e1zSpe;kdP6h! zZw|j8IvIwOtlLdBWjMxo)g3PtxsVaM{Tp!CeGTDvCQeI5JhTG5d<0|eUCL3c=5D_Dh+#M3hF2YZ!|~#oH>N<2iD99#Id?=1RO}RJZvg9 zTT-QllNT}`{$xoE-(j!*CID2Bscf4Ic-qToM5Qm#kQ6@sKd#<^IkPV8)(tvV$F^DWfcb~;X0Y}>Zev2ELS(y=?~War!Gt5fGa|KO=rv&Ouid5>|8S4tzRqvIX*yp`;S zT!YZQM_~ycY;Z7gRq(jWo{Acld1UY-xJTyuw%Px<$BX0ucFh#r&?x;Cr=DBFHiyCLo#$qhBk=|pRhmWaK9 z2Nbbd*l|wuC(DQ}r+D44?T>J%TjZQ`=#QA#c>~SA#-gOrMBa&^;TG;v0|OU8Y!xe{ z-eY$#FWV&b(z87qRGBX>+7jVETIv%dosa+DS}>~?xh?t&J7Je-7eerVU$?%SU;!Rk zDjMh?b`-3PV|>e6M5fHWjftRU^U6i!tijXLDk0e8L>P_D_6eNnQ0bj#6L4QKnyLue zt0iURO11i5!B(2um1+?f&((In4C1vP34tX8z3#UJc*bK4~Bm%$;?6 ze?%Kk^=28wY!8ueo8qM9?FNyX5PCP;JvFF{*U#&QfV)$pugmEu?%gRj;Q6)wdnh>G zHe)C$tiZ0MR85dW51v5TuBb2DSTY44Q797aixh~V_hM+_eE$d<-|2v;0N}0LN9p}i z6rk{WV+oOayO$PlAi!6(+aTaAFD&1$K*dF^xFpyrOtfmRJr>4MGbH&aH7;ATjeW+M z_+!fov+Rs%KBOyV)?tDJ)V?Ks7Q*Zi*V2cGm!nEYr)dvOjHmv8dpvi4ZR!C;;kq|st&4^TB{K~VxLF+NU*N=!ek!73PPEu?RzozYtd4xv_ zD^JZe_0g}Nw~GuB`#V6ZgHBhSUMA&nyzwfm6c!x|i={zb7r16E3PdKv{o1mHAg@G`KIHwWI-=}pK8Pd2dif~T&i_=}RkNZ-B*DVgE z=8e0fH0OWu?KqiIOk-J!+$BYs=o%?igr+<4`nF7TB^b@yUwQ_7)Xg zaA<+9+ewec7YNC%e1Y&C`|Wh(vc9~QsQM18qxz21qjanDUL)2$QtpA?GeSsqA4`6x z_j;${NB|^k!hx~MOz01>zBKgq?=OegP>504uIJ0TdT%z`@XwX(Yw?lS?Lt&!sCP`+ z(CkSaXKIG&EMqv)@D_24V@sb}iYkbWX}$O3`;Dlf0m-nECe%Obi&L*)t8SYW{k7_7 z$wgDG(7^5^DWa+8=|7!WzlX`&nP%XVCow%np$?{*jYwigh?6Yp+5E8eso(y{(ShRO zd`xN6YK!IKJ*bm*JFfVAYgf9(d~YI4zB8Rb$XeH1#iwaP-HtFtOkMmjcGTDIs=Xa2 zkLuh{57adGldsW8V;o*`Sa#NbyRz~aFH6CmeO{l|o7$MlbnRZmyuET&HS*{8!}L*Z z;T$jd(=hekmJ%tyjVvGn*J43`(0C8SBoeu&33sgzQ1E6^ms!A%7@;S#1<}^hPDZ>x zI(xX&^c45A>kNo4FKjL>%RnbJ(!fq<9*VOE zYxjE8J1TXjsFi9N^JiQcoJNFWbNpG66brq5jKBn5Vkj#Fr9u}C>3wlqz)7<4t=(34 zTPkt1wYr3PEPZ4<7D}v|qn)+Kbab(~#_6O>!}45${lEg%dHe;x-7R0%dB2%7 za2>bo);a{|o(>Jef5oSeSt5w`j62gI*eJ`S77b9sR!^YX|31PR)I;;>7q z0+zr7!uiP4wtVt?NOs<(IYP^W~;OMA7n>z4b z)`QrWCm1?`XlOP|N#@-Q>r{ew;)m8gc;0fo^i&uy6)a6xV# zM9^zj7db&~pY%su%0DA{aN>N3_)$HD$fg_W;J-ukO0P7A1c_%xADBHMr|XFJEa_7- zsuLOCGB#=*5s%u^!g4k4w0S(@sV7htkq-)=}9;~C%i{3UxzWIZGC8hu4@qzh6 zb!(hZ?n!aMS2rAd(IsxvtNaYKYM8ppkVAjK?V!n9Pu$VJ_}0xOOiPmzr(U0~?~x=x zz8+G~2)|vN(o+mR^VF~wODMNByD=KUh|}(Ss1%`uEM8yqzT>=kol=%K(8Co=|KKjf z7bzSYK>y&`AUPzL!vXJsm8v3lqNpHfRS(KpH_s3ku_y8ERFs~hAa@bx1#1eV?d_Hf zvOawWXtfD?`H8bkO1K}*7&QM@^#ooE(5@vfx=So<9tCT5U1NkqyWVwPkf`)v ztBL~P1vv!QPG$#-w_2!H@9|RpC9eCd@~+LM@MK5eS0P#}ko;vbV;Y%X4FuaH&CNUJ{}j7FyI3=A5)fuTpjq9n_@A?!XAXerEe!$B^Y6%0M*sv>YD~H8 z7oDjxtFR7`G^~BOEB~XR3G7D{az=|+q} zv6V?EIN*S+)8n^$(BOEI?r-;saq)d)Z9j!Q6>#0j1#oYiTmqu#89xd>QRtlVn<|j0 z-Man;aJI++qhhhDB*@mNiJ?Lg5Z7cQmy&+x!F63Af0i$K2IaazEvNPlEE%)HTi&nI zJ>H!TBQu4nlT9e{G%b&pv-jloH?y~ZM&yW7ur*j?ltx)6OK)YX`q2`N0TI>3V4?mI zaTV;>JmsPY~vu!#F9o23rn=VbwLlj}3@>L)` zZD9x~6h8{;H-_thsoK@noR*|MpWbgoOUs6x8U8QfZKK8=FWpZ>gdUQ)*uf3+a zPeC?yn(Z%}CTxXO&rQ2|;~%0&3O@(-E%>Y$gKuvBP*B)6tywWe*G3LUhnQ$Y8dk69 z7=`SbOFU>M+KCUf@SZjC7ATU_vD-!4MT+OSxn&l+Ve^+PX|18li6ywQrIc+F<;(&? z%pK7$A-{gfLhQxkz#_CJTZ#-T|B_V*%iaX@XgAIF*O&}D7;2K`R)R-cq2Y>7xA1d- zFSvAE=+7exRFktGJZ&yC!~4VcgLYVz>p^v+eStEQOE++cTqYP4*Oq@?tJY11g{<%$ zj^=^c#}$nrN)CCEH$NDj*kH z8@(fEYx@J~D8y=O7SIjR!Wk~-mmwFAX<}ym7O(b7_0<$x?q$4*6^ei)Etag-R8$TTPZyRipvD1N(DTUnGL8+V8|D7;3Lp{ffJ2&6ic;OjG|TO_1Q1Fa&$p3J6y$Dp}#! zhgo&Tf`&KcLCYO!3(@Sd*@7*9U(<5UiK2EgrQ`mQPqJ#Y-^}%S2rmLms@J$`hy@&M zz{pD8QIr0#KG^z!OM=j49bc7@tBmC{G9`=o&S@26HFAp_Ru}#224^{lp$ z95s9?KG0*1BoF@wyfVv9NNL-_h*=O5bRIq0-bsH7Iy1+ja+DbeMYg@J^M7pCvUUA+ z7W34*=n(SpYc42zD|8#cN`VYQM2Tccjv6N83zo3q+tC73`>2cVr#U^1s~I?oOs=Al z6~nR>;@7R&@RX3JE}OEGqKg^a{7q<)oV%8x=3HyP=roP=}t01)>a7 zsSXLWhWKyEa=OJ>?D`94tlsee(F6OtdmMi8nf!d*s7*l4vjBXp_7=`tY!8#&H{3wN zW9|jrQ~5w+=#`bUO#Z+grmq{}LL-S$^@TmUXKF{7mIc2&M5>9+Hyg?N9TLDyR5Q9M zkq|5(EVQzG=l7+ZnjUhC)-UB``w$44TXI22C}u7gIdE{h70NFQU<7)fsoq7ScaGiI zJY#_%2cR-8ui`fL6>;w(*W!VrtMFDKI2;&8vV3>`fMD|WBTTBKF{9xjh$|VGUScqY zQ0nVhe9?Hf2B{wIK{kBU`5V;Vv+(ll5;+Xy>7acS4g>pwg|xUZKtP`X+DGN^^_?iw zPv(8J^TVV)7pNEeeP}?kSPG1ahG&vN^Z=Lz9_tJtV3)@p?{RuYKEEk8XHpy{OY$hT zgTP4R!mpV{_zAVxpY`Gv@~&^?kARA_Wt+X<6&a?F(y|*3^JeGw(5_o)TS$Uu|8*@C zy-RWc}KPqhB=Jx)4(t>TS@)oQ=5`6}FC8P!qI*M&TQvTcCqR#|DNj-6G4o+i zWRN3M=Ctis@hKQ&PfXW3Ob54R?am-~_CT5wC3R4zJl|m(oZSchaD3`W$eVWUzGPP* z4r2eyvYXRnL#uBg-*svH%f-oriEKImtb^_rm>$FsTe&WG9DecoM%RA*$SY%Npb`fs zgxHhS+p^53>)#GLI6b0VYDZAFU*cFmH#6e$0)9T=#P?YV;23AA3UPA;4QSc@UHd^9 zmFD6(p6{2qEb|SJkV#EPO@Gku)IK7w;kd-a{x?Ac`JgLrx0h1>})0l1an#ALc46sL$C# ztS;+yiSV0sVh^y{_!u1AAKDn_fZJcMGVE+EygDJSfv63M+HA*2Q9|~4R`68wA(nRI z`NQD7^YbbJhS7FRam}Kw-OHwjZyMM6oa?vvo(0>DQ5k8(Jc&V3N%|ZAg7o*d$#_@a zCznAPIE%lIHXbwmy8;7^C=v%`sW3^~$EX~c4vJj?W{9lEsha*aT=flJjn1<;QW^kEQ!Z{BvY1b553851d_RmrigI!2-GDL+qfw|I~>0*V2sl5K< ztol5aa4yQU1%;gU`Mi}k_}2{n*F$^Rcx4<_{+Hpf+i5u^kcqaboCIH-z{lQU0ncIv zuIAj~rBsNKQmSj$4D>7z`M#eS3f;Q{R~&9L)uw&n39YTUu!zcr_r4iuSy=^&FdwBB z(h(&A6`8mMg#|SBz^Io+_YCWf!7k&?Wxg7*y+2@=to%Vj-)pzSnzZu=M&8=yDFm%f zkX*d9q>Sr?0T!VuBX9*@_hJi8 zpH3iXg;sxF!21jDgW>cvC-N6hw_=t-TOl_zvCD?pfKZk>{%ej3#r+oUN5k{m6iv2xP$p*L>hCYPq?)7G^$--ypmC7Zc;#b zh?nm8V&YCbY_dDhib-vLH~pIaCWUZa6#WQdyKNgSIikheud^z5Tt#(G(x1kF@U_C5 zx65G?ch$p;A5XO%Q^c7{$k@>FmcegmrclBvAb7|Nfa}H=tS$_ncjmrP^qU@v5$8HJ zf;G|=l8FPCiB~=u&{?{fbz1F)#Ix!vMBG$gpy+Iwg>YeBCds=9qMR4Ng~EQG_u18> zl6*F9gt2}`aT!KTa28ngWZ(zM^&sA}@r)w~n30FrsqNe0?ss`$;wN!#Kn?Nv79#gH znZF(kpzk$!pmBwOA5uO1dPk;xIF$~5@{CQ;$oCT>d)N5=OVZjC!*Hg48_;r1QdfH{kZ@fb1!`<%Hy$*} z^6!pLIht#LF19(oqy($0JvTM>KX4WXXH(f3AkLA)Wb=pi4~GxOAU#+P&ycz??Ec}n z6Dql2rr0Fc-BwC%2Rvd(*OuJH@SK9cRce#PpQWpCFmNg^@_N)ljaJtn`n*xRd(&wq zx~Jb4782?MzIlfr3a|c*AV~4bO%};<4sw9EhCR0Dm5TJMh`f-wr@5n1X)MbBw$`lb z2b>|d(;V^(ov`!{ppc%v($UMzz4o2^YU>}ty~Zf2jAB;#gSsw=M5&J|iI1K*mS~iK z40QjbFX>7xw)mCYLwCq{T?&V&sD}vJPMM5f^!GTrlf?F3$ z$jdRu$$S^yAR`lx$4?Je3ft(Dqwm*5(JL)URv-^~-Yvx_oXM+e&8y02d|1^L(8O!{ z`sgdRfaa-2a@-P=5Yq>hluPQf2ldbT!FC0A$Di|SEYY>s4QZh|B$hun~6zQMjkQ=jKTQxy_ZIHMtr|A4T8F1hPg zOIs20c=6J{GM&!qNSTt7(}K>34vRmFTS*;>v5)v(ErWq$YF#@U;e6YZq05QmJf&MKYOl zy?V{L50EBSk%{GSB2<~k@d-88<{{oUO=(og2&#r!qp2Fy1wUanuiW_#eQs9`Z!9iJ ztH&83i9Zd$2_aUfqO^&<06?@iFK9iQp->}kNDo~0^j2OwCPohu`h&0Pq(JKfsL6g{ znJbbKrU-#LhixdLZ1*Kb61fjfV&i&X&x~(!8JAE3eKV zojrL5{XfsFPOFNu2`R2a*(7=XX-Ha@i}VOU!atW}VlvZ9AKI&815h+C?;NC<0F>K1 z!B!e7oV~E<+@KAOM?jSF`;I6m^B>XF$Q6{R4JHfcl8vmh=3>k9WnZh@YdO?0#vS2v z3x*8!U3!pdaVXLhUzC;%BoI& z%`Dn6ui_o$tN-qrx8;mw0<)ooe*Vg1!$K{bPbdIiOb(RB*lA^j%5(fi%whVS(@dJm zi@?km6k!FqcR$i1%pjn@Ht)y-0m|K99Sp=iNv;7Zyj83u43Ns?VH@~NV$hcVEchI= z0J54se_5Y!?cMl^T;HF4Ab~8$kbWYJ5yF!_^0cUjE{vIsC*XTVwco<)UzMcXpXCtU zOFx(mCsV=WwdtS#a@iI56%MacaDP8`UOIT-VyIu^JXYrz4o!iZ>C;DxlliYNXV{E< zbz`*(vW1=FgzGhM<5o35W4|1-*2+68V$d{-HR8=A%NW*7APL9k;q$+bXHv@69G_pX zx-`%)%rJf;{vb@^EIc5_|Rht_#u(Y;~Cn&!!hvyqg?PjdVu?H}(SG zrAX1nluQzm*pqfkcSDJRmsAn<<3dM=r2e6NrMG-E5#f*EyL&4TiGhX-xXd{GSwsJv zoF48|vz9~UdYxi@7${I?)|*&7MzZhjW=URGlt1ruWzt2X*>i4_H)a^WQwon#5BA*G zHZzr8W3_+7Lfp{OgA74DUvR`~-qq~Vqjkx~Y+Zd_=GU33j@^>mdHeR??-8Xt4od(5 z1p=b?W%w8WUt~Q@VsZ#_BAfpgxl{#J1MPE*%tZ7zG>K8XK$)B^{Lk-A>Uo;9Ws82* zigexUGMWP-zi~Nn;-riT!V_2sjM9t6PbF<5l*3+9+dS1(c*oF9yD+=KNM{NhJ zD}Jx(YrZS)lblVcSl@s6LY&=|L+W^Nh3G%T5x%Ge1Gh|8aqtIvouw(L0CJQOUBELl zLEjJWyc8IOQj)R(O9b=&vJtIEM}`2T+j#9^_EG2zrgGw9S=r#9L5>8L2n#r}2&`aD z!{P%@Bgf7mLZVI*`bptYjq~Bcm2sEF?u)WI^YmP3ZzGUnFvmrt4Ich-r5e4l3e#BB z8sS@(tb~^+tJ#g&E=J>7z)TSeODeAdx$(5C8L9_s<^tvbG0_gk_u94HWmB238v&P@q)$s?PaW7rVs;tEcoituH-V7PHqbj7iQXTRiF2VPz zDeJJFQu>W+LL+Y1SQ%OPchuADGRA75$Hq04h4%*DY+|dRy(6G+ZEuRA8FquR8AV>5 zd~+aZ^5}sb(CF2OqOsLJmW-0A;rx(yJk;5iRH-^A7PTC}PfZ6?A(UQAp_Pj?ws5W* z*DS6knj3+iR_w{jFv@q1sa96yY3qGj{d`}dIce58YEI5CKOE08Sx3R6+4XqYQ*rhO9%Q`RUZ`%%kwMwm%EtC?zm1Hz zUe(@Sz&?XKm$<*#hP~*$?BloW#ky@v>|(t74z_aKXM<-QdqOsGMIvy8%6WJHA!>=n zIwy^h?=4IMawVx}eE&Sqy-1f0vPci9NBxduzTD@PDN7slIsZ1+^NMRlaYd3A^$F&P zv_5zP7>Ls}hH3kY2SG^iU?L;8`friB_zNnnpjyDt83h(xgg@^H4+SI&hd z!pR`|qWYFQ!cfl=$~v#zwv>7!8h1HAFMIwgsb>krsR3V#8vErh z5dy5;a5d1k3Rgzw$z1V9YA(1OQC3EOE3d_fs%-qqppduP=PKqvl!v=?XN#wdH(!iD zgqlrJ+*Z`4s!h5JfrSljtxlxUg41-N7wF{_xG@+7o9t#ypj(T<4IP4->iSyETs6$J zoy2_n&CLWrW+OA%x%`scCnG|!0|-;18Uc3?`4Id7c-kQN-$vw^5^%@;X(IvdbmK3o z&>M!~sS2UD*nEV;aPCTc0<;HCSO_m!QK=#pgC|21nEfv#-DCta6ED9Vp3t!k5caK! zz3~|*UL>Gx-N~agZso9dP$Fx8ta9*`X0A~>mz2wwy1-q)^8VF|jG` znXXPw#aw8)`Gjq}nmcRx2#a)8CIQM*Chvb9#PueWTj_a?FRb>9Dop9Ultd(hDW_PP zvTPHhUTy+vj>?#8Hk?CBB8gZdOE`>mN|H&b=RIKjg$LMvi=ueP-)AS{#puB34ce#u z)wFZfZlTl_xsarnlas4xCf<&W?EVuaEEy^g=V$az86~SdmEhCoZrn67ysTbS^!Z_H@bzk5xzOOb)ciAZIWYO*n z{({0_^X=)=F-dZnsAq*gh>_8prJMAigQc6&I3YUTmcD=K3(!+!g_GUn=H@2D_1HJm z@R8?gCzfNL@3rI>d*ibY-001j$q0A_&!kA5P~h`&l@&)!P2eKey8;M^&$ZNnB+j_O z-*H-;noDxo#3n3tLobC53wA}rs7}RH`-J(*cE6ixT3dHfp9Hf!X{yN*5j zR1~Sz(873ebUBHyFh9N?6xgAnPTT$qGA$+(BguC2(&8k4`~$e#@f5BNH|Ah5Jo2<} zs~r`k**d8+Qd%To z+f^yowh|v=v$K{knq(VKD`4cFb+U0AT=pmbhdX| zk@V4(+R8NM-T`W>E}>7PR{|Rtb%mJ?It*;3xC&b`iJcP@t^e%CBW%v6Bf_dtJkF}P zYph14si!rIQ||fs9ZpK3eBM8v?*#)1pCgyY(j{FK>bQCDu>hN*=`8wqzgacWzf8TD3z_t)&VpDWLCOg-!<(tdQ6Rt-vJS@K~z1vNP2)w zoWK-R=t2~?O{PpZqNxFD2m|zi&pq#E^W2*w<}kR`gA7GF*FWDw#|&)?zKoEsFC)uC zUGj`70Fv0Ag#-GOR;@bt#D7SQ^$xAkovPruLnIxmpgq($6jS&m(m?=1KHANGnH!dv z2`}+~{F@Z)$0)|VIH}|vvuV(K*wWqn?K9P0T z5$JUrGKki1;MYPGI}3QNAziP@JtuQg@cB9xnGvo-HO2;@Z~U4@aoisW-IH;8fB(Kp z0@&_B!tnJju`Feh*!#>`#=G3p`ajE3)2mal9wxGSA{N{c3f)nS5vLRyoDdsU1^d|r zM@YFu!(;yvXAPkiQA$cfJo@qtu(i!=|9z**F(Hq9PgPDD;iAYYj2jtY`Vk@i`>(~> zl|u~c%7$@Pn}C4+6SLwIvzqMDK-nwj6EM!jcu?NGaq|wxVoqCi>zBAyYU?-yGp%+9B^A{$9NTg)jq80U|dS+J`j2@74 zhiZ~ z)8|JetQRLX94wDA{gLBh!SKKJJu>&I68{vjJ1li1dDf6mmoT>2{Gt^SVZ*$$hS>%r6O6{q=R}RUu&iQCS#Ba zJ?^z*i-*dk0rC1~4^G}G?p@Dp=Fgr9`d|CuFpH?RI;y^+mg`QKGG(o0MhipOXnL*7 zSwn4L=U`KxsFLpsZoQ$ZEp!~1V*QZ0*8a6?dql*FAYJfZ*2?lUHh<|M>7QgTYW0&q z(|y#o!?dIR{gpg%C*!F5bIGXZbE!k8nt8;gd5xK4-*O%0P0Hi->K?z6;P(Sk^;;Os zw*6w8<+^@&^J$S3p>GPG7$0HA)^vV&O8V6muF6-9GHZcf~MF*G{ znExIK^x2)`ps#W{(9lGOcwyi|9ajzQ1F_{tzv8^2c5$`1Ff=twl5$f3QOVB*$aR#w zW__eYQLL|!)pT)^m2LH3ly1MCUrS*h4zC-OH+s4gM*^(68~p($M_FCZYpM3v4dx0T zAJ?&hpzwR4WYa&%f*Y{pcK>}FRvwI{yb*>)eNm);MXUMA;$KcC(7yzr(Fdc|?0Le9 z%YJ3g{c))`2kFVvmlT!zxrZict%$=pHtmK-S_@Y@V7v<&1($BpLuRn&yKm_17@=oc zidYR=`+IAc8xM;Qpf+JJTJa+!1__5}(dcx1pNT{blswT3ZK^j)`t;n!4%F%?y3|Nr z#^=*Yk7(S+n{OmWEfxW%s-IE$f?gJt-4G!mopf*^%LPYa>2>W?o!s3PiDW8C6#mEG zvR~v30|SQRGSE%A4Iz^d1N9y7_Ks|?-U6mWkZ`-bMqu^?+c-DdJJ9d$4F5$>Pen%| z{Bc|#Cp|B@Nh#7mHw|%K+lTF$LFmT7+V6G%BUR5)by5Ak1nOTQn3*F+j5wTGtl4(h5xXCsv$=6rCee(|vJNE`r#&!qfTHV5Vz&S43}-xr zHK+P!TcOC){mq<^h9||4nM_8_ZUaJv2S?o{%1|vd zx&l%%G^lbf2N4PAjsYP~_H8&#Q8{~{N(y=7S-ue(;UQpw$E!}`=?gc4Hyox<*|r11xv4MJXn%6)Bln@#4~p`x zreu#kq35osD!`V@!%=>%4j7pR{OoKp-YSs`z(n8dW?dwt4r%%p#%wUXcyy=+uMB33 zvDSRXP1QWaUqY+`3Jy*8m=B*Wb}?PXY9)x0ep0qopGr%^c7=9Qp1aG-UA%3H2C`90 z#xgzZXM_O$rnqyWMaP5ABw$vriE5mhu@#~2>qGcw8j_RB%`^H^z@pD3U5z+TN3~RN z1l1poVt**(FU@+-0__v})ClgzHU2Bw3z6rn*e3lb61LpgsQ(<2+ z#h5re^VNZ=exZ&h{{16k;}3)AZ#sXf?}3npYeb^ZN~F*vmR*zR)4Z>Q~cM` z9T{{xhc0AZz&@5yH6B7ozAX3G``iST=B*UHpkJOcwUwjF^K+~JSE{&pm=k)@qlRx> z;f-PTM~vMm{b4$3Q^&rQFyRl#;$82_0|6;EU~Z0#{&;5O?3e@pz7g!^Cr#3h%IpQ0 zV34bY6+*~FyAu*hxqc0j%5S0&gw!u-#Ah%oyJo_zIfgosYt)dgsri=k&3w5!zW$m1 zWs(mASUB%$0~Z7)rxR;-TC~_3B{hyCT8l_Ez%_plK&%Bb@0HK zRQZ@yc7us-73rbCV>*YB9|uS)wZe5;B#^!j76Vn+)CY6%oV~8z*uaE;2*Uq{9oU%1em9m4o>Gu(IRD7fj(+m5|n>+@tZ#9|F zIo$#i*;_Q^cdonVM#FKkcX3;O@U{Cm?P{G7BQ8PCXaNGsl0%fc@R$@XdT|WTw$C}M z>WZrQg+(Gi#f7zoXy8NKyZhx>D>qUC*wKwOH4F<1dX)_aly1slF>?S|LeOO2meUZm ztAsYHRmJ*ndi0H#D8pUvA=TTjx(|b08FYia@QB*m=m2{)c%VswF#DrOjh@5L>!Asla64RE!ETZ-v_^ys>QfSR4K4+>S=-BhnTH%Lu2CC>Ph@@uL+!J(1^y zTko#&J2W+ylpSMxQi8}e_DncWj>>{38zq#ba!ii#sW>}=_rN01FGF@R$oi#I?hEK6 zJBXF--rp}nqL$-hC|KQEyJ^@K7?5f$xjS?bojbkzF}An|wCm4;=0{q@tBrX><^SD0 zf%*}{Lq=ci;?yp zudiJqN)!V(*cH`AX}}8gsAaedSc*{rSdt=jV1) z7x0`Jo?=D@Pwq*RkB6|>sL$+C+zkUHI=;Zzc3>w)y1# zgN7OD@}H-&<}Z;*LIR*WpzhmSO>|l$Qt5La)6eeP&Kd^5=k+HD*5Den(I}_0g9+6r z6XQT2fc&th2|Ypzy_c57ht@xUEOrxSLx8a7hTOOt&*V$kM|dMi>_rzfBI-^Oz`;lT zRx0+g@SBG?Y9{E`25V;Q&IEc!vW{S+-(C0^Gx)UFjHR1yLnG)`EnXpK#Y6ym_(J49 z1l~U6CWXp}H^_~REqW41UE6YYgidCS6q_^`(C|Qr|7S(f!FrUY6`AQ(RV+u;b}f%^ zk)Xwk&*>y#r9Q;E_V7e{Yr>JO?kX}6!Owfm&n8gsZ1S9cTOU}6)5wfKPpUwMl<<-^7xascL$YB*(*#LvbYk9GA7F9#o~se`^0!fLjy#HJ^DO%4$gK3Jq6 zOAOwm(g8AxLY?&D=v95g$>@>GVplP9&axd=%^>-yOtV9G4{X8_Jry&u2^mB~g<_hMB*gkpic`h+0?W=rs9FsT15eI!Q|g zsa;8p)rcE>1k82h)mig28_3nzJ|4b}tsY$?qpvThO>h+n%wUy`sEgp0bPvAmycTh3f^>r7>?iTLUQV$wWn zOv(loKR3pmyfc=lHSRBIa(_={oun>H--^kIvbjibfAOb!VRi6J92;`VJ-W$Pb6!1v z*5i~Xjh}EL!NXf%wYw-MA3G@|3#>cX{QR-|i==KLR`Life*7; zcEAIF-YTqKm}W$)eQf#_wXVj2ykOKu9^K=JTI|!;PO^O~=D{mbO_ib469{tq)fxKy z%bUnTC%9#zIW~7&dV6j#5~4cuq(K5}D3kXyq+6 zJNUNjY17iNJ*GI?HC^5jfR$S$?}`J?m+F|A8wLD>v^*^47#EiKD}xu^5zDN(Sv}I9 z_+J;vu#3lR_&KFhj-vk3r5k?pA$5Ww6)`)`mnKtaH*%~NW^%Zv+uPNG5#s<{N&(0jT3)zS( zH!5whI|alpQvS|Oh#PhII5j8jpu8`2$89}hTRW4K^)@pYN}EW)y&)mhmD`=6A?9<7 z=!qwqn}ZLff;>?#dL6ebfn5EzvqhMm&}pwn&`iFgCH8KUYlsWzpZ!&TikK~Ek_fYh zp9s~fe)={A^v0c*&nEi}e;_xLLz%T)TT0zIbq8BgX_uR0<&^@5Un^F%*ggqqVW^z^ z6l=Ib&A54{I`Sd`3y8x=0eL~h8~f3`NRelEAGERGsB=Co*0IaSmD@8iDFFIXduhA4 zYAqL(UQ9~mw(t_CkcnQ%xtBY4ICV?`&lD>0)jL?yp#)MEV(Kl+?SIT_^+{&IiVaveUsIW;{( z)|OU^A2W;Pgx&XLkthB`_pC$S8-0R{y(%v63offL4+mNlGe1mj_>OPEa(ZRFQ@a9c zZ)iS3S8frudt2Nq$w(R0O$LV&I{zF1*WXKkxNk53aWJG^W6V{DXc{$t=HA+RQ)Pcu z(tz*&Fn4651oLSlE;Z=pAwdl-=X15L3zbjfHtG> zL7v=M)OOOjjwbCN$_us`hIq5)GOiCescqQTOu&fD*DyILU(%Dh%gwht%~42u$8 z`)=i~00PAt$LYfy;ln!xuD2G3yNyZVzIC`TFfBLA%3;nT04OA86C4!Ny z$ic;12?pG;N=CJEhManc?o=i`bYb3-MM)K*@nLoQ#Vk6dF2fepUt;pelOOPGr)iNy z{ng==`GUwCu-6cU8eNGndBD=eYEZvdz6jyDXV~en3=dK8 z8szLV`PPCY)TvNm0z669l1`T(^^$M{Z){7dH^ieFKvsv0u3X*kROTt~*a$XMusH{C zl~xfD=IvS%4dhO_SF{4gRhEpH%6A9o+W@}-Ik7M=Td$0Jrx2}oR5QclJ3%6htr*!MelUv_c9mR6ku3)sG<_IIRSaI|SdJjZqZ9(+X)a4Gj;qz!6x ziBAi%_TOY49GDNO5cFcPKaKqOOjxjU#Ag~kt@PM=nVxtPkaF@nX1IiCs0`Z~QLEB_ zoP+RR;%o3MI~rHVbd)#R{X_ciQBrvAD{Th*s+xpIj7P*zoSwx5l2!Cn7KG6F^M53k z)CUVy62X#K>Chpg^^`%g(7TrSiOMA3`ooYX{mgI?fxD|MD&yke;d?8@yAFW|djfqj zbh{qme%{QSx)$64K(R(-p}%5l7Vbm^3WI6z=m%fz7bLM{E;4CxXMfYy{!d$H0TtEu zJ${-2=>|chkrt#uLApUCq$C8SVdxw{qy=H<21zOD?vk3JyBq0{P{7}n_x`>w@BLZp zu65_$&)#RBa}Q_D+_OW4zLQ?Wbkdw)g&?hBCp#Dm{RlFCJZH)AD?;M)Qmux~{9FY~ zl0m6mt;gV$^Bk^DMRN&1mW_*gO`)_!sjVUy#QA2iWTTuXXFZ4Q)#W9>LfHDQmrG`+ zUkygDIJ@<>aJ?D6JS(5xXbFKbB?p`+u0jfj?toLBv-Xp&l1Z|JP*fw)$8_fjImJrD zneOKm)n<@d2Jb=I$gRg5w)P3~SEWzf6Dcg)3br&~xhhHTouKpN+VJHH(9aBQ&c0-W zPIc$Xi3Wz6jZfTHihpao*Qxe-%szr0M>OOOuo06Ox~>4CC!=>{VYTA7N(?&}kn#c# zThtTNnV0Wp{qp}5t|89p8SIT|;QQT6%?uUUt-ufh8pSMGq410x{ALKd`s!6f?DQ!} zl+VPK%iN7n4evznQfJ=TB|OQ9pQtmD6vJ4fIRVGQz9(bKwhR(Mc1l5<%hDHA7UocPpkUhz zU*R=9WTWF9fdm_}T%)esV8{dj6JPvm0FI}gL+ImfqZXQjLbU}dT<3U}d5Lz?{NY}f zdj)VjxI$Q3G~cr?Pmi5l(JBzM$*n7KLc?$XHhDINN z_YM6JD3UC0;f|ozo0iDa;ArOJa`rQ_vIom-|xkWL>o)m2Pt60`lfq`qb?>0JmwgPEyVQ1*iT`pT0;PM?cwX>Te7)N&IijAh)R=Y>YB@L3r z{MWDnigC*2nZTH4uYoUP7`42)Gg)Lp2okxg@N5Q4Wy!fP%fg5NUJ@|t8YJr~(7f(u z>?kl7B;8!RRPB#Vj7p^O=1YE7KzXRroRRjmrw4JY{VYiz7O~}r2UXI~<|(eVtWKYO z9@^*j6)*No`=}AGl4soaQB-b>Vi$wea7qOEk;KtrgUX`vv2Q~Kmqm{DjK!55WtFb` zf@hg-VT&1a`lEsP>Qx8+BxDFhcvo&&lP*u1v!~5F)p@UR+wa(;Z(SIShkH(++z?cJ_l9F*s7h-WziJQ!|Tv2&?r+ zUHcM&J%Z|ii!0kxrr6mV-28#9SL70$4L5oJ#>iGQMVFM8wXPU1Pmq+I$R&itxK=U5 zS5mTE8Nw)pooW5;U%Nc|_SCs8mO83B-$1gX+ehJbBtWck+xjhh0H& zcCb#gHYvC5i73Hb_Dsz4d{w3f=$o0r0dC=0KG4F7U)FaqDOI(~;QXAS>`Y%@%uv$c z(3**#&A5`;J_m!gd~)hZ8#V4HuwO?_2frW(qBmFGxJcUUae-xM=zV3V2hm*(rbiF3 z53uQiks&m5^eqR_uAdzj2(}Z4;@C9-nX8(wyqLo=y|g=Ip3ISSQ&NIV_@1(aMOxJA z1}u4o z)o&~bdq&aj40d}G@H4xh=gsD|k%%w4#DyLxwH$K&F)&ENO|oONL;F3a?BmxlRWcoJ zSg$dc`(JFY8hN3B zo!bD3xaVR$GcjLQWu^7=3>F|pUp6~s)j1kCPknHv*T27+LT(e0`WLR z(`qtK>5^eRwV3Mt`f|*2VltKM&|&u*_YEJ;{d2X6fj2N`rBLqqqV*{x?7rF<-WcVP zPQ`R9tfZfmt|}t&QSB?2A^LS~2BwEtEszRGEFb5*bgb!MoQ*p>(tTrd`t3I|RxTiv znG_ebWhVNK+-o_WRXOA* zS25Xp)jw=H`s-dc?9(5@C6DGplBY$NAhl~Zjs626QS@h+0cRvf@&wZG)5~QURcCAN zKy^$O1)MKRtMTdGV|=`ktbNzSF=B)ssbi`Q{0S5GDVHi4j^z{EbX+;^_n;9<{GzWL zW{i8zOV^#$bo98Zw(P;y{$hKl?=euI$}>?5{7j>lDQXl@aq4{+u*lG9g}(_7$5gy%#t#*!fE?1OFdskPH$Ix5s<*om_p)hPhJnN<$`d}Ec%u5jm}4nmOpSeN#U6g4 zclY(f8W>D(#CxcZm~yv6oQ96fA#<`Nq@KF^lVrz1H~uZ$-GBf3y;3)vuKfCG_4P$f zpt;i(I{e!OXWHoDGb;FM08AFYQ$A)WI=_YG{+=V)MP7z8x}G_Q10PRZKW14+P~8MG zxZZ5$Nx2!zx2XURbdFIe*%&L@qA*PH%yAoKj?~bZ2vTPc(T?(ya>%E+`8*tEo$>rI za#`@cQv$;mv%2}@!J_-G`Od4^Tr0ZA1_S3%M1o0U?*lnOpli;lgO@eEO^L^s7LK|{nPDblE z>Mg~VF{7CmHrAn@opSn@1Fe)q$0`2d@AGP7@D1c-{4Q5be?C!jjk#3cjX`Q=kG6kp&zVJ0A z#icy^#aD{i08~Oq#HzzNsZHxwmncjYo7dtA*5e6oV-a#`^L8GDwq8gMFp-M>4GU&r zIUm8celiZYQ1@QqytI|jRxC}3$a=}>?4^|AOo~&|{0$ZDM-9@5I;O?@YtEX|)$L)& zq&-3g!AVK6^G_0v0tHfs`+O7Lt~ z4Y09ln!QXfE1&e~B57PcO2Qi?vjQgJkI`ep_9pS9rr`lbeb#im31xg=;XDiN;C7)8 z^U+(5p&eA!=AVZq&-$1qCZ3X`5iY^u%(7psouNh=ZT*h<^`7bL4CrpiaZFlO$Hg9v zcH_-<e+ zG9G*%FPpV>xC2Bf@x>g)6yJs{bH-Dx56;yWg#R=!G|gnl^UWs649jE#w3yJtmE7c5 zOV90Jm-^kgBjFrx!}X|PiHxNDS5dB52Qv$5l7DQQ8XJMv*<|m`G!m|ngE~2C+{-v@ zlU}Yk$bvt4tY2TbT8g@VKTeukIk!F0aF#}_pIQnlSNP|zVcl4TSd>|Ni0^wWx7Z5H z$ojQkM`#wcG6ZMd;|*va5gc2_&hJ6&bRg7R0ck#JoY{up#LBj1=3(>&BntQw>&jYDU6=Ol%JvauFwxx zFfw%9j&taOjdWif2HNfUIJ04;4PhuTRpMSj#Ej8xsB$4252=?a%dsWuN3oSw(BEc` ziF{Hu@}1}49a^U>i*OAE zNbroaWPv0_R1c%9-D|0X_s0gClLx(D7`<`CMS_$=?1$^XjTEIvsRT9n-n}iWRgqEd zAA)F)B#W~Y&ArpO&L>GPMuGL|Dc## zH6~fWEsMAOX~vuJ-hJAEDo};B(T;I_vtKdahzngoJqFd(!1aDBq3qHl|JM)SqGv+b z4P^XFjOLl%V!1AT$J#>BTFlwf4Ha~g{LsfPRKkZA^Xo}Si_IL#r3tyuItja!>Q4xD zA8%unqSu2>%i4v~XJKdN358x9%^_g77Pxs{&@`R%u1Gk^$hVblVT}@Tx{Ni2G>#1j z@h_7oQYIW)0t?du8NM%UVU-M+y=HVrFIw%QU&)L(Ii@Abhoe{vk|PVL4tCc2_g2O^ zjJFn5M_*cFt8bt_v0%@fiH&@g^uFfp3Yw4Bl1QUcolg~5RGSJ5EnNcRnvQ2N;{M5g zktUkscRg#t&@<0B6Wd!Mdffi;bMNXKV%4=CF)O^>VDEW8v5@KO&cqW=i9c7)-nu*V z?}8K&HiIN(s0avVP^B6^$bBiIn~8=qMxX*{9T8@Zg~F&n_5D2644deYj|(qG?kQP% z*zv)-7dnsXcbqe2K_Tc1cn7ke?}%=_$g=dYV$Vg?LKXv<7Y9nHJXiBW7~lhGjvE86 z&5p35YdECk7sis!%ayI3Jr}3t2(taqfUVrt+Q&#obMc^JlUF^V{`;ZpGiHyi>WF6_&8Ixg6RRuAaO``eAyTnsI%qr| z+Ww3ArN|k3siqbwn^s#HdC#CZ$sSXeUN>8Oyq@Fuk1+==?(yTS?N^D`pDq*paVA-G z%({eR7*x_<@lhuyeukKn@;rZzTr7!;>EWd`%(l)`k!BTtJhokjlwK@<(oNp5qBi~1 zYEvOs%en678(GmCf*AFYgDLWQwL)7paqBsb=>>Asun>JzvIui4B3*`#SJI;EYy{_N zy zp&cK2)83%xb3`;wj~IC*5!OEFgI^?<$&yK}acvtPwtDNv+b(e>N?P#=>FQo3c02t+ zs{DslVH@VC!OE;j#M7V;^DOU88d{Wclm?vc}siKc<`v}N364pj*RA~&n-u0TRMi)3sMsGXk_nPbsMgOdHmV`nc zy8I+Rb*{W-(a#Zh;0r4wrT8(VY_E?pso?e#v=8ceQpM!eBM^vxX+RYtMqEdrN(W|W z{S0PUvKTYxqVVmvCpjBlvkSg@@l1sA{m*rpKs!82NY;`7 zd|!}WboYDlH!c%IMbrbXfMT&Ru8(x=evM)0I*4i=Vgz$Mjo5f?(E=C1*J4D;d&qJ% zC}7MyUBuybG3mO^3qCQ)=*~71vOEr~Y<8?Q$$Jld$dy%H(5O+AOZbtZ$8-1)gnFCu zsu9=XA!pM+9z6$F8tg*#yr-fo-jaQDQ-I~_IFevHy2N=h*7yk!*>?-W&w;X((lH** zo`!nKTMwpQxb(&8UdixHKcEc-d&k3_;8voBOr&2L{e#Ox&Tk!gW zkB)s*+}hry^8Uv;j3&)dD+@VeSEbS)9#y$oqtOFemOp|^BgamoD(S0azEvq1=o>uG z3Wa>~V%o0t!x_jTbZkVnJNAH;L!KFFEYRlFyn64deeL?{=lR!NZ|+Nk$-|F@?h#k_ zB+|4l7rSUqUURX&esRoua)gc9m<@y(nO^zE2I`3xlg_GpG{{q+9};^3R zBSn3=unKwW=xy#QS7-YAaQwb?8rF|2^&zNA^y#UG6%EsP;KWwZr#*TFy4^sz`s90a zN+|m?P}-jRTlX3)t?b7QT*sBOq?V#GjwJ zour+gxIcsSKKpfj#N?ZNAry|t7Jw(F$rff@$LXdZ?nTrICKF%lET@e_7hmfT2tq9@ zIx|$--7&rtQ0xd2_acy_3C2bphSVD+d$^B&*~!)Lj?sOYQN+A8s54&wNh?*UX^!j4 z{udGIO=z?E^vgbsnIg=YmU*szVN9e7vvH>lxlYGAJ!5shxGEPcRB!hR%OYNu*}$eu zyZB!6uewswRaq*<3iglB*NX>5EwzQ3mDkU+3PI3Ihc@|4ndpY4=cIFVV6D=F`r2#W*&=(~Dd{FP7g@5! zC#T$xak@@CfAEOvPZZ{y{y0lhbK(wxW3Qm>n)MI!x~>ew;Fa5^rbzz6KXnc_G1&CJP`C_hbFUkwd{hYq;p=sO0!iCH@=wr~ z?kW#aAee#f+X4TQw`5=+i7Oc6o0R zQeiZq=jN^SN~2i(U9a5Zi)(vTN4ZalCkse*80=mIo~cL2LEAUu`8a|hqImtiWAH<( zp9L+;TIW!u3-v1>0$_;&6=6c&@?TstcS-iVJJ`xN&ggr`me1k4t#Pm#=6pBc_T^GhTlqH%hs^hvD4 z5%fLVbvD{YdDI_a71@OWRno8yzKcteD-ps*={FsAx{yjKTOE-<9iQ3?n<^%PjSMRl!`KM0y!=a1x07oD4n_*AVX&H zf^;4Qyk!p(RWcH+CBfh<{%;wApO8{DG=wOJMHAuzdr)hpFh$+XLtyE;;2xyP70`K z2Nue0bH1Gvh(foQ@CeYMAstxMzc2rh08VKBeE2Qya?Ad%xHk3wVISUMt8Q7UPU8RQ zq`bqO037QdbCB4Pp!mZNp^cqb4}aT&(Y2D00Ib7AK%rcYKXM2N*?tyC&?rQ5=x@V8 zU6c=h_uGPa)5Z@7F7N^lraQ0_`XBgB7x7;M>fJ?wM0oGdb>(~b(7rCLzwXTd_dIa^ z=iWVND-J5_KjRKU_}yT%7FcZ`XlM(tknK)`b5ONz;lFf!?502>BK)IEg%HH{Z#^RJ zQZ!D0(RRSWcvla}UxK8#Q05-2+g?`D;mPp=AQx~vx&y~h{AmSFaSsXs1b&a<(#g}L zYT);YDiA}@cSiv40n~w+9t!Vycnf;IKMd#u0yK00&38cxdH{S375hqf3lhGgbR7Y} zw*P?KjJII+-(YTZ)Kn7y8vh5>W(Gh3C~ogxHoj6c*4vh|+=ga`w=le)@>c7gawkBiB<_H7 zFKDSk!V(mE_Q?FsHBvJOHzc&kPKhQ zJPVl`RjPlVy>IH)?|II5S8KiNU2CsBoU`{iUtOY1TcV7p(>x|6#9#<87$1(GjuF)g zdw=}2Q}h}OpVtfq!<=9+WZ)?el(! ztJLQBi@3P>39hn9UV3doRky&L)|GxmQ_2VWcRFcr32iu*`FT`?l`-Bmc;(WhWD5dX7v>uX@q0xWg#yRh6Ir$C9NV2jVY$yjp2=7eR?)IJ-){(_F`lBgSdD8pIxrBZ4_qu&3+R2{o)CgcMf}EKd9#l zhOL_7cz5j`8N2N>ZLf@eR=`dTIJmRy&f%TjPp8Ze(aqaD zKc)ERy9E++2ZevvWbpWDwgsWeq<@zaW0|lx?AuHw_Blcx$qxu!^xH)kqTkV^1^O+b zl%!S%Z1OVrO+~xzC(V$Vrg$_cE;3Sk+W3G_VoNY3fBCbgGR2v&PuR{(JrqBj`+J*d zg7lqCbM&i0S)41eb|#b9lm?9-Sl-AM-H1jSZYk-K9$Z#xFu zbl8krqUqdAh|)-lqfL1SnGD7;cG-Dpwv!wy{uw2F$7bOPjH`2t#h#m&ti(d)GI>6f z*`TKy#>jY$!-BOBx246t+@c2iO~NVO-Jl?Xyh?*aFi+!7f9&NHwq6RE9>t8urZ?=9 z*lTZ`ImTq47>zZJCv`AJB;hC4h@BNe8n)8;Yl!CAd9D-lGALqp9t5+mFvHaQUM;{vP1RgHn8(&-<6v(Z2e7HOr5>l4*>($S{5zjuj7d)~9wU>r zeiYG*;zxpQSf_HwzRv}_Tk%=T*4MGx2E5;E1KS%ZG0rA);(!FoW!RPg*d^Y9h-4y{ zcFviA0vI=s1fIvBi&GON$Z>QgDoB*paA9yoJ`9=-RvshdIkR1eYRsU%n8?La=dxcd z{N_#^CQ+nAp2RF{En7ppz|sXDA{k4Le#9{>H3bkcIFNvUE}RDp#&^2?>cFs-65w3f zM2KMA{jGEd(3QQjgE)s9+fvgmIEs(KNaF*NBBUHpZKH%Z;X4UcK9sq7rKk7;Naz40 zL`Zqs%FihdCp<8r{yyS0mV^!w!7uyGmTcm7aEBnqnrb^nDV%oCfoK+ewLXE~XIqIQqI& zVh#pI%udf64S{mFOE{HjgaO6~+#|Fo)VkddmrQ>HTh|JjXOi+9*9_t-c3x?9MEW=! z0#OpEKRH{nh(z4`qf3aFn5M6k=)zJ>#jgr?RT9=XckLP?2uq3egf;eU?X9PhN=$dRm@KJ9Ajw>g)W^DYiX=alwkVSuvGhibw8ber;@mwJ1S^xo0v8+z zIgXnq8HuM@_ zOBP<_5iAw>kY@M}d0f+4;D<1SQ2<2Nk>kTcM!PEfe7t6oNv5T5g+uwaon;z&1^!}M z8?;X^cvFAELDAPYy!^=)lh=Nkua|6FyOS}heSz~}%PqCSL}v-z8~zn;SB3ay%2*9N za&n@?AC3wi3cE8WtsrU4m+zlmJnRqcxBSsK*w9um>8LfiGG=kdY`IUF%}*@r(uMk6 z2K42^P6gh(yu3B%Ub>@L)r1|K$j?`Iq$*8n3f(mL-9Iffdymqfjd{rPDDhSep()8N z<0d^!Um_JS*yI*sFUGIgYi3?|v#HhJK37?2O7l~Zkn$+YjUXb^weC`jyZN_RneV>7 zvmZyiOgB>f<{IKQrJtSq-9JQ3Tx&;Z6ywu`p@)%Sd-SdL&d?Fd9At%*?GrhgZnXQ7 z`_~;$_87EI*mS--HF<}Nf0(`9&r=aLla}6Y6b_g6PtcAEB0aV*tY+&xy3nHC)itSo zc$s@_v%;Z#j%&!A$f28&{RQo7+Xq6;ho|L>yAIFQ|FJk{KJ{N|WXV>L;%_-WTdC$+ zf90}O!B*vAX=Qe^TVve93thdfyt+27zoRlwiEO_h+Czn?n<)5}Ne8D_`5ZbKGs|+> zbZ^a7ni;ue%A(6i={x1+Zl;yx7sjVI)yPNXZJluD@`?QX>qSqKRpu>mRIu|fjcb{C ze%;=^PNrTPZ~Mz!+v}ozY1I-_m3#3O;OqVucelsAb~wB|%x%H3E2|#le`bALz1=K! z=Gse%2ey}mJA6HQA}4Q+l+KX$<|Epdo7UQ^*@>MVJnNJ9saDeDqknkK0wJ>rL*}^# zO-JS3<}}O?2+dtQU+#$d(bn~Pvu;%1n6tY4k%U}DaNb-&dmSmY)=N!tLc6XtnTH>q zZE#fS>`#+jkyYQditKF0I$7(EKj2#5B{KJ@j^|CwsIDyC z(RVK0@Kn0LerVLL8%;r?22GP>jC6OrXt)(~>!SDaTyMX!fn^WpPBR@AGw|J^@ObT` zsQVE)caNuOCNB|wQC}8%J8*NMG5hJdj>i#GeTFo)h=x6xplGjoLRRsIZdm?zmVx%r z_5F{V`-7A&de4*dTDt7GbJ5&#za=wXRJzYQrCc!}KFof7x!GfgvwzW`s%Wb1yPj(I zw)~`q%NcXXQ|3jyZ+*Ity4~iIDx)T^sMYlnuk)W7G@O_kt+8~;tdvdglu|#yk)|B zH)+M{{LxZovs{e*Rz-{%x9*~y{er!Vq+ea!@44Lflv|{mriIA$s<(~~DH8WwpX5FZ zYtyk9lXUP}$_$60yt|TRzO_!f9aerlwdQ!zvrYQ#;V0{7#7;C?QCu1*dB0u5gD{2CShxN!k1Hv)f`8i zIQ^<-_2OptYi=(W&Cl5#>*6?^_qy2BIrR`PY26Zwgko2OB#u*@wa{5Vp!#-2 zbZ_wVjh3E`3ghk?jo<3MZA!LTjJ#s-xg#d3x(_d&^7_`OsCY6&H)KOw!ive>c^Yo1 z_4{fg?U!yy+CEoo{`C1tM}||@6fJkqFA_Pq^GKVH^{ktxz8(*)$(8l%D%+7jr zMRs@P{=+_kVLJ=1cAWE2o~P3%@NGf7jf_=nX`HF_?DC6ebz0Nzs?57LtL3fGl5cjw zHm}w-Oj~+kdy(`i`IoNVy0fF~t#4W^*f!Cv>ev*SHS=9A?VIbM-`)I0piuhmqWN1D zcj_taShp>&*VZVIr5d-_Z=TV(ER)eDiTrV<0jn)y<|-g2rMvw$kE=P| ztFdX}0`a2NVd;?{XI>nC?X$wp;raP@$1Eth zcq718LV1(Pip=+-A-;!v9u}}4N34sQ{5>Fe;r4yYHQHvsGJfBE<;dnktDG(ls%%b} zIri4g*qoZ@d=|B9T2dyw-nBIB!Ita5w|wc7ioK6-8Ik&S8Z+TBzN-o1A7u=_srZnpOp=Wo7S4||tAnUFEr zVfHv(%X`_{v&NRPkJe7ql-7vryR-Vj0JU_+5X-yjT&!zEpXr*PqXvLL;pDMuVR|iz zYbpcNyf?qM((p=Rd(Kda{Iv1qhZ0YdR2Pe=u0)|pTZ}tjyRv7Gd0Mkn$)WJ3wX^&6 zZI_D|*BEP_DkmGRoto2l?T4Ik`=PrNlczj=5S-RAIke49Av?-%KVMOm|Mn7>F|vsf z3+K0N*qAkVbClPft!0lxVoYVP9qhX1vOX*~y>V>hL!a@7mK2GZ|%S|yd4*I%(ZKQy4!Stkz2`@G~u0Q-NXlQP)amf6ryV~Oo zc9t!ENv_)4lcqH9?#V$j{~BP}P_xRdz2LLikrgWvpRG~~Ixb;CPW|cdC0BE*xoXG2 z`um5&8Xt)5TKrhKb8z!EjkR7r9SLC0qs;bKr#}e$echMvUe@)5M{!0p*l`p@8y}kA z0Gd9ihVKw~_j2F73u{6C3#|ioHAO#cb_^@Tn)j*q*!*M^8Vsn4C`W9Tcp2EXAm3Tb zYx3^yCoX!eSJHdVSM`1rnO1cE9ivYjt@{CsZbJ_M4(2jM1NM?xJn&?m#Whx99i{3L$0-# zcFVnWA1GSwHomcb&7qXm00CF0*_((>634HE9JHBGq)$#5HPa(;h5lRJnYT`=AD2u~ z$ky%m>rW8rxNovlXtn8lKGXGVp+UuD?E{0IV7C6lWf`1^ue}IM6QAeVVWWu!O5(XEJpwvv)bF;XKfL0#q)2uDdd3yiCr^k3Nh#&<)r+ao`7Op2 zUzzRDdWHYSlHV7Xy{=v}ic2(#|9*8%!>b^` zXFU13&pV0BVU}fU!>XR!PnAvwfpLrhw_=MHy=0XN#|}h5RS)ZE8*L zn7s5*ds?nQ@b$yd>*dsc8YP^Wanw^plD#xc?AT@tGRjPG-n-bOqhU{-S`RrIm#DYO zgb|bHs4Wt@se8kA+zv~P`wvx*Zd>6&cck2|ylwaj+)Z0RT;m!=$=^F)VsxDw`SbDS+p`MS~BdA z#*6n`6gT#J7kZ!LNFCl8sH)O5Jp0ph^QrvDRz*u*^Q;ZJAQ4k*)V%dSty?me8>98c z>g7qCer!1}ty5@Qt%6^a!09Vdxxtox_evd~EU$J_H*wd?KPj3z=hNM^w-&diKebTm zws!Ro@_hdBW}InO!po%H9KAgp;u)K;Z4H9w9^Vd8pMP9rdX(6sy=l)yCrvba zG`ld*1 zQk^_c&J#i;oyqjJkv@_syFt!FFpg>}sf>e7y+bBol7{=_6fCJeAenrKWo$ORPohH{ z&LyYd5XE_9DN>!wC&Q$Xr2d*z!^AUd=zS*b5Kv31U@5weEGLo9tC3XX6N6T#ftooD z(eRK>KoA5%C8+sHiF59^lcy+T?pabhfe&u~G%1k!meh^2X7O`kx=9I4bNMYPilw`K zq!gA421s}aM+ZLg{+BfW6L|sa-Vc%DxM(bRNP%_2Kgfd;$Rl2ixgP5%NhUnyqgmEV zGcV!_NyszvF|JyRnWBNL2ke;(F|OW`sU}D3?t3%)2}!zbLz?dkuSqc&6SWx(efCC5 zjw9#8d?AG#JA;{Xu%l5Zvl7=wD2%xp>jJ}>CRj?^!`zD{z5UDsSmGRH61X!m4>QHE zt~iQ$6iX|jnQ$jer>=UODa`eaWu~k_`{cSIW*pwWZW(62oq=?#r%|6}kjDyFN*ecz z%Xi~(y|C~Kd?4DBQsE>lql9tHWOu3>v+nbxq;aIvt0-9(>aa^nFOm;HKPeXWt6xjO zlR-M0ee0+@ShCzeHDW*I07?O!>~hS*DFr+@UH4GSa2MU#PmRUXr1k*Si+zhCsY2{~ z;s~WHfS8}fQhYeKQb29R(%jQj77JMgE>KO_x91YI6?f(8tCRzl?xau$G2fJ%loIw` zew%VdR&e(oH5nbaj=UlQU+z&8>8b&v`;?N289W^g*t8bTZ-SIz;x|js=mgJZNB*Fe z`zOKZwOI_p?o$f%Gz19`C?#??0fI9rMe#owXk#;^C+`!W`57f6_6Iv{Q{zBeI{|ic zD7guLIr4;7{S}!(hlZ!197-RBz6BWwS5VBMRM5YBX~qbWZBwrDcQBM?CJEFCLJ@38 zr_h-gILg+svjSL@;Lt%(YT-2jUcde>hwlV24=MB-4wO8EO$rictIv}LPFa*F5YD2|>;h_8&@xN% zmt`EvHi%YsOVLWUgtRnxn8oeeBHCaehtS`$C`~oGEvvKqj5fiE&4G)x%CGS7_i{K# z9#PcGivo{FTnhh3kits|QJj55jYa{pXr+`2Quaa_DTNfMEgYkPT(?J0Ue@yA4%$&BJ9^V4z;c^J%1zC(ov@6Gpfq}=|%zo1G zmT03S46>=Qh$4l2u&x_6#ud^`=V_dvE^vNA$*>J|4MEc|C4%5bUbs!|fG}GKx8i{> z)cXY&XCKm2LN2J8MmaDnTmP3;3oHQyC03o)BX5AbJcM(uiXBQ%I5QfX3ggr<5{MmeNW! zXIcqguBxK`8hPysU&)N&p_Ew21qy=|&nPK`-gG0@!xc`?{cw8n4uNX75%djsFF|!( z;wt4f4x(itns>?sfTm~MdxYe3m{j>PbO&O8StbLzBv^P_PFw#@fPO1+7p`quJgN19 z@aNPd)TT_@UBU}BwC6d6z8nCG1yE`3Lo3-HJ~F@^4q=4eKpUR>B150A9Jp4(tt^o8 z{rDNi*bF;wEKjU$eh8i5Cxfbs%8;q*B~=bj;>%?j3|$`dtqtgQ3G50f4HPl35JoHx zLR$8xAk}|{&GM!SA6Yo?(qRW!^KjMf#9Vwulquq}hF?IC_FaOk;W@BTk+6`Hc<9^MG+Z4_E9S1f?z{cE8X+ta)_W=sbaxzvCKgk= zsApTg@g>nWiFuHjca}c{1I5%t6uM_7fAL!g*a=&w!NXU3lHGT5ELit~n|{y>n7%*) zTPa~I$o!=&q?JNv*~(`%fiUbRR072ksFXX;);T{0Ecw-WYg+pE48z2?{xgPi&$BDf zYocnPyer%sV+&v^^y_BcZvF}WE8&(|_$7=XoXA#5)CP}VaRaY}N}?Hryu=@UfMgo< zD2ZK`H2R+|?S9b_LB9!n1RJi$)9`WE*ypdygYl)@(cw@ES)#5(r3#pv%^izYk;*&g zLf3QfcBIVXZkEorO;<&AL(Q4_DDLZFIuM*-iaf{+@S~K{MkUiJgE2xLv5!5{`MvP$ zhDu^DNGPLBQC|faWbdQzZiir8-X-u%4t!iw2BPKMJLv={kk4{yCHr%(0@zi~txyzg zuzd=M3QC0?{8SX2_{qI-=+0PKSq;;h4Fm8_7p?dT$`WNcr2=}}6(QQ-B3W>>f=hdb zHhd{Y2JIJ8pbHvM$^*9h?%jf{GLV(G%4IK5%Ete}=RUqiy(A1sqTPnn8K z5HjjN?xR)ee=wLq84Bi6CJl!F<7OfJ3L5mwp}`PDO0sYUC07Ht&_(Nm+~z#Ib1NWH zg&kC({CfnI&=ldXXaf+eq|mobz^W1|E35Eh@8(KM9VJ{M_aQz6_JkQ60dQA0@^?90 zy$(Z5D!FTVA5GBKh_r0SI$>Z~MaiOy+EzhJRSU-NuKKkbptYQ~5iLKvr%ec0RB^jX zZc4687(HxZWZpG*9T2bPuDQ0=ki(z{NK{jrAhMd0MT7D8XB>YgtqLAjQ^c>VOMF|3^6NKJxiZ8S}i%EboCZPc=YPs3i)17zK*KMWUfO0W!nJAEaSJ}J4yr{YxN36=LJ|c>{amptK;wc4gCQi(V5pDu zGX3D0B?V&YDQWPmjv9@2F4kI)eFI^~tcMrxR6nCiLuG&*{14i?=-0#c&(gqJk9zn3 zNN;__7hG8K4h~d$yUly+UIL=);nN!pda#J)(GCGk|A3;jX+8xo4F7|mKN1rIpF>zK zym*(=ySfg3 zxZMcbCNYWN2a_A&%%`*b{k_cJ&lOY5F@8rQrGQ#}u|!gC4J?@lykL<>{w{|Pfm@B# zc$8WV9qPCPb`@@d1BOmmtqE#Xo$0LLMyH7yg<_9 z`w88ElolAIE&v4q_0S(RVB|v}*nlx3Wu}L6;HD8MKQL(JW@WAMp2~vQ^ndVaTmQf} zZ6yT3!B%d^Z#wR5wiG(hkD$DFsni{RIK6CzizA(Ce=AJYc_%ihwQ)m_d}0J!sl=1& zx$qGv9|&lp#1Tt)8)VVhhimP$j}QPEZQO+9@+=oVg2`mSOM{1s@6ZSyo(UX+GoiPM z+jk1>kdJi)+b0|$WPwLJ*W^!|797K-v+dl3P2-G%Kfnn6@Zz2O!fXuffKZg{51L?7 zJl5)Wa94!a@8RA49`NjdU#`-1IobhH_GiE#1c1jK+!bOTM^k@3tce}GcvmAYFwj96 zqJA#ju-29h0Y~A*`%M4-GR>z5)Dj8)Kh8AJSu_ajgb{PE(uh%@=PI22H#)g(en^`F zQn0D7lRKXBAD^igf-zX|8pBgr?^Fyuno5WR+c(^v`2F?O-!;0GM&o6`p*P%WoPPrY zQulC;O5ad&s3zUC)*u6G6}z}tqb{g*%)(mFE^d{BXsvt+)=HESLWcT*{%il-5W*@u z35XxezY4qT61;dHlDkVsTt@-nZf+qIyCG|3#fV85xOT%&j_D2yq)qLW*mS;|J1)T4 zWtV5c`b>kD0#A*`)?nzHZf-k%(gYXkvDTo6Qbe@&Jy6@+JECO)kv@1!JKV#~=oD=q z_xTU|%N}m*&M_zLmcY0!@EXk%yZbA~OMD}Q{}~5HZy{soj}Zhv@OjHkF^o1%Awk(Y zxZc7q(C~VjobT4B2xE+b7w1l(5;*&jwz+3j-;FedBxKg8>HYx*< zpm99b!msjV&@JTmr-Xm^*F6wEKp7!WsCcQyJXmD9*t~@<2W11?Md}C5?`Dko^#{2L zUSHATy%)OC52?IkzH%al4o@Tnz^*~=5RMvzEHUQTlr_j*T{f&86ktMzAF!i%NADhM z8Y%;ltx2JOMz8uiNR~YfBNn{lPR7~gGtOhrYf#p<&*BG9$ z|7jU^8@-&A{Kt(vJyBi+#^;9@?@(Cmj@@>-lS07yBey^8Kf*-Lcw$q?M{a+9&HE8f zuSE3i>#r@d7ltnPB1Qh`&t{q|-v=Xld|>%iKXErgBOhDJ{mu9T*nNWMO!UkP`UIct zCv78v{WemGhaGM^K@PN%bGCz=&u}~iY$t`mcgT*mC?cPsX<-O9S$~GDp!ca0>!PLS z!KL5_{2zyS@2wW0G*k&3`wZ{Z@ST8@y8Rxb6Qb~3SmW>G+$SLWGxs?63mxU$G1_$$ zm@ouq5FJHeOuC;QtdlxCEm7m?sH1G0(0w+n1byg;a*Y{+EMMZW>B$gxThl;m#ZFnnBuh8C-{DxF6SU7@E|wvB_^3o>Tfswl03T6aQUn!z{&b28&e>r_53o&`>P=N2frF(LIi1oy&=_c(I& z>k%hW@bx>TiQ=pOfbpl+{9y{NAxGhZCOZE^w0&Leh}{sSw(1HeI09BIf(74O^Q3mT zZUia>On<^tYPuV&c3nMN2eBW8{=TuUYy{y1OBO^nlH#BXo;V@=@Av(G<3rnNyd0?g zNhu=e?|1)yA0s(-(@-t=HGniiPA!W$kq^h&IXE7851h`u#mEyZ^npU$O_maw+J|-T zu?`3lP?pN7!SY9kO3Ji7WxhXl+skaYe!6qAdBKIiMo8y)DnzM z9(*iZb_<(Huj63=`g9m}(#YTCaNST0Z92>p0xLtA{5&^WI=K%!$7j;_=M3n}TP;@D zAHGuj+~l_S zkei>9Ak1%Z^dF|hzfAtLN%8m}CdcDU-t8-TCpQALGWD=4g&f)sL(#TgnmbS z6`nNn9=B8tVf-v17T!d-3qh8EVXTe$rA>xfru#Gs*n~1ifqEg9JZj` z?BIPjzt|P1i@@1zAk0!l1J_v?^7=2sTKGwg3`h{>_S$vYl<1C474C2wL7PyiJ7c7Z zi{X%(1RK-~M{kM+5hAFRMi1vR5k|}T!g9C|vny^~wqNE7{^rI2)w!mo* za2A8h+C#{Po{GxESW3iA&@09=MyKB;YxQ2-gY8U)uDnm6m0*fEOBdB?gE(}03J!_0 z%u&fxKRL9$gHIwJa24Zy;A4Ykah5&;1u^8rUO;9#Dc%9~1n5h!^l-mOz(G?4D9{Ap zE4?$no~%-6^^DU@RVdtMBz_L!iKqndy*_;^zUx^-!}oD6iXYmK`6A^w+;rR;3&}K83pFR iQHo`PK#EH%HjaXk_QHy2@PHP9^HMA`z8m+TmGM77B(&iG delta 16081 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 OOHynz{`2(6=KDWd87!s% diff --git a/diylc/diylc-library/src/org/diylc/components/misc/Loadline.java b/diylc/diylc-library/src/org/diylc/components/misc/Loadline.java new file mode 100644 index 00000000..79a8c626 --- /dev/null +++ b/diylc/diylc-library/src/org/diylc/components/misc/Loadline.java @@ -0,0 +1,164 @@ +/* + * + * DIY Layout Creator (DIYLC). Copyright (c) 2009-2018 held jointly by the individual authors. + * + * This file is part of DIYLC. + * + * DIYLC is free software: you can redistribute it and/or modify it under the terms of the GNU + * General Public License as published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * DIYLC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General + * Public License for more details. + * + * You should have received a copy of the GNU General Public License along with DIYLC. If not, see + * . + * + */ +package org.diylc.components.misc; + +import java.awt.AlphaComposite; +import java.awt.Color; +import java.awt.Composite; +import java.awt.Graphics2D; +import java.awt.Point; +import java.awt.Shape; + +import org.diylc.common.ObjectCache; +import org.diylc.common.SimpleComponentTransformer; +import org.diylc.components.boards.AbstractBoard; +import org.diylc.core.ComponentState; +import org.diylc.core.IDIYComponent; +import org.diylc.core.IDrawingObserver; +import org.diylc.core.Project; +import org.diylc.core.annotations.BomPolicy; +import org.diylc.core.annotations.ComponentDescriptor; +import org.diylc.core.annotations.EditableProperty; + +@ComponentDescriptor(name = "Loadline", category = "Misc", author = "Branislav Stojkovic", + zOrder = IDIYComponent.BOARD, instanceNamePrefix = "LL", + description = "Loadline of a tube or transistor", bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, + autoEdit = false, transformer = SimpleComponentTransformer.class) +public class Loadline extends AbstractBoard { + + private static final long serialVersionUID = 1L; + + private static final Color COLOR = Color.white; + private static final Color BORDER = Color.lightGray; + + private LoadlineEntity data; + + public Loadline() { + boardColor = COLOR; + borderColor = BORDER; + } + + @Override + public void drawIcon(Graphics2D g2d, int width, int height) { + int factor = 32 / width; + g2d.setColor(BOARD_COLOR); + g2d.fillRect(2 / factor, 2 / factor, width - 4 / factor, height - 4 / factor); + g2d.setColor(BORDER_COLOR); + g2d.drawRect(2 / factor, 2 / factor, width - 4 / factor, height - 4 / factor); + } + + @Override + public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, + Project project, IDrawingObserver drawingObserver) { + Point finalSecondPoint = getFinalSecondPoint(); + + Shape clip = g2d.getClip(); + if (checkPointsClipped(clip) && !clip.contains(firstPoint.x, finalSecondPoint.y) + && !clip.contains(finalSecondPoint.x, firstPoint.y)) { + return; + } + + g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); + if (componentState != ComponentState.DRAGGING) { + Composite oldComposite = g2d.getComposite(); + if (alpha < MAX_ALPHA) { + g2d.setComposite( + AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha / MAX_ALPHA)); + } + g2d.setColor(boardColor); + + g2d.fillRect(firstPoint.x, firstPoint.y, finalSecondPoint.x - firstPoint.x, + finalSecondPoint.y - firstPoint.y); + + g2d.setComposite(oldComposite); + } + // Do not track any changes that follow because the whole board has been + // tracked so far. + drawingObserver.stopTracking(); + g2d.setColor( + componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING + ? SELECTION_COLOR + : borderColor); + + g2d.drawRect(firstPoint.x, firstPoint.y, finalSecondPoint.x - firstPoint.x, + finalSecondPoint.y - firstPoint.y); + + } + + @Override + public CoordinateType getxType() { + // Override to prevent editing. + return super.getxType(); + } + + @Override + public CoordinateDisplay getCoordinateDisplay() { + return CoordinateDisplay.None; + } + + @Override + public CoordinateType getyType() { + // Override to prevent editing. + return super.getyType(); + } + + @Override + public Color getCoordinateColor() { + // Override to prevent editing. + return super.getCoordinateColor(); + } + + @EditableProperty(name = "Model") + public LoadlineEntity getData() { + return data; + } + + public void setData(LoadlineEntity data) { + this.data = data; + } + + @Override + public String getControlPointNodeName(int index) { + return null; + } + + @Override + public CoordinateOrigin getCoordinateOrigin() { + // Override to prevent editing. + return super.getCoordinateOrigin(); + } + + @Override + public Color getBoardColor() { + // Override to prevent editing. + return super.getBoardColor(); + } + + @Override + public Color getBorderColor() { + // Override to prevent editing. + return super.getBorderColor(); + } + + @Override + public String getValue() { + // Override to prevent editing. + return super.getValue(); + } +} diff --git a/diylc/diylc-swing/dict.txt b/diylc/diylc-swing/dict.txt index 961646e3..ed712e92 100644 --- a/diylc/diylc-swing/dict.txt +++ b/diylc/diylc-swing/dict.txt @@ -40,7 +40,6 @@ Deutsch E-B-C BJT English Español -Fill Français G-D-S JFET G-D-S MOSFET diff --git a/diylc/diylc-swing/lib/app-framework.jar b/diylc/diylc-swing/lib/app-framework.jar index b70f1e2be64be4c82b5043c0703d13c201504007..1312c8997fad2085e7ef7845e0c3ebdd6c935e1e 100644 GIT binary patch delta 43777 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 delta 16081 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 OOHynz{`2(6=KDWd87!s% diff --git a/diylc/diylc-swing/library/main.jar b/diylc/diylc-swing/library/main.jar index cb630a88e277351d2c3b48f76e8a95f5d229a313..2f9644244aef341f538ca265d8bd140d8b142902 100644 GIT binary patch delta 20154 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 diff --git a/diylc/diylc-swing/src/org/diylc/swing/ActionFactory.java b/diylc/diylc-swing/src/org/diylc/swing/ActionFactory.java index e053ba8d..ba7418c5 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/ActionFactory.java +++ b/diylc/diylc-swing/src/org/diylc/swing/ActionFactory.java @@ -48,6 +48,7 @@ import javax.swing.KeyStroke; import org.apache.log4j.Logger; import org.diylc.appframework.miscutils.ConfigurationManager; import org.diylc.appframework.miscutils.IConfigListener; +import org.diylc.appframework.miscutils.InMemoryConfigurationManager; import org.diylc.common.BuildingBlockPackage; import org.diylc.common.ComponentType; import org.diylc.common.IComponentTransformer; @@ -421,7 +422,7 @@ public class ActionFactory { Set defaultedProperties) { return false; } - }); + }, InMemoryConfigurationManager.getInstance()); putValue(AbstractAction.NAME, "Import"); putValue(AbstractAction.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_I, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); diff --git a/diylc/diylc-swing/src/org/diylc/swing/gui/MainFrame.java b/diylc/diylc-swing/src/org/diylc/swing/gui/MainFrame.java index 13681bf2..6b67b179 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/gui/MainFrame.java +++ b/diylc/diylc-swing/src/org/diylc/swing/gui/MainFrame.java @@ -59,6 +59,8 @@ import javax.swing.event.MenuListener; import org.apache.log4j.Logger; import org.diylc.appframework.miscutils.ConfigurationManager; +import org.diylc.appframework.miscutils.IConfigurationManager; +import org.diylc.appframework.miscutils.InMemoryConfigurationManager; import org.diylc.common.BadPositionException; import org.diylc.common.EventType; import org.diylc.common.IPlugIn; @@ -117,11 +119,13 @@ public class MainFrame extends JFrame implements ISwingUI { buttonGroupMap = new HashMap(); setIconImages(Arrays.asList(IconLoader.IconSmall.getImage(), IconLoader.IconMedium.getImage(), IconLoader.IconLarge.getImage())); - DialogFactory.getInstance().initialize(this); + DialogFactory.getInstance().initialize(this); + + IConfigurationManager configManager = ConfigurationManager.getInstance(); - this.presenter = new Presenter(this); + this.presenter = new Presenter(this, configManager); - canvasPlugin = new CanvasPlugin(this); + canvasPlugin = new CanvasPlugin(this, configManager); presenter.installPlugin(new ToolBox(this)); presenter.installPlugin(new FileMenuPlugin(this)); diff --git a/diylc/diylc-swing/src/org/diylc/swing/gui/TemplateDialog.java b/diylc/diylc-swing/src/org/diylc/swing/gui/TemplateDialog.java index e016c90c..70e5886e 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/gui/TemplateDialog.java +++ b/diylc/diylc-swing/src/org/diylc/swing/gui/TemplateDialog.java @@ -54,7 +54,8 @@ import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import org.apache.log4j.Logger; -import org.diylc.appframework.miscutils.ConfigurationManager; +import org.diylc.appframework.miscutils.ConfigurationManager; +import org.diylc.appframework.miscutils.InMemoryConfigurationManager; import org.diylc.common.DrawOption; import org.diylc.common.IPlugInPort; import org.diylc.common.PropertyWrapper; @@ -112,7 +113,7 @@ public class TemplateDialog extends JDialog { public boolean editProperties(List properties, Set defaultedProperties) { return false; } - }); + }, InMemoryConfigurationManager.getInstance()); // this.presenter.installPlugin(new IPlugIn() { // // @Override diff --git a/diylc/diylc-swing/src/org/diylc/swing/gui/editor/FieldEditorFactory.java b/diylc/diylc-swing/src/org/diylc/swing/gui/editor/FieldEditorFactory.java index 8ace07f6..bbe53a91 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/gui/editor/FieldEditorFactory.java +++ b/diylc/diylc-swing/src/org/diylc/swing/gui/editor/FieldEditorFactory.java @@ -29,6 +29,7 @@ import javax.swing.JLabel; import org.apache.log4j.Logger; import org.diylc.common.PropertyWrapper; +import org.diylc.components.misc.LoadlineEntity; import org.diylc.core.annotations.DynamicList; import org.diylc.core.annotations.MultiLineText; import org.diylc.core.measures.AbstractMeasure; @@ -99,6 +100,10 @@ public class FieldEditorFactory { if (Integer.class.isAssignableFrom(property.getType()) || int.class.isAssignableFrom(property.getType())) { IntEditor editor = new IntEditor(property); return editor; + } + if (LoadlineEntity.class.isAssignableFrom(property.getType())) { + LoadlineEditor editor = new LoadlineEditor(property); + return editor; } LOG.error("Unrecognized parameter type: " + property.getType().getName()); return new JLabel("Unrecognized"); diff --git a/diylc/diylc-swing/src/org/diylc/swing/gui/editor/LoadlineEditor.java b/diylc/diylc-swing/src/org/diylc/swing/gui/editor/LoadlineEditor.java new file mode 100644 index 00000000..d9250d46 --- /dev/null +++ b/diylc/diylc-swing/src/org/diylc/swing/gui/editor/LoadlineEditor.java @@ -0,0 +1,81 @@ +/* + + DIY Layout Creator (DIYLC). + Copyright (c) 2009-2018 held jointly by the individual authors. + + This file is part of DIYLC. + + DIYLC is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + DIYLC is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with DIYLC. If not, see . + +*/ +package org.diylc.swing.gui.editor; + +import java.awt.Color; +import java.awt.Cursor; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; + +import javax.swing.BorderFactory; +import javax.swing.JButton; +import javax.swing.JColorChooser; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.SwingConstants; + +import org.diylc.common.PropertyWrapper; +import org.diylc.components.misc.LoadlineEntity; +import org.diylc.swingframework.ButtonDialog; + +public class LoadlineEditor extends JButton { + + private static final long serialVersionUID = 1L; + + private static final String title = "Click to edit"; + + private PropertyWrapper property; + + public LoadlineEditor(final PropertyWrapper property) { + super(); + this.property = property; + + LoadlineEntity loadline = (LoadlineEntity) property.getValue(); + + String name = (loadline == null ? "" : loadline.getName()) + " "; + + setText(property.isUnique() ? (name + title ): ("(multi value) " + title)); + setOpaque(true); + setHorizontalAlignment(SwingConstants.CENTER); + setBorder(BorderFactory.createEtchedBorder()); + setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); + addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent arg0) { + LoadlineEditorDialog dialog = new LoadlineEditorDialog(null, "Edit Loadline", loadline); + dialog.setVisible(true); + if (ButtonDialog.OK.equals(dialog.getSelectedButtonCaption())) + { + property.setChanged(true); +// property.setValue(newColor); + } + } + }); + + if (property.isReadOnly()) { + setEnabled(false); + } + } +} diff --git a/diylc/diylc-swing/src/org/diylc/swing/gui/editor/LoadlineEditorDialog.java b/diylc/diylc-swing/src/org/diylc/swing/gui/editor/LoadlineEditorDialog.java new file mode 100644 index 00000000..1c11e5a2 --- /dev/null +++ b/diylc/diylc-swing/src/org/diylc/swing/gui/editor/LoadlineEditorDialog.java @@ -0,0 +1,424 @@ +package org.diylc.swing.gui.editor; + +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Point; +import java.awt.event.ActionEvent; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.io.File; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.List; +import java.util.Set; + +import javax.swing.AbstractAction; +import javax.swing.Action; +import javax.swing.JButton; +import javax.swing.JComponent; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JTextField; + +import org.diylc.appframework.miscutils.IConfigurationManager; +import org.diylc.appframework.miscutils.InMemoryConfigurationManager; +import org.diylc.appframework.miscutils.Utils; +import org.diylc.common.EventType; +import org.diylc.common.HorizontalAlignment; +import org.diylc.common.IPlugIn; +import org.diylc.common.IPlugInPort; +import org.diylc.common.PropertyWrapper; +import org.diylc.common.VerticalAlignment; +import org.diylc.components.AbstractCurvedComponent.PointCount; +import org.diylc.components.connectivity.CurvedTrace; +import org.diylc.components.connectivity.Dot; +import org.diylc.components.connectivity.Line; +import org.diylc.components.misc.Label; +import org.diylc.components.misc.LoadlineEntity; +import org.diylc.core.IView; +import org.diylc.core.Project; +import org.diylc.core.measures.Current; +import org.diylc.core.measures.CurrentUnit; +import org.diylc.core.measures.Size; +import org.diylc.core.measures.SizeUnit; +import org.diylc.core.measures.Voltage; +import org.diylc.core.measures.VoltageUnit; +import org.diylc.images.IconLoader; +import org.diylc.presenter.Presenter; +import org.diylc.swing.plugins.canvas.CanvasPanel; +import org.diylc.swingframework.ButtonDialog; +import org.diylc.swingframework.DoubleTextField; + +public class LoadlineEditorDialog extends ButtonDialog implements IView { + + private static final long serialVersionUID = 1L; + private static final String AXIS_LABEL = "AXIS_LABEL"; + private LoadlineEntity loadline; + private JPanel panel; + private JPanel toolbar; + private JPanel controlPanel; + private CanvasPanel canvasPanel; + private Presenter plugInPort; + private IConfigurationManager configManager; + + private static int[] INCREMENTS = new int[] {100, 50, 20, 10, 5, 1}; + private int xIncrement; + private int yIncrement; + + public LoadlineEditorDialog(JFrame owner, String title, LoadlineEntity loadline) { + super(owner, title, new String[] {ButtonDialog.OK, ButtonDialog.CANCEL}); + + if (loadline == null) { + loadline = new LoadlineEntity(); + loadline.setMaxVoltage(new Voltage(300d, VoltageUnit.V)); + loadline.setMaxCurrent(new Current(5d, CurrentUnit.mA)); + } + + configManager = new InMemoryConfigurationManager(new HashMap() { + private static final long serialVersionUID = 1L; + + { + put(IPlugInPort.LOCKED_ALPHA, false); + put(IPlugInPort.EXTRA_SPACE_KEY, false); + } + }); + + + this.loadline = loadline; + this.plugInPort = new Presenter(this, configManager); + this.plugInPort.installPlugin(new IPlugIn() { + + @Override + public void processMessage(EventType type, Object... params) { + switch (type) { + case REPAINT: + getCanvasPanel().repaint(); + break; + } + } + + @Override + public EnumSet getSubscribedEventTypes() { + return EnumSet.of(EventType.REPAINT); + } + + @Override + public void connect(IPlugInPort plugInPort) {} + }); + initializeProject(); + updateAxis(); + + layoutGui(); + } + + @Override + protected JComponent getMainComponent() { + if (panel == null) { + panel = new JPanel(); + panel.setLayout(new BorderLayout()); + panel.add(getToolbar(), BorderLayout.NORTH); + panel.add(getCanvasPanel(), BorderLayout.CENTER); + panel.add(getControlPanel(), BorderLayout.SOUTH); + } + return panel; + } + + public JPanel getToolbar() { + if (toolbar == null) { + toolbar = new JPanel(); + toolbar.add(new JButton(new LoadAction())); + toolbar.add(new JButton(new SaveAction())); + toolbar.add(new JButton(new LoadImageAction())); + toolbar.add(new JButton(new AddCurveAction())); + } + return toolbar; + } + + public CanvasPanel getCanvasPanel() { + if (canvasPanel == null) { + // create canvas panel that doesn't render locked components in lower alpha + canvasPanel = new CanvasPanel(plugInPort, configManager); + canvasPanel.setPreferredSize(plugInPort.getCanvasDimensions(true, false)); + + canvasPanel.addMouseMotionListener(new MouseAdapter() { + + @Override + public void mouseMoved(MouseEvent e) { + canvasPanel.setCursor(plugInPort.getCursorAt(e.getPoint())); + plugInPort.mouseMoved(e.getPoint(), Utils.isMac() ? e.isMetaDown() : e.isControlDown(), + e.isShiftDown(), e.isAltDown()); + } + }); + } + return canvasPanel; + } + + public JPanel getControlPanel() { + if (controlPanel == null) { + controlPanel = new JPanel(); + + + controlPanel.add(new JLabel("Max Voltage (V): ")); + JTextField vEditor = new DoubleTextField(); + vEditor.setColumns(8); + controlPanel.add(vEditor); + + controlPanel.add(new JLabel("Max Current (mA): ")); + JTextField iEditor = new DoubleTextField(); + iEditor.setColumns(8); + controlPanel.add(iEditor); + + controlPanel.add(new JLabel("Max Dissipation (W): ")); + JTextField dEditor = new DoubleTextField(); + dEditor.setColumns(8); + controlPanel.add(dEditor); + + JButton updateButton = new JButton("Update"); + controlPanel.add(updateButton); + + } + return controlPanel; + } + + + private void initializeProject() { + Project project = new Project(); + project.setWidth(new Size(5d, SizeUnit.in)); + project.setHeight(new Size(3d, SizeUnit.in)); + project.setGridSpacing(new Size(0.05d, SizeUnit.in)); + + double spacing = project.getGridSpacing().convertToPixels(); + + int centerX = (int) (spacing * 3); + int centerY = (int) (project.getHeight().convertToPixels() - spacing * 3); + + // setup coordinate system + Line y = new Line(); + y.setControlPoint(new Point(centerX, (int) (spacing * 2)), 0); + y.setControlPoint(new Point(centerX, centerY), 1); + y.setArrowStart(true); + y.setThickness(new Size(2d, SizeUnit.px)); + project.getComponents().add(y); + project.getLockedComponents().add(y); + + Label yLabel = new Label(); + yLabel.setValue("I(ma)"); + yLabel.setControlPoint(new Point((int) (centerX + spacing), (int) (spacing * 5)), 0); + yLabel.setHorizontalAlignment(HorizontalAlignment.LEFT); + yLabel.setVerticalAlignment(VerticalAlignment.TOP); + yLabel.setBold(true); + project.getComponents().add(yLabel); + project.getLockedComponents().add(yLabel); + + Line x = new Line(); + x.setControlPoint(new Point(centerX, centerY), 0); + x.setControlPoint( + new Point((int) (project.getWidth().convertToPixels() - spacing * 2), centerY), 1); + x.setArrowEnd(true); + x.setThickness(new Size(2d, SizeUnit.px)); + project.getComponents().add(x); + project.getLockedComponents().add(x); + + Label xLabel = new Label(); + xLabel.setValue("U(V)"); + xLabel.setControlPoint(new Point((int) (project.getWidth().convertToPixels() - spacing * 4), + (int) (centerY - spacing)), 0); + xLabel.setHorizontalAlignment(HorizontalAlignment.RIGHT); + xLabel.setVerticalAlignment(VerticalAlignment.TOP); + xLabel.setBold(true); + project.getComponents().add(xLabel); + project.getLockedComponents().add(xLabel); + + Dot dot = new Dot(); + dot.setControlPoint(new Point(centerX, centerY), 0); + project.getComponents().add(dot); + project.getLockedComponents().add(dot); + + plugInPort.loadProject(project, true, "n/a"); + } + + private void updateAxis() { + int v = loadline.getMaxVoltage().getValue().intValue(); + int i = loadline.getMaxCurrent().getValue().intValue(); + + for (int j = 0; j < INCREMENTS.length; j++) { + int increment = INCREMENTS[j]; + if (v % increment == 0 && v / increment >= 5) { + xIncrement = increment; + break; + } + } + + for (int j = 0; j < INCREMENTS.length; j++) { + int increment = INCREMENTS[j]; + if (i % increment == 0 && i / increment >= 5) { + yIncrement = increment; + break; + } + } + + // delete old axis components + plugInPort.selectMatching(AXIS_LABEL); + plugInPort.deleteSelectedComponents(); + + Project project = plugInPort.getCurrentProject(); + + double spacing = project.getGridSpacing().convertToPixels(); + int centerX = (int) (spacing * 3); + int centerY = (int) (project.getHeight().convertToPixels() - spacing * 3); + int maxX = (int) (project.getWidth().convertToPixels() - spacing * 4); + int maxY = (int) (spacing * 5); + + for (int j = xIncrement; j <= v; j += xIncrement) { + Line tick = new Line(); + tick.setName(AXIS_LABEL); + double offset = 1.0 * (maxX - centerX) * (1.0 * j / v); + tick.setControlPoint(new Point((int) (centerX + offset), centerY), 0); + tick.setControlPoint(new Point((int) (centerX + offset), (int) (centerY + spacing / 2)), 1); + tick.setThickness(new Size(1d, SizeUnit.px)); + project.getComponents().add(tick); + project.getLockedComponents().add(tick); + + Label xLabel = new Label(); + xLabel.setValue(String.valueOf(j)); + xLabel.setControlPoint(new Point((int) (centerX + offset), (int) (centerY + spacing / 2 + 1)), + 0); + xLabel.setHorizontalAlignment(HorizontalAlignment.CENTER); + xLabel.setVerticalAlignment(VerticalAlignment.BOTTOM); + // xLabel.setFontSize((int) (xLabel.getFontSize() * 0.8)); + project.getComponents().add(xLabel); + project.getLockedComponents().add(xLabel); + } + + for (int j = yIncrement; j <= i; j += yIncrement) { + Line tick = new Line(); + tick.setName(AXIS_LABEL); + double offset = 1.0 * (maxY - centerY) * (1.0 * j / i); + tick.setControlPoint(new Point(centerX, (int) (centerY + offset)), 0); + tick.setControlPoint(new Point((int) (centerX - spacing / 2), (int) (centerY + offset)), 1); + tick.setThickness(new Size(1d, SizeUnit.px)); + project.getComponents().add(tick); + project.getLockedComponents().add(tick); + + Label yLabel = new Label(); + yLabel.setValue(String.valueOf(j)); + yLabel.setControlPoint(new Point((int) (centerX - spacing / 2 - 1), (int) (centerY + offset)), + 0); + yLabel.setHorizontalAlignment(HorizontalAlignment.RIGHT); + yLabel.setVerticalAlignment(VerticalAlignment.CENTER); + // yLabel.setFontSize((int) (yLabel.getFontSize() * 0.8)); + project.getComponents().add(yLabel); + project.getLockedComponents().add(yLabel); + } + } + + private void addCurve() { + Project project = plugInPort.getCurrentProject(); + double spacing = project.getGridSpacing().convertToPixels(); + + int centerX = (int) (spacing * 3); + int centerY = (int) (project.getHeight().convertToPixels() - spacing * 3); + + CurvedTrace t = new CurvedTrace(); + t.setPointCount(PointCount.FOUR); + t.setControlPoint(new Point(centerX, centerY), 0); + t.setControlPoint(new Point((int) (centerX + 30 * spacing), (int) (centerY - 10 * spacing)), 1); + t.setControlPoint(new Point((int) (centerX + 50 * spacing), (int) (centerY - 20 * spacing)), 2); + t.setControlPoint(new Point((int) (centerX + 70 * spacing), (int) (centerY - 50 * spacing)), 3); + t.setThickness(new Size(2d, SizeUnit.px)); + t.setLeadColor(Color.blue); + project.getComponents().add(t); + + plugInPort.loadProject(plugInPort.getCurrentProject(), false, "n/a"); + } + + @Override + public void showMessage(String message, String title, int messageType) { + // TODO Auto-generated method stub + + } + + @Override + public int showConfirmDialog(String message, String title, int optionType, int messageType) { + // TODO Auto-generated method stub + return 0; + } + + @Override + public boolean editProperties(List properties, + Set defaultedProperties) { + // TODO Auto-generated method stub + return false; + } + + @Override + public String showInputDialog(String message, String title) { + // TODO Auto-generated method stub + return null; + } + + @Override + public File promptFileSave() { + // TODO Auto-generated method stub + return null; + } + + class SaveAction extends AbstractAction { + + private static final long serialVersionUID = 1L; + + public SaveAction() { + super(); + putValue(Action.NAME, "Save To File"); + putValue(Action.SMALL_ICON, IconLoader.DiskBlue.getIcon()); + } + + @Override + public void actionPerformed(ActionEvent e) {} + } + + class LoadAction extends AbstractAction { + + private static final long serialVersionUID = 1L; + + public LoadAction() { + super(); + putValue(Action.NAME, "Load From File"); + putValue(Action.SMALL_ICON, IconLoader.FolderOut.getIcon()); + } + + @Override + public void actionPerformed(ActionEvent e) {} + } + + class AddCurveAction extends AbstractAction { + + private static final long serialVersionUID = 1L; + + public AddCurveAction() { + super(); + putValue(Action.NAME, "Add a Curve"); + // putValue(Action.SMALL_ICON, IconLoader.DiskBlue.getIcon()); + } + + @Override + public void actionPerformed(ActionEvent e) { + addCurve(); + } + } + + class LoadImageAction extends AbstractAction { + + private static final long serialVersionUID = 1L; + + public LoadImageAction() { + super(); + putValue(Action.NAME, "Insert Image"); + putValue(Action.SMALL_ICON, IconLoader.Image.getIcon()); + } + + @Override + public void actionPerformed(ActionEvent e) {} + } +} diff --git a/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPanel.java b/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPanel.java index 78f0ce9b..51831509 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPanel.java +++ b/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPanel.java @@ -1,26 +1,23 @@ /* + * + * DIY Layout Creator (DIYLC). Copyright (c) 2009-2018 held jointly by the individual authors. + * + * This file is part of DIYLC. + * + * DIYLC is free software: you can redistribute it and/or modify it under the terms of the GNU + * General Public License as published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * DIYLC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General + * Public License for more details. + * + * You should have received a copy of the GNU General Public License along with DIYLC. If not, see + * . + * + */ +package org.diylc.swing.plugins.canvas; - DIY Layout Creator (DIYLC). - Copyright (c) 2009-2018 held jointly by the individual authors. - - This file is part of DIYLC. - - DIYLC is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - DIYLC is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with DIYLC. If not, see . - -*/ -package org.diylc.swing.plugins.canvas; - import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GraphicsConfiguration; @@ -52,164 +49,175 @@ import javax.swing.KeyStroke; import org.apache.log4j.Logger; import org.diylc.appframework.miscutils.ConfigurationManager; +import org.diylc.appframework.miscutils.IConfigurationManager; import org.diylc.common.ComponentType; import org.diylc.common.DrawOption; import org.diylc.common.IBlockProcessor.InvalidBlockException; import org.diylc.common.IPlugInPort; import org.diylc.swing.plugins.tree.TreePanel; - -/** - * GUI class used to draw onto. - * - * @author Branislav Stojkovic - */ -public class CanvasPanel extends JComponent implements Autoscroll { - - private static final long serialVersionUID = 1L; - + +/** + * GUI class used to draw onto. + * + * @author Branislav Stojkovic + */ +public class CanvasPanel extends JComponent implements Autoscroll { + + private static final long serialVersionUID = 1L; + private static final Logger LOG = Logger.getLogger(CanvasPlugin.class); - - public static boolean RENDER_VISIBLE_RECT_ONLY = true; - - private IPlugInPort plugInPort; - - private Image bufferImage; - private GraphicsConfiguration screenGraphicsConfiguration; - - public boolean useHardwareAcceleration = ConfigurationManager.getInstance().readBoolean(IPlugInPort.HARDWARE_ACCELERATION, false); - - // static final EnumSet DRAW_OPTIONS = - // EnumSet.of(DrawOption.GRID, - // DrawOption.SELECTION, DrawOption.ZOOM, DrawOption.CONTROL_POINTS); - // static final EnumSet DRAW_OPTIONS_ANTI_ALIASING = - // EnumSet.of(DrawOption.GRID, - // DrawOption.SELECTION, DrawOption.ZOOM, DrawOption.ANTIALIASING, - // DrawOption.CONTROL_POINTS); - - private HashMap componentTypeCache; - - public CanvasPanel(IPlugInPort plugInPort) { - super(); - this.plugInPort = plugInPort; - setFocusable(true); - initializeListeners(); - initializeDnD(); - GraphicsEnvironment graphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment(); - GraphicsDevice[] devices = graphicsEnvironment.getScreenDevices(); - screenGraphicsConfiguration = devices[0].getDefaultConfiguration(); - - initializeActions(); - } - - public void invalidateCache() { - bufferImage = null; - } - - public HashMap getComponentTypeCache() { - if (componentTypeCache == null) { - componentTypeCache = new HashMap(); - for (Entry> entry : this.plugInPort.getComponentTypes().entrySet()) { - for (ComponentType type : entry.getValue()) - componentTypeCache.put(type.getInstanceClass().getCanonicalName(), type); - } - } - return componentTypeCache; - } - - private void initializeDnD() { - // Initialize drag source recognizer. - DragSource.getDefaultDragSource().createDefaultDragGestureRecognizer(this, - DnDConstants.ACTION_COPY_OR_MOVE | DnDConstants.ACTION_LINK, new CanvasGestureListener(plugInPort)); - // Initialize drop target. - new DropTarget(this, DnDConstants.ACTION_COPY_OR_MOVE, new CanvasTargetListener(plugInPort), true); - } - - private void initializeActions() { - getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_BACK_QUOTE, 0), "repeatLast"); - - getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "clearSlot"); - - for (int i = 1; i <= 12; i++) { - final int x = i; - getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_F1 + i - 1, 0), - "functionKey" + i); - getActionMap().put("functionKey" + i, new AbstractAction() { - - private static final long serialVersionUID = 1L; - - @Override - public void actionPerformed(ActionEvent e) { - functionKeyPressed(x); - } - }); - } - - getActionMap().put("clearSlot", new AbstractAction() { - - private static final long serialVersionUID = 1L; - - @Override - public void actionPerformed(ActionEvent e) { - CanvasPanel.this.plugInPort.setNewComponentTypeSlot(null, null, false); - } - }); - - getActionMap().put("repeatLast", new AbstractAction() { - - private static final long serialVersionUID = 1L; - - @SuppressWarnings("unchecked") - @Override - public void actionPerformed(ActionEvent e) { - List recent = - (List) ConfigurationManager.getInstance().readObject(IPlugInPort.RECENT_COMPONENTS_KEY, null); - if (recent != null && !recent.isEmpty()) { - String clazz = recent.get(0); - Map> componentTypes = CanvasPanel.this.plugInPort.getComponentTypes(); - for (Map.Entry> entry : componentTypes.entrySet()) { - for (ComponentType type : entry.getValue()) { - if (type.getInstanceClass().getCanonicalName().equals(clazz)) { - CanvasPanel.this.plugInPort.setNewComponentTypeSlot(type, null, false); - // hack: fake mouse movement to repaint - CanvasPanel.this.plugInPort.mouseMoved(getMousePosition(), false, false, false); - return; - } - } - } - } - } - }); - } - - @SuppressWarnings("unchecked") - protected void functionKeyPressed(int i) { - HashMap shortcutMap = - (HashMap) ConfigurationManager.getInstance().readObject(TreePanel.COMPONENT_SHORTCUT_KEY, null); - if (shortcutMap == null) - return; - String typeName = shortcutMap.get("F" + i); - if (typeName == null) - return; - if (typeName.startsWith("block:")) { - String blockName = typeName.substring(6); - try { - plugInPort.loadBlock(blockName); - } catch (InvalidBlockException e) { - LOG.error("Could not find block assigned to shortcut: " + blockName); - } - } else { - ComponentType type = getComponentTypeCache().get(typeName); - if (type == null) { - LOG.error("Could not find type: " + typeName); - return; - } - this.plugInPort.setNewComponentTypeSlot(type, null, false); - } - - // hack: fake mouse movement to repaint - this.plugInPort.mouseMoved(getMousePosition(), false, false, false); - } - + + public static boolean RENDER_VISIBLE_RECT_ONLY = true; + + private IPlugInPort plugInPort; + + private Image bufferImage; + private GraphicsConfiguration screenGraphicsConfiguration; + + public boolean useHardwareAcceleration; + + // static final EnumSet DRAW_OPTIONS = + // EnumSet.of(DrawOption.GRID, + // DrawOption.SELECTION, DrawOption.ZOOM, DrawOption.CONTROL_POINTS); + // static final EnumSet DRAW_OPTIONS_ANTI_ALIASING = + // EnumSet.of(DrawOption.GRID, + // DrawOption.SELECTION, DrawOption.ZOOM, DrawOption.ANTIALIASING, + // DrawOption.CONTROL_POINTS); + + private HashMap componentTypeCache; + + private IConfigurationManager configManager; + + public CanvasPanel(IPlugInPort plugInPort, IConfigurationManager configManager) { + this.plugInPort = plugInPort; + this.configManager = configManager; + + this.useHardwareAcceleration = + configManager.readBoolean(IPlugInPort.HARDWARE_ACCELERATION, false); + setFocusable(true); + initializeListeners(); + initializeDnD(); + GraphicsEnvironment graphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment(); + GraphicsDevice[] devices = graphicsEnvironment.getScreenDevices(); + screenGraphicsConfiguration = devices[0].getDefaultConfiguration(); + + initializeActions(); + } + + public void invalidateCache() { + bufferImage = null; + } + + public HashMap getComponentTypeCache() { + if (componentTypeCache == null) { + componentTypeCache = new HashMap(); + for (Entry> entry : this.plugInPort.getComponentTypes() + .entrySet()) { + for (ComponentType type : entry.getValue()) + componentTypeCache.put(type.getInstanceClass().getCanonicalName(), type); + } + } + return componentTypeCache; + } + + private void initializeDnD() { + // Initialize drag source recognizer. + DragSource.getDefaultDragSource().createDefaultDragGestureRecognizer(this, + DnDConstants.ACTION_COPY_OR_MOVE | DnDConstants.ACTION_LINK, + new CanvasGestureListener(plugInPort)); + // Initialize drop target. + new DropTarget(this, DnDConstants.ACTION_COPY_OR_MOVE, new CanvasTargetListener(plugInPort), + true); + } + + private void initializeActions() { + getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW) + .put(KeyStroke.getKeyStroke(KeyEvent.VK_BACK_QUOTE, 0), "repeatLast"); + + getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW) + .put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "clearSlot"); + + for (int i = 1; i <= 12; i++) { + final int x = i; + getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW) + .put(KeyStroke.getKeyStroke(KeyEvent.VK_F1 + i - 1, 0), "functionKey" + i); + getActionMap().put("functionKey" + i, new AbstractAction() { + + private static final long serialVersionUID = 1L; + + @Override + public void actionPerformed(ActionEvent e) { + functionKeyPressed(x); + } + }); + } + + getActionMap().put("clearSlot", new AbstractAction() { + + private static final long serialVersionUID = 1L; + + @Override + public void actionPerformed(ActionEvent e) { + CanvasPanel.this.plugInPort.setNewComponentTypeSlot(null, null, false); + } + }); + + getActionMap().put("repeatLast", new AbstractAction() { + + private static final long serialVersionUID = 1L; + + @SuppressWarnings("unchecked") + @Override + public void actionPerformed(ActionEvent e) { + List recent = (List) configManager + .readObject(IPlugInPort.RECENT_COMPONENTS_KEY, null); + if (recent != null && !recent.isEmpty()) { + String clazz = recent.get(0); + Map> componentTypes = + CanvasPanel.this.plugInPort.getComponentTypes(); + for (Map.Entry> entry : componentTypes.entrySet()) { + for (ComponentType type : entry.getValue()) { + if (type.getInstanceClass().getCanonicalName().equals(clazz)) { + CanvasPanel.this.plugInPort.setNewComponentTypeSlot(type, null, false); + // hack: fake mouse movement to repaint + CanvasPanel.this.plugInPort.mouseMoved(getMousePosition(), false, false, false); + return; + } + } + } + } + } + }); + } + + @SuppressWarnings("unchecked") + protected void functionKeyPressed(int i) { + HashMap shortcutMap = (HashMap) configManager.readObject(TreePanel.COMPONENT_SHORTCUT_KEY, null); + if (shortcutMap == null) + return; + String typeName = shortcutMap.get("F" + i); + if (typeName == null) + return; + if (typeName.startsWith("block:")) { + String blockName = typeName.substring(6); + try { + plugInPort.loadBlock(blockName); + } catch (InvalidBlockException e) { + LOG.error("Could not find block assigned to shortcut: " + blockName); + } + } else { + ComponentType type = getComponentTypeCache().get(typeName); + if (type == null) { + LOG.error("Could not find type: " + typeName); + return; + } + this.plugInPort.setNewComponentTypeSlot(type, null, false); + } + + // hack: fake mouse movement to repaint + this.plugInPort.mouseMoved(getMousePosition(), false, false, false); + } + protected void createBufferImage() { int imageWidth; int imageHeight; @@ -221,126 +229,135 @@ public class CanvasPanel extends JComponent implements Autoscroll { imageWidth = getWidth(); imageHeight = getHeight(); } - - if (useHardwareAcceleration) { - bufferImage = screenGraphicsConfiguration.createCompatibleVolatileImage(imageWidth, imageHeight); - ((VolatileImage) bufferImage).validate(screenGraphicsConfiguration); - } else { - bufferImage = createImage(imageWidth, imageHeight); - } - } - - @Override - public void paint(Graphics g) { - if (plugInPort == null) { - return; - } - if (bufferImage == null) { - createBufferImage(); - } + + if (useHardwareAcceleration) { + bufferImage = + screenGraphicsConfiguration.createCompatibleVolatileImage(imageWidth, imageHeight); + ((VolatileImage) bufferImage).validate(screenGraphicsConfiguration); + } else { + bufferImage = createImage(imageWidth, imageHeight); + } + } + + @Override + public void paint(Graphics g) { + if (plugInPort == null) { + return; + } + if (bufferImage == null) { + createBufferImage(); + } Graphics2D g2d = (Graphics2D) bufferImage.getGraphics(); - + Rectangle visibleRect = getVisibleRect(); - + int x = 0; int y = 0; - - if (RENDER_VISIBLE_RECT_ONLY) { + + if (RENDER_VISIBLE_RECT_ONLY) { x = visibleRect.x; y = visibleRect.y; g2d.translate(-x, -y); - } else { + } else { g2d.setClip(visibleRect); } - - Set drawOptions = EnumSet.of(DrawOption.SELECTION, DrawOption.ZOOM, DrawOption.CONTROL_POINTS); - if (ConfigurationManager.getInstance().readBoolean(IPlugInPort.ANTI_ALIASING_KEY, true)) { - drawOptions.add(DrawOption.ANTIALIASING); - } - if (ConfigurationManager.getInstance().readBoolean(IPlugInPort.OUTLINE_KEY, false)) { - drawOptions.add(DrawOption.OUTLINE_MODE); - } - if (ConfigurationManager.getInstance().readBoolean(IPlugInPort.SHOW_GRID_KEY, true)) { - drawOptions.add(DrawOption.GRID); + + + Set drawOptions = EnumSet.of(DrawOption.SELECTION, DrawOption.ZOOM, + DrawOption.CONTROL_POINTS); + + if (configManager.readBoolean(IPlugInPort.ANTI_ALIASING_KEY, true)) { + drawOptions.add(DrawOption.ANTIALIASING); } - if (ConfigurationManager.getInstance().readBoolean(IPlugInPort.EXTRA_SPACE_KEY, true)) { + if (configManager.readBoolean(IPlugInPort.OUTLINE_KEY, false)) { + drawOptions.add(DrawOption.OUTLINE_MODE); + } + if (configManager.readBoolean(IPlugInPort.SHOW_GRID_KEY, true)) { + drawOptions.add(DrawOption.GRID); + } + if (configManager.readBoolean(IPlugInPort.EXTRA_SPACE_KEY, true)) { drawOptions.add(DrawOption.EXTRA_SPACE); } - if (ConfigurationManager.getInstance().readBoolean(IPlugInPort.CACHING_ENABLED_KEY, true)) { + if (configManager.readBoolean(IPlugInPort.CACHING_ENABLED_KEY, true)) { drawOptions.add(DrawOption.ENABLE_CACHING); - } - + } + if (configManager.readBoolean(IPlugInPort.LOCKED_ALPHA, true)) { + drawOptions.add(DrawOption.LOCKED_ALPHA); + } + plugInPort.draw(g2d, drawOptions, null, null, visibleRect); - - if (useHardwareAcceleration) { - VolatileImage volatileImage = (VolatileImage) bufferImage; - do { - try { - if (volatileImage.contentsLost()) { - createBufferImage(); - } - // int validation = - // volatileImage.validate(screenGraphicsConfiguration); - // if (validation == VolatileImage.IMAGE_INCOMPATIBLE) { - // createBufferImage(); - // } - g.drawImage(bufferImage, x, y, this); - } catch (NullPointerException e) { - createBufferImage(); - } - } while (volatileImage == null || volatileImage.contentsLost()); - } else { - g.drawImage(bufferImage, x, y, this); - // bufferImage.flush(); - } - g2d.dispose(); - } - - @Override - public void update(Graphics g) { - paint(g); - } - - private void initializeListeners() { - addComponentListener(new ComponentAdapter() { - - @Override - public void componentResized(ComponentEvent e) { - invalidateCache(); - invalidate(); - } - }); - // addKeyListener(new KeyAdapter() { - // - // @Override - // public void keyPressed(KeyEvent e) { - // if (e.getKeyCode() == KeyEvent.VK_DELETE) { - // plugInPort.deleteSelectedComponents(); - // } - // // plugInPort.mouseMoved(getMousePosition(), e.isControlDown(), - // // e.isShiftDown(), e - // // .isAltDown()); - // } - // }); - } - - // Autoscroll - - private int autoScrollSize = 64; - - @Override - public void autoscroll(Point cursorLocn) { - scrollRectToVisible(new Rectangle(cursorLocn.x - autoScrollSize, cursorLocn.y - autoScrollSize, autoScrollSize * 2, autoScrollSize * 2)); - } - - @Override - public Insets getAutoscrollInsets() { - Rectangle rect = getVisibleRect(); - return new Insets(rect.y - autoScrollSize, rect.x - autoScrollSize, rect.y + rect.height + autoScrollSize, rect.x + rect.width + autoScrollSize); + + if (useHardwareAcceleration) { + VolatileImage volatileImage = (VolatileImage) bufferImage; + do { + try { + if (volatileImage.contentsLost()) { + createBufferImage(); + } + // int validation = + // volatileImage.validate(screenGraphicsConfiguration); + // if (validation == VolatileImage.IMAGE_INCOMPATIBLE) { + // createBufferImage(); + // } + g.drawImage(bufferImage, x, y, this); + } catch (NullPointerException e) { + createBufferImage(); + } + } while (volatileImage == null || volatileImage.contentsLost()); + } else { + g.drawImage(bufferImage, x, y, this); + // bufferImage.flush(); + } + g2d.dispose(); } - + + @Override + public void update(Graphics g) { + paint(g); + } + + private void initializeListeners() { + addComponentListener(new ComponentAdapter() { + + @Override + public void componentResized(ComponentEvent e) { + invalidateCache(); + invalidate(); + } + }); + // addKeyListener(new KeyAdapter() { + // + // @Override + // public void keyPressed(KeyEvent e) { + // if (e.getKeyCode() == KeyEvent.VK_DELETE) { + // plugInPort.deleteSelectedComponents(); + // } + // // plugInPort.mouseMoved(getMousePosition(), e.isControlDown(), + // // e.isShiftDown(), e + // // .isAltDown()); + // } + // }); + } + + // Autoscroll + + private int autoScrollSize = 64; + + @Override + public void autoscroll(Point cursorLocn) { + scrollRectToVisible(new Rectangle(cursorLocn.x - autoScrollSize, cursorLocn.y - autoScrollSize, + autoScrollSize * 2, autoScrollSize * 2)); + } + + @Override + public Insets getAutoscrollInsets() { + Rectangle rect = getVisibleRect(); + return new Insets(rect.y - autoScrollSize, rect.x - autoScrollSize, + rect.y + rect.height + autoScrollSize, rect.x + rect.width + autoScrollSize); + } + public void setUseHardwareAcceleration(boolean useHardwareAcceleration) { this.useHardwareAcceleration = useHardwareAcceleration; bufferImage = null; - } -} + } +} diff --git a/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java b/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java index 29b4d167..34f2c7d4 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java +++ b/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java @@ -52,6 +52,7 @@ import javax.swing.SwingUtilities; import org.apache.log4j.Logger; import org.diylc.appframework.miscutils.ConfigurationManager; import org.diylc.appframework.miscutils.IConfigListener; +import org.diylc.appframework.miscutils.IConfigurationManager; import org.diylc.appframework.miscutils.Utils; import org.diylc.common.BadPositionException; import org.diylc.common.EventType; @@ -115,8 +116,11 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { private double zoomLevel = 1; - public CanvasPlugin(ISwingUI swingUI) { + private IConfigurationManager configManager; + + public CanvasPlugin(ISwingUI swingUI, IConfigurationManager configManager) { this.swingUI = swingUI; + this.configManager = configManager; clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); } @@ -145,7 +149,7 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { } getScrollPane().setRulerVisible( - ConfigurationManager.getInstance().readBoolean(IPlugInPort.SHOW_RULERS_KEY, true)); + configManager.readBoolean(IPlugInPort.SHOW_RULERS_KEY, true)); // revalidate canvas on scrolling when we render visible rect only if (CanvasPanel.RENDER_VISIBLE_RECT_ONLY) { @@ -168,7 +172,7 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { }); } - ConfigurationManager.getInstance().addConfigListener(IPlugInPort.SHOW_RULERS_KEY, + configManager.addConfigListener(IPlugInPort.SHOW_RULERS_KEY, new IConfigListener() { @Override @@ -178,7 +182,7 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { } }); - ConfigurationManager.getInstance().addConfigListener(IPlugInPort.HARDWARE_ACCELERATION, + configManager.addConfigListener(IPlugInPort.HARDWARE_ACCELERATION, new IConfigListener() { @Override @@ -188,7 +192,7 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { } }); - ConfigurationManager.getInstance().addConfigListener(IPlugInPort.METRIC_KEY, + configManager.addConfigListener(IPlugInPort.METRIC_KEY, new IConfigListener() { @Override @@ -197,7 +201,7 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { } }); - ConfigurationManager.getInstance().addConfigListener(IPlugInPort.EXTRA_SPACE_KEY, + configManager.addConfigListener(IPlugInPort.EXTRA_SPACE_KEY, new IConfigListener() { @Override @@ -214,7 +218,7 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { } }); - ConfigurationManager.getInstance().addConfigListener(IPlugInPort.RULER_IN_SUBDIVISION_KEY, + configManager.addConfigListener(IPlugInPort.RULER_IN_SUBDIVISION_KEY, new IConfigListener() { @Override @@ -225,7 +229,7 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { } }); - ConfigurationManager.getInstance().addConfigListener(IPlugInPort.HIGHLIGHT_CONTINUITY_AREA, + configManager.addConfigListener(IPlugInPort.HIGHLIGHT_CONTINUITY_AREA, new IConfigListener() { @Override @@ -239,7 +243,7 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { public CanvasPanel getCanvasPanel() { if (canvasPanel == null) { - canvasPanel = new CanvasPanel(plugInPort); + canvasPanel = new CanvasPanel(plugInPort, configManager); canvasPanel.addMouseListener(new MouseAdapter() { private MouseEvent pressedEvent; @@ -336,7 +340,7 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { private RulerScrollPane getScrollPane() { if (scrollPane == null) { - String subdivision = ConfigurationManager.getInstance().readString( + String subdivision = configManager.readString( IPlugInPort.RULER_IN_SUBDIVISION_KEY, IPlugInPort.RULER_IN_SUBDIVISION_DEFAULT); scrollPane = new RulerScrollPane(getCanvasPanel(), @@ -345,10 +349,10 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { IPlugInPort.RULER_IN_SUBDIVISION_10.equalsIgnoreCase(subdivision) ? InchSubdivision.BASE_10 : InchSubdivision.BASE_2); - boolean metric = ConfigurationManager.getInstance().readBoolean(IPlugInPort.METRIC_KEY, true); + boolean metric = configManager.readBoolean(IPlugInPort.METRIC_KEY, true); boolean useHardwareAcceleration = - ConfigurationManager.getInstance().readBoolean(IPlugInPort.HARDWARE_ACCELERATION, false); + configManager.readBoolean(IPlugInPort.HARDWARE_ACCELERATION, false); scrollPane.setUseHardwareAcceleration(useHardwareAcceleration); scrollPane.setMetric(metric); scrollPane.setWheelScrollingEnabled(true); @@ -374,7 +378,7 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { final JScrollBar verticalScrollBar = scrollPane.getVerticalScrollBar(); boolean wheelZoom = - ConfigurationManager.getInstance().readBoolean(IPlugInPort.WHEEL_ZOOM_KEY, false); + configManager.readBoolean(IPlugInPort.WHEEL_ZOOM_KEY, false); if (wheelZoom || (Utils.isMac() ? e.isMetaDown() : e.isControlDown())) { @@ -817,7 +821,7 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { @Override public void run() { - if (ConfigurationManager.getInstance().readBoolean(IPlugInPort.SHOW_RULERS_KEY, true)) + if (configManager.readBoolean(IPlugInPort.SHOW_RULERS_KEY, true)) scrollPane.setSelectionRectangle(plugInPort.getSelectionBounds(true)); } }); @@ -838,7 +842,7 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { private void refreshSize() { Dimension d = plugInPort.getCanvasDimensions(true, - ConfigurationManager.getInstance().readBoolean(IPlugInPort.EXTRA_SPACE_KEY, true)); + configManager.readBoolean(IPlugInPort.EXTRA_SPACE_KEY, true)); canvasPanel.setSize(d); canvasPanel.setPreferredSize(d); getScrollPane().setZoomLevel(plugInPort.getZoomLevel()); diff --git a/diylc/diylc-swing/src/org/diylc/swing/plugins/cloud/CloudPlugIn.java b/diylc/diylc-swing/src/org/diylc/swing/plugins/cloud/CloudPlugIn.java index b33af898..431fc0e7 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/plugins/cloud/CloudPlugIn.java +++ b/diylc/diylc-swing/src/org/diylc/swing/plugins/cloud/CloudPlugIn.java @@ -31,7 +31,8 @@ import java.util.ListIterator; import javax.imageio.ImageIO; import javax.swing.AbstractAction; -import org.apache.log4j.Logger; +import org.apache.log4j.Logger; +import org.diylc.appframework.miscutils.InMemoryConfigurationManager; import org.diylc.common.EventType; import org.diylc.common.IPlugIn; import org.diylc.common.IPlugInPort; @@ -80,7 +81,7 @@ public class CloudPlugIn implements IPlugIn { super(); this.swingUI = swingUI; - this.thumbnailPresenter = new Presenter(new DummyView()); + this.thumbnailPresenter = new Presenter(new DummyView(), InMemoryConfigurationManager.getInstance()); swingUI.injectMenuAction(getLibraryAction(), ONLINE_TITLE); swingUI.injectMenuAction(null, ONLINE_TITLE); diff --git a/diylc/diylc-swing/src/org/diylc/swing/plugins/cloud/view/browser/ResultsScrollPanel.java b/diylc/diylc-swing/src/org/diylc/swing/plugins/cloud/view/browser/ResultsScrollPanel.java index 7dc1b00b..9dfa48ec 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/plugins/cloud/view/browser/ResultsScrollPanel.java +++ b/diylc/diylc-swing/src/org/diylc/swing/plugins/cloud/view/browser/ResultsScrollPanel.java @@ -54,7 +54,8 @@ import javax.swing.SwingUtilities; import javax.swing.SwingWorker; import javax.swing.text.DefaultCaret; -import org.apache.log4j.Logger; +import org.apache.log4j.Logger; +import org.diylc.appframework.miscutils.InMemoryConfigurationManager; import org.diylc.common.IPlugInPort; import org.diylc.common.ITask; import org.diylc.common.PropertyWrapper; @@ -402,7 +403,7 @@ public class ResultsScrollPanel extends JScrollPane { + project.getName() + "\" with a new file?\nThis opperation is irreversible. Once replaced, the old version of the project cannot be restored.", "Replace Project", IView.YES_NO_OPTION, IView.QUESTION_MESSAGE) == IView.YES_OPTION) { - final Presenter thumbnailPresenter = new Presenter(new DummyView()); + final Presenter thumbnailPresenter = new Presenter(new DummyView(), InMemoryConfigurationManager.getInstance()); final File file = DialogFactory.getInstance().showOpenDialog(FileFilterEnum.DIY.getFilter(), null, FileFilterEnum.DIY.getExtensions()[0], null, cloudUI.getOwnerFrame()); diff --git a/diylc/diylc-swing/src/org/diylc/swing/plugins/file/ProjectPreview.java b/diylc/diylc-swing/src/org/diylc/swing/plugins/file/ProjectPreview.java index 6cdc957c..2b930188 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/plugins/file/ProjectPreview.java +++ b/diylc/diylc-swing/src/org/diylc/swing/plugins/file/ProjectPreview.java @@ -35,8 +35,9 @@ import java.util.EnumSet; import javax.swing.JComponent; import javax.swing.JFileChooser; import javax.swing.JLabel; -import javax.swing.JPanel; - +import javax.swing.JPanel; + +import org.diylc.appframework.miscutils.InMemoryConfigurationManager; import org.diylc.common.DrawOption; import org.diylc.common.IPlugInPort; import org.diylc.core.Project; @@ -68,7 +69,7 @@ public class ProjectPreview extends JPanel implements PropertyChangeListener, IF super(); setPreferredSize(new Dimension(140, 128)); - presenter = new Presenter(new DummyView()); + presenter = new Presenter(new DummyView(), InMemoryConfigurationManager.getInstance()); xStream = new XStream(new DomDriver()); emptyProject = new Project(); diff --git a/diylc/diylc-swing/src/org/diylc/utils/BatchConverter.java b/diylc/diylc-swing/src/org/diylc/utils/BatchConverter.java index 80a3018d..5be147ba 100644 --- a/diylc/diylc-swing/src/org/diylc/utils/BatchConverter.java +++ b/diylc/diylc-swing/src/org/diylc/utils/BatchConverter.java @@ -28,7 +28,8 @@ import java.util.Properties; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; -import org.diylc.DIYLCStarter; +import org.diylc.DIYLCStarter; +import org.diylc.appframework.miscutils.InMemoryConfigurationManager; import org.diylc.presenter.Presenter; import org.diylc.swing.gui.DummyView; @@ -52,7 +53,7 @@ public class BatchConverter { return true; } }); - Presenter presenter = new Presenter(new DummyView()); + Presenter presenter = new Presenter(new DummyView(), InMemoryConfigurationManager.getInstance()); for (File file : matchingFiles) { if (file.getName() != "" && file.getName() != "." && file.getName() != ".." && !file.isDirectory()) presenter.loadProjectFromFile(file.getAbsolutePath()); diff --git a/diylc/diylc-swing/test/org/diylc/TestBase.java b/diylc/diylc-swing/test/org/diylc/TestBase.java index 160c1e1f..c4be90e0 100644 --- a/diylc/diylc-swing/test/org/diylc/TestBase.java +++ b/diylc/diylc-swing/test/org/diylc/TestBase.java @@ -6,6 +6,7 @@ import java.util.List; import java.util.Map; import org.diylc.appframework.miscutils.ConfigurationManager; +import org.diylc.appframework.miscutils.InMemoryConfigurationManager; import org.diylc.common.ComponentType; import org.diylc.core.IView; import org.diylc.presenter.Presenter; @@ -18,7 +19,7 @@ public class TestBase { public TestBase() { ConfigurationManager.initialize("diylc-test"); view = new MockView(); - presenter = new Presenter(view); + presenter = new Presenter(view, InMemoryConfigurationManager.getInstance()); } protected void instantiateOneClick(String category, String name, Point point1) {