From 2678a332f289ada3ed89b96c3df4c3f187b7f54d Mon Sep 17 00:00:00 2001 From: guoyh Date: Mon, 13 Dec 2021 09:44:03 +0800 Subject: [PATCH] 12.13 --- .classpath | 2 +- lib/cn.com.origin.autocode_1.0.0.jar | Bin 22026441 -> 22030680 bytes .../dfl/plm/dfl003/Dfl003AIFDialog.java | 25 +- .../plm/dfl006/CreateChangeOrderDialog.java | 3 +- .../plm/dfl010/CreateProblemSpotDialog.java | 2 +- .../dfl/plm/dfl028/Dfl028AIFDialog.java | 1107 +++++++++-------- .../connor/dfl/plm/dfl042/Dfl042Dialog.java | 2 +- .../connor/dfl/plm/dfl044/Dfl044Dialog.java | 5 +- .../dfl/plm/dfl045/Dfl045Operation.java | 120 +- src/com/connor/dfl/plm/dfl046/test.java | 3 +- src/com/connor/dfl/plm/exportBOM/test.java | 68 +- 11 files changed, 721 insertions(+), 616 deletions(-) diff --git a/.classpath b/.classpath index 734d2ee..fea78a7 100644 --- a/.classpath +++ b/.classpath @@ -92,7 +92,7 @@ - + diff --git a/lib/cn.com.origin.autocode_1.0.0.jar b/lib/cn.com.origin.autocode_1.0.0.jar index 27d18de0a0f48e9d441b13c1b8fbc36c6c297142..8d922028728664e6836ecb699e9d8ea5cfc9196a 100644 GIT binary patch delta 75722 zcmZ^~1ymeC)2Pi7+}$C;0xa&q-5r9vOK|ta-JJlz-4lWbcM>$XL-3FQ!2{$D%lm!z zzW+Ht=RDOlJvG(UGSf3n?`UHW%Hm893c9Mo3pf-Q7$g{&%JisYbov(+=~0bu9Ee^3 zhp81rw9s^lhyt3P5m7-?0%8Vi;JgOR|MN$fYD!9yYDbI$wJ;!~&o`-50b!>$5FEpVH72ik1`#(Ei=iL5n{z?BDGtEz$nG zBh=!-4!PyQ4n;-{dL+|{5-HP(3V;TH4uH`j(}_8l0zHeVf)$CWg583tg7an+nj=qy z8!1nO*CJ1ZZwZDrJ)@#L=CVIB%tZ(a40)y+Jr{2NQlkn8J#teVAAkUW5P%4P7=Q$T z6o3qXyk%3I;)g%f@o+aq0!RT!1IV-tt;F$rO~SLeGVtAK0t{!iaRa zlWTFglP^_`lLlV zl`8|N0H^|}0jL9L0K9E+D%TuGhT01?YT~6rwYQR5yG2kKPf^>IL8p-~-?b;0NFj z5C9Me009VUiERxodLFTCDj|_jZ0Pz3`0Eqxe0LcI; z0I2|J0OL+kk^z9#ZZd@Vp-%a{22uh1t~WL!o)Km$M{z(;^j08Id&TjDaBC%{kFwixy{ zJ3#v}@>@^~Kr28SKs!K3%eSCT`{!XV=<=mS(4`Au5qg!BT(^8WR7+X!Zg{@6q$qnL zr6_v=`T+U?23n*j2WwrSFU4{!i*2yg^&4Db`+1mG9IZ-7&PGk|k|KL8g1mjG7)*8n#Fw*Yql ze*x|R9snKz{>7&J1SJAI3D_s`;z_`Px>J6_g9xAxjKpee1WnZd^3u#0U zAdsE}@{>S$5~xoC?Ma|N35+L!`6RHO1oo4_c@nr!0`E!SKM8^-LHHzyo&@oeAbAp` zPlD`8kUt5EC-L%0ym}IpPlD=6P(KNpCqerpUOx%CCqWPDwvc83?Wa8j-L1UB0FsA= zsyS;6pm%Uk6?vNh^ZVDW`0FggCB0ppR**~js#|)sf7wAt{=T(xtSOdYpDChUyGJs_Am4;P7h~0j_flxqD z1BV*y4N}0p$g@Fr^BDt(>A7TWHFR?aco-NnlzdR-|CZd%bHM-#golRN0{E>K&I5JHg@b|7%V!7bAd!CyGzLjGGcFjk`P_0?_+U`+ zv%_X0Fo=){>U)X}3?g`L#&T=1a-P#OX>X4fy40$afAWDE`rj3zW@ zwr){(FbEeqWp!%>fI%Y9uCgHD|LH%(5HKhc4eGTp0Sw~Cf~rd&z@UZaW^|~@v3CJl z*dF#jJ+lcEPLO{(_tY4uMPQKMv(M-fFv##fF_nWs{Lkv^YB1=_bNPEsV30Ec)V*#8 z7=-?;+V%oX1huVi8~}shpyQB<)f{&pC=&tUKjZLpMFoVMUoZ;>Vdmd20k4tW@S|YR z?Q_YXuV4`8bA$6v0abV|*$FV-e^zxDz@V6C+r1^AjA!*^<$u+SHDG)^_lV@q|N0f( z1B2?H14;l-)er&!?Y_uY0SsQ}`>m;fh`I%i!63?KZ^kEJkj`_J+W&w-DfrNesvt9h z*ioT%68k=LJO&I$Ce-{_=gh#p^`AOzsDLoL`|%h-8!w=CYsWLg-N2~Bz{ua?WBD(; zSKU`cjG$3CXm9Tgd1oL4BeWO*oSzIhpw7qGQ~{xMKaewma6wRK`4ndY6M#XlO!*l>Vb8e-f{dV&XEjlT5rpxq7Kkx|An?%0WmuSgW&!tl zCmIY4YrYsz3T=MS4)CnVKLsR0x0wthsOY&j5S17~h|lF>t1*IDo_nJc`O7vX(3Icd z^Zx-o_doSQ-c#Yx1 zdE&yrFan=aH2GtI2}*Z@IU~pt`c>0?<-iE)e7@&DI{`iL+|R+DK;+MHR{Al56rOXh zgBd}8p4F2mMv&2S^vdy!poHh#jZ{XE*0ZxW>5L%t=k|%u1ahC%y=+Dh(eua!`Ww^lJ?c25pQ1xb3tjIih}(cAd5sJxOdU;IA8nCFzbIS=i!!x$Br<1sW=_*-TW84@VF|`$U$>C&V!Zc z4t0~&Vc2;Uz0T$9ye@_kiY5gA?tLY_aa{|EK8N>Uiy+k-o#_z296{BqfSS0KZH^lE zK`Id$T4F4j06zwa&vft5!o?BWAOet1JL3Vycx(fOZE(LCFFl#TFuepTp?Jh}PZUcI z=bTtUt(^xk`^{_ymuqYG08#&9}pE>#w<*Hws}ZMBjIjy6(K z@}@Z9G>+_Xj~g?+crj={(eplDzISmJnCVpN|14X{68;Gz&!g>lYJS67HgX11!|)I3 z!rR(OMWgMO)w?Ut)zOl|5@~5bit54!RPi*y@1w-^56s^4rf{fRuU)1MPUF!E>cg_%7U1-qEikiN$#hvuw|4I2;YUfI-h z{i<*7nu{AnOqQgMu+`cQpul-H;eIah8PH54 z27Eb)kEKO=fWY|@+C@BmE-O9K?~hGevtdGE02w>b*o5toG*=EYOcm$hA^os>D~2qv zRR7K1PR)@ctxB$-wc$!6yhAT>iIx>%$FO@;$_%LvYlJgIZ1)ZP4!o9OP}Y7) z;Y@5{Ym9TLs3waqO;?O5>@CB>>oix_y*+)Za|w2XZHOJ7J3_6ZiDg|(2R0^Y#&nUr z5PpJA;DXlJ#t6hsX^uyr3g1T z%N#EA=+utTu4XT)u2YDMZ3Y{E7*a>T^9e-*$(S%JqnahUGV3*4Q2dG?4)it1Tjq?=|b&r zXRQWAhIyDtsJ^4q%uThpNYgejGm{Puo zm>D*chGTUP??6Y|L|)}jN5_jdcx3}POy6|ei$o>r3XiRFycKF|KEFP+NRVfGp)FEh zYTmSp^!YV^CX2)m`6e^I{n*+f$~rl8HGD1)NMtG&$&zM>d#Me4mrN_IKq{^q&c-li zs|PAW^`K#{O^qE=3yOg!%l_wDs|vX#y@eB;>Qjk{?_npOawgd=u8L?43_Ex%Xn%cY zUj63Ns!*UU6)qjfbcVayFHJOE@v*g(WQDp#9f3A&o$-t_&&S7+hOhFQ0kcatf>2zT z2ZU`w_MQyW%6`})nAEk)ev*?L6VoMtq)gji(#%i`)}VMA9VgLhS&iSQn3R@c@&_~X z^Z_o8%64TOLa>8Y8!wWvx(}&$cEZ&U;%MtnOnIAwZr;JCouWR87-r@s3AOL>U+xsN zPrFOtux`^Tv(DN!>1*!UgUcCF{45L!i6I=u`u8ydR-Nxn*{>5(T@x1C$OF%5g9KiD z?%Nf0kP>6v2PNnQLv|2x6;QkAqrg6hN4&x{OP_ws={Cc-i9c6~FIc`e272S(An zAGs7~4svjuEN!!D99CIfMDr2t4jWA1*VErbNyL>NDQxf7ayA7IMywTNd_H=p{D}ei zUAEm>Up-KN!K^i_^zcu0+c_gUde%j9+onvx^4^nru|ZA9e{%cpu-v8Bs6sI~lQER_ z%%r;3i87%0o2qhBwGBebn4ZdcRYz;@E=I*fRGE>`7xZK;fr>iLOOsQdY;NVqaP5lb zkiw{b(@KqB+p?(xr9>l+-*s}+gOj!(Z^nAr0IwAhZfK!1y{vH=B@M8*I)eep;wsOMCFzwPP0LxeZ1J@b8G z=6jSU-r#0EsT<4(W^*(8#KMoE_QMw*ig#7V0dx2ikC$@MXFtByX6^p9LPIB4g^>M8 z+1@y`i0wD2u@$L1z_XX<7;N;$y(>2{=EfAzP5D!ZRzRLil#4QnrGn-_%I;67H9@)^ zz0*wI+J9Y4^h;Te9lu}Yn0qAvd159FhdJr$HaKll&uXE@i;kWkZfC2JJVm>FaeuJ! zL+L)NB1-(prax2dFGAa+!#6y&!;pfDn_bEPv&E0dUCIO6-(-D>6g28fD;GG41GCGn zJU$McHapd7T`12izF8knyM3ipI~gW2gZy2eF3Dy{P`TjmX6YP}>~(QaKJ@_zZ<+*e zHk3%|9eV2Y{`Rf^9#ZvSv=|oCVQub7eVJ6=Y(oH({#1DP2z9f*>LZP%5 zOnptrYGn?-7>tKLtMaTS_#(ec2whmegw0)W%ug}ujPJq>tE_yt{bq=EX^Ge)c2k4y5$U4e6KQ?pfjc*mbgmruft-GpXkwj6#I&S=ZXS6UL0y%-g;S19UMy(i#s3;k$)}C!m&@HQM+`mVQ|8 zt`NSqOx2bi1;xH)*4^|IsTVJE1%1@^-v@-jmQ7qSBJ?^rnk8i|@AvxQDsT%W4nhHrR88E0Bm1;u5B>H%Sz7aNTYWO>Ln*~c?IGf!+ZScpv!cC{F>z(-akZQdv&NHCM*2;k zONG!ZQCJZBy@Rp5;pN%Y3dmB4)nfe>uHI>)Cq<9LhbLW9@%ut z2u7#0>{Yqrn?_dtY9joeA9Z`#zr8$iiStEwv{%m&)g&UEw_sA0;!X6M55~buS)_er z5$ICVtZbNnh+7?rX8zb65htvNao}4PeuhPDU<(r7V$Avg;!Hi&MX2-?g{RM*?I4T zEWy)E4Jg%a7qn+*`UXfOF#^qd9qJG}Qa_=MIdl>EJkPa-(2II(9n|Go4F+3qreR%b zQXQm1rX?k<1>JnmO9JEj$ILC|;LAnPa*Q_BtrmqzlPt{ws+^REhndn=o+9QjB{a=& zZn$O5!nWTQs_CoDuwMIw9IFNXUP!Ce{@O{uS=O#g-!bk+iCTBL?vRvrDiuIbudR{3 zo4%p0Jot_q79W;#p`<`fZ=%v7iYIWsDB)LqT-HE${8}O}4;FK?S5OA;{zFll+aftQ@$;Eh~8@w+~>ys{SjOFc;7Cwg(pu3r_Mxckc zYlQ1lJ65+@b#&%lCx#s3_9_ul^egqi}n@fmvU8T z%?aUzH9ISB7*2y@O5+MzA+XBG{$YuS+xBt-dzf$w%NX3Jl|9xsxgkVvrIzRGo5hBS zRJK^*l@s-@Nx}nZPcJLJ&M{u-2me0jT#!7_%|+cpj9}n9&cP(%*wR>npQv8B8i4cp z(-E-t2FoKfH%-=eUL_VUOMJ5bEci8fPyhAr7)QE864%&De$9ocKuGCFab=#Bh+Xfd z8s$UGHvzDjXPo_EUk|64nSDR2Y5!_xuU{o5kD>HBAt2{*XysA37CbC`zfLQE=ta6% zB6pM?vOXk#sI5FuV$CF{L|@2?{n>FzDym%}%Q?Z9HcRo}jx3@-ELe^}zD!qxEnQC@ zzAA#53-K<@P{_rVtq}s|d?TnPH_IOSNNkmmMW0NsVcHnrLHKGWD_#1sAq}3OTs2cV zpe{fCy}AuU!55bBj+sRRlOG>UessZ7>(4HJIJvecHDn4GVz{sje$X9N?iUJfTYBuR zxgb({6F;^pyNi4KI>DmUT=&qstM8BQVQH=%O1)NBA=;PpzGys%u;NbYJ)f~fDd+7e zZ+WjkX8Gv@-vd`L_badsG zjL4tm?p831M&Dl;8w8@UsPE+Xq2oZS6b=j3Is`oWj}40Wgc_oJCR ztX(PT&hf}blU3f37u9?5_LNR$vEH2eef>2F^=6DWc3LXtrZc*O`Z{#R{hsHa?RlLn z{ciI>)m5DS#HRRipz1|Ovzf$J(cBK%Q}48gP)6LxpR2%O8o*qn36X5p&CyS)Kq8?PMaraHf`b(U z;U@LG4zoZGS$&;4VKwseD?evWP)Nw;LxeUS-tTR6{4~o!FeHdo>kQNX3h~AyefMz5 z!i$=8Ku=b)Sp^bsmpi+`7m#iIuj?K)2q_SwFwQj3^j$>i6xl*tPIFng|FH92iPgC2 zY$h@@3&i2@C@{!lWQ)LV1<8rqV?0`Wfw?*%Om(86$7Sa|7Zc~9+&9uIZax}^joJ26 zTJ#O~pB@3eGnp*?l8~N@s^by2Cdq|w7WSWQa~@xy)pFD7>o4}J)@{m}v}$e=D59Ce zzD5mW3pW*ySI;8hc34W5zmVrGyVgr7q&gyMpMw;4lpQ4o?b;=yF_$7}k{3!T6Z8Dt zo|#l<_)BE>uIQiCweMUxZMa&rfOu=3sZw+y(rUCWngK7`q0ihnQNlXRgu=%uvLX9b za$pXcD_z8HMbtz~mCn$5S-8#Q-~jsb$tAzX;4Ps}owaw_+wmPmm4jxA%sL*6F;kUK zimVW}0^hMH4lG*5r%9$FC-FTN!PI;k_7xmKQHCl1+#$lOrgzc8;S_EYp<}f!(ONy` z;rr4Rm)aFCC4ro_L0E+bu1Vz=;QoqXt1~#^EXLV12Q8ynr^R>*$t~KnGHf()g@ha(Vl9SDKthfR ze|oMb9gVh)W+-Qh@|wXX9C$BkxSrhqg_-_JA z7YxDX=CVe0Q|0g{RIw>jx#Fa>Q+T0_DufQjU4ByGR|*_*^>3(y6NhX3O2tL+Z|u?B#_@c$He=a&J$v@G zVT}pTmqgq5PYsbaIKGbjHGuRa$zAf`-xvv1l)q*`=w4Zf@694*;~pdp=t7v(y{l@S z@M4k3E*b9sYJ=^>^@h(`obGPqSa9{E#6ZH4O|$&GDxm4DZsE;5F!?~d2Q)e^5Oalt ziCg2vnwFXn^_kZGlthB>w6a9=HSCwUE_+4Qi60_+kn<(gUtHqj)ET-b2eOFeV!D^j z{Fa;n8OPevpwemtsK|tWEHkiVPAgTd6J)Etk_qF?%I-C!R>x@NjrSpD8oPE&$&fCI zx{Bd? wtQ9?_!q-p^vVGg}AfV@*)9-3K99$F`R<(85ywvD&<LhV^^#&|Cd?|SEnNWQ~VK?4`I&`Gx!#vkCF zjB|&0_oM%^aq5W7orS&9w)L$FX?gXPca!B2>sQ&8Q5UvSC%S__1h>eavpH#Xu$awT z;LZn8F@?DcKGKISLDetLX;5xGeD?c?Euotbr(yUmbi&GSr;%r*8^MhJbbCQY~s_blHAHiu$zgwpBcuGlBh zg)Uc(%}>fYFdPc9$OSdN(VWM;Nv=Ah>P=O9B&<`s#T}M-Q!dX!j(0?BQNdh3Ig;<3 zU4qgFPJS?7+I#um6Ut2)g9s}I49vIJ`Mtn@56SbBeyV`z^Vzx?K}Zl(@3#vskNfNC z6PA42lyPW72yrk9;^*f)uZ+Z_bi8TtXcU5aZ|tr=>gk-YbZEaa?P2Y4p-{?w^SM!f zSa~(6#O0k?C)RAM@~qi{a?Wd|HU9Y7H;E}j^#hZ5=Cgd)zvQbC8%{$09?nkix$S+; z&gQhXnrNF0xcQ+0vo{5TfZ`jNurA@v^15`W$WUYgtTM?_2SPGf?M~2Ew8~j6q-w)# z1zM%wSu^+h4%MUOBH?N0BmCebnQ<1jkNRJJM0;<2 z*>c7b@#de&AA&zutZ0k01{T!yNsr@(i@28Q=MKQZ3b`m z*E1J=D)~BLzp331f^tNowPhY=dU$E=f`GmYL36!&?;AbWn!vWabO~3?`Ku>ea6#zh zvR`B&u%&>+C$sszfTHn0T!jBOAvuD#MaVDr(a4Us(MgZJBKp~lHK@ow=Va$B=`v3# zwsO5I`W9M^qYrvuftic?iwvn?KG-g@dnGx` zEp0L=cEFRv3JO{w>C1+tt5emfCRe!TIN)HrTeW>-5_jtg6bKtdJ6(F|dH#Ve@Zn%T z&_i%{(31up=K<34oid|gdT{7tvsZTVk0559*{*aqV~^ViQ>MSl(T>)reWQAu%Y7)| z<_;Q1t+I1AUc^QjGge2_1Z+l>AwMOWxuU$Hd$Q+07*(VY|Tg`AZOlB`zG8~g7 zwc_TFe4McFQzC2vKGomr577oNw%e~TXbVTHp!&zKovlLBaPoU!Vt2}oJEGI|JNoE0 zixK~ItI>Sb>g@KWjSmOa{?GQGR+&xIFk8Mnn`qYU#HD;6b_f&R9=MsI(5zz3ErYsI zY*Sc#Nz~_sp*kId!cJ@73KdLepsUD|^)!-qzK z6$#gwH(DH!R+EXWR_*yCU)~;JrZY=_S_PxJci&Wj>6|Di>~b;)PBQ>aJRZyne1 zejh60(a&YOG`QpAI{bOIkFzmQtUKls;J-;ls8%Ja#7}8#s;R=RhW7S{_Sd&dW7Gdw zU350tS;$%7M53LxTzFE~^a*gw_Vq?Zf{S4pn%}WpKyZdn9Wa(UDKDp6Qwt(cENiQ> z_*l-g!FZ$Y#2=S_MY}Qijzvomw0zjpqRDMSzefkzjX!E_|8}N&H{NQapL(6ackZ#Y z6;?Qd*YQd`yGjRn9epO264?1m zQvs?ojZVo{j$HTO5RWyoTs^ZTi(0Fa@$I-n)^WLsUQbeR1Ea&E#P+^-n@Y}-fxcsx zjcpROQwR7A5^aonALBg8hfMp(nF@DYbQDc{FbHuv)erthm9}Ss5UqV$rT?$xG<&@2 zUnaV4>28_`J{^mo@xD4MoiCm28JXqJ4Y_*?CoAF{#*a5LuBjuk$rH#<3Z0=|e;v6D z{{HNiWuPSQz(>Tt`DpItFz_Q_xsN-ly}OjN@8w(R8z=D-c$4y?yT3T)a|$0eKczLK zkjpS$H z4Ul~|q%?O8et#rptd!)FFzrKmt+@M=OL@k-9TN9I{R2fQ%fRyrri{J{-cY$>^iQ(a z5fiIYL9{{b49%r`%5`z$%&9yWpDWz?w(UnIS9;kQ?JOFCpF@eiH1no`$>jA^E~Tfz zk1EP$TC=Ou+O-xiS@ca_S!P+Wtb=HH3Gv%exJu1iKJ$YbRZPN%qob zHi$x5!dH7ax2S4Q;?3~}2R@2bC7a1zoTT5JyI;7BXSl%{@oL#s0*=z53ml&enLZG! z?V!>!tM3&14eQ_1RCQ#M7&6&LyDo1DE@LG$hlhGb_OYfm3GRH2>z+r6mn_@%#_@JLRq>`I+JGpO;isCOjc312fze6`$^4TQBWd=Vm28%ZHXo>-FDe zk~?U|CEDeursvO%-eL1&T%Do5`cB5m-6o!1CF=2|M9c0t_Mh95o7u~6p?XeKSKHir zthS-;BvJ0+W>eChp>qq&HYP8X!_xiIrs7k0W|ac^Cbq^e;t6ZT-!-8_ zzW%!;tAj<^%H{U>?UpfLqx%Ij=iy`k7ZOYM=QQB!Z8JSRgAJysp7QIX>f_d|?h{yx z4FB$V-yCzp=%B&dpg9&|Nte$YpbjZRE-X`A842`^HEdM*ETxX8o^9qpMaIcqoF zm%F>Uc9ZgE91AY|FeKda0iC-UN617~T|4szHuuBVM=``Ir;}qO4$^X9tW-mh`x z{LUL8y7aT{bJ`(BS26dK*hR+EY$sVw-1>DOQd0gf1^=&a{;?%AYx6456LuCd%dGW- zFp}dPr*Q4&q|TZ#+lE|vg6`0z?p0(Q-z}GsKm;$sI~S~ck7OtEUO$FhSAmzRF%{kL z38^DQ3L^6T2=A-%aoak}N=9yrk-g~2Q&M@VdB^6f5)}1nWZ~=k6lr<#3iS^n365~gk-{&NOdP7e*SFNTo8-eYi?4Xz8_a2yH} z`-{OMoJ`JKnkrS6I_dDN_;51}t(Z2QZw+E!C33P7J@{^EQqA#y-E^w1e zGQ*YXV_1A+w>pXj6ETE)&Qwxh{!pn5rUoBPD{to&6lfAZ;ijf z-U@!nTMF9_CzfXkR|*jjy1|a+oNb{Kp)Y7Gp}yRg3Tqul!`y7n!xScv;SWqxbMmx=Af0<@A7nWVDP0@4$~O)YG|I z6+%$jq~S8X5fs^88Ois18-B&vR%-5V>qzB$8p%OuB9k<&Wb9_Gpi0CHB!3O zjg9lKRq45tu1!q!!~Z64%GcLutu3pz5Tryuo^2Qn|M%j*zc~-kiw&Z0nQmZ&gUJ5{nIyJ)_90|s53WZ3ZWG=&f;>Fjq6U%Mf5&G3xzGRY8$EY8 znS9>)O!g|8WYwS!Kf8RScx*^Vk^s&Q24pGj+;B9VxVgFIIEr|FtPb@?MExnml=cgQV!Wd*a znm)uoV)w(S+#9-EJeAbOOqnz*GfC1{0jM*cVd{u44qtz%K4Dt%mkLASEMu_d3R$gi zEg>dhRn+~loqgfK_>bFvQ(KM%!@Vx9G=Kud%L>6`)qF88+&08Rr0D&|06VrkhteGR zU@bmDHPHQveco=Hc(@ ztiQm9!d`!TE$4Kmer|(&Pw(^Vp_>Ph5o1sr|1PJPa@HE!8r3QlYtf$-%J$F>3v=&kFVmjieR>ux&CFSjCnCem`dJ$ZGE7!0P0hKLxBmU_jR&=pY>b84GX6 z)p5n}gp_b1h^2d@Z17aMj^L)SH?SnJ)rzC_aCBQ6-#0QQD3`I%Qr|J$QhQgK#3G-Fh}yY#?DLMjveY!omXQ>KlizeWajqJHS^beB z`MbowvXO>Hs<*mh1wUES2VV?s@_cgjk!Um14I5*|PRp9L5?;7~&+XaMjA#2p&}`Zf zjMo2F;D^J{9+=QkAr(ors{`Z+*PP58#=3g(B7rbN1Wyi&$M^`#pq4xariHA#jsy87%7h`>Mw7>{m|7@Al&KwO9DFVY_ zQ_S!ymSVRC{XNU|++ata#w|-LS_4}GH3A0bMco%HQW=*xJ;~MjKS6eOv7abtyk`55 z6^Y)op%ff`W=96cvC!rOp#@C5{FN81w)N{qrjd*h)EYjhIQ%TY{=1GoFuCD+d(mRJIOhB?>csx@b=vZrw(hQhdX>IlFMbebD_W{MO=Sva$<=O7QS0~$3TJ<%$;Yyz+H1RfUL0#Qghx2=X6BmiHUZbK+mU+DCuTZ5(IyF>Eh|%IcmUHbqtpOeCcj2on#Z zO;AN6k69Az%U1Cn+*!blWQje(O$@gi^hlAUUKrr1+7H>JU;GyM@5d|+pD{&#;5T4P zG(0c+`g%_{;shhe7Z&+xo1~2Fg=JBG46udQ3DSqy?Xgz6TKmp=#bHx~J@Aw|Ur7=d z_W|@sBNDZrL2MSqI{JRqZ$e1uT5!_Gw)^4c9>0f*;#ieP%YL%yq5TlC5Bq~HH}%F9 z~vfTrqk|n|SVS zWg_f<67V+LaYZuhJE(#KZ@!fQYpG1B$<*@3pT!x&xpe*HIuxvJObPjtIzeiqcwVqBs+Jb#jJK0%M?eUy7YM+cp=)nP5SGN_p*F! zJMHim`M(Em!t~dJAYglbBFcX@nlH~Xf`}pNY~fttW#O)$RFh}q+3=b^%WGQXm|_Qnw6u@{zPX}cG2nx_c_i|`YZ6C)gqM^NfkC0wB#8G zlV82m1@{a|(SuTZ2HQ>-KRgD4O3QpTJnnmJOvmG&1lS6}sfB%tgP~L@Q>nJtir2bg z(~M}06_p$p*VNOzucBSsrUF^8A(RfSFb+hPeb|yrp zDj1Jzy%FNLVioq*&a(Q0CRwH8!3yf1H1YbGEBU}>;_2TXz-7A?9QfC!?W9uPqTz_B zL^1a>Qx^@6Q3L`(xmMPa7#DFM|5|C{ z4zpj6s`jujnP%x}bofiHjcHad)YP&_(^lcZ5fMCegYXp^6^BgzUL=ga`$8)A9b7>? zyV%BwKi(K3HXUDaut8u>f0npVk0vL`s9DozcaF>Lao*1#(@1cMLP7G*GpJ51F~&nj zg`16&MmObCMNaRD#ROHc_%Y=mB$8Nu_&VrAR7{%WeN;@m4UPTxR^sITc{N@7b_A}` zB3_lC4>KLv4QZGe3e(JBiWh5${{kL-PUF+ z*a`~r9dDVFt@wVu{W*y0P6$cW12g~3L)I%^iYGiv2?^jbMoFaBozEoBST|2y#8o6& z+Z_t*tlI?Extj;y-%(T99=_f^2qIITO>O(}E_uy?fmu8?YI>(5vr?=m?_%n+$y*Kz zePvd)zZ(vu#|b6nOGeFhqxU0jE$_46N^%{iWD7ZFX(}+nHH=2leC2`+Hf!n_TD|Q> zj_^p$P5~>AQsk6M6~`kp=dCN}w@81A^w)utL? z9?P#Uo4LmiPiT}*C3IvVO<>z)!!ShK(!K&J>&ypu#6sAe^+Cy>0Q!VK&Um%; zU{bL)shV2~bb&GH#w`vWpO@dLBwh7CEjrEyE6|S?amSLo?zgQfA39tZ6n*j*j#aMQ zbIFsCTEZe&pGiGecg&=|LyoDA8QEu(yP+X*5=0F^ayy?%IU#O`Fi66BNFXV=-~Lhi zNg3D1CT4CIkGaC`p@^&eR`4kR2Bym6CxlQ&;|5BvDTc#Gs83GWSW+*z#W zE{Vk)@uar0y3?johbLr{xu#6dxYxfkJ~ZqWJa>zwhOt_(Pu{8E7b$0pkoy7sC;t`4 z#>QfiNp~nl!eYED-ms0w<{Ra0F5o8t%=+Ph|6u>~a7O#juPm(d7^+nAU6vR@Y7l)D z;0^uJO256SPL&ZB3^q&70FReSq06%2r@n?)l)u|taTiGIJ;7KaXL%%m1Wmp!LXN)q zmB{fy_dStBC(WA0RW6_3gjbi_(r=N82@sR%Qp8}x9(-MSdmW0U3<8VD_c0BJEre|y zyJ-&rDlE!{Mh68lZMpf8M|D?Y56C$_sa(WQVUg{+$KQUYKt>agr5;bBCyLx^M;n+oZK3TWUq6SJsH+qF#p^@=?TfYI`*WiCzh;oMdR3q7 z;#N0-ZAs3rct??lAy7aq=m+T&|Gt4Ps8$L zF4AoeR208FskAi=Qx12v45V6$E*?#{ zK1r*rqtU`jq1@T3+vLFfr(66w!+Eer1leK2G{X_Uw5)ny+!Yp$51p)S!v2tazVjc> zUtc2g?t?70eQdY!W)WDichHGNju~C&`G#to*nj-q3-X|J zL*7!sgwb!kwAllK1ZvT?jad{zBB1|%5#Z#h-&Fv9aTWmgpBDl9)u+w3&!aBF@M+Xl zLr0xa+O8h=D-iho|IeU{#(acvom<+kc-!BrxzVh6(mK1_IIi z{nQ`L1&!pNBU3xWdbd@~ovOL=%;BQGnKj>Cb zy%*0s^&|ThFx1gz!AIVGm_O8*I&a?kZA*snU%jVF`TP5rV;WhtgbZay{mGO)D< zYo-dV)X031{sK|co?~$+1EF7&5F>)4fo+>Ao+(t54TIW)I3{n$Q9;tL6CWwU!0=Yk z=3JKKi*=Kd58816`xr#KqVucVOq-BP8L<`0W%rfWIQ`oZtRV(h$3RmT+qUzIr9WJb z=6${75tWePj@DSevM?IUx<|hWbn?-LPbs}LWn_Xk=7=nhZQfCWq164&Z&uc zjBAL66Aiu=i25wct5aNMV0f_n6Twe;7i;x>Y8BG*EzwtLlIuIfiJBk}(_kbV<>b zNDlGL7>fnh<0rTy0x!F$kEDd{F$n%}95)Dp6H$ke@4bTm_lXOGWShRupZ`k>YyrSP zqK_VKq6&f3pEmQR#tg^K!Nvff|ZAm}qj9?Zxa!(?KaCMKC3DpKfvt84I3or$T@sJDCum@4QM= zA>}54i?r*Vlgs8YbFnhf(F}~E5&@K7q{IIm%r0gy6`4LAcG>Yx?udl{t#6f3cd z2GSl?ev6iR;xl-Kt@F351aiV*U1Ks95soWsA$`*1s@S^faUqme;NBi*L4(c4?wi!xd=tXbYYy*-f>o`fP z%-~ekjPq~`Ifh?`tZKsKE~E`;j<=`HQ-sJz<|h@Gw$=ogIN5kvxK~wTKP;E-0t&x& zpy7B$yQ_$YWibGZbJDv~^!Td3-(1Y%Hau2*w zeJn5#E{K1 zFk|}yjk3Wg>5l-4d-_W{a9+PC(bX+dcp-#`4EwsMGwIlbe8#hh+#|-P{PY!w?;aZ2 zj%3X{NcIAmds*oIjv6pc%4Qay$T&W6*-0GRb5D4wvK43%9s}l&LV4Xg_-PhQu`y$SsdX3&!wDx;oLN zqQ&>~%IOl|CXJi!8@fZ2P1)D>K`m|8etqw*W$}Q5FKvlp6$`wNk=e(1XYXr@Twvko z@$kbuzK`ycC!UwQua7grc%aMSHJBy~40^;Ks!Qo@e1Y~(Cb^BO@}8?8M6 z)Et!XpM;FFQn!Fdzci!njWz~w8L^iI`%c+(miQ*%tV}$#RJ|0@uO-^v%|P zCvmFU4pW>H53z+3J{NZii*NlTFD5YL%aRpa4qd=-u-f{U`Ks9pLdgka#K!1sM(fw5y_Bt(O&nZegEGF;b_+VR4Mmn#_5N+b^>C*$uZ= zTq|AnXT$t8T<K?_%xJp=u;O zxKX}C=!$gFnvpWvN|`3f{K-~;lA5f#Qg4KGJw{)Qk6aoMMiB>{b8aGb&5!y@VurqA z1tE=+f1Dgz9lMn=Lq7h%sc6xXdQx`tu8S54^A{Wu>X|}%5}UsnCslw1u%ZZ1?6~jq zp@*9qBmbhr0}qDlP8$HfbCjG8yFM>4(Hw#LYf-@<8QWt|gOc8$gl>W|T0UG8!&JLZ z#b2=hUb@f1Hbx7pI(eKCh3M21Lhr>GCr_1|El=gH(spUHpFXhoHc>-xpGr!>k zS67{}yKOp;CBh3&nVd#NGCtZsNw$)c3c{J2IE4!n++vymqifiZO_~tCqvVziZZD&6 z%VNmMqt+NM?$IeE0LR4nHk>xr&s#;T&$}W-M@%^?kFZnR`t+V3sP*gq0;ie89}MSaB)f!C5+$i!kYfJ10enL~wBfrEb^=ErU< z@1UW=bv-@tHr1VxJ(9R-FFYFKPXu}15H14LmqdDznsv6XRA6;vd*r|M6_lp7VWOG* zh)V)e6G8c*gL8#}`C~ZR*{7YE27<7C5gh)|Ja1-`=O9U+FbKER^Ka~UM{78{e1%f@^5NeZRo;GLP&5oTx~@8uH~Zl|PTdktVSG7mhnR8- zT=P8q_y5wpD=xvr|H(<7A%OA|{`s`R`NXHRz~}%loC5e=hq5p$nZ!PH z-z&I4<&CF?m_s%7yaLvqiD`kV1P+e>&D{&etbL^^- z?*fW7ti`lnU}1a=cyQ*4gALKdhgiyDv`o6`(sZpj7sB=Kq}Y`b{D^BEX=&HYOB}pm zGJamF8D+Q1U8PN&5km+F%+rs-C;Jkg!%Tp2KZ9YXJ&!P-Fa8br^Y&89u{<#*kL*EZ z^)2gFVS=&yvd7NEMD612s9;jKlXeMf#}UxND>YK(yai#;m8W&f>ufcWT3@-qt zm@Ertpro+TI40$f36(u=J^ioK-fD4(NzSufjj+a_WEUqGf>6W2;xhPT-glU`RFcmf z$4y{0@o$?ZhS}Ztx(5zOILPt-lP`sUF~`}F{0wu>eVc(;%~he)dt+LwNOe1vFkEda z>$Lq?{K+$&sDRC1(J&008Aj_r6N!K~o?gq%?XHYgJKpVOu!|_g25iIB(ZU?Zsf6N>_$f9U6gf9q+*33aFWWj{<@$VEI2oX3WJp)RUDYx76&!}Oqz@yj^9>6oPj82w5jVn(gY+AK=Q}L2<8OD3Lm1! z%#)dvw=6#t{xR-$PoGqzvC&)|qLOMwrys3H1xXYgQ&LFm(+hcJm0a z*D~H8Al!{-QD^^Wds8wjt*ody@Tsx?)AgU=yIk5Fbb)+~uD>lW#hrE`3#%!t4#mPZ z;h&@u&KoZ-6vt@TdwcmeN?r0l89~{jKFtkcp9EtmHpSHod`sd|d6WxpdI<=u7}3YW z&;Z1WXY~09i=0qjm>``dvuFutTSQj;sHe{yfy82+s3Ag|=<~HRCF)KZd{@A&V_x7; zy3Pp_g%NO*2vHq$30AF;Ub@IYeQS7!L>pb_{b6WSPeF<=lm~@zI~9B5aMbt9mIeC( zH!c=w;iR|L#r|nNMZ_Du@*n23E9yRf{-u0}27 z2!D*d=N30kd9(J7PavgprOl$M-d1_yH++RxJ&Ijpdv$6k1PX|D3dwegDFlpV`~ib) z{~CQYrsuz?t|1KRjvHb|$grz?QQME7^ti!Q+-4Q|^w1J7Qw(AXSYb0@VYWw~c{^nm z=;*L}yF}@lH2lTn{aIn2w3b1naL5?8HDQ$n5S_a)4rjd+-n|l7K{CG~hdI#cw%NH} z=GnAjoCy()zW)DN59wbJ<{RuCb@mT*R09nJq?^BY@*laYYGiC{CSqo5t7_)yD&%Zt zq-n>4KOa|9TYHh2H~$wkEHroWFd=(v zP40CDGe#2&aq|Xt=OsMPVn)(xk!#72(hyRwweGJp6Z?Ud#YR?i^f>OY;B2wHdla1) zwY!1&UFmR;8R;>0y9;0El)zl0^~?tPHC8%+!|M34*;P8=kb8@C=X*r)#7wrmINiw7 zm&a;kVyVC?^Doj+Loc63qE;BrNHwHLG6Xyic#!2n1FTV4K^>ZVe0EyS^a)1EL9t-g zfqN9nFDk#T^h|adzOd*m?}cC+ajW+7QVq56kX)T6dMhtD%BQ!&XZHg#ic5T?!x(ut+TdaG1ID}JD#r|w>3zT;Z5DHknN4JZymQE=6jw8OBZ zo(zxsUu{#%)v@-?F`4&pHoUsi_>DNaGg#6231o7~YJ<8$*gvL;e{l+>;v5kaVfX=$Z48p2uGR<-74GSxaa>vfz)yxy z>WabWm{T0~Z6F4(l0gwN{sHc?F!lP7p&F30#uN=pE?72$%jVnaUCMmIHhmzrDR1gN zo2XH8Fg}u`d~rOB&F-?O98IeqpMDE7Hg!a?O|#;N4WY(OI^!CaVDT7$MmA<_ru>N` zi={6St~~Yi3>;ZsO`u^@Q)OiZA?u-S9+{RxoK5-38pdN@ zevig}x(+@_qE_dIYSx9|baXdef}QhhX-FAEEEKT+MW$ETYuw(LE)XrakVif~_!{<19Y7UziifO?*vpc?#}g!v49{>kaF zb7DofHuoL?3jJLilDdq!v&Ol~jPF`JG}2BdZyr7$9aQU zm_XheXMGat@9UGGzx(?l^A61aI3+*4^7Fr>sR9pKO?NdAP?rZF8{c(o83KQ5si7{Ibd zZu2_kW9V-sY>i7DC7?Ny2*yVr(83Xj1*$W27{=K1WP{m78i!EEa%KP6!wS_D z*LY7-8H%vMl?=bQo%W!lzf1egV(OwUG}fd_f+fRJ++iqzrD0yssP1H1}Cj(LVeyKRVaIoRcN za(OHM;MCEt(@ah7fW-5C_F{-gkbXs$HdL@Z6*np><{02;Gl`yCfQ)~`qFoT@yh;)% zzOxIJE$Tp!b4&zcRlMPcoJfXJetXv-W(-J9LpzB@CL`V>xU)2@v?|N^z;AZ;6gat* z&5QcU3C4I)V!Ro~EY5DKzA}p47P>>(cy-BlXki2oBBi7yqfT&phz*Yf;5|`aU<0vb z4Xu40UHJT{LizqC07Bu29$BLi%x@(|Aigs6`HmuLE^;nBVA-fXl0)Ip)!I98Vy+hZ z&6d)?M}Knyesyq`li@r=VjcvDec?L|Sz0Rg4wrc7s5tDO^?yIQ2 z1^?}r#jHE3j|sI4VTPr_(?9N^;t+wRFDjum`vzz8LO;r1KB#RQMtuPd4ZlIuoQleH=b228WO8g^VT2kZY zBr%^EiOd?rsh}n@B4#RODdw^;NI1|h3LuIy%_m6r^QA(&^>Vr-C`Y1xkig?-!N>Yw za~Q_<_1m6H1&s7gPD0cEUil_U!b1||Y}pRKC1r}qQAIXrXkuGVa!7kqR|m7E^@Axt z&?(7*p8iW%6>A8u=JmxLl!6$m20sA91wY{ZY>?W{fka;i55!-|{x`}D z9Kp-jNpY~^5aMWhm1|5=8bSOw6NO3c5DFd3|6bp}<4-q|ymEGV{gnC03%6lpi(w#aWlJ*>4{KONql|MOP8IY!|)QplX+nNFGu+($J>As2SW(rc` zCwVz8H$X#~PN{h$DaTNv3yy9=JPvD~XNHnc(h`&zxf-0v>YA`p+4sB`*&I-Ih z{V+*XW-AW=oFQcmJie%gMCxVhji-|hr&sfOdD_+}^`HS7-o3vQJyf`f6EVh+#BA=h z4#2HR8IY1{a>xYgbPGZ|FbyQYqMyH0WC6oVeAvFNQeIKu(?;ox5i6pDY=i#VF&PNr z>|mWtAAB9rY9c|as6`+-5-NHGkED>m=VtB-K^^o_T116Vw0+#wBrw2@B?)}AZog53 z$w|~c39V3kQ_g`spi-0?swD}Hp}PxB2Yk@(x@nH#m4Rcrvk1MlwWFAWzNID!;RoDm zh&o5XNZ*@GG?tdl;2E$YGbdHS+8wpn{g}OVihm01iZ+WY_A#5Z{9U5M+*qLukYq6HeQc=;10Mw70 z!ix;S7CU^QO4up+M>7q{2AJv->61Mw4%NW;fZ=qF=a&L&UNa8)tJ?gMiLnfG<-b8z zhQ}e1x!TvdCXvZEVnKLX;Me0aGi}MC!K{=9#^rEEb>Ct@Sy)%IM<(3$ir52!_CYW= zJ<&260tje?1ThwL_Z~Y=k7-Jl0m6_Hy22Mb#Dz0qt}};bYHUl@z(W!f%!1TrbyT(! z8|7#P#7mE2(b^R|znk7Y$^vZ0jp&6Z4uV`s|0ubJRqD=!ArQ)DV^rNj9D5q62YXN| zM>E`k&cySiq}euSv4}@a)h1l$t}xGjod7)qt!>P}g8b&GDAz{m$Kj`z1VEfcvN%Ui zQ??r9O-6&4^>=rx1~%lOlA-I+k}u*RCQF#nSx(G4Cil@v;!w1c*wfwON;1pTx*8^} zfk};#xszekM!A`B%08wM@ogJNo7j*-Rj#i9y<52P4rYalfxYqwjV1?HEn`Jo){qe! zPI<~di0H&!G~mmmy@CKs0_;%bzp2K%4-qw=A%h+%H?ZCn6M#(%r1;B1c0bC4;3&AT zHYvxE(5+ESD`4=E$TUKGkxVmSzO)kdXdX3$4g z4&c;8TpVw4pN0uHLJ@YwWYG7dZ_tvCTusy1YW-5p$1e&6GQezD0R55#S*8h5-@PDN zGA@eD5JmzaioGdQ-$t;^7)G&I5-{q)bn4edxdiH07IcF}uuK@n7D!nsPII5oDsQa?d~N+@MvX*m{L18-Os9kCZ=Q-n;LB=A?~ zCL&m-i;dSsgM{WgfEjTw9GWR{FWq1|o)E^K40i7!jB*&`$?jBTP);zTzArX;ga&#N zrDP{eE`?+(Oe|`Nc<3w=S&i@kc%@pQun>b{VPuf5WEZY0%ku9hU(-curbnFm-xW>= z49W7rx8F|}S@vG@B_sVR&wPzf5A1z8Og6`XS2o#g{DJ-E0GOsU-KavXpc>K(W>uPT z^m#Q`g!_(6=ER*$Tjmk1pzWH3OvZ8bB$N5(z^Pvf6mNSC9_Y?q*$f5IhNep_33biy za|3kxLT!okSXD@e^62-_&h0St7^dAYZ{VHjw#?KGF25&nBZzp)R)Top$d{1#)(Y6^ zbp)%TgTknp0EPrrv0d+$aRMo?$qa{R*7WkfzNnhDFe}0CaKHBw{Jr91% zUDR3i>_0aSL7pIBZ|&#HY0RrZ=$)xIkTVI*6`vebA&P?wa?gxg(~<#&E*Z?j!g~Xc zqeWsa45G7hb@)Tnp2XLoxWfO2G6YU{42kM6V@Hxk1w1q%tnD}4F(8)^a%~i(E3+I! ztvCm7-{1QQgqUqSTfu zCPXSDG+n@R7^MwKzH5037CxN98@URtt>97E0Kj|>4%i^A29VgfFBS$XFnLHf&Jrrg zq*|9YP|@zOY#FIS_`E?2nI~jI_)Qu)*7hr-aK?D!9am}na6$N`B_W5W=O&qHg?E;D zX4t(15m_W@2{sR?S7$@`WhSX0!eTB<9BqcG)*o7idA{u(B8WL#OrdPuvL}4$l*4&y z00we0Sg9}Tb0~s2{Lnj)KYOT8bxheBCJpV}0(DCxu^xX37U2iv{A=nrBuazq1E$bVl$ByD^_|8Vm@n2xY5|}a z0BH~2ScSPIYu8^e&MP07XVXTSas&P)1j8DDXRQeFMJ+_zW`&;pEtw4`zD4NL-vct6VG_a+1Sg9sYeBHW zdyYEYc;yi&9V9m>oA76|8LI*+90b_FjMaL&Ku)lNPAmbQ3|wCebD*oqUb>k!K#7!c zy%*ojp9w}W@j>KTbzreUV~O|$5R%IN*U;?Ybm)c;Y^wjJvhl_xN6EIKm-m8`JS~8c}UmHMKsH{Z^Ztwou#vwSF^_H zO5lG+LTg44Xz{bgD@xJ3M_M&4kae;UB!PxLz)rOZi1)8{tKc$9i zO*4X%iCIAQh51Pp>tNZ5;}CV2mk?x92sQANh0(I^sCCon?V5zbQDA=GG|udncb6Ok z_7*zSTsZ0WC|3wU+VdOIu7h%7bjJun97#5|?wH+Uh8`*`j|l@%ZMlCgPHFG9;!+M> zBh=Kxa}3L(3TJWB0#rPiwyM zH{4qSai?HC`DV}I+EAB2h9(#_`GO0VhX^x|s_#P+O~!gBppE%48YCKiXV8%|WDew6 zri+m`2bwoSJfp#QD40AU*54PTf}~i0`ygOT!d!0wFy2W=lH~Ob8L=U7+6XX}GL?Jry29Ep+C^!5WWOkst6OSsS!&BOUd3Jclhl#w- zP~>rF23!*pdvMx4gZiu(3P_ujJ}(*76QJc7)_W&_MZvrcIAHP{Ir^6f|1f2<)`2EE zE9yPOD}svrK8Li2v3J4^gO_C~pnb1aXRlVHN`5-eyvgZV25 zn19d|_{^g5%+f8X1UaVd!|j2D>ugi8M|Wh)E+6t86S62RCZ1+B`aUjjN04>i6vr}= z^~XCTv~@4scFIjAkbuM34qIB0J{cJk%Q(Z*jv?wWO3vgr@5wk91%wh>;{ zzuB3fL1_9#oIZ3}WZ=N?Mb?YAiv2g%ow0mMcMGJS6*iUUj%i;3UP1YD8ax!d zi=5b))F>N1>xVr4fxDPR9Ym9AC3wwH$0P%c;+yADWg`BHQ$5v+g6v#W(dOz0OX(c; zJ_Q04J+ik`jl3#pko!2|b(o(p)3M@u49@G`pERFoDDX27^sKtOu|Vsw^Tgz( z%~4U5M&EKlKZ`RrngCkB^g80BPqG2zicObMw~63@15gqT4MQ%I)gWE)j%P`YU&u^5 zkxd^s6HN}Y&u0rXMBkNUU|h>vtuO7Y?-mvHNBpes*Ga~wJW=f6r*i-2wL0YYellj! zSuJ4;f|lPRpu=kOME(tH`I(d^HH5@F;h4vrA`LQh~L~ zv_24LlJJNJ?pxDh(y?edNMP2Zst}1#Zeka~ZSS?k`E2a?$+vyLNY#uoU*?w2x1Qxr z@o@_!G^R$h8bx!95)6Q62$e%l!ak_X#oaE69|tUbRKn=YdFEr z^EFUi{+7L3x5ov1hLV;>C~*Mt`a;m|Sje+~RM7TzeXy=zoCN@(edf0sJeob~yWoJ_ zzQWa2lMmvV^ML~Qm0*rY@~d9(Y4~4?d0jR?tI>}9udzfYsMOP6>bE<0I|uH%^mRGX z-A8#^Vq(y%FS6eZd34n=!?1#%=$x{Bd! z90oY8AMJuI)1I;iGK_IP)Hn6@foBR6SYQ-U)7RnjjvlLvw7hjYp`Lo^KIH6-r5;^$ z0^P)@3MY^qPH%v0z|;sRV(2d*C~9v}JZhi;RY}X~UuanQghyZsrG(ia;0NTrQD*cA zVCd-6Kv)1~ne>Q>pFm%VzX?7}G%i|STM?yIHtW{kjH-Wofm^v~g~Gd73MPJH#f71P z5b?QN@Yg?mmjC)&8ikd=&m9T`@(0|@_x$nJ)fXY93UH;M>hiO+hRZTKoge5dHgi{5 zDqx?Ig-3I8cgH@J%%WzC79`!AcZsVll54+JDx&}-=+tSGuulFBIGNub7;13y-%XaS z#eEEHiezh5ogXR8F%lV#(>s2W5NQ=LlS8yV>sM|eNMb|YjC;5Xmv{eyV5<)?P=cP4g?ciwgCeKb~sT@N6$RIB5YjYBn`H}`AD zb2kwnVOyK-o>cf0#++Mlm$H5uE!q?9cOXI=x+($sM;kN_F4(~uw*E(iY-P#m;y@4CQ`+dO+5!oZ<|bY8F;Im9+U;rzi&J z6ech*3J&P-IDAT1iWlmP%=-2p+_sRmcfK0_N6#v{SiR>@tWNcDK=*A}O&EGet|Sw<;W}mDSm0 zX*fF!@^Uh0HOtaXThmK@Hd?$~$4_!VbB(dJi_y6&QWaDP2|pxx236X@f)oLb!RGmG zPIpo93}jq@MKJLo7r~|b{HvOa-%;Z#PR=1U#F+%>3_FLlnJ|yUgK|>X6!BjsdpmaA z^0>?8GK@LxP$vh@K1<^VVrY@-)8P`fwAIx~cFV)6^&~ikB^wz-vb5v0nTl9IT)kds z_=@>k+Q$OI+H%@HRGLL5Ewh85=*! zE(?23?H@<_Qv@Pr@uF5Wwcp$0=z9)pk2!rE&`f7=xm;cmfh#Y)sA!J^1<$#$Wnb(fg% zBlF-pPvowyar$UG=NTwf454KGB0XzMo8*z^; zV6NWA8{~5Mpg#qAQWI8@K;%BoWAk+oI93vEy4v80(p|1cWS!hadZnd+txbw6ZIKT% zmQERA{SpZS&FgBb?A8mx5#?2$(n4zF%f?=<+IVe>q>)zK1R9-44o-ImFe}DO9eymY z(!Qoz$A~Mp=6QRer27idGWTp=vor1#OWHnLa5YnE!!?X`iYtV|Kb3#T=^Kr|p-~8ZxGLR6C*)k)dY ziLa~}u3{K!R+PCYMk#&toB1RU0xtLw*tudjfIENPT^d_I^+TaV_cQ`x(+yTV*N$Rw zfBE$ulaQZeY}zBGXX|vzVH^eltJnk_Gty+lE&fdw_L26xh61dShf*!82h1%y4`1*7Vt0FsUZ^T>FK6pf~a*=*x*J44|*j*G@5JN|~`Sct9Xce?PIs;s)8J3q(%!m56K!IF_v*L!_dteERLo-2VTw3Qtb<4sse-FBNw!&(1Sn=jVNs>S*y=4L+pRiAdwkgI$n?0xYw0JAbxbiQ}- zJ8XL#H|{kmXu%z!3O#VN#*e-QVEF^qRV^g5ss!EAbjShS>TvoM_FQY@P1HAn!6JLb zlVNwC%i->8CHn~JYetMcZ2u-?DPS!?9Vt*3y0u`MY`rT=;gs!0;#$RuCS$5=MHP1y z%k?>=G5@dIbe=Wu_6PLA$IMd9QF~k`GBw388BJ;v!{O9iIr~@K2c%BBo6#wCim6-H zNzHix-ljL^Z(1Z)Un=<6^loQTp1jFaHO(L+pp-HX%tP&_ja7I)xzjUmM7N;sjdU?> z*ltYfD=cpXRm7yq;#vz!{?`T8P=7cOg;*;pC5yWiz{!+()@>E@!_iw{#WypN&xR89n$i0Bds85`8HwAbY>D@ z^%X03-J62~7s=zZ#Zvr1WAI5x*vH_b-&}M~=%LY{<4cK<=26!#W0S{4zT52(PB7QG z>CEIEP$^6p2#Mv`m7$3Xl>)^041PC7RT#heuw0@_GE=G`4dmpsuG0+W^)a15IJbCF zes%!oXB(7yokkt%&y7<)pW2pJkBRl}=^?iOD}WUorCCPuHZB= zMpPjsoL_@U4Jx9B8R|3l3K#lqZJ>A$DU)9XQ26y|RadGOT`$a-#vyjji`q6JTbN%t zr<~j#RDDqNh9|;k_p=*!v9`D>bGV1*S4U)lj2Lzd&64j4=lAacFM(hcaTNn7-!ZOz zx>5$6{QC3(s)e~i)4e^reKId=6qO!{1TieP_HoHF|goek>Qc;z~j`#?nMI5wi z=_XI=<6ajHw)14i)nJVc!w(0WH({V#*CP&nNTLa7B7IC!Qy;V2x|{Fd_o@y4jYOG; zSa7xIrUZ9}GI|t`Q)jeHrzRNg*G59wfUw6W;XdIVBK#l-k&b9$In{EkcQuKwNREFb z^g|{G-AV(}N4fh~{|*kz^ED6}IUAg3hu-$Hu=kpC$)A4$pfX+l)}Z~)V%@gYKiDw+ zLdUV$NE$M_-8<4hdEQ~wK`A`oSUM?+=!-7l(M9Lv(wicR#X>GW>>;&wM;bE|@Xm2s zHyF7zX^x4Rnl_*cvGATN+$YngW7SD+k-K6Icw`EJ-0kNKjThS83iYq|Crr^kAW|Vh z6wk?6VX^wW4Eyev{Q}VtVH{pxCIm4LH7L1?(20}?`KC%+8lkt~^=E&=mo~3_ zULCfgl4eOCgxyDX^JNmgC>yW=T>g1dNGao0pCqF}_!#&{sa7CT9G$k%mUcC9RInkh z>TIn*D^c|>)<4xQO~_XB=N*g6qvj))(2=pBr4t;8a1xcOigRVEc&P0?j`V@^Uc0gs z#z(!uAhD-Ot*g^b_v?{9KdiMoc7}Fz)ISUlw(Q>j)7K4c*glYm&W%&~MG7#~@l#F7h( ztLf#_!$qF`whtm(F{R9D{u0Yla%_iz%gXmv{AONY-awdzVz??R(UW{w*4mLZOB5WdW>xS(R8t$#gQ}%=rZ0+HNKp zZ*tH zaE{uQmK3?0FzcK9bBd=qF2Q{4JB5qAs^{^zO1B`Hk%4LC%x)})ktqbu`O zf7|W>$Q~Ci;tSTdWac77nimGNLgooxDO;8GukLdILHcFqoI66IttJ z=t?Vq+|p0q-xNN7np%6Q8Aqd%RwA7XN&({v8%;Jo7gk+%2`IK?H*UT2IhjmPIgP*Ex?y{)M%otU?6mD^zRUl(u!qX_bR zW>}SOiMT?Uvf;Uwx`X{VdTi}B#fMFNl)tHff-oOJ_}`~}fe75(>9OTCvro2Yc{cMn zd~%snyB+kJAXQYZ$V9MBkcPgsx3JQq}E^sp=N^QwXj3*v!vG! z()T)Z;^CVix!o7`9=KpDC5vQgH6j(u9n4`T2zZ=`P;QhrVDE zE67}V*v38t$6Z$&0|u^A`4sx0#N4drAJ2kmXyxWqnA{;U^DG3(444qV>Dl<^ zgp8pWTh7SlV1s^UAB=I+Ntk=TSg4?2%S6gFn3i1OeupWAB6)%q!!SQ$h^I0DLOk43 zs(ozm!4#CF^@Q~ajSOj|WVu_ksTz+w$X?8*5HnNfc9RPdp59 z5*!8D2=yB@!abEy2;I*^e9F%OfcM_EA3~KMjNqn)v%{AVCp762F?))2C7|9$La)KX zW{kbRgG7iTrg*7H9&sRlM&m?MdeIKKo%!5Pc0x{W^6HQ7&L_up1?mXMx7%{!V?PxJ z+rP9zIP3|zSuOei}=l`N3{6q&_V3~qVW1KjA$dq8S7TrpR>v&J*m7|V` zaHO!`9@9B&2MR^F7N)1{W0gj+hOgMp zyn9ej+n8rLhnVCY{^+qJGTq1CNrOiOmLF!M37QzpL(EZ?n9d@z*U@$KV?uSDf6y5c z_cEwd;2HY6*MNrWqp(HAl=310duMS-@sTs_>e9ATJy&-F(PY?mu z*jyW(LerZq;4yv=71id$}YM=}Vdfr0HwGDEi>Kp)Rx{KBU%L2RbVaSMffW zxsc-N%HVoLo7bWzk$ReyZBdDilF?K$!)WX2RHx@Y98zh_MTpaHr{L{8Ap;GG-99ZC z^)M&W3f=H3Fv_z+*Ne z^p~@d!m-5iqv?{xJp4K9=+K}in2(64s>KB00_bkYWNmQ<>45 zkUO6P{FZ=F&aqS%eUi&YuX!O+*%T*CNxTb$qohriZ^O?8roSTbdg0I_SU0$Y;|Haa z$sWS6&m0L+2RDzwz~6hso=x_NYaHJIQ(w9m1xG43k5MPv{{dz|nZGR9&|;qnW1l= z`F}fMe2;bMt}erAt_*(sQ5ZjAvGE_LI3GI_edjGvH^Hfk)U;*3RS{_`;c{t8MjRgVlovy`=8br_)uHm!F^6)SWXthw znyHk~Y|~7qAN`-Ze8Q$%q}|+JE=N*4RBNrU{Dk3Hx^6()h@gpFeeDtAk#S zf=Z~FDa>QcV}YMYq1-*QFr|~@f`_o~Zkor#&{GAf)1@$bH(mGW=a+Akbud7{H+z9p zhm!qBJOUIj%|3Wt9-fs8JBL=v{FSDOK9!@nWsw?R1=Mq>X`Ujtbea$SQ^L^7M}Nm$ zI7~35JSl_5L$V#EYp81H>`MZ>lccr`aY0o_@+wqhHZkrhT+_^Tgb-;$9>KZOG>4;O zBsWgEI5o`?PQr-qTqn-f%FR*29Bt+)`7Zu!L`y$f9e4?~wJ*%m1o_b%+m2_^#OCB2k%U9g&d=eA4Gz|8T2j3T39f`2p%g*m~T*xIyavb%ggJ-InC(JA!=TRb-1!e*Ez zXu|B|lT8z}S1PZH3&~4B-Rp#{8h1Yl*Bl}2PSC=+@7TG>I3@13AUVmZw+K2Yti_!J zdFwIG0%&4|%b9KoHV|s;USkS>JSZJmRW@IijM?OkouGh*rJE}igxZ~|PGiDc;_5#}VVvV5x!?gjQyIE&e2(uEc{(DG1>a=p~WT;t1NxC~`%6)kG zsamTwm*B#s^P$?i(v4n6oZY~$*3Uj3zoPW)7eB#rMMMVj`(k0xvG|vNinl`i7P-vpnDwqqw3si8} zI2a9{8q>T;y$^>^mjFw_MZrgQsYSt-OM6Zyy0(Nclb;*6<%F+pgGSVFaL0{WgLN0H zeZfj6DEvWOSd4%u?1K?xJFO*`*G0H(_H@?n@VSoqu-oN9R^sIc9Ve zI{|b`b0iL`CEm(nb>Fs8y~-(t`TbG~jxWj`uNk3mfi&m_EgLlyWx{NjpsM9}G8H-T zGiK#iq2Z-tz8w$DHn*5J3-Ydc3nfdAbY(Efb0%}7+uO-7wayLuabefL+#is9Jo$_7 z=G%0$xmB3k%sbR36@Q+RN6!vPs=JsRPvn?)3G;6A9>w#WE3l-!N@vcQ;$X@264<@M zywAMfSv69?W`&SjC5;y*m!KXL=0oPgc>jnmT3V1_fftZCr^{ldkL}zt6@!{67f|M- zFf`}RDk_~|n>);%hWR)umWK#Nn0017B}Yp?GAcnR98p~fvwu$nO?{HJ)=4s1!l`n; zdr7C_12B8U29s7RheVRcdgXvX5kPf*N4|I3biF(jfZd#AS+bMW5#orHLJzeMaXBsE zMe}KfEkMf+^TlKj@nb~|^W_eGh_$YvVZM?qc&wXYKBtt{@&3j6!OD_m>&mu@bIep7 z*+L=_wPms-9e)(|pJSSD!F+Py;ivXL`EcW1+Z!L90H&CXwz)*1dy&#)Nj%mIN`UHN*oM^OMCapFw#e0JM z5>vb%2fKyG2=h;9>h69i7~lNiBN)916e4p+nC2(w0e=$G`5@gAZ=kBC1(eU6#1&Yu zX*N2E5ok%MD!KwtZce=4K{w)jadUkR;sxfa4%G%Kn_W0aVOs4xc2UO^W49l7bIygWfk_HV_D4742$FGqMxB* zg{7mzWsjmS5JW9Qn6H_yV=bNJ3MRZXp$KJK-Rh7$Io>fu3*UCz$qjA@2lt`s^WRiJXj3b$I#G#CK_dp(I zJb(32GCGySeBI@GMciaU$>qtZpvkRcB)b@&K=?4NEEs!5)!v}oOE9c#G7s7FIZ!QbsC!LI|rfh zn_Mk0t#Lp+O*^(V-Lk%E{ZozW9{qgVp8YpJY+7f)z*1p#wqopOYc`k``u|d~y^0D= zt1$LDc<^9kUK54Y&pO$(@bY5^s%#hlyuh@kKu0W8=?!ZdR4%EyIr!SvRI6B6Gk;uz zD<>K?LR|fD!-hX1YmG}EaTQgbUY070E7SQBkv9W})I#6jy!^ zn;eEu8kqN>rt^ihz&aZ`3{8<12jhwvkhF$?^M9;q&~PUllU7=uS1k#7b16+dOlLqz z#T?2J!T%wNK^nHoVHlyXhpk^$7=Nk&F~F)6Dttu(4mSF>zRfa0c0>0(=Qe*2M zT1$lGN0(+@Tb^~ZEk+laRsg62+r5{xJL@$TZR<=6x+O)Oy_8ocnO0461TNwreT9Yj zXY((nh3?a1qN)WGV3#RVM@=i44t*N-djp8(Nn2Jj{Y)T*b&GYYT#J_Zm2qrGS4o#NCmds2w_Do`YbzzaJIE07O1lN? z4(m?5%GMjK#N*8%f_eiJ!r@RjA}_&dU7wIQM|ES4w5w@RZinXO4u6-M-+w-~*4@Io z$J&l3scWNBmY#6LJvyTnZ}nK9=UCSL)`N!i043v(9Hg)wBBi)_sK%acJz_m(SdY58 zkYtJS?vjYGc36+&^>B`(TisuvY=ZsODxim*h_Dlp zQWN%7#aL7duy^;+4kg^Ta+qUE;OI+TFkIs5HuA2I>KYl6Td^`#3DD5bK-@~N>Vjb7 z3hdhA9kz6R)TtFeF-!I6I)&WdW z*uSlUYqQDL7k|R~FTC#zH!KR}jEbl9=ing>USNGGtgmo|D0Ok%t;BMJ$YvAyB-8pD zcuv4uF4r&H+6`F$!~@@$yzNJeudu!m*0<;~Uj#zSW4`ij@}2dau;gh4CBXe)+_e2OinAf7`mekdM_ zat@A;g;fISLwFzn`~32&ny!Bo{jgtlW4s^n-X{C&BN{RE@ zhVdhXJqk~k;~DuGD}vH3Pn-+t4e$e1gV3d>jb3)9&FnR<*J-AGI&h0|y)cvyEe)hs z0DsIscl4>F$BkPF|3F!?CkS#A$-#!3B&@j>n&vCtr>+^0;a9pL$`I9V&-Yo1@>%V&#~vWbck0VuhlpS z{V{ZMPa6Q3C+zw50%hD5^QfopPU{eYx_>m(v=@Txg!aoe9_adP%_em{fuwD(ym`on z#x{0^AcIJ@&6e3dVOQCURe|m?Uz`NwDfRwGbk5bZ{gm`X@?5jNX~TU@w>+@_fkzHp zaq<3(_w+XHW$-QLb)17jioL;pOF2y@FEv~ILZ1_Lq_iAEXLw;EcdRFd`p`(Tl89KVxw3%gc zx`m0*23)gPHqT@zhp+FRn2FNk^d zSqS3=6y&2@e^Oq0@arwWwwk{xS33)PgZyIOChXg>5DN-XE<{Xw8+3PUTz@KWF}-bi zrv}s6UC=FXiA@!}z#U=LrzzX6$L4ag}t@EI; zBecx49|nHe#k5f)R1Qjdp>^JpUSoU7WIKd4+Viz(?*s`8rr5?OuWej^m0I>~yk?VH z=v`pi^^}~wP&t?0xA(4n4S!oeB)|#x)=NIW@fw(IyFgVBT(o)r;|=>C-nRdm%NjRr zXTm0V&tQj;VizZq4A2Xjq4t5+Pp`7m8@eoUJ&!pJ&l{LFzvl~$P$MP zU}@S(Fo)! zY?_yZeFa;Ip$fuN??<^-nwy3o$n7Gmg4VZRkSbpTAFJmd{m8uo8G zKhYSoTtW+6HFcr3JHtJ7V%xvAe=EqlM3bJkgkuHKC`$J)WWPc3IRSC2)Hx~u&RD0{s>>=bx zR^{7nsbdvB74~QLzE~Ap$0^NKsQdrsUFJxtX4*}-pL28l{)V+MWtjE>c@vU6GraDa z#w%_IhVg|wMvM|{qGQDNpM`k?GLFAOS zCNNi>-|6LmW=dD+oc)_`htUEvc1m}2%(n6RruubeN*ZuK)of)!rNXLA((1u8Fr|k` z$w=v`jC~V0UYmOOzRlVi*`^$gce%($viU2XNof2GXnz?Em3IXUGN zb=t|fQYs>C%@b!Ubpj|*jOh%E87tHsgm@8g1efBIY6KYNk)Q2wMDhm?%#?v3^2Bdh zt1ad{cYn{_S?cvl6TrTpm{uI=P4Gz&Oml%ln}a~(mmYE1KZB#`IP8WYD>zjc79J#W zBZpJ+i~kUwi6$-Ag*s;q(y3Ie0AM1%|0waff?r&jam1fH#D#~(g>&P=z{3{($3}y66&zQXtYT1@L*gqwEUt>f z;;J}oB&LoC&(0R9<0?BWuCl}9Dmy%`vVX&K(Y*ENm~~nlA&7w=78eHY9QyB>R%3%b zuJpKO96kb@ZVikj={CZRg)vk5v#_?7zOryFza&%}uJEaAqI$N;HW)KeB8q~z{eq&n zFJh!zPRYb0a+nqK1^{)83um_LNXtms(AG6Y(!2e*gX-+}gUVSDe=xv`Su9Y}wST2i z1tt1~U^Kjn^d^*WLddy<;dL<(Vt7T2d|J-aCMohMoM#u(RX)3s?(&)HJky+Ky7TPe zJTpj7`882LPw94DX0lN03gMA8eM6mU98zV{)0<+C3-Sw2r8S@PMRWXtCO zGEhDTIq!o>j(iSroH&iQ`2 z^E@N&dp`V)ckn52z88`S@;T9YpX59zJI^BLImLNSb)M6l=XB>;>^x_XneurinI)ek zq*Oj68?P7 zIH)3v<#UPC&wl59sq?p};=HRK}syqH`fpKHmb@H~cG2L11rdpZ2ABkN`O3a39e zIQ73$K5cRpxmrFql51rACV!`#Upmig$!7Vyj$ALFH;^qcyl#ZQo1AnvJI`C<>Uk^t z-4>VrcKF*W(^0Z5F8&S(-5K|O7liJPd%p)l+gqi-w^jQ4$o(?>fK$H*9ef^=PeLA+ z&sC7}5%MVfJ_c{tLlmBR_D-_nQJH)v{CY5wW{^4v3zdM>lU)++-G5|{lX)DZW|%sA zKpolfSS+`Vu{4wD^cV@Dr%L5Oz!0(?EO;+zNPx%_tr0msAtFzarxPLaL~BHP10pB2 zg9!3AEcls(E%Iz@MEWH}MC7H`hzv@I$gdJ3@=|L= zh5{nF?I4ooAo5B=M1NjwjmW795qUi^BCobaWHca>*A61-4kB+PMC8rZh>T5$$gdM4 z@@8v9@&S?Y?I6;_LF6~&?F5MYwlyLX5+d?@@=hW|e%l(6B0ywHJBZ)}g$2J${-9v- zTqpsifBM_(0lUb1*|d(lk3WCPPWz~id?J58lfRAfcfb7oTz~%lm;C*U{QXk?{!RXV zEr0(hf4|A*yUD-n$ieJ%O6w?thgL^*co=omgoj;6Q{d61j&_Ad_d1#ikMug40gt2V z=+W>vrj8y9IML%Fd}1B#h2fJR+_#SQgU2a#Gz%Wtb#wqc2G!BQ@EB4@hr(l69UTsj z5p{HAc3Nc}9eGkRK)_QvTGxW|ndiQo>P9IoLw?9TG-9ulcZ_s<8i(!CJ4@fD5PKPdk2nNf; zz(gMf{`DBhVLL$PdK~1dodo&9Fc>nUVbGioV}Am966BJnK<0QBq>JZ3MtC0P{TE;^ zf00DVOMfuuz6|r{uV99J1!lijVQza3=BqbhE_w@QlV8J3@jHO_dw}u|i@;Uj5{FQ3tOKOq7(>~-InnnIihtO_xBu%4Z=|AaY z`Y&2SzoCoRx75%6O{3lOK$|G0Yv~NSfzG7Y(|gkEp z^CIDjdJH-#j(~PM1T+;|RR;)f{~rPUk0PK!*k*@CMRuN+sX26154`u)R`XBw|3W$n z0v&~bj%w(&^jvxy4bul`1ZrPP8|ZTS0)ISTrYq>{bS3=_Jx|ioa5d^Q$n}sLCMUNy73-!rI%0um=7gVg3IitO0ejA)dMh9m(|6 z8DU-UzmTvlq-)^64fG-)tc!uLE&;+?3$?!t2kiuhlKTH+>E6N>*@cSvHs@}*5QeKgRmJ6ov=3kFC?sMfOIy&jP*;9{H_JbZ!<`K z*Fo)X0K(b=gmnY7!;L^#HvwVYlKhM%*PuI}vFI~#g!SD2%~=0)2n%Mc=l|PgtgZhG z32Ph7S9idSbtjP3T`*(a4Kvm~P=EV-fw1la!nzmQ;eH^j2Y|31YKO31B(n~E#(Jsc zjD?r*D#BuqLIEiNB-lV-h0c0?`ar#ozR^H`4KHsO4@xD!s-wRhl*(ZAy)y`i;k`ld z{ewY39UnE&&*lwCHOVg8h6_$b`VM)MzJE)8N8ckK(?5~} z^nLO#`T=G1Pt-#{q$%+1PCuqS=_m9!`YG*8KcfTbKAJ}x>3G^ir_%lOOnQLMrJsZ5 z|2JAqzm@~EMvb1>01dKX5JRCpRctsr6>6D5=dlrNBoO!MG)L|aYk++!8%0bQdlB+I z8x1);9_OLS;d4^3ahPQI}ZE_wANj3!-4x7G~(c>`X9#%}rwu5g#xN;AhMTv@3 zfpQrb@Dk}UAf3%l`>3AH#h(Q?674bgd^z-V*-qxIXI0bFK7T4s`zTKXS%WRz$!h9Z zZ84O!>Ne7+fvui5Xg9lH7rQ8(T~g03#U%A?J%sAnm3bOu(~$@6l*y09sPXDSEc zDwF9BBL;fW)7i#)wkglZG+rY8`3Q46IX2UiX=IqWvVcuIcMrRck-2M4nqg)dPi;H+ z8A9E~w&a<7gnzZ291R1|lVPc5p_8D9xoa(&VP$%p=J<36umZ@E&Td2`Ou#_lfossf z#9t=eTQK<@?Be<6cZZGjbrZq3G z%Tpr+ACa=1PtWX@k zp4rWw&+C@it)9J7&#)uU$?T?5(7f)L;MX_NXYu*lo5+1MFEyRLBeThltb*oG14w_^ z!~RIg9`-RMc|Eq1k(oXAuqFzF=FfTQndy7jUn#a!UPfky(;ARB4L|%%eMs9*x?rAv zP;%437k?#cX}j4sd8yk;SA0wRNWNvJ*0b*cOGMzObPn@d_srA=&gNzB;#xg7GE?)q zZ)Z6YTYW2e1_C@~L@IPgMru9pim%;Aq~U8Cyf*OkdAoQ@_~1xz`>-_E{92n|FlIUVt-YF2s!1udVRqIU&BOMk<;hh0Xt!7n8`VC7f`m>|no7ZPCINexRS=fU%QmPRgM>EvS8gREs4?m>_JDO}| zndBaJ4B5_(CHJ%A$U_i*6yodH2|#Nnk_Og`JjHsG7uZSUZPtgp3(pT&KhnrfCVyYD zQ^-G97Wt0#r`=c??w1|DHo@_%(~C%=-_ z@hxl@zm3)NJK1jj0NcYKVSD)#>{%kMg9(ZnZL(=#Xn%L@GsbF znuoovWw1B2W7wNoU-p)k&3>&7VZYHPvA4CefPNRidlkgjvOj7Uu=lhz?0sz=`#{^o z{-kYYA8T9KC)%y-Q|%7+nSZt&o;%n_S{?gP+r=8Sr&*KsHrubg#|~(JV_#_hWPjEv zJ3~)lU+Uf2-}DUj5B)gyPrVQO7s?Uz0<`1O`?_)j%;?2(C!CSddL6ozEp(K+5=1 zJC&bBE(Iy$8`4KYHfbM?@_Bqdgia=XWt>H~^Gd#epADgB`5Am6Uqo#BDL;{y@pDL5 z`UBS`F5O_P{FQqFm+mlbxAJn*ouFiMHm`tk)7V^+1#o;oT@~awUIlR(>^<^0UkqiW zvIFEUz63&P?BC>C?tkY?NjmqCo)Uu|JS!GjMtV!gJ@}m@QgTIStgH$p%{{wf0Frkdxu}Cvv>O@_!9JoF4TZF@7Xn4Yr#0 z_>Sat>v|Bhx2{qhnH0+;!KRf{BJJQ8I@jK!<2zuzDB7tw|pv#yYSPt zF~D1eVbeiBJh+!D1}pcET(hj(zjGt3ExZHK%AI8E$t(ew6h1qr0nSf zrPzEDPLBiQrR)LmQnr-M2e~r#F)d~6L9Qh3ir65IJAWcJD5p}yHc-R{oif8{En*uq z!^rf+i`a&g$dAr6GW86zg@`T1aXqn!ZL}1zdGsZ|7ax20a*#-^?fi~ROG%`BMV^To zFvy{NRXzX3jpPJ`gRg6x2H=+{P}_;=L_eQrW7}rhu3(&kA1;OLH__f0TvyLGr1Pt# zbTz^Se}4_iVj@$>a6P{^Q>c7v()nf-l{n4L6m@jMcJ^&EjO!(gL9Jm(!BRmG4SWlV zeK(=l$DVA?db7-$({a{YLE03%`0X5?g4BE^}aoAxGf8sdM+)5-O`2f2Y~kehf<5KN9D5A&nR4tVb3$3VXvOMhPF z$C0=A@#OdX1o8zu|H*rkpZG~s<9%pPc=qG{=o$QEI*Fe`y*!)x_yD?r52V-d{`5LN zh;HM9>0LaBKEj94XLv4sg%71~@?rE3F!g`HPo-b*5%eoQihj>WGmVd7U3eZ# z_*ixVh_(ax1U7=KSs((>W0%2m1E0?} z@&)WBem1+4FJjwy8Hl}$K-68xo&eGKCGKUf@(T6_uVlaDKK3rJg4SQcJ_C{Y3%-;c zq&*LNc`8{{B8LD0pH6%;|;utKf%A^PxG(& zbNm}f@dJMW#LO2p4?I)(vsw@SjMkICtR2HY(6acSw1NCXZ7Tmro6A4e7V%HC#r#w4 zLjKwRWADA=t0=n1;WM+dWq-EZo8%^hO9;KDPy$jyk&cvr5CnoEN>f2a6qP25pn!^4 zklqEN*g(lmFo1v>6a}$Y@f?Z`mSzzDD^T8Qve*v&s<`QGR6Gm7myK$}zTI`I&u&@P7;C7xtBMoPDqS z$$nSrv-8RsRaMTawsKxF*~_4zAkrR_O`)Y^4GFT=l_Wb$kwY^iYpuW#_L5|+2@GW$ zC2LLL8upxItrb|n?v$)GgB>hSveqi>VVxywt-*U9Ypuh17L=^DPKd`^8#tRD#}WDl zLr)+(E!s74CS5MsXn%|BgIY>IWNd8|FvDIb57NBQgTSzV-(qMh1eEWP?X~F#G+8;U zJddG|X`=Ey`5GL02y&Gllp_$JN1&N<6nhoKwU(^>h<#4L6=f+uVToj=7O2WGWPk(8 zrLYO>n}eazaF=A?gUWr7C)xJ|^i^f7s$x}g5whOS#WnmS7OiH_Qzu#y`mw>f)9b(g3YT}4x`)+ z{wSL!*uOe|%Y~Oi8!+RuSK#U-D_jnj{CyT(xl?39_U~Lde)<2Fk77PdJ_o~HE;YAp zz1(t~QOW;YE`Q3>ZbWu8f)6BL+8m&YWK0A9wy?{kmP0>C`uFX<>B|IXV6bQ|;eS{b z#Q}aA>~iS!KWVn}|AS^bN1Nq;LQ}!!|JN_f!T8%Oh$MuAOrXlI7-l&3PYDK}y@9Km z9A?Xk-)?pbY*Whn zF#O47N(;4+JTD%ksGdksnyW?2Ga|SFO>Px>bs(Riio;4LJmMSn&rqkn2uZsGX+PX`z=}?2k$jk2#w-fp=Tq^`TN|m=@1LZ zCVR`6%YWY(eu)Hc6W%LP_4OJ^ml`XKgf(m_!eS)mjxS@96$q7~G=u!5N?Nm2c;xcYog@0dWG z2S(_VLdHT_?6^1|h<3TYoG2m^M<6_`Z(jmpk37V3 zFo%#n8~SxMm#@FwpKc-6BG$LGXK{YVoi{TTD5BDuj6*gvp*OQ&0JC8%b6_G1z%-Ts zGg%_cXG!n^3&Be)8A@3S>_goD1xtm)tTG&DVfcepB^pa7)mSxBlT|0pSq;*g)h0t& z9e*;K)g{wdeKLnNAWK<8@+8Y9rK}MtV~xottO@xN;a3R1Mfd}2N{+H-RANUPf@ZM<+K%PYj;sysg0LHFOY>MeI*@guQ&?wu7wbZ2BAmmz()p|#UCz4G zmFzOQhV`JOtQXzR^5{<1hwj2~8S6{mV1HBOao$XD#43++2$u>9vZbEBu$m#PD>-^0euHQ5eT1oNyNu1O+inO* zg@p*atcZ0(%yT9$O9`>w`DrLvhzudtCo94(A5;iIH#$&8H$|ru)Dy^(O$VLbi)4Q$ zq_X=Uo!yVqYZgwg+0cZ|fwt_yn18hawDV1I+OffM$Wx&nD_}!BYXcLMq_arX*_9T) z!c}ajrxvP5mn;)cT6Wr$d?Klk9+-75mKv4;=%hn;fkWw}K4x{vA&#OE9Z zGl9?hNldH9<8v$XJciG?htI{ievYgI@j3VKIWL4t@wK^lo0qb=1){q1VP4GU zVNor*iy}9FVwkP`%CJ_#9)F3$^b1^qH{3^F{*y%lE2$B-#2;w?(efDbyWq*n3oyAT zFOi{M!d6$%r9oc$G&vWQI9>Gu_An@H9vJKqFxg|seLfCpY(7rLC!juC06A}h=S`cS|&$c_IME&WKdVs`QI-4Sq(Quu;=<#ToXQ7+U zW=MX#BRL0yTuhdjbPB4L!$U4FA1xN$W@VeBiyix=3G;edQ-4ytBFW$U-KxJQe%1RE zso0%;F@ECzJ8W<>VuLZ6vXw2lszeLg-=PI9iWW2vEkrp7T`(~(N7&Xl9%)C#cM2O) z2M8A!+Z8tCdSbhgYhrr_#dDOoTxnqz!pjoFm_CNF5X0DEOJbPYB~CEoF^nxRj1|Q& zox*k$!?YAZiGN|7u!9)Ju7C={PK=AeSK1eLlpOJTmcT-`hlT7Y7Bb_pkR9eJrsVW2 zfr)Iv>CH4riW%nHSC@B@3Po(cc)t%SB7zXDM8i>~I`|q|;RN~wIQtZA_8BCy&k+$E zgsSX6P=|d58SHDMN{8Sw_ATVI@8C*y7;a_X7`oaO4TOAREJ!r2FPSJNM@@Ex)xno2%WE0a&vF!@nUBju_= zO*Ne+s(;mJCAB6^Q)|;2s%t*IM%eGunm)p)=^+f8rg#V=L<1hesEX*uMHo$ByoWG$ zkpb*u8G3{Ck*Gt1)1)en+{3v18A)QF;^-NqE4(Y&AWklWT@sy`a+9(nV1T zW1q7xTvTFwg6J=VGoqTW=gAKE3Y+X8&O@5B^0LZcOjbdzw!MX_w7{Y36V_5# zP9H=Vhka$FmdI$UD?uwn_NIjWfMS!*a!S}S8AcunMF}NGOwwNmMfDTd$(f9#uoQK5 z`F|$YzK)#?u~TlVX9PZ5fJxc>KS3ZNDU%cR1-bzrbmRv ziV;cgHAP7?qNaOlFBq&QiXyD(7H|roO4#ua zV#N9u2LktqT#mQ7{I#f2h6-J+D#POs#(xNet=5rvw3@d@3n5vC)Oyi%t2WHYELO92 zkaM|As3j&6C{`PZLn(pY6p^EeczcA+5yPo1H>+)0;E;5PsNHgfUYCyCirO=x_RT0& z^QGpadPR{sP{uMgs{`HmV2lqD@xdYWD#VX};J@->_39$^+6-0#r-l?kxjbFso_}sM zX1#W^I-*D&nGsP(Ur^f(p023)rU~7O$VXu=)I`Hv=!u58P!!D&nxa_Z23J|MNF9rj zu|i)|K%p@zpio))IYX#y%G6?VqDZ|7gExiLaS?J_>RftH%8S(T7#ttd-4yvmN`zL= zD5b+i#_=Kbwqo`6B0B7XN+)7)Vt+`TEGm`l(^?l)J{5ygD^xDZOqG?Z(+Y~!dy3TQ z?mLLG6~<$R7_J$`>U|~Z?3QM!`cOeevHEaCohRZxRZt&8s!++UWR6N!=id}j7eu!_ z)PdSovp~`M7BHi4ftsN8ji`%D)#cdeN^y`9Qddb@sIJKkX2`P)b$t>2M1MTk5Pgs! z9wdkd%6{?S+315r@gOmxK3}9|r?!DX zYC9OAwukZRrErJZ5vE|C`+wAKFh}hUbJd>kh}sM0BV45Rg*EEs@U+?wUQ+wR%W6I@ z*a5Ix9SD2XLGZOYnCNN&Nm7T9boENoO1+A7Mwo}`gVcd!w0aF0r(R1Ys3WkqBgr&% zH1_s7q%${=x$2E%p?WjYnQ>%;I-YD&ZzaX*1hP}ToxG{uK|WL`l7B<$Wb&Ijjr^(J zjWlN(b<}%kRdqV8rOu$)>P*^Hy^nTO@25T0S+t)zn+{Uv(4p!BbcFg4yT}Th9i|KFb5_(Qus;KHRB}HAX)K*t0jnq|2 zYjw5KQGHVBr><2B)PHr#)#`d>w7OBbLEWU>tiGtsRW~bZ)l%g-b*oaUZd1zC?aBx0 zE6PE2hw_uUQ~6VUl@awd#2#gG`@c8T6c|5B8(B5=C8?`hOF64<#;;3}igi+p4@sKsgtGRb!c3Z`yB*>(;v^<@kxut>RIEtMtK;D7hnigcC1(@>^vlQi@t z*s5+~mijiB%FVD*-HRbxc@AgdKJ^_4D5W?r_p9$hQ279Qs_$VaLHP-q zs_$bckr7B&Kad9jQ2{`{kNP3<1W4D(J&;rm%|Ms>6X)W#ugf9b-FKC#NS9^0_o$Yq zaB;yS9T_jA;(wIm0RFW`xgV~?C1Xw|)KJX$x&+IBzkkXZUDaI;k#fie`yaD-8^ujL zm65;6rmJZpqs&}M^yObwYXA4{rFvEiUKYu{^w8D%_%A~%$4OLSutb33m)?XO>Lq2w zj}*_)mDI=CsAJlVq_>L$KhE=+9QE_8q&p(&fj%g4`iVqayKr!@wKlB zQY)-&SASPQT4o9hYf4T&BFE1~0EuyqU}_{QlZ_1d>zNz!*cbt#ebFiy*QAQ9A_Hf3agMbz>PA`0WrADJNyWP?3LgBq0$YHYXAztyzeP~bMG8KOar$(U3% zF48oSgGDq`6o_k9W3pLIlg)}pJw+^{IoKjrfj=5H>+aiMC7Vrfn@!pcw<1X14P(7# zE6HY);+sttIlN|*vr4tf1;tvGh?W*n9)A~A#CIgg?MSlQktDYx$zDg2#80xQSn3=g z5IXQ$bs0k-G!UXw@k?k4pjn`3xc)Q;lC&VCYYEU?OM>=V2)b*@aD|ovL$pdT6yXRh z6-H{6;YNhFYH2W4ONYC)YA{!;4)e7duvDuFtF&6MPOAqmX!W5)YXD_hLwHNefPZ}m zKhQGaD=iCt(6Zq-tudU`nh>TnC6<;$lC)+dRclVFYOP2;tu<+^<&t(mrQC?Chht^W zNXF1Law;#V_Al?-NK4|5Yy0G8e-OZmy;>m-`^4M1N~0MGfTz zc?hGm&ebvmY+FRq1)iINc#d7OO`LIgMH)7F4jA2jqO;-nIUa9o=RXS7LBu1zM2Hi>8mxqmi=1huIojIfS2 zjbv$e_3yrL>iP05|auW2(G1(*jl#TAWy-Qx~(~xu) zED|^kdN~Ar$}aPI`w~?6efJ!gt?&+FnvgtP2qPm}|4hN!ZInu#+MqIUqz0%qWQj=4 z$jpprLyNU*vtm?Np1o)q7WM8=;N#`nnfOGlade${<(Tc4^m#w6St)FvE@C7$KX* zR>soIE!sHY&9SD8WN*=KRbUXV5-b|X!gt8a$jrj`h+*s&;v`Pn15A4hEbVPb*7ibW zZ68!aSY3MuvVXMw&`Ns`+Gy{?rP>G3Mf(tXYM;cM@jx&CwR(B4B|^7Jb@}Qz922C~ z=tg-CM%x5{Xt(3+brIl4I1|K-x+(S%*d~9py^oRS8UFV1SSr_|Ejv>nlsj`(e6?y} z7Sg8R``sm&BoUb=&Mw3zP*}#24n`kLaf4Wch6P(;Hh-zJy98`eJXb4p51qrRr|GKQ zBMs`XW><$7Gw5M8SIZ6~hxVd&Z$z8rZcRNK);$ZLHC|{N9qVlv4MZg6?G4fK_(r?M z4p#g4#9UKsAC=Ov1({*9SbH!(Y(}()7i0G^Ifr3Y1&VlDtUa0^(H?WR0F*#$zkPIX z+h?t(zZ^Cq+Jb+mF0hB;&JB(!i zduV~MjrIdho+HpvJBkzNN4N~by|tg9k9G|DX+J|gh6jIXzaU$19MR;jFiiUmQRQ(M zrTq@qX(wQeb`n{H-{BVRPne*cf{EH`L@8%rj&>Fv($2vO?L4vw=U@Xevd`%_wR8nu z)K%E5Bh!Ww%@&=(R!rNj8?aaB@Q!Z62M9maEjXy#a9nrbcRdIv^#l|kf`sac#L|;U z0>VT+M8bc1GO4DgkjA=2+Uu1`Pd!Wq=xJoIUX={f)5$e@HFBL^om{WiAUEo+pU#H` zS59v7QRPkE;z%bg5t(M;;;2g+OFzR3G(rYtIZPB>HL0bokX-cy_>Z;{LmF&{1==c< zWOeuy3CC(}4a&4%z;NwJDbrHO*4Aq4P^KL$JYRol>k*q=<9m?1UW8DBrc#a+?igiT zIQ^JgulAI85Z(&{b~)s^Tg7y&6qx4dWRct|PB{x{7^tC~hisw6qdiTMb5Ss?qkc|f3F;~~(Exlq}7Jg(xf zTQPCbI;jkV-bp8V0?H)p6Rs38MDWffT2Zl9k|!k-trR7bKH0do(ga%((zXc!PDNh* z70IjD5uvcEpcRgn=Pkri>-tN)a}%&)mDtg?Ts`3*no z8~-iq9zW}zu&VxJ*0=qvZ~wQf`~0lPDZ*EOpEX8J*9gDb#saX6g;2>@1nI_NsBbKR zrp8jZ#8?Kc5wTxG0+YmC)!J;ED}H89;+3lAFWV4kra9!Izk*}`Xyry+l0 zY=D=IXJ9+RUB&62{kqo+bALlMua3ItZWpMY-1Z~X>2EL zj918|2s;})$Y5iaoHp&<8R4($A@cl%AhztQ?bqJLIa!Hx(caUf!^i2smAei)^Z;a#RL&y{pnc?7hgaYZmOy2XJ@`aei+fh#ab_y(GYatY;HMcftb(D6aCLIQ6aS-m z&kkLz)S(NXxP~$pe-<@7zi6>}{IVXgcML1fFhNk1&EOP1)alJ@OiT+$pCA_{Uh zDBcT^&h+oZ{SjIkKS2lM7<7LzeukdLFOY8> zhatwVFv2(iw;Cs5itz``H2%b)KLrmNXX1PY&-I3Qwnxf{97GFP@C@XSkUku#xW&O^ zByYn-A|&Z$!XfeTq=R{XLlyk}B<;tFN}$o>No9iA?l^|SA1s570z}lrGF&Qd$UUTE zh45gQd8c|QVrOq^c0_+o#fA9GVi=#1jTKq|%U6Gi%P$3DuV!gNCXDc+ zCS*(q<1E_yKG_lNtlzgI84;~Kwpw2lw-gxVpyDSpIDsIiP=hmQ$yMmYHRz6_-e7LP z1kPawH(@rnU>>*OY3{%#9)Op45Z>kq@Geh;0~kMy&yHjMGdvB-c~wGq8es@^o=$?i z8cE{SNiAN3G~|CZNmE{%wB>b3CtjEIK-ibpC;fQ?QotLMYk4NQfj1_%@FrvqZ%XDO zT*#Y~rMyLKr<5%7SN}5PH5*GWB=dDDPyHvrUC3uH!1sI_+Urc+h4|uaNYqv38|1U* zpj@h9$Q6fPfrPVA193q)R;+r|AgZAq+ufI%(`t&p2OfXh#*aOT-y^Ro_Q?OPD8EQU z(cOJlv%gZc8UdtF$$!ZhxG<+!fW9O*$yaF@9|#nG4BnB zF#Z!h`-6XX#^pDVsC*DEzk$R==mQLZ;4xmYy4%n#v{T3e;H2pm*ETk zGJMZphV%Zq4C}=&LrJ4AScWd$zSuI1dvft*c#(gi{2~o`i_1;BU>U|`3|yEKMKJF3 z5Uo5O;_?3-5Aju;Te}k#`H6qvBz)H40+!<9oWxwoNjxB-I}Zm6qi#L{=iu!~3hsnt zJ`t+$Nl=$hhD<&Mn)0bg8t%e*ISo4VyP-F~2QKH+p@82D*YFu|1HT_`<+ETqpA8T2 zIXHh$AAraBLvh^1Kxo&rSHm-CA~8>Z~|3@hFFzSHX1LK9wi0tt8U>ECl0O2RKMD?i3{v^yP>s)r zTKowdhxt&SFMu4r5W4Y2a3zm(hX_Oc{kMOi-a5dL?#Ok(p}%BH6{ru*C0pt;qbiUy za3#KTAo|Xv1!fZaLi6yQABw*74F8=c$#)LM-Z|S7C*oX7UGZOEe#T!DqbijZGtT?# zD0PEG9Hmt_N~>{{*5D{TiKDa@M`<07(s~@FbvR0eIAflIMhKhmr=bns0Dbv0Fp_^i z3lsTsFqdzNiE%K`AGvw{$j$RdZl*tSqur5%COEE%Vsj=ohI0{>B+Pp~g2??uUzWfbHji(}#Ux*ky>N0UNDcuc;2wvR{!g#(`88j_XXLrnq=pmuS!+auH zNoet~8Wojz3Za#kyK?M&qhh(Vi=ooQd7LOpuR*d9g3ncQFA@BJ$A zKTwHYTbhuzgZfgZLfmLoP3lxI>~T{sZ9??e0H*m*H&nPyp$1r1f}WgRE_U06sRnZo z2Tnt+-U1C67_E-j^a8^T@`mRa6iW3vII#7K^#;8&6Up!R7ttHa5ZxNlvocvk&o0#) z6=W3aP4Y5I^`-?GS;cy@BE5e_sotspgSmY&HtQ|2BYHalL&}*_y|c*OHKKPb)q56* z)MCB2_@1R|uYyD+Es@MF*84{Eei`_Ut|-zA{O^0E)a2I-e63#*DTCgkj)*=qOGI&E zVcBckq|wS2eGG+!oQQslm%?O<5lc{ILLz*DNtrmQ^xFqzDiM96_?dqaV;-)CRGblq za5j90jKlX(ogcxO@C#(~laOmF(Ai|r%T!^gslgaihpDCkGffUFOcU0b7CdX(P+~f; z#|*&dW)O~<$#BA~1gFhZC^y4#(l&Urz=9L{H2rQ&$cFdzd-Ulb?m640->c8SK8=9| z`b_;k55ZLiQVz#l;;Dbv(e-O}y_K%_6x@QI5~Y@UcUNzNCFA(tzeM`ngEFCjkm0%G z)8`;f43Xu3%g1IQQbc(jj+Q}!0MXNgmvFdjLP(VvaY={EPJKzFQjz@$}NM}1lUQ+77OKkulHP}ZPwr4 ztbe>iKOh{o{J-A+gBANP@xNRA>%wTvdxx*RXKv5G^ZOXldO@$ZUQG1Y3yL0B>}qTAB%&X6*MSJRRsDZlC|o6qgkQ@b&kMPaP8LF2 zzf`JU%6mU7Sj{h(>=*Q&o^%sV`2|n;LlG-@)-QP0f9e%1_Y0Q$qlN|R$uxtOK~*p0 zKRp>`RWphWb(3VSbY>z2Fkq;JSHlhocanMnlKRYjE-@m_K&BSV4xpPI!7w{Rg4qSq z&2CWB><)ho%*!Cl>;bJ1wl@1fd$S+(H~S-Y%!jMZfiS|n0>+zz;SRF^?m~EvIRqXu zuY^a;s}N%jg;Mis*ott6ISh81*TPb zNKJDLsfDnfIhNEn$B{o^&*CC4K^mcP8orrLXxq{wruB3C!RrFDFHJy)eq4^|TXRf6$nT2$l`4ru4ZlLd( z&(P1zXX&>Hzc-(wznRY~#C$=q&5cTexk*ViH!Ic6BBh4;l2RLCJu{*-F^iSI9)7*cdJZSDz9z*zq`I@rQd|g>@mMPC6+-UAr zwwZ4zubFQuZz0@gzNLI(zO5WI_bT5Z{K4F(oHXB2&YAleGv8sl`2n-c4_VOsn1xLD z_Ql=Q3t;hMb7ls%nAa#S!AWy1LsBje88kT=y zgGM^S2E#D|Nc*nEIVk*}tF$sKg}z1*7_AA9xoOO*ApZ1#O2#>8;%?_uw%A!@Z`qVH zFzOtv)b$NI*!i5tPC=+@JXG4EJMpWzup#&IW(0f}xcrZTI!0gYKa_X(COoxNmZ0RcsFVzX+Ea-pV@Yo3> zIX{=X;jodPYi5LuN?{&0BSz)edl^+_OBFwz7Z=Ru_ScPS6xms;3}$)BE8s4n&S(hl zuZr-{>lDJUu$AJt1IK1a69jfc#HiUD0|sL0nt38n2LpY=EXAH_6K$Jvra;NeFJM{u z1!{J_?~uT#=gOZ^rg)}9QXGG;<<;d&!_3u15lrkZlt9n2{Uj6I?z06ZLh*;T3?!(X>cR0DXr~wxP_)0 zS;C4QZX@ko1$wxjRFQwCXUM|C8F}<+k;YIUt?g~H4fabU#Zg>(-Lr1}5K4?}SOgZW z4mV53kT$IaV`Y5~Z3exh@mnCO=I-V<8ezTSD@_rn1b29<+)*zgMzxsrJ?SpZ(r$Cj z(lXA#t%$P9VY=^y@M1+gt#{f{Sn8jFD}_4~^@99jis-fceYJm`-i4QET;4I$=N*Nj z)vH2M_&OT+HX8We#RteS*Y`Q*bdO{1ohfqcmcM)D?|yd&V3E%*C3zw75c!s{&nX4H zka!SdlDzDvDrP_HXFnU4z1+`U?q#p(b496MNM?5#B6iYch{XQLF*wft@I=5{#pT&n z70|6TNVL+SidBCNYFpJI%c==2tXj~)stuP}b)b(`7Y11MV2ITauC+2?td$9OT3ImD z%7#a*#<0X{0_&}&@RF4SuUO6DP3sc)&}so+TP@+3l?%UGZQ!KU4o+L`4QGhaBsyc*UAVvm@vD-tnH`XxCKY6b;XoPm@UGM_nhLjo zMl*4xhH*)Lo_LxSFw{^}G_sKKAtO6gEl$ za)WSj8Sg88aaiBpLOM^7M$c1`9+^2vJ}tNFE$kE{#a<29rr2!cQWz4}MIc9*GP_PM z1=<((4;{pqg#%F^m{K8+d)tKpp;jZw8IMo*H&%ahxofs8w1Dr;2y?Nioso@SSp+s4 z9fd|pyii0ZjZ7QaLKO;uDe4NiLOO&5kJeZ?ZrunctefDB zbu*#XIAUA3kSf-AQro(fWLvk9=GFw#$+~}?46*JYRBJN1*SecLXx&5BSkuXq z2-jQpk`2}j@`5#!6j}F?w-J71%_3h}vnjD2qTHHG!`3{x!afiO0kleVzlR2m-g4Kk zA=EeWq~%x+R5SWWOOyf8eLc96yyEf86UiE*uOxE!lljKwQloAs>@@mGBDWu2H2Qx_ z<>SM!)X0}sXUE}DV}MXOh7&N?5KiYf{0TFSfzr~N!Z>4)Byu*4Qi}!gBDJB9F&NVv zk_}yq0<0xK*24s2h;U3pHoz^0xZ_?UFM5vXbl-x@?b9T0hia&>%+B}x#YistEL4%F zP_v{Zwoi=~`4o$|{xks3^8@ z{gYVZDtG7SkYpLJ7Fw?{pGH|_aEa2s5HhmTbEL|fyIc`9h~=6nm#gZ#tW`*Q7OuXJ zO4Qk%1X2qb*F=or5|Jn~jEf+@QTYX$K!F8%$hahMz+QGMQsrI4KTYi|-+l zloSWKaQFG=-f2f5BOE{!5?#Ex@?iJp%wpqaKPiY+tb$QdWbktoxsJz?OyM|^UeJgI z%~;TKhgzJvg@Z91@q=t97C(PlNIS_E!omM-{o!D40**|g(jqCG5HfC)r_lp3=xQ;B z!lCWjTIlM|iQ5D|3uyx5%I6XbCV2aX;e-^92;EGvP%1HQ7uO7g6T~eUgK`sDi=>pK zC6E@)8oVHDMmRC6)Km zip;zHnK$}zlM9ThLlQv(UeL{ zVOmNhzs@yqi_#*s5DHRKQ!1^3Z26&*-47))rKHArYYvCJ;Y==sy8oC{W}2BwQd0ev zR+q12EmBfaH0Qo`ky)-fgW#LbMJZu+}5jR|pHNr(l`&G^~HIHXuP-2Txhgz$WWC zBuLN0ZtDej-`WTVtxa&$dJ(z6myioAfs8VUVXpNW>0rH1E<@PUDkFWZ-Q;qF`3SE>IMjNBjIiD$Gps#ivGo>Njp4P{ z+vG)SFWF`7Bd>p3?~nu5esaos7YWrnD3`rQ4eNbsTOZJ%^&zcdeMIY6AJa_h6WZPS z6y>td=m6_;It0VRtS{&o>j1sUIz(@^zM+$>Z|U9Ecl16CKVbbp7gGV3T^W&KE> zLAcTSiEg%jrp4AT^j+&X{lxl}p0IvXlC9sBTGk1rrFDN&>1+L=47W}x*ITERan>1S zfpu0{Y@Jg|G3{-eDDT*+@`0@>pV+!`0O8j*SAMZA<%Df3r|qCpZYMBiCoyh^SbaNL znrb(KYJx8KrrHf8AtjK^k|lwpa49sA#883mP~Dg*&q4b^iX?n0&W<8^^rpbw$`s>1 zVfP77DgA$q`z4v(r1UUmNizGsl5WhFWcHwvD2Y0Uql#+G5o8vQDb#oX#Pv+S((}fH zQkJYjKQbN?G9t;P5o0c<1;|kPxbd*?dP)uQy)jStSfw`k#&`rni8M&QG9D#gLlUh6 zJ*4y*qRYqtWEmP`XftVRJSIG$(qhuucpUSkC@p_sk%4mhdtrJ@+kvq;t?okmK6)G^pk9pl6XRs5BFL^DeO_k~j-jsX62vEN}_+ zc_?%Pq-r@FfYiS)7$=ST5h4WECN=3PNJuJ&1YgT5zPQxH7dj#=_E6evYbc)FqCezG zKp%g5Dh{2zJ^tomkAE>Vj}bk2y;KX9!d5^v$v{UDi}xTig&~rTSK@9j1RlFGFgpw! zp^Y$TSAj})8iWy6v8zH2J00rU)gZ&J4vi5uvui+WyC!t7>%{3abn=C)PV$Qj$+MHk z9{u~wIVAH9DT zzUs5mX6z1_|D4J<9FEYV6xpFrr8~0Mt*RQ{|W9fig96!mZupdxNsOQ-<7MFt z4MrHH##TfMRbhy+&Df5gp$T*|UJ-xZ$?(&(Q@=HK;OON+Lu0403lYF@FpXES77mju z+|=GyETt>Kkq(816Ww@CH_CM54PCoVH(u0@J%ZWAUtIIP1{CIt-sf(-We5#`w(`sE zm0zvcGcb?sRPMXLhTPaMcT;O+g^c%5HvGUfm&4dc82cn@JhvA!e)exNuEl?hU;ItR zFXJ;#!Hoa;n~Yz_XY7v|zxkVt-^FKah#9|^8LR(Ojhp#panuVlLxM%c~LwT4BV?OeDn7j8s6y#bFTNJM|wY~^%EY$|qy z>W804*tgO8KZT0R(1{O>dl%u@u;t#4u>{%|k}e{)K*p{pBrQa2jf~w`NE(P(p^VKa zBvnLgsf;ZtBsRV;j~Ks(`DWw9ZZMJ#iW@pa#DD8TIE>=e-()iWh-TUq*8Vorsc5F< zVg2ti!RctGi9|S;lNo>dNw||8SqwExjWY$_jV3bH-L5Y-&It!~Ic`Sd%wkCJ8a*S@ ztB6v8V&lAsII)OyPlx@mqm3%!8;Os5{)&vu&76c;glm~$R>Y0Wuv)||oFzp(kQvsC zcw%PQDB{VnwXqMH;S?Q%bZjiB_DvA5Z-yj$95k}W&QbuPSX4SIRizP%2lRx{1SyTzMoR z*q)Ziv<<)&6ogEE32%WbC=IIfmb{f`?i&Pp9yb^N-zN9zjl9&zXHHN%FIvxE1N z9v^>sUapxbZg)j)$Y7F{79QeLwAJO;#j(;9N46e(fZw(OyepymWrm2We(l#0`e+jtf&C7&wf7?xco(MH@4;;QeOPaQ08iT=!Hf1Mu*LoqcG;i7 zYxd``8}q(ve+eJj|A9~KL-LDWCG2EyE=7O8=;!=$*N6z-=lvvm9fIw=zx<+Y;X$4+ zzvxux#RuRQHQ+@^;aBj1Sj!d&$b%;nKCHk>-vFj|4k`)%OQ!II<@y8bPAa$w>mM~D zBJs|^wCj+Ci}?_%P$te1Sa+ZA=7acPPfE(bStEqEn_VvsvCo|Om#-U}MKvpY+RT3o zzU-!K_p{35tIA=Po7AK?YjFDW*wROkuU;|J^oqa=(|tGAEhhx`%A_|H(={spq_ z<4D4PgOxuCdsw3L;PCz zvNE|h$fA3Ld_?pzxv&}Hqayq|;bYVk*NR2h$x==Wiuo83%P!)?AKS4pGhH0jC{HWS z-S|ym=CQ+0h~1Fshxs_I27Vj!b#pBiq{Gi@w>uE zTIYyTU1e6qzOhn zoRXH4TQyvDGk-caJ)B+!Rm17q#kf`ur zrz*5_(xH=619~|%p`U+K3$Ax+!+56-OmphO15Q0y=+uX0P6Jr$G=%jCpLR0fStk=- zavH%_r!nkun!sKs2R?F|!Pic6IPA0_)M-V6PHR%xX-m?acBHP;o^)_7C7qoPq_5M7 zTw?QY^Mi#)agkUI=#pmCyx|5eaJ4SFL}$koa}S@kxze|{^U0&pPY0CQ0fe% zwljzZ5GFbWw2Cu?)_1O=O`NM~J7*Z};tZ#~oNH;GGlC9uM$)UDQFN3un%?YOM{jYi zr&AG5bH>p7oU!zNgbz43(np<}=rZSKy56~kKJSdDo1I%}sdF3MkW zn0~~WOn-K!(m#KkyXYzBZhGFC9&^}<*gYy6l=D&-;bCa2+;bD5ZF0{|gtkkHBtoyq zgH;jQp$g*{5!#6%U50k4yCm0N&R@k42Ts4@uc_Z5y|U?-{B?1#ik!d7%hWB1s(aCu zd^gG@HjJl}_!}rqIIxvA;%{Oo0J~@dzK6ese9K2PnZJLHX$j;}Qo#3OD3L5A`FtNf zO`=s`KYs_)LNpJS^Zoo?NTvf}K7WtD4=HpS+{i!RA3`PiC=~FIcp;?H_0WZX%s+w3 z^clF6e~M{g`aHCix=K~(Chub4G+GLE`Dgrds7iN1HU0(8#dP|!w_9w|QzFC-S za2ju z(H57A7OC~WX_0?j!oL$$leaJ0A}Pw=sk|vS@8fHUaPidV0e+M`0RO?)i!3B}VY#)7 zg>8TFU&|GeVfeK3Vlw!G*SSwR?fx}eD97?+Ef`8V$73qG{MQSvNl-(I>klT)&+@xC zMrE;MR7O{d>s;ensSw%BPo^*#5#53}vOTq2_wJV7;&!L_+{&lk{VJ}5w12KwkJjs5 zwNkMn@2quIA>?25n-aEIaSH7s_SRVC<( zq<9vn&TI%dbD*a4AT)3uf;P@v=;F+SE1gG>{5}ekoyXu&=W$r$%!lU?Mw};Li?e?K zN$nyywH(8zRhdUZRbi&9s$MMB6(N zI@BqqlbsSe9pOw&TkUM8#m*~qhqHf^e(da`-#D+*;|PCu-c*RQM@eFDRRxfv!|Y9ZV_+$-F{qsP7rL{S;(Vpr$4;wlsn3iqtrO-5pv& zrbgJ+JJ|4CjpXVi*C4r^#FXYu!_~d$9It!Pc{d~_9h9j;84jmU7f;eN&HP*|YKTTU z=jYlPA=3^^^^eLz@F;_@xX*t;DuV|@X27>G^BYX~pEa2DKWi{KX4DojD=ijDmE-K( zv}0xPq5!_*2)hs#hHc+*goW~hnqH9Wc)R^~$(E+l_2E7ueo-L`j% zF)Aa|Gl9wuGjXY&*c1<&#b(X0w$rS=82XD7&@%WYtnDys=UN$ItJti&7*fMl$Q1Vd z??=pr_*P~{A?%25_?VfoXR$PyXPKzB@nX2qt#+<=ken$Uxz_&|6-EVcUN#*E;M(%-ljjBt=7Y{%h54zDWY?U{k~mK$h4)Xds4V9g1TN zao#$iAr0>fF_%TmHrNLlV)y#luo9!hgHa?M&4)Hfad<~ZKEd-qJ zAkjGt$KuWl&Qa*@{0RBZPjHQM3~q9MhN;dkFv~d(vz^}&&z^u1=On!5`~mMe zf5Ml}Dfr1b4Szak;FNQofbhQ=K&*h!3Q%GP7zqVbk{ZxR6GR@%0-UT0nB>WTO$q}J z*$@bl=K~33Qy_nd6a_-01oQ3+q>+7rs^k-dp9j*(p+I$VBv6AK57Z>51GT6Ys7hAzj@OsHxK?N@Q7af;a=d*#qCVT?4ou#`cbii_rZ zhm@@vjj+`(qak_UKs5-LBLT85!sxT%6?lClG#!5$Vmu+-3pD@&%fJjQhfrVzR0*tvT7gxN z5m*h)0&AdE;7RBdSPQ)Z>tIk|J&Xwy!YzLYZ$o$|!YP5L;4aK}f8YgpB(M<{2R6a- zz>BaN;aY@+ftO%oU^8qE6u~Qj29ig+F*tNvwl&IttGKIHdX@}sFsce^p zL9Ss7swIAuK^+LR=YKF9_QRnajJ&Z=lR1n!!kq3>hop zBSb(uP{i-_tDjL}=Q>U$*Sybta%Ze1?r}3i3c-=LUEmx(e>iqFKUr**2VTQT_Bu|o zGMr?)agx1(lk82%3G9J3fw!Pz;BDv^*b4&!`*5PY1ET}`;ika5IMLpNNr8V4VOii~ zcq#A+d=dB*z6yK>-vvI0-vVDCaXdhH;7gJeI7qSr{~_H1ACt=ihe&?lEiyE4Gwp3!MA8h$coOYO*);Bj+~ zwhjzmH%8W>J>?xHj1mq*JGy`8*m6d?H<+AiAH`GNCrO`sg621%Sc;WYm&XBwt7mbz?H%?Bkd&xeNc9uoy=Z&mmB zH0F&x6^AgZB@R%Pzxsr60r>|{HTa8UfuiRqIq+^EWI#Z z#?oXKcTUB!ERN5T>}E->m}P0aM-oBF>Pkx1#`R4mbXd1W%;j?P2SZ3oR|@ab7!%|tmuDj=a^a;t1;ezOh!dt zY$38-s*Nr!gOm$R_hQH9=F=6A&4mQ>Fp4hTA=ZqHV)Gf#e}}w9$b3#(=lR87kfvxc z6CQE1&}y+;#&SIC9gmo_mSn^bXxrSh1nRiOUy53Yhs+|6wJ?jlcMBV0z6;kt7ju0R ztl;`)Gs%xAcP)Q`l0vx5@7tC*Co^Vg>|D~^CQN6J7Mrh#R}xWHZ0?AdJ9AZWeTey5 z5lHVL8E&rEr7xXl*feiiRbCziuCU~CoV-X{9&A}($!y2RNejU}R9P!LB6Hz+rI z@3a^?%a+A4UwqRMeUCI;@`Q1G>`kkrgT>}eOh{%&~G z-wluRcf+IpZn)MR5yL>^fBB z)$5j;pA{6FUxXbj^PBfi3?kyAZzJXbu^;4AWUTM^TCrlSEQTzv9?52FL-EfGRjBSO zTptxP3UFbTy6(6B)?Gi?L}ti5TyX}Aw{`qk@q>Su6;37VLf3Ksq9R1^M++e*Wd0OQ zDTF%GJ&s$}y^za1eu0lD6m?IrEY?_FA~8ujif}R*1r4Z##B3RZ%h!BluFSQ$PE zhT%}K3Vai+14o1P;CQe;{EF~oumSuL%z*R3Ou~a%#0)kjiNPi$DcFoO3^pgtgO`v? zf-On!U@I~x*qRIuwjtw!ZOP_TQBydUA5U{|sv*o~|Ub|*!_%gByk z53)0uN8SwfA@2tJl23z|lS9FNXM+RCx!^#m2M5ul;9wdG4xu%ISJ6hn zq5r3@bAgVkIOF(t@12?5y#x7%tOz0IL4W`oAfOx|V1V+5NB{-WfF2+cmPe?HAfSH; z<)vT)RBdT3ib#oAL<$NCR8){6Eji^O^#K%7(H^i^Xn6^N(7AW-ZpO(iCx`!i>~FrA zJ9B4eW@o-Jb8(#68ONJFaDv$jOUwePL$TB>#i%(8rrx(Z*nUc`;oTB+;s4XXnGVC}Fc#zD)YO)6ZM%LqD@)jN;+wmy*5I-gd@fbOVpOAmxr{p{Q zjC?QkB7RP;<8eyy1Wm$|vB=u#fui}5`2E0T!<7N5| z{+Cut-Gx`^dw7-pS?Wi4jaK6i^blUBpWzMq1=i4S@FqQrx9BB#eidtJE#78^0A>r5 zB?*fq3&K+5@m*3g1ZCNRvGyXsI*K6cDnhKMuvs5@y}#gWkZ8b$iH3h{v`AtT1hP_j zK3OEQX(G&)i96VGsVl^t>;=(;Z4gb_7OC4r3fnH4v7;iDeJu4;k;YDlbaqN)u(P5$ zJ1?@>MbRP<5G?~isSQN7JHtT84z+A3d(H3y$aM#_4A~oM;mu;404eT(mL)$Qzq>ba zw>o~;_$$ruy6H!06Z?O%(}XvUQ?#!*O?b02+3v0qBIY7^+`j7moKg-`VtY=RJ0U;T z<1+U{NBf%N+r%0LP3<4->p-n_(A{;mM6J_S$iCsM_ab4}$z?7CNGH#=WPr>w%j_C? zH$aY=0oSooh_*B;?VI*3u;~V)p7)-}*OFE=kaIgpi=mB(u#H!ilcGiPrHBffjS*N4jj=97PW!_Z_S4hCv6R?l8xCK!XFsIc(;SI=Yegm?b zUkBzaLQgn>$^?JH4Ku#K*4@rkr?=FI9NGNi6<4AiSR$gVxFTM$Ft`~XLv#CR&OI8b z;#OS%%(*B!DKPb5!YS?U!QH$aXOiBf_ZBy@G8-9}t2o=Lh0;|CB`Fa~Aig=DaZrBF z8OA#o@p06e6N%&q5#~XwlG{6s5s@4k<_(>bqDT%2b98?XH^StI^Shd{a*y$=9kQv& z8##T8)$MljaACa=1P=$YT~7AGQWCp#pbWdc7hIBSr-^PS;&@SN03UM;y9$0hccLyI^UkpI1_?IJ|u~r&{*_>rlL2bOKmCoK(6Qu z-9V7$~xVkpcIh46DR43>-GP%cKm zZ^TGgFGj;gQ3P*F-6o1*zZe6bh_P@=JP2Qkhv2LjuWT}QF42QO=WRJx2qSs2+k-EH z0^TgK$ygWyja%P>!dO|BZ?>H;i>Q4#?hOIfc)ovMvXf8exShLg;jO z)7u%9JgaWAET?>=L1x11O}aC?Nlb*0D1~G(Nj{t?q=_leTug;lqD+Z&b|TW*u2*3L zl7aI!ysh&SaC~DXH_`zx$9qm{ngvtiOP_eeEr=!3u(LyJH0C{Rb=}N!*|W*ba05o`fFaDOntzh5=$e6o>^dTr7mKViA;x#ZW4i zDzl!Wi6;`}?Y&90QMa~t=CMcJdfLgIi9vtvIQWpytFt?Moyr_&>&{+h^4lX;6H|~6 z#{E{HiE%UcimXFpD|OofsfGN+9Cy{tQ>=ny(U|w&J4BFo;JID_X_csZwwtzAYrrix zHBL1aZ(PJr=8nRPoN+evE`>C`cFHwZ0YOS>4JT3eta# z=lMizqK<4-knX&Phh%%+v6!>_%1JF|@Rq{d%k%4-fs?u!73s-))i+bcdut5ar7(Sh zFZ)I9lpeJ$3e%VO^NHFiJ!&e_pAYacV-#yWhxp{pG#zepZZB9jR83(Y(kfV!L(Z_X_e;UhJ3s6?!S#tT1EvSf7kpsGF%!kOzG$fQK|I z!LJo$oZqWi#mDQFMmL2i@qL}`5^%uZWn2G+(=Q=|arqqA8)O@8s zwXF&=$=8hIb?g5#QC~A>bTiu&WU{}RGrAd-nc`bIGj%hE6=W)(<`c6+I zbS+}Mzk)pCYvm)|$~pyk)c28nuOpQT@|bVLX6WVlIR%;N8?m=_D{B>GmM^kbM_yHs zC;TGDT5Azwwt~#|&;Cn#_P>9pFmw1^ABKIaGrJY$N#E2Q)Kl}Cf;`3N`INE>9Z@T% zr+qW?l8&f}neX=is`vsuH`R92LcXZJnLroa%*8k&Tf&Ro|CjKk;CyL?%{#&U$F{^Y z(81GAF*Q5J)G|G7;b|LBf9vThp6-h&EsrUGM)pRRff?v4bvc-!XZa{|yc|LyQ|bz- zo20Ik`jXUD5Hio3C;2Z~=zma40|W{H00;;Gsg;Po@Rck9+Dikem59I1;Vc26T?46= zh`(_^EdhlN1F4mWzxhoq0cQgZsg;OREBW{kxdH$H3ZLLPE&(2&V3jKY6rUhkEddR` ztWhli%K`(bm59H3R4oD80t2a)h`(1?Edh!G1F4mWzvNjh0W%5%sg;Po8e}a25CQ|K zm59GBW-S4=BMzyRh*O*qcVuJ+003JLp8=^W0VSW_kSzfTzaEM$0gVO&sg;Pou8=JO z+!6z+m59HMqb&j34g;x`h`(#HEdeG81F4mWzm&Tz0f`y|sg;PoAl5AbRc)FLe2#V7 z$FJks#x{GyY;=iDN_#s`HeqH)Uc;Q%9Vt<)8RHpS8;>Hg_9WC}cOpGBf3bwv6uFUH zQxx)&M0V%(zVnussJtX`|IXvM&a0iW$|VukM2$ivWWr?hDyX43B3A~FzO)S?=VMgd>Y&mn$@AF^jjo8(iV}@J70jE7 zS~X#>I~Hqn$B##};*E|+p73`#mISKP&iCA2&(a{IkV)!mN7C&$7(WtQ> z2XFkp!?#aHa6<3|ReW8eR;r@Do9cOv?$hWsCo8>k`K!o#xdaVEEs3+XZ0vwJ#4IB>5tDhU_rf|=}YK_(ea6U6mYIITNz=R7L-5{2Zxv0@R zDbbxP8cmcbS%kd$NSM!VVlYK_=Piwj1k-M7^qXMv9gVJv?t}NBE7LbARHx%24UN$0 z57BMVNT&-Ty&0*~Cz4s^eL96pX4@aoDOO5(rj1T3M0akyPRk_86iug}#92&R-J11P z$vQ=f!uOBp^p%*s*GZ?Xf+N#(N|k8ucGKyONEi3eDL0hsQ15R#eJZK%7@e9Ay20kVs?0nPB9|A^^#5t#cbXTUoX;1boxOQn$1KG(u=0E zblM^_`|y075=6mop>ECG#*1|9RGh=KGG9@jS*lZrNb{EKG*!%gdS9ofMcQYTPEU&T zy$^MIm9aFgLML3>k|(aB9W8v@bX)pG&t$?S#k{mPFOQg)4(6q!dFe!+FM6iZ&i7dR z^|Pr|`uf?<<|U0hub=Hgxtlq?8!DZitYRhi$gbpZkIbO&JMew{!VD^nU)YU2@e8}t z-Ht3wIMAIu2?rjf@%Q+C@%|oEx_Ez2@+{upivqcGN)P1@B+sE-gMR0bo&!q_+RAfW&HccjPJSyF z%u>5S8K#YDu+pGMn0kOTriq|rrd6O+rZb>NnLKL@a;aXc4C0Qe>7b{$r5ZGXDQ&eu zk1@Rl8q9P8#Lp*{_@P04SoYtb0ZboOm|joeUg!Hph%$sp;?2ap#53>z#w}(Pm(s9* zO5P(teQVh4#J$+u1wGC!gAnHlCNp9`rdyzPOo^2SwP(r(NhS+G;`J0r@{V6;P*2u- z9wgc91WBJ8eq_-zAc?UWBwntA+-%$TV}lH)MLxO&l8U6Qw`^yD#Nr3gK(+bVB%^o@Bwo62GN?PZ zz6z4QeFKtQ?%!<1$oJ89kkqfi7ONk_K||TgCXmDk|I`|-Q6L$utsv2By49fJY%v+s zi^&7(%@p{VC3Ax$tHmIRdj=%qmblHz^hJ)gn2A4LqKA?6ePCie64zwRf8gs z=zRu~tOB+h_$gqnvi>0PJRc-kodn6uN%`EWX$eSdzXplFCSO=_hl3>3l^|*T1tea2 z?=WZ>M=J;MUZI-pv}i7x!X4e z6?5wjAN4(G(90~_1Cki&-&(W|G=p1H4q4GQfu^yn({~0f zvHH6Jlxwyw`QD)CS#2Un!kz==v24gugYubnfyOg+s4mDjXKOQh9zbC`wJlRc6>0(6g-QI%chpDWGhYodU_~>2lnXEdxpYnxC*zm_x{c7tT?KYYf@U=B#06#oXv93OhtJ05BWNJj9Hb5=i=gJeJ& zowwpn1xe5U1(K2vxL{?v*+&okWXawFh0SlYuR~OMMbqEwN4$;VijHk zTEVoZEyb8a-V~RhG!myz-`{eUK{*^h@$Je9M_BoBPG|1Hz2|2@r4${qtLfEVpRZi8 ze2yuLTW!GSTX@B=D>pppRsPLX=6a`es65kOMf_~m`}5P@=Fzy7{ASi~zxN7!?W~hu z{*PYeqdw&i;x?Rn7K-5^wF7(3d6oNJwLBj#Dv32Ke4|d8UcT&A-s)4%oF26|0%?4R zE)B5NH29iVx$2D`ecv9_2^3PBEtxkQ$;fVHkIx=mJPhPd#|NR$(?q~n&KrUy= zK=skD1|_lk1}Xp?#my~1E@y*hyv@0|jpI)E4na`qZnjvHMzZoiR?7-ZOnezNK7|pq ztG$uUYH8}}-!OU{tN`S4jvei7*yU?D!3{TZxuLVFkKI+O)9<=zkyykHNoqcBCGWM| zkTJ>IFc#-4;dPepUq>yqH;}dYQRO~0ewWz($)yFkVf>f8ARyptedUnfxY80DsIc>Yw#EqkzAXN#IST3!* zZ_}|U_hGapTsiAa#o!WdCGiKGWa2yZB*Y-Z=QVqih zwF$>cAxnIv2?x2HUGLa*o-u`7xvAWI;;yYZXQ0<0QQHun6;1i z{5r7H?`nvH5d3Cqs%GFkD^y*?u~)+yIVHXG?Vyer)5KN|M~cldrb%7Ppp^fA8*g|1 z;LrJ34r8$#?D1DVVE6Jh4%iyjm~z#BnEe~~P))5^)%K3n{|u1JZ+m>r_GaoT4&>^o zP^=f3nf30@nEo>!Sc_1D_O@P3=&Y*X;!&PjzrMGxAP{M8gjz?NT4fhjYoi|f)1VeS zq~ky?XGn&(p>11@g3GqKy%Bd$TG=B3JLX4t$n>+h%Isbi;l@aY-nHHpGe9oqsa}7{ z!_{%8+q>3RaqIcMW^0;?>8w$G86Qr0#oLDtMI+twb@n4|fLP@Fp2OD*dPl8??g}ip zZnm738=`yMr|Ua!L?7(B8wQ!W{61NhomT?F&mcU~rRAsjjx(CzW_j_QJyhT-Nmw!%~i-Ob<4}>7q?J zeI^fhOSKM1p-F0(A53^Y6oXvO`K2|QQ`A)mW$(Pl%~kViG>565aE98lMs42CtDf`= zdfK9$!_n6kcKU)khSAD{bJu$6gufNzGRWmTvbu(9sJe%<*Vq~{{yLU*IQrXS9Imh# zRtC5!iMw_ZPsiE($->xYpt~JZRV<;o1%Ezd-=pr^%VxD zCAL2F+xICiUQ%r>>ybF64OZK5J{%zr9JaI_68r4TZEeFbyX86@9s8?cxXJ^x0OazU zc(Se*|NTJi1&$DwBCU__Y)840fSG?M9 zMYIS~JK^Dewsw%h<80l0L~zDt{9sjqgYS^=T0g{80qY;A zr>nW37>@H1%f7F#s{1B|W0*KZRQJT&d@{2DkjuTZ8%Opkjr_qgBk-!Of-}I;H}YfCc$bBzKv{_ zOH-|6v-9$cRQE79MaG#XcbC7Eunm3NjBi7mNw0LDiOPU}R4Y?IXxzK)$D?Gq_}c4{ zoPoZyYistUc@y-7)n^rS8gv$_ckyj(bN_93s2@z$sj->^@3J`l59D%Q=&3dWTC#`q zStZ4$q7uHJ5Q`rxA@!r{|WdBtSfio@P;#6>2g- zrto_#dT^E629S5G6Q;<&bPasYEz|L^;CgH3_{BwzyLbY9sjf4A`IT063vvpJ@+YX% z7^KDzn?`@U^H_L)81%;1K3}JQY#FI8W>8LYRU|0%&IYTgFh5Tg3s-bN^@gN2aMY@f zv!R<*04BXG_XLp3xqgf43y?v~V^P{?YBnI5Lv3Tx;X&#LpC}^AG%UNWk^l*;HOv$R z23DriIJ0B=76Ua|2w}M7Yc~5om*16C7XB=BU!CpsnyKLIvOMp)@Kl#9w(g8rXLJ1IoR6_5c6? delta 71920 zcmZU)1y~ec^zhG;0!xQf^>H`(jkqMh^!!ugmf<;-3=n0QqmzM-6$mu{)grF zd;jnEdG~of=bpXy%(-XoJ+m`Ab7yX%17o1N0|QH42?-ek0pSS(f`OXVXDntUeKo6U zK_?O<;A?yl2?M+wBcXzq$0X0-B{3-r9?-6Z@PB=t#+#Fq#lI%SfLj<-FvC_}LqIt3 z75`K7jZ_}qf=Z?aFS99_<3Et$!Sw_(X?VFn_5xm#k_*5~EpicfxkJeuFHZ5~zrn_j zlFPzdjVU-`cQAGkTD%&?|Mo5cZ^@<*f|rXFg8yU594|&m3fGM&B_C}lW#Huwr7*l? zprVDB3RLv)(v^z(q5K#})fh(w+P;4H(&$Huc(eAPh5Fti0w4h(1E2t)0-!be-ah%@ z47a#@jox_o8beM4{!Ok0BUG*h695c=1%TZs*Mid<2XDnu!wtnz!)wG*!xtQY*C>(@ zgesB{HY$=3SwrB1&Z?}4Gw+9va2AMxK$)z;%u4{f>`((?g|0{v0T2T`1t0++1t0?; z2cQ6;Y+R9~+VF!r?r*0G?Qf@U>~E(@t9Ynsv~s2u7KgXxRM0l&R6G-U3;(vnL>Icm zL=V8wxWvTxD+ylP-o_Z(-p16}-o_kD2@gz<$>^!25CQ_9I06F0V_-8~Y9OMODzj*=p0Qdm}00aSq0E7Wv0EhsH0=xte0}uz0Xr%uw2|I$v(YGuW z+P5qXAOj!^AlKNpEI)P#?Ysvravb5ODxGcOS=vsVp-9qM+i z(CBupn6C;qCsj~l^@eM59ZG@lqbPKEQwc!1ad=aOg9YAphpk%457#PXR9np-v{08q zRRA>rbpQ0+8G!COP~gv|iV8}o!MHnbnwLL*}=04xC>bZY<`09yb%0DFMf01g0- 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

