virtualenv/res/lib/lib_create_env.py
changeset 671 fc56b4c9e4f3
parent 668 b52724db32ab
child 673 85994294d928
--- a/virtualenv/res/lib/lib_create_env.py	Thu Jun 14 15:03:46 2012 +0200
+++ b/virtualenv/res/lib/lib_create_env.py	Thu Jun 14 18:26:25 2012 +0200
@@ -11,7 +11,6 @@
 join = os.path.join
 system_str = platform.system()
 
-
 URLS = {
     #'': {'setup': '', 'url':'', 'local':''},
     'DJANGO': {'setup': 'django', 'url': 'http://www.djangoproject.com/download/1.4/tarball/', 'local':"Django-1.4.tar.gz", 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}},
@@ -29,8 +28,8 @@
     'SOUTH': { 'setup': 'South', 'url':'http://www.aeracode.org/releases/south/south-0.7.5.tar.gz', 'local':"south-0.7.5.tar.gz", 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}},
     'DJANGO_GUARDIAN' : { 'setup': 'django-guardian', 'url':'http://pypi.python.org/packages/source/d/django-guardian/django-guardian-1.0.3.tar.gz', 'local':"django-guardian-1.0.3.tar.gz", 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}},
     'SORL_THUMBNAIL' : { 'setup': 'sorl-thumbnail', 'url':'http://pypi.python.org/packages/source/s/sorl-thumbnail/sorl-thumbnail-11.12.tar.gz', 'local':"sorl-thumbnail-v10.12.1.tar.gz", 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}},
-    'LIBJPEG': {'setup': None, 'url':'jpegsrc.v8d.tar.gz', 'local':'jpegsrc.v8d.tar.gz', 'install': {'method': install_libjpeg, 'option_str': None, 'dict_extra_env': None}},
-    'ZLIB': {'setup': None, 'url':'zlib-1.2.7.tar.gz', 'local':'zlib-1.2.7.tar.gz', 'install': {'method': install_zlib, 'option_str': None, 'dict_extra_env': None}},
+    'LIBJPEG': {'setup': None, 'url':'jpegsrc.v8d.tar.gz', 'local':'jpegsrc.v8d.tar.gz', 'install': {'method': 'install_libjpeg', 'option_str': None, 'dict_extra_env': None}},
+    'ZLIB': {'setup': None, 'url':'zlib-1.2.7.tar.gz', 'local':'zlib-1.2.7.tar.gz', 'install': {'method': 'install_zlib', 'option_str': None, 'dict_extra_env': None}},
     'PYCRYPTO': {'setup': 'pycrypto', 'url':'https://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/pycrypto-2.6.tar.gz', 'local':'pycrypto-2.6.tar.gz', 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}},
     'SSH': {'setup': 'ssh', 'url':'http://pypi.python.org/packages/source/s/ssh/ssh-1.7.14.tar.gz#md5=4cdd0549ef4699bd67b96264d3b21427', 'local':'ssh-1.7.14.tar.gz', 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}},
     'FABRIC': {'setup': 'fabric', 'url':'https://github.com/fabric/fabric/tarball/1.4.2', 'local':'fabric-1.4.2.tar.gz', 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}},
@@ -39,7 +38,7 @@
 
 if system_str == 'Windows':
     URLS.update({
-        'PSYCOPG2': {'setup': 'psycopg2','url': 'psycopg2-2.0.14.win32-py2.6-pg8.4.3-release.zip', 'local':"psycopg2-2.0.14.win32-py2.6-pg8.4.3-release.zip", 'install': {'method': install_psycopg2, 'option_str': None, 'dict_extra_env': None}},
+        'PSYCOPG2': {'setup': 'psycopg2','url': 'psycopg2-2.0.14.win32-py2.6-pg8.4.3-release.zip', 'local':"psycopg2-2.0.14.win32-py2.6-pg8.4.3-release.zip", 'install': {'method': 'install_psycopg2', 'option_str': None, 'dict_extra_env': None}},
         'JCC': {'setup': 'jcc', 'url': 'http://pylucene-win32-binary.googlecode.com/files/JCC-2.6-py2.6-win32.egg', 'local':"JCC-2.6-py2.6-win32.egg", 'install': {'method': 'easy_install', 'option_str': None, 'dict_extra_env': None}},
         'PYLUCENE': {'setup': 'pylucene', 'url': 'http://pylucene-win32-binary.googlecode.com/files/lucene-3.0.2-py2.6-win32.egg', 'local':"lucene-3.0.2-py2.6-win32.egg", 'install': {'method': 'easy_install', 'option_str': None, 'dict_extra_env': None}},
         'PIL': {'setup': 'pil', 'url': 'http://effbot.org/media/downloads/PIL-1.1.7.win32-py2.6.exe', 'local':"PIL-1.1.7.win32-py2.6.exe", 'install': {'method': 'easy_install', 'option_str': None, 'dict_extra_env': None}},
@@ -48,7 +47,7 @@
 else:
     URLS.update({
         'PSYCOPG2': {'setup': 'psycopg2','url': 'http://www.psycopg.org/psycopg/tarballs/PSYCOPG-2-4/psycopg2-2.4.5.tar.gz', 'local':"psycopg2-2.4.5.tar.gz", 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}},
-        'PYLUCENE': {'setup': 'pylucene', 'url': 'http://mirrors.ircam.fr/pub/apache/lucene/pylucene/pylucene-3.6.0-2-src.tar.gz', 'local':"pylucene-3.6.0-2-src.tar.gz", 'install': {'method': install_pylucene, 'option_str': None, 'dict_extra_env': None}},
+        'PYLUCENE': {'setup': 'pylucene', 'url': 'http://mirrors.ircam.fr/pub/apache/lucene/pylucene/pylucene-3.6.0-2-src.tar.gz', 'local':"pylucene-3.6.0-2-src.tar.gz", 'install': {'method': 'install_pylucene', 'option_str': None, 'dict_extra_env': None}},
         'PIL': {'setup': 'pil', 'url': 'http://effbot.org/downloads/Imaging-1.1.7.tar.gz', 'local':"Imaging-1.1.7.tar.gz", 'install': {'method': 'easy_install', 'option_str': None, 'dict_extra_env': None}},
         'LXML': {'setup': 'lxml', 'url':"lxml-2.3.4.tar.bz2", 'local':"lxml-2.3.4.tar.bz2", 'install': {'method': 'easy_install', 'option_str': None, 'dict_extra_env': {'STATIC_DEPS': 'true', 'LIBXML2_VERSION': '2.7.8', 'LIBXSLT_VERSION': '1.1.26', 'LIBICONV_VERSION': '1.13.1'}}},
     })
@@ -91,8 +90,7 @@
         '--type-install',
         metavar='type_install',
         dest='type_install',
-        default='local',
-        help='type install : local, url, setup')
+        help='type install : local, url, setup - default : local')
     parser.add_option(
         '--ignore-packages',
         metavar='ignore_packages',
@@ -100,10 +98,6 @@
         default=None,
         help='list of comma separated keys for package to ignore')
 
