#!/usr/bin/env python # encoding: utf-8 # Thomas Nagy, 2005-2008 """ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. """ import os, sys if sys.hexversion<0x203000f: raise "Waf requires Python >= 2.3" if 'PSYCOWAF' in os.environ: try:import psyco;psyco.full() except:pass VERSION="1.5.1" REVISION="bf90834624c38a49188ccb0ebd5a521d" INSTALL=sys.platform=='win32' and 'c:/temp' or '/usr/local' C1='#*' C2='#)' cwd = os.getcwd() join = os.path.join def err(m): print ('\033[91mError: %s\033[0m' % m) sys.exit(1) def unpack_wafdir(dir): f = open(sys.argv[0],'rb') c = "corrupted waf (%d)" while 1: line = f.readline() if not line: err("run waf-light from a folder containing wafadmin") if line == '#==>\n': txt = f.readline() if not txt: err(c % 1) if f.readline()!='#<==\n': err(c % 2) break if not txt: err(c % 3) txt = txt[1:-1].replace(C1, '\n').replace(C2, '\r') import shutil, tarfile try: shutil.rmtree(dir) except OSError: pass try: os.makedirs(join(dir, 'wafadmin', 'Tools')) except OSError: err("Cannot unpack waf lib into %s\nMove waf into a writeable directory" % dir) os.chdir(dir) tmp = 't.tbz2' t = open(tmp,'wb') t.write(txt) t.close() t = tarfile.open(tmp) for x in t: t.extract(x) t.close() os.chmod(join('wafadmin','Tools'), 493) os.unlink(tmp) os.chdir(cwd) def test(dir): try: os.stat(join(dir, 'wafadmin')); return os.path.abspath(dir) except OSError: pass def find_lib(): name = sys.argv[0] base = os.path.dirname(os.path.abspath(name)) #devs use $WAFDIR w=test(os.environ.get('WAFDIR', '')) if w: return w #waf-light if name.endswith('waf-light'): w = test(base) if w: return w err("waf-light requires wafadmin -> export WAFDIR=/folder") dir = "/lib/waf-%s-%s/" % (VERSION, REVISION) for i in [INSTALL,'/usr','/usr/local','/opt']: w = test(i+dir) if w: return w #waf-local s = '.waf-%s-%s' if sys.platform == 'win32': s = s[1:] dir = join(base, s % (VERSION, REVISION)) w = test(dir) if w: return w #unpack unpack_wafdir(dir) return dir wafdir = find_lib() w = join(wafdir, 'wafadmin') t = join(w, 'Tools') sys.path = [w, t] + sys.path import Scripting Scripting.prepare(t, cwd, VERSION, wafdir) #==> #BZh91AY&SYIqB` @a s>}4>}U*nuζZ6uip#)#*/{|ܔh-c(]t}ӈᰳs[r#)w3f #)T 6Ph}=h)!RERD } wRREA7'}B}^ysc^O||nvQg_{`|7Ϯ{a@ @R=1Pu.uN>OW}9%wk>ϰpLph']6nHQ_CO 9Kv(z-pzB^ݾ#}⣽[;lfUU{b:^_Z_Xs{맾}ϽgcrowEϾpz|SH`20bjy242mM MASiO=#)S4C`@42$$&h~LG&Cx =T @FSFM#)$F 2zc@~I<"DBb&H)#)SiS#)G#*iQ#*gDLuCrνlMaf{03ɠ|x,1,zo'a+NN?;TCs!ze*[QY((Rg:^FYvhnLklf0,W??ShHUƱ2C(z'O߃䜞Db1!{X?=楲VA(1#(Ah5{-Ņ,|DxmYC}PAbY=;<2 tfz@Eݿm#*\XQ1Z)LV{ ;- !.1~Kj(PX"} gjyffӂba2h\/;>:Y避kd`^CjH6$b!Є#RbjWi͊V.I7T#*|?&"S~8ƸKeA'eIWR~)|6#Nv'pperʟGqEI{>ٝ}:Sxrz[(:Ko0:˹huTq#eò~༝_ŶC{C{tC]s)b0W0نwzk=o? yk}L8a$m9E8zKGe2)ϗWhwP8*yRyKxdƝZ`s~ ԺŞoe+-x 7#) 1cJZ.6mr='Ks.e&G*k:1/{S,Bq9c\|b*T :{/eOS䝢\(kyL-~tu /,%N 1EN|9θʂigh-/'~ `p[ƺSDE{)DҼoO~ۻ,?r],+"&Rp>ٛAkk]ZzƧxg&'FZq,x}\b a%fn׭a(yZ(V#Ne5JU%h]q>?jDS{l v r)H;T9B/ a1t˞lUjj#*@Q23y~U8پ_3JW^.[+p׆L+xC'2Zwt+!o|90RQU܏ b'/0˼ʙǫS;ٕi1 #*|PH J |tVrmN7b#v7E*o9hm,0tĈ2?#*82*gtMX_;&ٹvI$=n Z7#&m9Vbf"l)/ѸR)9O*3m` Bsx/.AOOǽ;+q)םۭuj(uk$}t/?B1GI $}v!>&omV+m{ICOn0JO`ǮQ#)]:ag0#)I SQ妮[0gQv͜SYg;܏z{lϫ|ͣ? +.pM%$#`\ sDEM;@ȭJ+f*0-`]NK#*e4.nQ]($0 r>ɐ!脢Ħ)6dlk.N{ޙԦ@%C3"5r#)pv;~uk :6x ͍-'x?zk-gW !f0ii>78Q_ >"m9O>&3vcz18e'#*-vc$Cx}:>J't3V*#R&JT<^-wSQ'BM;g8Pd}_)>,x}p|s%"# >#)hqn/[ř[m OvvET$gL7eeOmIm[L}qb\L(:\mA vҖi<5+.81n::pC=JRWjY_mlq!|T r5Ȍw2S/$dIkێ!d_Uo_> &0#*') X2@ED_z!寗Uk?,00Cھ !Jo}Ks8P=c0#d*8\{2/yhʹ4 &ʬs}y#)!Q9-V~Jt̄\@M^U*c21#se3*:5BRsR\Jf3x<|ѯ'tt :KC_^$~<,ZS?TVT'g]fbhM@t{Ιh@|zz+>/z{F3!֊RgG*3uKnbuHc(F^6bL)'Kx;]Atc'>{BI)QsJE^CB+.nuT; 1#sFA,ru:L39"$#){wLCVZMYz#)R'mgTĔ$GTo/1(lXLk&qL‡;"-1BP! z[,l1:T^<Ζ#* vFggߖpn|@4a ș`xGUTYX>ׄ=&C`v)@9O㝹$LlԨv0(Kom$ W~>aσ((Q{Y+&1CJX2VBL~ {o熛|ϝ)l 0*5<2+#)sI6<={wJ-x%BN?oIfRݶ\)Gs%ۈJ&b; ~;_T#* x^aC?_'F܂[k͜A>\q[4DətyLB9p%+'Su8=Ϸ>lrO~`ը "! UL\gYfL) UYٖհg&ݷwӇ5ə&m*dY ?K z;6_>#fvE~wr~VroOwPQ9l+m{xxFSxϱDMu+.h\?1E=4FI.A؛*SiBf;@/⤒t7#)&񷓳B)2Vk_=Hj μ[o(%wE:궓^9!# JK3mq$5"clT~:E ]>yQ@PU̩dݫUh2ԣ#*C m-8rҰFe_Lc[FЀ(&#* qr>H C]d*_#* ~X*a~''z#*|OHUЉc j(׎?]4ٝv3ۏ"6{d=\*7rzPԝzžw'Ʉm99πi.7a)SLmP#) C! AQ|: ?oW'cuH g^_ Z߻aV88I$XVjVl|٧02qo7:ѽc\ɄP%S]oyبY4K=;nbى\IOp!`ܴ#}]%)PBc%0Jt K%ImC~XeD,_W dm߯V\M6sCGr.u^_N-|FA3#*ҨfB!R o>D/YWk?('t6<&(TmS[BdSL- #)4UWb[\2xNS4#*FC|46x{V\DUѤ+ԃcaeaj->.Á@.|Ygpdq#[;e;#*M'%w0b1|fof"֍&Ɉ`K\h(GXOjITb)C|9u)$xۑl֛a,^I2?ɀ_2Jgt L S-nYNP%}a#)tQLh4&Ls3jZ4&~gčgM7pb+fpt|A >:3H*P`Ӷz3+.S>+q3ŖyR^ "ΕlIʚ|\6ٲП|E%B[D#)]l&#*Z?έ~Ie`[Rd\9-F'g H_RSMșuouqg_ֹĦ|z>[\:up>S;xsnrgW0mruqq]>G{YPvG&*l\*Z#)TLc8s6H&NR#)KLmH/i܉DD1 'M7sNj6d!#*[VW0.a:jyA(;>l8A#*k?nv 54 Uf?'SaJM(~ޘt]`sk>7yBjBC#qqᜂQ:~\١eAqOUz=LJH6&1Ua4CkYQ+!$Ny22ҬkS Ҕy~әрoYsj,lTM13DŽIgӳQUEk,O_"Y+p$=v-eg#)0Ea'(1U/Apw cU@$+UPO ZAVpOk4!]bPƪ ! vϻJrgUt:| UKd[ٝ0$$$ʝu#)xmDϤyw˖>c!~"|#)#yMڳVT1_O-q6a$+pdG9|tD$U<GE)UK#*d;<~;xw|3m)ttfKhil]Lf% μ諜,:f 0-q:[\ %PA(BeX%J^(~<}m-P:tv"_Р9^Z>vVSw o-0v{|8:GP>0[vvrc2Ʀ]x^RR|l>GY{(=.jJa#䬪eyCCqo/ɥf>Uyq?NyE>8;z0vnpWLmvwdo$2D"X +pk9]Htt\+>{#*gԄn K( TΔSFxa\vvŇܬ؊ˌ Ue{Mtrfz[xhPYX0(v9o>xv#v;M͡C %1N`AlŞX>ǧ'wRdUqB*nz+&0‚*J/H?vFeXerTU3vNfcwk>{ L$`(`G*KNWGݭq=oϥJ-۴fu>[UXB4]x-PD"wgue4#*I6:KG(+5R#RiWLX5O8#Cιo?K&*Aj\9M%`cۙeUR^nȪQw #)r֡xCL*ƾq"j8nSU ȡ~.ae WD|n0_ϼG2;Sb VbSGS^}y[\+Ķg-'V^jIjm0WRP5YST˕dkyů- bQQ N.uJel)Rmc95{9R4rz5Rx19ʼxQskxr?Ún9vc2V2t̴۲-KĀy(ze\JaGFHmxnC}dyk(z1'Cc3-SρLc pjDVBumg=OI\=,iAf>o}'^I_= m~ޚ__Kz ~K; ӜUKDS˲[s1ܞ_لe4R綔t+,WvutƷ&֥GνʆF.>|{p]!~F?/>!b^?Z3#)~c~8o%#*[Cj#a+vrO70]*}HVU&egDcE#V88"¸(L+g_n<+kM Pլ,ûU{WUَW\_b+_6GRg)<} ]θWd1]?{gz-!YaS)[vxԥ?>'V|;mju]wu㪭%J0? K{V&N?sYƮ >0}5>{>WyңUU6|[ @rrnj_ioi"Q^ob@~.?@7oK%G#TKsX^\_PmλbȺ'iU,#fߚ{/-$Y\wKxd-io&?ƨ:Wy>< FtZtnղ_ ElO>4K_ﱽ~#]MhW򜪶:w;1)r&G5t p“G"@TC:en$VDmt[5N{lrm9m܄"} 3K<jK=lk׫饄[} K^(-q2PsY#*T<,Chf>|RO]rslߗPA#))gܲBw9{*d6A7z:S k Z-qГCCtcH@w˘##*a2~nܻ2bLv4lg%X=w9=C䘌R*wBI&Jő-z0Ձ43rQ/>zy#*|;baKvxj{䇃!{kuwtŃMܸ*i#s)5~ԠGtn#*{q}k?6]RI9$UGs̹>%pL&|0G^,om߼4- hggFSe(`?$<=pȂ x"lBP])Dw3V4?c#):~Vl#*pr7̹~Rvt U*a^A$(akS51+=Ic80\2 ]a5|*;jFpg!]Np,QçG}`4R. 6GnSmɮ1 ET4gd89xy&#)Tjc*/B@ >]2@Y22_iًnsC-8v@P_i!Z=TZw]#*Ǔ>kYi#*UrpFm;`, n7g欁&[ HI ${M՗"mpJh_=t--.֍[3Z*ĠτkHI5^K)@P1 n*(YDn؄U "+8Ձ_U` p9Ӆ6T̀C #*2Փ+wG첮Ûjk63Gu]a}/ '0C0M̶Ps%yYka"MR*J_lo12D=󚟆W0{282ދ#)K 2tOաO(N\ s<쎈{/uyf4 iVnK,ѫ\ 4Oo^Q_gq#*l/S`:z5A)x\~2+e;Q.F#)tM3^5u/JeFJv;;ZctvWҭynF'mmBU|yI: #)L`#2ёP(K=\uU3LoB1G'M4NrMnq}?Κ @*|Q kdOcs$?!@9|1Ⱥ@T^{7J <#)(ʏY t9,YB!> XMQ<)rt}ŃzXm-WL4! 7 2G?!wr1wK55džhmh=  l @gE)C#*ZQ>˅gx8RP LGtD>tQw9kCvTv#*KQe!ܰ5!"MVv-C_V0$]{0;%taՓFj8=mAExSbvqihWi0~4υf{>}; @}h*Ӛ\SjYRee mXyp%Ao{BoV2S@ $#)T&Z#*>"aDԳcI28CC2#8gq6BT9oSR <{9 d(&|w$GXKNT1x.|MT$EW]u+[jUMPmCΒBԤy˒$Rwrk͂ [FMJm }OBQw4Zۂ$|1|ĴD>}?>ȰclIJ2ySƧҐ_b"j$¤Hh4#*p: vP\M5p:ۖ7"G4!#*9\f9ǒtPRdpe۲ 'I/6IBy-\h SP&(0wmv 4سmv7kx[!p;Ne̒TckwK(۴My9-;6A$iC-#Pui3k^>8k£1fPHGZ*Ga )*^y/ QgA#)gV Y~O&{bxhObyje3d"iT5M&=w=]QIc!U!gq0)QBL C:A#*^j90Nt53N;L%i v#0VԼP!tWZފ!Ln)"GqdknMHE8t8|>&Z N]p]8i2UqӔ!y+Rd$g.wfmZe8budX+I|olpkD&tp٘L]u&x ʊ b{a]UXӒ 06>D^_}@H$ E0H#)ZBo*+.OV++g3l^UKg~MR`+L3kJʅ)?)]oi䂁kmCb&]%}1"LvYO-#Uc>p\s˔fI #˿FIh[<;Fͥ@@XNg -%[Pt%#4F^#)JEbNP:DJ24u%# aֵ#)Up=iaN wvfrX8;7I8fCu{80j* &^b;#&`y6#4q jVvIj8S~C8(MN#'ai{ *0=u^k!4 Vy"Wo :P:uԺ+/sdl1iJv"`e5N5QMlH$TI^vٸ]ڌukyw*V=^W冷*ѩ^9RkNr/CFM͡ Io>sK up+.AN{HQ312UPth>8S}A2e֭#*Rg8~>Y|ϭ8*f=!i03t{g`v_u&\-fÌ#i^[LR.9؅n/V;w!;=e%y#*B)C*2Ϊ4?0? ~#XkT]:s@j^NM?y,ZupW6wi|I@dbA1#)tQ@$dQEqMkpnG #*4lR;|z#)Y?hU sG#)]H~̖UT-~Fcp֗N/P8JUN9U.Nx[uɤ~ĒwQ)nY6MOp@ C/vVͼ5M@<{WF_iMqUr4giI).XVi.#*Ea*3Ds}]C!3gpQj hlP T`6AN<ǴkIgN"#*CP2߬܉9@Nl[Lm#c= l '< moNm5`l\s2\t哚-#*7WFΜ>ߗ}aCuu<|ҧG4]#L1L $~ݼy#tvVw#*ZH!=.Y-i;\T?:S<rRI9JBBMSNFoTė{o_^dD)+|HR:x\>yqmβ{rbft8$Hf$Ʀ)<7*[g'w^.LcW׻ /m)2$R)a\222TQUrR|2MaO0䔣z %$0V[2vItP^`&E;z5:/$[-|Ncm&n j^d#) A0F$@vՙwB-2GMs 8p9yV2CdV`^@mQ!"ѠbMr qqѽHd !iA0On=U5.Ґ#)Иi„ $·6F!#)~C,E6 i&xI6n (}]N%**"D""w.,$t`ȕ0FAm$GIsyD{@=Na=hTkv/}7otmH`p"I5SAeVxɃhC2>sٙ 02tsye"Y򷇁́(g(` M#)MC@OHO{)+Sq@c,L=u&+:نC bU RyEhz݇U`7&xI:5j4TD *[\$͌u14+߄f##*q!'l:En7$wwOȒ(U!Gn'y7 c SZCGkh "|y #)gVGއS,+Bdqe&!p&#)"Q!#)gHع~M50lmIݵ94|;LۄJd2NddmÞٺfc9CP<|;; 3)xkDa|{5a<|L1#)1n:X;vT۪0%՘n%:me~]`OTާ $EDh<^<#*m#)Gk^РuAc(BElL&YgUC8ˉ <#*x`iSo}"7 w j@K[ =A#)=CFY#)F'aP=>I(#*Q}`!ґyiLa0TWݳHٰax 0^_-/7w|,D(\u!{~uܞGOI벿8?_ '>ŘMVI!ˊT WB%O0nԓ AڍxFB:`*B3kR:O ZP^Wf-'9^ !vq?->{R b0lV,ҍ#*Ad 7'84)un1:y@I>>ScUOT#sd-n5&Qaơkdyǽ%o X@Ӝ[be6ÒQl4f`0H-9<٘/,3Im 8nKlx(|x#*B)(R=i/:DF;1XdYc*@.^&nUݷP֑A t4Lb\G"bã 31 (H o*&$KU"}mw>6.z)/3]+ՂahwZGHtXbQjh!OIdxGdY~Ӑ6{ᬪ9G$'dxw-$la=gcD%5Gxi7z;/wvCMFZQyX@%[?7t-{.@2,F*$&*}wђܾEV:B.MQw+zcd<)ԋUzsH^O{4|sU{߈6rzl8鍻#)ҖҁkvWN +K1;kP8/.A=?-V!Κq6p-iwDCxNrT;*xe:Ni햤4E{$C4U4Oifߓ&hz JE] #E=c/VC3H؏Њ% 3#,Ƃ}$KEHd~@b5$IKI$'N8@#*#*N|H&N&b})@)홸'w@t:҉IBW#))(2wR|PP◸%`m'g ':BF5#*w$NߩK9fsN`pF+"(a##*(.ޕ?@+,)M"5>л.@hA"_ϲpa:5#*>tߩNKHkڢ0HHɗA#)hh;D$8e|\aQ*;4tك7Ѳyl A^ݎ9UZZ\>goI$)'GAA%*BP=qϒ@lB(HHQ}@Br0"i&[\A)Ǔ0{tMCz7Wք$A,0`M::C;w[Y`BD({4MKFy 2ODѤ X=]՘p.`ղR=CCar`y!#)2-T!v\#i| ^X'w8Ӑ~ NRE"?sSx.%Fv3,лg8=ۏxQ]! 22H %wqQ#)A):] 1I.&70tkk*ͽ=~%zKAv`68\0SHzDJ "hheM"=@$V_X'aA&aPzxVf(Hy7[d#X-VPZXŋ,--#*Z,j'T u&Ƞ^W̑#*#*wsUw;K>~2A]7iLW?<[;H$’"0w $+<%Oħ76XƠ6(}~{ϫ0c1)KkL:&i0Sd!`I!@͚TmX0S|:|5oދk"\\m&,H#l!Ak'W B@R)w[Q&`kHsz|'u{}z/(xЉ%i怏)i&;DÌ9b}&HjD9dA}H_#*|?."A@b@O+#|}9 ҏXzٵOnQ$0Td; NSD2?9W+mkanDEL;ߴY7~%WvˀQ9\XE1a B9H^Ið\,5!#*ady O ~/H}0%r#)]#*W58ņEiO&Tv;SWY1#)},,6<&8Їi:_EBh, Z \,I^3]}ڨ2#)5FvP~#*34[)88g˷Yz~\ #)DSY؅;?L$'In]j%4!ήY!빦ؠvw(dt[d tvOMQ_x/П?%Xp8娏)pٯiHs)kyv98̔7qi`sTl<d-|8릯)X"m##)hK7agHS[Ir: bzv{'/p}Op߿n-iS1,$bTJuzc<*j)#_ ǣF]p4#$lx2とc5:>}1,!iehJPp=~ @@<ƾ Ȁɇ ~5ݰdT2BBp_d>`eDNQ?*,O=5Ҏsl#*!:c%TS7w|w}_~k`zb!T>IF) l*6w T T0"uF=#)w3"qf"ql=꺕u{yͧkAI e%<zL*EHv.'>r3e<Ɇepf~yi0+@ -BG`1M.S0m LqE$]%K-30vi\gu5]EDEyR^% [@A<_n#*deX7C6vRzJ% ۉnשڥMU#*_ sNꝮr2:m890Nx hDaј13#괼#AחfB[~C)9LQLeY@\5σ)hJB$9) tcT(I)C¼709ۇЏMw&vNTܽLM?_S nI}2WhygH~5jX61,'|mB~ #<#)5'^QOOw&4+b=ΦocӠ?*jBM=kNg7@0r&.Ԋ*weДf7G‰+>#!S-Nxj̗(u )(~qz? r~f8',HΦYI!lU L,Z6((#)a{K J+RhT6(g|kL!weě![k;3 w# sB>urG2ѲoѩLXb,FCf`Na4%C*;l`u#*TF%9A0Å܁g#)3PpBȹX(3Is.BmN€MSg;c[Ulv&SPw&! 9Jy)8Ҥ#U \ FƢۍ! vd#ƥħKחb޳B!Cj{ֽ5&Pmo/72,RP2l(F *h#*X3d$f͙FPƟ7M,#*&$II.@Mu<i81$p=7ͩ/@ᡸK#61Ya1ժMGkT\R6ӵC$8Bkɟܚ1PǼH+rL]*PI ?dQ:>'ܹ1Qe7Ia~,2 LB 13^/K6j׿@1,HP#)Ȁb53chpfXd1nF{ZBWN}gYV hθ3&nl0' ¹#*sMwƍ,OLgWݿ]>x^]Rd|޷J >>᮳n(NiI]Iv'yFqzEB.fɥk[mYn6a-F H!4w^:BE.NsR%M'JqN!$[k7Fng%;k ~v+ɳ`yFS+U0$X,ǫ׹2YLtډ0hj~iŜ}la@TT3]B#juAs&kK)κ̇TljSIV*~)Ԫq)XG{ EK2J"!¤^d^SKУWQC'":MFUTL":6t\aͪ±30cL| @}&3<%|G䬐LYCba؇}g.%h8VEΣ{X&*-巳|kS4ƙ i8.R0@l#*;"PJgBE'wL<-1+ļL^_X0vs?PCLtM[;w:Ahb63>nx(lU:aV:b>ͩEq0-酣kT^a4i!nR;\ފDl 8^Tjr-ϔh% UQIs(0v͙<݋,暑y7#)X #)^ҩ&ڰY3!639)q$ԋǜy!Smk^fhsTn!]/85g!gd(!t- pӤT<9hQ $ wDtZme`t1;wtw75$(JM9oQ؀4.u˝[zKu[0#*g3.)ebTgYCf,A҅!|yI%God 鬎GZeȉ战(R'V3|Xgo>泸uXjaDp8+ipJfVa;9N(r|#*[0Sc$\=*[6)CΌ;g3(DE' z̈́[$ʡ"|Vm8΢^ tw Lk((I*o[92T׿$Ƞ"%G.VmDzgTCy;,:XCӪDwBqlܝuft[i-f!1.TPQmL-$#7$t8'#)to=IUK| !َ)m3 ͢zj)sk#)#,#*fO' vŘ2')h#}]{bȧAd[):y^aC8y +2@#hcwCdSmN3TIU!HtQs]MF`RRHbh:QQʊ8I%#*4?mn#0tlxjUme9f=#)4Մ#u Jà;C#)$7VxS2HŁűh"k8Š⚖@PˡHFc`Fdx#)7&1Rh,.4K3",2PDnP"KH*j!Z}"L%E#* ڳc4T]s^H*Ġ#*9;@L#*`!;ӍA :H^#GQ1hwpygٵ7p2TCgt@.45dU&$$x:б'džqNkRmDe,/PU~@EWqjB8 C<31N2V1!h@(RA#AO!QZ] @%8s U8 TMK c)s Pyy.::!6`XKYeJ©-,X-,,Ҳt=@f0NukjY X iLOv|jVpGb#* *F1FDD@ޓڂm@&'!Hs)ĉjxP60 CZ `z^|N4j|)GƒXGL:K{lvGhSL .^)Z~[A'EMN-,}=N,=ȆϼE5˟K#)5g16g Ԗpa.;7#xe),K@NUah5n,P[$0+ 2̿zaie8IXY#)pGVҭPUt7<)ݵ% 9inGE@Q|qObR$",;zT1PF%K#*jX:-uog?Y*gzĞCAŘH#njRǠ󗗚oO:^")9awSeB!++oTTEE>{hpK6Pܺt)C.foRN!eb " B52>&|3@.2(E,>O@)}UH!#)'E q8:Q3vR.|:I"("2#*#QF#*[Z"$D#P0&!m*&eM$﫽kl*Й|UM gVD@C|;ײи##)xFĸoM[>TUW^퀒? Z8ȸD*($/*svY?sM6wjs\>E"#*~î#:W  `İt!B #* ȑ#j+dD*צ1+#)hg`rhP{)*nJ4]ByOP oG_-'oN.j(H bFI"fZQFYIidj3*2o'9"қ#*LKXMqvN`#*HVX.Ж)6m񪹕%kmڮJZ9,,DeͱmRԚ0+Sc6nSY#*Mܑm&,IJ#~}􄀇~Xug8z7 t#)ubkZI1M&͢ #*7hhvpB#*bP3iS[j&ՖM4LL֥1RSZ,ŵV"(@H(mӟ8'umeLg~ݡIag1;i2qa@.nOo\8=<;9&׮6xqD5'8ޛ Q2oa:!#)w2c*|إ(QI :?߹ILO>UТQn=JVi2,v (XE%9*1~:8g^9n/EoquL}I~AC/+(J _"~'RɭV]p8BN3 PفvQRN#RC$}([TinmۓKB"r!Y'g>CU|";sیMPC@f$/#*XӀTЋ#*J3kaxW_7dGXՔ{#Y;) 5tm;4 &DJ]٠s(Y[-Qf8ƞ${ >r?e)8#GQ9"Sg%#*rZ48@Dn 2axCĀDCʸ 6AV&[L~@k=im=~"|VBP0HĀ|O\G2H+S\*R Sl!dIAL#*0=(t +?RXih!&C3?p;89\j.R^VzD7<ӥųe@қGSo"u˃0ɣutz|{w|6$VT "߷5!D2&ۥ#955.dJ7ͬ7C͞ M7UUmς{B3DO?ÔOgO3)#)AO;3 -mlX5r`XCX-}c4"hCL%bbJnHE3ą?[Q#*-3لyDp.y-WgMD#)hx6`;'4̽e4G*(%MDC~'"k7ϾudHB*!>c=}#)C۸N@GB{F(;zQQMs +8n+̥U冉m*sO,X/wt5N@ G`zX@@AjHCp7vmGW9?A@! $naI s2~H,*yl>!蚾#* O_)ܞ<ʼRdgIpu?pM t߮I-Rx+C5$ [r|z,]Km,Zl`lZA FlMT'j6RI1#*$R OPXC!vPB6Yِ#kbjl%Bf5lj#*bH%$#)(m4sr0aK{@B1'Ei`Uk ^%ze#)arT[i1~i1@n21i6>5SNzP`S$((I.\Y4m,%(q'b?EcFJKHڮu/Օ4iu9rjbĩIHbԤ#dU% .B1Hh"]c͡!'9M@w9bR{:J1`Z0XHVKhܣk!N.&JQYw=Zvy"uCi+#)h."B\ keջ-]ZZ5fW cH#$2R FovX&Ta "ܘ $؛#)D ."L3i|X[ujac{#*.5}8ljX`L3ժ8~ ˦$'ؤBPD h5#+-)VRe M6w{y}7-z4Dhvg_t=S~VmDxk"08b2Lbsm5?7;pr;ô=G=.sTc]U:HXKIױ{~oi+0m!sX@N^ҪI05#3]c9~4֫a+>C!LKBItMY;&hyԓLT,p}P$$~q+nOPG1#$Z4'y&e:~–>hgɺKrUx^{xML3%ƳaƤI&ID$H֣eϽl`"feO]rH%.ˀ=,=d}iRq^vG9 GʜK!҇*G:f|7&8q_zPhH XWc&$5@I4c]՚r~Y-HE h{*)t= I8&(W#)TmxCu}'#Mڨgtȃhv _YĄR"f)sosJG0XCH PxYI-*Nej]vCUTJ2Y8S>Oɘq>*><LV049#+-Y7Q1JXy$,/9K*yf`#-0D63(JmE瀔ALlPfBuΙ$.eV|Emw$q2sN3??ۚz1"B*Pu`P!@P&8D%Ur_-~Bt\J'KON $ NF!PVƪ0P`E{#) I)#*0a=-,LEbjI_}qPjR?+:8tt-Y$qKOYMm{y3ΰQ?T5hWyEq:V?xɿM{'D#*PS3ypә]-cLC~8۞cQ"1Th*X6GdݻTgTmJ#*b, ;"CSA>33Bfd\;*A*l PС(^!r#*0q7;TavĈ,ݨ$J^k;_/8SΘԴqYYTFlm8dPD%ہ u *^FڟΥ_d0=XtYTn .6"HTYHeT:heҡS#**0#ud4Gadg"D '5DZHr#*$Hi289-BKД,=hVщŘ`.[$LwM $*MӸ\~n $4^ \I#)U62vN{/"|7]f>7mw昀p'r ch×!t,đQ0I!s}]b|fWIM rSxE|ɂGijL#4d [&%*XĨ6X@P#*2fLkиőt8dtIݫ胃yܽdNfn!G};.`;y5ٔ>v2(C8<ڙdCsˮlV!S#(#*#*ͫtۭ2Y-)j[i$ ̐ 'өӤFNðrq#s7E\obPDW<_X"a /G!ﯩ|ᖠ˓HE!c{I9eE5w4=0ow""'ѯU{> -i*bsq>+?/b2ҚKɴv^BcdQ&q83YJ^7彲nfip\P@c#)> >wx|Z1k蛟pmY){UC 8r֧䭬f!x$pp[L;aW̜Xv#)sGj*S $tpsN?iN}0:J(Ղ?X in٤ e&R^ƒ[,77#)Ï6t f#*_,nDXIu* A%JJm[)#*)ɟałzh\:xviT*p5S4PKlTv [Ij>O}+} >pm3x]au(V޹߷̡~6l|Y"ra3^:oMEjt"O;Xk%a[c#)y}㘾]CAϤax1T!m[@%$z)5/]cΪOBNZTV_syډXCv7ۉ_iB$@$X5`l z a` C31D`R\n#)Lr@遈bռ׉B/"VwE`Sij@"MMFk[Ǫͮ8lvУNHl #)Ƞ Ȱ Kh+k@Y#&#j1#*2Z+,jHQF$J4mZ  ڊ<2smvc+I,=ߎo3}ŋXN@o{ㅛ`:lDD'B> !$& 4RBKeD m4ikć TSx.^#) -J/`ϡ~u!ڎt>े, CX10>;5#)3q>n%0kL#rVf#*zMD {C#*/%JOOe!7I x=!'DJ.e{0PrTHhs,X}C;.,qiU#}'@_w2pDTkoI ^^3y_t)G+"#*/M-dKԛ~ܗGP}TyRH$$!a,20PY a**6TRXE%q(H ?A^w`ׄ̚;|n#)ؘdPd(A)UtK:`HP VX\aցے8DnOGpo7fr5#(-K^kzY^U1K!  ""\WеMMɤnuu̩(jipHq*JHM,GL)(jj!(4Q|ormADyw.jI! ^`ACd-G!R"#)$<Ð:/7?*}{+RwD%a.MHGQTjB12/[M%x>4ۄ&g#ch{&P>zO#)C/?6CT8*iB,DĖ.'l#*uVW{ɚF@"M/3&8𕚎:@2ݰM'~K: ,Whbe*-AܢʍmU!ij'Fr!#*k #*-&22ɸ`w ɂp &@5TO]_~_۱ ?# prVHTRzQ{'=cJ(L&%IDnBP`} gA m#*036( E]8bIS~*AH!>56䦃ȂԠ^`{s{#{b6b:9 8"&*;`v2$21{ڎs` :'a9/QnWXA( N%;}Q˸*老>,І#P mBIN7Χ.Ok|s<3B.+Rvңn{M_#)Lm!8E`0ô ~]Ibgkj[̓\!1ndﱞc3Q^iec&|؁%rg i*HwtON"rb"Ehu`LtiH@Q;КpO1e-%ile)BA[#*q#)SW"_fdM-0Td`9@)"!'4v39<8юQx0UmG5s^9${/YI >0T{L-H#%k]|({}G #A:}ބVA$"u/sp7sQüpX~j]=~Pu1"P|]IG`>åp@]`0#pYbόxHnr{#\vD2NE@H`xMRާ, HTWabrs $$(H $?M$#s%u1-.gKǓK 鸒k!8oU0Prx\0# te[bL<] afř#*+ʻC?FGa<#)CsSYSLJ uE>?eYV~XH^aΆ#*۔!in%˔s1Ut&u$ikxyva @#)Jèv+n!{*Wݭ5Qɴ懞ԮFd$$VR ?e$#*h%JvsЕb 0 -V[(!fP>sgo2EJPS¥Coh4YNs29m.C4 WZ0/z#mj:fHv1#)#*r 0NP3rp`;6 h]sk3HlWf<4Mb<ÔpL8cG(@EC<*!ROuFPtxUsͭQR\68J9 w8X/-8`^]c%fak3珝leWm$#M/[O6AשP `MeG3l{뼜cӮDj \nyccN|Ir0pJ.:U5R 3Nta{k(5QVePc:^/Ím4JRxr3d/Gr\̇#e2D/xƑA%K>vu4K}F[/Zshmsu&IPABeH:+#)1#)T#`<(խhG=ɥ-$DBy%z3 Ӷظ'.Ԙ8I^|wBdf"cp_N/ й]#G!4GئpٟY#*ʟvp8Bm:x$^\l1M*oXIl߀=vcF~T+{^EYSvtK=z8!!=Fka1&XS&bw |db{ibYHkjV[:LD8KpM"H,2NFW:1 P'v^ Nˎ!hb'!I F4C(Ð[ Hͻ)mW=ԒǺSKgZnGu*O+S8r%:Is M{`+u'vhgwta>ϕ-ߌKrHoRڽ|1cQLľ$H*xٺڲp*/(yy|WW3]()L?N)kx":Ue?x ۊN[F"V.DTYLԛiߩ[\PLظ*R<n&Rq6c1C;91scO4eo&8a`` aP˾ yqD&Ř}ϐR6Ce̐=0UKaؤ{p^ Yo \O*{07D"CQru㿡'OV yG)>"Ʋt> I~KÇC+I[I#)%La"2P"*ˆ%#)ko1[__)iSwrHsJ8Pq:?)tu8y! ԋ9CiMLj^{~bpL{mvEQc a;Ppů)pRQ-3K8CZ햻hݰw(T&h4삝uNR8U1;'#))ìכ5 {Lɞ!ePIn@AEM;^йr)fþƛ:Ó]Vɚ b͚\Fިq;pd!W8|vWXYX#*#ARMdy#)HbJf'rA)%$-sXTnCvC0u% S:Ȝ4ѽ#*|^@(Wfށk4t,<`XhhqawE SVC{#).U|u[;Q3cSyX%J rq{=c0+v;d!&t9'}=(RFvV#SplɊO,jN|r)/z*Rݡ8/y=*"b]kZۜ"E):k!g+k cs;ø 66r|#)O w?ϜMڶYmXQo?_cFm@UdF #)Hvka\N<+vjy̓猭iخ7 6o!!ΰq8U>"ds-+k6#)j/l0do.Fs=X7wR#*Ąz0x>8jZ $/%k7!ӕpCKFT񷢳qiJd:E$&:hcg[痗01;wa:e(xvH3(1#)"ZOg~*|D4'#aڟlBXg+G9P&lrr˧}SHb5 >ۛgI) #)#Awn7`-!aIh!,ȊJ˞u=nT`KuWbxPb!O_MZ堙(A4" 9غpnAXOFe0+ºJICǍxGC 6#*L0& 3kAu$$EpgnEC'$um5 NiAjJo >[~Ϝ߭h25yi#/3/BHw@rI!PqG箖 q%Β= v#*8ê%Zٚѳi0!=9&ay3=C6O>fewy6ۻxn"f{ W4ҨE-#*NNj@ 6swN ,LaPlB#P>.jxnm(Ŗ[+I>}(ɮ̋r0A>Zh#*Iu!S&AKKe`m!0QJfrk K|1Y2%PC#*0V9lʘ#) a*> '.ʊgs3Srn$R!!Ðm!q! b0nˇ .4m.V]%\H؍ud03#)w(3#), tw$Ū,b0 S($a Tdҥ.lF)1RARAA;Ȩ*@Ф.!yDGD'Um@֔`D!<&}d٩^`u頋<`")\8YVKH i!M+L"Q **:"#Vi9,{{|OWav۫PEFI02.8bh#.ݾ2x.XGے2AU` &"}jt1MI S' .J d!0Ig!0Hvo)v#1w^;)vE&懙sDҢi0M[,D<$FA("f>ß#*$&#)ͦh:lC͐Pv0׀q8%b@9b>rhFK\VC~z;.J&uuO7FX#B1kzbxi•!đ/ J.!0:X2E3X[)}F>!esY96]Wt#*\&|OzI6#*Dhk`GRÛ2Qr",aCmLwMVܡhԸ)lI|nB`~tkf):aH5X?ӟMɫ˃3g+sY /PaT^CPmkB%j+b("Gir.l&&"RCmCܮ! ~vpoo"٨*YiWjx,m3k>o2ҩj"Қ n# üc$;vN)RFJʂ&ֺ[o_Izq'XG"r;4Fz`ע3q+lc:x6] {QŹ'#"?P`_{*AV#*h@#*BEQR #*$lQ+H/E_>ˌ! % EC<b#TD"U4%0'-j5FU\4+h"BQHR9`q0P9n(q2R(H,mE&Ʊ56zM, &~=`?˼C0D3=#s5#*~ȟ#*TdF ä#*Œ'?BwP:z$D2O ށFBX*j͹-V(P#*eܔs' IRQ7p$&BP0,ɁTHXHSEr-%fNl#)@TTYͧ6M܅%#)qQb,  #ssCg7i2.~jdzqЇidߒKl On91"@ F)+S]%v02i[Ѻ+ʛ4S]:LLYRF)Nd"fGVHnԒ:HN&S&0`!P>Ğ7^UQThUvd<|-UD^Ol0M &b?)iOsһcs.36rqLBfc4xe{y 24wgOeuS23vl/k]?/?W?ۯ'.Iw>*[$)V5^Kuo~Q!A Q9PGyN#M$SD_G}M3˖ՠakHɎd[bR%r Q+5S2! AX};*&}ڭmk8 2'Ȩw#*bta"zH]C)*ew,A|˦F5"f#)!gYWvL0!v2EΛpO w\ĦoU(H'((Q!шܠ^M_}&dJV[vjhSD=6],E$@b{|yjzGB<5u_PvL`3ˡ+4TIfU