summaryrefslogtreecommitdiff
path: root/fs/ext4/symlink.c
AgeCommit message (Expand)AuthorFilesLines
2024-02-25ext4_get_link(): fix breakage in RCU modeAl Viro1-3/+5
2023-01-19fs: port ->getattr() to pass mnt_idmapChristian Brauner1-2/+2
2022-08-02ext4: fix reading leftover inlined symlinksZhang Yi1-0/+15
2022-05-17ext4: convert symlink external data block mapping to bdevZhang Yi1-8/+43
2021-07-25ext4: report correct st_size for encrypted symlinksEric Biggers1-1/+11
2018-01-11ext4: switch to fscrypt_get_symlink()Eric Biggers1-37/+6
2017-11-02License cleanup: add SPDX GPL-2.0 license identifier to files with no licenseGreg Kroah-Hartman1-0/+1
2017-04-03ext4: Add statx supportDavid Howells1-0/+3
2016-12-09vfs: remove ".readlink = generic_readlink" assignmentsMiklos Szeredi1-3/+0
2016-10-10Merge branch 'work.xattr' of git://git.kernel.org/pub/scm/linux/kernel/git/vi...Linus Torvalds1-9/+0
2016-10-07vfs: Remove {get,set,remove}xattr inode operationsAndreas Gruenbacher1-9/+0
2016-09-30ext4: do not unnecessarily null-terminate encrypted symlink dataEric Biggers1-2/+0
2016-09-15fscrypto: make filename crypto functions return 0 on successEric Biggers1-3/+2
2016-09-15ext4: fix memory leak when symlink decryption failsEric Biggers1-2/+1
2016-07-10ext4 crypto: migrate into vfs's crypto engineJaegeuk Kim1-20/+15
2016-04-04mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macrosKirill A. Shutemov1-2/+2
2016-01-11Merge branch 'work.symlinks' of git://git.kernel.org/pub/scm/linux/kernel/git...Linus Torvalds1-15/+14
2015-12-30switch ->get_link() to delayed_call, kill ->put_link()Al Viro1-4/+4
2015-12-08replace ->follow_link() with new method that could stay in RCU modeAl Viro1-5/+8
2015-12-08don't put symlink bodies in pagecache into highmemAl Viro1-7/+3
2015-11-26ext4: fix an endianness bug in ext4_encrypted_follow_link()Al Viro1-1/+1
2015-10-17ext4: call out CRC and corruption errors with specific error codesDarrick J. Wong1-1/+1
2015-06-25Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/t...Linus Torvalds1-12/+8
2015-05-31ext4 crypto: use per-inode tfm structureTheodore Ts'o1-1/+1
2015-05-18ext4 crypto: reorganize how we store keys in the inodeTheodore Ts'o1-10/+5
2015-05-18ext4 crypto: don't allocate a page when encrypting/decrypting file namesTheodore Ts'o1-0/+1
2015-05-10don't pass nameidata to ->follow_link()Al Viro1-1/+1
2015-05-10new ->follow_link() and ->put_link() calling conventionsAl Viro1-5/+4
2015-05-10ext4: switch to simple_follow_link()Al Viro1-8/+1
2015-05-10ext4: split inode_operations for encrypted symlinks off the restAl Viro1-20/+10
2015-05-03Merge tag 'for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git...Linus Torvalds1-1/+1
2015-05-01ext4 crypto: simplify and speed up filename encryptionTheodore Ts'o1-1/+1
2015-04-26Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vir...Linus Torvalds1-4/+4
2015-04-16ext4 crypto: add symlink encryptionTheodore Ts'o1-1/+95
2015-04-15VFS: normal filesystems (and lustre): d_inode() annotationsDavid Howells1-1/+1
2015-04-02ext4: remove unused header filesSheng Yong1-1/+0
2012-12-10ext4: Remove CONFIG_EXT4_FS_XATTRTao Ma1-4/+0
2010-05-16ext4: symlink must be handled via filesystem specific operationDmitry Monakhov1-0/+2
2008-10-10ext4: Rename ext4dev to ext4Theodore Ts'o1-2/+2
2008-09-08ext4: Fix whitespace checkpatch warnings/errorsTheodore Ts'o1-2/+2
2008-04-29ext4: move headers out of include/linuxChristoph Hellwig1-1/+1
2007-02-12[PATCH] mark struct inode_operations const 1Arjan van de Ven1-2/+2
2006-10-11[PATCH] jbd2: enable building of jbd2 and have ext4 use it rather than jbdMingming Cao1-1/+1
2006-10-11[PATCH] ext4: rename ext4 symbols to avoid duplication of ext3 symbolsMingming Cao1-12/+12
2006-10-11[PATCH] ext4: initial copy of files from ext3Dave Kleikamp1-0/+54
Fi'.8zw9\, eT'¤D|իE%@=L| ƒos Y/\Χ9?LlrfX΋AH̒Wm_E 1o:UC }aҊ~U[(<f-d4V;MUV_I`/ Ypzy/fE3of\~DC}i[V/izU/7sW,\ѰZk~sXWVgjHZՉjjMvMMH|3Nh&bV>ХHRiٯu @kDH*E20Vɲ\K-5+CmN+;?wS N ăIK.W\ą^gc'U՞iB\Eóg$1EЋQBLmm|WiIw-4@3r6wnEniœjxRoPa^0xfsyDu^D)Td Jdbqxqz)K~V|o,WZAB?wjtX7B'hfTZmS%㮤_ZSft%uX=b&XN Rc1]3@ i|zCr5Z:Rk𓳲<|5O WxuBHt4/K-uFϝ&)F9D'Bd2RV SV<=7Du~nQA{pE ~*x*s>L oE KD7]e ,tz8m+B>>;3D`nkg !]=ا3zEsW. 2d'{xaӀ /N|4誋4 p |A B "ck5O&AȂ r&9zh1GͯH3 (I}r+34XC$:0*;{_?QNˉ~tv ⦏J=·~;,5 iC ,z#qU|lrOݘV>)JIVéN쬼=dvqWE eQ=ٳqf1r$MbqeՊ)H,p2%zdlHiJBtهB,_~-uIw9H'XtpsH\_:߽ k7g6RI<& #^3ePO_%/V=˼\š:l}jmyyyiX]\,&[ QqAϧe҃3^ G|>E="CeExSF9jVV!|-NxWA04zoU>, I߼:PXśz!Plã5F"atFIvSNjE.dmHT:Iw"fB/OX.xۗZ+~ŃQc%QW4gS6Ls_e-be8 RNS;}grhB8d0kB )N@Aw=z^ɤ+u^ˎ YJak ZՌBm %|Q5F8!k3 ,DzYd`[3 1kV7l9aԏK#o~3B o:aOk_Zx}.Ɉwt X5\}z'50 dC^6('8ϩ Xwt4}ckѴ3C#l!ݚYVt 2%fꅻ#ȋZ"ܢI(h΢_4A״TVR!l֑o4Ty޵¹="?buO.c"NW''Z=j;ZFՈ, JK'?~޺$LAto |oh${+_$)A4Fabq?%e65~AHYK8-9~,dBkmҽ &s)BQmr# }f ]Ye8sXD|N+gGnq~=k9֮I@0=%1Cw://Kh,]+' cŇ,I XI½PSe/Pe8Ȓ5xo;8 pKk=wL.'h wgDYi~_+ɑ?H)FCt'ߧ%xd zj~H6)c}6nA0hJTJdHsƻ'~tyE= R6(^~aN+ɊLlۼF(r3Pd5fG؉oޱfm4qg<9* 'С0ZS/j őK(|-.-/, I2t7@X&zmdHg?݁mh+j#նhB!K?eKZi(4@\PXYJ>5To/ (YRpA'W 7:OcKc. _ڼ=:luj{Ҥv* nw QJ1CY\$#`fYnC2^k&#ς QejBwl,0f!5V뚢$aSVI[6{CD5"gX PRse~A<\tVՂK %+QWĖ3kB|l|/u2hCdnnr"vjt;Qp@yl_v hX=H-7ufbmj3ސm -B}VclwYJ ([a,Seq P:jwQm@aǤ s q ͺp 0Ęh>SfcvŰti5dW_-@"i$B+oE~|5xEghҢ>Mgw%=CR/<2J8b&,q@uJP*+ Ck<%aWD>05(OW΂c gr sl! T]~cGytv*Nn56 ncX_f빐K4 G8P^ izO<ҖvZP` n-hv/hqo#OdRcHJ "!>%E|-R^tBWؙcO:))&S,UQxcE9P7A&Ij4-鲺fZ.25v­ӾwH&Ik>=qUwV Cr'l.>R<؋v\a֣2t葏qY+XTb 5IoXЏt+RMN9 h&%МUX{?80_`, Z+Mt6,&{?gx<T__ a3ԽLL.82 ֘j4vYX9oM4;k2M핱E-Dg1I{iGdt gXvLڑ-;Gj!+QPjg\7-  ؈mUtjSǟ& 6Buan@Y%j#M˖K& s@&n1y 4'"TOt.QmV!]1H y+Aߡ)%eeRB@qq8_F6˃TxF]Rn;zy^ĸe"_qZe#db9lV|:W̼@s;>ת^bt> * )V`9BK-7 GOQj'`V^M<.l Lғ&ddUXŚd%J{4B SN6 +KٯMY8it>N9b 9TgR9*J 2TuRǂ1}nqe23|wmHLqYx0G;D]Mk4HdtR|Yxݸ=i !Zr}gL#2#bvcg\ ˢ-R9v;A:bPLD>to)`1[dD%Ə}7# _=X|Y!vx[9ZSuZ@*Cd(#6b6l%5ѩ}wM;6%Mo6$Q}DZEF|7i:'-.uӟp]ǵN#-Cuxy>lLj=g|(vhڝjO.IT;o/.e^/PU'iIS~fDMd{ *-+H;74\g m3281Jvp5kT\68ԯ\)V8_n柧װ?UK%Z814kfz!66텱2z*wqf|mL.Ȑee`F>T*(U\oC;Of($,|eƦK30<F8%hjA!ViPF7E sR\pHxGym+R<œŗ\.%ӈE~ֿCn[Q1u%]6q@khpe88#{$Hʮ{sLkD'UlijP$50w|՗KJmܩu뤏&u U]q\S ɼk=𢵷>LZl $< 6jFQvi-!~ןpa„8<KKYRЕ `$ClUhw(c 6*mE1^YoUilN(M#{=Jj^pBV_:7{=пPJ53d!Ǻ&%Z\[ ]K" ר ti>6[|7 )=͒KkՖm_YF7 >eW$3}(u[`A i %av˜/0;1Ǝj_vX,t2Cⴣ֫%IH"4#F aD=;:`oDXk{4̲8P; kmH_ƎNĄB.v>7; e+ 3w `n/@8z "P慷i[lvX%zآd96{}v6}+.h{LwkMDkSpکJ. $vH`tdK`yFBCLzMy 4 (W#?]jժ0/!oGߤĿMvpYȔK bxItRV.:΢ )9=Piѯ'UI^duiU#GkT!M渃ۣdBHEk<6LI/xKݠNQ 49'gE_ʃ"H,MMfC%ZUNf .=X׉ekzV-WeTgajG۵ }ݬU0NDY"F&nS!'u;p4`Io tFn߀)T~%ӪG[\kmggNd3R+ 7 &Dz1N$s:'^X<rIcDy9*$OeGO`Z>;H;ME'J)f$O(KLMIbFBY_ |]lV V$8:Ot}u0hU>?DV/ W<3 YtD?y(ѣ},9UQ\i5i#ʗ{Si$Ki.bzv!8PtUN Ϭzןt=Χ&!VdM٬/۴pyT X&肺*%2v.3mNMr,(}ć-֐vdm~gڭ?T'aΞ.IW?glG>XkwRkыH0r$ eb=zQClkRWpA]Iph/'Щ'j1&'$me nK l!9ΔZ+xvfQz_KyJunKa}պqk@ƈr=AfE]T:hq& w#Es9]ʭYk_Ξ'1Z\Â}{ҩq9wgWs@QNϬ=JG,`x6ĽZ ix4RN] ARUm7ڗ^%zy+8!I[9_~k@ UL>o۔.6Ֆ}z/,k~7*Z ʘԱ9zy7T Ae`6$ w]̮[z* #rzB#7QrXs]u04'.[4-,/0NkL&1`0FRne\s%ƼFI %W>z٬5 w$7 Vb ƖiD3:{5N֔y8[19=ż!;$9Ӓ~+(HeΠC>*'4W5a'j~M4y}2"b!ϭH'sIkcI1;?\"jƓeɭ{86~ӭY~܄6-Ȝb%5oY5. }=D5/W%=O{K˗;dG:ĬzHt/Yőywϋii[d[{c#mwCfL8WJ| >EiZlJV+9Q]%5dp~_9Of?GJAygĆViyWH*r8!yZN04%]I1ֻh dOPaB]:wB%Si{1!oܤ۰ipBPlU4. )Ъn5gZZDMOY9:ِ 5>uXXC={pׂ u=!\[Kx6HVX\JඡLdfYV'j| [@:Af9}^:P9tHj;D7SJx$7ߵT7>1-i6(Kԃ(e81YRÿoȂ~3J3kc{BG[um"_>TjQEV / 6QjOK궤˼A>~G"]ϜZwF]qHPi'A*Yox0*DQR}gkqZl=|/eGg1fFWBy4]T:(1mTmZjԁ18?EN]Klr_) ˦I]ʌt59kUP??1AS9OŬaJXC+*Zi6ʍYLY{)C $>ig"=Y@ n\ȄZ`Ku7k~p^!^uQ e'odC; (_// IF2*R:#hw{r㍁J ,%iLqF-H5j-5kJucZZ#՟d B6MXEVEpUǂKw.LLFb֑ [p Hy$N-H]l}e}c4I2LV$Ƥn[>9$\I,/lW!q= rU29SWz |+L46YRu#zP'9EmieG% _J؎.GF:tI4?*q} >IhT$':C5h8 |L=U?Iplb`9iwijD>r R?714h 'J8|vnBKV=`LXh--s.G\bVYuI }tlK5dKq 2YK.RKH:)֎[njjb᱕ 5Ҁp<Ys],rm :p@F9$Ji#Jr$ G_aI@]?wڣHy DOcը7*Qq}' hk)j[Fp9-8`o, $\>҇84%ߑff4C"T3w2Ug$wb0!Zq.+~!xڲ|kۙ&ha{̺,>8-1E|5mjSy*}w$@"YvR  ֬6 ̑h?sL%.2 =s>/cnY$Uٷ|&޺|+9fv=!6xoדQv8GbR5IkEs i+ Qe>:Úֆl)\^% @?'C^$\Xk8vVO0Jz:6ֵHuuɥ/hX+#|Z1b =CF"T]ď5:CPy;U\, XJbqrŇO׬lY?XC}oEpm-AiiQ-_[`z4޵{ݏ3+x]؂֒fib#n,Eg^ h` o,$n9~S-H? JYn݊Z?kQ8-@%QzYeqmC4c;ܮp!/S/-dQhO"gYMJ@ )V M;B&OEpJ/8j iO8tE u}WiיCf ;NDuٌURjd*R' j@ՙGLZjDʖ Hl:IVچJxZZ ҕ>YKbϞ뺆+9:ΑuKX`h7FՎ= /5Ĭ%IC<5{iX϶;ߚs:%GvhA )1Yl cB,X?i_Z&w6da;InժfKH[IÊ3#EGy}8Oj)"a5IW t{[mHOUb^[R֯-$! %t*][ϝK+]1X`kˇ[pp)Ts!_v M_ON| R=(t6FI`0c&"u/WI5ݺ[:G<>zv&Qs=s(a3 IPy — 9 \EdC;j>I` 8߲V9?7Klmz㻉ϗf"wIkVv?Dcc{7xg u!ģr8uBHRKQ@).W GQ\1 JTԙ\)QHh%1+ǒ 6 G:c╨^n l$u򜃬4q}ߠN\qc4#U@Czkm_eCq,-ϹJW;2kTMgtuibв۞jkrd\#HY΍.!NTu4~ޏaIIjR2sNG#- xQI= FSP8~gs\Q \SI} AZͯix8`7=5 uTWYI*rX!wt4`ɫ[=ckvUP6;Q~$r# ΊDWI>j$.Lg3tfW[6dºCn((pG[s=}0XW˲xLl,+MwkoFWރNU}$= lZ^?ph;<c= Q\ 0>3c CM|p_GKҼ٬7-O?.Yg(JHf>ВmF &1/KT^BSog~`֟Y"r=l^G?ЊL~-γ8{-R ;lH ) τJ{蹝{k7M=gT32W gޅէY%NdƵz,^+4IdwG@>p|,L`X A1!vs1 $aٰErrJ]ِ3OzΗ4-Q*CLLWV4?ORN!u L9sXnwQVzu N. E$Yc&%]f)t2N8L}xFT.oP,x4.jzmu5?$iٖQK"x0?"wA1Y`!Iޢ:z֠ao!Pxz%~Ync;Y!rMc@GnGi ~ufIIG UBKdL9/VI˅ĈA/4(2JFQT"{_UM4NK0BbW4驞]Eofm$PN]|% X?hitjPN!ƽ%Cp14Tos\FWN1f56S4 \ +Q8+ʇy`ZY~jvdZ6p z}S4cRD ԇOפ^_VʙnGvui'KbOpף_`FTbJg}4?חr]MFa%Yօ]Bj `̬/0, $AL|FC@v_YLWGYi=$Sf۰',`U3hw}2WkFou>dR&CHT*'j7c&H BIjK)VMn4&`Cp<2ҹ֭IjÞΦ@I6zҘW4%-&'E掭hO|O*^C\6fh.Z{~$hC5`P*_AڟIXKGUgLR=0g#| P-胀|Y(Z<ޡA\U4Ȝ8W%O2|-k/|y0.gϹESjsNo!~令qe44˄ąAd1y7M.'v03Vx닩C .mIг3/4+cψ01]qX_~Y $eW/aC]lW4Mo--@V l@ΝL|]ּ.a+ACѴ.&?B#~R[8oAF{n6DJLҽPY-xP(;>`r\4P_'VڗdV]}̣nCfBHowۿꅜ'm my"Qw C60VA'){i5}Ŏx:,wá'dOP ;<'G<nĥ5Sv'A&?9{9c.فq2{3j9Ԛx(!a$K8:'M$8F,3㕜Vs2jfZF./U՝t$ٰGዮt= Y]iX<(:W+1Qv~KxmKfIf4wL >)odqQiZ@rK΢L5**Bؤֵ%kV{H>_ޕDz&T[@VX/Ve62%2N"GZU8y/#3@s2\{Mx$7z5U-VNi> %ЅeyV;NHp02M݋O)[MnK5&545la[ * C6p)xYG:HN T>.CKGK[X cQ׫ r4vץ=Tn2qk⋰š/2R;2P|p?-[$@r2{'Qp[/s d4g(INïznT"H;& D ׍†tmKgGnck$bzv0֒AWSlG>z؂ 7nU"nHTUJ-s$:9̝/ZrfrtT&{?d*B(_B'T~ReE=~B GxViee*#uc.l!bjvCe]U? WZծ3NaJ*De=҇2LFHNT{hp﵍{@6\y/?Ot(y9־ۧ3dp?g4cQ]t=هqj2 yzT8aFvkR;"Kf6cQ `ڀ~g0Vԣvɂd r6JQ/z1sΖ"Lty| 1xhI;!h`Iv l_?kX '46gq1 ,#nH7SK;%)z<%^^Y-v= 3x\KopWier'X Lv>d_4-fŒʢv .'Wۯkp*?ßj2L+I]B o'lt1{afaϏC͞*^pr@NFKPԉRVimAKmby)Q0>P-t*%/d1I7tHq5s3jQs4Q 5֤CcPuf_ Zj: eEWZ5zjti50}$ty=oĉ>bj3!HSf5LPuX̌X! ?)4-;Qijym{׫)RV2柤 K;CAj`’!)l}Ͷ[$qooUlF٢W\?Bjvۡ^Fj¹0atyZLfʸ,4K ,4@Ƴ.} 4䑣)yx,hWjsюa`9yA7tb 2[\Ϝ0^g.zU0MA1͋ms;Զ|s&ڎhFF K]Þi K.*34H᳑)͹ 4ԯS7[g 1߹v,*GcO?8YYN=;#^.3fjQ1ĖpҸz? 3ύ'~Pg[I 퓊ַwJ4~Ied$&EHgj.퓱Lfsc[- ic'Nl@D rc{k[ZuϰOɨpf0dUGR,avKQ[ Ŕ+'E-q+5jrqej=^gtlGkrtcTd?NWNxmRpV\>ֱO\vG}6[5ΨuLb~C/ d7fU[ -MZKKҙd١V@9НJ j/{jFQC^f{W8\4 {Pn h/ =FnHId[օzUk~^t u$m)t.>{WpCCVيp%-W{yJ(PRT;7FzBU1 GI>•P MnQ D9 MJ q=Nd!]FS>UfRG#XR(՛Fㆪ1L |} s>v>T{@dQ{\STwmEؚ(s@[8C[)q3'vq%Dj$>}28zOnW96KLxT (cUk~U5O@]IS\kU k#av _EMʷau;G8uskѧsVn2b?׬jH & <^ĂQEjA}}cǙKA Z<dͫ l P]g!άWRO%BWo,wӬub=1ƍ `=9E;Ger|3gٕ|l[՜\Y/؜jWʂAA슪6\.:9íf`yM29X4ǾEzABu OoçG#X}Rα=@f1HH̘f4 Zt`ũߍS"<4䥝^t62U ai^ͿU gq=6ؤC < H/%M>;;dA4@8;㭞/\cȎa׉Ц VO&w6R|3i펣3k&vRpȾGʥ DJ396\Ēg);!wrG 5X3`aBn2f|PUYk `vk! }HT$cҰlU%qf3g3$^a탽\a>a{9R$xV#vBTmpdVjkkc:B2vӟ̸ГG4 r&Xk~xλSW8RB=c#dG[u k6J LsT5NLU e6@0_S͎jU.bjTm.gd檵|@Uj4~JGiS߽ Σҭ`i9jogEnĹຽF~0Q!8%l@Ͷv :y =YGo~7fIr?i3C}i&ut>'lO+JZ;& G0W@uQT8`IzTsdn9d\(k#AukҔ;<@յ˽kat1"#Tm $ f!ۣHX+gRNV&ɂ)##JKg|*y2qe뤾֝ Y 2pgH!B:&4>G}5+rͳvx~)˵v&y)otgKN=lzGk)Q"gӿ5'ReG۽C{A"-#] X)Gu[/$T$„[o Ly/ߥ%/"K-t =LAQ3\ *,qڜ0%+#BꅀA9%] ;f1?(Y9XGh8hXz m-lJoQRL8>g}8ȃ zMt`gw64ոhF\?[Bۏ[p^|VfS~NB;ƒMssi}8UqAQo-)ub0A.=o\X%O=8-E/*K9"^kd1 ibD#x.o_:rl7XT뢅`8AR2?ʝMtiU؆ *  I]̢coȀw-'|:vGsvVrrD,^[e.\v䴠YDF]$5`6UC+Xjwk5cF%抦^їFlxUŸ2nSɨ}idGS,ʊ, |G =7=*;(h#1zWPYy4US 7Ǵ v$I=uPuM١ٞaN_SepB/2^u1tO4d-tb'0X {k7~54}0s5) u(z'u~vѫA~19>Wi>giiIk>so_#ȶܒkl/z ffz[]9?rլ7& 24ۄKE,p泙(,ǣe6ڪ=Tu\mjyRIoOJvvǤ S*LДZ6crx4/_E$ǚ@}(ApDBܩ!>f_^I4cyT2}̆^!+x~m?wr<QW3?-Qn/؁I#^K2e_o̹pt){21V(eH6҃Z׾@T.3ȎpE`muet8+f#c?q;1ƼB]y9uisؙ Ě=qhRNfu5mZ3 f^)_XkCߦNv&M=sxA35RMT H$+6XQ|NZ*hʩ+vt g|C#Nic|#}L E j%5e9t@^snA\ #OӝudT=t0Ec 6VAt$O4{P(͛ĦI-(_XdRL1ĸT`&I,#ZlWJMiȹwG!M(l][(bN>"CkFYD):ңDӋҜWZ0W9"SNg.0tI‰V!}eB"Ը;I%H_|)BX˳d,;|zfU7Iۢ*vKTTNא+TV!ϝf=q֢F}q@)fXEEr~Ф,/eϥwS |2z9縛 Vkum~y(ةIǬ-ꏚyRV~Jo6Z K%"Gկukq*TMnJ}IwY|(wʖfsu WQX>XBtR[kA&Pǣ nVY;gǼw@8L% ;Gq%k:(W,М\FnK*|Vɮ4'X+x@OBYCe#dF{jaۿ& N/t.6<Ơe5) 5ө4Ԟ\KR#66C-:LJ/bNƝ ǭzPΘptvPnTsԨ.ҚZ_ Sx27N'l=#وT4Z'OϞtf)-"Qk:l IpN3YY]?Ya6Y~ Iѳ< dU86XZyd\?CIkkrIg|AݨI+?#.ȎCdj4ʊ *@wGӾS"8?ukkr@֮YBٓ+#EXA3%\t|Ӆ]c:,) wDNb@J*Uk>9Uvn0il-/,dF {zuHiJVj0ʄ )Kߕ/́ȞD'?hROt}|"U⬌^Joۓ9>A-仏#}`پʹm‚m@K4:mDVN&RL=V~^rBHG$&W-t厣-VY]- +Cl:Mz:|٣ΰݩ6&QXǪ>Pkyi҇{R\UB;EL#KҨ!_Q}.Y-=*ϏO[GDX9Kj0|/?GL0 &|nANJh"p􄲵x.^!OY*)a1'P JRmS-ސJgJ[|u8xz@Fp@è W($Ze#fs*D˼8w/qu1^ ;Zݭ> ?j zffS"Vs oCc Z.NmӶ oHn^8Q.bg/x:f4՜#[wAը5 ,̌odnоz"Gh7·.8.rEV'umWBA7%㣲V/J*sJNH4j\Zu4Ya؍r zM׳۾Noq,JBhqN*ƙ"4^ C(F=Zc=bHKl /xVe[K wՖ9+4^AG8j:Y]Qiz ~YcrIf)^4/mt\M5>FGu>Ӌ cYp^Jȴ돽%2"aZHdF\>I3YpA9}Ը^B費nWNY']Hy@B'sSd{KCeV=#?+]ԤqXlIZ$IZz# ?jڌnǞf]%+P|U54: 6qr  K5RվZoa%:#Z=-Y᫐7{~$´vRB`dJa0[\j{5b'/~]"Z% "ۻם,5aOC~Ve4NC%Js 4OL L' 6x{a=@0s^Vo,OpwWz4TKYˈHDU/fpb[:B Z$̲BBoK!ߎ)dj6j48>p~2r0v$GR($zAeHkʃ^5H VRM!K2lj6|x.!ba0a|])A(#]Po˓_3<*Ӝw3m#:{aB啇r%&4,E'$ctݹ uSSnnW-IoS!2zfsRcFfS3{|g#N^]AѺ.Pí8}'geQ{ACMX( 4ޭ&Knqlx_p*g0ȣryHL XrBB&UnI3:_)>qJO5FSI:lYk~ꅺ%'E(G0m id+Z)\E[y:edʒ[\8 )gϙ;_a $*i8!v:,mr0͆9Lؑs平N J-'٩E#||*b)슯 >$lԛLDwIqPHxhb6~4%"z  h+`^R ]TI}Gˆ0Rp?_}jF euP*DjoƆ-IK+Tӛ;OOz}٭Յ`"L+2h/GٍNe6AByՄNGjR#ZU7i2@~Kz0R2p7g\Zڵb ?KR:d9uIk̺ xk =3NzeJtS2ntnd1hI%K+L3ѱZ1r4C)slݷ֌v쪡POI.V!f 22&/&Ȼl:*?:KvNeroj䝌'ޓȘzKy*hTQϗՐmVĐ"_uUS[&5=wԛsꟷa# ϞOwZqUKFY9F05wNPy0J]K+? ,(NB%{$K# 큵Yn4zTvٰhR3cc? V PKp4C 5KIbRW׷UA_0H Dv*Ts`s6Vt$HJH՞ݗRe|C~i~ y2߿}x'IPm糉f;<s07sI՚k_9.B mrYϒmr5C{<4)c9$7\N 4i&wv[V$0'!+GL*΃6N Rj%>֐zkQW I>}=Wf&;jb}Vd=nTFL,փ}$;ڜ3alOe{ T)W>$b dIGRQUZ!Oڢe9 PZP1>?ٍ)6:PW ^4R>lFt;s%Ilv WgYuvC O>hL쑊:-ORsm$lŬ8huZ\PŠW\M9g3I*:r{!~n=ӳ=9b1r +{Ǐ bۿ8Tb<.Ɯ/5}h'm ]^SUT G7+V^op2\5;zĻr-]px%: ԖvvxM5'ԗS{$>;GAj+C촪IŎy݈ģLo ^xu'Y:Y8.Cը|ߩ! #~m:ἦR 55E(`H qfuT=S& 9'}t$Sۈ|yBl+!>Uö"Y4[uj:M序XjW27}&̮,7VDC |{+\qiUIѽ;g{ζrP(TLI/v[.'6Jdj}ś[678h׊"2GF9? sHYH N\9+xf/aO*hoDм50uHZ_uj2V54=SE]X[lu tQjyE6 "9t :OqG2Y11Q{]niVq w& 0c[i,+E0nފױk2zQo1qkxM B<y7mءcaHE\=/)0ExvZsZqbCԶDAL)\YؕRZaNu c/-xVYl.-Rw<-Ԡ[֤kxLiYP+X[. iqtÐ䢣4vHDxd" 8 54)Ak/6H0Fu$o., ͳ{}(I͓: J ڒ#Z ?䫫u*Q-4И$&d\EAXh_)s^k\[Ԉses5mQǁRHFOwm-Zh F4_';d.pßH7&rp?tڴb5w۪1 Y~EVKbs4Q8CW0N lP@R ̡W癋f R-Ül (xh'~Xa*IJ: 8f9$Z \@VoAƖ4?FyB=GGۦgl{XlqgS%RG@m0v,"9ozH}|U7ߖ5MRmNCX;r)Y~ø<;>f^\NoN].Ro;3 \m LZ`͆_eF4lfK>Րnӄ1AE$q 18U^bN0k $Ǜ|GzL69K=" =Keh06h0_$@nҬ֕OkqKhu{dFb*\rG4}!~FI$bq )/m;"#5T$"E&xlzW$>NvOo1гJcrl@rl|8xYa@fvAJ#aڊx+$ Fjd@>>v o^KGfvy 3+R9GjsD~6 5̮B*hU0 I"@qvWOsb%F2&k4>* *Aꂤ%>=k8ITҞߋ iYҥQz=MNRYgPtp&S2n* W5!Wv0Cg2yLvl G@[~ peJi ǕLntAc0Ox2|vD S5$c][kW8A SGFf{o1u[~e2Ǔ?pbg?{j -pɇLH@񑰡r`=Wyg.+r4OX^ ؊TL$PZAJQl(Ov[o{fGbRS7Ǥ@Wo6hS%zZx?,gʦL0DșZ(q/f; +Fg $z IgP?ەZ*쭈L̨6Ba6p6ORkQ @B"i&k.2/_ h]4n㚸kЏtw]L?ՙ}ה*^ګ6%k6D_NVkTyg](kr; v?s2<zM]7fݤOٲs$ z2Z~|w'!c_=t L!Io. mN*鐔>ӻ>/&-jqx3p\?H7ԃb9"!%.i>=VUuH+8tJ:\^CZIr;WgW.q{a)7j]AD QH߂c>ѻ4mϿ0-c>(7#KE󵠤Rl6Իwbhon>Z O>i`d~v ¥LkglOzc?-pi?̷Cbt*<*,n8LBg(K|-H Լ >B$xn%ܬߺ)Y'dh1(Ь9WW}MbLFξ< uw\TN s@\D[2F/E]qz5܊nУ4T({'V dOR zkp2:QjL<|FFE˥Qp%sOb?ꄔvPn Tc'lAR8CӰ[vW]Eig4乣oƕZ9W ˹`е-/>5Qf?MFvCzQ$g @]0) .gJǞ ;w=߫hQr +6W?(z5v2:_c/wWJN]?)+ߣW\ ~le$kk c0z&[ Q:.QnB }MU%gYgI|8$H'y]~CQm "}|O*hpXw-N襩yW̨RNdF[]:2gf]u]VUsoaYpJ~:m]=lQW9d7 >N=Ns~}WRMIЀཐԮ\;*(۹!}8b8:3=sg[Zz۽ Q/'\yF&$=W\Nu^]"p@`hOjBk^'u[ ,gCkJNp g a6,|N5yMg .Cǯ ?t:' |+ٖ5KІZzO2rRd~G ֮ap=~,d~6utRy w+/`DW+_QH.- 5ˠDz|>{lUaJ bǡ԰WCu1Q{#abo) _<љ)0;*C,7q}U`P7| >ԁ#{ǪyǬd&uG7OG6üӋؘ$4lL zOpΫ ŹK dkHI>WF>P͜ ۇSǘLܠ,h(& vլ2E^|VO/b4BÐQE:ѱA8;›@Q|ưvFcx|DaDlу)҈҈;؏4m#r4![3,ܨK_Vy!' 1srhbCb#i(+x! {`4s*HG W$~û8`<d4YIY^\.\2EPgRy)#ޚ.xM Ev\8\taZ- Ы!scΪ'dFmpiMt]nULkI>2Z %Ѫ~nHIJ"u֝RLVleI?bLi&q<]Bf< u$?YX@=DɀD?6OGǷmQ9γ$-.$++@kxr m`-T!T@YJYS9tI4DIsf$]A yqd;GcujTn;'e/56 4H|%x"7{ez3-/oPd`&Y[vG"iL&PI)z'A x@ңQ+&`A+Pռ\3} WXsq*=DC*1 ZԼ:8΃G-u#J,ICN$+3h5))ķm$@'YkZ^G  E %xg 8gzH W`Yl1?ИhNo;u-Àr):6:װ ech Hg=U$O\`Ih󸔐" Z]Ok p:Q3 !q䢑(UjeEN"3[WC'+@oʼcј-q:6:Lԣˡ&Pb_A8$gdnp]xD؃nc_c;o$}0qbIЇ'REa7/+An햪$eeIFG=c˥jh(WVk(ܕ~>P]ɣROj'% >8J1B&ihO9Rk֪-i I#f WWvXރc%y6AV5BF @x9ћ,G{͏ziFٖ{Q0n(E)d ~s]RvZ $k+R~`TE(wÁ }=X<(+Ij}D#8ש3N>!#s?8  qu&P8U_-k3j񸯺Z1x*#SURC[M:݆ KYdr>7|Z!A>؎&xou3 d蔿ZƷ8wܒ:)x&g_@4ʺ9~"AA+QK^03}ߓ߽0]Re*]MXwdg>x!QR]]ؙfξq~#KJn<4zdή<3*eTn)"Pɜ :Q Oֿު{dU))ٓi]?+Laf}.w/%хH6E8fۡIU(t=RK9F&`k-50.10~HW=(^P&]"op["/z.UNs#nU?# I/R`^z6ܧ!9ԼL4"cASe\eb=YtFs[NJ#^ϊu4ΊN"`J*X`YrFOa_%9wk*&yTQڨV+:~Jy[Ԫ?;%Yhd6*F:U̜-迀ױr b/u]KO\@]bDExc$=1bxIUK*vs PT#17^pϫxY>xxzei5uxx=$2xM72?.T,3r.=Q~)^?mto}{ެU}34T%AofL 'N7A6D|U?U(AJ*8O/V`u$%ι TFP(iaC<.lr /B\ fjOk6jYn2t 2e\PBp]h;/MǢ#J_qUo"Y5NRMtԽn/w/oFVffNb-h ɅG{?ZƷym˿;ї򕳴.OW(vg7*׌j Qo8B4w0Xߪ -JL?{h﫴r0;Yh(=!e7K٥Tzo:v`J!CdP ЏQl7.Q g1fɮrpC8WB;aI.&# ~`8Q3.@5O\FgPs S-+7ՐD{=y yo$LI`/ٴ Qq7~ogJhNH2ODY]>.?yŵ+o;(5Ex⏑Rwo[kKQ,םD^CQwH>w{pL9>pł%aat@6k?x]gӡؚyK}@^w.v( Ϸ:D^croyNXzHNNݨ%pk= u # HrYRj?bTna3=)?@%OJmtS7$I`:NpG_]˅~6㊞evJ4c#ߓחO]k֑tķJ&<}VvD㛙TH*x/@R97?,F7q/AgZaJsrT$8H싞bGDj=madbRN̢h~+cg'廫Wi:y5xS[^8'ՆQT/N`6NKB?~|˕>ތH(`H'KE)3`L o@f-[I7-#QrX" S}3ʞ=21xެl3lO[4o. moC@kՍR0<׋9 fIfY0-+e'$>f1e0mQDscnF!zSxp iuecSrw4Oa֑`W;M~0~f.Z1jon|4x3Dߣ+ V V)\[;{~ϒ%>V޲J?HWТ:#ti}~e%9*-0͏̰T Һٛ|R|B R[U7yFZ8} \Oc%qyQ[Tn6XWnI>rد⛄ %>0ODSDmBrRÁ㵲x;^6x7,\&W(bO9_iPdN'FJ`(*+yK^!CޤTVtʝ^N}GȉKPz5Hqk%I%/PX [m^Ji/ EAVkgY(+(<(O{%i#HwQRcS[w,FjxZT*R8IC}uZ'LhŢ5=ܶ݊~|upCx^ ~?JUz?vy8\ZZ=>o[A^]KbFFD㗪5N2jf]FAz_ *;zc+)qTb,Qϸ> {D[. I &k-I-N-!߿㦽myEn5bOqxUε\h!B9m%\}7dkXtޭ+y қvpIi2'+sƜ1ԃH-8a0jD-b%r:Jn(OLgfŖՊso \ xt͐'mlwϙt dDX$pQ %ʿ.,>!&܈hR)K|y RH TWgU3m\]?%y=ݑ룴;b ,!itf}J}(GV(#V D b7*7=9 =).?w?Ȧã|#Md%h &.%6JJ18_2u06t*^xKXKOPW>=L<߿u_VWͶyj??V#W#Wd%LگchKr /qEFdO`g[d[bY01r1L2B?ߊWc0rh/"sRB&;+`[b?ڞԄqYXT%> mQA}ljlkn74Ի$XE2A&8&B (3bt8Utدغ>īA}k"x%^_[ѡ,J*I4u k<,^Dۧc+N=:y*/$_^YrQϤS:%')¹Kuc~'1鈀Ĵ$%7[D?Bώ +"Uld5۵S4Xߒgխ̟׳ RȾCr0:t~A?;qRVvW^`1jZwo=g pIޓ0VN1!{xDyOѫJXxGⲕG~u{3 o&BbyAY'_M}-Vl֑_=B?ӕ_=V1?觩BA<O$H5DK ?{;dǿ{,a1^e4ia2]6sr үh i CTEq M pVEꯤD(#ŞK,fgX`DX50ƽqMo Օ؞D lyQ,zruz8KAA,VD?˂)j"1:{ aHuQt O?YP ]hwaUt4=))2U).uzƈLIH!j2Rf\Go#"Վ%ץjVû6'W#Pb%\]Rv|&m ^hsJJېId7㤴%^0$ꤣ"ٜN]Z9adSZid⹂`#L'.Af.€3$6lq2'F7mda*#Ȗ󗇬MI||P^;jMsehi.S7_%0Ư4hU1 (2YT*t^mWr=rQHh#0f L-8T݋)Ԋ-]Qġf9'^T.1^z7n/ҢJz8vJ#'eF|EQ$iZkÌQ{sO] +,6VyՊur9&wLhƚՆ,ΉA#A& i<ǦD <(a1Bi/l[rz!㨴=?dIHd.9[ՌX={Ԗb7))CѪl!`5ioko{o$c{cϜ#\8^8Y^j*X7SdҕIŠb Tyxy t|[yC*Jrr0j+ .7]|еn:oD̥N:yL+q:ڀ+& ErtfI(2HSH97msdBV`Jtenr*8+Κ35o=N/M Ph:COgXn78/p^(GJ"x>C8kxt.`$4׊,U*gͦ'9I-6#Xksݎ&/am bF'̿+o@ =vzQ)hӿ\:7 ("ԃ.R$7y^8 ݕj 7t!I$-X,e=;Y pB]I*\fBR`3)!;Q&y.  ֫L M#p#eq c Lvm:vL D[^-/?3q$LzD) C%ZqtA{jJF?@LsIbcU4C C.&$,`S=oCd`*7;]VgI@ԸT+A ٯQZ'~Y&m dLr1AEn?T]ht @I.^ 0}2PJemkx㨣z&C?nK|(%w-IɪcB#׺<LM'#o`^D-IEYŀ`cQwe+aa}d N\+q4hn[ZP5%,*|Z3Ykq7hDp!&-$L8lZ_E+' P_̀cܕAd]޿gcNqc&j1#DL՘Ҋԧ@{-?x/H1%owO_mE[9%(F!sCKsQڟECI0eGu5Dks@hsXߦ:{Α&?lq:ݖ\]S@ENn SLt[ ,JN{N]`D}Ovd 6^2.»@9}5x\hYVSװDEx' (gkJ6Ce?UhyBіp ar{ %Iv8馜<|/$34aEOG;/r} ~]{!{u1;% (Fi𨞚4?=via[x؞boxAmг JiOH0DfK`]I턜jn] .ϿE#afzh+sk5wט7ВlQ4V:ũiZ{9C"#-}VTZ&@dr~ݽ7e^2W_?q NڶED/x`fw; &q님WW&JN NI4^nS%܎%ݠZCRYcQNw|ӹ5oCT̃P,gP9aKg9 e> ֿs~C1͟ǁ/zP"#CM=&LdB[FW;]B̈LX=w#ٕsTץfs|k2h>J~%5t\HػN.0`qT1Lv™–'iwQ]%њD|)lkz]Gb(䙠jN${? +eYy=zM00KIR7i(7ڪh/Ѻq}Ofy\lhhl])^S'g}+S8z3gP*mdwW}]SHSCgY\% ov6%ʑMZ]{ H&:Ȥhbq '0O]-M 5ILT+/b2tS78ll}R׌TbL}:2 I]JTdOOl?kz91sgy$ \P8aJn슽N6ρpܙrvzڛ)M=hK2'*M$&A{R_>mGZç6욋ף :PP`3h\vk_VZ8L=.vp\-',kWD%/ᚈ ;66w({-:Ș>=UݪAp$'kd_ƨ}H(0Z4xG R6n '^j}IgAH)Qݭ|qŸ?o-up]%?t{d^INJOuoV!N\m3t+oLQӭ:J OA/A2d Jb?9O+/t' / )&R i*"o8O{^KZKxضdV_|Oy_œ/Ίh6~J÷Xf A/؀yjGP߻7!* PRN:EWW?%ɝX)"#GqQK`(2x 39swR0vOŚ\"J;m"Go~CT+ѥpbnuUn d!8yܽ1) H%ygZalg]Lլȗ}LD>ѽ 8VqG;-cR_Ӧ֟4 JK]c_/,[;MR_ԳړM>/y7qZݡߊj/?,f(dD8OFFΘ.Z$~/u2rnEb/5M=ǟ]<Lo%|C2賁N/$fME֓$Pg 8E3~?C.3fE/zy^dKDIሉMb3*=w|z˱::?)Pc@mSokƿ/~.1,X 7z4 Ӑdq(FdջzM|[9 m&X;m_w ^CQ|_=) GpD}| N!ާש]Feg s\ؗQ"Bf6mՉy$ǚս&pO垥2Y١!scy/~_^^K<N@TtVPq*\fOS .Ud,U7]N +.!+|#;񆽔)VR t1@ deMw gj0 ҷ@f,|cd,DYt_H>TCiiF18^>H$8𞖃dPK$$޷I -op݀@JZVOڳo\螘B#i9#CU-?CS*5m{t#o0-2M=4VІAJ6'lzhaęb aib't#&f_"