-def adjust_options(options, args):
-    pass
-
-
 def install_pylucene(option_str, extra_env, res_source_key, home_dir, lib_dir, tmp_dir, src_dir, res_env, logger, call_subprocess, filter_python_develop):
     
     logger.notify("Get Pylucene from %s " % res_env.URLS['PYLUCENE'][res_source_key])
@@ -249,7 +243,7 @@
     
     
 
-def lib_generate_install_methods(path_locations, src_base, Logger, call_subprocess, normal_installs, urls=None):
+def lib_generate_install_methods(path_locations, src_base, Logger, call_subprocess, normal_installs, options_to_add=None, urls= None):
     
     all_urls = URLS.copy()
     if urls is not None:
@@ -311,8 +305,10 @@
         ensure_dir(src_dir, logger)
         ensure_dir(tmp_dir, logger)
         system_str = platform.system()
-        
-        res_source_key = options.type_install
+                
+        res_source_key = getattr(options, 'type_install') if hasattr(options, 'type_install') else 'local' #.get('type_install', 'local')
+        if res_source_key is None:
+            res_source_key = local
         
         ignore_packages = []
         
@@ -339,6 +335,8 @@
                 if key not in ignore_packages:
                     if callable(method):
                         method(option_str, extra_env, res_source_key, home_dir, lib_dir, tmp_dir, src_dir, res_env, logger, call_subprocess, filter_python_develop)
+                    elif method in globals() and callable(globals()[method]) and method not in ['pip', 'easy_install']:  
+                        globals()[method](option_str, extra_env, res_source_key, home_dir, lib_dir, tmp_dir, src_dir, res_env, logger, call_subprocess, filter_python_develop)
                     else:
                         normal_install(key, method, option_str, extra_env, res_source_key, home_dir, tmp_dir, res_env, logger, call_subprocess)
                             
@@ -351,17 +349,12 @@
         logger.notify('Run "%s Package" to install new packages that provide builds'
                       % join(script_dir, 'easy_install'))
     
+    def adjust_options(options, args):
+        if not options_to_add:
+            pass
+        for opt in options_to_add:
+            test_opt = opt.split('=',1)[0]
+            if not hasattr(options,test_opt) or getattr(options, test_opt) is None:                
+                setattr(options, test_opt,opt.split('=',1)[1] if "=" in opt else True)
 
     return adjust_options, extend_parser, after_install
