summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorhut <hut@lavabit.com>2011-02-15 01:03:59 +0000
committerhut <hut@lavabit.com>2011-02-15 01:03:59 +0000
commitd008817c6d3ea828e12bed2c271c9ae36f80cbda (patch)
tree49e62d666d8f7432d1769e757baca051891505ea
parent9a2ec2b421e87e815806b4a7ae7452fb84f2027e (diff)
downloadranger-d008817c6d3ea828e12bed2c271c9ae36f80cbda.tar.gz
Added --choosedir, a more logical alternative to --fail-unless-cd
also updated the bash script in README to use the new option
-rw-r--r--README9
-rw-r--r--ranger/core/fm.py2
-rw-r--r--ranger/core/helper.py3
-rw-r--r--ranger/help/invocation.py4
4 files changed, 13 insertions, 5 deletions
diff --git a/README b/README
index c1462ec3..cf0e3577 100644
--- a/README
+++ b/README
@@ -96,12 +96,11 @@ Combine Ranger With Other Applications
 Add this to your ~/.bashrc to use ranger as a directory switcher:
 
 function ranger-cd {
-  before="$(pwd)"
-  python2.6 /the/path/to/ranger/ranger.py --fail-unless-cd "$@" || return 0
-  after="$(grep \^\' ~/.config/ranger/bookmarks | cut -b3-)"
-  if [[ "$before" != "$after" ]]; then
-    cd "$after"
+  ranger --choosedir=/tmp/chosen
+  if [ -f /tmp/chosen -a "$(cat /tmp/chosen)" != "$(pwd | tr -d "\n")" ]; then
+    cd "$(cat /tmp/chosen)"
   fi
+  rm -f /tmp/chosen
 }
 bind '"\C-o":"ranger-cd\C-m"'
 
diff --git a/ranger/core/fm.py b/ranger/core/fm.py
index 116717ca..ec2fbdbb 100644
--- a/ranger/core/fm.py
+++ b/ranger/core/fm.py
@@ -212,5 +212,7 @@ class FM(Actions, SignalDispatcher):
 			raise SystemExit
 
 		finally:
+			if ranger.arg.choosedir and self.env.cwd and self.env.cwd.path:
+				open(ranger.arg.choosedir, 'w').write(self.env.cwd.path)
 			self.bookmarks.remember(env.cwd)
 			self.bookmarks.save()
diff --git a/ranger/core/helper.py b/ranger/core/helper.py
index 249b4c5c..cb0afefe 100644
--- a/ranger/core/helper.py
+++ b/ranger/core/helper.py
@@ -69,6 +69,9 @@ def parse_arguments():
 			help="Makes ranger act like a file chooser. When opening "
 			"a file, it will quit and write the name of the selected "
 			"file to TARGET.")
+	parser.add_option('--choosedir', type='string', metavar='TARGET',
+			help="Makes ranger act like a directory chooser. When ranger quits"
+			", it will write the name of the last visited directory to TARGET")
 
 	options, positional = parser.parse_args()
 	arg = OpenStruct(options.__dict__, targets=positional)
diff --git a/ranger/help/invocation.py b/ranger/help/invocation.py
index c4a06543..afb1cd27 100644
--- a/ranger/help/invocation.py
+++ b/ranger/help/invocation.py
@@ -70,6 +70,10 @@ command line.
       as <target>. This file can be read in a script and used to open a
       certain file which has been chosen with ranger.
 
