From cb8e13aaed02b654312d8d935a36e31c417d1e87 Mon Sep 17 00:00:00 2001 From: Costin Manolache Date: Fri, 19 Jul 2002 18:10:57 +0000 Subject: [PATCH] Implement the change in handling the top-level target before executing other targets ( which is closer to the original behavior ). Import started to work a bit - but it complain about circular dep on super.mb2, still investigating. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@273135 13f79535-47bb-0310-9956-ffa450edef68 --- .../sandbox/embed/ProjectHelperImpl2.java | 107 +----------------- proposal/sandbox/embed/ant-sax2.jar | Bin 48517 -> 48539 bytes 2 files changed, 3 insertions(+), 104 deletions(-) diff --git a/proposal/sandbox/embed/ProjectHelperImpl2.java b/proposal/sandbox/embed/ProjectHelperImpl2.java index f3227c508..35b39cc9f 100644 --- a/proposal/sandbox/embed/ProjectHelperImpl2.java +++ b/proposal/sandbox/embed/ProjectHelperImpl2.java @@ -104,6 +104,7 @@ public class ProjectHelperImpl2 extends ProjectHelper { project.addReference( "ant.parsing.context", context ); parse(project, source,new RootHandler(context)); + context.implicitTarget.execute(); } /** @@ -680,7 +681,8 @@ public class ProjectHelperImpl2 extends ProjectHelper { Project project=context.project; target = new Target(); - target.addDependency( "" ); + // No need - it'll be handled explicitly + // target.addDependency( "" ); target.setName(name); target.setIf(ifCond); target.setUnless(unlessCond); @@ -1153,107 +1155,4 @@ public class ProjectHelperImpl2 extends ProjectHelper { return new NestedElementHandler(element, wrapper, target); } } - -// /** -// * Handler for the root element. Its only child must be the "project" element. -// */ -// static class ImportHandler extends AntHandler { - -// /** -// * Initialisation routine called after handler creation -// * with the element name and attributes. The attributes which -// * this handler can deal with are: "default", -// * "name", "id" and "basedir". -// * -// * @param tag Name of the element which caused this handler -// * to be created. Should not be null. -// * Ignored in this implementation. -// * @param attrs Attributes of the element which caused this -// * handler to be created. Must not be null. -// * -// * @exception SAXParseException if an unexpected attribute is -// * encountered or if the "default" attribute -// * is missing. -// */ -// public void onStartElement(String uri, String tag, String qname, -// Attributes attrs, -// AntXmlContext context) -// throws SAXParseException -// { -// context._importlevel++; -// Project project=context.project; -// project.log("importlevel: "+(context._importlevel-1)+" -> "+(context._importlevel), -// Project.MSG_DEBUG); -// String file = null; -// for (int i = 0; i < attrs.getLength(); i++) { -// String key = attrs.getQName(i); -// String value = attrs.getValue(i); -// if (key.equals("file")) { -// file = value; -// } else { -// throw new SAXParseException("Unexpected attribute \"" + key + "\"", context.locator); -// } -// } - -// if (file == null) { -// throw new SAXParseException("import element appears without a file attribute", -// context.locator); -// } - -// file=project.replaceProperties(file); -// project.log("Importing file "+file+" from "+ -// context.buildFile.getAbsolutePath(), -// Project.MSG_VERBOSE); - -// // Paths are relative to the build file they're imported from, -// // *not* the current directory (same as entity includes). -// File importedFile = new File(file); -// if (!importedFile.isAbsolute()) { -// importedFile = new File(context.buildFileParent, file); -// } -// if (!importedFile.exists()) { -// throw new SAXParseException("Cannot find "+file+" imported from "+ -// context.buildFile.getAbsolutePath(), -// context.locator); -// } - -// // Add parent build file to the map to avoid cycles... -// String parentFilename = getPath(context.buildFile); -// if (!context._importedFiles.containsKey(parentFilename)) { -// context._importedFiles.put(parentFilename, context.buildFile); -// } - -// // Make sure we import the file only once -// String importedFilename = getPath(importedFile); -// if (context._importedFiles.containsKey(importedFilename)) { -// project.log("\nSkipped already imported file:\n "+importedFilename+"\n", -// Project.MSG_WARN); -// return; -// } -// else { -// context._importedFiles.put(importedFilename, importedFile); -// } - -// org.xml.sax.XMLReader oldparser = context.parser; -// context.ignoreProjectTag=true; -// context.helper.parse(context.project, importedFile, new RootHandler(context)); -// context.ignoreProjectTag=false; -// context.parser = oldparser; - -// context._importlevel--; -// context.project.log("importlevel: "+context._importlevel+" <- "+ -// (context._importlevel+1) ,Project.MSG_DEBUG); -// } - -// private static String getPath(File file) { -// try { -// return file.getCanonicalPath(); -// } -// catch (IOException e) { -// return file.getAbsolutePath(); -// } -// } -// } - - } diff --git a/proposal/sandbox/embed/ant-sax2.jar b/proposal/sandbox/embed/ant-sax2.jar index 58f725b246ff3428cb7f54a4ae55cdbf893dbf5c..d06a433b1fd998d87405ba3764881eedb1c6c9d0 100644 GIT binary patch delta 11585 zcmZvC1yCN*uP^Qtr?|U+xVux_-HKDZK#^{7*AFZ1Ufiv?ySo>6r`T;f@4k2cci!&I z<|LcnIV+P%PLiM}sI(_26cq(%7$k_l$DmFe3N_TAPBlj)B-DUTZ5QN}%pVF)kTV5R zW8os{`;=x7^j--H{AQbaO_smugD1=C+r#GKs40Ko8($)|LGlPfazt`SSZ)#+WlwZU zbY7eeFCubhV7vOU&S!PJxKBKell=JlvNMo{KJeKmPBL;UiIhmEt%s1=RBppVBEoyx z7O{~M%8vGeG$MF)Uip{%K)bWW2zUipwQHe}rRZY2PXYRvlfB{RUs_5nc=x?EhoE&` zr1U)#9%zj5H8m|ZJ>l<4*u(WIPxZ*pb@k)pZ!54(69Dev)=!NG-fB1bhQ*+Kh4$bB z*@63Rs&O_ZQkhbR)3XaQ>>h$($tg#q;HB`LFz+>YLl`vAwSo_Y+dNJBJAOc3=4bXW zSCnhOaZkwuFovNY1sV7pgc*hKhFfY$5?HwEV&Mx;u+?sPMz7|VBIe@Q+NAe=!Mbje zENGj-Fan!?Ry)*TFf%D5W+^2$GSL}+pQYDmZHCXvo}W)T1~M3oshq4&R&0wTl9;BJ z$|qHUryZ}vEI8$8^0&vVWC!d&xJJrXEZ}L;=-OeH$Fl^Lxh2&63PgG9mxSI}LAi9; zEbbxgDWo5gquEi2X&fSjqg}yV?H2j+9mY+N=3F~<|h z5qwM2&O_fefN$*XGuHn40yw%}5g-=Yk@9>CVnk>{4K+qpdx zE_o=H4Mt7$qcbdQ+VV(DsFPF70a6Rk`>keO=FZ_zoflMjHVZC;=dnNY$JXqJWglFz zVY`i;v6l;_u?2EoK>%wky)Z{sDj!YYKvakHV#@US^uP72{8lm4yk&S>lfMh~1|9n{ zjsE(rbF@<+wFBSg68b!$fz#v4IX-E-$&B`3TkxBr&O?G@j*FYE=|*_%^@VEROEgm1tbrP32Kk zqJ)Obq)qz`A`XYhRIH^2Cq(#`9|>u0q1_yAmN{CG2&9SvJVH=lSbH`!1cU)11jJus z#)d%nbN;d097Rh2=SQrGL78tNUIbY@H$@QMR0AnZ8c0`QX>2LO^I*c3*;8-g(p=<5 z=JsaXJ{kv82!0%q!((s#X?4HZ<1Pz$^NOMhe^?Ut&%q944)JJS!Hq_O!slDnR?;7= zK*-2o^Q1ATwO z$q&V|EbA{S5j*nX^!FZf3*>xyA0fzH4Wrw?f zl38)%yWMjM3F$8KNkTEG@K@2!;~;g*$GU_rA|O>C)fr9QT6Q|{2+uWd6^wMVKhwE- zd73lqN)rc)vZ!jNU4=AvOchk5NKr$=D(Ov@?H?;gkz0Dcz4aH7X+SPMuF7FMAx~M-%##CPA2orx1Wtb&0r#FKtNgnbJie+~5?q zH5%)nTD#f_9MyZ}6m#N-kIaF6jfJFr6-y@VZW4e{t?OItBs@%`8EF#OU~G(X*QLDj z$hrBV!yO>)fU8=^-Xq43f@FvA6(#g zAX;GZ>2iAYy)FtO9+df{@+rnkP52iCF`(&{t^r8b1aM&@(JrG{Z4~gdN3|RK&fyNb zGOq%by!V-6wbg}ICgr=2nG9Ac{f*qho#pc`YyCtnULMI?{Z}?wL0TLoGrmEODAXnS zDi+_OJ_%;S%c-}G3CyM~nR2Ks6s$IaqVNqn(KxxNweKPfW_6kKZ^k5oM~xC z=8pq){p3F2r-kARL~vMAkB#xsD;?AIW%UUzk;Z?H(|WObi4LMPco^f&#DufI$S4m96QZ+T5XIl}Gb6#9RYz zMxi~`fvl)KL|m74>JslZHVaE=Lo^fUl(l$L=JofCdNvC2PC@FPL03D;O|GF);#cTt zZ_opY8@;@Y_@V;u4tm&9hrNASVg@;Kwvbq>rGB1=_DkPAQJ!FHy{q<)AAwUlVX<7K zac;I!o9Nqe1Whg&SM9zT{6g#+q6z3$bTEdD=T1^hDA= zAU?kRu~>M7y2a(d@;?@A2>-t5bSi4Ywir{kdEIjw z7$jUu|Bhm?a0d>?qH-TrMmkr*NvD%}TEV zcYt)&uE8s#pgfZ-FjkX4w*qTNXN@0pzbU0I0+RqAHr`Tz5R^hK>;y-KZepe%GR(Zb zRv{nrF~1)lK7xHSf`B*eNry^SVUj0Mc)lDm_La8EpWg4sCvu+^r+&nZ+VsoJM~+kI z#J2nlA96ewWTW}~KG`e*TclYuooGItl);qsAJYAMA9}u}ah;g<)b6&X&Z>s!5W`f= zRueJe=?VujRatHg%9G#D<{+XHXd&5mV8e0t!lv%^dzhQrkKW`q$(u+GqS0ajuL-0n zScg*@;sdtj7{zP$d|Fjf+0KyD%OU30{S3sU19RA1S6^oEaSrrk-PSb_vSswLYqbm* z(NR~OqEeRk?C6$oiBAvEiyI8XxtKQ@m`y+DC`vSTmR^I1q|~x4M{C9sqLt0sMMu$4 zSTF8%#2n&c@B6AC7i^mR5HnhV(jE1OI?)W{!G{7~f|Y4xxEe^p&o?FT5xN)Y8_HuEvms;Mx#EC*e@E^hCus=2}LOF`r8a1#1$?dB~fk6q_kBf zEi>7Xll4e3cJs$}{3JPYHk@c*7iZA{=Ebq7SbCkiVvQw>L6S}fHWeE{Ht~uDzxO>% zh0W8&a`)%N{vQN)NaY3}-`g$@^vO$XnQeaW54>?BT$v?Oo<2jk8<}H8;+&|^DrU$L zYLbwVo`1vXz(+~s4oc_YwHV7q4`p4Z;beO&V}wL$>2hz}jJ#8}9P=@0j((>w@B7k( zpHAtKjIsOirkT#(?^jqkpkF0}6-`LRZfW+x7W@hd$y|7szR+N={zYQmxyL71_pbB= zMlyAXUDHbNJuS|!%uUKc-IKdC);dV-bhaDpvG?o^iHYucUzdU^-1UBbQY!Xp{zZAa z3v0=+bdJjVojgpqb}*jVb<3_Pq`5eO_-JiJ?{+NQz&dnT*taqo9=IUGXc>>~T}(Fr zg#3KQPT5wc{^JGn-2xs-{|i9}Mb%+$)IqV>kB`R~#4+0-T|3yUdiPJ%3IZHQM0Qys zI6YVorNOkiPp%G_{L$MsNgu=c zJtDcfTB`_|FQsqcFNv<%);GNP3Mvm>D?5v48@C(1OK?OtDFiyPI&1+_-?H%mTK(3K zWe(QEh%S~U7StL>^VLBH`}}?{RmQ##v3mvi5PCL75&kOXhn~=vdM!r{zwtK( z2v)JC#CMRbSFdyQhVs0)Tuw3&*XtsnYNGYH7a9 zDv1G7{*uD{_9~Jo{kdtk_o<4eGNK zua)|^vmBP7g~1Ugn+8ue>BN>mQLg0dFPPCK;*4uv+^u%y0k0KbN&gjjH3-+4r*h%` zg8dodyb0~9`wrb0!W*9JNnq8>@hlYaGi?6? z%^Bqla{`E*1dTMCgT$?YE~7~t4)4yob{s6Vi0c{uZRH?~?(Z)zS5c{Tf$uP!Xj5y!}Sg?rLz z_H<$J>G$q<^KWw%Ic*SquWXm=i_N5g^7Dj7%?BK!JR`8%qfoc=k?a%>AdIbs=89Dj zsbnSs$@sjq{1Wo^HHux_P&QOlvIdY%w{nx&)k>8p4g`aeEy;U#{XNlCo%NbOA;FG} zAMH+wazL@}tl$W?<)UniRKp}An4>^HXXa;zl6J&|sK-Tn24au?w#$a=C9RTtjx&xS zH35D+fUjEp+>Zm`>GHR4*g;cGl z6W$nCX*_H4og?&(upD3FB1;ud$>GW;5@c)_r$SaeIu{mG6|_bnA!K`uZX!BFAFA`R zAD3w*s%t$?Ni@fkt`lC?ss%GG#~SGg6l!0(zFJxz8!qz`&rjG(fxJida3^_dlY3lD zQY)@#UJ1Pit+#P?*w}C za0qRWg_i=gwtCZ0_?cK0tEhj10hj+33|xbgNJPNGO*p`q_KG)QAI{s@;(Wz?TCeH} z6$MXUepq5ZMzxLgZf~!1eE$zua&Cu{hS)^TByOW~hSsuKNWJWWx&m0Qf)t~ig0m=Y zdJTtdD962k^J8F=$LK(v)bmgw$I6|0Ytg0i!vCkEw$;QapX;8-SJ&}}D36Mt{%~&F z7O?4Cu{*$?y7bf_uH>)>(TD+Oj>AGGgyR9)q_OYMP)^4#6dmXIIn5e5Ri9qF|qex@#d)S;~Nv)H=0HP~y?G z+;{rNZsc1=IeN|fd5l5)D=h30@aQZ9-Chf7e$tEoDklKDgnRf>fq)Fu+r;skdmvX`SJ}5dW zbOzYQh5aRv5Z*vYMuajaq-x&{2b+ff?khIcXZt?x!}`hLOpT&}|`$Y7pbSELuo@2qj7y z|8GbBO636%5iPn8Es?qPX)$zRx_3g3sklMXjS>6!q??>su{k;|es17lcGdM)KYM^b z9vX9bLKRNY3(l>)UpM&2Et);`4kYopnllfyn~%}<+&1EybxMk9PXP{Rq?u$FUe8`y z^Yo>ZO+{?;ZbaR0|7dULOfepp=34(wboZpty5l|S5-)a{{0MKik76Y@g`(Ev{3ya= zwb#(pr84}32ZJL`oZ-i^vUDXR3(f!}mWC!f^~^AFQLUl{EnP~Pgh(Mcei?#HJ%o9t zG1&iL#4}pzncw^Y7FFs4LzAq4fi>k^FEc5%-uz7|u2^*cE?Gtx{Ump)p_oK+Ag5W= zCtaP=YAVO)gr|p^X!wi7`v#BM{NdUL^Eg9@UoZS5-92?;;Nh_ET#SbWPzFF2#g-F9 zX8=D*7f+~D!eFW9f(wonpNuKCF)iM~s&=#oxCVm-wgirD+85iZVfD#Ce<;PsgKwNUuPyA@+HEl}I*rELdkcN5lGA_C_FUD-J`14xdud=mYR zlY%$?i-k`i?ldKV-OP5>f>Zd`l1GG^NW%Pf+?Tq3%IYl>LOmcI+af)J@mfcwMy)@2 zSJ{BEC$#K(@=yWwCntVbicF+Nj)Al(oXqyr0+jxhW8xN!JW?$$LCknJ^UgG<)|3+` zo^@jXrM1PCuZ2&d59-K7W#Z+5raXiUM|+k8d{{5$dL+UE#;>yMYcA^@=EbfBQ#42F z4-4?hJR9GPIxqm}XIzv^MZBG~xE+1AuEyNn#x2Oq&O9FhlKn=rq&?#ztIYF1nLo_8 z?bb`0^Im-)*4G~O2iEiMH&333iOp*>;rT4w~6$}<=q z`S%N#XjE@#e|>i~h23xcKd$%&?Z16D-2Y9liGfWlZ~%Qb4Q>3_yUdS!ySpD)B%srS zr|FY9b2@d3>pswN2P&9Rs$j;F<N6yAng1j!j(HkMVr&h`^QYA9_#I^KJOV(uFcj%)uFTk~D#s z!9hE9lONyD;`>)vMQ=4UVR{mMKKfx}hBs(0EfFh+c zTSbmU&*mo1TG7|8=aw%i4{nb9!^adIL48y(a_~I9mX>Ug9Fi?PUD}Cl6RP^5Q}2Aa zDIYLBfYz>;VPVg^{ zcM%u6g~e;O6=FczgaeZVa#HXl|EsB!BG#a~SFEX4bwAUdR%S~01UpPaC^6>kLJ0s$ zZ~$M-UZBsjC14n=1g`De#Vh$rlu4f2!dXr)lx|+5fPi$#AQ9@^E8gPc+!e(}p2UJ% zx?-DyUN{DoW#uSS+e=Wa@><#KZ}bk?ea`--_@IaQ_Y@XQ7-^gd6gqHl5)x`qe7gwR zca^J()(3HIYTNbh3QCQ^WAWIw zm`%v>h{vD&r7LdBgYC~sEMX8f?-OJAm`G0YQ#h222ToA#b#7*WvYJ`JBH1kW@8QhbV&6+bouD{_ICW~8gUl6Z|=gJ?>miJdon@AR5c}Y+jlds397K{ zF7)7H{~b3~wxoMX+B4-ta#di)oj)oo&?%Z+*kP1cUz+!cPvR(eJe_&$^&%GvJ6RW8 zPkkg;zH%~TNtL<3<^y1-_f2ScH9O|Q*(zIbAXcv?O!Ubuga~Mh2bj#+s-ui0ZSnfA z=bv+o5*sh0Y}uv4dQ39oLL4NIC`1)QOp(*ovE*qY{?PC$%FU0yql9oYy)?;ZCoyvl z>KoB9u(-VHg!%+gbQ4c-itVr!8se))TO*Dp<1n^$_mWboEej|L9sKB)NSVj~4hjvf zh4xGdwESY97$^?C_#tws2gL#+qc=rhl#Wmo86?a#ssiuC3fe>E7=~BjfvI;zxObDr zMcEb>O7F=nwc+!j39)Ryq0&OhJw0KGnzQyAqOap1YMIW5XQiN+qc{$hqPh%f;)!+TG!lSI;-|K*hTz3#pvo8{(61oCaUQNI|rST zs~vX}EGEcIegA-YS!y^}Uf4q8b1=M7z`Q(HmLF$gY7A5+pyb$jCDuI)Vu*d$fA@5K zhPHeCHKqQ+SnA93^ev`tze4q7D!ARBiIy4MDMkZG@TgpH-oQYX}!I z7~3&ozhWpyvqW(KOst2Q^`dK`l&*V<{;WRnSE95133FHglK5H5ew$V7!dLe4Ww9U4 zgciVWeFPXigMWtmK9d>kS8maX1RBR@Y)szMzQVl@Z}f&d(+Tf6g8E}Xi9g5wY}oCQ zM7k`mz~!0yI+18Kzn(eu$3k=jM0)10T}OYNS7$s63XHN=Q9kG16YnH1e);`VcBAsq z;tuT<@`?5h=PC3p$#CoE4*wf;Psq{Xo9$= z!3SJzwf7-kD9>o*3&Ph!9wifZBD7T@Z={sHxzb z_a4y4y*RJ&&xuK;WrOyQH;Q*jbCQ4)O~-1-N_1M)N8Yf~+Z`$f(tksSUbz^r--%OW zML>xzza9F1C6xMYe7&l8mRrfA_?KiRqMsLESvPZO85Iq>EjXXw|BYH^;a^7m5FjAp z{#VAKmdzmn?r&|s-wgy0J)m<9X2lh$Kkl$j~-Pia(TIJ20~l)=f(yZSNJ-Utk(9G z#gcV$lMS|mnH~^8ho`B+P}M{h_1PK7riG?A`Gj~IYw@K_q`0vUzU5XnWS)3aNy=`p z2-e*iz+HHeJVw`N;BfNEG2vgCShGAUy+ck zxj>Uo%`rymxvQi9DE&v$H{2-hWf1Bwq(b#!t$+qiSr*ChL;8jiw!)-QD4KQ^>ifZ3ilWCMaM$YyO5~N7;TYkWfhiWoTa`IIgOcO<(5+T$D`h$F9 zr|0whYIx+x7b4I7cH%kgbp!ZuXib8?5lrQIjn>I)WET$$3aL?VC%1i^LP4JvdEy2y7hH=%W1B~W8vO`(nW zU``Uw61sjHs2sVFtB=k5)+QIYI%T=A$FPNySkPayMCNm(e&3{sT9_{HIh)h7T4#hS zUcF-bs@(UPw-6iIYdE!Zt|F=+X0=HBah*?ieUPpGDq^_zFvL$5gpk$>bxq67Pb@?L zgv)i&9) zUNC%rUSPFy0U6%1ws{^e+!$eMNXK`@GST(O;B$acH8m<7Zt|dkGo03bpfyR$_PI`& z;dxOpn##m-`|!&Hy#xCtd(pdZ-wP#?fsk9W@AK^n4^%QklUbVwC&@MZY7x)*>hh4BMqlCsHnWxBX1;(OQK?#j^0E`x z#&4tHeN|`FyGs`eFWzi9AYFHETJ6G1IAVhC!C?I*)rvtl=2)(q^kfQt#T#E#bKSO5 zvPsEn0m){AP;)hqb=qjk(_^+1h)-`@cjoo&3T6e_uo_mYZTsr}-uKLIRKp73Fy^fE z7bx~};PnjH@{HVU;U)`e20I#Qer=QG5&1?AYfNohG4(-%@&nb;0<5K#s_Ov(_F4ae z#ww-6P?yI5lSG@4%Uc?^PlRcvmxDpDo$O3&el01VNJ^|EU+R@8~(Dxut-;XX{_-KUCFlL){rqZ|5a<{@y99i81ecY_wSk3 z>}0j&pJkpnZ`?hg5w9uUITbj~Qrn)No+WEFR&*#C8{HS}ua#|R0*R}+GI@GgES~|1 z)SEY`^)Q9O=vUbTKzwN>Qr#me{si!8g2MkS$@G(A0&}PSIH04hr2n=-S_+$^GRl95 zXe9_|VkAaGx~ib;OXV=$G*Vh;`V`de6-!>(KFv;pioH1<$>_3H4f6!ey8nklS!UXN zaitl&9GjGJlS0l#^qU~BVoA7J8cTHc_EV(W7B#Mnk-;SjCH;gb zM;LkCvw7jg0G5u>Vs>Q_@q?g;|JvMrW5ESP9Q* zbAYs8-7tQS#j}5^?ko{TNGlrEP3qh@>k~Quwx+w6-}2_1 z6gAiyyXnZUSwtDuD4kz{s47nJ4!U*rkj$Mxi7pWH4r55)fvRtI)+aTECHauj=9^77 zJ+o+ebKyEY#4n`;-b9R;G2Lgj;q*SlYQO}cFLS!p-lOB?N~}dyC!N;48aLkD-y)DG z3!@a&LBxf`A)VKfK-C$(hg!F6I#!S;Y)*4-3oP{05)y{p_pMXwi znxv4x%v_VMeJAtw2ky+Z6JFNt({0R-678D2)ev%LEd7BMr$*jR;R}Q_3`$-)lCJh` zL?X-y3VNe%)l0auMy6aerUB3^Nlkfop0uZM@L@s$tZ@$KJNbK}ufu|7v~TqfeAKS7 zBZ6(g3#!uV#GZtePUjSy)tx(pvHD@Ir_CZ(hegMXJICQvwHX!bYi%{mDZ7x3pM5zKL@ z&pFv|9&8;**YjrXAVq(qRN8I|-=QbccD3JK>~%&Rs3%HOeR=mc(iVcQN1;K6fS|&! z-HIeZ_#0b8CT=1A4X1ZAAO5oISuB6q+IJ-taDTdM!5x)ce@N|ZWy8NN+aJ}TFbIDl zai+h0d|;sl3&g+7zm_0yS%VenU+#Yv5Jms>>i+ko8VqVw{s;eCHw1?^TKWXv|0uQvxLOeeu4*Fv`@mC8L{P8}|0HD1#D66s%|uXXZvQ0F%{2ce z`!Z>)4T6P$z(j?Bko=Fy#=ZY3^84U`&+1VADgVE(0|CMLAIi>tU<@HPuzL#|)MMm7 z99tCDU)%W;I~%lf6JT@ zb3kVQ+3sj#LO{^}$1(?5|3?u4jGB!Cc5GvS+9>`b!UMk)!-HGekpAJ}CI?`K|Gd-Q ipC3v4A9%cyf6C8o0#H1aV4+HGuwy$qTz}Pg)udVsJ3iWdD8mY2|L4=}>nuTCLGQcK>aZQYE=95dr_t+s#*MA$Zr1^yz?RdX9+yX%0-XLZ}%1BaS68$G(j})CW)Ra4%48#L!d|AKpfL8 zem(|YHgWNJY7OtE1E(9YS%P11K{V^FGFpwOl?K-4;-=}X37c_F|+@pEMF zZ|^Gj2tdv#5>sTu+mzm*0^nxa$vNS?506r4lm8AgHsv#APYvd-UUJdD0-wKE-#Z|J z)x2UWxQ{wzwxC0`xr#HGhxadL(5P(#p2`cSw}q%xf2YblN`YOxR}?^iB_5C3FZxM4 z!es4M@a6}r4^t8|8L+$81}W6ogu7uSoNeJWiS&)gUvBmT8^ zE5tOh_tdgBSdKI>>GcZnxLHCMnqrliH{VUdV!aloS@6v~8q~*Garj8+&!lAqjL@Ww zI3DWN3#rO)b{4O13-?s){=E)aKK9HZ@O{4iJ#3z_V!EUyk(2!!;MI*VV%(}^&&mZJ z9I9*w558$~erm22S~!Ufwm21E+vsd+ar-tdB=nUXJ4&c2pnE>=gZYdIrIZv1H;g4e zS;cKhz+xH7|D4G27$dKtmF&=3&%2oMl| zgBcS7{?Gj*TWJk_M(5fUTUpX4l)6(*9T#QfZ*4h@)!8J+s8_02$0=WF#6R@%J3}vmJMG>P+ zx6Q^x>vJ1_xJjhWawl%Ya+Fpv!Hs?`^kSlbE@#tT$4xM<;;N|&kipD!xDl}aggamg z!R*wakb>dJ#O+PvH)1*5y+;S{&dGNzD#eE;>|}Gv3XbZpz;pN*8cfj)D z6-y?;6r)Wt!Glt#CNt(dmAG@QN8R}k(>bjq#Lh2D;ee9F>f)O2xQleID;k!Bk8FFyOT8a2M+GYSgZV(RzA>Xu1lDF8r373;V8(=S?hL){(%iH5ka`w~1CC%n z!Qe@!+1>+WoK0?k?vmPL2};?iiqeQBVeU?~Y%J*ar1YIzbVzSFSKp)Ok%FV?vzB2a z@Jb(v9)OIq!EVK+d5avy;M-L^f|qz%8I8(P*;uiZDyn#X#=iDd;JALuhRVH-nKdJi zVjj~5xu!Ny>gKa`1h?0BA9g{j55L*F>WAzfL8sC%O^S z>fa1nJCb!cyx~CC*u*iGyrMym2a;H8PYi^0*#QRmfTJNfFmZWD1yYjj4NOQZ?Z~gi zp5h_5d={EUgct)zor0P? zS$pZs48YW{-waDCNOfHo>lfepRiOyL03)2YZ)*B{z4lq3jnT~-34EhC%1xtAO+rt1 z$N*V5+fEF>kos7p6kbN=;`$aJ2IfHG2&0MAW{ z3G}bLcRTMoc63rQ9@}}a@-=bVNx+j`$NqK#P&j9`qx69gfA)##w zrM>&sQjsyo?);#K+;GSDct-$Ci9%($L=?DIznDN8qcqG7P(5N}vjcjxe{e&6-VYTT z^9ss|1EBm3V9I`Gw(>s#YykHk0gUD#3VKt)0K9r)YT*Sq)MYH&!Kp$a=pdQfgVL3n zR3qv{Sx`hZXGLUCU{+R^*Ae(x(sVp5Sm%-#uzxf)G_0tWMpWkC)(24%*wa-SelHMy zaF3CCB@q}TmjY^!H z07Bxq*?8Hv+N(|}kq4D_<@p`4(N~eqgxGf+H5^MXJ35QpzaKy8p-|gqz@m@_>J`5A zw`5&Jh1aF0EZN22Nj@iJcB3@t1YE)-BcHK<#1GGRTn;zh96CA2($1vCMl514nBn&V zc0bXLa1@*C4{}rc1x9NbTQ0V&lN`>@0rG>6TJJ<%yDu5vLyUMIL*NdlG_vDv5?L!Z_wXs1}Lc=wf^1?;iUIA^#l@!{5^jALa84wJAC zD^QvdB>cFw$&2n<@nxGdq~Q2qZR}G_#;;psWwh6=7N^K-wq1~=;y%I0>NKUzU5Zwq zh52-;Ty$n7=jeUjU0109pW>gH0mLk;e?NQ@Vo*NEn*GWfQ*<}i5m*7{BkEl0cB#p% z;H|Z{g9OmhW+W~z_2;fak8sN>c@AHwA*G#18ht~ww>^tHdQ9zBIDJh~=*31M!I?@5 z*`sQTOQKO_Yxgt_8`J)3m~O6mqX0B*)+d~EM)hzaFN{piN}^juS%zLh0emP&DOKHI z3VtZ;t~@>en(?zrwMDCsDR2+zL=2_9Rok9M`v$3ql}T`Ykc)E^)W9Dh=yIzD#mHW+ zQ6_6eO*|E!dhwoVcf3fgipD&Y8mftXrs5ic3{ z*|owxa8uthWYMF{UB7P&AB-kYwB-tQT)h$&!}6O#FK6)*R)EsB^00Qnq1?h+PdCey z$hA11CzP5~pl>C|9W>=kI9W?Ex~qk_`|ytQN}kYfiPuzcM$-rm0>5|lFp>!U!rfUD zG!EWq@z=!;>dqQI1Jo^#W15Fu?f+_rolhyl8o72W-JyS=Lq&d0Fq`cNs$1+D`+cCJ zZ|wN0QMbsNzoj9T-soD!HO}pc6~X# zz_eUOBDDL!JKM~LPFJn#f4X?qpt*q-v4pvY?XT81S@puc<}}SS5A4)5SqA?3Jh4i5CBErr$Cigk8#E>m0^T5IyJ3 zIOKGbIimGzC~l%v7Zc|6Nf(QUqs64rlE@I_tbVzl6dZO^+S#u=J9Tw)EF96qFY!$Y z9B2RV#u7beHHj${UlED6*pyN$KLIoJy_F@QB4c1;8ekn2Gw{2}=^c|;-iB2H+>p)+ z?hRZ7v&I=H4|EO^TH&JA^#D7xI!rG0c<)d}-}WSRHwwj6S&&irY*7Qk@3&l(b8bfgZA2RcT=~%WQAD>MUDZdPc1m zW0(a_YR?Wq>HH)LNPT(8kajSs%9>l8CL*$e4*=_YMcDi-c~GM%Usl8Q;p2s5vc7io z$YuEs@ri7jfV*W^QyJSxScXkBy<=d& zdLG&jz>YUa8g7zRwl6EbEa_gAeJ6U+S0QzMMtVUcdWZg-;LY){53Bzq_cyfvBf;bA z%6>rXcr3bPueZ^ifx;W``eupphYh&=2OGEsB@+vS5)JSHQdsZfLkm?41cNFk6lC1s zR0+i$nsD)zky5om8T{snAGNk7(3JGn4E7xx8Xj6bfnu$RP{5`&ALrI4<*~}RDKb#% zXvX8O=Lb};9oTHIBWPy*i4)l}(@|>$!;AaV-zRCjmJ=@%juUwAN1M$7-{E~O^k6f$ zga#Q4qZ8r*^brl`Jjp3scESdjnldd%*Hx}MyDzgni&JjHd~+IVcpe+*RY6ptzKe$@ z-BoGq4SaWDjxBF8a`H&4mR?+(e#!r&cdKW-C%*}&TD*S2@xt%Uza@!4Du4)XDL z1-(p0B}*W`jTz%i|M#p+<7m7p+Mm!rA~ZkzzzoeRKq0`*-p`1B7LhHYd zfzM^q8RQY#wD-AWslVpCNe&0nu*@vF%&go>OpY5B$fQW(jx49c%Yx^~kRE|ZFD@6% zh&bX2pur+)7Udx`U;Yb^2-D6kpwLaXS2d zCV4#Qv?af7r9{QZ2!pNPfX~AeHCXr4Tc2gLHR%??@2{=WNNtxwu)cU)oEA|r{+v># zp&HmTznHMBgXoy4qU-j`d8BoktkJMKk=Mq`0bar=mMBWQ3VaxzpzA#(5@sbuL@jV9 z$6c7gWT=WB_cAT%Z@uJOnkn?3{j^X$p1rK0ck0kAdutfT@wCngGrnLR@oSCnycpw5<1n&zvo zbyZyJZe+t#ZcOYi^k9eGYaEzB(i1{7>&YxR)l;(=8JyVPLxHNZVu4d)Zn%Cy7We$J z>N#$4^D1%9)|iWzamuQKr8{gzC1qxS(V`?_Nz058MP(K}ap59R@(RRfweO6x&DlY? zLq0K*FMN&n&^etli`ZnbA{fs2$x(hcp*rG91yPvbd@us+R^+mSiO&xuF@qQ3%}t)Yg(LN(jblvTu6Fo@fJ(C;6zHfeCMt?j5S>gTLi!*95V6Nz zP&wqiDrB~r-!;p5%6SnB9vFH=4!V3gf}Jv6@@4iOmvr?;Pb)z#gtYAvuVKui+Sge8 zCA#BvWO4V5<(wQ56gUg&p>Ljx>tS&7cl_EEnyfFE@8yqgsQa8w8Uj+l8C15?U%*Ds z>Npq;&pM9D4+nufmjYksE*bp*8Hl{&JjM?LG>vL>qIHeKdQg4)y0r|?MM*;TUXq3$ z&%a>&)CTV_*m#k&TiaD)4NGS({Qb0gP;t4qF3Nv>?+0=^)L=g(FusM6runS0U()Tn zy{MlFE0(GBW$4y?G6g$o05rt`j5IkaMqV(f zdr-=L-*{{J8ERPKm6g7p@R6}M!@5olTwSv4NyXVF_){9ouAjEO)rN7c!$thrJpV8R zWf^lX*W4>R_jw1Z@2wG19QNX_H_+hooyeP{w9OYxLPUSg=@dkiU)3NFqV6JXsu4EC z(GmuX(N{3@TjBtAYLOs7!ygeLKs)!QPS9%VE z@$%J75Q#C*GT*gDA_CeS$oAc}kVjps#PyIGywyg=^_{r&3@RpS@H}mB`iTu|ZF51V z#|Rd6PTWV#lt?%Kh-!kZ<0U6yF4n9;!VT>-+{%w*DKz=BBrFaFV1$e-p+fz__z^Tk z$AbQw%6u-6eUmxU#Wk8OVi06``C&H8@WMl zN1}r7(G<%s!7qAba#H6{q9umL@H?&}aAI|;hdVd2*_7n`vphGP z67yzIKz8@1%?PwE01Ad5|CJwH(Su^5H+t-)fmed(w)F`M6#Yz1in+g?zm2f5LKZ8T^9F-v_r;@PgSsMv~i(ae-{m z;!~=WJ@5&<9&76rN0If$o(bm7Op!2Adk{Fv533>jm{9l`Fao24f;Mf!5Xl^e*+(`H z)7GKE*cDbx!7cNI9$hE$#3myUmrX^BEu4FgR!=z!bpQ$jK3P4qBJbmTE0^6Fo#ER zoW4B}+^k4V0#wNsKyBioU}hCI6uVzK6y7oDse>v^PBA!8BF}vywh(dZu-^)UNg*gS zAU~HPLdbAJl#EX4Ikcw){4l@X@K)d0PR7oCpn6?=wWuj1RxD#0W+mwWL}&EqA8lg? z1fRV_{mt5(8x1SEf0FPG>VIVIJOxqEKnn(7T+`M~eIDy=BF${y!i74v2V(Ja45VpL z9IcTG)wfU>()3WR+z{23j5N@0?|7E+84-M=`pOKQ5aJw8ZqU?%Iz1v5HBdd*MpWfV z`&8FnYw@?~t!Ikx?`=cd`&Lh?5SEYu!&hg^yJgFq*M|wuJ6@c3*C%AZRG=YjHy$>C zVpdQ^@W-I9=^#OO`;41PpSiip>_Z!Bdu_q! zchHxCqjUCxrVSE%7wP3B=a6-6p0`whM#V9E1}K^QDQn=V5xIx*)j8fJs?Z!xS(Y+7 zs-ew#9Z}Fe(wHDLf8R`uC9xSV*=q8}J>2d4hIsMm{}Y-#!Y{7Sh-o|+mS|&LQ3)JNWOml5prBPeGByi|NlTog(Iv%x zS-yBCG&Fx&%k~I3)r7#x&?_S%6O>o+oL%gOF_jqNk1R%l&Cmd~f0md1}Mx$SZ z;r5soFV)y054l>!dxGG{_s1FNBu#@wfueOWECp?Oy#tC)-q4KSh{_@>8^tCFXVg6M z+aOTkj;1@-^QwTmDME4{<+p`P?%?u|fonhD@GLO-Qh~iAL`d6^A2uxjwFY%>>E_5_ zJxW21ihjCK^nBZl8lTLsx@uaRbUN)pfp|BKbPr_WbGFoITkhduYajXCP-@l*r8&^ z-_BX&X_VuGq;MU+QlhhIT_wsb?1_+Jm#Wkf#HyIxLzQ)kZu2HZJ(L7d<56*2&REOT z6{a2HZt>(Bq25l18B6VAuTe*?mHeXp{m~;-Q875e@`AyhEIyaq^Le~=Bdv7$pV`zut&GG9@fyvr#Sws^S|DYvIZw2Rap1uFIjSElc;oaxfFLck_NdtL!f+POI zVVbDZ)K|7e5bQ*voFG~Z%_9yU!!EI*!xVD@J~#|l@$B2V;hOkx!6a_CmRZXk3x6jU zy6YaioRQH9*q4OBY|=@pr8pk0SUnsrq|7;3Yr*OWz7M)7+LVT~a%Tg@L_VWD#$~$M zx1l89OO$Iyx>#|!uVUZmzJ}!)`Y*By zX;Nv~1bAZNiz!%oJ$?Q?`SBMiTl!X6uo)(9He)@QT{F5H#mAtOY$1`; zk5hbk^sdyW^WoGekIT*>?_stb-3IDE;JDrrcA={yWlJ?;C*rRAd`e;p(w)+~gJz5a zkABZ>gO7h1LCD9G3JYL1B@K`59rPscCJ~Plj`;+D!g`UB|K+=;wByT~buOML419b6 zSTpQS8qor3sR59&7dW-CB)tIvxKfXDUO*DC)b7FJ&1>4v zsGpaReq)AU^EZ6c7hI&P#bubc4;j6&^{bBv3*Aa}%L1ckTfug`!sC38pH{mkS+a6W z`5)TtxB;<5I|s`M0X?rD9-mLpU*AIkUBVZUCpjSa1Aa``(8vuZ1st z9}OQ=-?X}d-igfBpU;mpDz+5-AWuWUZf!0pAoWlLFA^ec=%g%>N_vetqNVUxH|^17 z){1V(y7D+UjCqPjgien&8P#treh}3Og`X1SE-?~h;U}@jsA#22xQv-(emtZC+=p>E z!B$4I7x-ZK+GU0yQ!j)4FWH;j&fQ6hQ;7Sr!j$3dGZ_?*`bQKS`N^a|7(SF5v%DY| ze`!WP8E;HaV`8s+cx1@G@lHhDI#ra36n)u#__X0{zE3+rLSiA4MsRFMbC8ppZs;+s zxBEDHAfw8plu*_wATzS}_f;|B%6n!tC&1jp^~kV_A)7S}NoxqtEm9#rObAc)Hp+#R z*B|YIlf1oB{<}|4&>r5uyEEgz7{R7E5KG0fqrhx;hSMDkSS$;pdzQNicPLeB0 z(p(A#Mpt4QDhnn*Q4$iZA4Ok8e>y0?ghn0n<=nTP3M3+Q<$rzFd64~@?RwVg{W}Ye zL<|8ROb7chkcxfbV79==^XHaass+#4EIESVPqY|(*3ErDs&~_L7SFUU?1%iVJ;Y2X zq=*^J&q#@1Znf7wX{!)q!gum|HFb&K18=2ssw+o>=Ik+?90^aj^26is!s%&nw6zll zFNc*|s3U2A*|GZ4)Un}4;8qR?GLbLjc>)ni5!2UwyfTQ9h8tnsj3c^D>g?;5xpeF@ zhMH(=>23M}8BHe<)KP)sKKX`VbwaA#oAg>u|8FPQi~H7{lxRqjPwB^3B8X z_(_OGDtRh;Ok=s>mjaOWxd`%$zCK)s2%W)K+_;^2(nDOfGHA}Gh4c2VJ5FQjEK)`j z62zXyRoyS!p~si5+X@0!>|Z#lMRbPJ%e6n>@<%-Z+&@tkXJGOginzJDMtwm{MpQq@ z^@iJH`C#o(GelgPj8KuSug;`PB4bAa-<%pB!YXY~FfFmJB}cg!MH0AESMR42`vFVJ zr1cv<`}UXKJ6ZkQ!i5c?USNTB&P@igJF%>q=a)cJCx)ZLDvyH2FuZt&592f8N~{Dg zGsW~+01l)F>LZ}XtbAsPluz#$`KMnzfwv&e&M8nbS3rfPN`yPqexaIo-OM#ZjTusf z`NofRx|;o9oj$1eL)1(7*i<_a|tW^G53|uc~cD&=JvI*SpB|OB8dpAcih+M1^ z3?Xqx{G^y%>J7&ABHk$#Ht3&OC{tsn^e1X;0U9-uMgxb+d_v2k(yqqz8tW#*_anGG zN!FSb+SARaOGVp#JPO_OmJ}6<<~)no<))UoYCTdgMKMiMV4W%2c;u52p2}}Rj0)Jj z>>4-U;LUwFY$SYO@HYxV_cP`h8c#j)408tvSTQ!d*y!q~4=+7VuSVE!zw`}vDNBHt z0jeZgy$!>Z216(*9Jerj(oc>elIq*)st30Q&g_};xOE@e(L!j2B^0DXT*&Me(mD_j zqRW?Pm5SMX`R=mKTE)Q*eo@6T5vLhJr=c6ckh?OsPp79JW-1!WF&nYv zTvG$4V7A<)HEar2W_4%rcKrjPP6(OcfRP?EMhTZPP8>{5{B)!K(>)?q&LGZVwO1Xz zgNlqyU^h=fmCF`B_B41@OS%l^q|$d0igfu;>r-%r05-#Y zB6Yn~X0|cM-f=_+a_g>HJ5_oGilbAgdY3|PKgN&E+w^pIL+V!-#5JoyBC#QxN4;8U z`$t#jjbh?$8}z}iwgn~vYQLx>F53+rKI{y&vnL+jJJ_Ro#gdo%x1@YT%1AaG^r15{ z#M@M_C82%##-|I*oKRW_b!~$r1}JjM;PPRKdd3py?xVrirTcQhm~lHGO_sPc@4({h zfoW{el4bFl8v*T=+Dd+8%F3RsQDK4UzG0DmM~W4@#Sev5xIR@&D(CG*YVJUWnM6|Nm*0!4d^e|?|%|>W5#nV2`ii{2zU(BOYLSe zukVZwA}LZCFzYx`qKt?j8C}^q8bxieydcM#-17DbywG>Gy(NQeeOJT!8TVXQ(pXc7 zB4LNzdhd$2#moj70gk~EnB0cN`Z?fuf|$HmG|o`6-%6}d=Pv_3zl779kGeadpXGGa zht4qPe9MXu-uiqzzOVq&1FS0A3$iaQ)OC?hEsS{ipkBGyJWF8#1`JQ!#=^g{D0(JP zCKa_^(4jWU-Ccldk#aCQs^6I=`xMBz@h)37ETvZsQ<(h4KeIT?El!iLdyX^@@c2*B zjK2*>(r0o?Q6Tc~60#Gwvo2*h&$mnuguO5yuh3+kG!Z!NP(H>F0F()TZ&tH5HJu}l z5m$<2+x2*wC*QU0`F7$^J;faLJ?KX6Fd5=S;9i;rh}xPK+Nf z>5h<;idVCEa$DrfSFKUMED=J+f8$j0J@z|g&wXEfFFm^wp|^9x-tcy?bBxAhM~5^+ z;N#58*XGoq#d;}yX~23##L?BB$_f$JPE<<<3`smCDaiO3Vb6iO3Ae|Ysehlrq77$$ zfHAmZnIoU(As%VWMfVTaNcszrr(uORWUj;F@j02u>=vJcGHvm~W)jP!5lqrJ>FDhmQ zmh(U9Yex{n@rcT&G0SlJ zz!&KgAX9Eo|OPOwphJvHKv4=)VpA%n+iuPX!Q6|dy7}Sw#a-nKH{BAkW?#4djVZ0z znlPLcSyUtLH`xl#{scm7W7ft>(x19>&RjT1yU){grbJvu1?H1{j}5hERej;`%0&&1 z>sHU1^C60mgo7L#v7pz9P^nKH#7XJ(TgEW=JBfnYYyc>&1NasGa=y@-PEz2k+M#S- zb6IQ-<^-PD!?%kRL_pfUeiI4WIB$?q@qPzMapA=@Y5&j z_fWInM{54G`X;XT?VR^>KwAB-nR+-WnKe@V(pI@5U)6{Fxow*Oj(fM*>k7;&5^?tR zotC}zVt|wrh|v$e`9V&~$+lRNFND9uIc;Cj_?%7dd%FvtU*~V)$jb3*2H-RPD{-r5 z*S0rqVgOJ)33F&%BX1eP6;{%|#L5d`ySMI> zx?`UcnIJfej3j>}%_}^Z?ZxaorSK^v~CS!&OE{~)7mgIsFIgd)E^~C zbDOfcxAJ^u`;7ZV#W|EG5+#mM?SyFeA)lspAUJ;we{&a%?LNozSINPLPbkC+uI;T= z1ys!*U3^Y|SRekp307Z1K{+ttWHNd%9J=TV6ZK0u*Jc9GuxqE{7EIs% zq$PTXeuHhUHO8}UK@;5Pen_FZ>~8;UJirMKv$1wZ1e!BEDlhg$Mas6y8?kFeznZ3x z5YT$=2Q2rmFDvX}DVKu1Yl%OxH;X-pWz&LxZabFbo_u^EfJ0bSAlU5JQ$Fgk=Lva_ zGfAaoGA8zMMfivSXUwcRK-!at1*bBs18eD6=SPG-@5Jxt6qc5mG%C>)5r|O^UImyW zPo-|yg7r+Ac=VG|&x(*>ERUdi(hNTHV7N*|Yal*G9cW>fV13fWqpc)CcfB`{9c4st z!iUYWNUL6vw!ZtwI{D;t`c^52+$HHE_;pxED!{R7fb;skg60hWD&fROoLz&5vk zGdpy{{|o;6|6{F$P^Z5CS_#@n|GEELu79fq0m1RV+~Wd4Xo4)Ds5Ta;ov434=WQf^ zNBPuF2z8qXnuf#y2_@l!4BP3TKw1CK!~|Vr5q?ybgM`9_`2XU@Uw<5yvi~8lIw=1R zA<#hxHIwtNg&-Fb1ni)L90t{N(EaUO`_l(i3aafO0^xLWL6U+LJEcC