summaryrefslogtreecommitdiff
path: root/fs/ext2
diff options
context:
space:
mode:
authorMatthew Wilcox (Oracle) <willy@infradead.org>2023-09-21 21:07:43 +0100
committerJan Kara <jack@suse.cz>2023-10-25 20:19:01 +0200
commitf4b830cfceffb05d8feb899fbd28fd592f1bb0ae (patch)
treea81713e094af85fac91f8a7be60ef55b8e30dff6 /fs/ext2
parent1de0736c3af9dadb688cad23871f9760ff22265f (diff)
downloadlinux-f4b830cfceffb05d8feb899fbd28fd592f1bb0ae.tar.gz
linux-f4b830cfceffb05d8feb899fbd28fd592f1bb0ae.tar.bz2
linux-f4b830cfceffb05d8feb899fbd28fd592f1bb0ae.zip
ext2: Convert ext2_empty_dir() to use a folio
Save two calls to compound_head() by using the folio API. Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Signed-off-by: Jan Kara <jack@suse.cz> Message-Id: <20230921200746.3303942-6-willy@infradead.org>
Diffstat (limited to 'fs/ext2')
-rw-r--r--fs/ext2/dir.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/fs/ext2/dir.c b/fs/ext2/dir.c
index 31333b23adf3..2fc910e99234 100644
--- a/fs/ext2/dir.c
+++ b/fs/ext2/dir.c
@@ -669,16 +669,16 @@ fail:
/*
* routine to check that the specified directory is empty (for rmdir)
*/
-int ext2_empty_dir (struct inode * inode)
+int ext2_empty_dir(struct inode *inode)
{
- struct page *page;
+ struct folio *folio;
char *kaddr;
unsigned long i, npages = dir_pages(inode);
for (i = 0; i < npages; i++) {
ext2_dirent *de;
- kaddr = ext2_get_page(inode, i, 0, &page);
+ kaddr = ext2_get_folio(inode, i, 0, &folio);
if (IS_ERR(kaddr))
return 0;
@@ -707,12 +707,12 @@ int ext2_empty_dir (struct inode * inode)
}
de = ext2_next_entry(de);
}
- ext2_put_page(page, kaddr);
+ folio_release_kmap(folio, kaddr);
}
return 1;
not_empty:
- ext2_put_page(page, kaddr);
+ folio_release_kmap(folio, kaddr);
return 0;
}
EdzpfOU80Q%ZKo gVf$|A$mjQ%;>K+Y>|OQ 8"X1_Ui qPvj$x5؃XV:t l`dcZ_ V;#]Wn}v+w6Y~YzZD6 ?|-7kYt+m賬;0')tA6/ֆ!VVkx|>k>f3'3զZ7(\g{|W-27Nj>$'V[,WZ6-]h/<7;6ڸYB:j2þـM4sD<-,{4|_$tB/ _(ٲ諾k}F:irPsAo1,a)Hi-.tt)MHaJ f~fHv;_ʶrϺK|8(RAU,5gD0tL ϓ#ϲqP E.Q.Rs'SDHc#}nӅ6UaK /b](?dna 5QHv-(9p6E[讈'^o'i*siz%h# 㢰.Q#NSnm񿣅_p+뾇#aϭV{7BΪ6'ل F7,d:葓>\^^6O8XyEv.gr~韮aqinQXWF,\zCݪ\*D`6c o`<,6}@iyJJp͏$RBD$PB)#E ,{ǟ"N yx;ғ*Ӣ^f- ,vވުK*1"ǩ"舅ܬb>MVxt(@UóNR3tIB蓙(X0LXVgvgDBآ72f ұ&DiC om铒fK~َ"7H]M*9YDQëlFv=>ŸQ?Z_ѕ=-Ȉ;9MBDxGU)st.mUԤ8`bJD.m^Vr[`L\5lng"I84`GW\j ;z0"[ xZ%NN@2PN˄erOf:0ms'CotK; Hc|/}M&8+ [UlҹN 9% TGw:b ߚqˬhKGTxW+`h85j͖>0k)ը5e )9}C˵QN/\2YNs`Q.,qƌ|kQ#B_ \ nnbC\1mٕUZPV gɳ\ߔ";]xix^-hK%*q ,}ݑi )*%YAlcAx # hbGd>͐V&@1vhLOl0;7E KQ9A#hhhQ-LLHoó`nA&)IGĖ&( `1 jh TTᜆPLK.AZ4w~LJx@!jiI>#-'+,M ßBb T)h ]&"_Qcg˂&>D$(2DCsҙ;zhLеHI@' D٭ widU[Ie¤[_gSolr5sa6(A/aOC+zd?wKbSI`!=-0t,d-{L!MK {gQC%b˅` NxG]| 11d.5]XdƘVwur50a43 e pm ^2uͶDٌzlpi@g2=gb;~oa_-)*Y ˢoW{^'~; q6G)k2V:VJָ1[amc'z>n8S/t*T`r]Ostk~a'bq:nh:ϛY_o7߿xEFR9;y>Ve*Э 836OD@@#:?|2a@G˷X(3Rן(٪^NZUVrPS 7$ل[|R>$<Pur~=^WT0H]u$/?O=g54, ћN'9H:.2f?79iQOcF?!qɎ*mIdCCn ۀ6XȯDF*XՂ1Vb qVH U?]VڶUm;wwm[-Pj%vt_+yg;ȣO*նmUUۻlm *{Uyhګl5UE AU\c\ۅ e"y5Өb]zDgWl3C+doJ ?$jq+\>4o#%mrHu3lvQG[mUKlvJ|~6 YЀ5_%6Q)@K2iGrOwSQ[/g2|B.vI3\[:?ʸΞ]޳}9Nx*i=pjiѝeQ}` -%X>Mlz6 NϫFCM8 2uE±-HϿ6B=?m=QoFF1t{h5;֛K DMor{;ޘf19~M9'!(C3n "b ww]:n6gyc+XvW9T%8ZP oN^Ezo -Ψ8¶ݳ1 WӁu?kЮz=n/88z&Q30,q.rT/q~``˱sZjo.rN@ aDIo.Z;<.UuD;n8-ۤ;kJsLm|\mDğ`h~+ꈯ;x8Fm@ Ԩs<NW_BE@?#"Kه bz,6YRmJ}M#EdMhM^>rK?d…9M&4/q'0oyѧhm"sXr:?r8S)na/Ih`#7˫ft 6ow2[ 5 dv!$G(z}5aV:\6;M!Ɖoǻ{ 茴w#y =dzQS2O%Ow|ۆ]D (û#=0[\?8{³ _;WWnА!e(gtA1ڸF:Ox ~_|]'J~Wհ>i@Z&苁\EtEHt׾|ISnZFY QZ:X=c`V u9F긼zR¤j4靥)! C!B?Ye޴-81Po=xT.IӂLK~m4=ȴq:]|k)P{/ ;]9h5a; P* "~t{,=V}#1]MZ?}e.{l7{?^p@M۬6ki{;̴̱A>C ,@ܨ"||%HR:fՐx ּSV ;dJ - fDA7|ҋߵG9͛uNA@Lo[acqQbӮcLݷGF6ߨDg'uG& L.)l}HAШrcF@?04۳2ZbX'vu1[esGvxnLQ߄4X([+wt}>q3y]KPkU)ZkGWL-֨y DM6L\dC\r˖CQNu9"A?7w)AyPDˍn]ՖQ\;[䏟h` kV=IWQ-1aje0F^I@x]AޞUrziϣ) NM 땑.{4QtaE )cC>qlApz랉h<1:;2۔׃OÞ.;Di [RQ'`6w iԱ埣VxG.6Ljuֶ髨5_V|a1W7kÛ(9_}-Z"~;5u@KfvJ5nED.}埚㢆yj^=- iA_/`v;<_zympGGe|=%*(`TV4'ث{yDpǾ{E40f/N<  niInxEJVt$Q[Pl ^hh|?f^k9鉎39Q^rzza2>g渃,U$2!GИ3C} Ypia{();dir0h^{. h3o<ڂF H'$9d˵OL`{4r!-a"U>]{CcNI xA v ˆNy?H?yYwwFз?gˌ j@G+8:&im]v{Xfff1F<<E<}jd]?$B,GP* Pyyo>y>}|>٫TUEddsͅEѶsjhO(?4|@˿=6/]ыVv&L[ra?Bw,\>9W?lx?7Ǟynv }}ٰ Gj 82!\,'аLA3:ZSZꔺ#u,+gr==DtHGD#{, HB`178nie #*\pX";z6kP1k0󅨙 mpuD^%T3Pٺ3Mt[@1K5se\Lonux]ɱw{ D%ϖ%a(WVy5R2z7MmXu+a/m5T_K b! 7{0㟃u3l@Tlпj)KàZ  y+ܷ09%wƧ |EPhܢbJ=hX25SCl.Q^ m@,])>E6]+Ҟo/ XޏG#71ЩN€8Kl=.N@T6H}xR[xtS/n ɩ`Z-gö"`@ a<w*43h8A!ry/uJ㕮>^Y/7bpu߭|<ѻY:Gyc;׳\[=8sճ<_C$;܃MҶS"O׹rEQc)ϼM|E 0{r RAqW qV(;lС!%ժ!H%x5f\7Ze̩-" clX R]͐7=YEh{Gkiomiƒn97QwF 5uEZ !?UN1g宒<.X&ōKI< cV1{ZD97*wG!!p-gMbV),:="!ղf 3 xI+URx%Ū CXdPn)y@ѮjeܺPGUkg~g5J@1`l׬ L{r㋷?`psӳdܮޛ_^n\۶cVWy 8`z<=(7p ) Hl5ɧ:ͦ<#㳞%=3~R'lWh ؼU{wB۟⨗OFvG#~o tmo6 Z/X:ԅ`, v8@l5$H n]'AxܢzϨ[@k:R&<p6S5RmsMb(<D71 ? zۚX쟱hҞtYQd%n}ME}դ.`ǜJ#g77kpm3QBv-uA0瓤:^96/tp% <>r>g;wO&ǹZxDșYN(G#jքoAȜG}!䕹st\V9fXu&~^q{SLO2g{s&3hc5s7;R !=8ZsxIrVcM |} J%'.9Oe5v==XN6Xy˯r\-E=``5(A%Ft䩃<9d\|fm ۻqR #@ƐN:{?tqe*t0Rjys Gr2J|Qu"xz|Ao~^[d/ 2Lia@ӟקxtYh.[*{^O'1ozCZ K3eU^Ji2B#oN<\`\WB۞b896Kq4\m + #ðڷ//h9~ZԔ/zz !Dё@,9sh^{m>ӠVөP6ȉ^,.4F Ƀ(k=P3%ΝsoAѲ~tx y 4KkmWLD 8ft;⨊ 5[ht$[ȫhѕڒJoUz2YX*/@l2J8Y7:bCMüI7{E!|s/mPth!+a~n>}^~]U-Za%ʍ bp`v )f1+*ABǝ1b{>eގ5T⓲DX[m!Z&ٮo Q'jU6ѿ϶/,y4 *@~SbꎫCNǣrfVQ`("QDHʩn=!%[}-zRɶ'6'-v  D!'FӎA5YaԨ7|࡭ۏKDž<Ġz}`ػxw[hp L7}g[4 +*iGAmy3ؼu'+ M!.~/a''Vqnlցڬ& 1rSh<|ۦ-:\Yn^5)zc_bszqtF@1K,}_(5oԷ:z=o' -K{F6{K$wG5Z3,`|rž4/^^.YlO+Vf'~@ٌ qs%WpԔ (헮=vj =+yA_t^p.QvO,ߞiÄ `8?T ؤrÝ"x@Vx{kq}wf_`ԨjSm}VHCҹp ^~;m m9@Sfd7힪/戀ĪOͻXc ocf捏.Fׅ^f6(}Ϊdt''~B$ ^@(T825mxw}Z %j(Tl!36L[ Cx@svЩ#?hz BSoWϠ5t ͷD? {v9r[cZB!8b6@zp j;jS_[U9ڀUȤ;ՑQ}v!.ԃMco5lo6em!2MG 9ݏ-yx`f2L_K&eT#o+>|*'M%\r_e=,-C:2E>s"W^ = j0D=CLk狵 C˖@6R* aE PFUކjn3" ^wzA?HFث89y =) s@yth5ib:]MFe?3Cx`W AeLHJźM>wD6EDY:qG0@dq [WGK  *>)!l^7";i52)j*IAWN|8ngDg 2p\3rGv{ZWhp)t|uHm"\=vsSW>.:]$;9ha-8/fpeO|: [$7`ڟy .K#jZ.׹ ,ͅ.τ/mɖc$ga`Q؇F;t TKY\6{"֍P,byזL"ܡ22(oxO2jU,*"> dà ֏ͳLr >XF .Qoo0ݭji(#\qmtϡiv2T߽\m)U_#~,8SpPAGEsnmNQdc."1h re*Msu s/!7V(=Kc0{=L桱rFDzf\j`AnT{w BV@t9k'-[HƐtbpp90i? L܏b̝=4qzx Zo'Rg^CCXJxӬ0"P_8)Ph?GjiCXϺx Jj-z<^ܪOē}ݢ Qd7٘s@/޷6,xFiE/!x-c!ތ+<\@A.s:ɅYcTPP _4]\ڳxuc҄ں,.jI&9 ^D[;"hU-ťpUb|5퓘L9`z:Z 8_./Req>u >DrCSdVLnqvI!2hj=gߑG-EJWM:aQFȝz'D4v$l-UZ[_`K/yPg}o?a4eDk3hG×~E9s [LQLG3ǔ VA͞OSiKS3xdx Krj1QYYtJx-EkKŪq>aW"y29kù) 8s?ߋ.d0.M+?ncqJ!L%X<P<3+;hQ1Q ͼ+jܡ"UU Tv{,G6g;"-ylG%ko?}ɌgPCћa+"2۞Dv(QFf\R"/]1$Ƙh3(uJAŅߜ~6K[Q]^RW?p}t{Z?R.ftٰ7~*Oϓ!ôa[jvgk_ȟ ]/wl.7wa^e4H;L:_|) }e0*gXQ\7׏McXvЮ?^[T&c;.7^RLFtBX*p*Y[E.8ŕ9gn{G}RTKo:On"%UQ7*h=ڬc׆Swl;450 -ZțCH1Le a'OQ>$'k2N뷼_e.(U:,w-nms f{ Oj)BeLBK"+>AΝ?7 6ωv+7'2RTw¹*CҸxF&ctr) E?3UF2k{j?ɰߺ!7 y|=;?)7L:Rѕ">)*җ~8JKQ(|[DFE^ Z8LΖ7VGCQڡf dq@}}@IɅ_)Mz}u8*p ?7Hw*'apĘpub}h2iNԈCa6#෨KAnBA%v+QL@r `r;XB+,945ݧovu>XHI'{o㾊,:FV,"}oGf\)E%?L6K+C;$ ?$lb[!>Xo^>[ l6.(!ni:͏J "T2:Z׮JF`YAqmf.:Yv.~=lOzO'JDDI&TIQTvTK:5"H!K(prcB$RqoJNhŐPaZ\X73\q1GV9jZP a3YST5nG^2<`GӗJ駃f\JAJ1e8,A0n h$H! b jrW`'n=GJ` =}<ݥ=Yk3ᕸ#i<Ϫ"I7xh B4b'ΨTDI6JL㷆h_hG-+w tÙ]!T}fP4.Ӳ+nPD״`o:7~?BKBBI1̣Pe,!:_];vb|%7 De~|Ez|NU sl[)(Am%C;sH<#a!Wk0\-ʑ!20.I46=&`n% µaLr:D[ctk[>\$,5iu49.Y[;(+}<+ڧ=7 ,w;6UwJ禶AYpvCkj-47 #ҜZ::|5-9o9Vא!RzPaZm.͒O>mq(9^9ām ܲwâT淫?^Y?5hpUUq@s,β]{z_74-Z->}'&4ȕN˛CŧXvI*̄fļ!NlSL9 Mm0!Bihb`jNjD?f~Kݟ=w|R8r\5.SkJ59΀fE#>)!ٚ*>g)!Gq1?a]yTG&{|]($:w[h\2ˤ 7\,w_ג^XgFkud~4>H+MP`tT:&8Zn 7Jۍ7ْ( 5=)(:ROС=dnht]WC^DYGesn`7J߷q+8f5J+U.eoH!0[.$q|ՅcSL!L)Y dEHy0-":\Qfb !C}A,uơCCx~vJ&Zrrv?պz~vA~7e陈r\~)((WhATi$pS>=zsc8"`ˁ|ը lgk11(RNU> L.qk?ϓ= ׄC|12韇_ _>̦)ew=Lē_ԳXEx$Y lP+x=4eMhx|ǣûZl+%ĊIO޵|G?-o_>ar] V`}pQa|ƭ-V\,,Q괁vn6TVIAB`=/63F;+sA| $=my"c_Cpxg *Ӌ -D `}oJY)2)W""k^TOFclOý/Ugo!F>E,&B]Kc҉!yᵒT,.ɭEe]j'QHDR@ A8_%g`ϟBf˯=Sa0rzw۹ۺkA)@.g^l9hH4:oQKJp"Y؊6~˜cX_AßYYe ybiD;xݨWU"0mS$&E% :|ipۦO1Wq1XVxl*1?+vSƲE54tMP|ta%bgůŔrDd!DVcƞ5xQcFoqig8b!LQ'֐ G[Y)@8mtAhYk/S6MvR$郏a߈;ƎJ蝶d;-Ű[K@G=}"䔡$ N 6AWWxgxvKꢂJBQ$ח6'*jiUi;$(I7R%O@T{=›8E˄)4xX"2% qPa .ԗ?<б8jLZ/b7 b[DZU[*,泹Ws:עHufe+ͭlVk1O A;܇VyOviCye=-tyM˙ѥʾݮdǙ3OtFt &u\5Ig 8ɺb~Y6D$C3rន˧4o7Oj%4d@}d5+ɢI Kv#N$0PQ\bgz"y(U *ߵ"L2idc΍XVQHAkem=W0-&sqQ~ǎ )fa#+PgӪ8w̑PJfs!PbpL;xA7|LA;sg0L D\+l89[ $ Zp'L:V#tsM)GG٭ExV̠PPg$-l$8A\q&_[*@ARCQQu,;~;3Ol}z8}E\e7]ihr6^Nf7t]o?Bۃ\0HǦ˧B[R6yz~W!5հOAOdAV{7kzgqso0:?ətruXrhj&Zcd:\r{ 7:o? D  <{]nI\LnOzs361?ueDjlpWC@* Jz0 5rxΕd'dk:CTH:06~Ԛ?{~}j !Q>ingWZ"f.i{8`eD]g# BlajZ76 prUڝqӓS}!PyN$)D;ѐ\(RzpoQNM\ v 0&?Rgt sNXtcg0D\6GKZU3|F0gK]k6kW3G}|ND&D}h[ >: s"$T ?~z 蚱Z ٔ-MGb40G,(Ҭi*d~ߙYtҞu/zz>` EU%[THu m}TY({yQ89ye h,Ȫ銹љsTz܃Sk*+j/ܞ[үHd"jL"`vĸJR< Ĥ8<"e=C%yCiShAsOo!d,064Ϋ(C蝎@dovryW(OʼYb:GDXhq2~#G.SVx ćB @ZQg6.a `%61dtGNd)q~'tuyT ߍ-h-(&n7fHc!cC Jrk~3&Ǝڙ]d7f+Sqj[kl"NS4Cɟ.8Z@>Ag?˕GCgg; \Z;]n؈!.ok lnRY9-`=N81T_ بf'\rwksshj &9`%s.>-x3*tbȓȝ,kHnݲbH(V N''7o{qCl:6 lPy/>ȥ"3'‘I'RνyR{H89꺪Kܘ9|ƶSt޹eӷhd[tzW]75S`'#/̬ďh;M1eqT?א΃#xhžko -.@0? L|[gF i,:B:@OeZ4D)(%Ha72>ǾuXDt$9ŜrcQ2'M]hFlIoVȎD\H`ag%\ 4:~[]mAȼ%1J` ;!=bor0P4tZLa BA(G UgsspDh֔p2n Ҫ8JqgshVj/py{bb+Q9nXv9^?<$H*8g6}~C !ڒO:k\-/tf@ wcQ": wUCdдTJàRrٱS}X??"졉@>ţp"{ó=vrTʃ6젿/ab$ |w&RJŠۇ_>VXq Ȕ<==}׆6r]~+KZV^_k3 S%[@\6M.'#miY9f9x1UtӨO2R˛axĐp]5ÿYhるшrE'U%" k8ycc 䇮:ms>5l} ]gg ~}T J%rLat=?Ws9? w#^^Sώ _SR67|[׷zuoeI.Q)x=WszpM$ˑ̓1{2C94R'nD`R(QAJ,좶  ?ใ"_p{g rWv:ƏL5p|M5'?ć*1((,^@ZoXLLq?Pg˟Ce5# As g<:~L^CIt`y ؽK1)RDysAi,YDBAtNt:т}bR][wG&'D-cYBȔȎsXmf=Zf2:&)5EG.$3 8Ex#J5J`36SHq T]*.}; Bm)SzR:צ΃CYn8Q*m'c@s%LөӋrbR1ruJn9ǡ|cΝOO_UR@BലDbr Qa8ԴK$2v[9D GQz avKdS8~z,/l:/w o u{T2y(@V+ћ n…^~2;瘞B&݃< 9a/IeO=>+V -m߂V_3kDk~:>ߢ~o0魔:d.ӜtYfHfwnӇu0mf= } LCeQ%D) PI,\T [Fa16T--$@" DLW>vL 4[ĕ y=1#q4)tDۃ}2'| 8֋hL;u&\+@8݇ wCÌf#1=k<9-R1;HQK} T`j 7\ю&8*WkȒ՘_I<+yB_Wr?~hkMkF >Y8IgxlH465/#,:XJIVE ,Fd][&hfssw1{k@q p(7y7ܬP"aT:hGՕG$^t3x^y;WAqg?w\$8u{l/G]8w ^R1XWϝ9ٙB[xmó$x{ >ao@.Pk9ƠcjL^ػX=^<:nj5IՋZ:M 0u 4< ;"uc6bߩy֣Pe3.`&pi,A>ʯo+]DDC A"$x}0-%oʁOQttꜤb3>{" g*MU1A;a$9s 78̞h^84>$.xѺ {B)BԊihb%B/s9 -^BKX'͚%-m3 [RցpN|cC;loOmطjj83A]++ch)F1\%zza(ʌBOc㏮ff-*~sǯ|ɋ~]Y]}t{rR`B_WiIQ!x4XTx>}+ nH>կ^h*Pp/n2. cﮑmjxU*nv$"]gcr}يG{ӭZ@գOR(A"a#dT}=Q&A l;zhhŕTX`~>Z\i !ߥJ{ȎhD&{ut$oթ<>˝E}E2u3!@mYIpW*ɑA@7i(] ~P#^c?n($8\]<^Tj!}~owY$)k7rv6|azf` آ"Yni^L0wx;[/Phh ZGaE9%}X[{c⟙1׎;vY|ssЋSRq纾PbBW6>[׃9QBZ8T3U `ͭޭ:4PWώq#XW٧7{%nB Ijӷ\҅Qvnc4Bʄq drҀyY*18nQzsX俸y9'vFDe$oC|ԓs$]9pYqv=Vb5-'gM[OW 7NPgqZkd_] Lyo 7(T2MηwzOQv"]! RF `Lx|Z Ymgq0/x. (Pbi]3cO'bO̬x׳$GQDB3LB'(BuX#>!4ѹ*@= IUhdPr,:c 76mq(Vtà{a((̢-dL9G_ZjQF؃P?+'kro5'2oG՞pv I?1-c\w&6t$#I؟ lrZBIBΝ;+]&`7ăh?;u134R$ɒn!uS ʹMjó3|}s5WΘ@]W=$4Ρe:>֘') %(`G|۽~[xD4^5=m70/ l2?G*~DhY8+Bibp[ç/%t'8./ib68J Ұ^Z^W %|ٶv/ a yWZ,H|Ą Ny#azKD4L^ UGL!y5/HpkKf -j (JjkC>qJͽZ}&' 8<1kMlo}qe*A8*# [6ƛ#^㜝^f>bo威${gȜo^?/?ݧ_3F&8Oݓsr/!r!'(a;ölDc[3C]v11.^omB3$0_ǚX#NV)Qz T}eĵjgg|Ϩv,Tm$Z03wv=L >d>!H֢'Af?o9zYz %n(q 8ǮaE߯GEO0_+ јc=5 Cx*l(1!s))nZJATon`jg(c dhRQ`8xh/Iyi\7g$3v!1r]#(ʈQQCW/PPNѰ]=)p8/r[7>E۝(=>!7WsysFݩP0S V̽Et:[Lcz$)-Pb y';Z( NG>Iu(? Q *`U/@#+z?$mvϧ.*$[:P[t 8@xz# Dņ@05F!2K)Tt7sZX(D&Iޟ_Ƣo\7K;9&!}Sd1-j"='(۠sIDz7#-ED7L_]/p"48xeK:TW= R @2m.X^hW,{8Es~D+FφTdW> |т}M_&aK-3S2GUOA+bؼ+`lrPrN[45&L<\[\$>^?ݯ!5mRkp8=槻۫Z1dl8@{{{<.rV*GFxm޽iWi& ^dfs5LK]3C|05/a=3R\dd|f cY+sNzYLm:-]jq_c-K' ϶>{t>ϚKn_& @ԵmrƬ|FM~Ý꼼;}׎–= N jr7᩟/3NNP1b>liш?s:В P,t0fl4ϦwD|=%m:=mLVmc~0n=*'a}?J;wt5z-s]8|VWjW mGN#;Fe!E>_W cǑ/'R>}>wIv;c)c04>dh?-nHF#zBs#pQM߭E٣dtpWBЖAx >b 5f >Q!ˡ`P{Z^[>jǞc0bws*ڣH'!}WZLpgaϋgY-0@<)~oB)1(; 'v;PKw+=w :P}_[ ;EeW- ꀵ0# Dǔ7㚷ܢ41IQ> 7AJfx~?G2hc9}ԵИ)>7XEM+ Q BK^{8mw.#&)s .az1ŇHɯl\'_kgם'DL&w|yޖkJ(uSeF݆>GCPPuWc/"fbtQ20\C/:YEwZwI[ Wv@yxr'ˤD* u)wqƺ(,(e^ @Q*?d Eakz*3i$53kct(mzKʍ[$i1o?}5_4 /QL^p8QBTd:Q8ׯ-:2K=7-0"ީz+%"sk=AAeH׋Ŏ8/tq&BָQ8,W_H~R@iJ#fMȁIŋ-|,Vz*;s!7B3X9O'zqc;B\( :g)QPQeKټoO7u5/K8ɋƎ;"كt8dpƤʽaFEc?mRҗ5.k扜GQBm =c+OUI>fSCjS&M.8E\ Dx^in;'q0p+׾[r_{c@9T8fgKS\ws|8L|PТnQ 'N!8yatCJ(09|jkxז*xXYI%q1WhڣHV8;cJkdaA1\.Q|p tKW'oƖ!"st+"$lb|ч? E<\}u;i"7)Cw㗕7!LQ>c]؁r/kMUw.1l:!b ";sw:p✭x͍Ͷ ֜=:pq1qKWF9 V93s-r[3<2gl1%Etf031w\u㜆m5ZXC҄;;5";}gf'lMZo˞ WB9G+6eͫUTf %*,~ƥD|վxUb"Lu,٣kquf/ d9P,#sj ]kwFvgg}s1Ki/۶m)La 8!uݴܾe`˒rݜ]Ij%?[>j83ϓ;Y \(&VeQV*IԳ2Ŧ{3x>7i?.襺Ρ6ƞ(sǫ]y HkP%Y;L[,EocLw;_xɶI]BuDgy:kEXv_x5fKp3qF#Гhx! 5٘cAG>ԵgN)4Yy6V_x+"Vyjk6dA RNvor[%q51q4#1ǒ3&DKBxms -bG;w[e,Mm^sMfӊ*#;[PFzxLj]CmxHɒ2 rqkN2Z@ǬR'.xÉ׎~ `ˇ?|l^q~͛q0=X1bD$j|Ư+V6h>LW#u|\#E'UAWu9rjK(eՄ'MKs!`ɘ؛mn= ozeZ{ô%[dI`IM 90f];lpmI,﹧{nLaM,8#oOf FԒwy0jWBZ"QJ±B\%_/ʒ1'?@c`홝?F㽍\/uh'."'(QD^7=`yIwqC;(KWgfe[<hm[I# se[u 8{ `elC(𰷕F<(s6цfNhțźkp3ݹyɚV<-0%vSLC}jCnqX^ @HHt,D29$7LE1od~C҉[]{ECPĎe{:‚zPA3r7P缏t 7i^hMlԻ@hj1M UMOG|>sr|V.N mb=[$} xZ\Gsu8 n'~=Vx|祃vqBnG,;&% -0$}T:d{_lxޙZ/SȢ%8`h~(ErL©PY8[-~+\*VZS~ D|*ɟ,s;3 _4{F.Ks!o(Fn-O=cɬ@"G=T%ɞ5M. 4Z_MP^4"# +|Z@NL{3!!B48ꊭ̎j??%ѵ诤?N Xxf<>V7Z)U_ȏެuV쒈rzZ|ܔd @7ۙ[_KPoC OΠqVKl]hu(zT<4⾦]H5eYcLőg2I`2n j ˖A(jُ>5"qQcDuSlFSS>?ciD1In,0Uh8ۭ#9V3.Eҏ=jx3®Sb p:w2EcBJE.'Z[ .0C =/ 2@4֪@/~ڳ+<9M٨m ;Јй$FL/|s[ L(R4=>PplXWIvD'G4ˮ9.\TE('rsztC~%ա>ҥip> K@/ ^@+)ʯ^^1wuLN/+m8j5*6: }t0ju 0Hrg@.ו+zxQd`MjH׈yyP߷ }ZU?-sqzvAꨎK ܬim'$aDSzE blpZ6y;*&9XO'@UF(YcG d]#͌d~cخQ%8^XWIʪ &2P#?4/w7gBXNl֘jy]IJQkwϩW2*GZ_H>Gb1FD"n, >k*f1Zl^u+L מ5!w,2P&L{"2=н00~.%a@ZGL6}޳k:I>WnnY1'mQLtN @lqog׶oU5 پ+KXl:M^[\gNV}pGMT&HPV`D(ݮ^rWjL >_Y=߲*G1U{Wgr.pfȃrt/~,s/{ڟvAE[# eUr uv^ȏ>]CFKuK$ nFS:`#М3*6Bb  b b­f :!7dF~uQDZٜwc0H@ن0ndf` |ߢ"-^?:]p P\C=䣶]! e Uj=Qؠ@E#H!ׁ 65QD/  ꄳQYHK6 uVߔsP "b}`3ŜfVLeF}a<ԍٽpg.y>?',a` ,!Q/Cd9"OK+lƇdPYYy\}LaWa5Kr.D{J}56yZQ]X쾿CqDnjܞ~}>}e"L||?޳ M<ѷa)k'ֵo̵'@>AȮid`s_˝.+7-SbF|e'CIRUGBy/X+6\wZ@됔sβy}(f3U{Sܶ6T&Y|uv3-\ ibK"I2b{; 7 \؋t_L/C,ƑL5?\^Φ 'Ԏߛ Sfk`/q6%&&D+qub"E\d816A#8e1R(ēNr[kBJϺm3]YmyfPCEsN/A\#xNԔرyzizz_Y7@3W',8w觮7jo xMÓ`HͥBNK2Hݹn jJm'A` .y}ߧvVMҹӞ#4^͡Ϭm u@D~Hm%J䎮G+}!%>']1+ۓ{o-oU걵rUp ~.8)/1]"7XT"*=E#Cxr.u`Yvn{RKB|\ F:44+DC߾ā6(3jR>d'3sGIZ.vƟ|X(Z( )tU`Tg,z JGC_64R<۫{?Rme': ptXPg//H>Lwq@IHLoP>8 "+&zaZFѦb4"%; M跞̰ZnQ5Z%%l4fǝd$( Nr9~ -%#̷d3=R:UIKgv:[߭ -{E$?[j[MI{b.+d S8b=R{R t,$|!3_wvTM;'_\Ԫ|p{@k}9`P9ojNu|Tc+pLǻG?/#n35_?|5PHqcŰ(\m?L]fUpw ID,_gbߣ@џ? QdXdBGPR>MNjxf^ {ώ|.EYmGm<]:}It{-hfKUO9C ,Po3"mPtdBWa׻/N ,eJ,!E&"@ֽﱒ$??w-ܶTw +s/O(Ad_tO+sCoQ4'p^DrqHJHX D "i,k LO| tp ` biH EaOR&muCH: i|"<@@_{TjT/pNuͷDGo~F~n!,p`,ԣW=^vm@@߬ k/3wCk^ajzg նNf% ?bU+;{Q>6yy=m[&ӥE1rYFu*i1,5M!EщQ u?[GEfayB~Mutإc3'PG!ht'Iy2 ^PRW.߯DD%[?.DqZFCq`7[7Jf+??rǟm=~aNݺi~{ܳwA*Ϳ0( PFRAZ瀟ƽ 4|m8Ч0RGDy:ϖjfpJ{,E=PЏ>!5bE S0iRrGS*O~=utWgkKԞ6 q"n~wow:2Qt0 bxb*5'ֺM7th}K[e\EQ9:j@sVTt"Q(Ȉs~MtkլYobADAe$si/'oǍߡW j՟@6I.'}Gy|O.k>>c(n񠹒10=6&!'?&N Vm\uJǧë^eqgT?ϯWtF?Few>͵Kˮ.`kVv}hh@޹| p/n6G7f Xv<}gf~w8>G~Y:Q_E]dbՆpXTt[ሱ1Mu`u;`hx0hrv'|)`5mӢ,tW!}@xFC gWCwtu9QHa  x}Uz%Xe2YGћ*oo<_Js{H6aGe."$ťID;R8C$CEAm T΄e> ^se1pgh(QFhnү\׹tz0D7N EʷœQk:#a`c;n&f9/%=9܎tTcx}TDqk{ϳ r ø$hJY1y3*u+j~2|T'g|%!n~V6>: XqV${vCaQ*3xU赎[qp@.i>=W]#,ve9_9Č)gGnqg}_<1aY}N)NT{66o`D&yqik] "UQSVɊWSqwgKEq-PamS DHQ;|oDv:9?)$X{,6ؓc~?R?TJh(Ao8Ex]mO٪lpPy#Xl oƃJZa̼~0n6QZpLt# јyřy7 z\6l,2tP?K=6&K*z:&bNa6Q64č ("?%O!@@`3{ѳO/!"ul{jY¶:_9Ov7_ x& (xM^Aqݨ_wT馝8=L9yoLp%Q׍b `DſOK )Lspjv ~D^5 fqaxZ IP"#waZ'1VZ]d08u7LR 04L翫:n/;xqU$j)ݐ,B$`,c2 ߾#dFvs̶u$b>E%Հ1Y=ڀl-,{hMB)fa#F]:ǜ;C;;- o5!A,8Go:NO0M:v/@JP `q`JzP H)wfuߡDj$jsӐMIMD  "6tG6~h5{fm`@QAXtdr:f㏏VSH%[ r[N<!yzkfNQm81܊1)Hp~h̹ᗡcP1t#K% Vl/*G_[uo_]J+l 8Y:u>ʯo]j}_:Fo?< ȽPD!$Agej.:X8)Kpd{lٯsmCѸhlu/Gq^ZȪBTH:'C`mQ:\C{[M:,8U ffA.u5 h_av .C(k"8NޱX(n~^4se::9taRWPPctNs asm!UDg kNŃ:3 4gd_C@7NMY  [2Ncd }ՏE#q~N<2I'uˣ_ (K{.!Mɏ'%<ιu=yٔϻ.UqzI%nPhSSVcfnu rn/ skhUX#< rAYu,^hh,L]>YeV+[hTs"A۾3\E?/ #NJKԵ8$@+K:RF٫J*6?zj9f2y})ijgK;չj^4vK -&2EUy2?*QI鍴 vAΏU C "D*ҶɷA=({}?4)Y1 ,:r Cȋg]]52]NUbԮL5ڥߩ-Q ** %Usg}b?'1.~D\r@;5|tµ/ TyBJnɖS/E8kdU=F{",- 7Ro\.} -c3p*gHjsÌ&bSPjPԣ o-xY*huɪJ:}6(c ޷o ]e[)X~J")˲cGuiW'8e0n 8nv r7"qV>)"1LSXP`$$fԨ̶,FӫT~cbꠟ9p:Jc{ComG3ilTꕝ6){l,VGFhn-+!WNڞ)g(8t?&Ggj*窇 XSK܌;1IY ]+T>" Z3џ{qYz~fFM_@U[JPlU8,8UlD/]{fZ-.mխY΋V&s!d̘|=RX'鈱mkC>47٦+h0\ׅj[HH' |"ln04p-tk'L-,8ϸER& v&LߊS.҈wG)n.=\d{АTӼIϬ+t9SoRu_ΌJyP>Yh['┴`S-TEEsy!#&^G:ke ( M] .r Q[$\f_b"3,*>.Gz3B^Q"ID(cMpH8]ֻ Y$JH<8^'FFLuHF^A6E&eXg\5M K^弹g^'==ޢRg0*#t{_i5@k A} D3+8?D88UrOA?DjxY` VyGnc\ۦ.@f#pDm:-IdAȁj AC~΁ETDZ|G#g[ᶅfiTPz So4:aN2 [z6Fbsh@&!,Lur(1X{F\|Li|8;ԙ p["!g˖C짽(f@_CWşGge8k8L=AFXr@4 0P>#ݾva4Ht "s'\B|KL*g2iHlxb r0:6X/ID:Yf Epə C0yw;cu⣞苪̑ZǏlOi/1`١Ɂt%'MFŖ8S|Eby)/Q=c-ΪL,qJ:^ۏU\uI]2MG[ KtaMDw]A\)3dNjtM7vK$^)("W!aU1r:\*K+*%SP1>oWԏuy+oUڍ#˷l>EI{V`°sA0lb6j<Ȏ5kgU*inXADl3MAtAO/5r?};v}%zMf. Q]7뽕XM1o u-{\pmu4DWjNK:vv.PNkS+'^E)<{zzl _N豨D (\QBy  G;np6R{d/66jÎݣYuq5k?C=z ںqArD@TAڂ8`!Kr`Mm ۘ"b2gxC-Ƹ7 Z/6F"J)Sa::w@OD7Pn(R)QytWN1G[JDE?Sg޳ 㹸@#*ҿw]^, B$w)'걹s'zyM˜6G'TTFʄI$oWWnutbkA̝X -kŰ$mRNR$'"uɯµQzNtBZJ$$(d((((j(j(j(j( ZUU]oVfγYe{ݼvrUY:N]̛$ےY\q}V߈VHe9ffU~`}BHp{m:ILAz6%mɐ̶EM^Let8.30[y=~&D3(\͟w>zb!込9u#Ytئ2zՈM$wb,L6X:" c @Dix퐙fZ[Z܋E-Ģz% f$`H,"iI&U (I(,55 5~PT%l^JXa,cUwXo3>}0uV27΅tX:,vlbQ $lI1lᗭI6'W CmYQr|QP&l%+vCIp 1y q!9 N ۏ{?p^97Z6"o+g$>=UIIwu5$xP-rwڮ5- RMD;Pl+ۿ!32I!绁bs ض^;vđ*7{S $EV)B Ch(TuHTKTQ$f4І" D:E)hi:.JBEV b!y,-B5v`f^`CA%I?MҥХ\$y~,mX1&I_U_38Sç&8VjUa{Tpsɿ{"N\I@6FM~5zmIs%$bnfco0:o{ vtc8vG 4yP$h&!4J@K@hs;8~{ 9?ז6IHCcřX1 m^䕊 Ť)ϮcK?`P;?854"1 dljŮ1 _BLjvl,ptc( a% Vߎ16 8+̷_<$B\DnWAաLC2׹DAYsULH4ua}D;7&-xJ20h˒h* H 3ki+%,@[e;tfldD~mШdFߙ R!/<-f D2W^V c>՞,>_`W:enM}@ N-_FBymvLKV- kL pdnMNNɨ7ex̫?Q3/'Wbo_f0͌nhO?6G[*.9sZg6e8muW,'JRE\#kŦR)k.:z-fSvη݁yCGO}n]Ǟѳ]pzwǜ=+*~?l $)T^BB,*Bfm0Wa2P7m&DnAtIOGGgHD$w0AN?#3OFWC+ρ'fLc:ɱ?Ϗ%9룛OW 陵)`` .'*?I pYP Jq$g BٱkԀLsTfifbR  (FI Yك~+[o^JN߿ ܞ=(ؑ7޻@_]|!A *ZXٶDc!?l[!v:8VKX(`8@.5ThCf;)"21:xb֛LqUKKLw٭]| ?vo6ϙkS%8۴%^߻7kpoPNsm{z9I;|c6WkgU,jjsKq.~8LFp{U- ʮ?;{V?T*`hǦm, PPpE@]j-busW|hw툭VH%LQĄ[🙱437S#Zd)N2RPMu EaxJ03l{+Zw5T@X#.a[ a[{ض/fxRROU޲=}dӢ,AgȲ= PPܺ_H{~g:I]2Q y& пEs(AG]p ųwkz1HiB ԜC:1\(,A#̡>ZvDmud"CCݷKPe7&c_n4K{1 i7;>T42\в/IGY ;!{X2h/?RVEKA@j!'·VqcYg/"?TW;M ` xίD&̔QVq@J.ֶ.L  NupGMDAQ>i YӦZw L’2`7o:#HVِF%h"Zϑ\Oa2@=yw6a{BԀ&&$2!{u>w9[nUlA$g}DP.Ƃp?Dz.P\qj/Ѷ<MZCmj YGus~ps+sbS!M@aϡ5 9$J!w,X{LdRa;`J40Dp]Lgw fW~q9V0 0T*bW!Ʀ_sDJmzAR$e[bUEV}Q,CD&ạ7{$A L~~[&X2a7fE񅌐. =EӞSïJZ1 ;~*;$tSve$ Q&CIVRd1w2cQx$!7 _e/{-u[. m˞67ۡ_X #  =:@$]biдp@Mt-Nj,:@"zoWw{O! pwW~!E{< Gөg緺MiGVf7sF\ ǵQ=C GEU c OǨ a;6E  y~xշ5I0H wTnt)rȐB[#l)L PoËC6P5 ;C?]R#Kn_^~hҁf"NWSk讣,l?NGQ xIT[k{0uԐn ~ 0Xgr0K?Q0qR" ζy yA@H$Bɂlqm.bz?A4E#u ᵋ^<:Mt : <1.{O<|K E б`TsA ϏXPᏯxd4k#Vd@@TBC_F__d:!H[9\>'*4}GQnYSN;8<#`R hw]JDLAH z)DF$W։x~1Uc%CHELY-횡|f*Oj9bC+ ,Fj)80L' u6ڂ 7QQSr"3tEk͵299o(Ul;3",(Z_GV]Ǫzba_D jsu;fݢ/8|a' E@p*E;>VǖW_"̲@lv$bud $ aJ>|\N 0m[aԮF 2[J_F#-pQkk?σ`IbBD &CqrT(}צ8p&$XY 5KabH \%F >cOTnytҷҢpE4Etv8AeTzcۛC ~OKZҘx" 4 UZ0横?]mN%0%xxS[J#tӮg~c+Dt̗(ZgQni,M>?3 m7t6iW ajEDH:14X(\]%1BN ,ĭ~hhDXuÙ!yb\,AsnEk/`d~ uL qT N/ҹ