summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kernel/time/time.c22
1 files changed, 8 insertions, 14 deletions
diff --git a/kernel/time/time.c b/kernel/time/time.c
index 85d5bb1d67eb..34dbd4209e4a 100644
--- a/kernel/time/time.c
+++ b/kernel/time/time.c
@@ -287,26 +287,20 @@ EXPORT_SYMBOL(jiffies_to_usecs);
* @t: Timespec
* @gran: Granularity in ns.
*
- * Truncate a timespec to a granularity. gran must be smaller than a second.
- * Always rounds down.
- *
- * This function should be only used for timestamps returned by
- * current_kernel_time() or CURRENT_TIME, not with do_gettimeofday() because
- * it doesn't handle the better resolution of the latter.
+ * Truncate a timespec to a granularity. Always rounds down. gran must
+ * not be 0 nor greater than a second (NSEC_PER_SEC, or 10^9 ns).
*/
struct timespec timespec_trunc(struct timespec t, unsigned gran)
{
- /*
- * Division is pretty slow so avoid it for common cases.
- * Currently current_kernel_time() never returns better than
- * jiffies resolution. Exploit that.
- */
- if (gran <= jiffies_to_usecs(1) * 1000) {
+ /* Avoid division in the common cases 1 ns and 1 s. */
+ if (gran == 1) {
/* nothing */
- } else if (gran == 1000000000) {
+ } else if (gran == NSEC_PER_SEC) {
t.tv_nsec = 0;
- } else {
+ } else if (gran > 1 && gran < NSEC_PER_SEC) {
t.tv_nsec -= t.tv_nsec % gran;
+ } else {
+ WARN(1, "illegal file time granularity: %u", gran);
}
return t;
}
L^Ph0OS }[ "Gy_ ڭ#ۧ2yq}7dy)c?[/^N=--3nfhMn\yy5Of=8qor_!%y%/Lٻ5O SUWa $DɝG˔*!W7* Hޒ\5ReM\sG]"a8Lvˀ`Ǥ7p1) 7>]u`\p3S $MTęl:唚F XaW(Wx4qr>1aα 3J`@xt:gEƻ)N )lؙl??$duJ|H>~X\NA b 3?B(RmI;' ~/F?_) ʽ&Ս,oZ&<\qsvc{PJ )u \Q^Ȧb ΂Eȡ1B(&:U]I6.qip9[1EYܞizG:S(59+-!G~LfpU~-:{ეI?&Wz:(rէtYʃT2p<D<t%U=2_?1{#W65]$qz^sb&`ai]X,Ʈu]Cy(FC(N4u YswJ*'ّjF]s&)!S1أP>z+S8x4C`JO_YЉcCJoW,-Ӆ53DzC) ƩKBjcBxe/N"Ho%GZi BZzLMEv3 }C&Q7J#?˱LlB9$ق( |d!lX" \t8gB싮 IVve1WTʅ !Px2 QSԽ$ϜẸ8u:?kW>~wz W`4n%%e ED.!I9I#_aʑP~ƣv%'<—<LofrW-9-߀Iyru_2}?U[ґ!ĊrJ~rNp<E\Y4d4"K[uVW`*ʽE FweLdLy!XiQZ;˓&l9al GzDKQË_gADa{x|<0~zwm,y{7_&),;&J/*K4I%zGo ,u|jܳ԰;-r_}\[+DoIƧŻk-` {nxgf~KR;sܔ4Z"|"?'{lO&ŕt 9h齒i4Z (kO{~=7@:XxB:l[;D^/Αh.y 6WG?-բm7VүHxa0U mwE8jxC2PF~0)9I6Ύ=lz$[I az{i[dB̔oۓ!XULtT)s}wc&ZU ]l6>pEs\ Sbx ^,  hQ7w̾'J/ي;<]<~ zr}W`+_H"9l >D@6H%I!38MΞddM~Q(f݈.N (28X&q7(n6Bˌ9lPBpp'wn) IFn{ )=l7dZ˪ _6+emh鲼(s=/I@/V 2S$1j-dβ4ϰ6,~K=w4>l|rwY:&Dmoj`恻\;jЯZSlGzY:C|"04,oZd{3g_LBZڍް DoeUr[u*RñJOFQUQ[~!: 51{ҽtWzyG  ̱G~UnjlM?s/*TevsK!+SUUzvCÑphSsć$O&W|:i.zUFɾZC2~z56ӞdSӏ]_3kwzMUjÎj U4ƪޮTk@‚dFJ#nP ܗoۿ8ԥQd`-&@{N7F>(`IED9E J#EQ9<8b֮h'r=c(lJF8<rG<<-J_H%i;O5 )aFu<&Q\#ANshy윝gpa4.rtc5&}%Qdl:a">~仪6U}w(iz0;.ufd1[3&tW+g'7@cg'\|~G ֬nRG6 $]ZLDHIyHB4ųy['bD3mR72qEP2~sutL$9]-\ Rdⓣ 9u}~Q@RU zߗNjIY QKzwvZDVQ99yC6&ÇVBo& SmY|p+y&Ovh<"Ϸ0qUfn;vCf*t{31{g~_~rr _"$b?[~qK份{hD{q9NS_rEI0:iO丣hM֚2lWkG})99Mw]%nrAօDGWD3 ;ْl3=K}C:J'AZn8!"P~z,ln]H"Kz-k`D%.$s/ڞ8Y9ijc(ԏPU1K:--Ћ|s8287R~tB0 |FϠ;vz1s#}I{zRFƢ%_c19>"CyCD H!5\xi,"l!+\vߦGB"_2YY)҇޻Hw;REʻ˦٤4f=ZyGujjLkf=5~`Nm˕ZӪ5j.b _{L"t ֋s_f f*{ZO$*SCOxeE4uU,-Isxao؆N"kBRHٶm2Iq23AB3vP[rfo<o$vBVwV},&%=ja<#~=I7"S#n2'xp)rsq Ip:yw:bhG6/IŤ54)i.Yz/tS'<.h8wя]]w&EN'Kil&_M@DCS>Yo,{Ҭ˝|jTe . ~v0 e/m{~ [O&)B- *6';~'R36ZՎj kW|~C82D R2-BES(Yrhp\x|!!Vvx/.~fVZ Gbw(B 7]#iWb,3͵-${Rzc0Xdm^Ȭ\i5U}D3WVVi8Mp|C$ŐQl[C/n^]>R{qh|߳ Mц! # z5"73zrlj;0$KM:$,ُJT$$7K|@W9a_<~D٣*f{RyJV- S0ARuyI)'8$ F1ODg\JQWވ|K42_$RF\@84Ɠj Nht:jhuȓkujv[{򐶰cJALEv^9czC}6ݧwGH`.?ݠ8*C$iI w hYoW*ڢQ&kcQeeYlbsj!V"Sꚦeq 0ǒBZ0"F6l1R=:Zʊ%K ]}TR$C?dm/ /͑7Ҿk_;oDE᜷HPZ!nVM򍳻 FiU'Gmr֬wI^<*L`B\b"q'148+:RuB$hȔx!r}j?Q@MV8Ĺ|$4[~&p- %%H$g&'PuK>)2#ݷ)BğCKN-],({7}^nUiD2ib{ `c"{{!1ɾO Ȣ N $!  LҼnu@d(ϗ=1qz]LkUG *C+uUKuEJB&P8h4RZɋ!%g t0>3ɨ,-mH/<7ߺ;&E{4& 8",q[K;+:գ݁vXPha|Y}IN49.HP@3$Ӳő|R&/$:@(7N^YJr͎irӱiw=.s59+ACNH#2dd۹^ct%/FŠb~qha xL/m`6%d2{$| 9[R+ܐG[Λ,vb0~f&݀h8ZS'RS4"g0{rh zR}wIVѦ9l~5h*92Q͑Z9CĐY4M5T-NQ8͔x Ɓff $@D"e kaU`;4\kzΉ>zbЬP\A޽:c/Kfl.p%.(ѐY;u,~<32VM(1"{- ;4Xq߸o~X;mxbޏ&{jq$g :{JN~ mw!mسSsaԼV+I@> 9 U2l$wAQ<ٖw /5Zo;vjtV;MM4R./ u0ko,bOOfc-OEn=QQ]\_T[A;  5P85!ݞ&;cQh]b*$>#L|&zժǞE1q44^o 9.f)׆_ 黌A~f,u2U &#_UJO4?4}W'8duʹՙXVgd/;~H@>k6( |Ɏ]'"Y >E0/I/V dO 0W@ZpnahHUIj545]r;On}dC4i9$Kl1B̂'VH(y H1%!MY)4HjY iE <{ @073\ށo[/~d/޾FhBSnzIa(!!$]? ]zl\ p5$(?Z([ۑ˳BV岴Oi;8*yɶnvI&<`L֌ZiqurRAdR>je8ɬX HAq1HZAAk%,9 \zfڸ~28Y> Wi*q(ٹ9NȖ.vNgl 3;@lԂ}`Cɿ$QWYU_2nkߋ0<|:\1~OKj2ImBN@eYg+g*/AG@haX㔏DVMA,j _5ưy3Y-y?ϡقx=oOlkzrIXJ iR#\V.7Hs"2 ժ6[0~MP+y+i,2JfMu) ̮?;A/'{lL,usyk5$nL("`Op5#|s]<kd3QPp1#${P#^YK "@U-`E'rI27"dr=yiK2L[.Cj,7, pq0~ X>ve|-LφL@xd\#Hd.& [l{dٰ GY6̌В^j:MN5)mNUheFp;D"@ooiƀ}znil躁M7cnL!,,gbݏt+VQfG< !Z5ܑU%>pp(v{;ݥ_i٪ˍAsQeq f5jX jTW"%W!`)1suS Z3$`ڌnT$ҟaӠ YBAx͜q7ﴝ#cw"ѓtH K+%MIIQ.pq|ԛLT' 8LU*xڴfy<'Ÿ[G*z=db܆KEhM- ؇4{=1-z 7Z[($z59z4q[F- \X.{;@;kcmЀzcb咋!!;}Mfa~( F z7#O'tl0, 5֎@^ZzƎ E{iPITlJt=S)5#sk c81,6;H۱DNEd-3,NyYȐF`X.:gb:{3ذa&'uV NŦY rZ-Z] ߆quGSUzߗ]@;y~sRH86[2F^4QҔCn Kꆭgp62ez"a6LGw],]k7֒ͤpP?䡺z_'t'z!~sE/s;+r8p]jʜ+H%"+*'%yKIR zcV5f}л 5YuD҇}aѵzgOoeZk+>yZ# ,oTF4)PpMvL1Y(2;|ZfWbOzf]=P`rR ʚdF%Ir:I3jG0(Q&t3UVkMKCqQsZ%UBd.b}z'ǖ氁N862A(J6+[/ 2%S /F lh GWMW6bA??P jaN}8,'͌kơGzevVC~/ċӆDt)橃,d̝tџX\_̦\姌'B {#SB 7$ccn-td:y7ZvyPPJtgCL $PG i oi?!UZfkw<{~”#+pX̷&=dv@,'bo.Z|{*4c7fd^De-J>u/{[UsTfx9 ɳE Vתemz4ACEs QZz"RkW\:6XhRu:r;htWxAm.LYKy@Ҭk]K/{!V >!paK>Zcd|Co|w`u.ML6-jp4`hb.W\L#ѳ9,c9ݥzdx!i-%E9mA2K)Փ !X6 +^g (4̾<3٥ǗȰѪskɇuW6U(r ]RÝd/,uA!+*AxI1ɑ6FQՊj~}7cc r7<8$xj++@-l8mBHrR)Z: UdWj!)1lב;ZFZ Xa87=%><4] =e)`cW)kyiES"[whbigg 5>(/n˲~(=Z yGOͼd=ZFK|rܭFo+FotMqbz_zEѤ /m y0\v1 FJWA⫤JGs Ֆ-xdx?=O;yjE2}svi[ J9tR Cx s!tBAO y:[UbRW-`{yk):ۭM&\t$qC},gx]%A3&u!˻ˑC0y@3Vbڥ w9TFimr)<LsU.y.kLAE. OgԶG rG>vYX _w9 sNLJKAƈ݁%w>Db *1W1/`.DPms`,k #CB/䤦P7ZLU>ڞVR_a'x,IJDbGX3 aa6k{j52iCdQnS8qB+Lv-;q r/t|Q#vjӽI]EY/shz_(Of7ToNeQZv_aǸ U*@W5dp l*MNC8УeDZbU0r 9,dm3qcX⬙KӦYB*A}%tZ,΢ ^O)nN0f6}ʥs)hE$]$K_=Uן2 bY a,^Q-ppN+U>*MFrQ*nQ܈M+|Х(DnJ9WC&)? GAk6 _nwZ.s OY  Y[1bh>ǻԞX4EIKR@lx>TILڕq:zE[Hw@?&(VS1ʻc6Gh ~ ͗-a-`9W1C$ y&5D|J>BlVtL)N~5N7!o$Z)w[GP7UXiTOKfMa:"f[įR$Rz,vys2n6~8!B|w|:{|4,@8p*v*}}X?t- 1&A!@ n@BIc±g?LV+|캻ݲn/ PFz뎛hnv{z2|tE'٭zZ}9戺uy>'} g]Z $7&WpTOrgWaدVZp@ RYU&E1<;ݏ6+|U铼+:d1BR!;{9rM5A͞!: co ל.8pV"v<(yo%Þ5@ɷW57ٕ-6Aom ~G~G;^`y NA'/@=tkw#k*7CW̚R ӟvjӀb*%ES [VN位bAwiI [uf*N17URZ;s48L> \s!^\}_ ͂A.~{ ySFh)f09OTuHM5thW.@Ls|d<`Rыҵ|x"ZK<H؏CR.KB)]gT|B1J!3t1mM2ET5}^+fh`$\]g7Zh# ?t ;p%zjq!lx{Ҫ%)IDZ1T-6V$d휗_unΔPH/1MUOĐR2E&@s~Ҝ~ibFیS2]*5jɄTy&R'z&C(YÊΐ8-,8DxVADzqrq09_S׎+2a5ȝ|g<4؈K/ɎpD[-V!XD;斄%44͔vQv{B8Ӧ,ywijKn;3Oz޲#9z,&j5 jčLwERS K/+^OJA$"<3PɬWh/zA_!+eL^RFV֬AnبL!iOpʉV܈lߢ2\wݹkD"Ni+5B~d_ۈvLmmvO`v0@텿5G&5K["N.J KؑɿMbEKanyK7E=i]$&9_hc/yH!_"SYHliKhEBᎵ~ ^DUow&[VO,6|gDOHZ/}_ Bh^ѫPRcH-w,Y.`%SZNo90ڛi|;N+Gmx2ک'%uď*Z&1o:ʐ*O,JECm])+ZN>NJnQ`^l:ό؈3An_Y:]tjMcܹCÃC; 7g iap%h@jI8I\Q'-YεOnQCqFn6*ݎQŴID͜g]S:Q7:]XmscCk \s07Y[¾<`5[aH4ZxLE>w_g*L~;ŋ^>$!GkO  n}vP?-{[L]nQp&w77LxMwC-mЖ.(dzHwڡx8$!5S`X~hƻoq4v1GiOK?~8Ϻ՗ @׹&(s5 EIR/'ٔ/ɠk.)<9:|פ8sdW}9c=vS#:x:55 vMGU:_CZZS*EL'Vܪޫ,;4cN$i52-S`Vԩ@TtċLHE@9Ec@Hk͋C'/7b hȂ#tɿq,cȜVUq!̻7+DFGWVqQG _ݥ_<ӕ@dʪjޕ ve:\Oݝ] `k!wOƳBzk|DRRAP]:&)ԩW[euY'*oFdy)+ yMͲwvU!$A( E#agD+$k(6j2MN6b^]Hkܶ ~0Ic9n>XsE [r"~hvMv*0m.g#^ImmZ.Hԅ|26"2MI@f3ʾ^{N-W'29apZI^8IQx;EKݠng/@@ZzMOU\.5ZM=m$FRoflݿ'lz@VM}HOI5̀p0Spyy4 ^Kv\z+ 5,1D<ʆ ygi]ÒFBQOzÊ-d%K.Q|zE ^l7n-,},'wIm)&2P'QU`9үK>`ғz <}S%Y{-<7nY&7ꋥnxI ~T979zgNWhd)0< N,FU%vHnAL,=FvEP =$\,vop(Ӆ}̙%Arw7l tH&\.<Fm"*J}ncW9c;Jꃵ 07GŒ6xn7eaE *a^<_c1.lϯ@zSVW8VHݓڗ8y662dg:([Z瑇7"! viD-hB {} \7tm("|̆i]7¦/~?1!`CGĖ1|6VP<<ؤT{/p٬MR[)uA0~Rc"c2dE{]+]f AoeLeЍJid{=˵baӂ$5o6![0fSDIr>4(ȗ(8ѣ%{;1PAGҨ ”*1jâ[_ŵn6&nY;}F#dTf% 7ii5ʐw׺'.`skUn}o)Uݹu$QoեyvRoG&CLr%y׈\k}8=?Oyƫ#^=?Ylu~!Gz翐IGƸ}L:if]e6բ{i*QWtwi~R/ _UՂV,m_-8&DCK}^)wj>6C3$f~{i\{զ,dzȁc73&A,3 y֥~RäTy8{5}>؎-g}chnH_s#}Tcwg#F!Ig5f q=)nvA>Fh}?o7=m<'[ ,dhMnh {mjVkjTҭ@UCNK2[ODgrYb#]AY^}*?Ѱ$rZ՚I37Ɩ3%k@%}JU&_#[mzNጽ-i]>Ώ2l`}toԚp=5{f1mֹY[TJ]6UPi0™@c6'G]s{!%XtR֕(|.V*iX-$ 죗`*~ULÔ\0؁F^+\dO$]$ iopCa@7KA"(B'~Ùա}@_UCE|U}Õi'Fa>4:} $qj1@3^^UvhFszcZ8C]hf"n?:كV0*{ss\hSށm\Q5 7 PC~jN1m0P'Uj}~'` Ry>[뎼U)6$V%H N_2 ;!wv{?*UG^5[d8 ºWsB潄(kd)R/9w6>9rە䦭ZaC"_!k#IHhF!~& P8> &S/rksFAm6$"#A^P\GDZryVxGdKw:_.ϰi%z%/m@IdS{\46$Aߚ4i\V膞,N~>02 (f(AkTU.w=5.cܪZ#kh 4 EK~R`p7{jpw?'UV24e5H(zpZzGHbAdd|&apa5F&rA7؏lͅkr]vvo-wLAfbfn>XQM;P˼n :$yprQ5$V~Ì??8B)\kgxZ7J)E|ծ}VEGtWrU>VY4;vŹO&j6\TM$=r%Q 4c{An2'&8J'xէGG{m}n9d;W[7vKCYuRڪW&H1Uү~$MN#av4jgԕ{Z"U,\^4}y Xŵc$,ʹ\"7kb3O5~osZH дl8i|Y&Y/zU->uMsac_lB2չM|~-:H 7]*7U19M(qKtiϽ7zm`[?_`lyg0y^L=\s<7*(:b +""o#[WzV8 KTN{_8)%t(nVq#0:UoVQ?{K633HC,{ UiqU)v XL'=9UI$j7Ia#u+y%{ӏ,#yɴ);!OçCoN/~Cy 8RVjkL,5 OBFÂTshM#fRʳŧ.WIٌ֟mWN۝? Ϗ@4볯?"WQP/b)Ɩ&Q4'f92nT~|ņaWXLЉ~6 a+O2q3ҝBѓ`;9% ѱ&SF[0xk/0u/ f4d5{n:3n]:|ss5VKbGd U6UuOOw(>U2Tn3|)/C;]"D#"d"˼:9xH/jB[@r9?(Z!+}ݩ [55DLfhH&֣tv.*Nug' gX2FOU-Јc8 ~\n~;wezi[/tIW&K;Itl_ɐ].1Fv9x]XlOK)H:& &<$+! !G_TH:䘡EAV&sgoU`[!yٚEL2Ox$&#sAϙȠM3`YWSZʨzS7DdDz6zj @f<#j+B\##\Qj[|wxgյmRtz;mrH]Tf g,u7'Iب~~ Wu=>#çbwZwcr6M"5ΑLn趡ĘL뤔~UlL#&I4JBfh:BR~uulA3{RLbBtm+ͳD_ ~I1ݠyCFV唏% phwZɝN!ְ>$ DHt Fc2RV*JiG}:}-ykULFJLjh-tafjKd83[ESfGMOqF&Еss!wھ4zۭkTn0f *2 GߋwD|Ż0te{а"zۿEPG20Я֤L-Hs}6˥J^!{JBWh,'!%#y2@ik;ɰ&t v+?ua#xVZ'v^Onkgơ<6P fOmr7C*7jj>3 np>; |_ Qq>#QȃV+;IhtMxBsm  {Isvt\SW'#)~ YL}i[&gLG'4zN0n鮞\C&Ewbh-nu:Nd흣rWjWEHmd&BOMO9ZQzAR|l+!Kѓؠpiz"$L$d_Y, &1*NVӫX`-QyDS/ xyq1Cwh*w^0w 'uiC#i{IdA4B$>o)9 U;UϢ`8ԨB#@zgISM˙ ?sa r}ak7ꔹ&4׽Y߿sRW:( Y2DduE懩@#lª͒1Y=pR=D$ 31VMzDAwC Τ]#Ð_H b"`)_-[^kr(B`㸦W+iy[; em%Ds͑n3\ ƈ>]oZOMA~;\!2Ya9=h,r]ɬr`GT6L5IGgqA } dy|LS_֜VsR٠WdU*ͪj[5uUg(CA_97!^^IK`(:ɶMԳ \l j~v$Z32V d߻Wx>d+wN96E/&Li U%U52i2e~cǖpc rGK2^s)w3PAb{)uFN]@v= nIxG\o|$9EM%0٫>Bm0a<$!:11;eB)8{7^<,3:邐?d`sD.qm0+o>RV֩х}'B[ u*ovȿrL3}Yq$E%a*ނ}L\yÎ)LF`7, Qa7wB 9&c.\K7C "9L\uyiOt@1™23I?J5" R3 tڦV'[rdym8Iw!|' _+0 $nmEb\Z]b?q5> *%l)6# ẁG'T}A W+Z5`Mf1WάDR$­U*QvO޳h )d>y=W$>:znz5feZ2͊D>(BV5봛Zx[Fꌪe}U6qP8׻Ԕ.6Jl(ҍIR 2Qw ci9'8^,<ʰ 6e5fJS7K*I֪[|`|YX<_BwJ ބFȯw鋜3=Eeey)"irX8T]BrCD YaCApݨ@m\[WFj>݆ltgJw0ҋ!׽ۓz̎lbӑ#X> d,IٽIa$D'x0Ŭ]L 6]nRPP7uҝ$)""u(V`W@z&iѥ-2IW %dSX;aDaKghC_k$=%f T&~Rhv_swȌ)^t,rb8Ui3e9Fj n TJQ^zNSQFf^9VZep)kI㣗:.Gz#8}cs84wM~V[;/lE_FӡB\{WYsrà SZɰ&̎< 7JH(ctvX9}GVWI 393,hO@揜 '^:,jŵ&1*w${|{FN~7~=aϠg 6(beQ\p.^)7Y_t㊼r55ړ$=sKdb*nbn Bm,%Sf;9^ MΖӬm|ٲ~?]AuFww\ac8VZ4ӸMsW땞7{}Uo+ g("u}=(h8.=yF iHdJ-G|B ~ J΂ֱ>;ݴ6I6XA[ /n@d'YѿaVD<aJ~sŵ\RuC65cG2ވ&"frԏ:pfN6%V쬻1AUr072vFa7A} o[gzcRRo4#C ثNJPA. m 1iFk$Fu A{OނY6ђCiI(!G#aUUk:+K^ ]_ڤ]S`p[?CMd{EpӇw|q"$yxIRzã*g &Vcx5W)Aja@#1T*&ѥZY{XF$tA5*_aɫ(FxSуǔ:]ŽA5Q]\ ;UΟ}Z:?s`rg>Y,[?Xm|gUA3C,P::cd*Gͬ`YysF}F:żo%njv"DеˎAEiX0O?9QNXQ-J> nTRr.mjrǟγ8,ΘhүR.頩bw\KY.ƩxcA͟dgRiVIТ_x71I5=fݽj*y~9]WDO%܀h.l]ޚ+2!Ii 0ZT 46p:̑fGD+;i> h};2;W=ޜ^=r %keZ"kf&vG⽓ݧU1Xlwdį&ahQ$,֗d9I^`FV`d)+dzWzf;x>k?7}ŷR}E^n"@}Xs|ۼz\?is[h).PX-s|:[0Cuͅθ]3tߥI¦ ?H*fjX?5M|A/f6Y_e1SCE_.l.΃7 : sI (xDIۊF-sLeėWݫظ>}i5KP(*sH7cM9tЫ':3f@k"Aqz[6|*9^MϒR$q@3^81w "d:(~O.,kf 핍Vw.۪2#od#s-4wuCU*MkYZ0j8Pzmًq)jcjFQ)bgʸ Ӝ)?O6,'nl:K9Ĉzu[cE`""h/,@vfSwu =抷i}hF,45evB} ng\xZO听jjpW@* 8  εHIv~cӪG+j<h-+FOЯ)5n[xUi07Vua\.kqpøN*VDhO6Tg@1yF`DmvEujEMSA`NS? (τ|+Ao8 4^rbr-ݥjP]*JioMA4g \ݬtr]+[ 2WGeȸk3]Og÷ IؿKb nzbB,M'wIؤu CH|{ppNj9!L7I e{"ޝgt7,BBeZ󠤯\ @8FTO.PaE gv$G$BLRi$zwb,~n<ۍΦ $R; IF^9ei w:qA }G6Ck.Ng7 [btʱ=z.plϟ{^gGCznl # 6O[w?; IPd.^B\e뒑F֒BJ0~QarFղԄ#[9iO??`G}?xvtG?-P_W:U>$"g16R6uʹnO]W,mPf=0"gn$s%MAmXXJݬϥ2ls.Tp "hÙ \.MEq@?J=<bP]˿n#)?&"e OJ.]qIߡkǒbP&ۢ{rkƂꐥ}+S_I 2 z'ǘ{= $^4wşJE~&0$^tju]u4k5[nm!B\M]s\ER^_ qEU۪NR]U(FdSuՐpPWSrq2,_ϣ6ή~Qd#x/e;X;!"k${sRcw?q_^MݠF2-΂c2FK7oѻ {j M'2G=Ds? $+Iy)†K躪]|ej6{㗰AuC`` ~"g<CKB~pGh cLz 3@J^^Fg`] m!ēkOx os}_q|I6hMmiPzφX2ϊ{n}Y,@ХtiZ4DuyҨbcIxH#5 \Tւ9uvIİX3ej:d{9QRwޡ[Wؔ 62C:158`_ ϴD\ _>A=KGUiKIegUJBhHzXыQH1īofOFzl*jQxQ! UkWQ" ͆"U1bT5dR>xwI?<2tK;1 hdxR9;a{*i^YAecOñC.j4[#C~ܕs]/%l=tɠAi* }.cKeZB坋!kgc΍$ z.liy(wf ƍV縪  @b= 񳛁TTӒWnѩNYXdgwg/NbCBK@W 1v]zՉOY?4V]:vݪ5hQj7P:VFP Ffodj܂i"..2]˴W1&E6FNDWr-$g ]_ l$eI-_j=1_J4/Hd1i"ыTkazw" r\axHs?H\Xzo$[^x0 ~ƃwg/_D7 lFYvzi㐮;pB;P2sg -i ZY},? k'*/`=*nFh*^Y7Z%&I9fSZHL)WZ fX ;ݺNֆݵOB5xosz-_ OɁhs 8<3AC #yFӢ݁Civ`O.$d\l4< P" $Z ;yOCA"HB76Z>2GIMhd=!)yeKtO,*'a<svix+$("@#d| .mu@VGG2O`61%jU:-f(n7jܺ n5쁾C0YPYQ@ݰx{wHaE/K9Zd{WǙqF-/-1^ )Q"O~@n-`(W:gY-޻< ߷PdpK-(4,G{y?TdJ]ll6,FE@y7{)΅Tk&efWRhN3?lGgƽvE0Bsʉob<5k^]#Z5OZz]5d: zYuV{ g(±uD'i`>LG9={vTd'&|gO=4+_+ ) /F叟\+W$lgJ>{˙|"q{rpGU` QLOz^D{fB #IҒf/OC~5ǝ/a5+,uR B᜜lnip>{N w~n[KeaPfSlfhEzIpepEE暆pEtfV edOJxAW[5sJ mLY6ya1! CRn_BþO4$轲y>F91ڧ;j|U "y){Kx(zAեA$ލw&=r">˹"wP*6.s\=bΨ"'n 99hik].\FhC/8\||#LpZ\wbm2%wn6 cgE[v$j:Mv*H.71"Q Q͑jTYǸ‛.@z .cYR"YU?kM&2d}x'{?J!oGnzi_z}T@'/6zswЕi7!֫E{C+>$2%ku^pJ:sHNE.xM3)j]93H4ŒIhXLyN()9V {nDJ*IlpJft^#&¢3KH0 f.;a`#2ed 4@~鶫NEC '^²$wOޠ^}pqw0hnD,~^Y'?Jy{>7hEJ>_E>4Wa8wQ”ta%>%4#4 8D_MX"K7#K\N?إ<m ~IIX6Pws~z=,6 a (u!3%/0zUZRcJD1m"3$&%u07) 5 7i}BN;k:R z>DZ[u\Opz0|M.iaqb'ޣI_$=A?J^Ai-oϓR)3;I'L.ߘ*ՠ6n-N B/ow= ߡ1 < IuT%ClhqZ 1 {/nA,^ZN=]4#G:B%ۻm^,iy|ڥX5.5%E^:U(4r~n3ЌVh>F8g@w>W &.*r{N.3m f5_hùM juN&Z!#[n")DBѫbjro[MyHn<̌"ҎyCe$Kc;K48Y3%> YBcw[R54+"ݬOCIK+ sc̮C؍le핧@[v(#[vin@ÿYv9E.*KL)$CGsJw[[#šk0^;WC -#lYWɇ6jzR`ɛ˂cvb]s<p"Ji"J:X$]DRa w#ze!qŸ#{+BZJ#ɥ*r]4$w?kck/[N Z^1,ný(\?a/[ת:gh.7.>D;v`:{(tWPDUMnʗ<-kEݬ.^alo߽͎Y᱔ l0CQr]t:=EQVih:\AEՆj\%H;0j!н 7#r0~8K;:}m2ݚ[ ہyjz@*\VUru BG3sVP|e89/Z5ѱw9D!dݎJU@fG<5pMWG ۚzK7kVts@.5"̈Q) +,ͶJb|l{^[>Vh 0JLUݤBHu̡V9; }C*U4%c;Bz%rK v\6`4i Q}SR\] O]q}gJ+(i6ҏhLah6KfvO݈zX$M %Y["i6CuItyd#j@ qvfuId tEƷm"gGh>u9"f%bIt̓{9I Nb= 2ۧԳyEX75<|&YK{ysXh v jC&l,_zDI&]0mhk@xutҋ($!tv-vH(jatw|hyH=[ٓt(~™b߻4%H»7un!MCy)ˉ0?U4 &<񒻛hX=s9%#'S%M{\=)Il 0Cw.GQ/&81<9ײ!񁧀05 ,N{;RRA oƆH⫎+;* 3RQTx|'ib k/?:UE5A>+f@RҪyaA<\DMnRx4;z T Q]E>ɲF j:؜b)T, @#M@4OK-\YGKTcoG]wAg;у[ou2fmQD /45[;crF́B%rUkx SB֛Y*N[} Y{*%a}.>NpZ3*-`&S{Y:r,'t8DR툞f NKfɬ1m#0k.t̙$O IED#ג [Rܼ UYS:TY2|tkm3Ӗ IɺBx7)dlnQojMd%A??KlbUt5< c6*dz^i#l5 31L\4{ ZIK͌z?1(XyZqpe]P$x0$u$)!6.J@Ow*jH~ஔbF9-]3ɶ$l- -"@^`c!H7,xbDC 7R]:\,Q4,G޸zO5 [-E9l' T8CƦdZXbyodҮ\q9W&- # ^:>9nz){BHw5S0@q\#^m^Bj:A8)N'yDF+ )>9VE8!2KPx-3.}A=ۿy{RI[nsIt cEQ81R,Fl˥DqqFOR.V$ƓNW7$![8dLNHVwL[Ui6l45\ʽ;*PE@>B32j*2T<8 8XUi5saK(3a%ړK\T ZE)}t^|˳#j4|Tgvʦdsgۓ`qpMgvI%PꔓsYSi81==DJڰv&ާM#@5(6= {"ɀtN]gR@N1zL8lUJZ%-#~M7af^ k]npe GI³^ijT٫lVWFC5Pf 52VɐN*ըհj|6ߕG-Un-jc, ScpZH` I!St2U(^g,3F$aPnRSm:"4ӆeA} ^զq\o{c҉2e2 tFsaN6rqQ2@Ov9˘>t>I''P#g_A9~:1 ;9ԜQMK,j0L%ng}ޯ9Y oC p% 9x=K}:lcQT;'JіޙKJGF1hc^tE>V I*aeTʠl lj1E# reT)5:3!/`-ߥ N{7jVl ICN[b6Gɮ\kP>z0#Q?_iZ*|Uz cUZ ultbBr~W4lΒ(Ɠ=-.By~P_p%׭4 oK`ɄQ4q¸'Y<';zv&ç#|< j4Mb&J"QS4rnVvP՚*IH2ŭFM5G#ƕ~O S8F?YܵO:bBL[pul-_`V~~gRlP^Tyr;WyoY.o%-7`AKԙI7kG`v> eճp ,|K9x#>Zvp֩% /Džx#Ԝ]DT-t/+)CIR<%x*ܖ^SUr*{ظs;)p@SCl>k6;e8.WHau\nԨ٢e0T@^d9- 5I}mS8C)JL}?Lg# pϡ&ӎ:`a_A*JׯjOp.25` =KAqak+n]MNn{Aǯ{4#mD8Ly ^x!?`N+g'xhdmWq% Xw$~7J:vDu{{[^ G|{fq7iu^8< xYl]mP}=41- %ՖzU?zᏅeUFVT }fy=I:vlNs2%)$׃ՓdGknF4="fn;1 VtD"u3m;Őz  |gzڭ.w*/g9f>֣3#ŒLO|a2nJ3 QeȰ6ih4{Wѝd=4-ԿO+Vo+_DNsl DgZ_8ϒ>Ӧumlڑ' ]Jv:ϔ)<i7GtLrߡ[zG+>FQPύ*U^isקi|!@7HJp+Urw$]#0ok$/3*g z66g}= Vz88 lGٌFo}fZr$Rrץq[)rIT 76~^,xlivPo zz*eԪqSW)>5G`j*pɜH^~3Y9QZ0!7^1x G2 ]HI˾8/S~i3yz۹M?qKR13_;5MR?KC.w\9Guí4 :p](4X͵SO  *')oę7zS[ƛbFp9.iMDm{ Wda ?at'aqNcShl6O:8!^^(z~g !hҖ'Mi:Elz ]3[ NYZy\oc5TݮUTG~\vC2kFC S2r!h"-bl2h,I +cOw j4-!ۗ?<\3m!5klOsy/kP69Krފz/Ȅ4JsI azpI+ 2MIr\U`CILUҮ4 /R ڹ`jU^mOe,sY|Bƀn%i r 3:bYӖ_ZnH~ *gY0Ln'_3םvONy;{8:F~)GҊve)"0dQGv@o5&9mIWRPݙ:r7Px #G[=u坄cpiUsKǴMvA^mPگsNw9sts=fGLxe&pkIkIVZPr8xyqY@/#Z7xo,FH/p@hQc1;80hOY} -K&bKS%t&G+&9S_?Z:^Z>힪'ä 2tdG~Qݷvp7} FR 3~]B$V`3uBl_#Wk,HQx$-c=yG^ڙAwzHie't'\eW<^ \2=j޳yFޠ Kz } 6 aFYIepldKq̑0;pjKĈ=td9{gy\RV1 I~?yFKU>y2- nEWaBgāzE@В`}A5nu{jfkU?Jnʐ8rf!&9 ˤmD.!|IV@og)JQvjN;v6O$=bz삗|i:ԟpddabOvASX-W-3-*.6Cπt[LjѬt'RkUqumH~f,{2WppCC澬1ZCi+M<#9 'lܺQ?ő-={l ̜^OY e_R9qKݎ3MJQ,-%LF*N=IUbT;҆ ƒ="t̅ԁu$SeX'SA<ߎwhR2HIG>Ds^ t@nb[;HrF~FғR^}%-\ }1B4J^WS,Nviɴފ0]JRA>& j8a+S /6w\b/rI\$X78蝩cVDERꞛɏ/ Jw[{[L;B8JnDS ZVU##7 F`뭥~[OẀT`]']qT07G4պMX8xzT. kfҮ2MHN̿mNf~`r;>~]+dbI0Q76<͠܈ՍDEKˉHh`ᄀhdfD7 .$A\VGE 4&@:9O;ov|S*N9+yq($c4sA$olx4rSGSkd}&x?!c_ĵ,.ləܹ~Pr'\Q.Z-{U9vq:ZkY_뵅CZMo e [ZRzopI%︿O\$|ƣ٬kZ~kV?w[(f=STd/b|icGt1dYjb!o{b H_s#llPOI&f΋lQjs[T.OR^sAZT:𢔎:{K Q6Bac﷡*Euq1Fi=~s=/_rqdl;Kan>@qRYA;RU.8s@øtqa?Sud]6q'ij?Y1S(L&|Eէۇ{\rB767 }ַS4wҞ 2rU#-a3{96'mU>i(tHYD.x(>@4+BA'I!vmx.7bo:נ`ncFolLJShN(i@gB"A\ wp}x1=Ɯ{gq#$ !A`7|@ ^&* X&}.E6Nʸ@ٵk]H!6/'M3eL^&yleTƟ.&wϲ|U8é<}CN7p%@z2V+ΔN~ߊj-jeNIGLWOn.xv3勚kedIȊ yl]>M/ ,t^>g)T6Ƶg::s{ۣlN7.$ޑwyHbT ,~pt[Exߐ;&Yn0͹ Q7]4ؽvGzViӇkx2MJ(~jτ|?lGWٍvhER Iq"D#N^be+v>/mX$TvHw#\UěxL?Y8!DlMg":DENDff)lc4 qRAĬ >{?{'BE7ϔxoắV^A,(Y JłdHa~G.&0|/evӻP ut!T5L#L9fym=\sad=sw]v\Szh4:! al ~IiMR=mcO,Aˑ:2]Hc(' LuѱK&8K&yzCJ/6Ġ̿j|>8^!.<#H~!^أEܵbaK  ͔5(p%}X{5-4׃A8 Pd7`9Kyon%|ڄ$ɗO<dZ96_ *ÕE8;h(ڡpz佛G4? Δu\,ig'BjԨe >l$X?P}kZ"~#1kv"è4=pH$/;&7kdțUȿ:If8뛟?(j;0 bH]| S# 0s^t-:E~5*H\sVi[UVci_.= HN!q OəK oybG/XUWozoȾM.%#_>IюVi5cV{ӗple o7,Ap$Vh9k  χOבn-sY:_6dE9?2 ։Iwo{< CIĻF=s}x|.9%6:!:ǰ̀"H"·2/2vڡE#sz?Ֆ`Dub锒G9l,,Jdmg9$EGE0Fmy69JTL~,~.(H[&dOF́x?*Nwa-s==DɁ(j'"xKPu_9; w= 93׾vŹCdۍ&U8T]왢z ȱ8ѣ#I>M݋'dϺ`4ZEF]](+7>m l"aqidGJkZg|qr/sCұ֖JwW[^ I=hNH/vgƒ~n4W4?uB59֜|k3sUѰh_ちr7{~i}f LB5<|] wh/'A׽bwNy.Fp:e+{\(t&)=D dֳ;qYKKgqI yyYk@Y IҼy: :5=HR{y 7ACto&no?kcב-ޯ_a2)YcJm&#Rvr28 a4 ֪ڏn;s̙X$нksIcMWo!@A)GV!jD1h)(!jvmxZA"v1Nw᳍e y[xFLb9mV,oKH㤁76Lo,=I;`ifb%:;~NgR^NIR[w&{ƴR|(Y,q>#r'֦#mHeJ-Y}~q4$p o}zZlb*yTn=&HD2}se C"|*6Gmwc/?e`U~EPNr"o8<chB]knt4P'I#9k%|‡ip^jjM`b]3NH M#a"vnv/ݙi܉"Ƿ>Z3{k9}agM(J"RE dGPN0b$U3Htd'tu.dAI9z7nH{ݷ7Eo;\IH(=]8p,jZdp4y; W(*|{MW陼&/̲AS?x*LXcn{J1ZV+22-՞UlL4:.:E9 y}}}қ_Z^ZBC겪dyojlY:mIܭҁk8Wʥ$l5o 3L@as@AM gx9|Z~eKԿD2gX*֠靵Vu05œ.iR=7 )y#ڭ9i V̈+㿶 &S6X <D#\/S>[_ˋ4,5qTBd֔՟ ߼~[.9(cwUkܕUQ): Ƈqvm!mu@|!ڜ1&lzFKgӱ{vrpLqsl {YUVu ^CfPBzeɛDaQ]f5Zݪ%f㍓R5 qXX5 38'Z?L;lNUj^w.ʫ֯rXrv;LwT"ER6Rn~ G<}..$/W78#ֶ|gC`!wJYa'Ni oXefؖ]I=!mvf}||z]VWJjz,҇WkZ·y%@qЭqȲ|ʫvn󎰙9}CiZt-bZ7o%v﮾gwӝZaFҍ_17KgJoG͇S;-ۍW/Ry~ +0d~l1dV@3j;"lPBα?Y }#k/_3hn߽[}x϶̲JgDg'r-/QNƭȶ>đ*J/ibeB#՘)AT嫶6D v d#mb&w*.#8A÷rdMP }]\>/K{ru. |e8 f.MK9GvǗ>l'/V}QSɪFޠ?ZץC0H PGferD;%Jn+"ĬdE1ZkAf- HɖdWDքq2+ĒCBR̯ `'F3`0لH}ObQw~W\|_[L!WUDP^bi&9̓u 2aqmɖ׹kݿo ă$E5rHVtlyBp)`"#~ע WK K6s\93#m6"HXJ9fƍmy_N- X@8A-o]e# 7&Wө! cJB:ْ)FdASHO_gX^uEjzU#j)%}?FǑVZ6A1"TuoQơfVib7NIϵRZE (DxKwbYnj'w\pkӱfZ x0)lΐ,8d]<0n%DŽ` wVKnm5"ˉLI[[gݶ }yhؑZz[f>?=Vdf ǻb%r0%d͢`,@?0c`0fJ[ɋ0-\bMefG(70}Յ y-Ъ|SG̖p{#m6x 8;V !B$!*w+C+wPT V3 Pf,l$=ZΞ^hxFaM RhS42M)09Z--TC';ĉ*y 9 ,r<A_V"XwӆBj#o4䊧͇WQqR[ 5Glؽkپh[,DxP-Ξ]T+kdG +ݻ) +FEz k[;r#ͪJ1t!΢ ΔU:\ ҩ1l$g^QGk*"?vuh;2mGH+0YYi,4P ҷGߑiڧ/OΏ_na.25?N[ aZ]&Kj7NxFi&Р}+-n dQMy 9<$qȌsѐWoU0A:KŰS߸|R^e>NB>~(k4Z~4#*M`Wfߧk~g&tR5oklnB&x_kg ߝ4*0yX7=2 s JE؊$K+L8y/#nmTWn|v24v9mw73-roxs-4C!_/c<םw-hjU}+CVz4KIJ΅fŕAעO%V&X5Z 3 !SL-#d5P]Q<|hJ+"՘r+CPz;*% QSVxGaq7QoM{ݽ vZY+7=BڡW/޽<~}8Qvg{ߵ^E-{/3 X[yAFRYj:mTaM9Mrd&FWs̀uon6Ga!J%@"tt&Pߊ nZ² ÖBΉɊSjpr:0! R|", KCz{+fր&+pϐ\rᓬj}ZJd&fj6_n,e"62" 8h04O Jz0v11fhYMgBW'_tFw_p€̬čE5fP7d U 18|[G?~KlOZD`aQg___~twmݿ|W5EϞ]6 B) y{fSMqy;H44Նu4"ZѨn|ecF:eK$ggeb+~)5c-wrÊ  >>r?{_Ą,_ yorʣ? x;_eLO_/ " PEލʅVQyj3ޞWut7*섎c5ƂҎUȚ O;DܭB2uZkg/MOQu2VP^`T+*gYϤ7 DWKWUgU5"A>~v޽_/S;jh&iv]E4d3SʀM XMYz q./a"[|q>\kJΞddT6\w.Jo\Z:3!l AcJEekO{6slb+u`P8X?·iUxGzKV=7rgyܰeng\6N/d_N;+18!0jgBhl +ڍ4ˍwt7ʍId DF1ӲEed$b\r`$m[mnĘh|3g2,pdg&WđF'fp5y_>#Wס8lDCyVDn֢ta\zXiX șPKã 4-*NF s EEAe>_oϱ\0YSQ9$ʅ*YY"kr(e"ajնJ(ր8GK rc8tP6DG`UW*4tw3OS&DVDf%Sl@LIn܁6;щAN v'|*o2(py˽[d* ٹ1R4hicbᲔuwNܝ=}#Q"փ㗖-cцWWC7H4=+f甏_(PD!jەd0 55T/T%ӋU mj(ԄXl[Qen%6dg} 3aYPn6ʃ@*gr/3 f]ϿcQ yVD7g~%Wc 7O.bY`]K^V],)F.>B1C©rAG'lQۗ}dƔSb^^^v1y)<Q>@nβ~6=.4Օmq'KYd0SPFbd]Z)3ŒZZ%\d+.qẁ M>(숒Mn?~>j9:fi@C _1uOp42,ˊ܊9Ygfj/$7o729dv Yә*ұ\sn5ಣQ,[T5ѣM(kPzԳ }`)!;־\ e0hRyڗXq2;шHWBEUE$u9=VڧM&'7ZW\D/n9b,Q_;Opw Z恹|4bPcDZIia07daZ"bWbhl+IoAnt)Hl~[ EKn͑ahyկk #U2-{w46I^ݸ~El/ѕ庞v(^3{@Q(eW xaqxCT]os}]ómt ,Pq{B׍OFԮW#tuw opvm4۩W?el~vR!o鱗~X\*m88Nn`"ihW"nϬ+QmE/@}4:opH7R>L'ha,kУȜWOUmYa}|ܰ?ϙ6DL@sIet4kbyc, ?Së Z"i] !WR_ IU\@ aZqj5g\I$/2AAb2Q%3u>|,#M# h=߇Ѩ ×Ast,}[4Fz| gVV'ǥ`'Z4M=:EmMLX)NjͼK:7---*ioߓgE]G #I).asR 5BѻBpE0gb1>z' c>k'?5/ۼ]lޮG6mlʧO&y^lp=s15H{H@IO3>{VJ%󓖃ؙ%1m،4,ȓm[>nk:]-ʱ%& ;]͆rd6a3bV ,` CB,LqO]|O>u$aDG۲C&i))!mɂH~p>MI`.=+E-]k꘷la9HY?GŢ ^W#1C'~ Pnwͫ3*uV0}spg~Kn.6o`!5^䃜^x!:.8l͊ɐ}I~U[u&2P[Գqo$6tb,!G!1 |%blxY "eQ't}yLyjig"3 p[D4c朴5`~?{w&c}*߼ cG3f}R#Z[/}9Ɣ06yY냽Р} &6|+OvYI3ޕXoa^YWgb@??3'Bu{kZich(& c'Ǽڵ +4΀ @h3fW2{×堜fTյ79?W@dk+v2DSYLV4Sͨ}f{5$1oz;a LRE݀4z^_U"L@l&$zeؗn~wosV8nh7$[Tq"_Q>Mj{֦}Zf(,#.ʡtٶm٘K^1尚I_o8 .۳- 'u6fAO"&PRs1CQ2=>t~X ӌ3q6sdhղ"ՍkVnPpj<.iY§>/2 p|&ָ.aeas@Oq T gXS%ljF0o{Ni7Q[m}D]NBUi(g@u?>IZײ`}man7׾0lvYX7HZ1d&lT|L#u *7<AL %PkǵnԖ[ ]r-F;|Q[_͐iADJ0]P֟e)Gˮ٥t4+E菍dk"c??Os}Q___'߇1"oQO?t+_VE;l`('Jp:;Әn4e| Z7Zt^ $MNoT >,Ղ%B+|Xfo%hS6Ѕll1 J-a JNCdt)fCޙS\;\GZÿBy1|Ҫ];s葭M[٬RpEZ*ZnQ3n*~`(4[o֑™eޥQAJ׉X;`UXw9ql@ صjJ򢤩A)%J7_8yvyN"5[ZĴ( 18b s}Prlm(Yiٵ62נ%f5x| .ȒAM\=ړElݡi֡.gݸ\\]z $"W>jqtj9,/g?@6G#r|k{s4r{Ě*>TYD0 +_x.;xQjHj06& VKVY9_1d2gVaZ`bp-w]_SZs: t a8JL4@C2,:dhX豟:iF