summaryrefslogtreecommitdiff
path: root/drivers/usb/storage/debug.h
diff options
context:
space:
mode:
authorAndi Kleen <ak@suse.de>2006-09-26 10:52:28 +0200
committerAndi Kleen <andi@basil.nowhere.org>2006-09-26 10:52:28 +0200
commit3cfc348bf90ffaa777c188652aa297f04eb94de8 (patch)
tree8908d6a5a61e54ab422ec7f4800d6ac591695423 /drivers/usb/storage/debug.h
parentc08c820508233b424deab3302bc404bbecc6493a (diff)
downloadlinux-3cfc348bf90ffaa777c188652aa297f04eb94de8.tar.gz
linux-3cfc348bf90ffaa777c188652aa297f04eb94de8.tar.bz2
linux-3cfc348bf90ffaa777c188652aa297f04eb94de8.zip
[PATCH] x86: Add portable getcpu call
For NUMA optimization and some other algorithms it is useful to have a fast to get the current CPU and node numbers in user space. x86-64 added a fast way to do this in a vsyscall. This adds a generic syscall for other architectures to make it a generic portable facility. I expect some of them will also implement it as a faster vsyscall. The cache is an optimization for the x86-64 vsyscall optimization. Since what the syscall returns is an approximation anyways and user space often wants very fast results it can be cached for some time. The norma methods to get this information in user space are relatively slow The vsyscall is in a better position to manage the cache because it has direct access to a fast time stamp (jiffies). For the generic syscall optimization it doesn't help much, but enforce a valid argument to keep programs portable I only added an i386 syscall entry for now. Other architectures can follow as needed. AK: Also added some cleanups from Andrew Morton Signed-off-by: Andi Kleen <ak@suse.de>
Diffstat (limited to 'drivers/usb/storage/debug.h')
0 files changed, 0 insertions, 0 deletions
.=E3KWps"#+ sk%|:#vMq}|8ZURP3DIٙelҩ] L`WX4$(RO!^2bW}§8o0 y'JB,I_&U]_v ":AB}Iۦ~ݰa<'¹P\H^\)_Np,Ҁux ڬu9VZ7 Ơ·GJE&fr"cX$$ ‘bFoP͋0D!$i4#KQ/ RΓ$=J jȞ TEjg IH"ˬ@avMEL5:YFsOY.1(MP>ROn&9(΃ý$7 ,9a:r 15&aL8ec;%Bm^59@hwf:3wV7!o>]e-NKna%6BZ?/@sjuxik/SH_Uh?Wo͜G>g(S3sL>Prڌp7Bk0am>Jz/t'|xos᛬\Vh Xu,! lE\\LܐZll]hzlb]td2c'&ٻKVH9=>W^:B֡nptlGEKHSU}QC(:05cE::_&1le?elhcݻIϪ9u.-Y*Ъ\w:Cw zTzesOu `)+zquD0%'5fe6Rçkx4Cϕj v.϶7^RJ.0NȱwR[krNwjUR`EXg+ uPE;ŹpY :oLǿn)ܳr]4U+%WjhxLΡ_'"Y<e`hU ]8j?e(\-;v\Pr<ϖټc~^7,ⵜX+&j\p%z&|cOr;|Eu(G)EsVlnidgHNA8Ä(]D%R!7&ť7V5ߢ!Rnbc]0mU[ n\eIŬ_&s!loExaY-aU hjd>9;7#HTLQ*W5[j"0{O{WB<0(WM-nf.$nDB8ĆQ3f\ QU 'lh5ZmU(jL` =US8EVLQN>n $4B^;!Rj 8`SM/,`饽 R!ch]FN+q.I`p"* 9c qq1[Sbma'QwU<&a"8Yq<[~d۲ hi6؏]koO ;xr)d"%"m'N2]-߯ǫqyۓdjâm"dd37Ec*5/}l&E+%iGElc ڢl`T2ti(x.R399tkUqUQ_'=롮%)fM%v nN.ٜdlHʚAU-pUpkڔ[Ms֮xS5Q4UӞJE p#sdnHH*oc;ҍe9?lGi25#,o?Z(=E<-J޳zV]Ů6ArOk\l5ynNy+y/Ǯ2^VKy氻&ﮡv]{?j5>17q6qnfǼZ> yQxCT FuH>* Q)\wrz7H{8δN4&^}|b`+l}z`6'02jP. 6 -/OQ`v7gL c&N1f % EaעHu`,>^[ܮg /s]t#_ .7g3\vؾgLnY9lvىJZf\y^yV};;ӈ͟} Vn-߈igUX|3<=9kӣ8z/h u s kW|>7X.+{Nzf[O /eTNmvyi^Wnm v s^;uɾI&I6v6޺ϗN&Mnw {ng풟]#W7M9RKs\ͅđbg ~ xDu +LEY85 o󒂘Y%n˂;oԈɏaZ|˻*%…*Qz)ae}5Mc DRB|4qCsQsBzjκDX *{LʕZ3v =?1K*\mn뛛cH1VX#w·JxA`U1TmƬEX#tcY"1Vx~OUs5hv9ͱjjQ(rmUUi$Fm$KmI z1@U5Uգ[jPUSccdh?x1.mLV[V9&I3)uƭ$dx:tǦ܏vc%bC`Hܔqlgq.$@ ^4Kct1*V|T:_ddЄ J΢X#5ǫy($'B*, NnTӆ{՗#= 3RI$I$P8a͛UԷu[~ Ad$YG/0|=GT홰̬]\@@*E,<ODD`Jd tbHf&"` Jb(gȘ.?!0T3IO- BiHS,@N Iv_oVChIp!{zm<6qt?q2];Mqz|EP-@ђ@51) 4۳+',ӧ#(DO $z'{t%T~HHqIIrT!C]>|xHheW ?;HJ<~S&E~txT_JVwϟx%>+{%80 )^>MM_ά0<d հu9`(ѓa1¿>- -ъ\&8Wu=(>Ց`59B$)T:տxӎ6`oĿ)j ^P\?6!7BQ򶚷 Y"&gC;SCŒ\IoGmEPwv0v[! h(5f^~4  i:TF2\,ViϒΏ۶i ϡ 6J<ТAׅ8~רp,?^~RIer">W~-a`T:@"f௡D} S=DIDROzudYGݐe޵AfAZނ:#zRם]]P[x.w*cDCsf[<@7A\ؤ̎u@t9ĺxkJ% y?Z wǴC6BHvq p\^ %u1-}bJ qbk.4XqG^kJɀqE5徽~#HAVwuKRb[?GPjCv/GSWR};n3Լ˨FȌ%ȓaq|;<%%#f%[vOK 0ff~H͡~N,2D5{! tUK }‚id6U!X_Q|Guë^s 5kZ/{s{C M~Kû>Z¨ &;2ٗÕ?p: {,=V}1]Mz~J>ܿ|[ŷXm<6U(vQeeEotd/ܒʈc$QZT15Dtؽϳ5bpفkH#F/ճJD2cHm\t{e`QjΔVZǹM>`NoLt\9sSPwoݕcjG緱Q8j1e'z}o۔Ntd2an P!;==0z\P Z[,_o,އgr?'H^ s7@fXo{;;˲X5y/G}7;HsvoKvYvti`Q"95RW?W1LJdPTyOCuMw=Q&cFql$:L@r<˯Af aV|N5" 0hS6CEHA,45,,} Tke5I6K00 H `4`xn6-+pO|Cm3] QaaԈl isA g|KrL`gfj<r0S(j?xJLJQxYD&1Mfq"۔1 -$:`9?K2 FY ;& %:jjJ^[!8;㦑"GR%WH1F(by2 80R dx|][9(4 X$55[jMWj=_zߠpט1'K\}0sQOH;+Ć=6VIn!v%e#>=GmekF#ntۭ?~&w[~pb<'DŒ,|'=' R po?Ju=1턍e]slsta#z׿6h6_8wiBSV eof <6N\'~ۻ;zrczKnʙi_ )lݼtvٌ;ɮ=x:(1hwFiy~'BɉW=:tlֶ޼ܹssHwHn7dt^Q{5j=)5.ۚkhۣ5==cfTш)GPNxN7jG_ml6< j'`mPB|}Pw]5WQٟNeyqpw;tE7m{gEԾGTiذu;نh5 Xg㕫!ݝg˷JjqѵjDj^8Cc,:,89`'ի)[m}vgfοchBM[i>q҆yj^t{pl2>gw긆7ҩvC 9^:s3d!C@aNcu29*H NKIQͷ_G:egL;38D^&kŞg 'غ-`wGؚݼؼGxCNz s}&7)e;Me@no.`ŏ鑜zY[x`S#-&a"~n6|YB\8_,DY_C#8hFDJO:9DojWe׺<]m˭lUu{^r1aoUIïy{nD}C"x\Y:}yֽ\%b0X#ǻ:2%w 6zAA7(77Tn]KgDrȼVvogaKK㝨"1$]{猼+\d78lc ADĔg&3[u;$;Vw88U ހ$tjUf}Iz|uEHn#ATy@_'kƠ*ez^Kp;4a ڶ p"=vX&, W C7)Q6;!@7[=^~^_-򵮾\ru߁/,d;]ADny<#ً'PpN rˣ. ^~zlӬg'$A7hS'>zW.͑q(b-ה/D+_+]de HCz?BY$ \o8>-xWt#Xth(+aV$|"4NE5A3(8X e'v} (nNMD+YC:{=uus)Nmb:|bє]8{1P?z=O8U9 揭)EB^f~^鿧BSi  Z`u9̄5 u," { Q@{BX6>.mzyd9`#9Z=`CwuZS2)a*ȝJ/xM;\.ʐu:tg-1xޝP?=C[>3h ëo_F厝R x;b aͦ/-9K-S6@+iOϨT!qDDsl?hbP?7ü<9~oގ`o+_Z)o!\Fi?;)nӞp^lbвSƐêOUʙ z}+2P1==  .*g>>q moE~ݯ­bLa-0zKuauhtͥuFX+G6:Oĉ鄤$޷tWә+J{i)W1fA`._^;շh8*2qo% L)lħ:71i@QdR^`ؽ~Zux_s]B҃_xYp9(cg0mK_8;ͳpgϙ~ӫ?G7?GbUwIm-QQ_!b=`I#p? r$Qp.xkp@vςKCǛ59aA GA`?903=%M?v7E3MD4fƤ?n_}o'2b*]7DYotx{Ƿm_O<͙Oc!ma5yF>@;'}4PשSA-1}ÏrM Y*( UJx7[4 4k@ 9W^Zx^udGf⓶)mBlQ2zvioONXhadh ߇.dUL.uU'ߌ/ztƒ4My))ec\5k(&>ۇE'ltZulNp"g7b]rd!]4h\#o\1kMGOI^.ݘnXME!by" 1;faܗDE]͔0֕ԭ0Cp#oorE C3ć㪀vs TGTp/}|Dpp~O,qO=rd:59KZ܆ACWho1ܡu|4qs!wysZ ֣oB8),Axd:83r}2sP-Rr_=]}8[/`6T?~a e$HÞA:!(YD沝zqA! a{8Qt[)<>%=K1ᦻ#xl㿔V'uc)}&pj|8LUֶF#>H/ѵ*쮦pzxjoz.>:y#;#|xǎ.; *2Hh#NJ @>Z˜Uy|P_ߧCLJ QjZe֢~ѶylO `"A8Y؀L/:Ys9ۃ^-E B[prV&a oЛ=m "M'UnfL.: qCòR W"&?iv#'Ϙr1Aיɢ̬>W^=ЕkHM%e$c>qúh O/G cA:uqs\s$A=Xv6`I[NeX4j)P}SgVAr)Jsqsч};U9*%@o۶ܭw2?w@C5Trph_T᳄;샪&290$FaC7Uf#p`d ݶ2>Ck@?Zc >R,Q">:E,M;\2 fg 0dwtYLbN;DŚX`,TLnYՙ$xލҟ;ԟea6e"uJmJ:Z p]ko $(9Q`]gt4s>Љ`r*Hk X CsE'tCXHBJQ!OEۋXS>CgY6pkLZ/{7H \D{Wՠj@.ٛ@_]kE,k$'˩&T6B~X8fF;/hGIvM) _NaMnÿc;Z\: FGՄ%ﻘU_&_uּU h=6e#?p=R]B^) ]B"țW/D;'-^P`,plvwЎdc0wRQӷ0gYX",X>L@CfݠnJ0oiAં9j\cUPmIi K;QĘplVs\!S9xkm9p7j@oWa~ xA5ujUȤ~ Ȏd9^ <>#R 7)1m Vv2úBQUc:>=\׏ ֖nêBKN @ӟo1[i#oCsft8ۇ&Ij= ?JȠW(.ԾAj1D=Cvzdz<:[(,5kHo{|U%; daCAm!W_hU!s۫CtgجX:8lEIOޡ+Gx9%*L;ޘˣG S?xw݃Z(5$4ڞ\$jz# %Q2$!KU#o֊* S#{"*jv|)ՠ7Niz_Q$w}35g$"Õ~wͯܭq OV_^i9$us@?|N@u?$@Iu%!MF' X& ~:xB1ÂgPrH"J62~HϪZL2(NRqƏnE>g% "'AL{ܐ B"99iL*fTcgb0^ymP _6c+aѾ8Zf1NrԛFʂv<;ytT;BS9|~s"7[rJUrs%m߃ܡYs8NV;c r^>*rOl׵ zZm(2:ɸvֱnXMDmtS)pr^z4 g{XҼ/p%Mk;S|@(YYѬ=rjr:0}3#م3NqgRk5‰3TԴ'i㩖#Y&y8sz/`.wm뜇+r{ϔUQҎQl9lQx&獱w5&2SEt'Wv0o8*Kf3.a(`%?,ʘI WE֯Ƈiu uŸ$%H]'U,; O2`ꂥqTJE@%S*G0T6 v^&mU(MsϭabF!UHa Ǥ,]PfpCbs<^э]S#^GE:f˰~;:[!ț&VTm&y8ǔ!Dk al@-atPPI 2 ]_`I]js(kRlr@NͷޟnVij~/56`*tƱVDm6-kҊ !,e[h$]xf1?ڟ5 ? 27ߥѨx0V`yvf1bloKOf0J,o6];CZhy::lw`]f] \DBi~VǓ3sp( +Q],or5-Qsqr>dM*'  y䇅c룲>'bd U(m.nYa@aεD2_?Kg&x}7-10|?X8 xNNF^buNz[3Lw90uB2|_όizWn?ޛyjlDM@{aw7_v6۶r?Let?oĈf$A౵;8-ؽZJVبZ!g (hCB&ձn'[l,=4`ۢkKuڗg\ };Srq9#SuQte<];|vBByoJV|#f;\wnY]N.:d+U$s|[h IqҞqh%, Kbo`Xp:ӿw 4: .U cI k A\]('~"Ӌ*_q %p<)/OIrH7ȚG|WH'{=Xࢮ>KɶǞ0+\ 1Xa h3IG䢓fEW=E} 晔D}ponz+E UfFJꂇ2>l?"R2{ɶ |fLdEpZac(A6gF(T9k%M_&hߤ~WZR,*6Qc(BL`8%\ֵ3VIC"O "__*-ܑ**vLJ(ti˧ iܞQ+el U^W/J "VfCв5j2Tf4lw;qۺv6]pdm箨CE&hCq!a;Th$LxfmXxpJ1EEJNiXUJ kR7^W3]3YV댤fWKWxcՈikhE2kVa]FGf9rJhhfhpLlmfvs#}cZYC)2y]Pf$$H(UdD;z_C(9GE;<EȱH\Ԭ>_=Hazb!+sBVa7:whu&ω 6 ϿUq{VnڅK!VkU|99j-2c9U~ ] @o>Η2LE4L?ׇJw[Qn; y"~\gW`.Pvhh,ĎS\Ȁ -Q=o^JR`g#xaB76C0qn7p9ggaSX)$s.#=35Z,We"(J `2@vSMX3,|FrsJ'LasQrWD\д*`eyË́B(Xgs.ǝ0K c4$l?=Vxvm \h294O TYJIeժd͕Pl&iTS"K(݊>+oT];<d)˓ih!EmMNK.,rۧa9 Ǟm=is?mzy*)>2) |QHmT4ß4_k*}t}5&ݯo;9ĆTj-pʖ)KlfѶE)sz6@i%h"p6]{"NK^=fV`t k+q Gňk9HVkOh-H-_cC# ;K;AO<ԡ-9:!38 sT@|;vx6=@Ǖ//7w?.H{[ Z {XcF2dd&~ ?ht_R/ ``D5N!ZNoߤ>p\#E zBK0'kxx }xnӃˁf|/tmX 7\'Jɮb|wكK?)<8åBjjarYS( rS!8(уw ZZP(ɲ0 >lGϓ8`閧l`!>@7:s)~!͊~)>R9;$|gydV uǗF)<3𷚡a a8#Wڿ 6 BCߣ%AR$A9ȧYB,8-xU}>{ &͏C]XcɃFxICP++hٸ"!Q)^Ϊ+`9" Dmol`? 7~׮V:g7B2?(㒨>A6b"I@h.ȟ'/e NCV7ޥ>4'ݩA8X,xcwLGOE[W9}Eu.r=QoWJ7RùOO9?ǭ c_zu(}|FaFui_P֗SHCHS%{VP3]Lp-aL!, S*M,w `ɔƒ%Krm)УY̋TA;%v( (I%aL8Gcv.sHpabdTh1/̳,ZDƒXTMbjP,X(z!.r^ eFBE_?dcy;gl6f6F2{Nͳ C8if͚( )Y3A;ʘ u};L jՕ =!|Ó@ɑa~K4vԗg]Rr3M`jz2xѦh 50s,vPhCm1 n14 kGAqۈNbjݵ'l(x>/N|rq~FݥC{Zj)Fh*$ѥCҺP=9{c`ʼn׸>"g; Ǿ[`( $*BB #C%&[P*>%r H((?5Wb&N–$XLK9q *A(B L,lw͒w3{[~ˠ矟m'f^OQsK+geob\Ǯ㩎skkUYO=zdu~nM:;n%}A&BmHNGrZ+:4u׆`ރzr5p"$#sY;^(E˽,-z0k]g۲I(p\퐁H{"BAl=S7vjBͷ.ϮVc.UWDAp o&u|wIy=<1 eraL\$hbiJe!!3'\q79Nj4'ԯ.Ә'bPd^z< mFћ[[nP"$a W_!b/3{jWX:?ڢ#>)!۝|icgU0@u\2Ї^3,%[0d;?ypх/[E8Ϸ6&80 *2(#/zv:3rCKYA)<ȇQh+[,/ H m!c_o%+ ROԡ>Ls8Q:.x}/3# DC̓B~^ۻĦ2@s{݃3WL);܎)O?\caK!Z+Duj ?l@,||%m(W% D #i$i$Hy} "`P#>߀*5jj!ڏDY$1x7淌kO; lY/ן$:]~xhp9f>i|Ŝ6b9`ሟ2m?#ݼl~~YX5kMgQuƧ*u+ vKV> ?茲ij x?.%wF]E&-zEw/{-.\ѷ%Qϸm7-aw>K2wp=af+%%&J'D7+B4o~)C`!Cs+m`1Yr!uFy"(6jkqz,4T X(U iR/~,v3e$804><bC"MZQ\ ]bg#oɭs<w۾FuBi1*1dW9o%Ge};B]7E[O@d0Y(&~k ~[6>~6XT*3_#qKQtA8_ΗP kӄ")t^!\C0ryj?hq$ŠCf?nxW^xx[(_W#ưZj>ȯ[[ct^@O+&е枥ΓeaU5"N7b9gEG$q Qcw u3eMG=}Sa9ht* vN̼ăZ F|k ޮ01X5h^yZп(-a]GCԲxbqQ ?qk ~n=nC㳧SfAYOpawΏ4uX v2t|N (0P:NWT@"3wQ3Uo uU|j}WQGLEovWfo2Y#iY7?!nAAs=-HHt6c)N@A( }Qu5"prUB>M >pl ]Š㘋<Ds=PsXzZ:{+F (Y䒙yRmu^.;ci eAՕZDRᝎ9X/};e+ q#^ַ’a $/brOS]G2b(POѡlĝqeO0 -ADi60lh*ltzZz^oE#ÚFye-|:<I.]t~z!4ñÿwK"Ve"dֻ"Da D9O6}e7]e;:1:ß~3 EQJZ̟5R|QaWaL_4s4JN ZHL=U,!@=',f*eYs./qma@C-]I/PATVUυT1BuG\[D>w/J4d˛*OgC_7vA~!=s^,}|qX|H3Ex *Fؾ517u!p",bM}~aU_Oh-(^ 7"^E ֪O>׿_dMg\XջK+uIG$:zNZ?ՍKmdQݥl*jtWtD>y.yS"kI Hs3X.47/6.X.NFZ&T[R <30y'LVÁNs2U&psxm} ^% pQǵY ; } bڣ!LVg72(zK~ ZdLF kEpj/7IF\/BH_X)kl/ m [OF}xR#5dA׷]Ef%TA$q |.]'5\e)=-LŏKB _$`=+c.{`C}?&ф&3y7D>x&%5c4zW`W0%~ o6*$·8` "a>p(_jHz cR2x̦cݝ%4L2hj]$Īo%4R#Մ|ovOBQKXIJ jo;_MAD([\XYB2,kZ#Xΐ.dx|?O 8YDP>ZG[4~B@BgE9_xc{\D)1 nm'"7` K32r)K8?Ui)턁s! J??7D 4]Oq2BLЛ "UQj(e_Oւ~p:fP{s{;j*VΨa .sDYQ'=chE]PxU1{v,[H\aY@;}cK>[& Dn,xBPq:0*Sa`Nk7>d](POqhhHvQg]G#@ҢlmerD6أ|L75olaUDQ ~DĀ`&0}_ 0k᪷_y,|ph(6m^oL!gZVTO鞕{'/Zn \Z *Ȧq ".*DMȌ(TBN|XTVӅ}b]VuAOC"7z UUkabDf1GlYTM.~g &9_.{2"<:yPflwsd͕HntP{D#_I{z?׎MwTv֐z N[ySN ( s({R렘%>ϐh4'L31]6IBPx?':&I5EG/9\cou8J5!l`36SH\G"ߐ@.e羁N7kRn` DD=OATӯƣq<}_2#xeܼ ,L&#rv~;}46QkΔ=EQ\'k| sT SrSdԓiԷ8BXiR HMss*Ids>,^5ۊ`h08 ȌhzlJ>||*p6\%e*!Ux-ZuwkB9Vߘi*L4gC0}̀נX *- uP"{G7:1ͳ$|sĢX{_'ϿVspBdۧ`Qd:AA}]V>}l{'7<%BłNZaa}3;lakCu"+"6"Jt Txʲz7 ˩Ff.\lFtHGvhr)>l#)=Ev K_7Jm@Ħnkza; :a:N'5@gVݲJ|L$_d}N%Ju4DY;:qBw.QХϒz̪WRL<˲V7>) #1mҋ EXs.J4vOph{x!5G|1(3RݳMq+za[;PG]mZwH;:s8DvͶAa,#l-Ь VqL{<^=Ot9&g-j`<0,C3}>q۝uBV„W49EIn;{ԚaxkE!".qyuMϮ\dk)úfЗ~=3ȣ={7Rl[d-vSV6*hkj>w רcWM镈/Βgsy9͑z Cهs97g$28x>MͨZo33{S̹ 1?*1xPg*eBKh%lF (%Z(Bg :k fY_OI5 <L2(c]<nUSO \IR<=L0UA)֟kEfB#:JpI ݮPu/ދߛ5y|T6>dPJ8nss\n-xt)Πu @g1oY/N}%)O>5Z3߬+zKo>v!Y&)oȬo3f(:j%  2 7DRhb5>@:78rCLU"YzkZ[TA9rN|c=LJ]n8ztD-EHzi4T84e*Ne܊OrwsPHwN®;,[G;E!EEK(ȆlYde*;&ѡy ޻aK:,;N.MMO_PqդjpFw!X+YW2T}|yZ.5{cOBp[W#OkrH+'>w%x3_oni|2L[Q| [ž] 8#`35T 1\Pj@N⿒- {\VAfTaĐrC~Ozwb@l } 6 BP.nK v[^/1 +y B5H׳Y6CoFb,U:0 dRYB _s 7~S@|Z'`%G$s\GQ"84u}9=#ܲ PWYwT]umGuZF报M`2/6a@2Ļ']"0<#*7(EN 7;!Gۘ>\:v5hܩ.|q0(0."nWa#d}q& @j0xSދ>;0!|Ҷ͍z;zRig! i`m%dUKvPO֢󟙧=0|/WYj >̾-ڭ{=ce65z-k-͕㳙J',.V[V_&8^SC-cukW:#y vkNhs=,%yYӞ&.VH²#ͭޝ3To-[MF:V4/ F9 ep-%ryalcO^ΦA*b({OiKI_j8݆Ndr/\q JxNɗ~c=Q4l}8=EϜP>jEn*c$0=:Py9?ȓ7;oj)<OgLSws(+ɡ(77ͤNe7 T84H!@|Qg&kt9޵͖'~׭u}f D3TOwf xF// jZ> 18$mJaH!$eulgp0x-5#MsӎLtb2n֢j'D#nLX~zr߁yGPGhtmQ6fkynKGgB|1FBGtc'7xT 8sOTJ8B{?7%hK؛d e=MO~2 jBӡP%yL#ٴ\B­X/-f|˗۔p|T0;Hy(~Q@ 0q| uMn`9ghC ``6BIGLy OeAxƽ{k]a9!$ʰX,(uTH'X:>%% ,{/z3*ѼZA o?jH& A`0bG*oUA1 DBE ßv!^0r); `%J'ҍQ~&074]{!Ga2#6C䔇lKq=B[% 2H8~=]ǡtF9䩨_ ֙ kU+P\@k1=>6?O|@OYј7`QuFG7ca8 Q^UW5dA  N-D@uiApfOm!5mRkpp䩺jEՏ]i ͘f(7.*rڢپRoJ!A"׬k6dM KV,jηhXT 9=W{x{r<.PmR +"s"=Ԡb|-q?_ %dp$)>κ>|ԆturLX;m 7^O{n5uX\Q(}e`KjUA?p :hၞp^"5eL A*|& -_Bdhwa~m^~^ǿlpD#I?fr-Rmס',0;kGm.9ǁE\@GuP]ֹ縎r0L%#dvc.*=LFġC,˷rt{\f/zp&4GςHrsNu?*?SBN5U:+PqOBO$݂S`  ,7 ohJv@]ݸK]mѪ}PHM{(c͵׷ha}^p!qgknq||^5, E,P vQ}&oEvh&g`+.ڒV?'.Zd'hJqr͒EXv# PH@)& Q;?])lą6(`6nٓSlk,˄(n.n" e;FfulNxg5mKu&,Y)8DJ7׍{q=3/5]i[;'=#%68"tlؗ,zqSI pHΰ F_fZ?+Lv>bC7ʐ9+Кa j#HfK K~" Vf69uиqحT \38(?? d;,ㅨ`u]S*3T Yΰbì`Tm~{3>3)K|,jLd^"so`&ך&qGB{ac+O9?w73u+ICnS&An8E[s\.85=`crMӼ)OҖ|sѶ汵JaoD\ҡS:ZkhdsISD (h{[lS=hQYܢ#2Jì`&\(0TiGD4ˍWh”*r*c(}S9O {>̿ɔa~t8kS_1AvrVWev"|Nfߋ/g:Mu vfڣlu8_ɘ藢?b*6=Ί@FHֆG= f}#6?3]R81̲rǃ ^jt."\0&)~9#!枌U|b'.wֈ(mߨ܍9әcZp5m;./˹JJ>`]CwX4X =C^P)Ωݦ!6`d=̜Y|gu'h:CTȹHȎ"a,TOuїoNNHXF= su6q9E8J(V$|.n`~l9njcsWhn) ;:q8iLcUA8Pﵬ-#;<1rruۜ>㛦t[33@FY˰x;'& fPV/g3\L &'!,*ńcNvm3n+t7(LhX9t ̎ Tf;1/g3qxY7;Yoqlֳh~z['0n[}:S}9--΅J$L"zD<ύw~ zd~׶G>+0Gnq jìuO5MwVW9yPHFNtihzfX` zz]3W|" \8RFP4J<;\>Eir[,'>Nӹļvy2cM:JaI2'nmf`FvgHG &*;!̻KbJ5Ȳv<پL`)HIYywה9^u2/QY8ߠ.fUUа7DvN}dRdkf-f`i~XV?ӌKt&Ls}T#N⧝v`e yXѳ$INdD4ͱ @ H%CGg}J:j),58H=A ;KЋ񇌗W$Oyaᡶ!t{,g<90_ ?9i;?qZ88z^Ecf˽D`/Ӈ="p;b$BfU Z=O^ Bn/{FU!7u. nj{}X,أOGT}v$*ǘhe g5'ܢg]dr4؛D0$cjLP>bE`jչ.YXķRxdrz'Exӻeb߮3WfØ˕ޛj,%b-xT^\`ώo&keX$%!TeRTwqGnυ!8nE1gSȘ':5F,WZ~z}WY7Y߽Gd?{1,*%g~f犆$s+{K>2>p7]d\'q\U_\K/]/O,6к>rҘ'hl#z.. oCEw3?c .e1 ܎Ϙ}cCq QNu-)6̻Q(o灡r梴"]\G_p\/ٞkxfH4ZO K?$1"z5J2Oo:SRP~ G58x{;O _J,0vC =3D(*dHkG!u~wLuV͑-K4z=K5wg "S2U6%В843xG)Ys(??Rc ? 5ޥ(ji f#m YXKYθ0DHe sQBq70y]e(6E |INJD|C Uv'* P1e69ZȌӖ 1 h)9Z.,)>,S0lQ9A _Boz؅闷vjq 8O}۹իBĽ AirGi;Re" 9f#5|э(z/g>ޣ>+KX5^ka=YL\%t5\cF 7lj1Wl^0^0\C'>s^o|fbAC9Q/%u2g?"ͬda~Lڑۺve}s~~D|WDa0vyɯd" 2S2Mw}_GL$zSl슦{SL]BXİ!@"GH}Pv8b$b\)ײ* .LE]Gy@D`@ 럄D[X1aL.ce*\ζ秚ܔv)&F 8$?y3:9Ϳ~Uz1Ώq(ہd/m7.0Y%  sP,?@.7d@>cݐ~8 G?ߍ|HdOl(˧{Es-H\k郦4-j/jAO"bVYLe,?SQ7. sSݣ },|;(1(qg+tG6{_d/f kb\(""gC"+4h`ϵXl hT2ܰO]*=+Gjos[UP_fsbSxRr|"MLaڔjiYֱf\S`QEvCXbG,g:y*I傳cXxI,`dKe0wĔ=z^ ^z#UFL̵2Իcn^ KH\2I]*odh0y "bEڰ#Y!R7׳Nr;~~sV)}T٪|mmJ0Cgj 9xw6ZMh}Wгz5`G 31$Q&KKZQfy.Z i3y37j֤\j#{ƹ͍%*Nԕyzk/OS=&p:44e"2)&O`o)rmW$f!`7~pއOY:;?UU?煂$d6)[Y^4k.::-]]+_=W~Qxes܃A8뮡ھNq浇{y8p[ +xY}d D̴/um2*U0$6b*zU1]"DA%[Q5^_G5>y~Bx{čCmbs/ c1`_\(gt /~BY hP7(grk rgTtC l?1Ed I Jq ~?hu:١b bS$<%"4HPL IH$(zCNAA3@RFQ(_x$O j!>Cn&jMV+GI-t7dOQ8mmPd\=귢M ś|)+?[2gw^/]n SFkNk %?NB!ҫZFWu5gH_7"|)?5t} id1P%">h RJY2(tU0}T׾m] äG+thP 0!ap1̗j}zx?#8ț(ND`BlG8s936& 1>xx"6{dDBG~XWQfɾK =BAH\ ABCoi GŤ$"Sq>P@#B Q K2R Ed>qahNtpM!jeihLE<0K,&۹G %?jņOZ[O:DνLG}HX0)uMou؋j /?ɿ~6g>ٳ-scGHkh E\=}sKW :5ܗK'cTl#}vY(nyzxm[&өQzYܿN*zY6DC L" h?6u@B"_uˊ;U?,MujHIAb-j .F`dd#_l`J^Qܡ# 5@NoǰHz~% (+rp7-xw˟X|Z?g#liK|: }6uyqw/_8/Be};.} d.I _jvH%oۯfmcӥqݛ쏻>*jXDT JaC9Qɩ=Z怟ƿJM8DtdB"F"k?-$њ 9n4i! BbB|jc+Ee%l/qf(8OXő@G̮֭(Lo/݋$#J~~}7yj~t]*/ F)cu_h;Y%wn~F Oպ,(fq(}OfC cxg>uW V͢S* 'Ae$s5" 3m[xz~& իe>(8.GXÝHfJ8ޟ&#a ! h8cDhpZ/7ܻxv HhKPԥb dߞJo}lktohO=U eq}n(,px}єy ?&Ix\Yb( )_}T}G mnvAp|=ۗl|%%F^8n*m|aigT_V9;臃]kݞEw>͵K_V6JN`^uj z\vnge[mP*;2[Cwq߮C>:9"5Uܜz^.Koqe迂 Z܊x`y>3G%%+9e9fi|+qokuƹ%tH! rA===;&#?Cѧ5~Haȩ.g[DlQP 61nm.f9;Pb+۵gS?{]5}q,?zve\k#@JO1U)_D=/9%-)Pth&ܘ)A&IoB&4V;Yx|je&`{! s&%o{7sy)ƕ`Ƹ?H&v$@4~N$m?[qxEzl^A嶒cUIv]7geѰzNK\pk)rʐRUF8UAƮL [;GWP(|$]YB#\@P0G]:u֡[B/zfPcF*|#tJr+۹tK P ـHgFm5p<~'L,HH*JAVɊ}s `4\Y YV2-ḥP@l H42ȣƛT~O?*rY u.0JF(S.mRG]hc=C~_F6z:KQ'lKqyG]R>Z(+mnQ@-o&Y}ߦ`srnklgi:u0Bs,V*c\ڵW@œiA dbu uy&lmz%j3UAIiCH6??RA?d?rEѧ׳/wWRo3k~F+.;  `62;;,0m_ Gؐ(M~XA8߻~_ոPׯȈ)JGGq]n'F6s?['?_iNd\0w9) 4Lh'Jm ƆeIU8u5׭@q=zk%r pk B!}:q1g往*#IxpB N:2 rr6FψlQ3p瑻MuDA^AK 7`_0;k .KѓP# a-4@5"pwqD5 DCWLW& 0Lʹl"AL?lDvp};`hAvrÿ?ЎADogYLn;w-VsoV[bNLAo?% 1 .PuHr D!.CC!:%킏,y}ӃWHmC&$ "to`\\֗Ǹ7ͤ3J+`y,aD*ǡtz'sEXƒ}j"{}i9zebs d!Ӳ a2{niS}ڞwAΏe FjDUm͓p=(|Ų_@&Ifz7Uګ,M4{mVdycl͸f݆T˿>ʢZ׭9 [~v=>I8E;f:f/gp=,fɳ]%CG@$LBLJXyo`t}')ab;TztH*ħPjPԣWxB ``[ZlmvU]rjҨο?x.1AQʸq[\soOa dHt|҇$$2R&TRY:HUzPwUI!d}|;,Cz$$2hL3֌Dl/{ѯqv@O9p:ʅcCqoG3k(YS5몗Vƒl\.*}tj+!Wڞ+^8t?>GY0x~9&8"zX{ܴl?zEMŶNHJV5>7z],2)ɞqzsWn=+4$ '툁;SaW1.Y9m=' XZqNMv h̹R3EkEwAfpBDI`"[㋈Ѿ‾QXCmxZ*{"BBA8XN%ƴc&[uXg8ѼEEœɛ, u?a0UV[h= "X.%}a_,[ .:>=Fs_&/vprm;*#n/hҗ/娩jU Wy=HPY2+F~CY_xئR~_n&(}u5{4F/A'7:#(z}_ny(dLe0?GG=_{<>P -Py#^ 1sAA#xL^p9gq9{.bp@h6`}sЖϻ @^ʨbca#aLz*8C\^ONɊ(*B3=jPuw:^;,Qv -ʾHsxQΊ CEp\ %@ʢG */0/ ( Z2bA;&~{DR2f.'lX90dx[\cxjxb s& *B9%{Sl9R80*80|yB) ?Dʮ'<\=菸HkX `xDMT1\"H7נAr;4y}7;?=жb$_`A (kĹTР@P??wNYRef)BQ=W;/|Ng4;C`I=3~w8{`0F>^37(c7rZ Í-Sِ6Z)wg|{&+;tֹ7C#b(ͣ#<ɶKbF1M2a"\wMo[MGIvP})gMlw{<:szN4zo4`II0Q׀x*. T;gtD77֘@DA G>owO{߆[js[@NQt?^- @{B1 D0O] n᧺(CI`䃨:n-yvLYjp`I$?x[G /r&)A~ B1 larQ?fnlK◝kcV^9ɌnjlkpGxԨ7\ >_I@E(upW{3@Qe .Ծt4{\=9 nΒv&8뜖?_>u2xw^RXFۯa2pp9RL0l!t^%(|,< j*$24dМMֻ-jS &fϲ>ѕj^ lk! 㕖eI'jNDa]UL`jf5dR'a+vH[cы@W %즳-#HMhS6"NblPmlz FhmZ''Ji|阚LOЌ"˻\,zu8 n;w]f+1#2ݷ8.+%*' ,)蛌sno[JϢvLJ>=./߬`s!qxv&+/Β{LlQ.sgnmʉ:N2;5|L^I<)bl7 Ajk]ox,f'ae m5ā+ \;BbLA?{ZcP +fg))餶LP l2PLoS+35;Kì_Sw;Y'IWG亼 WUOȠ\j{(di%]OF0Wl)V 3`(&4[E+RR mx Bc3|-Dj7$l|Ҭ\-l]wfF!2JުL-tzUP]6fO#MwnwZQ_9\ ']u~Ĥ vn\N{S&NsZ f_~DI{iQr\:} l}I__F(8 @]iuq lĂޢk?C=ubD"a%Dĭ ) ]d!m~3ݱXFy*Ct af8 8`w.@JIU׎7`; _<ۙoҩOX t:/pl賄=LL4{$L5a gS*`P[x+kmXh,l8+ LkDO'Qg֘ZH t`3*=oTG4OpXN] x"! C8p@u$6zWf>|SuLuq؂%J^u-&o,u&1=GYѤ.F]UTXSޔ$F<=cfWwΏxу`*Qr[͜PgoiD٬I"M\ "@P ᴎ!ocR*JyEab>Gw_aM\kVsX4>UK-s:Qe Zr^;W O͛o'fۣlhls[^ǺυoVSO࿬#/@q'f(zf=h::n{"C`mG.:@l<׌6D7 뭩݊GaFݘ8j#Y)8?\Ȭ};vOy} ~i=2Av`TǷ&%Nh[ir_)bPH+|5b؟<-7@:C^>Yȯ'XDzQܛECGfoN;pv5 ZygZ,` {а $qݻv4&1Z:$ ǖ-B",I6\"dzßVSVU'4r8],d9v]oC":w֍5T!$ JDPRP/ CxrDu 'Qz|~5=wӹ}8XŦ"PR)JRR4҄J4AAI s} I3N&`ڃ00؎XұccJe4QU(dQ1@G*4.K@Rd cc&ؗZJit&Jit&خGX(+^sm;V6#jBclm4UӧgciΡga5> 1 c˙z8|Sg5gٗәnS:~]@.wWAY!M x:MJϗdJxQDT(˂8v<'/&(x9ob] v}XDs/^:d֨0No,`LQxn= P‰]=*lЫDUT3tku9}0 z_]J=݌|5Uas')h2t/)ŕKp8}8;?v i$N= i$ duZ[<0CljgYH-@ iCvH" \Ik}@@L2<P:ՒCud8\Çfwgq].)|nt߳9@s!Bi"?B GT'.55HQDQPGBUѬqB*@@JK @1%S_ Q ęLq@A%Ik~{)b\T5Gn޿]sMoǺI lewad$&R0zBzHPYxjPA"hk--z`BALe<::,N>X`8 ߰n>e~~@[\ |- fg*xt<~i9.ӎnAQo?oj""zr\|DnF9w9&poe@!z0RD2?*,")E[cm?S+1B‘ I2&g< #m2F?gcZM@2@Fd0k8(!-^#-ދҗƣeEŊ(d_y`@P+A&%HyAۂt+ǷEFvYG -.:QjJwbyOծ!8*yD%˕4FtZ7G~i^#(Ƹ#jitA @~K 8aiB@I FZE!o@n 0? I(Iw)*( 9 E;" k1㭀>k°l@{wuki$!%KVD)" H yB>#d2ԫ\[B3ZBgCY!K;`g] Qw!8p;/hI-<5R^s;bQGw_|||dƵ@=^@ /Yؐe$=C$an5 ׳ !L/瘽A_HjP- ¢ ,z0!e*MU'ޖi+m1ŕT vQDp)':O쎸a"`y`di(z~vayIu^NaN?DB8/\'.&hu1$EЃ)t/.Wv8Po*^=+%ϱ4#ۃr8}>m( ^ 2dvK3POGӳdEjtB{¾^җHۏ?#Ql% }nV(FfjvD`i:k3WDkK@KKLaߜ@m^kjS*x{z|w8=nE$tU6W|7~x`66y]~燽C=</\BP' (â=䣽/^A@`ioP'N:іp~r0vdv=KSگ_#$`n~aH~-Ge)O\Gݖ#رN$0_7- R-#]X QLX{hJlۮ;S\:4oC+&&A e\rY- -2]`ǣ XT::1i7Jh\Sin 4}Y.daez+P)>b#ayҸ9X< ]|̕hU-,v’ /ύOPQW9O`㶱Xw۲I; 0BoӏL{3r?{ ;]ɗ>(#ζ^}`FmWY4.7Jh`Sv} YcW>^0sb@ĿN*j%瓿CҊӰDiy5 =)HdFALV}ƚuM2W5UyݙÃ;w lɨ!+~ŠFE6$F TWBDhX,ȾS0LmؽDv6NLP T#RNpKJGp !GPv@=P_:j,d;3l~,Az(ڜT,^Sop-纈{aBs;x~+rLӸj Sm^7 u==sf=4gGCV (MTQ cZ+] UDj#PE+%פ壹Rn9xT<=h2A>AjF<R`/ PmDlG&EU@pn$Y*p2d&Z?T'ꝗߍ7 ʼn5/ agM[i6|y v=I<؞GqwIa'yC[ 1B+ Ug>0D_KpET@ PTFq-b//N5G?aa* 9FrtlGJ.o8{F7'´&"єw%`nxW~&3 X XWc+ENYܷƱ@ @ *#.cbWC3â ij,0߻oMxV+ UBDp @u[Nn