aboutsummaryrefslogtreecommitdiffstats
path: root/src/process.c
diff options
context:
space:
mode:
authorBill Nottingham <notting@redhat.com>2001-02-22 04:33:18 +0000
committerBill Nottingham <notting@redhat.com>2001-02-22 04:33:18 +0000
commit87aef170444022cdcc901be0627c9a92b773af64 (patch)
tree5820fdd12a8547cb613bd3ab8d04565fec63ccad /src/process.c
parent8ec94af1056cc65fe4cec54199521da5dbd0a522 (diff)
downloadinitscripts-87aef170444022cdcc901be0627c9a92b773af64.tar
initscripts-87aef170444022cdcc901be0627c9a92b773af64.tar.gz
initscripts-87aef170444022cdcc901be0627c9a92b773af64.tar.bz2
initscripts-87aef170444022cdcc901be0627c9a92b773af64.tar.xz
initscripts-87aef170444022cdcc901be0627c9a92b773af64.zip
close extra file descriptors before exec()ing commands in initlog
Diffstat (limited to 'src/process.c')
-rw-r--r--src/process.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/process.c b/src/process.c
index b320051f..ce0d459d 100644
--- a/src/process.c
+++ b/src/process.c
@@ -71,6 +71,8 @@ int forkCommand(char **args, int *outfd, int *errfd, int *cmdfd, int quiet) {
return pid;
} else {
/* kid */
+ int sc_open_max;
+
if (outfd) {
if ( (dup2(fdout,1)==-1) ) {
perror("dup2");
@@ -107,6 +109,16 @@ int forkCommand(char **args, int *outfd, int *errfd, int *cmdfd, int quiet) {
close(*errfd);
if (cmdfd)
close(*cmdfd);
+
+ /* close up extra fds, and hope this doesn't break anything */
+ sc_open_max = sysconf(_SC_OPEN_MAX);
+ if(sc_open_max > 1) {
+ int fd;
+ for(fd = 3; fd < sc_open_max; fd++) {
+ close(fd);
+ }
+ }
+
execvp(args[0],args);
perror("execvp");
exit(-1);
U%)AO;q,&%V@x  8ݻX1CֺvRA&Ӛ"*Vq tN@w24E]9c4ƾ3gSF1OXJ?ԕ=N^|3o8̜_6/W -lɧ7o?FεHp٥c7B[?lR4aDB!L{9ȹqn6>[3y+O@4М']bbW&aWt-[ .ؐSi'*$pC0vj7Erߣ6Ԇ7?m7ֽ x`b0,6A RLB%&2:'y 3s;y,Fߓ:_bC9~@5+c܉we6L1mF/%4 Z=ЧIwH3fD a1ౢp[sZ\@(jD}i]4a|CRV0#Eg_%χJGBq<_Nvшͳ<=źJ4x<Ǥ%1>$~.LY`O=~҄IYElHHdogh̙6*}?!zX28>vvHDںqEMDcjTg: Gtxo-_>k5ǯ0Ȅ'khL=Ҁ:%d 2dXw)n[t2ߒ+%f=,i~5ɠr8h2EDMSu3M_.&ڵw 0ҷ H`O<\W6E$vy`DP'JrBOFiEuk6oڑaFnagy;#JCtX.PqAR/`F~QX33MP[0Xz *(7caTee;$x G5+xbdhxWM7D~D8;lp]KmN$8cT*m ܆əNᐌ֜C g3tjT* %0:%0e;+q;D4жBTU6} !kیaYu2M砡e\n#,@0VZvNÇ2fL}VAR-0_-G5LQBp$΁TU:^hM.& Ũ$$rβ=CtWnנ2tmh⡡+š>qVS*]%MG,=`:=ey*=րf<@kM[2 ѳ>yQm 3 \;TdǪRBh a"''4y,3|9qTZ.cMq?mKˑ`ukIqcž )}Iw,qG` N)@|UK,e`ݻ4 (nS@(;SvWrwRغelah|tد3|Cy#mu 7(Dʑi%A`aoJx6z0568wK%DžYT?:M_; )<9T%]5ܛni =P4b[K 8{?] =*K>/j\`쾸 ]{jtN;8-TkDz/gnȱgKQ^ .bE"BZU %ΛKɀrM v~y>yCF]:Ћ\:>Ar`sw4-3z\Μb_q}Tv5l뭯oo<{;jh3S #Xej9;]{.y>JltxQn~kEꡤv1PRa[Dg@WII:C&UR!Lt5<}wXeLnShX77{|mFdm+/.:JLAȱ d8lSjz#n;6PJ򊈝9ࡲK׳5|eCeۀzRt x; NBJq2Nh9"\u-?|tX5pBG0q~IZVQ/./ o/Qj^gPw7{هi\`άXpjM@M9:ꬿjoFJ%a5UO*!rk&r)mnA x1f;)ۭwI_ph4O(cXCW}v.KҚ;G}aY^ibY 9_ 6 |68$Eо E"詴)!9:+t&I=AOPɗdH"B-he Q{Dxƙm5qf "`l;Qafe[2]GxBsUg johț Ԥ98Ezq.\_x#tf}NBfc/s_AGvٹ*-pҚgmt̪;LKHρ[]pA f?h 5*GfF/˷Zx,YL$p$v ^Q/ +hX㕖Yrއ]3J80?*|rgљN p]9N f0l}7rzTᢩvpUەk#A]6ќvgB %x(ןZv~3NQ{^ҫ1 5i$1$g\E~$<tB"VTg82-͕y{y_јlRѓl pl2)d"WU=fR}orw‚𙧶5^4 Fg2wGx#tavf-Q~g H|Uu'\,NL] 5ByC ՕcO:NM6ӥZ" WSᘍo܊'?OaZqx 9 Q_/?W9IѩlSf?D8(yLZvhr'clk>k/+RWJEkjHk;'00cTۖ"bbm15Yv5Cdܡbu[;G!\p'8Sfޥ/nug@+0/Y#UW3cK_yݕdJ5PqJzxsqpreQ\t7_B>1` D"٩h~Q)kR0]Vuaw}Y]5=^`ΘbZ߫`J4$OzUㄱH]rFHndD&j;\ۦt 3 oaISPF˭c4wnK7=Tq׉}Pq8EVGC`Z>>+cOKQOkkYe9-]>{& 6֡o&?pcc4K[fml/ЯŽX쭸6 ,aq H NeJ~%+TMiyPT@ymSnr@؅]G/)b$Y‡eF6# TpDzٺ*T30\&5-2 ƻL^!"=`V˛O@*w:"CHF|񡃫ϱ*ّPUhgG q[?Ԩ}{j*nsuXGPG^=bZ=$q*4Ur0E7C ]+A5q*7nuVzte+SOAg#߉r,?$N6k5e}^h9M(*iu7wÅ#gk9}/sA3훯?॰aՋU -.0J+|H 9<`qS5k ?SFtװ5qA| ώ#Cӭ+ʛ6WQpGU}L|u|$ bF Gg]'ʲs:48'/!;W!`bUiu44"}t{~2&ږ9bxZlBԞ_f9Kȼ%E=迀͒^x`B;5·O AӫJkWyP sjMsoQ_pB|M4PߜN\pT iEÈplPX89;\-ibs֛vL8l m Aq3X_GXռyU^(odTI`q6'@gj5<ݹmo@}[Pd& /s}~(*%NCz}Ek#pmd׊-=e{ t(@=e:j4s|;hRRf3w!.1/222Tjk\'rjһL5L*8$a`bXUMTq(u\J6Y ⁲mf2qf1R~7_U/~.m ,VN:jHFk~f-ɫMӠ3T*M2I_3/ϲEggE}M\rPZ mx-n0Qa%52uǫ˹HNM1Be0] T"\ŕPKwAEsET!݆wC?dXr]فv#X3VJHPOCI%:^E$QsU}˒\ yn_vm\d:8 AfwhQ—Cg49Q>W*q(rue ;I?KGz<)o[_h$|:M4KS|^6CbO&ڄ@ Xc\MR@ʮm.UʇE68uV>i 3?'s:fϮ,1k` L[6 i?*+;/bDtk_:į%ur_u&QBFIͨoAQHO>pbsBuێ(H]6GOzR)V;ewxwvNwO0 GCD+zp?BDY.P3VEHA!-d1w& s1+䧙}X: yic- +P1g3ΔdiyC dh#8 €o Pʯ>^fwE h&/6'Ho/`3ȄRkF,#/32/#wG0͖w׉%n벸J7Pt.(ab,&Qi^Y uJ[;`=g1 T 8Gi!^1$Z'TGB*hVlyB:>92c[PE&cRɴ:oȊib.,sy?K'3)se4f G7)>VZ\|,aQL: ;BQ9/ k.s[_RjYW3D F.^_=a$5fh4,~@} <Ƹ]2Y[ḚP+rTŋd6}\ۤ/6>`potuvԥbIoSκKrYvo](tRs&<>U/ Jt{^.U>PN%6TpT fg'LQ9FXn"!AMϮb,Xou `#mR!iL9E&MSDNfмb Wrq;s^#?2ۍhv+j bYZyfXU$O/܊#Ǐznsi!j&Ei燆Ip&"=͘}ͨb?VS4/ƓxoC׼fFzz{WǗ[MNvQ%:PN)6&ȆtDهv!HF}^Ci/T)_螖~C g$ʃG&omKa'%N K3`*k}os_Ԑ<ި(5/hgw88}G[t^GŁ^/Q)|, =[=D1,yʭRp|K#خQJ~6T[s!-k!B>l!aEZ})h_u v}K,bj_{~֡>@&iGvS -s̾|\SIR@)ښ:ȼ.T]ɤC wDKNbFǾX7:o7(m"ۃPKy+kqmY 뎃֕$b67;o'ZoldqZ xQ,7|zmNT<-|#i,j|l[Wd"bF ۔{RhѾUO /*]̝f!g7vl@e'OYt䓤|z>*L`aE_K}FGا*xnm`$]9uѩu|xIIJݢX[ ^2;\9!i3cl(i?F3P s]yh٫0'Y :1hXGwe:HWʜ5U$8ɐ7+5%SE-%ezx?F+x1=Fce[JeU8#;ӗKO{",L3#B\eQAͪ.f;?ekeԋsiOE 2S3"uj;huN5$뢑 m\dXfs`OKM%C7~y[ YM474$!JtdN2]>7ު@m4?hS=BR\=v/m߀Q% CH7?Jv eVALd޲1lGΜ";߫{h#&-!h`)騍 &;* JV݌ܕW㴿Y$J?ο{>i"d=N71Oz|rVv|Lk{L;bt H*7)ֺmBZlDk(ƺ+A!.h\F{OS7ASiJqDÚy9`J( ZQc^ly4׬c\k@Y=<(yxnLAx3ݿ9VkfUĊ0txUK f EWW˻3LTn1p\z ]]`/yt& IJ!J3N:TA%]\+TrIi0wlq]l 7O!B (楊&pLa7fTIW.DK2,5>k[h ~]ڹuB%פ)m{_LP;4y~q _۬;W g-W#Dg2Ŋ ğS$Ǫ~6ݮ`B<8 Ua6O|AF9(* 7c{~9sB|ows !jW6<+ blM32daMӓߤ%iQ_e_UIN@Eg^Uͣ6Q摟kĞe& 742B/ll|.|ۦn.D2{f܈3`o?6C m T8q5 =37o(Шd)2eK64> >XT`ÓBևmF8D^x6 .g͂JjG@L#-MCNk".sr29+K$ -Yܟ{5nAk.DM;).>b1Uec@! *NK%xbVҍ̭"/"yP g B\=F<9۞>_U{:t? ;!ww1 QNfՎ[2?D.ЕPW&n$pkobq!6GP"}0?,X"A)=l@_3&su|a )AqB7: :"s8wt,d{өn++R;o`^qu=,;Anj @z't'+|a\Y%Of3502L^(J i !MT+&5w^)pD%pnIԨTm.+X2 NIc5v+M l_ܫB񊡠r=PhRЄ8Y{JI:+ybv qþfXβd-l AHl?OKr.ZMșG)'lfsmNy(:sz aT @\}Mj!AOY !EyJ5IU,tz>țc`< { Cx#v& A2w'ƫ!j<,4(*Fyliy+8юc8 Z`*-ChO|H |Cf&aZ3&#ŋcI\SS O^%=GK%pҾ̟l-ͬNuޑs|Z>^L R,&BcM%Z:BⅫ]dq f^3ׯ#Ԏt۝P+F"7J'/;8q$}WftpW?M |ASc3pJˆ]Qj߁fnq%*oByP^SA[4p62 geaaT 'tr=ja@Z~@RaJQ\Cuy}Ro4Wc݌ rw}"* ;4(MfzK;(߫,ٞ}6.4խ;CZIV&9y t@W@ٖ z-1s^>l{O\ $WvgmyP$j}?Hƻ/yCȀ}gَHMpEJ3+@+(9-7`&NDua 2Fn1_,7+vQMa= 5} B*L dT_^#MWU2,yr4ԺuYƟ)* H?xnZ0%Kբ8:G`<YXEI?G*xߠ?yv醦@Y(Pʫyk!_ľk;޼ngeD-B8zgWDa mNB>溶9B3WS%tfKۦ^nH9{UJV GחT, LaaX#ZMC}l`d񄞃/@B5] A6ee z{!2 ,bOyhM){T36s_>+"?- 7oj$a:htԿKv 'uTÛm=őLI5D7d*XO׵(jq_ۜg pnvM~J }v/~ϝe9ZR ̠&5ql72Wy@ۊ;FDcNxuN^CdYe'19:owlYQMMQz'PrK7ی\<UXl1&;0Pc1`~HJ dYܿiNPY:d2fYւ_ +t()-U2φK~6\7dt7m5R766ɑ[TS{KE0sH"lT^;m~?>dlR>ýp*vLQ"TBƔbi{_BBM7vFB| N1|j2@iCOZ<B μ#Ϩl=HyB{a{Usb$\%"Qk0R8!cyRz>4wO >jֿUef8[+dҥu %Y^ pFmZ{L&3gnpqܚ}6u$t̟np!mZ;<]@:OXѕgucr C(Na#83N#'U.w|md]ܡFGnd/l8ky+dDǹ<.vH?;E6Ný/m>Ϝ*ۉ ĺzJm]#GF?pFM{ \W|ՁH~>!k37DEBvBcnx$п-Ӕk8WqB_̝,7ڪqC $Ǥw8a*},H#.kryoP&;Wѱo_ȐьLsIQVܴNydΣ(Kżc* CV*jnCl UеTH'ϪW<Ƅ{ vvg($젥'RZbK6=/^*r01! 'L n÷~;^  HRޢ>ģ|57nQA8}q D:fD%Jll*kt8LC+yS*SxжkbDJkhGbʘJ$MEmPw(CTlO-]dr'#m9g uMߖzjb[C\EfQHAq]N5m(*֢?M~_wK9oXe5/[.ϫl X"x  ZH (KG-KE?o^y|T Aמ3 H؜U5:̄/`灒Óa~zm+k3ȫPI v?RcEKs8WUw7(@Z%r"…ם/{h+oT\k3w1` -=lL[+s/Nu8#8USR)(|\1&]5 K33D7*չ㟯w<YOmmBڂܕi<':Z ,+Gt8IFdsz ha @'yJy *WTngL,kӶp߰2fCkuO]h]pitY>3#BޱI_ ^ eF/{/\/"K~66Z$!ZLu:O4rLHvHzN1ZDF2jl]^!k]JT@0}2$3i\(L[FB i q)q:/B,oorwsx{<~‘]pҏ )5i]u:-6G rVuQxepa|Ԩ[jB$jN&-GWC {|6Ρ9|`+Ɉ;6DO;KvoOI% ŮTWjuM]@^#L ?\V= nK,* CMCUaN930uoE(JҡD0Y!D \bҼ7OU:؜(Am' 5(`*_&(^Vߘ28|6nWiAfq ^/\;S(/qЊmH:)[j|n6l}gW Mu7"SYwS_ V2pd~*02 ws=zattBjQ~]גhju*gіJH!>K&ĤvodQz*fҶwq%(M bxD0gYͦxw敁ji(xe蒟 j[ 8rR;BMwba8;lb,ԉ7D2QxEW Qa0zĦp(ʖmy l&%k*H">Xx: $ݨ0?¦xh,vD9v~ 9(CKL CC>M"@"vBL40\ ىpNWܻx$zl^u*B+ArRy-)3$t*M2t{-b5N,iO-ksͩȋni)iVB_qh#hn>%އO=~H5&3SCIzBF{i˶+Vi0ۦ`fwnط3bg]-$nbބ GA70SޝFMt=1< ->͖5 )VXV;5iږ,=hF%8LV#"&/U+˶E)Z6);,5&nРkzX~n@MM Hv*Mo2*KA;tWKdU.*e~OUvk.ߞG,/?^uOh/:( WPZ7BR:&56 w- MYȢMř;yŸVu ;l@@ȯ 5Xg?t/'E󞏑&͎6*aX)TpDHN;$9h_Ǐ%1<,ȟlN]"^4,Cʬ^}RUw즍z.;FGڳˉdf@BŔ{P fIXI(/l4h2u:v`$a]'=Gn,yqVă$SAJH󣎢Vӗ[Wr Qebl-¦RyƕiJk)މt/x;:˺IQ%ˆKؐi*uS~c0L uA+ Iˉ!ŎDQ?(B.yZ&aI)c n>HX!t-tmpUȄY4xCW֟.yX}_mfn8K@ɀ|08fH9^ m`AWS)7,6$T+[;Pٽw!X]zew wN'Fq|SczC-2A$DrDDS)M'Ւ=%.$6 vyq&gi\Ŧ6{ uX˫@|3Q̎3 'lo!8,JO cyIbpO xVG!Nj\M#5$%kœdz3r䧪&>)m.3O !:O.Ɔ{ʿ"4Cл,<,HUoCT4 N>/#~buߪ߈Ah*&oR$̯aD<%AT3N!D> iOuZ.`#S!&)`H iep5J.y멥}jK>,[k<-K ZՄ@^˞'UiPt $Wg^s~@+F Iv3N/ѷc@3X4ٓRhZ'*e4Q"H<-L?~S4ےE}f VYg-x:0>Ё?#j؜ h|1xRB9.^OC~Dg=!P,$v{qLx'8೓&(9>v,af^o~uFlN'zJt =dB~m FNǛO^8y{ ;@,~V<>+K!h{})CľKX} ~Amy138 &PyCctJy+xwuE>hoUԸnArH΅E\d5)j`|I@N)ͮM3b*p"ߕzSfz Ʒv9O("1mPZ0"Wa#}0o +.y{=sQNCVuඩCŶY;̾}//MaaMn/`05:-ш[ {hM%+,-3 Ԝ@~ny_vV5U|F;sg_vȌ5̺Ubi&@bB"iUq&]%Qp#5g[_ tKihMi}b+xHr űG,r (4"CMWu+DŁhnvֵt->;`,p4txP8Y1#iC \kAFŽK>A^.9L2M[l|Y6z_( HG9E{(W܏N ǐcm{+ ;Y KOe(.NtǛF`( 򉪫q2S!4:[;2X_D#DO7J:#o7w|!g F/[$kv~[VX !MZ`Ul{ A BQwi!guX5>|Ku$9g9;dsVf/V$"hmA뤚eFDf*Iou$܂E˅C i,{<^6J!AH0E< NZWasӜ\2H(\\;n}{W^½FSq]:.c 8g?1ufz8b߭cBʝh{z!;ҦUІRMd^u)Xz>! WE(MoTƠtxMgn.X9s[ftRC=g0oD !Rtz!uj=]3ʎ(yfce5@ڽ04I4eV\-m%dl=)2jc=&(r6BO}E /y5((Z1S5 7>:Jd>mcG3HN@_ jm<H1ߕ7MC~=9mf6}m2Eфf#NNo;D@?b\fhC 0ImvI(lŇ}]vAklu*:-od 17@ejӞR+qW۹ՋV$oSåɧȫ 4"1$ هn0?5(gs1':BV Qyil$"f771>LEЦ@- HXaLn|Q?m,FsB~#}$+ԠucyW;G$:`ߋk*s|WO!y؆#"3> ɓ2?24i49r9grG(跃 u2ERdE{x!هtL;s ju2xPrzI|4)vJ .Rp\=^ Q+A/e1p]^#F=Fs"E7ksXd7 (XO+&23³ͤg7CqZwpؠcY > sJU+|/:@ s`* g6  R{;.Y 췛Q&T\ɯ=EV(츻'2ʾȥӀ'W&ɧzߙ-yb' <=dGݹE+S{[ԣyA?#̣H8JQь3E(X~hkzU4i4?5@sF@'aei&l1(>. I?<*=z;99Oa.Dr^aeXNҔb\C5""IJ`LxL lg){e@G LrNszPFB99-G{fNpLǃf?&yp:hŒd%*Nj֊ZT{ԂӅ^H7¡ n1̇Rd@`?t 1|G.pN,hԕ4n.`fk=o#ԟq6{4uO}VЦ=U檆܈P5GU [, i*:jÃNfR[(<#tp 5nv; '|?ܶ+ky7~JtŒpp]r;=80ɥK'WCPxj6;19iZد;fZF xw_]l\O[?ztQI!fE3Ŗ 5hO6GvxyB1邳='&^_vl(DFn82n aܜS]R"AJ"v *U*6*~Jh:_5* L$4Sw,#"кg[(m 5nuWSӚN؟(Y)L f#Kt80>Rz=5}坤]ȍZYϷmbeRInFM AG!;9i@XE꜒E"yzȸg: G\G hTe4p-EE#G+: /[kl!VԒUmC "kd@G۳|sGx;ؕK)Z8U κ= (wn8m܈wO] M ]Jbe&}țY3ίne@dѭrpaLwNOcR&Ypz|HCۻ*F1YFGLjTG#ݔ lYxKn($`Z'oH* SE/C'e?"Է arQH~8sdAv bͼ f7 Ls4k0hj3t'9,#2b&wL}-i+S6#EyP>rqˁ.6[.K?}RcCٜљ,)>DbM6@Pr>ɬ/½~?CwZ\,6WjqmPVC]e(׏, d1$mpIv.!A~8O9װ%'Aa )(b3(+`3\ALXae%0$ !pہ=+8ERmt݌vC ۷1P#6rx(&q6e;dHLMmvޘ19eV? ̍REjۭ(?^ڵo9LJ X;okn.WMH#C^6n*o%T[>%רo1R4񹟾˲;+?;N[Q!Vj3B贜~-{K: {W!JU5ޖsH1K3s:Rp?(#n_j5 lu}465)?\SC˕N\n_I$z%V.HBQ UDQm0vWFKoEa\kPl1/R{0cUK){Ѭt\%f f-*e ./s/ix;RI!ُg`ۯёqY Е?hilFSbaӊFJgj`DѰ"Hۻ̙0:0R?-p偆nEG]ӬRg]sۚ,~.>@CEuPB:W0+v2>^_;fEIX9HR<ga "1%VnU<''a:e}(D@y\覬h[~j䐦>${$MfhΑg1 C1Y45ysdwh̉,$hV>l]|tvSӑ4enZCRuV+O8'-{0꟝!% )䥭tJq-@}׋UYɍ f"5" wrIϪ<aͱtEJv ;ckb@}Ϥ*mݝ7E(E 0K2)J'{ޓsONKq] fòWכ =`U.SW57?lZj.xO|$s>rՉ8GI69؜54Kl8z9N"?Ds/ΛkUYt޹1}$trL '$t,Oi-˻_XHDpgBADkޔ&6-nlEb-n&L:Ns+L>(墆i&M5Ղ/ŝ`mmce7^s[!Iȹ֨Gۆ3۟pQ8Q/ƃDf|?ψsQP(so] }oD XGbpeW[=fc<$K+ĬDŽKF X5=귪Se/iMn=k;d]'YYúl>IЮ(EUٵŽ ]=n]*P(*p_rV7a@x8fDSH7<2V'aiVs*g;gɍ܉^57~ȋ)_a/Uc" ##ַ.$~#\)Η*jy eלP8.cUХޑy|"@i.)@Ŧf+ _o@o0 =H\D5M}eyBe BtEF T'G3Z)5DX̍VGSnw/8q7=qmi?zG2$H9Z8 Qh4g^/A,DZuݛ=mAupIa]\l:jprLl^~:7[ZL@5/3Ļ柇E`L-bomҜ»6 rp"W :ΐi]Ӏ߳a¿ ~WtZ*]||.{8mdfP2~?q:2IP ~r+ts|_HR~*_u-њ0xmfGu7apf[Ƀ?}" EBcP87ɱ 8B5Y nԯ2.@Og%%t6BvZ-xұ'I{`חM1?UyQ/t2"ec[ױ&+E& 2LNR-07,#G~-da?m"\9'Msc擔_8I.jֵcȆY Ok$jԑ"D`,] ȟ)!$򎋀^esUrfemm.7 W-R7!Nho(CnUBD>[= T 5&յu-V?({#[.~8 w W AMn|%fsO„y^ׯٝ348o\2#Ke}j/H]>F5]H.:G*,8IýI4yO$$rjr8`gBWENe?Y<# DmbĜn+~EW~АVYǿK)D~47>6r)mQ- zX ZLn*DcT"<FR`< 9kaP9W;;U}E=Mx_ݸJkfR槭 WnٿÑUF'"Ij7LzT"+AG9]&_m[7-*!Iq{bq؋2jA7!\<s?/4+We Q=Xز=|k얮t|b^>ųe/:J_(>_\+0*5o3PY]/ZGZfe`"m*Dfb([W9 B4C62~KHM{a]uݒ}SHk (q(b1U,*u JҎqO@ 0޸6.6rSDuVI3wfW]AYiCsX$X K}p@š*LTMNt=;7!%RLarfpT&3B FI#1,΀M%#B0>g:؅G :KaC=xERs'rkY\d|ZY#`Pl:]gy\:O'^arwU=uҒW~IlV܅ӚTFgGA5lpI LԘֹ=.)][0?BHc{Z%ذ ^=Ffru!6uvOj@R\zńt>'B&hXyzݭY[y-h=hзm(Pi+ir 3h͟4Li/2G?ħa%Zb$:ZfNhm,Y?|abf.u}-@Wɾ*CS\2WY8m@g+hC9@^- _Z  4{E JW027XM|L/*tq4!q >qGfUw\}A2b*f(N@[((֍b M%1,خ&l$Y3;0Mk뵛[䀄i+Vad҂[Xh5!>[лª1fߡB>&'k(hQ4w4z^$IVmg~(_@J`#1zum"bœPҳJ 1S Eu ,iV-sY|{gó֜n40wV# ʨ@+ #l3N ƿrb2ƫp/{< {-a>Sg.{G+z#ehq)3x6_iθc=5@N}ϵj1ᒂvLZ\Y/qonҵNm0(؝W[C礓p"錛 @\F)PKƑ b\:PB.=O 2ЄXY•уL}\!3*N&8Ĩ= R-ڿə(e"ϚWhz՜ <;p[bYSd1jXELƀKH6#jȣY'` g}ĜۧA[j6. uwUςm^4 h4U.D\ޚv0# Z_#;zA*W2Sr .p^lF&S4kJ7[jfKOpϗ:z@Ai"% V8_y+2U|vzUN4tcf*]NCI`ItӤ>2蚷SQL g]/@n[N= cdZ7i® o xK3|Yh+d9"e<Hɠ+.5y2e([y !50"M!Wu2;MlmRAݏB8_2 X-*EAdW<:1*>|ۮ{rN~IM)rɜjMrJMndg0R 2鲘%}(4Fn2%n{ >H*c-Z=TV֥_i \+NII3V7XEb ݧ匒b{Ӵ Sj~͞rr O&޲ۮGvݎ=|j^V0T7fָRa?|R8" .dQ(7Cj $H2iv08VcfK*Mۡj;߯"3C,=ıd de[ЕO2dGw6+ xMQ[gH Fи( gZ.ୡ{ NQ!$9eߥ&A毢t$_G|2TmgfWfb13,c\'M0ç>X?sd*i ׶`G6K\KwNUw=_5doډpMMic0: اNvCo#e„I3h˶\A^%q:L>bs*R_!d*[U,ju7 w;!'VaՏä\C"O y-;tH:Še֯xXm#:;4Γʩou K]R5`P7LE{;y 8IC#̤#Z]H} Lg|kftFv/#Ԥչ"nAcO V 6}|Jp-Cie'ٗ΁-I =Eױ!PL*\\ |𞭆r4oߎ VdS =dm#7UY!?GZ^e,%H٘Gd1CAkͷ0b/؃d[*X1޹wkOd.xy_o:[=p\jFC\R/M.MUv0_6`N{q\ڈlI n Y3qN}H,nm eG.Y\[_xSY516m3clG_ hvFҾl:y! V ~jH4ԇ;q%/mv,GZ{GF,w/o;9g"+y,waVv6,8/!o?_L! ~T`t tbBUg)VP'Auv:o7 hڣCN5ԿR UIB#e1 &?L00ohќ|A392O4[И'^0ɔΌ_8(.6.hgA4n Bt$# MewePxLe^3Y/0yq2%K웏精"h*4&WO?rq@ }}w|bZYh[o z##^CX >74>Ҥ{ԠY飅vk񼛎Ғz`, 7ُ4nZA dҥy!pJ?ZQ; FÎ4oCը>EOC<3,n/$"Yk?"*V4o_ALПə!pHPנz]#sr>WlA70=% <._^5w+i&`82|c~;ꝈغØ9n襺ނ[Ps>^KxJNY(ӗVPCߏۤzؐdײ& +ѬYhk8{)'*}5<nFsC=7vdC IS,bkP/|^_f[`e5z$q{7/{7tb= ٥^.f鍈$~%@kP )3=w3d^`u)Q ! gURz]OEuX8ߥ~w6cq| f#]:.޾6oݷ6@AsS-8z\Ӈu6 a~6'' ur*>F:A'$%uIL-R'wSuZ-@NM8Az}~`>j3KnESIn- `]mPf+calH,j`͏ >R AvM BL,&VY:)SR7"C"l[2ߒrm+lIX+?DQ2PВsiR5I*o4P\}SKBIDtPl^̟E΄.-E)/惡"؟T1ݸ}TONpS6|d7(Cv/~6m~Ql2z/.ر7jsY ldF1\¾D P65Q=zF9??'LIIWo{՟Dvs9x#譪&v_ʪ7XXPx=-0>b /rvS\Y8Kdli=d2E܎HVqx{ve:6JLmFAo_XH,V 9ˉ?᜛G- ܍lVu+e(ly=ph7*:3Iu˳wst(^m2ˬ~.,K{c l"mwu-f,]7+ òٔs>ܕ G,%,tvݢ21?h)}VMܓB\=1ٴq)qmN+B1P0”L!d>#տEj"t6Lҭ 5և]E퉙3Cq]a|?>ixS ~LO/_J>S%hő@뼞|rKBG:G_xNlŸjI;^Iv#qL!~Zd8͠tt'~@"vMI#~5 &6>c(餷쟕u I_+M[LITͼ<~eY2 "+SMCO ccaN'6U2&聦W$@eJ S. ޮ#/k!Š:au/'gT?4=Cɞ}^bi*_peӋ䁻A5 mLɭvu=a=|=L^҉Y*ΘeYٸ"Z9~|psG++a?:6z@Lna U[iaʭ')Y{xNz^sI_3/>}l8#i'h ?L; ґQp&Ij;q2:+CeޤEEL˛Iw[9r "2  D'"z ֭5rTֶB !Ϻc2|/$Q.M'8h$=dtJ@K1攊+*o"XuE%X⏙;VJ xQZJF) OI!g! [㟳$ />}'5EpR z4Fz8q1VvV[* iP:3ޘa!;G,! Erτ̒~lz<;Y%WrV7!:rG:5 bUo'Ja:stG_^?GYH$ }~R3Z_]@ϰC^8#gfP#xK GֲbCs8ۚVQB\&F&jZ26J|G@\ݾn'|wO\A?9(h%ęvQ\K4=&a =Qbx 4R+4sP@$FGHֽw9,Jm+75AV:0a[i<ŏ'-HgNCȞ4nW=xgNeԼR5*)j]Tj˸6"Jzla@H\5Mp0AY+>O|.LGXVk9hOػ"$Uc'2b> Apq?j]1g|Gi׬w WL5;m{YDC_n^* ݓő7m߁2b]"Xw/]; -FNRWfH&7Q'WMC-7(aߵqYLh BOXz|D3"[8i VWAGҧI OǩlռÍR`@ .9r)MVZ-G[[fRoBAi*ZcY#xfz4{߭lMWE56t}wr\/2 5 ?eDK!`ETB%+NtnЉ+4Z^\V{ ;Z>qΎ(%=L.,KkM)`;L<L>ZY;+,DAP_cFvoVg#d!Wsُb.܋ᑗX$r~?9Ry[SwK5w1"ۄBޖ3%P,b{E!m6-=-#lMү-NBu 1 HO`F~ /Jg}U# F/Ƌu!ԅ~<g=ٲMFsJ}Dȍb @&Jϲ vWȆZyeN\uphbPwV/X0v\W V=¡Q.)iZ|_A%I%ӣӷ ^"DnöwA)gm+C|M1Zw6yW2DL;gh8 ͈8wƐjMGˑ%}\e6Xn%4HQ[U:YqIOj?bU"024+n`$hԃqӻp:4‡^ҋj;kv-0jrc98E-p)D[FBy^;~?AMY( 77>%f;x a΀ Q[ e~#tx3)^\힟).삷 ΡtJ5LЅI4kK[I9+?oQ˕ HNҗV(`mQ],Zݡ(,>qgmV9QѰ; n4̋oƉM"p{^(T$ E>AkwR Nn\R 0g=7,̊`ӴFuccifq;m|"^XBO)A:y\ aPA$QR7O6;E4I>Fh)LL?A{WzN#]=ٳ5A@zE<@"hJIΝ\P`=T3IOp({UåTӥp$3"KO/*%v ^g9D}0KdOU2!ep@x6l,9JeЄhv S?Fžj2ăni1".5%`Z ȿtLAo<+şU_فqżDmp y1^3 ya'Spk;x:9^If$ǻv6]&;>"3[ö&Rʓ岀Ag#/x9z<ިŷ6&9_vNG"mAk*$)Qa\̄h~hO&f],ti%#,+mͳS :e4:lga餘o࠽x4 $g2cv8<cZ,] ͹:MNmӒ6ӭÎ3l$|hKԑ\n(CO?IMwӓ{SG0(q*J0ݼ0 ԗ"SɌ) >udn Ѧ2s`==9rmbԟ>r.N)Zx~Z6"Bv_n7߱vD,z> .I#:Q`EqOKR)-HfVQ ̴)=sk\!J~ zx hޚɸCޮY"+s-I[?_!wKLqR>gka9vMκEJ\y:>NI{ nO*Êފإ1F<2J3H_֪'յ&o;щmZMh'o4/92΅ wΌIo !g.OcU|4}K`ײ&|S;aةb;? J><+ap:.b9W,Oug؇.^dĨѻ Pn88!]5A nn ./#bvW6;I's|~fChAKd}gfj!6Fkm莡\ 3Mz\ a_ ۳7L;`+),+.2Lm Vښf7z$*5s+5n3^\ׁY%^ڹ@vθMYܢL#vnxt"ILaZג*SKy&|k3f![}%; ~ǡ?Lemʝӛ> T)v~ȱ1˝^}O5v ":]̥Se#Lt_3nmۛ6Ԝ"Yۻyky6 +h֨H\7Q"wr|E 0!1*F `3WW? FK9[uu$"ߓ(+AóQJ*6)=E9ZyB2,<- ps~/TR3s(!qPɒP)QB-eṋ8F+Aœߖ?]$j!Vt]oa݁o] _`;@M);;t+92S4meeǣf>mʭفq_Q"ޝT_ %7az}vqqV2UX٘N-2"eLJan%2?{2u~*g-[VT9M5H:,] F(KJP*/Ap&c9R,aU׻W6iISM1gthylbkdm־IW^5l=ռ-§X}IԱ`PqpõB ofL ) WK`9.K\ i/ˎ[_D)8iʠ$}3^U9Q_N٠xoӲ88{>(z+ I1ro[5)?aT{;NHhNRmtZL")#]q:_ea4!npcTaO٦OT_& |MYoͶM,e9\a"Qq4˴!޽:f/=_l^Qbyu[fDIqd˚0p|ZndיK#.o8 Y LOFoZjL={@oc(eĀ\*/ ^6DD@)Ɔ oy<"PW<$*YL$3t@!)?-j;ß$:%֦3~q;߷k e6`ë/sN<:{ћc.=;5z#4_3Xupt0rCecdS(沓曚XFE`Q{t?@vxϷ9lrF٭VW\V rE;Xi)#ɀ9 uoW!Z_uM<( &nɟ7ק  "h3O^{؜ᘦp2͗9Kڇf$>F xo2\; 9LS,a,s&גB$ DMW^Wg*Obf{1OlNۭXߛ:*v;5LJe/|pY}юEǼ6`PCDZe CŻ8\o$ϻY1_>Q+""ܯDЊ tÓD;X[;>]%_OmE})/{V;uPOpy6F JHs[q_"-B⩄B\vmZ#e]C~o( @ŋ}U5n [/s"V7t9`ɿca"x?.nsU+-X?Sc[G}U#*.^B%X䄣/2&k:Ek2a=~rZômB+u+s1'=ATԹ87ct+RLz\dV)|jʰgZ?EI4։*]B3Ar@pMD]xovI|T6lQ+xeN"Xd\qt Ə<11k1AͻE@e7-IƄ]K ~:{Jo~{~F<$ط#~;S%94􃩭8nR}}M#Q}omqӖ9U\ѸmvxH-oFÁ0!pTL1HɱG?Q5 @jxwGXrѫ(Khi#/ ",cV$7u9t~Գd >=wQWNfލه .  ]fpa^r̼B`2ji>V$Ilf|+&U_?۞,dRhP^}!L [LprMfyuU&`wƃ - tXOim^1M6-AT-z]Y&@'~x Xhk.ՙelOLeL;TSHP @{?Zg"؇@5_pWõ-p3A,%#ush||vD6JE]/E5lW"".dba0aI%5᝱oem&2qa\"¸_Ý@lx.$cY}Sً(IM!',O :<&bQ=qPލ<ɞ2jK=uYiWxv$7H$4?qHƥPLݷrM`L50$ LVrj,y&FE뵷[dlݴkH^䖉 BcgKӾAD_:`oJxOBL~Qlj>KZ˸.hXo4sʍAؓZzn]Pօ Vډ_$~gNF91ks Z2zRF"P2JC=6)ke[2HX|!sxn!@)r2uofW#$`8s v02v[VHrTVapMB_AR KQFB۞#&0X"&i.7 q9IvZh?KAj:?Xy̗n5wi0[|\tHSRDkp+Wm<"1dvi"4Ө Vbg(D &}kE2©mE.m2d@3צ `;#zgSڟZJ#(:`[Pj \synV"\ M2\'ʭT=wZP^K?r7]T