@%F>%oc?&F zslO#`!A|E9X_okSIv$e{*Mz{w5xj$$PvLL$CO`*Qvs$wL&8 z`8L?*`ld43eunXhpYcZp@g&95-|8mts zB$IoBY{6lnoL?l9_aJ8|4VV0~{lc>faVEWdK_-KIg~oaFf-NB9%s2ta$`?(Y;3u0$ZU&soXzbOHr;LfNrdZ+ zeS+KbQH3bYDwPSbg1-C3s~HAr6em&U%&$X#eBlzRyq)GawI;V3(4kbzb5(>7c0V9a zTU2~$iosiE*~Gkkq)5llSA9o3GoOdGNB{6Z;qZVZsmX-8habOH^U4whsq%e|_JG(J ziaSeOaQ+8(tV9l5vsQ2)4UqmAC|5?1$0S*j46a=KY%Lzxs5BNL*To|?z?E1Ww-z!| zLMHAO73j-oAczcO_*ff5*`O5t0t>uLqa^Oj^<6kXLGBVMPBymS_#MbY&?<6vc)n`v z4!*YnONEeCG}rLUs);#VcoE?Mz%Yju)fO0htUzIl(T2(^2?1idrn-AGY3ERXjR9;tz+BkP}J+j&5PG0$E$P*s_{rR zi&Ezx75pfJm&x01Tu1yXDsEI7HdtMbQRdz^xO<4=r@nGeWH|@&nkaT|jIJcJ(CypX zclQ$X!M3HnXK6I$#_;WU69Eoh0|%01+H zBO=#De8BzYlH6U9T|%cw!TDbl;tS6n-a8aEcfHuByw61ElposhF+gze*F_H@L^%CN zc;i?|wDQMiRh=@}jKdR+Qy~%CAHOty2#KH-bVCN=#0|@Ru-Mi8@kWM_YuFd@H8tp> zPB!g__#kpvRwkY(oN|_*lbWAdlwWb2Un9quV8dESxPQq$F6jPnHIYxrYRc_OjA{Fx z`+ek>ZF*8G4Kag82~uRriGm0h`wUHX>aQnKl(ULfXo%Qf&*0lq^6ppQ`@uK-2-+4O zpne-6HSJO1x;MXEgQi#dq3o3rCxDM_2zk7d?GN z&7R6GOKJRJDv5ENW`3x%REM!nL+6MTH3j}k(0jcsnsl9m8Ig&#g=m7x+ARd#%YeBj zy#167&6;mkdtR}AS-95kg&*V>_QRv7=R?{QO>$ZHZ0v@x^16&jC&f=?Sco6BT%F9L z!ltVR1~p!fONN`4gw&C7)8+TD?!KWIk}OjmGjL8N94J%Y*pYf~_B4i}+b1D&C|y-M zj+dQ>+UR{>zfS;}nn0tF4SeJ)WgR@7wfrFcm3m%Wa)p&3mVZGj$SIhW!%8lNdM>wfJoNYljSnpq z^6RYb>gX!6(Gk!*$(8Mr2VcW$qDM_<)T_x)w^ln<(0B!lyeZo$YOBgpJ&TK=C)S9l z$)UG4KC(MfR8J^H#7lX6Mehz`*vR&FILm$6&T!oj1w6hl`m%q}Xy#iAZ-zzJt?jovG(EeE3w@uKv~2B!2URpn zBRJSI5*)Poe{v6N^D_$gQqEP_rwv8rb^FBL5SPz6Un;yHAA2Qs)wW_I8WA26kTDQt zdXlBjX=x#I=0nWt)QeX53)7u zs~mnW^CfVX-)bNuVy~@V7<@M9`6<`yo{!}Vs)8T=jB2}K*NKVBrP8Whl$1X zaLdK~>OaXdmBWbYK6UKTiA^J1FrFJHd=TTi-~qnq--U>ceR(CcVa7u$YY97d6W-{Bo+li>xH^n)!6jv2xU_r7ld~TrrKDM&RMHop&K- zeq0%5AC|6UXcp10;^*0ble$*PV&5j3*5X3UhBWIMkaRugVbH~0tD-;8pzQ7{LTqg3 zgzd^->1?5Ut-`ymTr_{bhI1@r@`@DRd{-so`W07-m#=d)N=%=RWlxGoy=qEdi2BSi zNz^o$qyEmcb{)r6ESO=@-xWbJe`BQRa8l+dUle(<`tw7_3h8v=Nz9_AdOc@{`J(R) zG(3+hdIkeGFW#uBzY;XnWMtwlaNXZ-%53uYp!B51s?sLQYRq2Mj%26ZB=4$`Yl2Vj zEdxo<%4>0zd+{cW**5OBH!J$=DvsYIJSlja&d3ucToFIV%u}aqso@rlAn=Rgy%i_3 zyp0v>v%D-Jy|ePV5OX(e`qq;%=P<7H)>}Dq4guWrdq+OGzvb1(8T;M$H90IjKH>Z- z^?F$_<*?`&^(kTOMu+n)6Wz?g8S3@ETXsagYMjKI+JeIzN*e?(%c{neZtgtDXW2fQ zT9Ip#NJuP!cIp@MT1fHh!0%6H&e?;-?cefgw1v%Td@rM_4Aghk31ulKICw{_(-$Z< zxy$3Dyl?UOrC%GxD|6WsT-T_6X4{tyU0A;8`(Orj;;ljV0s@}+%f|qq|%GFS9J5!Oz>}HHhLvCqPGwvOBCQ!Zri-m zMQH_%C$=2-^_jG>pJYxP{Ww2nb8=K1fyl_=P3$sMN=?z$y?m0|K`|{=%8$Q}XZwv! zpMsus!x*X;3tz1E2{X}Ujqb;0v}wOZFlcJV5?K|#Ct^_FpdheGuhx(sg@eav_KJmO znq<4;fzW~Ig-2S3xROhV@ZGHsltI)F8}djAgzc~IO)9>AvhuXx0@+J#gJYpDyP zT%Ru(ZWVfd+}sXG`}n2ePE|!Xowuqqt7=)mxb)At6P&zGlIRh~%A(IX3q_f@w_}uS z7uVAV-pcaxsj4g0aCRp@!S`mjZ|QFhmnJCVISy(FvG6x$;wJOeDMnai*{EBVnfL36 zFgnu3_A=z%uJmQOS|b!Y*}L?G_0v#&AH%jfd zBcdlmoNQlWj*vA}k;pS{USE$E9O4bXI;lYC_!5V*;++k}QHhyn2mdD7aQy<$RqN2h z*DP7jNV}p0T=L6F`=XQ()oYv^;HQx~#|YymRW}}!^B9CH9MJ{ylPD>zKeB@JKl?CN zXE?OJTy;?MF#ob8G8E66D(mP9e^01Mk!7_9N5;6deNm772y0GAMDhF5ja1Q_>BVbK zM^p-1OIGH)uV*c^XoEIQkx$--3%GKqdgPq1zhf0N8u!`%xn%)U3F18`^|>b{ID6Rx z&EKchRfg zohwV~GTfBYvku03X3B-|3OFWdZ3t<9aH!ho^!tj|<{I4yoR2radV@4@lh%S%QPZk_ zCNa7$k=MVp@z&;&+}zFY)JKEs)|c6Fu2C=TC05br@jm_Z*p$Rsc}!BE_oyj{kca#= z^-;FtGZtHfMWc+_CrigG*w+^BQT4Hrh%Sw>lE}WLyddPO{!|dYiXd#IV^QMfO{VTt zORsu`Om&XhyNk?tA5zk;L7Mo5HmT~{k@WdF*8*7s$#49f3wub3azZh$-jsnaEG;bd zLC$J>9{sg4xmEo|;nS~`DXrKq3d6q&q_>K`=)`hOPB2w{mR4GQ7JG~OM##B3l zD?YoFHkiFnTW*tJQIai}IXrT(xx+QDS?Xy@>>W~+dnFM2{?N#~=XgoimhKk^R9)~d z)K`wbPd7L8JN26XhHkX6F@lq$d*}O_zM_mS;-aH^etss!_|Et6G(>WK$rqRjqo_aUQiBu&fVYd6zd;sI^iL|ImPL2FJ2_D?NIk} zKF`12Y>Zzz)nQh^IdQ&e#XMgns%C@vr5?hhLeXzK>SvE(%+ugTMQSf+-4}-RZ|-W0 zABl&+Ule}n6C`<;`hL%7tf*2Pxqhed6R>DbshQY8FSX_nW@IW4pQGdF9ji`|oMLoaNLygCD1;5^U(=_YfX& z9tVcY-+W|yrTQwf7O$yMWbg5n?u77@tik7`iRUb(3v17R)3vWYaivk9(O;x2k=?R# z&}$*e*?GKo;&OYzG_Y9OAAMm=*o)^ID5L`@tRj7$lwL(<@Zvy_8(4NV73m3jPvIz zbqR>Rh)yC&LSmpSMI+Vym@EAyJNk9G;-_-aP3%p0B$Rt5=F!QpoIeFR{-Y zEfNsO#~o)MOFn%V*WVUgfY>M(#tyZliMyv}{<3_7Dd)$4RW(Vgp{|9wLpaVa1MWM# zvuSv587JFlQqHTGvdo@)I@a*+gssBEQ*&tG4Z$S?4y?Ao>uQ=S8`)P)7=O>wUFGur zz)G;IwisiXoRWW`AOX=fMDj^4au0bf$o!mx8twJB@fmx*g%uBvUE>v6Tv#mB-b$WGEIO@tsHKWd*ZjzZej*Cp>Y3l6)4vt! zaYH@UqbA`H;{a!6iFmFTGSsC^5kR#U#$!G$VA-|w?I#hOSO)At{j=k zCWZU-HT*-&r>`$chG0}W>8r_s<-#=lv{rJ+ znZkAbibWK=d2Dc+eh|VoK2OF{F~Dl_UNDS@-Z8;?!DC0nKr>o$75>;v_}-IrhM6=z z6@S$n@rs?JCwF3m2JDI)?h?nu7fMttjbZgJV_0I@am16;*WDkga>RPRrbvAIV&U{I z_|P}5xg9*z?WYHw6Fjc#0aB7R?l zc!I?GSsf#y>4UcT>~V;t-5NVXa(MEC32GVrH+5H67{7I9W|YX$Z!FQte*QxYVd>YGWdC9l=_J=v5zq7USQ@!x`_rSxe z_yv*cs`xH)CNc@8Pq5!U79hJ?@S{!S@XMtb&U-Q{g#)c6p4=C6&pWFLQV}tTD&dE4 z#l0fjkl*~+w*-`qd=oMzBOCDppdncN`sf`x9R0H18X8YMkQSKyD8lQqq&59 zDcy0g)Zn+9C~zm1D($~mn>NPZmyS$m{O9`}y%ctUfhj)SyQ8|3_HrRV0>?J+X zZNjO}DUi=oRYk01J`%}_u1{c*4Xwebw_AgM1I>3s0;rMei2=6JbGV!X688Czee}9>z3915IOB< zwTQ>ygW4O$KZ#xr97im;ov5!d=eZ&u2TZSRutsWb5q^h$vRWWqtsd!4^?WzMU5DKr znE4J*S3pFY9cFqE)om=`l#2y??n}IQq)7Jm}P!PNWg9`&c=HM zO0m;YHIfO6v}b&7i_s6IQOUJ*HkKIa!>HL->im5vHLdETEVtO;2d{ zf^ojK`ZZyjnokL{BhN~iB`?WZFse(u6Xh))67_C>@^!=W=)h+^bbLsTs8=l93*vEk z+oxFJ`lP=d zIQcr`Fmw56!X<^BD)5*5jXMMPk`zsXCVv0!UH|saQykRdc?8?@eu514mwSv(nR%;ukh8f)%^>a@C?w2Fj9yLw&77ca^~Oc zQ!|fvvS)738Padw?CK$RGm8x7xKVH^^cqd$HIi_hpwf>BgU}`&Wv2~;a2=f+bXx{t zJUZ92Rt+L>^FCD#ltHhUiKImru}f&q`+REmE`j}8dBYZ$skxn+Lh_K*F zD3sV!H!C6E_*|G;pkwEgJCQcGXrFvH&%yrXL>~Agyjnr3I*Ek9fTIqdPp7kX+=GTR z>20T*C9;)w5rS_wqj;+@$HJOn`XZUFctbOR|LTclGjcJgmT)Ya;Aw<9#FA~O zM!eUG@jO35ByPCRx7XjwtWf52FHB6lJXDLQR^YaYVX=m=Xi8bCR)m_}@Pf?z;(%pc zeELhLATk661<8;e3(?()lGIll^wPDLDq}`*oUdknksN2Vm)UChd%Dt@OkM9~5;q9D@acO7ue!*$4DrzlYPZRhoPm9Z^4*s-H z-qin7Vq2NdSkE*OooLY&-YfxfORlL>BX(h@EW-IH#25MQcltl#3P}gnMHX)hER|E# z2#bEhtmXLbwoFbJzFZ@$?Oo;m^Eu7qlxugkL+i*iCC-m`vjp}Ji!b1n{fvKZ7@@Zq zREu{^sei!WdBb#oh3|dfZP7GB6NP09a$2#4KGI8<`=ego$GW)OmC~3ZnC(!>z2EPW zwL;xI+$Mo|%91et_K+5vh=y2_RqB${9SX6_l)b;ZdNUV3)RB9Z2OTCxMYzS)$~((yobR2l^iwf(5Xwvc znm4YXn3SH47eR*5!G4>KnQ@8Oe9bT>pje51O^kbOI8tSlfBn;Nw3{PIyqCva#s@D1 z`?7HZq<3wqYcalUC~|v!4#yg04Se;2vDJ&FOMUI4#3p~3@2D{5XmF(Dka~)*oXIB{ zwa)>D$<&BZr4{luo0?t|4#{&S`B`Y542d(Th?8JcZZDb$l(0Cmy`?8Dg)4?11?=q>6vRFTA2sbl!Gw#mqj$e&?UMhVKFrF$naItuR;qu&MqrJysCBn& ze6I3goj)J%g*o=3ax;^S4a0Pa!#c81gBn);#1v{9@3GZdiS-?m^L~f?Buz3jefl}{ zC0+&P9}v9S@e?UvahQR=O`WDBUjO|MiyDd5G^*wJs(hm9F@uXkrh=HC1|OR;dPK(c zGI`0>oWp%o{YBZXEv7q#z46@-O3mv2cVoR0u6bDZbRuWgrIMaH>kTwAN7}EusfoaB z%g-N)X{Ev0jWvv{+>{ecYg6hOGOH%xtT1OLNqod0?Q*fLMO2`pNzr=1oXm`9yOj;; z)Zv$b-?OPCts_eajZNnWO-Xuh#G@xJ)oCRs&u`M5JUOIYWEctDlzBt;{^}ZQ-S|}b zT0x}*N+u}n=#OY9b&$8e9-bT&MvEqm9XqJm2(xeQ;Lly#9I%wOwq-6Pg+pE3u2s7{fg-lzy0u`s5+2=AT+nor?*+|IuLmLve?wM=;$7vCvo#rAGQi0X$D7 ziCOn^&+VF&J$xJAyF=ykT7kpv_>ANpDp{Ki;oBarQ>zVOnez=*ueR}?H9z=JHA|oP z!s3IR$MY<a#0CVriL$A^QpBS!rwr>`OLyl|b9C%Uu?Nklw!Xfx zEi8g~H>{D99m%fGb&DqOqq15z`SY-x^v5chR~}sUhCiEs{k2jWC&agp!s{7Vv~(hSJ2mDmmar~EKHHX`otv^s|0YpayHTBCf+lXnqE=>ka!;SK zIFNPAMK%6|sc{g8?Z*jPj04JdFbZ4}7x%oumyyK#B34#0MVxaKw;iwYzE7vQFgF|4 zgz)X~T2qibASvBiz#o~z9wV{gI)HWa-D948$*9tJ&nB^%T}9E$uYT*q( zees`0Eoz$-A4?pG_)<6|?xz{7D0SBx9o8WbOSgt;PHJ;3k26Jks-$gdS6zsN&H8Za zE!e_mR4*>gU$vE%kN2fU z;bWv;*7&8UcV*isMSN1Gle*X@e8rMyBS@E=-LlNx$Y;Xc(&(tzOpxV(w1C>E zIPTHR#?DnN-(-W*dk#!KJ-6R36+|Q~h2AUrNg#gg@LJJ>vPpjEW0k1h#L(qVr9;g3 zNpUUZGTkQ)$uNh8v6JQ;o4fKnT_nwFKM_?v6Aaw_Q68@w5@Ll4tSzm4(w!1%XJCE1 zBe6@Vk(sNx;*lfj+2+QV#JScwyq)nnHE-6|QB`YOk`O-Tt}bTP&<~WlJ7O0ver4&Y zZF@mo$K4D1Z7h$LlO)u*58tmKCS2CJU1`L9tFPa!U)6utzg8kNgOta=yE{^*)*6dQ z%$y9HelyWa>hOPA0Aq7(DSz)jm}`l(HT>-Ermqa- z6eS1~HGeSuQ0kP6WnmUlZ;8Y&jE&SDz`(~%F`*dcyv;GE3eyOT&7e(=UMI&-;?Id8IZJ@U*@a z9I_zfoA0wOZzkE9+v}Hd3l*PF@ampF*EipH|7IXfh~M)ro&elDl^=J1%KX~+96sc6 zQ9shgwh5jbc%WQJbdY?@gT;BNRV%0Ir zOhUcLJ8#bg^fMe-)bs==t-Sb>`tmcbJ@R%|%jb(MUtXvVTs@%lnfslV=OxEhGWTjg z`GC-8;CEckXCc!CSskU%;&nAY1u9qbAMVY4ak>^cGRNfXdBA?*^Rb3%bICgUfyjf; z$10i4Z4-CrFZreZ#0?(&oqBmKzX%)gS@Kr5tZq^h?M5b~(}qv?-MrnvxLrT6{W@k? zAO}nG!$RC}jahm6A|vLj^r1GCm;-~_VN^GyI5ec>_Hxu(Oy2aP>#Xd4)8i%kkQ^}~W2l9-o`VR#r5SZJ> zWH!_CxQ0SwvDb2dI` zf!YVD2AE)|J0X#MGp3}QuC*W^0g(+8PIOHdo*X`rT_0B0G(3!a%gvgdE9`Y1Zm$<;*!WnpHAE$x1-7>lft2j@JN53n6}?qb#cunVKVgVouGRU71CO@g3V+;88O zfeU8Rp8NPMIPCCOefx!9+wBj2{cguRmON@B;9q%<{dq|ahvwURtb2#k?XtgY5!SI! z&e4?fDzbS!W1uyDl0nFSjqlv&YvtG(?hb4T{#5=&bXheEW ztQ;51?9Bnzi%)%FTyJ$Tb<0XH&E8HR@J{gDQZX^S`_Ho-Zl=C@Cyx~*rkq?`wn#{y z7?~`StIrH)XofTVbYRbD86`%ph9pt?zGUtjxavPT$K3C2n!TN(Arr3?ZZ@2-(_km1 z^)`Z@0-8IMhraDd2_?blC1j2Yl zSvSE#mn&P>x}tYqPdf)ss8O@i;priJ*00M;S-LhAJ6cew?8D$lPZ5 z_7Vq$taR#ock|9KA(xg?D!TnkgQ1yvr!iI*g>uW6w+J_d{WVuG2A*)|W6(Z&!f02S ztb%C4?di@o650{|6-R}^GSrIk0M?EuT>sf4^jb?Jnf^MTMf4>twpmeM{{&6JL}$OR z*gsA_N&U={h~o}zdpSGX{GfigGo9e7PPzWqXJMswtmQUAoM$H+Ra$aCd?4MMU?v zuH>G!F!KfcpcX<_McC@RUPoJ$SrDng4qH_;Q`Akxg^{)hmt$F(_N0zmEUtm@H#^H! zSNr<{nPhr?E(Tr3fbUR#6=sUOa0id!hu{{?j#3DL=^^*`uM=K*CwRYq5fSYQ)jb$c zyY*Fe$=%}`aX<};<5vr;>lJ)2AE?tI!e0!n_^9^CI&|Y&Vu>WHY8Sl#Y}js$#pbD=X$~Av9XxXWM=>a%bUle^@Js z(N)ApDypbXsHi^p5yh|)+H*7=dWR)<2D4L03a>T6qo1z!txT3_Ot+3i;&XNG48-k@ zx6Yqu+J=zJOV<-gFy7KE>DN9<$Tbk*#@= zOjPgFFo$^eNT+)s7BfNb3;c8ANiBJo9u4@t8_5X2jGMkezqZ@ysjrQkWoD3`*N&l? zW!cAK+&N#!K0hhqTw9nP>dhtIX&OdUPG%L!N{L5rQ$oWUR!KD-mVEWS6=5>FG-5tb z()P1LKmC3xD_r-QfG69Eqgb(^8>8}qVn2M#h&1+A^%ElcwU8YmR%qC6KqqlYby_kY@K-pOtVLlO(&Ag6O=w_%fB@Z>!vf*yDC(7 z3Dc96z0d`NKUEAP2(Q{8(_y?RTv(TtQ!_}iR#`;+3rjQ~Janu!En6|Z(!mn(a9G5) zCf)Lqn&x(J4lz$Uw4RPj@0R8~Bdh6d(zh|8Rc>Hm z*WD01>=v9%N-j?`l`72;C-bSV>F?zZ|EyyeHeQ7%#P5g45~a~~x!BZFRqZ~7b5Xxx zBvm=lrHky*^v_vVOmFTbO?*0`LI`PAQeab>D`x+WiRJa(6&=x*Rm?DX$J0`g&)VqC zd)@G(gtC`|?GsEjQ}3Da3N4`zwSy1Z-kDJ|-=%MuGc!A;d;Ih}^(~*7^y4b7U6~g> zsn2fJ45Wv_&7B2sM@*s1zAx&>o5+X9ELl7;C(Pk1BZ>>K6<)#MuGYts0@0+0OnRDF z=Lj$`@bEB9bnV+ni};}#O{`Pg`pOR#SfDUjM*xZf2E9U8pdbkb@t~z6DKMxR?d)DUs0%g9!}1dt^b4K; z(|Ga8>*p{q@(GZifm8#0{|F3nKzn~!3xlTEP!_k}!5{&&pYmxKM2Ys^F$aTQqNQQ) zVURi+M;2kwB6?a>ufw2CY?KG&XMpJZ5`Ms-eF!Cu26G_=?Tqml2KnKTpHASt=Ikr` z5J(CO14As;hLIta>>@t06_^pUjhur+MCd?sIB*CX?PmoS4*8;Z>-&>d**>jL_2dCO8y@!X&kqa0u)Kp*FRbLQrPL zsoSKbYr+uNT{_)~obE(VcVeeI@zb3I)V6d@66z^HX+PPMgp!`@NuBPbp|&S`GLX{? zRC?6UWFez=l#-|CWvI>5Qx1A3hB{U+mV=Vii{+s<^4{ z)4URt)HHtuYHONThVW2jP3qZHhQLncbf;24fN76MTWQG||H1dh@1PLHpmT27-dBDGu2 z@(ux{_Ai?iaE!LO0KDs?T6_RqN6~3S4HVI~>Ow*&(gY-eqHsXyOzHrky`BI<=dIqR z3td6!B?CfdvjPa+XTkO}x&sIuV*n7^3sr|Mq=&L~1f+|i7k`Mb^QCqASLnWHQ+04bwr0gwucxQ5SUo`BFa0}<5V{5_fY5q#e_GkcbRi{FRxW_ho@)W2vpNQZo;muj z&uaPz5V}X70HOVfjGx854G5iSA0Tuq`NWx*8-UDE(YgSkt`$g$H)m7{$QRYh_V!Gc z^@oTj&t&0$=->~zy*q1N{6mIQXR;wcK`76v(`VH6hva5-p#W6t3qVmQQkd0+B2d%^ z$O}bMbGncpimCyHqeyIC7fM9y0g6YF;ldfM0z!MXdanzGp<0*!kmCnk2!WDq07Azw zUp%8%fI?BN`b%fg-T?|m$&8kDq1z~W3&;aSDl59sEfjSD`lq_9XZ@`M`<~3KFu)=ssY)fEa*P# zLN`zp3dj{jp8=syN0l#Um-_iY^z`s7#rewINQAoQ&QbMLGlfq>8hvJ414ga-R( z{pbXQ9uT2}v$#2c&^?EKoR!=a5IWPTKcswkCaVGDgnv39o&@cZMM$QB{)Z^kNtTMN*>wRVG?OD?iW$y+f6l zAlB`DBZvK>76vmo<shwsG9uWk^lyV{9i!~ul{8s2UY@zk+;t2frpmUE5v<3jF|2Q{~x9GKT0PkB@Lth zk5U_0WWYmOf~kkj(;W~a<~x)Bs8S;N!6gl?G>uXsw*O0s4fLA^m6Hr0MoeahznWvf zVg>1ciu-@-7XN$BPQ{|k(N{@&+*6MQ$tV#o(i$AHpz0=talY#|I9Rhky%4Ov=fBHQ*!1z$ytY5&@P?i2u|3H_VP@W~3MxFy8<5?mGV;CzQw}FmcfX zkPnCvlWF@uO1Q|a(f|3``M;bSbAd!E5T2$}hKcL|07oW(Jr%0P0$JnN#K9Qy zvtnRe`YSkugHl#NsR^yW{^AKP1j*NB1k@EZDx-iHF+0Tm)j*1LqXd^dR7U@| zCicG_5uKf0XyURA_2}axpm9{#K5Z zM=9%|60lS73DyH883P^qTP^*{KR#zbmnc!4`3i^;Q%M!oAca%~B|%@k%>glD{=SB) z7!%TiLJy)tRskV;TFses(rkiUu)*N}ea=@J{$;}C00ZZIEO-r%o;AU1UhRzFLQwD|=#FQ&P2b!B9lt09)=U3N(<=I}5U1wo?%x5#i1|GCU(H;|uOK3N z^8DZGB?gA(UmhEf|1yCgt!U2D^#H_(=~wu#W=`Z75TfU<&)oFZ0yy<5!N~s4sn`E6 z6JjKc7F^F!vkkFeg6sp;X95>E(6c{(g<*(6?<(V?UydwY@LSWeV z{+MBa*MjLI{}`@-D0HX+I|0Oqd424k23a~i=sc>y91ys7jsMf|8?3&PA)f#tdU#%- znxm%wX+AhTM5Qf1Xc>nDbC(#5$lq!EzDFsuBFDg*Ejcm=ylh7g;2lrx!7@-BF;E=g zzY@0DK$*y+Jllt4YRCYUOQ2tW-_%Suk>5Z;(9g!;r+LA|`GOPz5;pYeE;1U(&}U!n zX)C6~9?CC261D7${0fBVZk?PqV^tl%kQW%iyhBw&9uOl|;}00p5)kVB1mta$40Z%V zW&=Xc{Wg@0;};A$4~UiJ^u@i8+w|K>VhoHGuz`a7`6~>gJAomY&!4>@kg=1Le+tIz z^riUUdd$Q~8=%I@cj|6Y_eR_hs8lc5sQ)-S9a;=BIOJ^S>ER2vvA0K7v7U|Z0I+4m zJSIne1c1(y=)$S!6BUvN09vGbDmwRw0S+PG^S~i$H6DnjAmA z!`BM>_5y6=f0=N?{+J*OIL^)ye3v{CcTh4Xu>D;RNDu6+b5$6%xU z%WbVN@*IfHf~szE6mxnmP{{z>-_Zv}&!XS3cSf=>gM3*}^OcQ>2)hfk!@&mLh5GYX z7?vghYWZ3f4ly7fp4Jjoq-TH_&s~%Lr-=%=1Oybkr=Gm3e%FrzF9TrvJH;gVKd}Rm zRV?5o3@Y@17CrMNFsoo-`#W@^67WBye;RrUlmHz%6y(f^d8mhc0Dv1cKA(1}zbJ!n z@?iUWe4bmKg>>|>@j&;N`!q|!fmZg@LN5Ntgx~he1bG20hR~tv&h@_0>GWM76R`c= zDa9Me8=xyJsItTYV#MrsMi&1O4WdLPZpbwNOeigUFsB)b`){4aadY-XXNKy`&Z-KJ zE0|~wVEcRQHt+n)!VkF!N=}LD%zAef?M=`TFR;=48M@PxDJt~L1WC?*c0n9EjZXlJ z_|voqrXl*}BmvuL2Z*APTmbk`!!!N*jd=ukstf_!`M;bK#(?2b%Y;Mck;yO1 zhyFBV3jp*zY6B(O&p_gU6woJ`ARtCeoE)S!fD5RqxSxv7c|8C=D=Xj-J$lGd)#ssd z*<1j9n+Dt8)z^E7d=2baP-Xa;rB12|R8+wB_c>(s_)lMlPLn~MBzw`;Trf~%p8phj zzUWNd$I}gcQlkQBP1gx<0q3m$2_RK=W`PVl4S?!V6DTX=xwP`rlcWg_Q6jg109~b@ zr%jmWpCaiv_5OK>LK_exX2TVv%O4REB?|e7YyrTB^7-jhgtvi|g`^#1|wyTwER diff --git a/src/com/connor/dfl/plm/dfl003/Dfl003AIFDialog.java b/src/com/connor/dfl/plm/dfl003/Dfl003AIFDialog.java index 54949ff..2ed607d 100644 --- a/src/com/connor/dfl/plm/dfl003/Dfl003AIFDialog.java +++ b/src/com/connor/dfl/plm/dfl003/Dfl003AIFDialog.java @@ -458,12 +458,10 @@ public class Dfl003AIFDialog extends AbstractAIFDialog { } else { MessageBox.post("名称、来源码、分群码不能为空!", "提示", MessageBox.INFORMATION); } - - - - - - + if(itemName.contains("\\")) { + MessageBox.post("名称中不能含有反斜杠!", "提示", MessageBox.INFORMATION); + return; + } } else { MessageBox.post("请选择创建类型!", "提示", MessageBox.INFORMATION); } @@ -569,6 +567,21 @@ public class Dfl003AIFDialog extends AbstractAIFDialog { System.out.println("输入的旧品号-----"+oldId2); rev.setStringProperty("t2_OldId", oldId2); } + if(material.contains("\\")) { + MessageBox.post("材质中不能含有反斜杠!" ,"提示", + MessageBox.INFORMATION); + return ; + } + if(weight.contains("\\")) { + MessageBox.post("重量中不能含有反斜杠!" ,"提示", + MessageBox.INFORMATION); + return ; + } + if(Specifications.contains("\\")) { + MessageBox.post("规格中不能含有反斜杠!" ,"提示", + MessageBox.INFORMATION); + return ; + } if(material != null && material != "" && material != " " ) { rev.setStringProperty("t2_material", material); } diff --git a/src/com/connor/dfl/plm/dfl006/CreateChangeOrderDialog.java b/src/com/connor/dfl/plm/dfl006/CreateChangeOrderDialog.java index 00352f6..b22c4bd 100644 --- a/src/com/connor/dfl/plm/dfl006/CreateChangeOrderDialog.java +++ b/src/com/connor/dfl/plm/dfl006/CreateChangeOrderDialog.java @@ -45,7 +45,8 @@ public class CreateChangeOrderDialog extends AbstractAIFDialog{ //判断是否为变更申请单 final TCComponent itemR = (TCComponent)targetComponents[0]; if(!itemR.getTypeComponent().toString().equals("T2_ECRRevision")) { - System.out.println(itemR.getTypeComponent()); + //System.out.println(itemR.getTypeComponent()); + MessageBox.post("创建失败,请选择变更申请单版本进行创建!", "提示信息",MessageBox.INFORMATION); }else { diff --git a/src/com/connor/dfl/plm/dfl010/CreateProblemSpotDialog.java b/src/com/connor/dfl/plm/dfl010/CreateProblemSpotDialog.java index b70a3c7..8247f0e 100644 --- a/src/com/connor/dfl/plm/dfl010/CreateProblemSpotDialog.java +++ b/src/com/connor/dfl/plm/dfl010/CreateProblemSpotDialog.java @@ -460,7 +460,7 @@ public class CreateProblemSpotDialog extends AbstractAIFDialog { String type = selCodeBean.getType(); TCComponentItemType tctype = (TCComponentItemType) session.getTypeComponent(type); String newsid=id_field.getText(); - System.out.println(tctype); + //System.out.println(tctype); TCComponentItem find = tctype.find(newsid); if (find != null) { MessageBox.post("当前流水ID:" + newsid + "已存在对象,无法创建!", "错误", diff --git a/src/com/connor/dfl/plm/dfl028/Dfl028AIFDialog.java b/src/com/connor/dfl/plm/dfl028/Dfl028AIFDialog.java index 578c964..353989f 100644 --- a/src/com/connor/dfl/plm/dfl028/Dfl028AIFDialog.java +++ b/src/com/connor/dfl/plm/dfl028/Dfl028AIFDialog.java @@ -3,14 +3,14 @@ package com.connor.dfl.plm.dfl028; import java.awt.Color; import java.awt.Component; import java.awt.Container; -import java.awt.Desktop; +import java.awt.Desktop; import java.awt.Dimension; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedWriter; import java.io.File; -import java.io.FileInputStream; +import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; @@ -25,7 +25,7 @@ import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JDialog; import javax.swing.JFileChooser; -import javax.swing.JLabel; +import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JProgressBar; import javax.swing.JTextField; @@ -36,7 +36,7 @@ import org.jacorb.idl.runtime.int_token; import com.teamcenter.rac.aif.AbstractAIFApplication; import com.teamcenter.rac.aif.AbstractAIFDialog; import com.teamcenter.rac.aif.kernel.AIFComponentContext; -import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent; +import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent; import com.teamcenter.rac.kernel.TCComponent; import com.teamcenter.rac.kernel.TCComponentBOMLine; import com.teamcenter.rac.kernel.TCComponentBOMWindow; @@ -45,11 +45,11 @@ import com.teamcenter.rac.kernel.TCComponentDataset; import com.teamcenter.rac.kernel.TCComponentItem; import com.teamcenter.rac.kernel.TCComponentItemRevision; import com.teamcenter.rac.kernel.TCComponentRevisionRule; -import com.teamcenter.rac.kernel.TCComponentTcFile; +import com.teamcenter.rac.kernel.TCComponentTcFile; import com.teamcenter.rac.kernel.TCException; -import com.teamcenter.rac.kernel.TCSession; +import com.teamcenter.rac.kernel.TCSession; import com.teamcenter.rac.util.MessageBox; -import com.teamcenter.rac.util.PropertyLayout; +import com.teamcenter.rac.util.PropertyLayout; public class Dfl028AIFDialog extends AbstractAIFDialog { private AbstractAIFApplication app; @@ -69,86 +69,114 @@ public class Dfl028AIFDialog extends AbstractAIFDialog { private JPanel btnPanel1; private JPanel btnPanel2; private JPanel btnPanel3; - private String hzm; - private int iDataset=0; + private JPanel btnPanel4; + private String hzm; + private int iDataset = 0; private String datasetDir; - private Boolean outPartBool=false; + private Boolean outPartBool = false; private JProgressBar bar; - private long fileSize=0; - private Boolean allCheck=false; - private List noFileList=new ArrayList(); - private List datasetList=new ArrayList(); - private Map pathMap=new HashMap(); + private long fileSize = 0; + private Boolean allCheck = false; + private List noFileList = new ArrayList(); + private List datasetList = new ArrayList(); + private Map pathMap = new HashMap(); private String pathString; + private Boolean isCarryRev = true; + private List carryRevList; ExecutorService pool = Executors.newCachedThreadPool(); - public Dfl028AIFDialog(AbstractAIFApplication arg0){ + + public Dfl028AIFDialog(AbstractAIFApplication arg0) { this.app = arg0; - this.session = (TCSession)app.getSession(); + this.session = (TCSession) app.getSession(); this.targets = app.getTargetComponents(); - + } + @Override public void run() { - //显示窗口 - init(); - //启用查询按钮 + // 显示窗口 + init(); + // 启用查询按钮 // qryBtn.setEnabled(true); } - //获取下载文件列表 - private void getload(TCComponentDataset dataset,String path,List list,String itemid){ - try { + + // 获取下载文件列表 + private void getload(TCComponentDataset dataset, String path, List list, String itemid) { + + try { TCComponentTcFile[] file = dataset.getTcFiles(); - if(file == null || file.length ==0){ - if(itemid.equals("sjj")) { - String noFileString=path+"_"+dataset.getStringProperty("object_name"); + if (file == null || file.length == 0) { + if (itemid.equals("sjj")) { + String noFileString = path + "_" + dataset.getStringProperty("object_name"); noFileList.add(noFileString); - }else { + } else { AIFComponentContext[] itemRev = dataset.whereReferenced(); - String items=""; - for(AIFComponentContext context:itemRev) { - if(context.getComponent() instanceof TCComponentItemRevision) { - TCComponentItemRevision revision=(TCComponentItemRevision)context.getComponent(); - items=revision.getStringProperty("item_id")+"_"+revision.getStringProperty("current_revision_id"); + String items = ""; + for (AIFComponentContext context : itemRev) { + if (context.getComponent() instanceof TCComponentItemRevision) { + TCComponentItemRevision revision = (TCComponentItemRevision) context.getComponent(); + items = revision.getStringProperty("item_id") + "_" + + revision.getStringProperty("current_revision_id"); } } - String noFileString=items+"_"+dataset.getStringProperty("object_name"); + String noFileString = items + "_" + dataset.getStringProperty("object_name"); noFileList.add(noFileString); - } + } return; - }else{ - for(int i=0;i", "-").replace(":", "-").replace("|","-"). - replace("\\","-").replace("*","-").replace("?","-"); - //获取文件用户下载 - File fmsFile = file[i].getFmsFile(); - hzmlist.add(hzm); - namelist.add(path+File.separator+replace); - fmsFilelist.add(fmsFile); - fileSize=fileSize+fmsFile.length(); - } + } + + if (name.contains(".")) { + // 获取文件名(不带后缀) + name = name.substring(0, name.lastIndexOf(".")); + } + String replace = name.replace("/", "-").replace("<", "-").replace(">", "-").replace(":", "-") + .replace("|", "-").replace("\\", "-").replace("*", "-").replace("?", "-"); + // 获取文件用户下载 + File fmsFile = file[i].getFmsFile(); + hzmlist.add(hzm); + namelist.add(path + File.separator + replace); + fmsFilelist.add(fmsFile); + fileSize = fileSize + fmsFile.length(); + } } } } catch (TCException e) { // TODO Auto-generated catch block e.printStackTrace(); - MessageBox.post("发生错误:"+e.getMessage(),"错误",MessageBox.ERROR); + MessageBox.post("发生错误:" + e.getMessage(), "错误", MessageBox.ERROR); } - + } - //获取文件后缀名 + // 获取文件后缀名 // private void gethzm(TCComponentDataset dataset) { // try { // //获取文件数组 @@ -175,150 +203,169 @@ public class Dfl028AIFDialog extends AbstractAIFDialog { // MessageBox.post("发生错误:"+e.getMessage(),"错误",MessageBox.ERROR); // } // } - - //文件下载到指定路径 - private void downloadfile(String fpath){ - try{ + + // 文件下载到指定路径 + private void downloadfile(String fpath) { + try { long hasReadByte = 0L;// 已经读取的字节个数 float result; - int progressSize = 0; - for(int i=0;i list = new ArrayList(); - Component[] jcbs = btnPanel1.getComponents();//将勾选的内容存入数组 - for(Component component : jcbs) { - if(component instanceof JCheckBox) { + Component[] jcbs = btnPanel1.getComponents();// 将勾选的内容存入数组 + for (Component component : jcbs) { + if (component instanceof JCheckBox) { JCheckBox jcb = (JCheckBox) component; - if(jcb.isSelected()) { + if (jcb.isSelected()) { list.add(jcb.getText()); - if("DWG".equals(jcb.getText())) { + if ("DWG".equals(jcb.getText())) { list.add("DWG"); list.add("dwg"); - }else if ("STP".equals(jcb.getText())) { + } else if ("STP".equals(jcb.getText())) { list.add("stp"); - }else if("PDF".equals(jcb.getText())) { + } else if ("PDF".equals(jcb.getText())) { list.add("pdf"); list.add("PDF"); - }else if("idw".equals(jcb.getText())) { + } else if ("idw".equals(jcb.getText())) { list.add("idw"); - }else if ("ipt".equals(jcb.getText())) { + } else if ("ipt".equals(jcb.getText())) { list.add("ipt"); - }else if ("iam".equals(jcb.getText())) { + } else if ("iam".equals(jcb.getText())) { list.add("iam"); - }else if ("STEP".equals(jcb.getText())) { + } else if ("STEP".equals(jcb.getText())) { list.add("STEP"); list.add("step"); } } - } - } + } + } try { for (int i = 0; i < targets.length; i++) { - if(targets[i] instanceof TCComponentBOMLine){ + if (targets[i] instanceof TCComponentBOMLine) { List itemlist = new ArrayList(); - //执行获取零件类型的方法 + // 执行获取零件类型的方法 itemlist = getitemType(); - //定义bom行 + // 定义bom行 TCComponentBOMLine line = (TCComponentBOMLine) targets[i]; - TCComponentItemRevision rev = line.getItemRevision(); - String objName= rev.getStringProperty("object_name"); - String replace = objName.replace("/", "-").replace("<", "-"). - replace(">", "-").replace(":", "-").replace("|","-"). - replace("\\","-").replace("*","-").replace("?","-"); + TCComponentItemRevision rev = line.getItemRevision(); + String objName = rev.getStringProperty("object_name"); + String replace = objName.replace("/", "-").replace("<", "-").replace(">", "-").replace(":", "-") + .replace("|", "-").replace("\\", "-").replace("*", "-").replace("?", "-"); String revtype = rev.getType(); - String dataDir2 =jtf.getText()+File.separator+rev.getStringProperty("item_id")+"_"+ - rev.getStringProperty("current_revision_id")+"_"+replace;//创建版本文件夹 - File csFile=new File(dataDir2); - //数据版本创建自己的文件夹 - String dataName = rev.getStringProperty("item_id")+"_"+ rev.getStringProperty("current_revision_id")+ - "_"+replace;//文件名 - pathString=dataDir2; - if(!csFile.exists()) { - csFile.mkdir(); + String dataDir2 = jtf.getText() + File.separator + rev.getStringProperty("item_id") + "_" + + rev.getStringProperty("current_revision_id") + "_" + replace;// 创建版本文件夹 + File csFile = new File(dataDir2); + // 数据版本创建自己的文件夹 + String dataName = rev.getStringProperty("item_id") + "_" + + rev.getStringProperty("current_revision_id") + "_" + replace;// 文件名 + pathString = dataDir2; + if (!csFile.exists()) { + csFile.mkdir(); } - System.out.println("cs"+rev.toString()+list.get(0)); - String dataName2=""; - //遍历视图 去找符合条件的 文件夹已经创建 - getOutPart(rev,dataName,list); - String dataDir3 =jtf.getText()+File.separator+rev.getStringProperty("item_id")+"_"+ - rev.getStringProperty("current_revision_id")+"_"+replace+File.separator+rev.getStringProperty("item_id")+"_"+ - rev.getStringProperty("current_revision_id")+"_"+replace;//创建版本文件夹总成 - File csFile2=new File(dataDir3); - if(!csFile2.exists()) { - csFile2.mkdir(); + System.out.println("cs" + rev.toString() + list.get(0)); + String dataName2 = ""; + // 遍历视图 去找符合条件的 文件夹已经创建 + getOutPart(rev, dataName, list); + String dataDir3 = jtf.getText() + File.separator + rev.getStringProperty("item_id") + "_" + + rev.getStringProperty("current_revision_id") + "_" + replace + File.separator + + rev.getStringProperty("item_id") + "_" + rev.getStringProperty("current_revision_id") + + "_" + replace;// 创建版本文件夹总成 + File csFile2 = new File(dataDir3); + if (!csFile2.exists()) { + csFile2.mkdir(); } - dataName2=dataName+File.separator+rev.getStringProperty("item_id")+"_"+ rev.getStringProperty("current_revision_id")+ - "_"+replace; + dataName2 = dataName + File.separator + rev.getStringProperty("item_id") + "_" + + rev.getStringProperty("current_revision_id") + "_" + replace; TCComponent[] datasets = rev.getReferenceListProperty("IMAN_specification"); TCComponent[] datasets2 = rev.getReferenceListProperty("IMAN_Rendering"); for (int j = 0; j < datasets.length; j++) { - //获取数据集数组 + // 获取数据集数组 TCComponentDataset dataset01 = null; - if(datasets[j] instanceof TCComponentDataset) { - dataset01 = (TCComponentDataset) datasets[j]; - }else { + if (datasets[j] instanceof TCComponentDataset) { + dataset01 = (TCComponentDataset) datasets[j]; + } else { continue; } - //执行获取后缀名的方法 + // 执行获取后缀名的方法 // gethzm(dataset01); - //执行获取零件类型的方法 + // 执行获取零件类型的方法 String type = dataset01.getType(); - //判断list包含hzm字符串的值 且 itemlist包含revtype的值 - if(itemlist.contains(revtype)||allCheck) { - if(datasetList.contains(type)) { - //获取数据集数据 + // 判断list包含hzm字符串的值 且 itemlist包含revtype的值 + if (itemlist.contains(revtype) || allCheck) { + if (datasetList.contains(type)) { + // 获取数据集数据 TCComponentDataset dataset02 = (TCComponentDataset) datasets[j]; - //执行getload方法 - getload(dataset02,dataName,list,rev.getStringProperty("item_id")); - getload(dataset02,dataName2,list,rev.getStringProperty("item_id")); + // 执行getload方法 + getload(dataset02, dataName, list, rev.getStringProperty("item_id")); + getload(dataset02, dataName2, list, rev.getStringProperty("item_id")); } } } for (int j = 0; j < datasets2.length; j++) { - //获取数据集数组 + // 获取数据集数组 TCComponentDataset dataset02 = null; - if(datasets2[j] instanceof TCComponentDataset) { - dataset02 = (TCComponentDataset) datasets2[j]; - }else { + if (datasets2[j] instanceof TCComponentDataset) { + dataset02 = (TCComponentDataset) datasets2[j]; + } else { continue; } - //执行获取后缀名的方法 + // 执行获取后缀名的方法 // gethzm(dataset02); String type = dataset02.getType(); - //判断是否为所需要的零件类型 - if(itemlist.contains(revtype)||allCheck) { - if(datasetList.contains(type)) { + // 判断是否为所需要的零件类型 + if (itemlist.contains(revtype) || allCheck) { + if (datasetList.contains(type)) { TCComponentDataset dataset = (TCComponentDataset) datasets2[j]; - getload(dataset,dataName,list,rev.getStringProperty("item_id")); - getload(dataset,dataName2,list,rev.getStringProperty("item_id")); + getload(dataset, dataName, list, rev.getStringProperty("item_id")); + getload(dataset, dataName2, list, rev.getStringProperty("item_id")); } } } - } - else if(targets[i] instanceof TCComponentItemRevision){ + } else if (targets[i] instanceof TCComponentItemRevision) { List itemlist = new ArrayList(); - //执行获取零件类型的方法 + // 执行获取零件类型的方法 itemlist = getitemType(); TCComponentItemRevision rev = (TCComponentItemRevision) targets[i]; String revtype = rev.getType(); - String objName= rev.getStringProperty("object_name"); - String replace = objName.replace("/", "-").replace("<", "-"). - replace(">", "-").replace(":", "-").replace("|","-"). - replace("\\","-").replace("*","-").replace("?","-"); - String dataDir =jtf.getText()+File.separator+rev.getStringProperty("item_id")+"_"+ - rev.getStringProperty("current_revision_id")+"_"+replace;//创建版本文件夹 - - File csFile=new File(dataDir); - //数据版本创建自己的文件夹 - String dataName =rev.getStringProperty("item_id")+"_"+ - rev.getStringProperty("current_revision_id")+"_"+replace;//文件名 - String dataName2=""; - pathString=dataDir; - if(!csFile.exists()) { + String objName = rev.getStringProperty("object_name"); + String replace = objName.replace("/", "-").replace("<", "-").replace(">", "-").replace(":", "-") + .replace("|", "-").replace("\\", "-").replace("*", "-").replace("?", "-"); + String dataDir = jtf.getText() + File.separator + rev.getStringProperty("item_id") + "_" + + rev.getStringProperty("current_revision_id") + "_" + replace;// 创建版本文件夹 + + File csFile = new File(dataDir); + // 数据版本创建自己的文件夹 + String dataName = rev.getStringProperty("item_id") + "_" + + rev.getStringProperty("current_revision_id") + "_" + replace;// 文件名 + String dataName2 = ""; + pathString = dataDir; + if (!csFile.exists()) { csFile.mkdir(); } - //遍历视图 去找符合条件的 文件夹已经创建 - getOutPart(rev,dataName,list); - String dataDir3 =jtf.getText()+File.separator+rev.getStringProperty("item_id")+"_"+ - rev.getStringProperty("current_revision_id")+"_"+replace+File.separator+rev.getStringProperty("item_id")+"_"+ - rev.getStringProperty("current_revision_id")+"_"+replace;//创建版本文件夹总成 - File csFile2=new File(dataDir3); - if(!csFile2.exists()) { - csFile2.mkdir(); + // 遍历视图 去找符合条件的 文件夹已经创建 + getOutPart(rev, dataName, list); + String dataDir3 = jtf.getText() + File.separator + rev.getStringProperty("item_id") + "_" + + rev.getStringProperty("current_revision_id") + "_" + replace + File.separator + + rev.getStringProperty("item_id") + "_" + rev.getStringProperty("current_revision_id") + + "_" + replace;// 创建版本文件夹总成 + File csFile2 = new File(dataDir3); + if (!csFile2.exists()) { + csFile2.mkdir(); } - dataName2 =dataName+File.separator+rev.getStringProperty("item_id")+"_"+ - rev.getStringProperty("current_revision_id")+"_"+replace;//文件名 + dataName2 = dataName + File.separator + rev.getStringProperty("item_id") + "_" + + rev.getStringProperty("current_revision_id") + "_" + replace;// 文件名 TCComponent[] datasets = rev.getReferenceListProperty("IMAN_specification"); TCComponent[] datasets2 = rev.getReferenceListProperty("IMAN_Rendering"); for (int j = 0; j < datasets.length; j++) { - - //获取数据集数组 + + // 获取数据集数组 TCComponentDataset dataset02 = null; - if(datasets[j] instanceof TCComponentDataset) { - dataset02 = (TCComponentDataset) datasets[j]; - }else { + if (datasets[j] instanceof TCComponentDataset) { + dataset02 = (TCComponentDataset) datasets[j]; + } else { continue; } - //执行获取后缀名的方法 + // 执行获取后缀名的方法 // gethzm(dataset02); String type = dataset02.getType(); - //判断零件类型 - if(itemlist.contains(revtype)||allCheck) { - if(datasetList.contains(type)) { + // 判断零件类型 + if (itemlist.contains(revtype) || allCheck) { + if (datasetList.contains(type)) { TCComponentDataset dataset = (TCComponentDataset) datasets[j]; System.out.println("下载文件"); - getload(dataset,dataName,list,rev.getStringProperty("item_id")); - getload(dataset,dataName2,list,rev.getStringProperty("item_id")); + getload(dataset, dataName, list, rev.getStringProperty("item_id")); + getload(dataset, dataName2, list, rev.getStringProperty("item_id")); } } } for (int j = 0; j < datasets2.length; j++) { - //获取数据集数组 + // 获取数据集数组 TCComponentDataset dataset02 = null; - if(datasets2[j] instanceof TCComponentDataset) { - dataset02 = (TCComponentDataset) datasets2[j]; - }else { + if (datasets2[j] instanceof TCComponentDataset) { + dataset02 = (TCComponentDataset) datasets2[j]; + } else { continue; } - //执行获取后缀名的方法 + // 执行获取后缀名的方法 // gethzm(dataset02); String type = dataset02.getType(); - //判断零件类型 - if (itemlist.contains(revtype)||allCheck) { - if(datasetList.contains(type)) { + // 判断零件类型 + if (itemlist.contains(revtype) || allCheck) { + if (datasetList.contains(type)) { TCComponentDataset dataset = (TCComponentDataset) datasets2[j]; - getload(dataset,dataName,list,rev.getStringProperty("item_id")); - getload(dataset,dataName2,list,rev.getStringProperty("item_id")); + getload(dataset, dataName, list, rev.getStringProperty("item_id")); + getload(dataset, dataName2, list, rev.getStringProperty("item_id")); } } } - }else if(targets[i] instanceof TCComponentDataset) { + } else if (targets[i] instanceof TCComponentDataset) { TCComponentDataset dataset = (TCComponentDataset) targets[i]; - String dataName=""; + String dataName = ""; String objName = dataset.getStringProperty("object_name"); - String replaceName = objName.replace("/", "-").replace("<", "-"). - replace(">", "-").replace(":", "-").replace("|","-"). - replace("\\","-").replace("*","-").replace("?","-"); - if(iDataset==0) { - dataName=jtf.getText()+File.separator+replaceName; - datasetDir=replaceName; - pathString=dataName; - File csFile=new File(dataName); - if(!csFile.exists()) { - csFile.mkdir(); + String replaceName = objName.replace("/", "-").replace("<", "-").replace(">", "-").replace(":", "-") + .replace("|", "-").replace("\\", "-").replace("*", "-").replace("?", "-"); + if (iDataset == 0) { + dataName = jtf.getText() + File.separator + replaceName; + datasetDir = replaceName; + pathString = dataName; + File csFile = new File(dataName); + if (!csFile.exists()) { + csFile.mkdir(); } } - iDataset=1; + iDataset = 1; String type = dataset.getType(); // gethzm(dataset); - if(datasetList.contains(type)) { - getload(dataset,datasetDir,list,"sjj"); - } - }else if(targets[i] instanceof TCComponentItem){ + if (datasetList.contains(type)) { + getload(dataset, datasetDir, list, "sjj"); + } + } else if (targets[i] instanceof TCComponentItem) { List itemlist = new ArrayList(); - //执行获取零件类型的方法 + // 执行获取零件类型的方法 itemlist = getitemType(); TCComponentItem item = (TCComponentItem) targets[i]; // item.getReleasedItemRevisions(); TCComponentItemRevision rev = item.getLatestItemRevision(); - String revtype = rev.getType(); - String objName= rev.getStringProperty("object_name"); - String replace = objName.replace("/", "-").replace("<", "-"). - replace(">", "-").replace(":", "-").replace("|","-"). - replace("\\","-").replace("*","-").replace("?","-"); - String dataDir2 =jtf.getText()+File.separator+rev.getStringProperty("item_id")+"_"+ - rev.getStringProperty("current_revision_id")+"_"+replace;//创建版本文件夹 - File csFile=new File(dataDir2); - //数据版本创建自己的文件夹 - String dataName = rev.getStringProperty("item_id")+"_"+ - rev.getStringProperty("current_revision_id")+"_"+replace;//文件名 - pathString=dataDir2; - if(!csFile.exists()) { - csFile.mkdir(); - + String revtype = rev.getType(); + String objName = rev.getStringProperty("object_name"); + String replace = objName.replace("/", "-").replace("<", "-").replace(">", "-").replace(":", "-") + .replace("|", "-").replace("\\", "-").replace("*", "-").replace("?", "-"); + String dataDir2 = jtf.getText() + File.separator + rev.getStringProperty("item_id") + "_" + + rev.getStringProperty("current_revision_id") + "_" + replace;// 创建版本文件夹 + File csFile = new File(dataDir2); + // 数据版本创建自己的文件夹 + String dataName = rev.getStringProperty("item_id") + "_" + + rev.getStringProperty("current_revision_id") + "_" + replace;// 文件名 + pathString = dataDir2; + if (!csFile.exists()) { + csFile.mkdir(); + } - String dataName2=""; - //遍历视图 去找符合条件的 文件夹已经创建 - getOutPart(rev,dataName,list); - String dataDir3 =jtf.getText()+File.separator+rev.getStringProperty("item_id")+"_"+ - rev.getStringProperty("current_revision_id")+"_"+replace+File.separator+rev.getStringProperty("item_id")+"_"+ - rev.getStringProperty("current_revision_id")+"_"+replace;//创建版本文件夹总成 - File csFile2=new File(dataDir3); - if(!csFile2.exists()) { - csFile2.mkdir(); + String dataName2 = ""; + // 遍历视图 去找符合条件的 文件夹已经创建 + getOutPart(rev, dataName, list); + String dataDir3 = jtf.getText() + File.separator + rev.getStringProperty("item_id") + "_" + + rev.getStringProperty("current_revision_id") + "_" + replace + File.separator + + rev.getStringProperty("item_id") + "_" + rev.getStringProperty("current_revision_id") + + "_" + replace;// 创建版本文件夹总成 + File csFile2 = new File(dataDir3); + if (!csFile2.exists()) { + csFile2.mkdir(); } - dataName2 =dataName+File.separator+rev.getStringProperty("item_id")+"_"+ - rev.getStringProperty("current_revision_id")+"_"+replace;//文件名 + dataName2 = dataName + File.separator + rev.getStringProperty("item_id") + "_" + + rev.getStringProperty("current_revision_id") + "_" + replace;// 文件名 TCComponent[] datasets = rev.getReferenceListProperty("IMAN_specification"); TCComponent[] datasets2 = rev.getReferenceListProperty("IMAN_Rendering"); for (int j = 0; j < datasets.length; j++) { - //获取数据集数组 + // 获取数据集数组 TCComponentDataset dataset02 = null; - if(datasets[j] instanceof TCComponentDataset) { - dataset02 = (TCComponentDataset) datasets[j]; - }else { + if (datasets[j] instanceof TCComponentDataset) { + dataset02 = (TCComponentDataset) datasets[j]; + } else { continue; } - //执行获取后缀名的方法 - String type = dataset02.getType(); + // 执行获取后缀名的方法 + String type = dataset02.getType(); // gethzm(dataset02); - if(itemlist.contains(revtype)||allCheck) { - if(datasetList.contains(type)) { + if (itemlist.contains(revtype) || allCheck) { + if (datasetList.contains(type)) { TCComponentDataset dataset = (TCComponentDataset) datasets[j]; - getload(dataset,dataName,list,rev.getStringProperty("item_id")); - getload(dataset,dataName2,list,rev.getStringProperty("item_id")); + getload(dataset, dataName, list, rev.getStringProperty("item_id")); + getload(dataset, dataName2, list, rev.getStringProperty("item_id")); } } } for (int j = 0; j < datasets2.length; j++) { - //获取数据集数组 + // 获取数据集数组 TCComponentDataset dataset02 = null; - if(datasets2[j] instanceof TCComponentDataset) { - dataset02 = (TCComponentDataset) datasets2[j]; - }else { + if (datasets2[j] instanceof TCComponentDataset) { + dataset02 = (TCComponentDataset) datasets2[j]; + } else { continue; } - //执行获取后缀名的方法 + // 执行获取后缀名的方法 // gethzm(dataset02); String type = dataset02.getType(); - if(itemlist.contains(revtype)||allCheck) { - if(datasetList.contains(type)) { + if (itemlist.contains(revtype) || allCheck) { + if (datasetList.contains(type)) { TCComponentDataset dataset = (TCComponentDataset) datasets2[j]; - getload(dataset, dataName,list,rev.getStringProperty("item_id")); - getload(dataset, dataName2,list,rev.getStringProperty("item_id")); + getload(dataset, dataName, list, rev.getStringProperty("item_id")); + getload(dataset, dataName2, list, rev.getStringProperty("item_id")); } } } - }else { - MessageBox.post("选中的不是版本对象或者BOM行对象或者数据集对象","error",MessageBox.ERROR); + } else { + MessageBox.post("选中的不是版本对象或者BOM行对象或者数据集对象", "error", MessageBox.ERROR); return; } } @@ -730,64 +778,65 @@ public class Dfl028AIFDialog extends AbstractAIFDialog { e.printStackTrace(); } } - //获取零件类型 + + // 获取零件类型 public List getitemType() { List itemlist = new ArrayList(); - Component[] jcbs = btnPanel2.getComponents();//将勾选的内容存入数组 - //遍历勾选的内容 - for(Component component : jcbs) { - if(component instanceof JCheckBox) { + Component[] jcbs = btnPanel2.getComponents();// 将勾选的内容存入数组 + // 遍历勾选的内容 + for (Component component : jcbs) { + if (component instanceof JCheckBox) { JCheckBox jcb = (JCheckBox) component; - //判断元素是否被选中 - if(jcb.isSelected()) { + // 判断元素是否被选中 + if (jcb.isSelected()) { + itemlist.add(jcb.getText()); itemlist.add(jcb.getText()); - itemlist.add(jcb.getText()); - if("全部".equals(jcb.getText())) { - allCheck=true; + if ("全部".equals(jcb.getText())) { + allCheck = true; itemlist.add("T2_VirtualRevision"); itemlist.add("T2_OutBuyPartRevision"); - itemlist.add("T2_outsourceRevision"); + itemlist.add("T2_outsourceRevision"); itemlist.add("T2_EquipmentRevision"); - }else if ("外协件".equals(jcb.getText())) { + } else if ("外协件".equals(jcb.getText())) { itemlist.add("T2_outsourceRevision"); - }else if ("外购件".equals(jcb.getText())) { + } else if ("外购件".equals(jcb.getText())) { itemlist.add("T2_OutBuyPartRevision"); - }else if ("虚拟件".equals(jcb.getText())) { - itemlist.add("T2_VirtualRevision"); + } else if ("虚拟件".equals(jcb.getText())) { + itemlist.add("T2_VirtualRevision"); } } - - } + + } } return itemlist; } - public void getOutPart(TCComponentItemRevision rev ,String dir,List list) throws TCException { - //设备获取完成了 获取子键 全部 全获取 外购 判断当前 外购子键不判断 + + public void getOutPart(TCComponentItemRevision rev, String dir, List list) throws TCException { + // 设备获取完成了 获取子键 全部 全获取 外购 判断当前 外购子键不判断 TCComponentItem item = rev.getItem(); List itemlist = new ArrayList(); - //执行获取零件类型的方法 + // 执行获取零件类型的方法 itemlist = getitemType(); Boolean sxTj = getSxTj(); TCComponentBOMWindowType winType = (TCComponentBOMWindowType) session.getTypeService() .getTypeComponent("BOMWindow"); - TCComponentRevisionRule[] listAllRules = TCComponentRevisionRule.listAllRules(session); - TCComponentBOMWindow window = winType.create(null); - for(TCComponentRevisionRule rule:listAllRules) { - if(sxTj&&rule.toString().equals("Precise;Any Status;Latest Working")) { - window.setRevisionRule(rule); - }else if (!sxTj&&rule.toString().equals("Latest Working")) { - window.setRevisionRule(rule); + TCComponentRevisionRule[] listAllRules = TCComponentRevisionRule.listAllRules(session); + TCComponentBOMWindow window = winType.create(null); + for (TCComponentRevisionRule rule : listAllRules) { + if (sxTj && rule.toString().equals("Precise;Any Status;Latest Working")) { + window.setRevisionRule(rule); + } else if (!sxTj && rule.toString().equals("Latest Working")) { + window.setRevisionRule(rule); } } window.lock(); - TCComponentBOMLine topLine = window.setWindowTopLine( - item, rev, null, null); - AIFComponentContext[] children2=new AIFComponentContext[4096]; - children2=topLine.getChildren(); + TCComponentBOMLine topLine = window.setWindowTopLine(item, rev, null, null); + AIFComponentContext[] children2 = new AIFComponentContext[4096]; + children2 = topLine.getChildren(); // AIFComponentContext[] children = topLine.getChildren(); - for(int i=0;i itemList, - String dir,List list,int bomNum,String dirFs) throws TCException { + // 遍历bom视图,找出所有外协件 外购件 i判断是不是第一层外协外购 + public void getOutPartInBom(TCComponentBOMLine bomLine, Boolean sxtj, int i, List itemList, String dir, + List list, int bomNum, String dirFs) throws TCException { TCComponentItemRevision rev = bomLine.getItemRevision(); // if(sxtj) { // rev=findLatesStatus(rev); // } - String dirTop=dir; + String dirTop = dir; // String revtype = rev.getStringProperty("object_type"); - String revtype= rev.getType();//真实值 - if((itemList.contains(revtype)&&bomNum==0)||allCheck||bomNum==1) { - Boolean l=revtype.equals("T2_OutBuyPartRevision")||revtype.equals("T2_outsourceRevision")||revtype.equals("ItemRevision"); - if(outPartBool&&l) { - String dirString=jtf.getText()+File.separator+dir+File.separator+rev.getStringProperty("item_id")+"_"+ - rev.getStringProperty("current_revision_id")+"_"+rev.getStringProperty("object_name"); - dir=dir+File.separator+rev.getStringProperty("item_id")+"_"+ - rev.getStringProperty("current_revision_id")+"_"+rev.getStringProperty("object_name"); - dirTop=dir; - File csFile=new File(dirString); - if(!csFile.exists()) { - csFile.mkdir(); + String revtype = rev.getType();// 真实值 + if ((itemList.contains(revtype) && bomNum == 0) || allCheck || bomNum == 1) { + Boolean l = revtype.equals("T2_OutBuyPartRevision") || revtype.equals("T2_outsourceRevision") + || revtype.equals("ItemRevision"); + if (outPartBool && l) { + String dirString = jtf.getText() + File.separator + dir + File.separator + + rev.getStringProperty("item_id") + "_" + rev.getStringProperty("current_revision_id") + "_" + + rev.getStringProperty("object_name"); + dir = dir + File.separator + rev.getStringProperty("item_id") + "_" + + rev.getStringProperty("current_revision_id") + "_" + rev.getStringProperty("object_name"); + dirTop = dir; + File csFile = new File(dirString); + if (!csFile.exists()) { + csFile.mkdir(); + } + if (bomLine.getChildren().length != 0) { + dirString = dirString + File.separator + rev.getStringProperty("item_id") + "_" + + rev.getStringProperty("current_revision_id") + "_" + rev.getStringProperty("object_name"); + dir = dir + File.separator + rev.getStringProperty("item_id") + "_" + + rev.getStringProperty("current_revision_id") + "_" + rev.getStringProperty("object_name"); + + File csFile2 = new File(dirString); + if (!csFile2.exists()) { + csFile2.mkdir(); } - if(bomLine.getChildren().length!=0) { - dirString=dirString+File.separator+rev.getStringProperty("item_id")+"_"+ - rev.getStringProperty("current_revision_id")+"_"+rev.getStringProperty("object_name"); - dir=dir+File.separator+rev.getStringProperty("item_id")+"_"+ - rev.getStringProperty("current_revision_id")+"_"+rev.getStringProperty("object_name"); - - File csFile2=new File(dirString); - if(!csFile2.exists()) { - csFile2.mkdir(); + + } + if (i == 0) { + pathMap.put("1", dir); + if (bomLine.getChildren().length != 0) { + dirString = dirString + File.separator + rev.getStringProperty("item_id") + "_" + + rev.getStringProperty("current_revision_id") + "_" + + rev.getStringProperty("object_name"); + File csFile3 = new File(dirString); + if (!csFile3.exists()) { + csFile3.mkdir(); } - + + dir = dir + File.separator + rev.getStringProperty("item_id") + "_" + + rev.getStringProperty("current_revision_id") + "_" + + rev.getStringProperty("object_name"); } - if(i==0 ) { - pathMap.put("1", dir); - if(bomLine.getChildren().length!=0) { - dirString=dirString+File.separator+rev.getStringProperty("item_id")+"_"+ - rev.getStringProperty("current_revision_id")+"_"+rev.getStringProperty("object_name"); - File csFile3=new File(dirString); - if(!csFile3.exists()) { - csFile3.mkdir(); - } - - dir=dir+File.separator+rev.getStringProperty("item_id")+"_"+ - rev.getStringProperty("current_revision_id")+"_"+rev.getStringProperty("object_name"); - } - }i++; } - TCComponent[] datasets = rev.getReferenceListProperty("IMAN_specification"); - TCComponent[] datasets2 = rev.getReferenceListProperty("IMAN_Rendering"); - for (int j = 0; j < datasets.length; j++) { - //获取数据集数组 - TCComponentDataset dataset01=null; - if(datasets[j] instanceof TCComponentDataset) { - dataset01 = (TCComponentDataset) datasets[j]; - } - else { - continue; - } + i++; + } + TCComponent[] datasets = rev.getReferenceListProperty("IMAN_specification"); + TCComponent[] datasets2 = rev.getReferenceListProperty("IMAN_Rendering"); + for (int j = 0; j < datasets.length; j++) { + // 获取数据集数组 + TCComponentDataset dataset01 = null; + if (datasets[j] instanceof TCComponentDataset) { + dataset01 = (TCComponentDataset) datasets[j]; + } else { + continue; + } // TCComponentDataset dataset01 = (TCComponentDataset) datasets[j]; - //执行获取后缀名的方法 + // 执行获取后缀名的方法 // gethzm(dataset01); - //执行获取零件类型的方法 - String type = dataset01.getStringProperty("object_type"); - - //判断list包含hzm字符串的值 且 itemlist包含revtype的值 - if(datasetList.contains(type)) { - //获取数据集数据 - TCComponentDataset dataset02 = null; - if(datasets[j] instanceof TCComponentDataset) { - dataset02 = (TCComponentDataset) datasets[j]; - }else { - continue; - } - //执行getload方法 - getload(dataset02,dir,list,rev.getStringProperty("item_id")); - //复制一份到父级 - if(!dir.equals(dirFs)) { - getload(dataset02,dirFs,list,rev.getStringProperty("item_id")); - } - if(!dir.equals(pathMap.get("1"))&& pathMap.get("1")!=null) { - getload(dataset02,pathMap.get("1"),list,rev.getStringProperty("item_id")); - } - } - } - for (int j = 0; j < datasets2.length; j++) { - //获取数据集数组 + // 执行获取零件类型的方法 + String type = dataset01.getStringProperty("object_type"); + + // 判断list包含hzm字符串的值 且 itemlist包含revtype的值 + if (datasetList.contains(type)) { + // 获取数据集数据 TCComponentDataset dataset02 = null; - if(datasets2[j] instanceof TCComponentDataset) { - dataset02 = (TCComponentDataset) datasets2[j]; - }else { + if (datasets[j] instanceof TCComponentDataset) { + dataset02 = (TCComponentDataset) datasets[j]; + } else { continue; } - //执行获取后缀名的方法 -// gethzm(dataset02); - //判断是否为所需要的零件类型 - String type = dataset02.getStringProperty("object_type"); - if(datasetList.contains(type)) { - TCComponentDataset dataset = (TCComponentDataset) datasets2[j]; - getload(dataset,dir,list,rev.getStringProperty("item_id")); - if(!dir.equals(dirFs)) { - getload(dataset,dirFs,list,rev.getStringProperty("item_id")); - } - if(!dir.equals(pathMap.get("1"))) { - getload(dataset02,pathMap.get("1"),list,rev.getStringProperty("item_id")); - } + // 执行getload方法 + getload(dataset02, dir, list, rev.getStringProperty("item_id")); + // 复制一份到父级 + if (!dir.equals(dirFs)) { + getload(dataset02, dirFs, list, rev.getStringProperty("item_id")); + } + if (!dir.equals(pathMap.get("1")) && pathMap.get("1") != null) { + getload(dataset02, pathMap.get("1"), list, rev.getStringProperty("item_id")); } - } - AIFComponentContext[] children = bomLine.getChildren(); - for(AIFComponentContext context:children) { - TCComponentBOMLine line=(TCComponentBOMLine)context.getComponent(); - getOutPartInBom(line,sxtj,i,itemList,dirTop,list,1,dirFs); + } + for (int j = 0; j < datasets2.length; j++) { + // 获取数据集数组 + TCComponentDataset dataset02 = null; + if (datasets2[j] instanceof TCComponentDataset) { + dataset02 = (TCComponentDataset) datasets2[j]; + } else { + continue; } - } else { - AIFComponentContext[] children = bomLine.getChildren(); - for(AIFComponentContext context:children) { - TCComponentBOMLine line=(TCComponentBOMLine)context.getComponent(); - getOutPartInBom(line,sxtj,0,itemList,dirTop,list,0,dirFs); + // 执行获取后缀名的方法 +// gethzm(dataset02); + // 判断是否为所需要的零件类型 + String type = dataset02.getStringProperty("object_type"); + if (datasetList.contains(type)) { + TCComponentDataset dataset = (TCComponentDataset) datasets2[j]; + getload(dataset, dir, list, rev.getStringProperty("item_id")); + if (!dir.equals(dirFs)) { + getload(dataset, dirFs, list, rev.getStringProperty("item_id")); + } + if (!dir.equals(pathMap.get("1"))) { + getload(dataset02, pathMap.get("1"), list, rev.getStringProperty("item_id")); + } } + + } + AIFComponentContext[] children = bomLine.getChildren(); + for (AIFComponentContext context : children) { + TCComponentBOMLine line = (TCComponentBOMLine) context.getComponent(); + getOutPartInBom(line, sxtj, i, itemList, dirTop, list, 1, dirFs); } - } + } else { + AIFComponentContext[] children = bomLine.getChildren(); + for (AIFComponentContext context : children) { + TCComponentBOMLine line = (TCComponentBOMLine) context.getComponent(); + getOutPartInBom(line, sxtj, 0, itemList, dirTop, list, 0, dirFs); + } + } + } + private static void updateProgress(JProgressBar copyProgressBar, int progressSize) { copyProgressBar.setString(progressSize + "%"); copyProgressBar.setValue(progressSize); } - public Boolean getSxTj(){ + + public Boolean getSxTj() { List tjlist = new ArrayList(); - Boolean statusBool=false; + Boolean statusBool = false; Component[] jcbs = btnPanel3.getComponents(); - for(Component component:jcbs) { - if(component instanceof JCheckBox) { + for (Component component : jcbs) { + if (component instanceof JCheckBox) { JCheckBox jcb = (JCheckBox) component; - if(jcb.isSelected()) { + if (jcb.isSelected()) { tjlist.add(jcb.getText()); } } - } - for(String s:tjlist) { - if(s.equals("仅下载已发布图纸")) { - statusBool=true; - } - if(s.equals("外协件/外购件打包下载")) { - outPartBool=true; + } + for (String s : tjlist) { + if (s.equals("仅下载已发布图纸")) { + statusBool = true; + } + if (s.equals("外协件/外购件打包下载")) { + outPartBool = true; + } + } + return statusBool; + } + + public List getIscarryRev() { + List tjlist = new ArrayList(); + Boolean statusBool = false; + Component[] jcbs = btnPanel4.getComponents(); + for (Component component : jcbs) { + if (component instanceof JCheckBox) { + JCheckBox jcb = (JCheckBox) component; + if (jcb.isSelected()) { + tjlist.add(jcb.getText()); + } } - } - return statusBool; - } + } + + return tjlist; + } + } diff --git a/src/com/connor/dfl/plm/dfl042/Dfl042Dialog.java b/src/com/connor/dfl/plm/dfl042/Dfl042Dialog.java index 66605b9..a950705 100644 --- a/src/com/connor/dfl/plm/dfl042/Dfl042Dialog.java +++ b/src/com/connor/dfl/plm/dfl042/Dfl042Dialog.java @@ -134,7 +134,7 @@ public class Dfl042Dialog extends AbstractAIFDialog { // public void mouseClicked(MouseEvent e){ // if(e.getButton() == MouseEvent.BUTTON3){ // // tableRow = qryTable.rowAtPoint(e.getPoint()); -// tableRow = qryTable.getSelectedRow(); +// tableRow = .getSelectedRow(); // qryTable.setRowSelectionInterval(tableRow, tableRow); // int indexRow = qryTable.convertRowIndexToModel(tableRow); // System.out.println("indexRow=============="+indexRow); diff --git a/src/com/connor/dfl/plm/dfl044/Dfl044Dialog.java b/src/com/connor/dfl/plm/dfl044/Dfl044Dialog.java index e13efff..6552949 100644 --- a/src/com/connor/dfl/plm/dfl044/Dfl044Dialog.java +++ b/src/com/connor/dfl/plm/dfl044/Dfl044Dialog.java @@ -221,7 +221,6 @@ public class Dfl044Dialog extends AbstractAIFDialog { } } - sql2 = sb.toString(); System.out.println("sql===================="+sql2); Stock = getRecords(sql2); @@ -238,9 +237,9 @@ public class Dfl044Dialog extends AbstractAIFDialog { System.out.println("11.05选择的下拉值单价======="+Select); if(!("".equals(userid.trim()))) { if("".equals(Select) || " ".equals(Select) || "null".equals(Select)) { - numsSb.append(zhangtao + ".ccc_file inner join "+zhangtao+".ccz_file on ccz01=ccc02 and ccz02=ccc03 where ccc01='"+userid+"'"); + numsSb.append(zhangtao + ".ccc_file inner join "+zhangtao+".ccz_file on ccz01=ccc02 and ccz02-1=ccc03 where ccc01='"+userid+"'"); }else { - numsSb.append(zhangtao1 + ".ccc_file inner join "+zhangtao1+".ccz_file on ccz01=ccc02 and ccz02=ccc03 where ccc01='"+userid+"'"); + numsSb.append(zhangtao1 + ".ccc_file inner join "+zhangtao1+".ccz_file on ccz01=ccc02 and ccz02-1=ccc03 where ccc01='"+userid+"'"); } } String numsSql = numsSb.toString(); diff --git a/src/com/connor/dfl/plm/dfl045/Dfl045Operation.java b/src/com/connor/dfl/plm/dfl045/Dfl045Operation.java index b823ab2..ed4c9ea 100644 --- a/src/com/connor/dfl/plm/dfl045/Dfl045Operation.java +++ b/src/com/connor/dfl/plm/dfl045/Dfl045Operation.java @@ -18,6 +18,7 @@ import java.util.stream.Collectors; import javax.swing.JComboBox; +import org.apache.commons.lang.ObjectUtils.Null; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFCellStyle; import org.apache.poi.xssf.usermodel.XSSFRow; @@ -93,14 +94,18 @@ public class Dfl045Operation extends AbstractAIFOperation{ } TCComponentDataset excel = (TCComponentDataset) session.stringToComponent(puid); File file = ((TCComponentDataset)excel).getTcFiles()[0].getFmsFile(); - SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");// 设置日期格式 + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");// 设置日期格式 + SimpleDateFormat mmdf = new SimpleDateFormat("yyyyMMddHHmm");// 设置命名日期格式 Date startDate = df.parse(Starttime); Date endDate = df.parse(Endtime); String starttime = df.format(startDate); + String mmstart = mmdf.format(mmdf.parse(Starttime)) ; String endtime = df.format(endDate); + String mmend = mmdf.format(mmdf.parse(Endtime)) ; System.out.println("11.12start====="+Starttime+"======end======"+Endtime); - String[] keys = new String[] {"创建日期晚于","创建日期早于"}; - String[] values = new String[] {Starttime,Endtime}; + System.out.println("11.12start====="+starttime+"======end======"+endtime); + String[] keys = new String[] {"创建日期晚于","创建日期早于","任务状态不等于"}; + String[] values = new String[] {Starttime,Endtime,"32"}; List compList = queryObject("东富龙-查找已发起的流程", keys, values); pathRoute = pathRoute + File.separator + "流程报表【"+starttime+"】-【"+endtime+"】.xlsx"; @@ -320,16 +325,18 @@ public class Dfl045Operation extends AbstractAIFOperation{ //String task_type = comp.getStringProperty("task_type"); taskList.add(task_name); //责任人 - String resp_party = comp.getProperty("fnd0Performer"); - // System.out.println("11.12resp_party======"+resp_party); - taskList.add(resp_party); - //责任部门 + String resp_party = null; + //责任部门valid_signoffs String group = comp.getProperty("awp0Reviewers"); + //System.out.println("11.19处理前========="+group); if("".equals(group)) { + taskList.add(resp_party); taskList.add(group); }else { String[] ss = group.split("/"); group = ss[0]; + resp_party = ss[2]; + taskList.add(resp_party); taskList.add(group); } //开始时间 @@ -400,17 +407,18 @@ public class Dfl045Operation extends AbstractAIFOperation{ taskList.add(task_name); //责任人 - String resp_party = comp.getProperty("fnd0Performer"); - // System.out.println("11.12resp_party======"+resp_party); - taskList.add(resp_party); + String resp_party = null; //责任部门valid_signoffs String group = comp.getProperty("awp0Reviewers"); //System.out.println("11.19处理前========="+group); if("".equals(group)) { + taskList.add(resp_party); taskList.add(group); }else { String[] ss = group.split("/"); group = ss[0]; + resp_party = ss[2]; + taskList.add(resp_party); taskList.add(group); } //开始时间 @@ -499,7 +507,7 @@ public class Dfl045Operation extends AbstractAIFOperation{ //将单个的string集合给到beanlist1 List beanList1 = makeList.get(k); //System.out.println("11.16--beanList1.size====="+beanList1.size()); - for(int l = 5 , m = 0 ; l beanList1 = examineList.get(k); //System.out.println("11.16--beanList1.size====="+beanList1.size()); - for(int l = 5 , m = 0 ; l beanList1 = approvalList.get(k); //System.out.println("11.16--beanList1.size====="+beanList1.size()); - for(int l = 5 , m = 0 ; l beanList1 = makeList.get(k); - for(int l = 5 , m = 0 ; l beanList1 = examineList.get(k); - for(int l = 5 , m = 0 ; l beanList1 = approvalList.get(k); //System.out.println("11.16--beanList1.size====="+beanList1.size()); - for(int l = 5 , m = 0 ; l beanList1 = makeList.get(k); //System.out.println("11.16--beanList1.size====="+beanList1.size()); - for(int l = 5 , m = 0 ; l beanList1 = examineList.get(k); //System.out.println("11.16--beanList1.size====="+beanList1.size()); - for(int l = 5 , m = 0 ; l beanList1 = approvalList.get(k); //System.out.println("11.16--beanList1.size====="+beanList1.size()); - for(int l = 5 , m = 0 ; l beanList1 = wukonglList.get(k); //System.out.println("11.16--beanList1.size====="+beanList1.size()); - for(int l = 5 , m = 0 ; l userList = new ArrayList(); List newList = new ArrayList(); - double zongshu = 1; - double yuqishu = 0; - double yuqilv = 0; + for(int i=0;i array = new ArrayList(); List Overdue = new ArrayList(); array = oneList.get(i); String user = array.get(0); - System.out.println("11.22user==========="+user); + System.out.println("11.24======array==========="+array); //定义和赋值集合中的元素 String group = array.get(1); String rate = array.get(2); @@ -1419,7 +1437,7 @@ public class Dfl045Operation extends AbstractAIFOperation{ Overdue.add(zongString); Overdue.add(yuqiString); Overdue.add(yuqilvString+"%"); - + //判断是否有重复的用户 boolean a = userList.contains(user); //System.out.println("11.22===a========="+a); if(a==true) { @@ -1442,12 +1460,14 @@ public class Dfl045Operation extends AbstractAIFOperation{ yuanyuqishu++; yuqiString = String.valueOf(yuanyuqishu); System.out.println("11.22=====yuqiString======"+yuqiString); - beanList2.set(3, zongString); + beanList2.set(3, yuqiString); list.set(j, beanList2); } //计算逾期率 + System.out.println("11.24=====yuqishu"+beanList2.get(3)); zongshu = Double.valueOf(beanList2.get(2)); yuqishu = Double.valueOf(beanList2.get(3)); + yuqilv = yuqishu/zongshu*100; yuqilvString = String.valueOf(yuqilv)+"%"; beanList2.set(4, yuqilvString); @@ -1459,13 +1479,13 @@ public class Dfl045Operation extends AbstractAIFOperation{ }else //如果不是就正常添加 { userList.add(user); - //System.out.println("11.22====list======="+list); + //System.out.println("11.24====Overdue======="+Overdue); list.add(Overdue); } } - System.out.println("11.22userlist==========="+userList); - System.out.println("11.22====list====="+list); +// System.out.println("11.22userlist==========="+userList); +// System.out.println("11.22====list====="+list); for(int k=0;k Overdue1 = new ArrayList(); Overdue1 = list.get(k); diff --git a/src/com/connor/dfl/plm/dfl046/test.java b/src/com/connor/dfl/plm/dfl046/test.java index 83b394b..f87677a 100644 --- a/src/com/connor/dfl/plm/dfl046/test.java +++ b/src/com/connor/dfl/plm/dfl046/test.java @@ -97,7 +97,6 @@ public class test extends AbstractAIFOperation { if(names[names.length-2].equals(zts[0])) { this.zhangtao = zts[1]; System.out.println("11.04账套======"+zhangtao); - break; } } @@ -867,7 +866,7 @@ public class test extends AbstractAIFOperation { private String getPrice () { String price = null; String sql = null; - sql = "select ccc23a from " +zhangtao + ".ccc_file inner join "+zhangtao+".ccz_file on ccz01=ccc02 and ccz02=ccc03 where ccc01='"+item_id1+"'"; + sql = "select ccc23a from " +zhangtao + ".ccc_file inner join "+zhangtao+".ccz_file on ccz01=ccc02 and ccz02-1=ccc03 where ccc01='"+item_id1+"'"; System.out.println("sql======"+sql); try { price = data.getRecord(sql); diff --git a/src/com/connor/dfl/plm/exportBOM/test.java b/src/com/connor/dfl/plm/exportBOM/test.java index d08ac6b..4ee84af 100644 --- a/src/com/connor/dfl/plm/exportBOM/test.java +++ b/src/com/connor/dfl/plm/exportBOM/test.java @@ -765,8 +765,8 @@ public class test extends AbstractAIFOperation { item_id1 = rev.getStringProperty("item_id"); rev_id1 = rev.getStringProperty("item_revision_id"); name1 = rev.getStringProperty("object_name"); - price1 = getPrice(); - total1 = getTotal(design_num1,price1); +// price1 = getPrice(); +// total1 = getTotal(design_num1,price1); if("T2_outsourceRevision".equals(type)) { xuhao1 = num ; String classID = item_id1.substring(0, 2); @@ -864,38 +864,38 @@ public class test extends AbstractAIFOperation { } } - private String getPrice () { - String price = null; - String sql = null; - sql = "select ccc23a from " +zhangtao + ".ccc_file inner join "+zhangtao+".ccz_file on ccz01=ccc02 and ccz02=ccc03 where ccc01='"+item_id1+"'"; - System.out.println("sql======"+sql); - try { - price = data.getRecord(sql); - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - System.out.println("11.08==price=="+price); - if(price == null ) { - price =""; - } - return price; - } - - private String getTotal(String quantity,String price) { - // TODO Auto-generated method stub - if("".equals(price)||" ".equals(price)||"null".equals(price)) { - price = "0"; - } - String total; - double amount = Double.valueOf(quantity).doubleValue(); - double tariff = Double.valueOf(price).doubleValue(); - double product = amount * tariff ; - - total = ""+product; - System.out.println("11.08==总价====="+total); - return total; - } +// private String getPrice () { +// String price = null; +// String sql = null; +// sql = "select ccc23a from " +zhangtao + ".ccc_file inner join "+zhangtao+".ccz_file on ccz01=ccc02 and ccz02=ccc03 where ccc01='"+item_id1+"'"; +// System.out.println("sql======"+sql); +// try { +// price = data.getRecord(sql); +// } catch (Exception e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } +// System.out.println("11.08==price=="+price); +// if(price == null ) { +// price =""; +// } +// return price; +// } +// +// private String getTotal(String quantity,String price) { +// // TODO Auto-generated method stub +// if("".equals(price)||" ".equals(price)||"null".equals(price)) { +// price = "0"; +// } +// String total; +// double amount = Double.valueOf(quantity).doubleValue(); +// double tariff = Double.valueOf(price).doubleValue(); +// double product = amount * tariff ; +// +// total = ""+product; +// System.out.println("11.08==总价====="+total); +// return total; +// } //匹配分群码 private void getgroup() { if("F10".equals(group1)) {