+--choosedir=<target>
+      Makes ranger act like a directory chooser. When ranger quits, it will
+      write the name of the last visited directory to <target>
+
 (Optional) Positional Argument
       The positional argument should be a path to the directory you
       want ranger to start in, or the file which you want to run.
)\h-3IyB `L5 lEE26$6V7XHIlFBд:E 9wjw$+0Oak X" YoK\T0y5n6 ҕѵj­ ՙDX,Bצ:V@Lauh`ڟ)mhi2퍵(WCdžpT*vꀡvP$Od3cJ䉟N! oي/E]}ٺpE\ S Oҋ AnBUTjaթ`L= T_`!$H "ul'3p] e^pS :B*1Us+Yǫ-Y˔4^;0%S'\t*T3*$jή%\wlKRy AG LMC#jäi&w#sKa"#kM,6sYݟ|Rx3SZ3L .&Oi/Td@"Vc3LS+)D۬e?rҚ}OY:|Fqƈ=_\laZ?1QNYkC.g0G7ٽP0NF6, r[vH[kmCm;Sm0LԲ"YedH\)b2`ॻהl}Nwq񓺩D x'n*ȺѣX)V,EfY*z]-^tQU0q%:ĨUjFOۈvR&@'Z^"% %26Unk5~d"._]࠹1!+(8PǦm՚XMqkFq.a{^1uYK*\4~\_˘v!^GmwJd ˵7` F?`,{ۍ|_.pH0!B۔Ce'6WՋR%sCG3!F"ܞɠ'F*lZұ/EBaAr5Ҡ !]5X5XYIiu4$mwg˕;p*3P`3V&pxgev*D\h/Ov~A<6ݟ|^ reUpW3хx~tUƔjWթ|x6z$ܻy>9 5]:U-.:74 5q Y5Dd Tܪ, &饂B잷mh.$}y}s6=i+ ^qcй8uޜtÓ9釣 },cK:oh7h6+:3 x80mwruYG<|N DNH^+懽4{ݶr?i+tYCC)Lhu܃Qe[I*>W͈Ay]-!F?|HTf%KIp0 %\DU{nUgG9j5p#}kjQA2OG$.yp ^h.=ܸ0DM6UF6W#wuZd#!3+嫃4]|z`=~K tI7~iozkΗg)FᮐhZ(Qs2T\yk\yQ °%mb~^є踿}IC)0韟\ '}M[Sΰ\o~`Z1&+Ǜ{l%[WD,K][xm?s[\-DcL3t-@% ~UU?kxB+5;$0^ ;6nṞQc: jv |c HR̠vߖuG{[SٻVR$4 #"T[{+by?fz5Nr^'(C3GL`Ȗd3|WO>{sn'z^y|$?_7|m?>ݔ=xdm'?YY׿\r}ZY헊_&'Z}\:0DbL69̭1Ry\v~Nao=y x__?P䣃ϋ@U(x4Gl?JVicQrfZg0D<5qub5'ޯLM$9~Zm\ >Uf$y׸Ͻ{\}SD)νXSmlm0މ!Ζb+}TIMOxS|߼F0KitFHq´_+46ue*̶wg=}4Ъe;J8@i\,ݴVYQ~ߢSVPM 0>hȣ탎Iym K8ˆXKm$ ~uX7?HmPdc7OU1tv*t˺|v_$|s;98x~vݹg_[EMhc8'o-x'ۂž#& ' b~AtWA]p>R~Wy?)٨,>]4!VH7`&[o^ŧ 1ڌgwtC"X&}~Qx}wﻧu?蜜x n5a*xC;? Ae 2ﺱt:=.nFN{s p(_ϣ'w7~,B54GE-6^v묐{4\v8ǙA?@r0ţO>Nmokπ3#){G1Gl) G[yr_,%/׆Ym4[h#4|~p1ADFTs}6~ܠQT| J-^E8a'mכvE>ᒲAP$}E? w?ģY>"-JDNV[?Ъg|(RϦpX/<#ri&0w.֧xdiW<\]_KΫy9LG[caTf s.QB$.@>q$<_AqN[/Xj'GY$h\P)3Fwdo|& h-Tzrc%I~*}l/iR-Cipo'IQrBnE{eS̒KX-k7qHJPՃD}Ue~!?Ɵzm?/roN= ~?z 6,ǸS{zɳg_>E= k.t}x'q P/21⚦*ZbMrzSІ` D=A؃{ڬ^#?zkDoCϢb>zwxdlR۽GH W:;x nRo!v'4_ 9N^u>b׸%cE$ :ʅ TOJTɅq [o+sq  gT מiF|4 Z\ MRXy5K~,쳣-'+c!RwmiLq:cxJIR4׮d5cᐯZd|˯\y|(qnV(?OB\k6=[/Wy9!ބ qh}%_kXfUAr AGuNݳs.7A_\{4>vyČ[\¿! Qm;QAj>I@)d%E >{i]/܌Y\ߛ Lwl LEN-Y1V6L",Vps ]w@) w2ͭ dW6yH^\3A䤖'a0 k8\\ {(B|~T~yܘm˥ZÉK2 ՍpÄMMB>Lz{L/catכxK5\47 (vx m;vj7p#˨vrȸm0y(yP M6|+^RV{p5#ȫ-T N qBo]m~hEGQÌ4F(pfwZd{+D>)=g >vcn8u. aKT9mtm8;srrYXxLÆ'?@Н|%b^#\TW 켵?D*%Y^>!*%7\gX(p0-QА q2xlvq=)ҍ@A>\O4.w#zLS$N QƸӔ(moɜ?Ee43\8ܿ$ ~3(s=(ZJ>eRht0#ס\…~`rٽ ɷwcKs) D%]h㫨R /"S?gj¬=WgG>CnsQGEM쒡&p&aɷ;+6XV+F Kk @y=@*"A=*}T311PXkhfy]^i \/$Wn=]_,#"1Xq/fҭOeA^]5<8[xi t;U|K7A.rcDVaN5*;#oQ:^ƦUU-"_^7 >= cs,eT$ΚZƘFh| E}[?"›79\@}c;_GAL $\$kϚʻx;~3!R(o"%}P asa$e;:&w77%P:Aa; &@S͠q+n8<:X2:==WϦs ˀ].F;gX`S.&u7?X@5)C-IÜD:3O:EIW;{"^Čξ9.hHu=ޘ/(U"/n{ܼ וŝ~g4s,=toˆo,&_1s Y!RQ(2jR0L輹gQSn)`S$:%e {hj!$Wa:)͓2_p/ube:bڸytıL N*!RI$0 a^< 12N\N*׿wAtQ5>6G j}sAY;KyG2w4ͣL,=31aޕy2(v~Lz#)i$:!݂-N*zy÷)5,"-NXVum wܦѲ67-:)GWs& &U'L9.4,b;%\VMޓ۸ +#uQs^1LTH:&vG |awKHx,n/Cc™F#(k2_1.GfXb = C!/KQe L.4?F?\h*V\YiEM%liޘg'PeE"FR@KXAHKz?|x|%ϰtót1|I1D2!Qc6Ur"s5seRez7\ t%vZe,QDU;̌el'Y,^D;LKXXyVƜa63/-_ !0 tZ )K*š*8G‹|G}w~:2NςX>}%">-Ka.mE?#Sݦ \v["`Eʹˑ?aR6{1#>+h.e+h2keNґ'Mzs nOGV_f ׶Gm ,؛1 Ok\ aXhU ٗ4x `;cz/:AT<)d;m.=CRiE{iH i"S[W/&Ɲ[ ui;lۻόy.Vbl$$~;%B9*T."tUUScfE' ÈpN̵-hOy~y\g?Vv(e]*ˏۄr׃޷Wo{jWI!J0 bnIķ4ޠVPe6LZL,8K"V@f4:H &pt Ѱ5&՚S!!d UpҋkmwQ!gdqlj8iJNL>O(k>|z A&^d4g)YC[\|XlB'u;s6U&'>pp9k:- c*4hT<6!xЃ'2{Ȟf=06qaKb͊`F=8dQ/<"m|^+y0<༻|,z~߃ ݷwk3.YiK0NW*Bޫv`gC˔a@e/'m? 4BzU3ȃmY=𕞹M0Q#& i$[Gc,NC{ž |Hg8=)$󕱌r,:Xw>f2``X#T=Egxe4wBgnf#;G]El~Qo!VqnKX2$Sc>%Ǩ6)”+Y،G̏-FKƳfU*޷Uwumc&k+3&}Z.d xoЌ c ]8? I I*-+z>_/~ { OaNJx,vVeMoxƓuϟtbY,=@BjCtEUaWS2  tQ%8nn8D\Hlox2FcTC7#Ro[yDь ;''g:5[A[nѲiVk4&J B,\ju*F"~ ,!$54Ěe]\>0oJc\mNsg;KC < \`-6X"bnsyF"Fߵ1u 4ođZb jHel&{gkql;GyYٺ/gƝ9RV}0]lc:gi(3>DY'˧g'Gbᮜ> o&BNVJ <ո@"mFW^*S9 siǠ{TfԒ0`oj~ < ;i>݌ߑX ʁ 2~eG ;G!{S誹+ S4T,e qCCIY(yC}}%725xm7n! &+يb|usA@4R'p`H' >t=0n^-ZAHc%a 1[%|4[o+\χEx~n8Zo/{3ߊPPĬ]տebm7.ρ5wv|5 s0 IlVICʍ0'=o^<6TV\(Cd[~V!0{hiІ{5ì]P\ht K0b/Aʷ pG>i1,6m4cBn6;IjbCY6T02#xQ,!+'%ßų:иrOckF/U#z)O7I%qnO<؎Mc_|WvDHrI::'h}b64kپbC/oݳRG 7{ 1{RN09⺕- Exp4Ooԝ:IH 6WWA$#>0q nCV:,:6g[ݲ2&Gxgۺ*1p/3. BQf-0ZVlQ:}N?ɹaE//(Ǽ:I6NԐjǍJT\M.\ #}5y{[?߄"]/*[ad3 LY{ҟF %2M;/V͐LyQrEؔ] /v4d6V z ';"U&M酁e73]Xft2$S)#|Tt(S."P`3bQPҶ; j.-J5 7ĕM5æ 6xJG;\VQRgR/dJ{2 ` =ylՁ#1(U6}ML͕C:p\=鞃܁4hNƜmh"y,v0 UKb"ZQijfV}gs4fxjV<. AT*wݳ.ǩ ΏOz6jtPCt\24lѸZc?Gk |aNdYWeʺO_YUt2ԨVff}\ _5e|ײ#tSVcʙ#^q_!jg7Zr;?߱tpŗR8OV#QsʞG ʏވ3g1&YU-ޠ9OѠmX}YEЈWbEF+Z)<9S< Taer"6DMvy8mN*j1jm}52W\/N1f6~o«+ld'v}xfb&^cvaҰ=$yU׮f]?Q>sS<($me=}IM8CJ?,8W}B>gz~)!FW>2gìD±BY'MJl:U2m{\֜akb*R_zfV@ttt^L[ohJd&tMO#fVTګU1c#GX$Z{{/,"/f, <J{ VX̼mٜwGtU'l"ܙ!4#\Q-~<g)Tč#hZϒO:Qݍ!hzZX[-k t%Ȕ1vCte4vR_ٓ o#0SVwN$,b&]ݏ!'(ۓjw C |<9fȽ ȧiGr{/_VPzFvf$,{ɰZKG|Lr T773cٱ"ѓ{HƟoFXلÝ٭8sB3TΠO{7R}^? $Wo(u?uw  vbuU=|hv{+vWݳAA,p3kǦOT-޹5JaqO[ƒˇ[b ]ƕf# /iUGl-y W=78KB,fB%ʰ ΖIʳtzW* JA_#% JV"WPQ^6lh$Xqk+{v$ө_~l.{ e4xPoL.+§WU깠`LzIAOQ'4},3pTaxڼXN⮮WMl!ˉ$(z(5`H ,gT}F!^᭷gth_ 6ZF&i| (_H^QF6=|]ťJkUD>M wHqfup}48ʏ9Grf'UwK&Bi H"(ͼAvطO*.@_wNNvwЕa:Y)iғd-` S *шJ3;,`B_I8UZ/p+6V0ڡ*BP,Qvւ et8t=uY10\M*׃߼՘}@Dǔ/u)r]v8FS)W &Du$ XeS˸M9]A%=`qO g] seVݩ,j4Vg>PaeYS5&"V>Dzv$ۍb !A\!I1(Rui\U8Ir i(ӾUE} >i1C}]Џ v۝ ߂z#fvh%eNw|+['q]OyO}N2S?g#$GC&XeC;%|3/KaFlܶn8ŘSCh>#j*0xr3--7ܵ(b0I|c`2)CspPBJ$(6jS΅xaj0ϝ4x[WߟBUiB8qk;XfҾx-|^FO1jfja^4_&YCĝwo0e }Gł%|6 v9} r28d?~';ӫ-\6EE֚JHH^~oh&5P J%ǝ>'"=ש颍 D@}[kz}rnbʞI"݊R,xv+ J侰ak i~Ņ‚xEiJ`J؅+1xL$įL \=1U_-|dhڭd6A~וVe-)ֵE2XrJOB`.Y1# ġߕع.J P1;,vެ]!o8FbRcH&^Gغ"5K'FJU׾!4q +aAX6]{_}^&-EmɁRG1^^Z8 $(n)S]+)GAVoEyݵVcT,(nYY÷a;U#o>4E\/Wtfj P GfɈr 26䑔[cڏC4eItdFT+Y %1>i@+/%$뒺%: mhai!-VS7]NռRD(c4kkհ^LU yH# A.7ko˪kPÇZoD``H 4X*@ n".r®|k(shWmBZ"4v*]SƒKf؁ 4SSlj3Uy9VĔt7"U1֝(fNr3gir^ϴCEj@o\tjbUKg39(M3eu@2=fvc8O R.63,߳ʤBI2nb:p{dcID3Le6Z[/nBjQgdb|Yk-gST rQЛ؇vvTsL |k#ܬ8>fqYp%EIm9t"Q+ 'V@FmŕS'S4p0bX!QMFHNG6&CA$&Nsݖ|{@S[~J~*@V KG&:ݔ$=hfvDmyi-[^7TL(%`CİyBQT=³{?vMHHI e#F9{zM=x1j13M4>"j`"ў7l|f/IcS^.r1PE+&(߷py椤 Jl"6<}'߾L0<X*gXؤ0(Лgµ)< g…QWn nso㓵9F uR< >4TAlG?5dSGG@|4Zպ $'׽6ސ|j*$d4W`Vͺ$mzΜqNEjt5O.6_]Sͷã5pIe)aL(o;SJ]b>_u$uo9{*x *ާD? (@ɭL4ǹ'}bxyx!%V> N\57]yɄ?Se>~sv~yԺP2w=5`ЇTa:IfVfW*tE*b?EZtk$geUDW,f]ruzJ45P8o ٹl͉",\7%:<(Paw_ I 8EQ^ J Erl`&{>U"APaWں0.9>VC?QJfL7'. Y'fO-Fi(߸ktV|Mz Au0 'L`:ںNev}.ݳ~5u # x3֘^m&T@:%ExtڼR1u,-&u Hq.4r.IE%U\w>=Q4N4-~&X.{'NV| Ӽ\Hd1e޺^+p|Q KFzu{{::Wo8D] # %44R0v>rM|0%- X?^ۊ}Oϳʣ,,GE I8:zNd &m0pn2#16@ 6ʣՠ~/v9 ь8xcChM)-/xUPwԐ墦0]tB 4hYRqEehG&wgX1{K)9|YŅF<9pZvyS0yF]<! dr;23GbFTJ6]gŭy:KEj$9ef *Q5z:ثZG'+D,*'痸wG:8_$D_7*51M;:H@aT1TQu1qfyaZ& T2rԯÕSO-d7:|H[xvn?߅EM"ՃmaK3 Om5P=x q:sg4P*i'sU|ՠKP-WWU2jq>A_PQ[)^: =TD1>VWny@8 [炴C@ yz,6TDMy!ƃx8a4ݣ7[p\ Z-t%:L?G㝺 "-ǐqAW8 P"ɛCC?hn ׾փOO"„"dF*[{yK걅0Aa˗v/xyz1Zھ*V"/X1ee0z8trL y~㬸6 |rj̰"Y;8{i瀽j:yz|V8 mKoZ6KrI =چ )gV*Tںз`3g :{w::;b<CA|4+Ƀw_*Nv%x hY Cq:KRXa%U^) \lepPILJDw.޽:9z{t -s 5O+q#MhC@"cw2X;p+Z&6GpTr7/g?ЛG'YpaQkD01Z=ߐ_; h$IO`(ENcJnr%zoA6I?(Dh=v QtИA/=r+@zĝMoy>;D]:5ˆwQc؛斋Ax8+c F-jv ?~I.-kK`yz^M돶'ԛ9<4Z_Ij<|U-EtuuܦI++M3PQ>Or>pHcS:z*G Dә4 vԤ4aН&FDȱi& ۣէ uSdpWlKѧBB=sĠUq%!Ց[K_ME]a2ƒں\@FJMpA`+j1jrbSUzXݘz!] [ pJMy lLgF(H^ ZXT  o>(-yF‰J?,E\y!Gyx^ޏ|PkAZ$Y U*F U~㻨i.'C*h߹@b /*m}{|hux ;-="V]o78w~*A9 u2_(Vw(b?Ϻ >oR N86_J "mdF@ߋ8 WI1`i˄{͍ږ:]V%]73ZJ D0%Cowߥ)mlA#ZQɄ;jfS\u-(kŠMm hc܏Bkt5iK(:9f kƷԴ[ބ*%h"(3IA_HB ga"Q-Y|5ڴ3#rwbp<WZjAH0ajD`V /'6u* %hSWM6vH0vcxh'/N?Y=/Le d9tkm#w1R:[SJ\KRK}W3 0~-dá|H#tC|OWr8\KEו9VSEba-SQjF(V % i^&wWEk2':C^^COb0L}hߔ%Z@jB1BciUX We@k@Zo%yy8,"]YyɝQY}\}t ȸbi:!H0hlgS=|pN51 p@naWl-7DV /b,#75ڑQۂI&`t @B,[ ֫aNeCN9,E1 H.Q5iѤiOT?#a0@pW!WpM/c) I9ђCJI:J}O=Ō*>%U7l2#J`C1]5Ox+ hg;P|E`)f.N`GޚV:q:!HZzϤJ%  f gH9I-Cuze*jELC( 6IC礐0"y(ƣS jRp$x}m:XswPm!džfe Jڢ;i8MB^<ʸq"M(ea x<s Ewƹ>e뫱 Gq8t; %Fn#R_q*/ @mIXN/iGq><1aN,@tƃЪA1OI6 ]sya*ldڽ[( *Cf=l^7MeuZqRNGLp>/׸5 ԗȝf%p(俄C_\[hm bE;4 -"8ɨPzQbVK$L*vS>-AE&6@Z$!7Q) g[ʇ$bʮ@v"S dBͿ-*"tk[ )< XŁutU ZEtȠҚސ^];]SRM'= 03/h]iDɯk sdff+4 ")}lwAupzhrwDrB byvŋ׌S:zڟfd/zLo(N!Rye^hpWi(zރ)ܬDd*wDKizf^4g STH22Ri: \Qҕ9eTh~x 𒴋&Į]15dp@,Le>A[Uӽ.x/`ƻexozQ*)P=Q]#߅jzH5@ÅBzX_7'DƢ^+M8܍i@4 Maeq (.е;p)?!Pg"ѐfM|Gvc #A ^ҫ_.mcI%? 3p#PVY3(?7O%Voa5x\hb(2yx+a:J4Ӓ :nLB>Q+eLi%GTGA|" _`V-ӌG3IW~b Gzr`MaPl#](k-Cp& $it#cӌ]u`5$8cϠ3}~?nR>` q{~mR~JMonfZLq<|cMT&&R)uJĤY%V%Zb<- 5ϵǫa]Swk>Vj, *6Ӫ/Nks̸I+‡R>zI"b]Tl%EЊ0 ^Ly?mHtl` Q 97XȶyXGso1CpcP_텙p9l)uYk؋NCe^LVF]q1D. l= # l(rxWǬ;$dH-oWK<,hmUx ^"qbDFh~ܦ7J㊇C~ Jpd(-O*n jx^ jkܴZ8B* ܮ4(1" 7cya}f]R|0Sg)[B`[$6!bGH 5g~fn7#q2" /byȮwf Cw7޼D*`trb$ΨVۙSm}n j. ؤAcKbď$e z/ꏄ,;~6erAd1+Ɣa\]$+] S$vhK%6>[{Hx x-x7zJa*Bn*s%ZH]YYCi1,[`VK-Q޻eG*n3|zn K! hy,L(bofɜ}3QyUH\k}db$ά1IgnEaIĪ3r_%~guO[nS ,@AI꒛}WR->=7sstM_cE̵vb.ico.'W%i֙w1%`XMs>i1ImN2V!`v+gz@TRBFj\m]PqU*@J'*oD=&I Q5X-: 2mo2`/hD <[9Γ7-#QsGh/ rٽŰ4Q5"Km} ʼn\*6ݍ4W X*7Hr _R4R ф#`>=?\?Uu|KIկpuۆ\4oida`eHE7%Yw]ζ D[Y6ջXnLVoVE_<52Un/y*WyNl\ ˎh3 S)+Ơy: ) u2 .j4sBrO=ffgu!tѕ,~{!c:AUIڳΒOɜ%]I'`_"/)[')}NetXDY4/aa+)Zaܠ(Wc4Vִ.NN)J @O3HX:V1{8|G􋹇t55s+ר7 ecZPJvg+4|Duk5 t4pkӛy$[&B`S- sJ|s0í&''Rfѫhm%a $Iӷ\ct hA}43,+-ĺww0[4v2ڤ&Q@RC!HEqي]ۀe{cx`OQ֬#*Q  ibH9%^}XgT}#:xY [dk `er zi ^G3h:PDs/:R"yI2iC$9".YW7;;J X =.IC?\1W89*C6'O\W}ETF3bX4JPab9eXvu Z_v$#f v0wvcRLMog*`T:J/ޖ5jCfNٓ r uX-h16l9.AȂGBw_sx%@mh9HZON/QfY @RWۅer!=u ,x4?AYB j83'$BD_r'MoT}@g# ۵j{wz:Y( bkkZ&!:Old!QӤqpx;c%Pn2kL APn彤k>:9U%nimFԸ+9`b“ x0;Rf \3((n^jPxB4D U*%fpfP=% ,FJ酢*h_ZDިqJuFsp$̔vwW,x؈2G'XC+ͣܗ.gX1gHLbO Qws%|a><;Ms3Fj۱l&,Bn^d5~8‰cW/ mcXYAۀB|l,'w(|[o{bj $0Ḛ@n!f%/cIl1 Ld9A8ڸyJճG@=_>LCLXc4i7sH!zP (;SjSލ\ &aVJnRIXSJFл觑m|SۮԿv8M@_?d$9N7ոL.J1$D ?Fr-h4GnJ 1O;P1x'@BBvͿ!*JvcnvnR!6,Bk5M{iWMd;`}p mˋFpއǸW 2T5}(vz|v8sJd*X n\Ƚ/:QœUL`P)[G K7^7k:fGm*=:[ZwY؎+=8\ⰼ|gy;+}.Lp<_ _[n o\ں}  ?ƣ'h\xu. o"Y@pRЈBLSRL ʣQ)R>)?QCG:`SV b-)R%8|{2q)F(B7.@p#,+H'DJ:m~:;?H`1S̳W9l7&xaWxӒ>!!x(Ȋ \iE#HBireP1 3TR`Ml).3ܺ^撚t$iLk;{{?.\l< LkAAVF:jSa4%]\ƿw`A(5_K˝CvVT&'ugl{<>n`ub@WC.!GHTYupw tX#^ ;jjLqx[^@#X(3 &AsJ$*$;>n]7/]_TMq2Eߥ3K B&m\?v}Nb"@V#L c݄JJ)lAgGG*_5ln j zPF< ^nRu~shHD`Pf`b|3 ž0io+Uv¦+;O+IS)tpqgUJRjnoʱO)Z7^ld;꼸<|M{7/?!ls/n7O&@s`1P&=?>SI܇^Pц1;A'W[0Yϳ5$ߕ@6eoq^b=C3[*4 'i$,W ԻH0!LЂ[a?Js{;+Fu.r<ݨ2)RwgU9 ;]-w.]vJ싩6L?[ |E֭pcVAkdzvԴS|C37ٳ ~% zy"I_aCȣ '@q3Ya\!=rDIЮ΁zPv\{^>n uniCp ;@8v2O4jv] uǠf=潶 -5[ 3=R ^FPl# {IVua ' .w!mejf岱b@Lg CȑX+-@(nezZK$?4tD2rx#/9 Q3sYl 2m0['o5ip[/Xw&xiTn )h,`:XG_|" ]`Y~' 6Zfp ѷ@ Rݻ4 Tw` yZYE@0rg$ kǀRɦ,D]Zv%䊱{'%5 ,ED;>d7v5d,F2 <(5> I,ä- Ⱉ;/Sr+)TWKLC Q @VS/&%0hͪҷ m1Q$qņ~UZ~݂ޥWM I"צ "ͥE_0ԃ?0'#fat; ӥnDUUyM2[Nhx^b"g:~=!Nq,4M<8f@G{:tONMDP(XV -3T^CF/R͒Bo_6H(LJZF2mJGqD%!Wֿ-0dq;3|kgNNg.CqQ ZzlGoi Jۃ#FDy؇ &XJo̳[g-gK[A>橒yP3Yvngars7ƪ|cP/)?p^zg-VOiøA4Y *RyiGuqdd3 {db%K:(R{>\!*ZX{ zvoSfՐGFOX;LFf%,KA$Tǖ}tX4BO_-zķ]pɬՍ['XdKj}'yyv|9vK8<\jQ&X Cgj:ڛe 4ѹnA_.HQPҺ/bŷ"l I6m ?`QvҢP W>^I\Xs9l"zL^gJ}^6+8+Z0ҢV8X!X@x g\EWfR;~;9DTE`]4̕EXyݝV{Qo'/. CmĿJ_? *jځ!zml'J8dؑ neTP (sj uxc@X"2RjnͪÏр|c7 S#֋*v4 P.qlVoTJpڸ([Ǡpk5ʡb]"l ))u[uA-B}M7g=yX)(ّ Qb蕀42jh!-(=G8->>r<<6}R{Uݪ$d(?C3AvϤw\?=ESI !XcI꓅%0@. ܆@&,!$D0HTChpaE0s4;pɱ*ez4↌y*]z?~2qbZM1@yImi 6D [qC'W3l2uiZ#SLzB>v`A&("_̡^. ,z=A{S6|.hQ-~a H0Bd@hY\M %lBwA<ݳZbxy#J`FA( <" a./`(^%+n~/ 'Qn]Z';c4[BKlv<)hXK!%{LHgT+8ZM`TvzFXqKߔ=/od clzÛW۳ wx>)dTu(,ũ+ڈZ8;{-.}8;v@+MAB7>73bQ'"_әX͑S|el-OuȣXz;c5Ӄ" ዣrBPA-]nD֬3h*@DܔZb/broDqoJ_)tVIsL'g{??;u*1 OGA$be{@qN%#S}?՜B,r:ɚ[@%#gcPG` qk4CC  Tpڽ~r{K+'!tׂ(>ئ5`b,ނXu‰Xq@gy%ʗlC=GZs wɰ;A142^7Ε,2FX5FW:8 }={ll*?1LWǘ/&͇Cإ}SL4@A#> iG3+d@4hY)c$\yV3}[maQkeT!>gHI!"b+T Bz0:>ŬDy,Gڔ ~yxCտf;7J@D2=мv6:6H &i8_VG ޚ vYn藝QV-P_ؚ8$[.*λ?` L%IcBf:u氞"ňPfНUoGˋnCfzq :〈5 C`PjdIX5wVID~MHBܿ|㜢U.(?BϿkm?6kx PE<&ƅI_%"Z Q\g*bG6~4NrTwX@G\?cԹfB~=HO?0ˠЖ@+ѱUn[ޜyŽ7BnGEpN+(:[KxލPjQVtSl0s,n~9{?6=3Z<ϱminL/q$ciĿZ"%i$ೣâZ l/MwCSBɧ*@ףqǭSś` z Z[)ϻN+YX)UWa|C׏V_qLT}{0;%6+h՘[/|Whά9fQۋx*4AIvw  z W^