#!/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.0" REVISION="80c6ad48eea21944e014f0f0e609ef9c" 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'), 0755) 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&SYW&#0A (HaG uq#&/N׺֜.7#(۩pbϽ=+n#(wZ+mZF@u: #&0:Ѻݫ@z^Z:¨(T")T i]{=5 Dn}vV۹n}|GUӒׇ{vD$H*UZp\ϻq9<UT]o;Xw*:ЪݦkwCsoz1mma ޾G}nמ}x:wۻT_oWwҬ{́u}zP=ӗ6m`/=Z9Y]Xw|CV.}ox^w 7gvi)_}m4'aaF=5鰞}}aG4}W^Ǖv팂I)N%Uu=z򪠤NW[:Y>Z]yd M @ &L#(z0M Tڇ5=#z@ 0&F$SSf@=#@H Md$Szy42=A2~)"Ddh~ze4S4"HA d M#&#HO$ $ɍ#OI$D di4ɤʞʟOGQP@j?m1-S|VB,:>+._D5;z]׊"#@ӿoXafaC4o3ol3yJq@"-@$BT|@iX" @km)(lm3- -()LS, e ,&52ĕ &a5!dͦЁKm* Iј1bI@QIY5$)Xd*2lȠԛ2ʐ2XTdHؔSe(`%$J)lɚe ͦk&3 !RKQZH"X,4‚dhm1"f,(dD%2(be#&%fi,Hf Q$Le4$ةMCCH2$LJ,ma&e4!" 62bjAFLdb66Qi,2hS"$4$-,L4Q#Q1i ML"2EC2IT bb+4E(,14EPS&1)M%Dj1[H@4V)e~i$I&hFi&fT64UZc f2dI*QFKhQjQM-E2kFډ)JE3cBԨ2EIՕ%jf2ңI#2k$jlQd,IfƊ#(,MMJH6`h%LIJI%2HHmQADQQIK&k(lD%J+IH1iTdlͩ6̛4ʒcJbMDBj(Ffc֦MQi(ѩMQ"P0"&1%XhML6iFDdcca4i5!FcLMm4YfFdb(Dll62CiIDZf2Qce5C(ѱY0M4M5&1*I,QTRfVّi5hjC0Yk`ѪdMbVRƣRd[&RhȄŘc662IQMZJ16#IJTQiSjSVQjCIH~wJb_^;y.I^ʌüۗ\*0?'jgast4xC:D+Sd[bCH xX`[JvrCp̲z#jMQnR^=togsE7@~#{P@ջC/ف#L "ooҭpR~vPX GnNA_PA#&{`Nvdg1o++֠wT,A@FOfN;^ bLU˽w}W_m|$pOyy"oH[|n%120dηg\:fGVn=uyu40aȪ#&EY$6R5Aǯ(pw'1[m4'1sclk""omB2ww{-c<먇pۡ5d 9ҪammyencwS`>u3sDF1cU#q^.oäb!H?H6hTy2T7֓΃G1bG/f54K䂉m8=8yכRT]X0XWoT4HV^hZ3\F"ݯ=-kvirltLD2PDCA 4ޏ#̎ޒ@sedOк9z\UP7W_n-O^,sf E&\v4yu:wj|Wk:u(̐!JȄMXmITvPW=8>:zm= =5|e9eriUJ}Ub)#=a &_[k2g|{dbs}@B˄{R4[K˶ʌ=syc}Jjz1V%)*qyJڋl#&6~ʯfaݛWݷXaaRLw}#_V=\WvFSyoۼ8eU]$ciD0\2u;m{We$- k wI,ޜ^8`yY)'o{/jQŅn؇n(ez5N$@-3 'EuޥV:>*OӴNRu&ʯ1o{V7{c6LS}ux@zEnqhqNyQ&yVKmvymI?|xWrɩ5HxgLIg|Cr,<Ϋg2ŵQ8R"/mcKhQ~v[4-<w9ۥs(K5@XuホFM4As;[P@i .c8{pW'!l'j>iаMc#59Q![J_7/SnZ5@zm?=kR_WcRW8i#Dجms8[^%/Dr+`pz+t}#NeP5ayuLQPHeLن% ?VQ9>b1Z_`b#&9aU\G(+S.!٠D;d!"e |0{(/Y>8]Ӝc|hǎXFӄccI)͙%:3HIH[\U= s;+{x_sV^7K$FT#(蠴& #s5DŽS(u_Z$Z'6H+Mj55DTW6Xk;h8O?W;'t};̽>O1=ޕY BrwôQw4'H!;tRid@C#l?/2"s+=")RX143?&{0Hzk#(4`1QE#(0Ipͥ@d !*Q.a39z!kǩPϫ5H܏?j/u~C֭Fr̟-w:[ 21M7ϕL10fjx7}PbuD@䫱*:lO?> Mxb#&/:PDb#4f2넡؝vnj{ zA#(hqk>1cU35'oT2w5Q<`GfXN=pT5 HI HWM`>``HPx-殨H1nOa뗞2ѭ yl#&҆7#&7cH5-5sSDEUM6U~r#jI>]ng|Io>y/?%'uJBDΩ3\wϫ=hx0Mt]TS?#eҷ2HʋXJظ/_(mGFq4!~#&.Ѩ#4Bmg#(c۽1Nc~&|?Qb"(&ǡ3%T`~KK:;:Teގ G#zxʝxx-{uc=e3eF00^O<̡|Zv院4 kV+z48v<yyE|C]#rL;d`>2G¤ŝ#bbrL 666gZN't%01;DI֧0>kN^]JWе"Z|.8>#(L ;S#|*yPJΎ=(k7to8W~<h["#&':g\$- yLHD&uiTʷC&j1O]]j#(*hT ΜE!h Wedj !ORlAha>&ۮiHbhF=(}-PiE#&|"~oVtϐU'ŕnv}uZbcxY>['IdS VsVO@MhF!i\*[S;Z-=6\`;qVWvۧZv 9҅׃ݭt](o}gwS͡HM5bpxC:8$Ɉ٬Aɫd!Mnꘆ; R^12j@m#&F:IڡR c-dqQ(%"ȡPih evL\C}a-T/]#&S<2bddg#&-yHVCܳPM؁YƙMr@p#&ќ,sY/RAu)Ki\բBnK ~jzp~&mvϭ#(KeZ{>o3}5q -ɛtF:3^27liwRRVa#(]Syg9R#&ATB*"KEM/4 o$)<| p_#QZ[Sr,ӳwqY-C#p㲴n2 Pj0*RrW]Ȉ1'<;3~р̺½:5z7ίK5kwMxWuK7~Z.Ϸ_<%U(K327v?_9^z Ew'g4y'jM&%n5L$~5Gi6Fՠw|6q+e$AN׽N)3wCɫ?g7jw4o?dBzy]zc-%"mIBb#&vh}q,f Y @ IB]4hՕ4H~z޸#&C\Kd pR ŭ!J`û&䟟O@?h\c#&NE(\>",+:at澥wѱR))5!mN3\"sXͮ42/ݹ^p!CaԍQBb#(%Ecᓵx!l*S?SQF;էr;TFzHTWٚOti L "$[] hS#( @dK:Rq"`xӧՁwa:V? bAՀ$7CX9IPS@u)#(>AaF,yݽ$u)2%Q#& TdtYqP˱H{k+[+py|2׌eN[#&#Θ#&Kw;iD<$52CN=t PO" 0gpg|=8~FWqn $Ƅ-VSzRL["aK+_^O@F$LHyDEKĉ*GWv Έnޜ#~X$#(wjxlp+ vz]\@I3M93B ~md! (#SwBdDU@ˍ}U|g\oE7tTIT¤CjLU,.8RFni H-,dZh&TL;:>j#ϒ;`x4vi煋;)(ُGG<8鞐>llя7u IeY&*Qg*6:͝s}A[[ĺJR#&!ֿgR]TڣÅhP0C}n%qm}}v¹ )j"ڕ_F#(RPlP#(B#(Q@`2 M?/h\-.0%_o2T٘ۡ9vŴ{~2pFI7J~/=/#(UDŽ>˳釖{=!Em'۫Yݭq:-^zyrf).}u%͞}r?!&Gg߆Ȓ%,sЖZ|JSbws?Wɻ/fQXB:hJJIUن-G%ʌATd†d2D0Li&l#(_ʨ6±4sZQ $(5IeqX1GEZ+:!#&.(Ke31Ftɴӑz;SZCVxz}U-jy4>D:rAy| L KSUQ5I]޴XVVH~#l(n&|LD}~n^h>\P?Bn[V'4۹$I$1ڕ/ڮUǻBsloF~S$xɥR/&ρұ`e/ o+[~2H,@+#(z6bkL^=9eE$M#&*a a &Li?1Ov :$lk/?Ϳ -I[u[(-d@!# \(_ΛeGiDx]3xfw(飆!*\#(QA|!hs56 ys{jq#(po_.>EAIHCf2Q xtfĕTwqPEF#(ዹb#&XXiҥ\n{:WU|]u+ìRoK`[T6]ع 7f^B$#&#&<٦ĶO!\MeaeKY)l[a6]h,6"s3[YcM&ujʱimX˧Vt$M5SX;>+jr骶;GAAU|Syg*! lmq/bko,WPrTs[l;q),q8+b2:.ЄhǴ.[8^}g,o߷{N~jKU9Q0|_3fkvJؼ6+QIY5*1/wY*,zJU|bDӲpܪ YH.}?%+a=+z>!9lUy"母껬Uybh=qIsR'2,c(jӶשI--JVujz,#c-<[v6u%;&>6]d-Jp}6* ڛgWOWUkq.)^nom춽}l8=kU1Nھ%?|6+:ZͤLKo~4kvD-P|^+b.ި;zeYS핏]g8Lޘ~sjOڴ6|1Yx\NweoWkk^ãϏxVu0*6U9͠)*=RW鏖ѐRca(x$!#&.zUӯP'GD3V;ܯ<;mW<>z5€ ?q]QtVuP_ç[^:O#(3ݹ{e5#&g9t4 V =GT(hVx#q:cd͉jh"#kյz^9[MG-ҥ]|{a_vOM!)&S[>nu4k 5jaX}j]ow?gn5lA2Df <.yqhz=ߦwT諮__!x׳.]vڸY?KS-jX<.y"T% v'sn6jcO]tna;bv7d!6IbJKX;|A7iN iEOVGw?>%c;e(GE#aL&Oۗ}&LIn_}81>;윇ό9$a2=ԍHNI)Vtf"Gg'G@jGlL#nO|EZrx~t1FlAZGh,Ş+hzXWL\Po?hS-tˊtB?;|B=^HcmI0x!|X$IW,st U.P׶r#(OaWBb䞂LX,OSB?uZ}M{ u69k)qTT,XG>F\[³O~;# kwIdDW1(7n- 4J6t`jhԥD`B6|G!Tpҭ'6} yc8'YsN*f2`ߌ#(nl\ז2't[F<3IH;=bnGFEx>Aˉs:1QL#&'E{9E{>?}*GMkdS5P!c5Wm4q;OosMUSoT7F$6.qXw1EW&b@cL֩cYx՝Xd]!@[*ѵ*9sTZkuǓ>܃W~,.z";5Zxn=5~\w;-ɊIr4Xa_6siiw߷G B{vAMQT1גr"\~׽QfteW5Zf& |%o߲$sFgO4(GSQN8Gy5s[HN2aY,8m}K)yv#6H+,YAM?>_+܅x|.\.fxdžJ660?ۨ漍L-[Sڂw7HT 9ڥaljx}R鯊ZiZMXKqˍao1XHIx{ژŖe~#&kcm ĕ$֞Ivs5vw/*,j}מx_Q*X`'d EMᵽ4 XHB癄am5!\GG0}XFk 1ɑ"eo&}rYxw`spzz#&.tb۷秙Mz! oDS&GMZa^(.z"Iك(m*QP(C!e3PI("|Ϊ?]T#&mUIԻ:Ø`3FT3L10[Hdt//0~KqD$socC$ if?]dFle%VavX({j0ߐTzZ^r5kb;t|v*I#M`};s#&6 ȤNț1B3)CZbۦZP*:#&Hf(52d2,L+>6F5LEI 48ٴ6$"XEfD0Xl'm֐y#@2nXI~E*\B*, cuhYsqۯp^pE"dR6A43@@IMMzPz:`aQ9ݙ F>|7xV!.D18uzLq.&dxod0lыֳ)U!Hvݤ3,M֓p+@hr%cF#&3tXd63lezP]m۷Nf&Г˪@zA oKk2%> {XZdڹw1!sw 6#kdqIv,f#!m$1kNlHSCP>G{qże~_( .>ČgX vf';hy^ң$J#Hlp=}loofƧY0%_%GQt==pMwsHl)!Ө"#LX̳|;\0+N-)TK]Ћ>UXB}& Вհ̋#Za~&B*edY&nЇJ;/jK6s;\I=?nBl?tsΒM/yQO'NzQt,|nJ0@>P}ߏ̂~4B~G%Osf+@Oj 0)Jjme14U?sT$}A<~~QO/&N%G` zA@u"Oטے2(k#(Pӣ܇w*#(z،E^Dx#&0W_mD$?3t9#(BKy _#&ZXDR^HfۢjT _O{$L>~QVQӣBzظL8{ǭ͍.:7e I "pۭ5Ų7ˆ4x#P蹢*Nӵ?֮UxqH`T9۳͂KSb+4@kbK(h*+lyIz8Xf4@PL`2Ui?H~jަ:R3rlE8Yz.(ƛ;7G;wAr<"@XRHchHov}qJrd>H+S"IU&sJث?]qS/Kf&=Lj#&ol[O|)܋>ka%Zz. M;SI#&oS tYWZ&ي%#&hdJr:ܧHeU{W5J^'$(C8 E/Z(&1Aʟh^ҭi܋٘⯚JdZ&A#&8 ჏`5{has';S߷ Pf;,kݰ|bgQQRzeF*22f8LobOZm\ s,}iYxh}ҧ PZCLJLacjyۍI'edV#)>o>T>wxѯJY̞#(tun&D()X14T WZe+o,u#D-#(Yiri"ov]'ckzW=֒ERsn{=#&`wG)/3]/w#& FBP%9Y)=xjN@F8ʼnVTav$3\?I&-{9a RΟdiּ~ZfI~i#qoՉdGHtblq;7`\7 )O=ݚ#(tbS08BV_VYqH{Gc< q|p`GUKD[Q|K9ܞ/s2ɴ0Dx2*=~%kGepm0/(*N[0^$ַH(/.~;;S~I~V}6䆹3dž16xcL"[? 5{12NrslyGΌvR)ݢGg+ۢ>Jcxv3e1&==9$_qyNaٹ-Yoˠ81W퇺4<:֡a(jmQ6mf-GwC m_FAtc{\9#(H;RGK@J_& Qrrzbb'.<WѼSijvMB;E'D Cy0d=] JNLj=,‚fZ<&u#{^QjcZ{DXҞ=(nÖٞM0«mi}Al@mfcm Jخo&&f$  ,0Z`9zPRT2soPq~>;j#%w ̊Z=9ǞrmfTqnB{gX wpEۅ+՟6Q7؉lWc]&Gg?ifY\=%w#(#&$ښ#(BUV~azatsHv}|s%rK4QEx0 yHB>Սx&ϵW8 0x g%o,Υhakk1V.#G29\o\x_H`.*<^ڠ5Cx//amejOw4M 6!S4 G#("ePg9ڸZYvE1,(ϴz^#(S6u<1uh6#(FZ{.uA,$}ϯyI,ێCs M{I}񞘨҉ʺt{'".\D5D߶Hq;JqM5jIA=H\[ӟxw9m7#{ ҦfBR-^!+Ӳ!e~#&]M[l+Z#&`vBvFRwף~kyu}!o_MO8[W /cF>k}01-JkIX~C,鳎czؕӻ!.}?/^-Nj.]ɷoWQe_$Ɛ5Dh?1ۜo=Tݡަh(n)B?fu v#@}iʤUUǾǷ`#&d<·6{JPҬ=#BV v/(#& 6\D uqZ4JsJFeը? BM ƛm{#&o-W9s;pB_z+I fbpopc[2qѩc5 #&!R+{'oO1\OSn2qV(AhMrM :x"9]69T~Zڝ؛pS`.7 W9"&(\OWO.V~JgR,((RREE {Sg>g/;#.lQ@gnm:"*Չ޺t1YjᯝZF''N!&E.4qJZDST \7Jcy[9xFzA} $8s[K2#(bTB#(?Ӭc85r~kU+CJjUT#&q`&N0Nꢊ#;[5LS~߳=tf']"{#&[ϸmw_`䠇xn=#&"ꉻύyY[I$y.$]O߅W"^OJi$tfb9#i؀O˸PRv{ޭy7_dݧD20L22&I#(κRI-^$*\މ M`w*wmFla ~]ճsKϽ|vMBG0"%0|I2# =m1ܴ"3#ucqm3DG[LJJZY"-U(2:Y ҦRХw~w^`CN#&zy P޿Hm{$L}OojԠ6 =_Ğϯ~ VB$=~DrƎޡo.M6=xx U:{@Pp0aQ= Pd ;"e '=A#s\e$X7GH 1ɲCh7LrqC^ F&v+1,\$byyg*U#ehXآ.tld(hBlH+|!>?[rdh7VyIv92fcpWy1;#(:ZDa#IZ70j qLtՓ#h:μ@m#&$OřiؑwY<6w)b!gqbToF543TsIZ'n0_yl>ĵn.eF* EO C~_+1H%.x!w>nSvH_={]@=s%#(lBUO?UY%$#(0-Z%@K6~_]KmnzOCv ]vf6` pű",?hz#(:UAcNSƴ)ޞ#&p?0LWܿ+#(lĢgͥehP#&4! ?q/2Pt&?_f"_=e#&ۉ*vAy!-3oNh8Hix,§lRFDL̔e"~pܿ^VgEDr3bBZʖxm?U;-;{VШt]MDJ_dHj_("p3_&_E6zWg(Hr 5-ql h>0:) {3!`kfC\Ÿ~%BYrt-R]Pݚ}S7m?m,15vnxH(n="{ 69mL,itn6;ͷVÍAp>t &R#i a~#&{$ KTUzUu4VoQ^WϻrNBM»"Jfhl+֗: 8LZ0N']R#()s,?r<Ã澔?)i1׼{YPvzQ4:4ECR~3N(g⫨͛f8к07vd 躤 s.;Ζr$q Q᎑U {8Qrt6+\k\(fq{̡8vg!!*Ӿ呠,#&J}[`{*~5)[g]>߶Q d?mUUT[}8lNMEO]BHdz#qO2>o_Blg?`6iRk&J$DÀo #&kaB:@2dG(1I%KARuv a`pz'Pal'P[qUA3sĽƫ1ߪN=uonu~lXOJ+)RZ"P\F.B2ELy{__VMf RьOW// %$HBjB`e#'q=_tԊDN$lғWL<5%MHGe<UO>r<8ByܢTuo$2a#&6vY7Xi:-@XE{뻭]&;L3ވq!MSjZͤ\8v3$.m-Wx&Ä:B\mjn۰tL!6B6Օ3Se8J7&J`EQx|1ǀjp)Vń?tOdPTX ?{-:e Q5O`Eq2װk b}O\Fц uƇ›MôޒhFDvcI!$fk+6SiQ(b)y3sOX4N't|-7m0D3DOImQ#&209;ho eoGF/yڦğ !;J,%4~}U0mUƠ8ՈY _eq}݊:ט%Hi pzFBAKb஀DhNy#&~T {$j#(hF, X⏴1A{#(RP;#(c4% ذ,K]/xtl{q5-H&! #MBqt,(E dW2P.*e$fC=b$˒(QT4@5(,:@B8S@y6IkD7o2[|~'~_8a6#şlEA0i_D")D:Q^*`{m螜phJy#( . ]sՅMsa!MV]yE?AdD~dCCSGOq\cA7XY#&Г~W1}uFMPFJmƅGրN'DJQ,R'x"P]IXxϻk4|wn @E$cu5Me:CIЭԙU˳4l{Pl%cCP``"!#(Xj0V`d/볯UAe Q6(x2]=@4;mks&Tȋة]m,G{ވҘtt6r\?};5G~;r*(^3Sɩ@?. &O'i` ڪSzc>MId4%#&]-m g4EP9UIn0%"Z%: v ziAӷqvhᷔ"؀H0RK$Fa,t*Cj<` R~1QNX ϗǩ[۝j~^"X;[(, q{`u\} HLnS4h*b&$I>ZOlš頏p=q6f|ڿ!A5%G]sZw#6ӵC}]ˮH7;T!s nL\TQ&Ǖ[(MjEeX|N.jc~nɈD>$T,XΠ#)(IDĚvk}gʩۯo65yiBFބڙ4Wxh6>9]f`-k?/xE1c t/'BN#( 㳢7uD#&~޺Nߎ;>`VV*ՔL1'grj۔l'm3ԥ_>;N,f1|UEIH&_zѓ8[('15M8Reڦ6޾ɚ]TܽHھ#1?ضo7>gˋ۵ӡJ䢙 ]^aSլ/#(E<兕Ll{9ΨN̓ <}#(sN\kg ݂5&֝#(k0+&JOƷQ5AB/_RN=57ktM25-n-H6yRWuhwt'4w3)t\&iᰲ6Wa˿#(ᏭT)͢oڅmCf`hYDD}ec\HBl g;:08KM1ܗ @^HG.)@ rF6]i}0yG7/+t y1-ˆ{(ӹ嘾$ĝfߑuma#&mx;[cjĽMtmԼ" ;1tΈ\2FvlEfH&CDPp1h1|dDHjUUI5Gl"4lBe.c-mdU i]#&=0m';*gc=ፓ,qe*\YBMZ$ Q:KMN.pqYbu|eXwբr=XHP'Sl=mQ[/TжgOw9jM[4Bˍ|rj&CcTU.ɗy#& %bq"؂!@X~<Ї}W.A3R6Ʃ7VWi;lkkvuS "re8=֖@o.;"lc̚UshVQ/nI$yRQSJ`{YlvfkL; clɩ#(MHs&̺! #&7,rDѳf@Uwk]7\-qL;%,F5F.#(dеW<l61 pBESS6iSXqyX ڂ` EMԢ5ȡ,1rHYsz2qߤlIL:aoشS#&]4Vf{4[85 #u!;;}ʼnMV`ewvKKq/aVX:Z)j4;쀲j8{pMS%EVqrC"w2QT7V0`$뭱LYbvHI H2E&'C"L=L@ClvZX[ykn4clzScL l{7c[M"cZbRX^w S8-<+f #&Έ+c%JיI2F&tG53hhɒc=ٮs{Na"Ge##Ukץ)ӎT]9"-LF:N`g)U!+ABZSS+3B&28I*[d/!BFF9F pcZpcf'I4XoP#&ÅS5+ыI>yhB W^S/B?8 *h /M)`uoQ,N|tk^߳F^Sӌ0Pﶤ!=UH$ { `4YqGSnBjm=>6Ӯ;pLak&NK3wHjEa"$$|^ 3??ٰzZ^Z)&A??έJ~&R.+'2A4DRoQD rDeT.ʔe4f\g]sՖ5/9kzV;I7S+sfu,ҽ#(p5[M=ibhXu' lMldMZJH:h\{Q>8rm "I '@2@P"d%&T@X\wOmEKSw]+MnwuJdfaU%lԱ!a`$RXBwn21F2d.cD[aߒՐĥ^<ܬuҍ\7@5~N0A@(lhD #&}ݱ"{:H5'"OHa!XedH̄ ,fr~nt,3lW6P"LhgI3UV )j-z GU{)*FQQK+6rJn`Y]5 :6;ig#(țh#&{g.$󫊲#&J+g7I1Mnf#QQ|]6liMSƹzN)J].Gڬm.FmjmJSP,K5c55)Z4aRVjkSJRmۤcmB"HQ@&J> 3<=9]V|cnF.֗ӥ\T6Aku`vf7VlcYeJԥ#RSTYW-k3[ƀ=("a#[b q6 ڦwAy]mjf]tc6;N(gg6 8N;#&ɹGd`b!bI$7$)hY%}eFVՇhD0!,-,6eb5WM_*xqT!G" !퀿м#&iVF֫ghn~Afkj* `,w8(hFR쟰<ƶUj(؃РӀT PJ `3ILlTQ"Ŕ'V\I Qb3?>O߸˾$ 6 j@ B"D=[m&f$ f℀aWEr伋A0[DJ/f9yIBw?fyݨlo>#(wD0P#(;@_݈ \@ v(j:M(DjzK@$$,"$UYu#(Y}{ԛ(q"mHl,#ΝXwLq_uZ<` aΗ>PZ gdCQ`#(hDۻTzjQ$jvA8dLskpzNmkzkƽcb۷,K]Z-]YP d6#)댝rx9geXƍؗ{gc2qwLˇEUr9Gf`lcmض-[zͶLibl號S;O@ue= %V/ڛue7ݓ}#(k p D"œ#(ű()\CEQ!Nӭ$:d޾sMZ> 9xrG;lg3B.#&qZDRE/g:O m\S~U^꼢L>>D:A! ġ>^z2RW]P#;;83D*eKbLmCh)#&Cev00N4J.,Zm:F!ЦȃB}#(D$gb-%Jڝsޗwk밝rrmˋF"ղ}v")P&CeZZ=RD<&Xw|bXүo|b;2#&Z(uUU`oCx&@y#:a(I$\QJ/Kxef}?ǑM5K W6oOӿK7=,>4D5K>}Mu#&Wkp3G% mݣqx *:4c{uMw6L%D)sNqA<]81vqh8\؆\-/&ؙ.~fETf䥝()pULX)@hbC!0T!6Y`j,0c*Ah P!(^wׄ6BngSC"8m=-wD@mEaHԙ8̾v 5*1E&nT5FlUKCkܱS)+uf}O$P+4B M5+θт+aR )"~vAcaݘnJέ˻yax-뼼B]ayۧ\02؁)hm#9#0؀m …ѡtJ@*MP]#&;sjRfld=Y 5t̀|lFTA UTyP[^6"OiHx(4d|1Mo C!Ŷ6Wyr+{2fÃ-@rTR6jƛUUL%O k؀0|jގ/ih[%*0"#&VQD ὢv~JٙD?G_1&XyEcd^f,<-}.!ͨA((_k4M.;LLIiwC2 d#(#&F}RG"ož93r{,;ݠ@wCcL*@eC,#B*HmBe>MIDz/} DA{#&SuaA]wKb!4P!$Үl-ؙ6+ᱴgݘ{(=ߚ~+p~#&ĔOAUY#(@i4K x"٬W֚ܶ*(al>T% LA>!RJ'#Mt??2SBDU TQ*qٱ@ݟo^"JnVil2#([}O~.5BPAn#&f*#&ڱ_6$ȃcҴ#&V`2Q/vcLXLeMApnk8i -/U 2NfO;9Ƹf園V(65_UN6f^&Z\*De^tK E|.}ԁ:Zt0(0x549%:GzMaZ*IHpdFhѭav3Nqɛ#&1M 6!QVVȺbIUMT#(c(E&?hIY@{#(}ΟlFܕ=˗Hx^)#4ȆG?Ng'/fHH}! 1?Y[zeɵ鐉;ӆ>_uEXm 9㝟0!۴\ؼ\B)S\LrGQ۵$z+ Q%䈆vt( rwcEcMs=ϮL蚌zlMi娔V+kMS#&#(6>Yӗ2Xᶊɘ֘οo<0Ge仩(}S*$Bk8:Cr{.N<5ƅ>ضͱuVݹ2 ?NLm mQo]0̋#H##_MnHOQ" .P[W}AZ22R}ur*PR_HcMDBN!Yш3#&Y!8,9i i$ԭ#&-QWu^t2-7mynFEӂL#?r6*H;(A$r7V2d@bZb A3F,YjK(&Hs%#&bC&"4))@& ePy?#&5WIkVH@aH3 HV=p<hQy.#(Rxsc`#w>'{ʵ؎aS/*/pFG-Y٧*s?C@_1L`B.>*%}ϰ3|b}F̅Ťpҟ؀u#(kSKP;gv?&IA%*ikNm17*N\numEҩY%B$?SB-@(}s3NJt.H2"Ϙjd?*JdR 27,64b<Ùz#Bd}66ӑ{^ , Z!TTWMI%o^yydL%kt(X$*fU)mMVn*$McEI췧QB7x)P~> 70!" [k$c+.f#&$$;^qaQ"Qu|`ߎC]~'C%0a<%38#&)w$r"ۺ ~fhj?<Y҄hqAN%hB0blC`\fE0ah\ţxZ+wud&ݕlk8V#CbFimFZ9HH\D5Δ~]l,) H7ĥ EF / 4#&%RO6DDdj-OR@e_F:0NR16p$ '$- 2O|{ , cuBljrgL"kɞ#킑*P`XQVF(2BU`lvodԔS[eE[o$kS2v0!Hf%?Ti#(h>E$R@E7%(~>G#u}+vD>#>>>OL{dꭤY{!ca-{uJ`nTHa1eHS$1S_>>*#&47Kލ2?Ǹƍ2d#B7"r|a;~yǓCKS~@(#&@>=THE#(ԫ#q8X6i˯x7}X;T㡑ǒLv$T9&H{>k" +ԂDP"/}55{5T`(b`eTN7w%&00n0U3TI=ȊB(#(F@7!#(SXKNcPNӏD$#ק/Ű{ 'mwGV/!`=#&qfՊ/usD8#&oXN,;?{v k'sdV ;jTUTiTJ2dҘQYyd!Ȟ̪=*jUQOU-F/Iuԫs!Ɗ(#(,C8tvզ/zPXdhiJƫE([QQKAxY.H-^w6r4[^t.QLhEXޥ]C㋜ܮvg=7!9tfv;$&` xȔXO΄@Hqer KrG; }y!PSjD6V&TyNn \h1BU"J#(bM*IPX0 pljk% UT=DsD\y+2B:fۓ=P?Ho_uܶʫUIF3bfZ4S5bحH+jWOo""FR(nj)#k]店z׭/]^#&L8\'#\aё0DKOvxeufF Cif꼕'yi:R»NHc$4cW8RG,,v튻z} WkDmK8D<Ԓsgb6C(|)uI1qںiՇV"?\C_u=mhzJZx%BJdq I Ph8z埙c&[M]N͉)$b[ DKpyC&Ari<ʇ !QNTL\ 85HS7XNEKq&t:Vn*G1I!Dv7 5b`$]X!C6v>{02 O]W$8vnq6װþ]v&D-!Уb^vl[Tj4V-8]* #& ~G[#(@3vزЎ&z9Ǧ#&<48BH:fM[g^'5$R_G5y[ϩnׅsOmMt.Y%'Yws~$B.|`YŇ}:Dtܳsb.twEۈ'[>ח|`k":Z9.l Tľ$HBZ"Hڛ`A3~z,nA$wY{Baa')AS+uݰm+6"r؂;Uٚۿj-;Ԫ/n%y&LԛIVOtS1Hk9U/R[dLڄH} y8B2 I(SYl1a(MiFͤ$XԲR X5!Lj4Id-=|f t~j#&^aXF:v#Z7Az!$EUuGG"#s:I'UML2숙/f~ثThܲRgnG#$r@AcF(U_ 3=pe=uc#MAʚ`IZsWn6ɳTeoJކGt!a)QHQXf5-vAcrtC:`qhm(R#&116@5ȧ+9ULwQ#(1#&IC`y#&Ag#(-B^B6(Cϻyt6g|#9 Ă2nY.pT& ͅVƦ\7_A63>"OWlW|3'&#&ǥbyZO)i%v"`!c2s"F3WakOq2nv>Ctא,4(9#&oC#(`zI朕x}d&1|0PUb!%!z6Lj֗c@udλmpgAMY@j=cxLu4ދk69D-.=<]nh'(ddj"QL ȞjtwҏwϪ{--ۼ/J~ ]'pU~w-( *vLg^ۑ5氉QAX T !h$T\S`0XE̊E*#(ahИc}%k, $CIc6*C󩣷y{YcqSdn1\ݲX 4w4ʆBwй t9@2ͦ8bTX#Ha24V,ل ox8%G7{m;oҷ'ș0ddw.`p,XdJYhǥ5&Gi㸵7Jw[kł8 " Ei5AU(.cOe.tnuh4mm""dT$(ckȉ6drI9VZ&b+l['jMc]9ON{]Rlhtm:ΝId8|fu;a1ag:m C|;E9ysѭD.6U\/|D#&Ozv40쮏߱m0Gm,c#͛u2͚kd.wlv091`wrF @؋lc"MC78 FCk?fU,>XȠ, Kfj_-,%hxD3XGů"?ox,$BgöYl:ɛn"$|c#(.S4= _!SP^Goo]r"B8h#a#&n606oYN 9r'oq@Q(8;6TD5`2*@&YjѫkxݭB ^(1#&)ZҦ^0=xqp*X2eǴμ.HHjmiUӁn$!0ǘ2#(Idž]`#F6w (XqRAzSac`Ҵ$(H..q"kVxxflBps2k| J &!(KNoǩ.#&ft5d/1܇:p>I6-p8.t[Xa7$`Cx[!δ!T0֖}"#&@f cmlh)6Ңi4ZMQѢ@h"$g!"^|=!N[KA#&ǂ0p+!E!A#<`(tRmh%QYf;:~('1f#&[07"43Q63M:,u{ϔ3z+gF0VKΨV897xY(Uu},k)4WVKF`BYRƗuK #( P_ ӇphAb:Yh~x%MWV9lhx|Dbï.aTYaKW'+Q"ZD,qS_q<+0ft-JLJv|]۠9Tdh*4뮠vJ!o;kfRdM&v7)AZ2(>sTWF#lԆԊ`d8 B;;aRR(?׍Q`0^1t5$B\eZJZj4TwVNΚ]XwyYƻECس gIFI<#&Ns=4׾*U*VaJ,u Sq;[Tؾ ߇#(liK+ &1P ŁeuT}",ż 9^41h(}jB'y+٢cʓ!WN2y~9DC*`Ժ'(cϰv{@x!"jqD"[C#(M>߯$GOI ˡзg1nfϮ$`llUovߺQ~~ߧ_ߏ?;4h7XWfK~E%w!~W3Hvj۾QQX*bO($~d#& XNQ'5$nIJTHd8qukCE\)2o{Tc֧WHjzXїUuc;|}1&c^qtż