-
-def lib_add_options(options_to_add):
-    import sys
-    def check_option(str):
-        for opt in sys.argv:
-            if opt.startswith(str):
-                return true
-        return false
-    for opt in options_to_add:
-        test_opt = opt.split(['='])[0]
-        if not check_option(test_opt):
-            sys.argv.insert(len(sys.argv)-1, opt)
twecΙ U㐿FueRXc>K>p 41?VQMcsF $i 5"6 `$#8 >F氘cP^Q #> j#It,@32*Vҩ' Gy oi,8raB0!*$/c@]9 ]mn A E֟R;KӇa),Ge Rih ~UEM'%9v),$ocsEWy%"[L7 â%PvsHásshAE:@I8)-4PS5.I U Rn;Lr"Zi xz#6XbD$GPu%xn)p`'fЈtc:-3ծ]O/X s\FɍhTtNA5lA)H%}dA lv90vʶHИEWodS4賕ERj*nb=P {x)uې͢@i`[[-WQ|jzJJcn"Ej GR@XFJh\rW@TgM"^5\rq7Tq cv=B:@ .G t4-v _'. VTZOu(]6M"=iYKEo* =jAf-<*:p΋Q3yLwU,3ſ=ksP9Qf+VDdb y6b71zm}u=k,SfM+z~hi0/cHkD +R_!Ppf5w34h}D/ch -MRDUs3{-SDW ||$J7P_UnvR ;!}}C,%b)-= d$F?a+V8=F]Xg>Bu "֍ZѰ1eV5X08A:(vo=A@jl TF)x5G5O.N]7+),h9bZ@L0Wh , 20., Y8h~R4ڢZyz:A tZ1J8 KC B6.fi’gsW}zF5q qQ{ ZUP~pN 6LQ0eeBp]4:8ɒxGmhLdZqhЦ)@@;R^W Ei-;S95L73)s9%IB6`cTMKG)!v•XaBP+hSo;u˘Ѕcb8 [ǀckjp-Z <YQs*\yS!&M\9ȸH~X$-!Pn4o U*>ܐ<<%u[ݶ?oPQ#"g|1 O'ki\ `cU.?l+IP4%eҴM6Nk>E0uXߔ-b6CjzdJg;efSΔc?Q])H*X2gv:v-/LxQxFdS[Y9X 9tx=ɒ 31K iMܧ$m.G`GWː L< ;4~7<F1S "ܓ4W VkbA=PlAc<,cW\ /5)5S<^p0UgN Z0͜I=Im{TWK/f|IqZ6]Z˞o4ɐsMCBSw1]/L32%ȋ ذV/úH֦BEsd`fឋZ |CCpY =y%! n P&1B!Eq\)pB@\{,rE:+t^׮pTMjuV+0ӑ|:Հ>U]9ݐi__{:4h Q$3C8%:~N#}J/cPTFָu0mo[WQm )]y~PJ}m8a Dl\n>`#}Tۧ#<# *=lӬ5~SsYfʈh҆=TĤ7NXYQ^jA )dv B<ò8CթTEl]9ם,hgtJ6 gyׄT)n(7ِsN"BV |8%F"D;}r@ B)}TyezΪwQVVL?:>z@˓LDk dܷ+xu+`r uC`W#̯I4 N)s?:<{M,'\/ FJxSY𻡱29ce#= TUlV;`=V90~,#ˑV?,^D2WɥƸ#kJcqk>j؄j@o-!rX2Ο kh {0]Ԓ=Or[ ҿu ѨH lnȎR}W凱*Ëv/pYh_~B<<ᲞYYƒa)=̆]PTZ6[-E<:sk$&.lPZ3u^eDvISCRDqsmۚCAs16Ꜻ3j[mjsw.ɴVwc$JybVMnt; :^I W'/֗T@#h~A׫>B`Jz;FtCDԢmQvS_wcR]CdKRv!;*D`BGX $뜟wnJIȗ"D6q!%@1g&l 0~g:=^sA?:%ކc"o-ٗ(G~M , ^j2P3V=wP`@#@+%VŲ|L؈Z&A/Rg-j.I?| A'Z"in=-<31+'Ƈoj֠k=>^ |?g85wp9eϞ0@du'b:Cp{,; P=3C_,퓀rկAn *-RU-6n`/eX һG3,:Yw(o u@;[;.ğy&aJAńրٕ)c,(O˵ў245Q3gfЌaJnwȁO.O(CFGfE[ڤȋu~35sۏͿB$b l  E/Lc3ѹ0qn(݉u?-p]s5$5s ')Xrng'cت:G>b)imc XSLZ~ gJe3Bz2b:c:AjL^/rgŐ#Z2S88 UZn9XB@*EZ0{lJvꢂ0 ^ gJt6uHJmݎv}mEZCOp֬L?{-sө寧4Q}5"w=dYv"%F14 $`.Q<Gb>¦N2FG 1qYzũ:<7ɢL~sۉʊְ?J^ Pc(S`сr>RsmѐK$9H."*@C,F5,F´]ݳ'(Z>A˻"xpbѼ3:(Zՙ||){#9~{#D,P&3PS( suS! :zadBGa$`ި*,{sbGy0}Ǯ"c(3vh s1R60R*|$z\ZN|Mά4,n >J)xo1Đa@{$_+4J:DQ }Lvf`+3 ѱ]/$Teձ)2l.?lQ3P fXݭwK"Hz >)(uJܙ~2tapn Hy'}7o\r)rӁzfNR^? / zZ,--7نk[+RA$ZCmߴ8U,Mt]eR?.3oFbڅu:rAX4aISS9]cE7'#. jHqA?/F̽#@0GҤ7,oz:Y9cU \q]s`#nȠPRјɆKOͫϟz) .' P_%# Ιw E5&y)z4բ߆' Y!(ZKXʏ".)atr5#?d2`~h'15.}gL V;rZ׮2]!iQ3p-,FΕɋCw'a^o1t)eRS}w|A/ 5\p4nPJ%B8>,<T# rQˢ">F#u`T(s$(0d3 NG+0aL瀖x8Z1mG7܎\G>f͕nձX=0⛚ѫ=Q=%{@a%-o m]"'#Y!en:XdE [zBz̥jꂥ'fe*oyTJ|>!%~Dn@/_"|(F+XqZ GȲ$Ќ{~Q<>hk!dC am0'I%zx^deCZ.IT?lB:w}Op(?3ܐf0DG߽{ xE%Vk]mn%|M/c^(3< QV~(͏1\& >1BJY,zu&UdM$TLa=cӿv`I \=cXt_LJĐqYG:LTN2th8& KEtE9p4RLa9JTKwGoH.szNj&3gHPitt}wl~%u#N-4eo Tk <"/ J46D/")qX,TȄ[ +a5FVwy? ʧ,"xmMנjW]jM\hz_ c Q UXI'+,QM΄@gI K5B@荡܉*?QGr[[B,VH9+IkG)YjĒ⇁:t/t#tw-47rpm]?vgLzS 'd -X;¼?/w@B\9T^VwOE ^t]){͵r\~vUF͚)uM*cNfN2W\A6qRhrS[o2z]8RNZV2+: *~ϝ5K(,Ϛ&v%(LJ3, {7= eKœ֥_JNt,R!K` LuQWs)6mhv|_8G"amc>W3oFX?2QRS6 ,3g@nR0H *j'x $Y0Ï6Ϟ:yܣ6Boq76^sj&8ʌ,Đ{ڠ؀ Y~"!呥j؎^mQ&z:e.,-iiRk0 t y'x¼=2gb_>T 㝲48/P)^'+.@+!H>&2^mKmUh+[yͨT# 2ݤMHkÙq.! tdrK23/GMV؎ r}y@Gp PʮȮ &tmkRt !@bnZ=3&o@Tr ]2OoFsNj }39Y TE޸_8i`oW[釙 49Zz̙sikxg [!FpCUwA _s?%8pCdq5.$o>i0lfĠEAkTE6ێRٞj ѽ4ƾEX8Gv~?e[]m$Ғ<⚥zʏ}zO%#aF\3 Ǫ29WMg0{40V& LtH&b߷>8pHuB@˯<ɗ'D(\lOR6sNJ5JK-G `GLqg ^UW|e :9LouK+VD\Lg}Q &kaJM(BEc1{xx{r:F#(ϔa}Y ҿݩU~qQɸv)PyjYrG|joln&< -OOox˲W^RqN 1.ӔF )FofIMNH}6_jKì합 x\&Idε2drϪ6-}`RxVuS DFkoWi3VKK%ML룼13X"sxzVdgÆ^.#۪Q>2#Q]b82m݇J7 E \+ƱxvP?Me"bgnW{mƃ],a [Iΐ; WsBd5Jɑ^+B _Ә9WcEc40LO{#+w[ُMɰ_׆C}tzV!Sbݐ,fnfȝ`4 ܝ:vIX3T8.tV̷>^AnclFÖD_HΛ?\c AN g95ʣ<k )}oϤ7cqaW͝hI>b e*%@vpa8&Mtm1={Ôp0y}gUc3iG&h%f&ަ^6de6%!=یI+H{[9|Ѐ)KqH{&.*$ټ*&y~,_EYpFQ+Pv[(SO7N% O꿮GYI)HOx)Zq }:|*$¥,;q9 kv *:v7da LL4!9@h p<zVӔ/*uMu` 'G?.vډ3p~zm_I =RvzD — ]T83@s"rHotL_,^& _w@ 7\?F ^0KzNp3@F+&V^ĘCZN(Wz='!6zHhѤ]B۷>͉)`&ɏG[) tft 8LƂuI /("v6"`mqEk~~"KTVN]Bdbۚc(FfFߎp!Q2"rk3(qH JԶKKЏ\dG طHq~,X/R8Dj@@b&  iyo;Z B#~T{B"_G ?n?vhj]rc^YmC6#53 Mo_JMd*@hY2} u9=Է%Ƭk&Zk\=B.<iNEfDKmp!|**'LȚ1PL2Zzry ~zKQxdh;U $BLܝon+–e!]Wiw?o4h\xtЋ#0%/= `H5ӫjXb7/_Ro(ؘr#s{*Ea!/ #Z0YP]rޚ.X28;%Rh2o޳cRHMQAO TmF@yQ]ܪ}den,5H"+aa6DpwSǠȜpC;Q*+:+#gQ+4 [Tr T۳j9?I Rڍ 2Iz (C oovmu-5XvWߕ)>~&&ɈXѱ8,vl'VʛT}ZSaіگY! r0j:,Z柬13 ihf`OUdD>9D*kz?r-`Kˤ>au":&dH X8?Fp<ۆC$2 >ZFh(mgy!;}gLbcԨ [u ҂ śXb(BՖJ /XQfD"v$dsMG[-JzÛ(; Qwb#xW/r(qM>Vb A$:1%xSѾ"o H_`mAmeFEBH، J? d2߸GrPM3vl)iggc\s ȄGI J>ą#HcVO` 7Ⱥ<%qR7bm&K d[+p, W)Ps!61!k# دW_P- xڹlְ'ꕦnXGXW!Vi#Ӓ4Yְ!1cj D p*2u ޝq)1Ѷ,oFZA}Yג$@GCMVg:gCH8ol Xl'V{͔5|=^Y@h)+{IEG!IKk~z\LЏ5z u6xT@+:Dr46 wbPٹ#O@r֋OǙ=Jǀ(i9ۿ !0<;㕠O_Dh,rgL9QZP$L}_5mڤ+fhZ$&hF|=(ot8bzG!;E(*8LB˕r|c0]SĈnٛW.oanmAIC h mx&L &[ F+Jgi.<؄27 aQU]⿉Oi[&-k$C!!t d+_2N]:=,+4'K֩m>4 Z5DфLmA)f"@ rh#G};cX~ʦr!rwB 7ke%V&@6灟>+\,LLQPNdXiR8.0|σR6̖QpUԜǧFlT]wfn^ hEbeI%"  a پ*eR ,Ң0l~I \:M)$2E7}"+3AQ:K'`O;ﻏ_MW%<ݞLk-xXZ&4Ԁ/RYXWvT]'q_x& c^yzPB PBeMH_@x Q&GaVB=n߅_x&z7@U?Te)Tl%3 jHi,v=+/||3#Zc gɬv6T( ΙrغÕS0.Yl.<&5Y4Q:uZgE`UDi=6Ġ,i|0Xgh:J:!V+F媫w*ުH!=sރ@'pP3@CDc&efך=@jyT6]dlK (xl.@7f WFh }6złk(aE)ao, k(i+ʭvF^:jZ3+!v׫[`vi/E*\ vOR^.MAp-E_dr"ܶ٦穬K ݺm!@"xJ5PŨKΦut`Vd FВQK%gIJL` k0I #2{LuePB{s'ryoXfCQ@_A=9sx0&u@wm\="J*j!U @NCLK@VV@IPz3KS÷Wؗo2=< sbr$g/ix>h9^e_3ġٲl[՛cBLå0W8?^ZJ Y& :6|RhhJ]}03xT5YrF`H5Y P7ŷwaSNќ?y8OO(iqߐ|  0҆Z:ӜSB泇u3I6Jay-pV5= ejR=Gmv$V-h1ؑI~hdv}hhN Q\5T=~d~el:<בzs BGs˨_20PƊ,|ȋO#WKS,R42gYW2jՇ1eI34b tRSI!Cg\5֊1ICykD\saF4z÷de/3!)2ӱ}`rߡ!dZ L.qUntRzTYlwm3QA8 *vC̀r kd%,y >>c4Qin)N2 1ZcXjGsv\C 0ƀ쐯`;5BXKʀu?"yS3F P15b`=]:'eh:[|$OM$0kU"GjVQ ^*7V$s5-vdocH%[J&6D<$44YV,؇(&3U{hpdp!bԧ%Ѫ!duN;GX/)C寤n\%;G@Y1eHeu\.CruRk6|x%>`Aun62 *D4;F䷔8Q̑0TÂpFX AI4J!T<'3$ 6Ad7z /eȼ߮_jy.vOn p4Ϋ-'=nm\f/2諡sNt^:2ʛuѐ[hؑ$. 7ژ3g~A%#[J:1l5*5c:4-']n8 NJe |f4uoՃr:*B_Bś *C#ٻ äkԠL;d-Qy>ڸchuWby߹roS~̑y,k#2,>Ő"qY ,g֪g$@k )zX*qk6(i5ix\J 53d +r D4BRh gu2R|Cj-y](\m3?l`a@H 8i"ˀTeܜHzjOk ua:d"%chRAF>{1<Ϣב_>Py֨[Hܧ 5xf/r`c(2N;}vHU B惡i|e[A, ʽ*8itar7+g1U1xg_t'D"`#b7ʁv5H kj:#j( DYo5ml<LO)djȏAEU@/Lomdq9: u a,[oI56jySP[W &Zȟ8% `!ц pT(>R1YoL#;Xj} e1qf#,K 4Ta=ЉF1\RWP:#T|n1V25Y5֤#6 'C@,k]Ay|ΔT912;1 E%@9}t9&G 8SE8f[9f}"u 6wǚY?3 @I+). O{>En/'9kRg%&",W_3L# Qv+ :O>o*" j5JIL. 9/&7~ksݤjsȤdlkNv5x^DKed>} P-GlP͢Q!h&+$+Lbꘄ[(GBvՇ돆h5SV>Ѡg9ρõ '(4ƴ0@UNBAT^\ى}$]tiG#gka{J BwcWe!PJݴ8|nIV 2u4;@=$IQd]-hvɲI*Pz*XX 'oY}?j`{.>cwГ-'ӞVnߗE,k3ߪXXV5iP/zef޴f?L3O9.OTܖ LȽtjmoef|f?#[@(\!T|`y )Zq7mchLá'+I58^D=&0x Q<4uiK$"E!AeJZiNu\Z Xo~jٺeO+rFD&U=7'qx]5o赟j"Y;oFY,֜J,aXp;0mǭnTJ/~ҹEXdZX @UV 3IIfI1̏:vGy^õY ta=uLvP"n\겸lK)_ig5zh*_EE.':*>BFWEhOH{bED{RBdQCHԎ"^T>[G+ѺH[) ,@%Ha:›c>lT3_ @cpWTD". _Own5NzAk1U/16v]Wfro ,i=֝N1#K b'HRCTS)=c+F5R%#暷Xnm'c颐[:H=rlbf%~]4aR.j L.p~!yWvk|ʿO,^hĸ= <p+ *0q,9^~&O&6Ed3%Ǽb SDi'3!߄y{̾mJޑNڱ6߲º'̨>)X8|$ ,% 7]7="ryv4pbc- NϫN՛KPAQ>o$æ'TmL-]^DwfA'vZ;Cg"g\Ķ.'yzBaY% kiv Q4w QЯ@Jݸ` M:U |$@X(l(m|Wѵ9%"qD~&i"/Bs5pLgM.2燫-*t\\IDG_l(zYKHy52*נSs|֥6/-̡ %`.DT=цK[`m["_Ur{UpE= رl`GiXu6e쁂%~&YI="H_bZ1x -?/jmn4YQCq*DeЎҌ,;$7.^Y\J9E~~K U/DFs #)\EKWWa|0SCtu7ԫ?{YR@IVсC̜fa#F3?}4?3yEhޚ:u,M0qL'c1&]rhIryZx2YD }{FZ* r!v,ܲBh|rz9M#0SL]4YeBj3 O9]zE ;k)Sz d@o%ʔ@9d8rqm=^uF45e9v0*"]"&Y`nNx5)BQ7 VtoNox4AU*"n'5fCW6|H6-UZ(C;(3}cA'ay2Xt:R"UfNAxPa~ CϛD}{4CZECЅ55RIJiG(h>Mk@I")9G;/k/(r`GB>y7D%& ͝Jx+`O9%؟1q]X"X(tb(<,@m*ΆQ9"B*\}eGpakUdg8"ڕ졗ֽO_^*9'9Ӂ2ŰLϮGia]nHL}P>&&]h眯TҢ:AN~/dR]]]ݳ49]}U4t8{)=h|z@:ǿp#l#)@3x@O23]|:J!u;|w#ڀhzYy;O#g;M>d2DZI*Ŝ:z^)@)Ue=J{6͢OaC8QV+H>X?ocZmqXÁN5 I<狧 sdDkaq0sDf[CB!aLh!ʽgxjjUI?&T%Z;FI17zP t<>nKIm5W# VY"GHca l'y) ^s,ˊU&:-L B7Z4$KFU̍'1T(5$45`aU|bȩ@s'޴Ki-QEvz͂wyp,']cLFljWGOFd [!幅]Z48( `_h[F6iHfxJ FfVD@v,Op6&YԗBB>u^l9i+k Y4Q7|0F /4ͩ PMmhbe ^&$tiG՟5p4bGbXjoh;ѥIݬ=UMW]XaߵG4q<Ӹ`F;iMn &cavR5Ͽ W#5Aݸn3+)TMbyq@+4LT?<.+BCCeѺ~ZuwHiw%Z Wqu߽e Yw7kq2,1T6TCZCi^ BHsVa C!j, >y fGB̗Ҳ2w b^!EsL9Mj"mŊukrwo^A*ЅcȀԘHM)UKzp ICt_ RLqԛҏ ':[2y *S>Y'&/-j8}977G9x<,2lo' %|X0~dL0DMVHAR ;q*q~ái>`pA Rwvh2Y5 O[ۗw%z +OXlzH];N\]MR>OsqǔL,O|KuLwe3AGY=)gm,k$YSC$Ϩ) B8o ^k6SK-蓼Dyr/ȑ;PD N:t P&FUcC| qsDk . 3o@ReE҄/!2{Or/qC>_B]*Eߚ!k,&m3A(`ܲtdz:JC΍ɯ%D{S?Ӛ@}{ɮ^ɓ VL|Y'c^I @ &`wQTב<Ƴ`g@ZFQ|Mhҝ+mXmXrp[KCIund{p#8 ԝ@^!|~EY̵`! ys >Zcс>D*u+$ySPnH]5AG&q Pu+{ӵ&M?ˈBIz1>^њ)$UA`4Կc[R ;MWdҫ/VBe B, aC-of. 18zMX,jqP){W\Ⓩ}^FF/z1 cVDiBSs9˼cB`ɏ2!ì)a^!g{Wu2C(I&r"W_P^C]6.\$qiJ4Ĥ'ΥÁÐNpAA ^vYn[D,>me,Z 4I5 p-`Yl&66ot8DD.hoKd& "DvR &ҏCr±iPI7oB_&xLDF];jF[#9']0hM0s^\5ƀ_ 4 RD {wU[;nMjonHK{ߕ(Nfi#k9k⿘P`emuFhV Z؆u.G٫yD DJ&F';Faɞ:\$/CRvr7XҖg+z.±;ICgFxƃG )#+!b'gA5?#8K8:oXsjlEuL*䚢t %(rؙa2 `J>HBC CU6qJZ6(;5$R۴~^ ?\Rт9d^4 YKl jV"8I |_`ZAv,5Lc7xx?Lk)xvISgKQKs(MHUZ:m7 Mgs:6Pl'Ω4uda6I!8,u>p%Dl0lRM]+Ë́0YiIF)]X,`ca Hd*C.=&Wyʖ"d9LPqPuaqy+EDlV-ۢ'zϩ8E(3N{ĂseQmo0諘0xdH⅐mT/ċuqg"L˽ܵ~f@:&; UhQ_ "&-|!x,zrA?ixV'ҤIwD&s$̨jQge0)2;>Oo5Nz!INh'b? 7?jšW0 Uꊚ; T-<[DS)gEigHhRXM>A(Dr_՚e,<7s[R:?8[KIPWGwr 'O`SLd }OD!j̅)pFFTEM@ąC|U^1(dcH<^[`汢E-)[laZDuPޮ$&| H낤2|$oZ :T j>I9&$͋%?GBTCPB7Pch>,o?,WM*/P';^LJAT_6Xz@WƣOI O 8`O`u`^fdZSy'OaJkV8PLLD$\q=4|\P4lYcf: 8N+S+5je( Ⱦy5 3B3'iZH-/) F{fz V4ia.)˙:"zk.UP͢,MͭBh4OtfGhxgF=>2bUD8 'Rѭ` m͌sȱr{$PlS*/ E<5ܜ@4MkR- l6*@.јIq`1 e YH!)p]&ll2p-1S>;ИD@XOnE_s- Jn : f/umxZș]vU4jA8A#!"PSjP&'nxZH*R9g*9;wtb#)*e/DX씔 ZAYhS}D_]z?s2fm%4i|5yUŌ/aHӪk䳦>܊đ.M|3wb7iKVꟲp 2I7aȯG$ l4C!JfeLY\9rH6% !{sA0dn. E\)F$7AV4ZqruSlG`@ QNh#8Ւ53/QvN"]M4In;ԫb5pp΃kuJTXp9}kŦ%7|vNd98$5Q\#<@&):~J,~փ Rž1^c כU6uq - Д==(P}@4XcyDLa Ϧ_+EpLq@|2ԋ,Y%!ik;U }U}&)O3pݺ˗% ;^P5ZQj{É+$ш;s/PA5"61*3?zlY24 !Y7p5;!+{03@:-\ Wo{'|X  >h7 Pd},zse$j$Zϲ޺ q//w|tQ b]@A&D(` 1*4$εAZ}x{ʆW3d1-8@D;8 DiP@$œmwyO>I-Ý63ZOBladZ(|5+M` j B=T נO5e乳rt.T܉5|_ipLr]0c%1koMg4&Y_ j'#I VZ=E! ۍ xI\΢5i>OQdNk L!8m_m(d ;I'(j}Z8(Aqy@h%bRH$)Lߧp( d@ဈk* mY48үUAP^EL Ȝ0#"gsq0CB5ƒBu`u9a/,/9сa@ # Ь\\ $ qKMi$Y *˙| -ZD>LJ*'T~Kw嚊~E&4TD<*LftoT tӦ4<{<Ʈ Ōmu5^XqU$-I_jho)`3 pn"p/8 IH(а߄GhKXԄ!/}bLlp ̇2PŧEuX8(80#HiBƌQ §dqyDHk%CTXr3o@T q2 #-s5]Qkf=ғ.)U59+{ќБĄ<irtٮu=:`=hʿt cq= Ű׻*ҍ^F8S{\N)im/c@-5)\;7l^UPن<#b& D$ڴxIj@i؁P_Y7U=|kYQzP(i)ѭUOEa 5f4DmhaG(E#dOPWk ᆌA!4C%hRdᓙ9ڹz Wp)aV%KE$GG|郎k.]cB>>rlhSa^k 5l;(jwn;1u$C&Ƚ8¸58Ds,/ 4>JNJS>S@]^ExB#RfYS€88bZ {ͻ4GC=۱cE' |j|x 1K D/'2 ?6W2)q3zBXXPR V$rF`jtrK0=L9}]7"x"`H2,w}"BoetxKAY]*׍z>ކqwpKus&f-Hyqfct [}(]*X|mq$n^{Ql +`YQ}VKeIS]f!\T٭4 YH 5tL;,$dmXc4vUWY),z#ç䆩4@">P mt<U $nTIEQP%UpCy68/uPx,@9 f]nsdtQ߄[N%߻ j`%0x$!Q0)ODi CP>F-Je&8?~Ǭd;UM1OwV5ԧ}ɢD\ |)|0XI(t~ɕ p#@dK{jqGА; b+U. (*J V(37O /j U0狍\+R2aq\4WoI 7 p6W3vGX?~rRS>&=|p@VI1=ɻX_2φ; oCj^p3$QBR$k|C6j۽赌$ql%t#~mOTQ˅xR(ԙ_t^;|J=\.Y*cI@@P6?.meт'#A8 xYBH@xbY.Aӧ*uJrVrɼG5KEמD@p]$-El+`N&UP0Sar:wi) w޻;CKL=S +*.YYZ*1AO8^^QN6.? fG~r'EIoXGݫJ럛J'\qwq-+ efY]:e|кqǐVBuFpy b_r#7"YWp,`i ,׭hfRLAg:$L: 6NJ Ё"n< Ps]srF`T—߁Sqpֵ$'u&KrGwe9>B qr”9ˈ64|I &_#cM G aY|f em*%|tutUiL :sONC1F@вS6WA9yu$5Tݧ&T~wLSL()qKRj0M)D657ÀW>pRadxIj>6p2ArP+7߸aT#1.{]A"Y)e$hyvz fK됩) ʗZA Q9i˶ej­Qf)E8UE6zgc E P|U5TQw 7Wkxd.GH垼sSCSVp H܌(Q^3!sd]Y%&`Uu6en=svNij,-.=C?>:͐O]`:-qOGrO-a#V)x̆V\`WsVF%gAOW>C#0\۹+$vNVKhhbiɩ8PT[n^S D@Ap0nlNYܧkwCOZ/zn GZDXo 1 om.n.,U(~ K /UAy{%^zwًjK}.Dr&&TOճ \:oQӲ:ܿҏd~Aomĥnhe-8Y+z%70 L%Y&c2~XS(Xl/ њ'h>CpUNwzqi/~^Б(w`JFҶoUxZ ]b8!QjVo!xy,Y˻jI5>!ٛ=@e MXN5 Ds 7Uϩ܋̀%{†&~W+ n3ƒ2LӶo#a@aY&ŊqUbvrȞNi3zZt%%mepDh^}p$R|8*dtBufD">A-2Œ&5,1.=FcHptp cIOVI[DBl&4>pS-^`Y$ix.^idepW:QZg$uI'"J0 -ۉa.jN0 ĕ9L g''rXVN!4rl>G_ ؅ @۬ Kp=v)؊OW uʹ8<9ݪdU=h9KUc;- 匆Dmpeՠ0lh«UVkȺkXr)rnEF4_6}ԀgwG?ES~uCQS +uЇ OjA{yIqsƗ/J}I [2ዿU0tѰoKݠ"cU㰠k=1+Q%5 uPXh dA@&R G[c^ 345=1ɱW`xKf@@6jlF__ ]ڶ KO,R\7@cӂno9wsE繙5 8#$xT}.^d@+>/eM7 wwGAL[la65Q])`xI f̊ 2ߚ<j">ߛܧL{p0 [(Αo' ܩ3גe}iT5:m!sgA{NLt(3g&;NQ11u3@Ψ2k"~ QP! {xCn x|Ԣ!Lr44Z0s%*J2:80^!U|+hag}x6A/7$eٯuqBW\<}v@eu2WMM0s1d+KGp񹫫4+ua;޷ӟLJ#q;R'Ni8|ZPr輙Ag,fjH vii~H ^#Ĺ.CZzy-aeHUsY/o /AnqL(PyX:eʙ|j.A1ھG"W fߩ[AB~!u nFs\/5ԾK!hn52>DJgvF[PFÝVFI68@R_o&vh.l~ی@hPFb5D ߹5*M??'8}0c6ē#⍶l)5!kG&U'dRe>2BшGVĩ!'l<.d٣j Jd  ^ LaZ 3@L()<L5}bnRWXQ҃]YݨhCXnF#Umzj8 .7Z ۾M#iZ,eKm;L’Ytns2 @/=Mr |'~5RFSxIUbm+БQ ):- āW`tzP5C -fÖ vN l=+ -ؠ9)1LAV/m$Azr%*YkA;l7yը5vDX_н)2bC10*XȦsAoGYEog#!waUꯨ@uX ("*uAF-9aoSa*f9$cbڤ7iRR0A~)3"B8G yC<JA\2Rk~Ô6wL]YUs*0xpWJ9qꡙ>ѺoH;FU'>W>ܯ(үXi &t/Ieu7Nbv8M|EΐHv Q"F_:Q^E 9%=D7O3D #Kk>:K#@PWRou!j Z{HDQasYPP~&)WVp u*ø&r=Qۮqkz)-v spvv&m1'׃*1BI6`RPsyX4)y=n`R0|qmIZO!+wV/P!5 Nm -0v'xXqgB\"'זZiɿʕH )t <6@{N ňgα%(a܃4Sl:KP#!Ú-61yKwj҉eQ +2wԆ&(U[=WfAlڄR\y{i>P8T1.l :4緷ԢPc@ t16 "EC6^NW5'tC\ots>`4`2HeгҗyT$,FC/Fv䉜TSk7-} &R1 -QT uJDф4Ω#peß|)ڊbPבy$g!.͡|0<@-@eWpi#0߸ki$K#NG },4Y(&PE7-wJvW◨$).0`5[Ffne8P4Ueur>?__^ 5570"j &Տ۵U2pU&;glH ~!Pn[(lҰl?Z>Ȃh 0=o"8-$&Ƥ$(Op8W i'{w uW?%"W9Y D"854B2$edy)x ?5$F\*{C6~|@fzsBW|1BLGH K52x@|Cstg*?S^*Ҏ׫r3HTcn+Ada}Qj ͪ|I4c,*ԙcZ^y8@`ro];6 hz,͙}aP(^.4 Ooy3o ؓAFj'0s*`N\= CWZis-?Rd8͹Po<uf[ Tj"XV^.G'S()t֗E ^(Y$Sb6o K]BFo!àrSkVg8:ea,tZhIdPr*+MX;$X68fЬZ])ůFH4RuGvxBr|Ivp ެ o3_~$|C x5b>a2;D*r]}Bzj'ORon6U}+LUs-Nr@2eHf(ht% &zX&  Lп3b$6`\Tuz3c;"p_#0ݫK8$]h2gS8LC[cZ=>R`(MY D Vx*#] /Aa`ze3AP`~$TpZ>|p&W.raoą>.Bc5cSNʌ 1HWCoVD0UIf-V @)oTaXU` So~ ԇji&qzXC)+"0fuE2IF (A uq`=rje2K(!ox.<6'+  ) (%0EL8OQ6J# s`#/dH@[Ou%Mv5rd Fq`X$rwGxe3&MxQ7$<%Vz0ӑ4@Tuoۣ@ )W SNzOC=1n:"8Oc{ J eY]'Wʓ\GQ¨dֲFy*E _+z5 w^ sF-ba 4p80 lBK [ &l6Sww3;4(,fQ{b䄅4SdNGfgIʆð"4N1R* B`Hi($_ ډ,^ cZ%41b f~cu:t@?ͬʆ2_MVdE˶Da%X/ U$\I| á0Xhr\.g+Tb[r&`TXbuzG[cp@Ϯ\eぷSU3lU=R;r2jXbD6fI 5[CsH'"F|HʝwRx)h,9#tμ9{H.#*Fkbb=4.I0 O d/T|<2/Ρ`?уfl(X*ujJux JG[pA1mƕB9R{AD[@L"ayJǨ)$bat,}M(]aȓ?K 01%tp<={ap8 <+ P&S*"s#w/_&2`Jܪd3G~Ň nkJn1biPjbq0?|EDɞQ 4#3=ust)md/g8 ;Z"pXA`%e[1 7lb*TQ1m j]Z:L(}t\ҾݭmXW9(jͨ4*4-hP5qtZRbPg%W-&T)NMpp44qI*~9u~Pހ/UNG̘pTTݲnx R6S(L9 Qbtˈ'QED7@DV# ݛ!Af [g+o%=ssJ jќq?R߾eFx#8v RÆ #RjLL/xA"fYשu*! pΥD0_ 3zg+؟Κ\~vFHEM>۴Ǜ$"R9OAjf?F!Yw\l#lT ip6B޷d?o3I lu)Hx=)[P̙AR盭bpc4΂/-3 >h2f7c& %ڽ[.+z@у}Tjv(bbntc ,f.d-o$}d0wcGtgw4ʒI~AnD~)|E:8vEt;;$. d+QuNKll!Ր䉱O$0\`f\O\iw~0hXBGbbŷ %4ӃZ1mXdoR7 Y"8#N( /fÐ:ifGbћ4mY=g5~ E):U][{.wZ[ 3^f!I@Py]۳hb=".C:auQ*r}ZJ)TL9oGK7D ca6Dk_ٿ*zY@)n(OZCƺ m:`6Vq`3$H[WtHHHd/M}$OG*v3xkʹC< n:AU8,pF2Pf OЮ׺|,*9sL#3nx|RLFC}h fC׎V4Q¦-4VI-hm찊Dx75R05Ew~B Z54a"V}P'XI=({Hjk;cgq@50\u[eT E$-Q7q٠sF'GځWNR@QZɊw9H1(jV"&a4baWxl!1Od, ) #2[wcX 2^V/!឵x%YUC΋CNe-F ;PuMEB#^ցáEAW(ر0x3X;aPȼh{wK nյ10Diₗ33R-;,]{8) 5 ;vv[*:hYpŐ[f hSTsip\Rubrs5ǟ-DIr MG` 9=0F"42DD0iX>gਨ:HDPEVI żF1uf1H9ixˍwx>8%@+G !S*WXN7LrєQc!pddE֒ 4 ئί>UbԇrE azBj@b·ʺHdJ1_kXX~"@€HS;VX\a+; >JM ,zti#sOJtOT Wp{}zYAamt[5M O)e˛nhɟs1 { @N?xɠBxC6pjT[)pe (ffe#GI/&%5A dmYMV䖝 ۞! zT \ ;@)4*&{v<sASz1zT*:܈_%4pS E:͚^W3"_gB[7rـUe էWdiafCfwI2·vZZ ;3#Zaf@|%',!KMb VxqCߌ TI!-%` 0F_؝X$ V"6] G6|R)q>4YC䞵chHǓ/}QH0Օ5(ΆO/sVE|6>x6pD}/L`0FZ.1I}پBAwM;$n9ngl4(>r(dE7H ]V4u_dE,2EH3`zYhmw x>stVTP}!URTh&qar,>Z㫸ހhi-afuõy~I-F=!T~i $ԡ|֛!qE>#ўs ds])a/*uI"ȏ8lڃ@ hBbǀv0" Ž>1B!|3NvC f KHȕ4ӆ@MoDafDMȠ\/V9F d(IVassjh"asKN㤏7^ƏS񡱱z8j^ggPm9!G1Ȍ*˃&B+5 'o; @歓˟S:떆8[$p?afjߐfG7uSq: DFxJKRZflU Hkܝ)$} pWA5Z75LHX%NU9Aؐ <*7fBuaFG1Z#XnLk8xad;͡xZ5m |ŗ L#EW7 l!RWOAL A+Rܠ 2W?lsI9C-Rs f|ck84 rn9?䙼ê]*Bn8tԨ UCe@#t)~:XJ%`w$|3PX~T>'-I[ PRR 9L4JiWvCi~09@^WS]CDrA%~_!KnhQ\̞{\?"vvGVE_e syˏR~'2(%p퍪c6gPb&탰'6Q.h PKb QF.K-,' S׋lp-PO*pWAI`އ5?kipLzNd^wv,LӔel,T@Wٶ(%?Pf,cMW7G)g현 ބ@`g)0ʛn7-W kܚ&$2E[66Gœ@z)3LVT: nc$hi07Wel6eۅ 8 ߀*dnEN%{K8^pE >u.z+k#!nId9kN[tq*:5]5Mm4t))gI_`(T{hXcW9V0S\Z{2]–w$QUu6X`(r- ʒ-RBűD=»(*:EdB|J#wOD3`KT9Ysr*tcĤ2-8 3 Ca/Kq3'os%x a5š]ˆ1&tMLBlx-Ql1P4\ 9ky‚M…d|Md~ɟAm!o.zs ȥAmaX͇I,dFJ4 L#~]~5Wh|i%%n:$q^Lzx%3ΆZqWwMuץ){gץ{}_[}wӾ_oy}meӪg.p޾}x꟩mҞFS OT& S0=SdIa1M=24ɦM`%?M4 i<)?Q44dz'?SS=~D&IP#C'i=6Sɵ4LɈM5<$'"zdh ڦFFbcQ! zbzMO4{I0Fژ&i =2iMxOFFiOh4m1OJiSaOOR&Lje?@&0ODjS=Sڛ@a3Ize7OE<錍OC*~O)2jf&!GS& iOqC?o .oO>!Iu=(Z0C*hF1R&rV dHT =r)jۏ; \yov-֟Zy.cIC1Wu s;:n!^7#0˷꽡/YG6Vk^R깖LU^= 'izI5樮Dc:BGCqGYl|aZ0N1`1dzy ԙi 2f@!Do)]J[c20-.V2Bfux}JA! #Ԡ8&L^r?jwFMr.R<) %M]b+\K_+unqr%Ɯw9:Co$|jE;/{6IqE􊃼 'P,KZDiSyj&e~``mm !Alzu֩f.$Ԧ ScT`KL-0FB{,<}R[hvFKB*.*$ui]s~ym/td5\g%v.>.zԙU{U]qKk* KԌs}ł` Inj7G"Fody-OYP0@6iCV[_`50]Q|;zdl1x|{AG.d}PGr#,%G>?S12Å8v36CD^ h(mf8t;*xQK -#a_xJaww/+NZD73s<`/Sa1B$U+St3줾nVIQ݉{Z>}*)ZQ|^}14k۶3KmxjwOޔgd8'~>݁(WPOOz 1b3{;e.LtIb H4oZ;Ixf}2DYhXNT4! 2~}X‰;9BJ(ym|H0\1H*ec^b7A [x]~48h 8~ύ(z=Qd2U{͜ܥҖg&(yRPKTgZG3$f"{Tٕz-wÄԠؼ"Y[}9ڄqeYDZ /N3v":sӗS}Ɗ͏N"1ba~~As:Lx(*P+t߿ (qS6f>[;^=p6@d5v:<">ֲCKbC>KT_d}R m> \u+cv?BޠUm?DSԏR߲Rs5uI* Eۜ펔˄:mz.,ƧשqLezEՎx(BjltGUa`ؐXOz\'f'Uo_2=1࠶G-zB굪A̧1{05V"!tVqp8k1\w^IKa vGW,h^M] 87?}lM3r J؉cIG[[b  1fc)AM){Tgxʻ<Ga"*T@̈!d6c#HnsYcGyS8[)^Yu3M|鉆&bݸt թtp² ,{JlsNi6*$-16ᆘJ]FI7m1G|ʬ8{8ϞTw?5{3ŵ`h 'jČ6MVR=c34ϭXep,(h\AOZ9mɎ -+.TS H#~mh|87™ovf߼.783U(F"y/f-"NUhaNe 6 gy1t2fI K/D6 %-Ï.Wig KqכlU.SORFi*Soi %C7cKGS)@dytb~+K`7߶ "vӵ+bSӯ̰RϒͪHo{8YRv͜//FrErn]:}`9X[sN*@ۘlz c>9_K}KWe7ƔۤwZsIo )_\6_&:GS=㪌cʻOEѝl/a{&_A/ЋZ)D^9g`yI YN| %W)~E[ni  Um7.6G.v)јx{b{[jRPbf6Eq>ѕ&; 8-uc~HI><3:%ӎ[I@ \!٬__T&O3GHW N151DpC̶C֎)aẎLG5L5ۧzKJvXH`hݝ VHI*(c7i=8;\Xބo%B<^!+=[ 6XXZ}h2T| \ [Yt/&'r9Ƞ}1ӓ^x/;L_+-T =tI c Xq4r8Fb(aqቜQ'N&^^BFO5Ah`>ncEci޿Z0G;vr!ZaNRx_?  lŘό$9yF7ğ4m֗|7U}=H\ε.U:{k|ILVN+oBpcԥnq[}F^n6a/se% PO]l-`X] s*{u@F`X& -_Z2blpgG&?a?PS!-<<mPUVهuo{Js'ū~@!kӽ? }/&'Vrʑ?6[}4UK}hiD\}^NM4DCO\*P8q슋؎=XuL+0 D` dR4jVjïH4I5en.!k j3KcBC# $;H$1/ Lwi3( >߅ :ٓC8565Dw8 j j-tCJXM6)„sH