summaryrefslogtreecommitdiff
path: root/samples/bpf
diff options
context:
space:
mode:
authorDaniel T. Lee <danieltimlee@gmail.com>2022-12-18 15:14:53 +0900
committerMartin KaFai Lau <martin.lau@kernel.org>2022-12-19 14:21:05 -0800
commit68be98e0f4191abc64c871e3e461f275715eaf67 (patch)
tree6fcebd2b0a0d50eab3042f2417678ca80303c1e5 /samples/bpf
parent71135b77aac75769f6dae81ac4725405f1015d22 (diff)
downloadlinux-68be98e0f4191abc64c871e3e461f275715eaf67.tar.gz
linux-68be98e0f4191abc64c871e3e461f275715eaf67.tar.bz2
linux-68be98e0f4191abc64c871e3e461f275715eaf67.zip
samples/bpf: fix uninitialized warning with test_current_task_under_cgroup
Currently, compiling samples/bpf with LLVM warns about the uninitialized use of variable with test_current_task_under_cgroup. ./samples/bpf/test_current_task_under_cgroup_user.c:57:6: warning: variable 'cg2' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] if (setup_cgroup_environment()) ^~~~~~~~~~~~~~~~~~~~~~~~~~ ./samples/bpf/test_current_task_under_cgroup_user.c:106:8: note: uninitialized use occurs here close(cg2); ^~~ ./samples/bpf/test_current_task_under_cgroup_user.c:57:2: note: remove the 'if' if its condition is always false if (setup_cgroup_environment()) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./samples/bpf/test_current_task_under_cgroup_user.c:19:9: note: initialize the variable 'cg2' to silence this warning int cg2, idx = 0, rc = 1; ^ = 0 1 warning generated. This commit resolve this compiler warning by pre-initialize the variable with error for safeguard. Signed-off-by: Daniel T. Lee <danieltimlee@gmail.com> Acked-by: Yonghong Song <yhs@fb.com> Link: https://lore.kernel.org/r/20221218061453.6287-4-danieltimlee@gmail.com Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
Diffstat (limited to 'samples/bpf')
-rw-r--r--samples/bpf/test_current_task_under_cgroup_user.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/samples/bpf/test_current_task_under_cgroup_user.c b/samples/bpf/test_current_task_under_cgroup_user.c
index ac251a417f45..6fb25906835e 100644
--- a/samples/bpf/test_current_task_under_cgroup_user.c
+++ b/samples/bpf/test_current_task_under_cgroup_user.c
@@ -14,9 +14,9 @@
int main(int argc, char **argv)
{
pid_t remote_pid, local_pid = getpid();
+ int cg2 = -1, idx = 0, rc = 1;
struct bpf_link *link = NULL;
struct bpf_program *prog;
- int cg2, idx = 0, rc = 1;
struct bpf_object *obj;
char filename[256];
int map_fd[2];
@@ -103,7 +103,9 @@ int main(int argc, char **argv)
rc = 0;
err:
- close(cg2);
+ if (cg2 != -1)
+ close(cg2);
+
cleanup_cgroup_environment();
cleanup:
C^>c G/ij7ǂrBDA1!JWTrْY- ׈)RAVa2ȓ]OpGx 0Cr܇~ki~8ocKuop223Sa[K{W8R7Itj*ݛ j*.hhTIC`!_޺5^GJf-^.e.a DSsID(%@MI!C}kmz*jV'dIlx{r7vvaO/@qV+V4+JCi|HUPՁCxZ{[t$mrvz\$=Gmr=dW^s*~oV)@ h:>SS 1HԟMW/i+PyK4_UaU;ٮtW3 %ճA;z$Srż(9l;~ڰڵFCU;5 aU{$1MjjBs2" WQ-K-5cYSb^kԉ 5hQM|e!faY$uݲ6's71)Nx+/@E]H--*ۅ&ۑZ!.`H'&O9y`r9.#. @Rh ݴ_,ȯ||{ޜg>͓ `dP:lo/ꡃl/"˫?-rOoJd{]LMPzê=Xw"Rؿj;=;?o٤<ҞHC=#+[ڔ«ӋOYb@& b&RPjي/BǵΡ($ tFlѼ/4ؕ;4kըמ +[;ٯ#nӞ:sUoީ'4wq&r$n~*s jfQluMqxQȪ9rq6|r3*yb5LN NFDltVy|PF7'J7bw"}Cy;yVIc\HLi/,Ƽa`jc Cj"i@.M,GH$}gMefZ;]yt烾 ~v[X ݶSY<`vh@YSV{J^ /cV`i Ul7<_"$ )0ļzVVXj0VT!:T 򑖽@VʩkD uf>ItAIX485s He|:MNٙx[M dOST^WgdDW;>ǪTZTk*]xc.[e;]t`PNс'pEx5;tVPmу<,|t:5XrxaX3ON"BRwO+niK#.91TTgQ,Ⱥ$ա =kN9A ot/6mVuﯣ}u7&2\J[R:KK6q}ϿӄZbhFFxq3ǍOER J=t& sO@%㵋l'.`C Sd:57zӢ%R+rC%}n }cY  C/ߛ\/ ʋ%y!Z[Lʖ)ų+m@9.F.eu!gZJ(io\hs م74]UiXJtSG M]Z" CrwC98\/crr8W f=-~K+s\|׶jTe ŮZ*Çكz1qPO$ }$d$),R/qU6P~'^r36ZՎj llWA|~CD ~jP3O`?MosUhq8`Ά<|$ٝ. d՛H1eFN\$zh^ oK+RFR(qhj BTUBkv "թ~Zi46h>itPTUd̛kdЛmQ^}ݭ?Cd^RzH$#IB {3yR^BL #+eLPO@1)al@_H}ɾ|R*fעTIV:ZUnziW x[W.# eIEےN.ď4+gH`82}37qjU62vuIO-ܨjb`qD}ѮiO)u6 0̎_=s{FTm֨^5+~?7U*X;Ȇ}U2<_FxgGQ@Y9̸+\ o0ݍbc@nN Y4L6RO`T*@"Ky#\؜FasyKg;?(q.WzIZ8*98$^hrqJƟLA}ں@]iX) `j;qMЄb/~loUHQ3􀬑CKQl7xNe0aw+[#R"K#ل&N0,' /ua5U+r[ tiY2$GTG؅zA-jߑʎk 8E^0ޟn!V!p !;`NM{jje 虙kF%zfWAj`owH^JݮH8jU 5V]UG&-J")J+e"K W(\n4)֩o+:Xni1N:8=o3ɬ1= 0T% tcDN;Ezds%5)$I2*B@*B^]@ l^Z[ F M_UjHҧÐ A\fCrVqF/ZƆ 褾1+o=;6)3;u}{я3| ٷݳ0?" |'*{~s}h o''ôGg26z t|Iϟa!Iٻy]HU!,p\O=QiWԍVU;$eSwNSHJMrlsjfkn|v3pi,ɤRi.,} \KpTr܍adJoDw[G܏:,\ hB!\96O3R]w(P{Dd1!VܲFN`U@> Lc8ivVy^T^%jsA:924_熐y 셠_rhm2W*\Tih/Q$@DHCl_qdN)Nkf5tYūBν~f`vkR/#?u- i*Ȧ; V^;Y¥bNvUS4#943&޾3.Le߁:snUGpN0Dx[-Bo#P_ЬQMe'Oq$B%Sz23VѯMEF~m"i@CoUD7in5Z*mK,G^{Ht M|p3xA'sM sL  NVTۡq~疶zbNʶ>jlha HwEF]Y1kל9qCzOEAwZn+&֏qM['*;ѰOr5%o J;ԐY*%iBr7wFF&>tP޾6꺜YtE'6;g)3]4EOOu*IZ0?:Y`>^IQ ^Ҕ@ KeOơyjP~ 5j+WIIک#CPAT>NgL{% $ȱd܋ KڇCavؐF|۸K[) jdP gЏ]9$(F퍧$yj<|.П;!teTpXutam[d!)Yep`V/ۈجHIOcWWW|ȾFq$Hv'yy Y>1`<u vt/ZxmfO'0LفéO@%Rnu b;F V|l %BɝhE#js]IR;ҏ(Gv!յڴޙ9vW!&{A1wJ"̗q[j <3)7PIC*`0)<{>;U'QŬ; 1:g9$=vݼTٮ> g~=翸ޮ[jby1_Ǫy-f3ʞҧ0Dvf *-;A(0wN-{1(iy2nj$6Is;=jfЫ_ (ѫ-# ބ~N FԚ&ۅ ժ4D~ni5:1as=;A>D6r`宊/I%cn8[p.lH)U3z!_$5+?O l f E 9.Lh_.l\];; b2 k$E$込]6O̙d:sj3dUI $}(#ʇ>+GB+<>v%YԦ+?NuBA}vovHkI_r8򧧮gog~".פPao;;j R[Yl72yFv:JҺr7*u1"WOi:R9awnij7q * ;S T;jjzo\Ua,NڭaKY*iDqGjhUiF_SBVPFnlV p|(hU`7(C2Nom^3ySs`Mh6i$ېHLcm7C#ҕlk h|6>z1еVi/liFm3e"͟a@%ۥ{J* eV?@|*y%8:L|;J3ޑ5Y)L[drq0&U,1,#~uݗR׆~emto@Y"!F?|vJ,y!5Å<`a64B=LZj%籽BajJR!Xr;jPEՋfr 쐥O TC/IJ I:]j%i#aA[F)4T;Ykg[y"yh$=Ϲo(I~ 8%QO^Tm{a2@4εsw$Cg,/0+xͮF ޹|W/&~G=KЅ+CzH \bIJ<bi + h59#eG0?,yL?`ov׋ j<`Hu7ݿC=y=\n{ͰgT펤y6^ӡMyq躁M_d&nnH!&WT_^ՠ(#DR89ks޹%.tp,? SGUVq Hf0D5j&-u5q[ :5ڂr™g%TԹq]mwnAQw8| 3:Ԉ=vFzvs\+i]QҪRd"y4z5rήCXsk[Wo贜}q };vxN6)%N3!sYu’2-yBdeU?f&j_;Jw,ԸiY^5b/jCu5u:. 苄 #P>FO=YsZQobYPdD\зsl.ݮC g q Y1rh 2w|6 7KR N&MiUœ˷7u;7zMڑ 8G% 0$n7-M,XFڔe?Bc%uv0V6r@!DrSSirpuBC߻ 'Cn~p UGr4"z›@[zuPGN< F ȁLgI` \\GRy$u߱Saл {z/\!Lݵ{a/%)$JP7tD%K|807j#C.]/mlpYYLI>q ZC%|lPhHfI"ER <ɹ)&u"46֭J[\KofMHrg b>:͐[eA*nHtN}^6+{}zsc"7 h@G-/)Gz4&@* gG\_Ǻ9A#4DH]_:Ml|EY IЭZ9~|Nh cKBn;My1!ؘ̬T1i"zN u4sNkX."..R#gwn<{z 9"cM MdXA*tλ1^OJ zoZS-_}/=gIw["9;a\"wfbG?EJl*i,Ha96Y[OzFP*(ޥfo,~ubTPZVheأ X*z{kBM2Z ;JܧSyo[^=թWڹ\"gdx㝻 cb,*O 46\3jeRm+W+RFhrEdwLR餚aJ"."YZ<Ɨ7!gkk7n@3[eh#$oCyLBzje~glX;VA_f@rɢ\~}28-krY|z+Wfd]]ǧ1O[}Vr̳M 'OKs>!t9eA 7L,9DKE=Y.I"׍B0'^zڦ! 9 <(%_T-|"#g CdtQQRup2{_]fפj!@iNzG߇{x\ychx0>4ᑾmf;sBhBjWZ ,H*n־!~wN]K_-:QL=!Vg D^:gF0ݣ&,ѽ$rn{y+(,P9^1E1 7R!gԫyRkA,oHHGk?K'6, .`2ubH'\m,|wN໭ ujhyYp&FؿmuLw&m&9]6R9Jb;25KQ X910鉸/P-^Z(~`[2:qRh}֦*JN=ݥ} ޗs0*e2a9;Rl >MǕ:+jeU FmޛIpk© F=Y 2[|UǍO!x'1IrD2$ՙ4q]@!C\Mf24Sܕ32Ҩ HNjx8l+23iMHdUq'D:n 7.)hK0Ba,H"c6 *l'1=SHRms0ÉG6%td%uFZ!B |"lZ%H.FD#pdEa"c  4!2`Bլ\߆6n魐^(z礵&Cިw3Š! ;̾׹&SݾK3ӛ( %! sGȩ Zj`u^pUaf lAI{,^o|"odYR1^g_#zWA"wC*1|Y ( 0ܛ27كfѸjZm1OFmp\0Q@jzU3* niY8c7\Kw AX9 zquA653`~koȪCޖKĬT0zЎgt'^;n]{kU=G :]2,?VM1qT2Ŵy]?1L>j&K3z,NA}7m] -դ$%u㣤9; 1T 0fR$Gcs6m^$)fp = Ly-df"vҞի*64a>t"{Uq׷vA;f]V q~a{,nߤ,w춙:sI*:iW? ha)d8n \@PQIFm<7)|!Ws;jnϸŴf0*LXP޸A@[8\vi~Xf؈Og߃DӼ >3S z7tWr}{E7Okw })]a@_?d׳DG8d tV]aL@'>׊^Xs@ F!Jxh]YG%<۶]fwJ>OQh-~I+Rs4DWK 5S|:^KX]g"q}ݥٷ L*kD1k᪖)'nP JYzNEVugɬ/U 4V\q癬Z30ب U?^_mʰM \E4Q ?TQ TC%8 q58l.f4zNKyWiJc2j5*flW G}EVkX#-"t%+vM9%[nN]#7v…MNuL[9L! 4#UiW`2zhcxvgwo 0$ E(%%Cs'>ilX'q-w2`&76xhI1M<‹iq9#+LE+ s\v@15B_zZdH5ƏM.}ر'. Xa֨alHJE~XbKRCvo董mUObG$b3fr0I_Qv-x{ :T/ʄeü j1gyq$YP0(E§T@BmCSFzˎ-Ccoq#l 4;oIОqO!lwB% .=oCuٺS_27*WG&. T:Ln\yfkqbE7LL4Ly^<.pWqK]cFPbgT/~ʷq5r_gOOC #[%#Gv'aZ'Sշʩ/~_IKn.jjdd#?rf};vS#:x:55OO;GU`oUoZKUkJ*})]ժVZuu=@N#fDT\fb0[.HD H;HLxF3x[:>pZp-T!4 p:p,8DosX,2uW}&(=lO&:;+lSZE }ԑ?ul.3%L*2)Xvd[ݍ] (!DLUc\O IZg$ bNv1INڪ3 }Q~k(Uǜa'f6P׽ӡ?]hH T'rYb-3uAIYИ63\t칍͘Ӟ&H8QPRlm;ZBcdM$.$'*Z Tq T~_n{,PHR5~NK\(XJE&r 3c)G PPÚe][M-qs ߂oh2z1+!%͒k'֊G5Rz4=ph=*08-~0I 9uށt 1kכ;ENҐVɡ҉`9XJ &mm8m|F%ҤЈZbx6xv׉v$X",B z YFu`15g”9~{[矣ij$'S$8e~7|k)V {BJlk5uWՓCauR7C Ư62失ؼyes]_l% 0yLʳ𹎰̄@@s]g+իqjWQ ;cLWjW{zPAض5>ỸՊ_ GYRzN= 8 䰆0t0Pf|FnJ:qC)rd#Ҿ02SHP>)'$_\1^ôU! ͚XP t{e'"<, | wZ-oL[BL^9% ? :qyuH@9@lT73ٚ EblV9Y!}g&}F&]q;ulxu5(u۬׬j,)H&2KqtJM=v$x;1BYI%Fa_( Wr)#,·_Мq3s'őtaj}"'83dLmA8уHh=i$ 3Sybs.,i3ea ʃsӨЈRfU4:DKJXsSW|C(Ssm|!B-؂y"nfƚDîyI8zd!=S#މ+-maCΈmclKj_e/f6g&G76ސlՔU1OK&YȎn!rqxEGӾ\Y' |M5! qw6jUI< ]mt9c, v3b,0'XM1*l!M\@=Y*pzw]<'yYvyp>unLH(#{1"J& {}n>ӉV(dME1"Odʑ|ٛ髋7+;JyKBmV傤t6/Ի6! 7ޚ:'Х;ڟ!4VgE2\;MJgOIW*: ' uxvfBzj7#^Z:'#u"'l;L q kQFΞf$y@.*ANW:yp.ipD)Nzx(ZE*OsQY<2_*?FÎ ]߁{:w0ykZVW!U>B u F鹍aS~>P>ip%%se`e|LX\Ӱ!c~yȲD8/:fmmmd3{φ7$k.$}kOE!:BBc鴅 xC7rY[^GJJhIdQ k=[z19HJ })io/ i`(䐑zO!Tͭj e؏&ᱫB,Z6yR2ݟBmy IKv&gFyi>&ϝұ ݊E`,3Ιs='-xD;]B|$LyR|}H>]+iYElSXG8CMXbcU*'mH aÝph>xk9蹓JO>AT1/+>^\|m{R`#9gC0LhHXJSP\> ` \fưS?dw#ŘyuYϑAtnfL0dDlE_ݺXYaiS(:Sa{<\7,1!źXͳyz1fΜI6WFae(bd uXW+'7#^J9z/Ñ+@YU&.{1O\j#|AsB(^-+uzz&״LrHɧ8b޻9-@"ΤVAƅ)W vc(ԆE#2%..|8˲Qt0X7SwImJ&9 w&>N"TcY}h~{iKk?!œosRc/\޼qWcWޫ ieMh-TF*lHvny9[%ЇuMA}3pooN{t%-9[տ_ F2fCD@P w1-G Y{Sd&Wu-jk;8,3_YjAUE2j0+n1Uב/ANn̓/xLYYrO&7CRSS."}ևhh0$pPgνNx&yG*zu?d͑&J;MK.L b͋ ERUU5[F(i<!Gȹv荖sWݖKt.[se?&dBNmNh( K*.lc W2+5v>ٸ9%@2:bsP300Ij 6tl%laě/z.%aԾe ? K#'/5ټ/RP"[&8,YRVZ4T: YjWj*"rQo!ڪ)Z]f ԑ^)?Pm$Z՚IM`-lGԅ $qKKݮNBfLmBehP->iu/=@ NDZUFwѦ:m+ߒlUQiz (a<G ~sX[$5 UcPzT~T?9T1Mf\p COӶw>Rꄙ#\08~6g&5Syr.>nn$X:2S9K(zcFC [/$gm %Acg|׀#, ujn3Q=]3pRlƮ VnyHlW)Cgծ%:۞jJbךt`ZSZ/$>iت uV]NLGR\5ڕɒ@[4Vp%y3Rwdwܛ9-8l4=x+OL7v|~0۹y;h~#(1șΔfU nE c>P$ģ|Kn"_W K7ّ:| )@'=ב"^Ӛm Q0ALmCƒunIUu R0`&AX-@:S:F5Zz3Pʰ ^YJkT vv:36{qZ~ ^ rrr5\ιZmU!/A ݍޓaBkM"*E&W 袈_dV;1'W _c?5;ΣGkc2 w30A3WSa9)3KAg)IV5$҉^~BB|7gv wR]nar+OHqrhR=Ejw]i&: Y\MTMaikZTIyjJ3laSb vkTct|G.n.39}oGQ_@[xȾ%E4p?OڟqOKkX] ZLtVSA8b9q)Bw gEr;юl/fI=p0LeG4,uĞH“'OAy'2ipd'9K+oc[$'lvQUlƩ &SnkSvҦE"єQW%ٖxaLnU$R>tC}l :S/ ۵9nde!FE}+woشd83uHezl a_븒UB,e򰙛s`Ey.wz$zNII&9QiKcRHWKqH%; +:ºŒ{K&㬇O)=%Q|15NҠ@w0[ XemҳIasI & Mq0Fè6%,yeG{!U3zUYzo!Tߺ5{dEyQ,%8I٫7]\[*dz9=sD\Ї$0ZZڞ? ]J4G|kVY{)T1=7uu$/ۍF;? #\Xd[hFˠNc$|rAH;KMi'&ڿq4IhfE ʥ'ubB 6,?!},ɔfWC*?hqDN)4AWe9sG+7{nV֞ knK䬻t-& '.XU@ EQKP Ii:FFŒ]J(jY mXxOv=i=IHjS.I}K0^j42=,w6\8EKBA A3&sou`;^ތg9(ixuBQqY)'zo{=]Oz:-_C]3Lz˘Nb5>48Ytv|Zw[NNnXnv,ll@歏ћitz6=/`jOcahCNܩpnUk&BN{w -lZVX#Z.N$Z6!){ТBj;,k枟^Mh0u|fa}~JfޣC5g['Ũwq1)dUW0sawˉ`ih^s#SLf2B$aU:mG&D=Q~/mZvC Aȗn@,w]k 5ڬ&P (ӥ R }Z31\r)Z%^UR~:v1wGz(ؗjTX_K<=G(|5Ã%[f^UI`04qM]KĚD xFG>|ղZ\S B<5SvMjUI }nh!dE_w=9DFTͬ^ygj$^פ`zu ^ C1ۛZo)@04Yҷ'7#-|I1=rZ/*٧wpI:rۓ9+cq`ޅcTЉQv^Dn_>xf_6 ׉)z.xMΟF dj@_b~"W5y8*[9(&F2s'"l"<)'IjIC~Cr=(!1ѱRk $k jS4'$a9TSu:7ss15 ?Or1x9g99I%F}篂}@ foqݲۥ%U1%οM`[ %6gYI]ngP+]&/Юz1Ouz<%=.ܓl3+Ř#C OPjZhAHl#CXxH2i;swS8srܖ[qz mи R|{[}SJS;nFE*sw" RvQRx3b֤IQk( m[R~]2lϟnul7RD4ЄhP  c)6v" ( Bo-4A3fѳCXJCZIIzVkޛn37Y{v)#GyIA7'=ߪW{wЩٝ}Fe]'W$@MΙ+q1T(^C|пݫ-',gP#խb)5pµJp ׾OB̶IfGK}xn/ g>DAv~^. "D͹8+6VSR߆ e{蘍 W =%ο'?\IOH]BVa<{Ӯ5O!^Kce5iumO&(FoOA/=<;L&Hz5(oBji(<G Rb.U'3S7TJ3;^h>>I/`08-|ԓT2yD#>v)VJh[˂%=%OtssR*hIC\_ s,ҙMۅˏ=<&[ MER3d 4H~[`n?;٦ZiqD#M^2w3,^TkmWI,|)86gHI![^F!K`X1avNBo#7x=YBP/~(:zEJ%Z7#2f9\7jzRj 2v( 9]IbnDs"TL7P0Y3x Zmiؔ@xҦ>3_q>Һr:tUoޫtԢK/KߘU-8?qNꑒ O5."DJyፄ*{d3+剮xG5Sݷ'E.hAKI\&VwK;.t.=&niitTݡnBDwE ؘckk⠊. &#u$9 ]^D>L$s!# h۫-W Tgh+'xZ$^9'-RYt ʀGlcA]vŋ[)gDs~__ Pw5_vdT,VS?n f%?zHs'pa!n^N{t~3YNVW' c>uz}ao7E$s-%ؓ {6>"4?rQ=lc*P}TXF$S2mAW NY8hAZ^Fi~6s7( "sXy1Ic뵨儿vkMPcs;ZE J!%{kt1 !&Uacaq_p2%.[,U| 5xk@2J9HKl :âaj%H`^Pl5iynlVjf YvwwzG_F(lv]0Ӻh&F[).Ȑ/O˗|L-j Ӽ+WQyϯQ8';팺V5w2"W/mН@fuK_wꅜ'meYUVY6Kzv8 ]dr7I֔=)5}~ܒf^ ߐ(,"3<.k IX<v(e(\~6UHαM֒,J{bʒOsƔLYANn΀~c ^4F:#RT\U-5şm)2FwN"%d6jhNcK8πD6 XתjiQtQbEKis<*Q1S)) PG|K+.+(s7!2I@w7a4_i^;x04U}kh4VN>VYԠҬ($eW(\"~EC䐇K|xľO,u9ak$8\vE0`,*Ǻ&*f_g1򋴊r`wȇD,jՂ+l0^\>Iq${Y2ᤊCt֘}WȮ])ݙ)EOw)E]v pRF&삃DMzE)Ԟφ:sZ\zIcP31[gg+0:s[d#:8E)X`)GY\;֕:+Ѱ ܄=PkGE_{jvB{vC@;J"u:aH}~֥ɯl*Ld,) 9bAk?HKp@Df|q:l L[<==N'gF0Jl$VGߡFHm`Б LQ6ʘ)SPaZWG<F(ǟ줡A3<TLR/ԠH^%(iM&Ʉsy^Le߆kg+*$VGP8W-MykM3Fs4Ts}$ʶ+HhZ & @,rghlE"g4jҢS2FPpؠ-B0KkL8s72iՁ$xRGُT3:zfI~tx.1Ό@EՠE/J_Vl'd3lVQ ]'2zv䄿Vwd.f9z3$cp>QuF+u4a f" .aTs7`\V#Ǿ/{a7=@^J0ԒgC@6E<zJo T ]$Pv#gr@Itr\; c_F.9]j2}ȭ쩠Q~'kT oHRW {EHY*W' 9ФKI^]K $@_v_sbtG N5]:74%pp녽4( 2Ioh֫6[en*'t6Xf6].|?2mr~;|[jLdѪ4Zh:WTOkmU7ǪU W(\6wK*ʾ2-F*Ȉ87=\47~@61ohB9+M w~4\єkl>dCIӫ (`I[ZU[նj IzW$ԠC&DY'{PoI.vPpZq3 )m 47v<!rfc|6ܼqƳa#go i]c\5,hpC\ kÈY̰P ߨ ֔plH*,xbw{5$kfO?׽ap a`Y)I6XeR>jw,bU,lzox`q t@v"]١P.d`>vn ?#Y:{ $z=,5ߠWYj%{pZGcBOv L^j;K"$4gQ_zx.݈l;]H3FiQTO3Cْ9&ةIQHGJ fA8YV\K:%.D tw\԰1QFA[5nTSf6պ%^s:,] uP0VA̐J #GroD#JѲf-'2p&=Kv%rZ\XAhLX7RĉPr[mFp’m|+%Rvof\xmJrͪ7M~ !(hY-liXhT|ƌ:BN739 4$A$tܰN| 4摤uBH8&Uպ;.e59Qjp蝢f$gei9ߜ+}. 8;$0zk&AkJ ؃01,g'-@qɅCF)6:9JN<;5Y{s,U)K_PXn &xPceݝ15, W`1_q=0EN1"\MfE67uDW=9I6HR~V+--{opA#Ziيp-l+tW;OyJ0' A)AZl]ɯ"][BIFDu5@0;UZҞrKO?|kOQK-IMKwcjM.Tޭi'9+)~khu]q &t;iZffҤ̀ <: 4 | IKk-G'Tsf gFy]G3mmUou1HT8oQhquuC"N\^Պ^`jyP tڳH,Ů_ڲ`x1ZYgm/mt!fuQ!tz4~/:>l@Qܵ#WeWwglo9a)iwJ!%5Cxe.t@7 Ja0sJ #` ~xX ѹ,B2RQajvdP&Y_{]{H-Mh|Ni"j-/Q7Q4d 89I9Z 77 W3zW}14C QLQYͤFĥ^j GuUf$}B[-銫Cʰ6k6UOVakTUNTgiA+O[B;q'E]vߖrL . [Us>,oqͥ?ȹiT =jK*S=2jJj8U8L\XݹZ,6/ T+qN`zu-tnP2ӍExm6C{i$n +? `ȸÛ|8؜/8H0_y8 ),q#@ :YJCݫ_y_JQk?  ]_NJoЉ}tݢh.P9r/=oYNx8Rc={5lS**4=dWbZO:<pvNxҥ뫔fn?"b+l6X:4HqdAY+sp7 fv >$͌zPu$zjф%n|ۍ $R; "8LlT 8g2!S, .'\tY@z%i7D_;!ۋo܀t RQ3^]c<[nY+7/q)t|nyk4 xLZZ i?)x8e%GM|ggREa"%ؙ 0s) rі?aGdϠBCb|btPS; J:T9BHĤaA٬H6oی!U[.?8s9Oi#(8">p4l/gʉ$lʞ6A%,?ÊUila/jYJn2]z`Ӭ GEsޝzm.T*%2 Lv}{{4WJ#.=0r )G[QJA(oovnK>l,+YHм sW]!n)u!iz9TELXz3"$vAueR]!*PL䍳]ⴢy?Nܨ|r5+iLYw $+ R(Ĉ4WXF$IϨ6vhZ-^ 4C[e<ĵrrh-}P:B"^;wױgp)2Fvu!gpGOjn&}V hcKU۪Ng]YuƤ]WUZ=&xh?M 7urE&c:}[ǥ՘f 76ү[O*ʞ,-K,ff( 6Nug'CUϑ<%ȥRI@R3"z-]r!z8teZk7"FLf 5<3W(#Ms1wܰSHI/+7+aIg`SbGXScASQŨCT1kwS/ C2MGqߋ%3]?&-s=ML^$] ˚7>H9-S;4#9pl _Rg]\:Yd`#lo%67NT6圮՟y3đJwj[{ `{ oK䚙Kw^~Bbg}8(b%gvwJA"D !X_ ]W67$T BC{f۾|[A _='d 1?~P2\{ q>9*,9]aꆀxA%$8Hb%d.QV׆kR"Ц 20Hd$m2K2a'/[Zڤs>әAڻ ϿvUvNJ|ծ;H<Gr3B2xP/5qh;C<)^@FFam}:vpj =vd3TJ+]ќƢ!!b 0#%NJ{`aG5HN[X;+ Uk :R5Z Eg.2&akZļe'*xhhߐNCM7,%@ 0:;!7jF "mr xf65[k/FM]thlODUA]0Pkй/_˺Oƒ _YǺ>Gc{ؙ@ɱu7i]lϾ͑0Z:CܨY ω8ݕ&h(?;V0F UoVTQ*uI'E?c:l+.a/:$kوpS@h╒=:Hрr^&@*w$ܿ>F6\s$0Gkֱ,`o@29ԙ#ߗ_: !8)N XQ1+]1Ɏ37>}I~0i$ՅGj-dޜoL$]g 1 2I3bH6ћ?tS촴2+ճGl~@TvgcU>קtudpхNv7|^6š=O3Ap[vr U<|taC$>|,#Mt,s0?ШpIP!٘eBOeiHÄW/n2;Zדgf̅"|zgoE-o)4!)=kӦ.wF8 9QBZR (p1L1]ǃQU="Z#͸UUMqh++nưSBnX`k"; ͋V*8苫٫'U~rjY{Mzg5<TOAF-z `p4'ȕ,|1oU*:y LH7~J8*0١]w;lyN)^iFGwʤE0-yETiy܁s횆VDIvħ01 j4249j7"=,H̾+1 jiT<3oR$hPj-|LT%~uC-$(i,ʐWmXLK.I W{jPGzjԯl<-ރ`h}=ք\{2z@\;m ~wCz֍73޺"7A >6=r 6Az[.yYnqsQz\RlT)b|C?i9_@+l&z .NKv tpEA]i KQ͑jTTѸ' v58*NӘF$.CN*ޥ! v~Ubu ="UbWYnQQ bAG2ti(puvwv텩Z%FufônY:$2`oUH9g|␜\xIZ=)[2{LaK34Ni@2lyH[s^$N^66 ΄ ܼ|ܼ=Lv'jI@!V|o%T HIԄG$hwL)Cc QjxPPgYte\%[>8UvPh*~;^j^)֪< $! j#x]ouu-w,`S.w YYq{q΅#vtn!Zg{ʖ#vܻqi>>MNԧo \tw;LňR8XdF.i$35[24r&fbMUʏ?Pī86h`K ].R7#CMq o-r]%4PLԬIC N!Jfɾ?+5@'V7\Fo OON/Q7A.;NC(/>\#yod%Mx{6)"A bZ<"@.eO'm8ܤoِ+|ފQvj-vLHnR]Z7[DCIROɨ4zNuy.,WE Y(TJ`ʵ ̀!Kq$pcmgAaƈ>[X{Guz<z.Q˨m.ᦴqLŁoga fobw>.$wA [OM{㣪D&EP_pKԎ%HCtJ f 0߀;&ΝC͠y: 08H* o,zZ/lؙط>J{B;u]$1T(j*ݫeZyw1%(Ke%~C3&@{$F}8kz{G!ovwsQY3 m)貘HK|볫ߡN]=]c%x j댳,1kϒηvɣ:+I0[M1q1YƳK;!@gÙ gi6n'As*Q7mIո8䤈G^_ E9s]Dꪄ/ܠ> 92va7ặ6.mF3[FМPguc$C2b530Yj`n[>[Vw6$[RYi!Qo\1zAHHuFVs)*nԯVȲΥv9ޒ,,z^' ;c=N+gHbLxS6`Fz{t_:='qHsޛ5hB@ÎErM"G{r<ǂ F؜j-zHHȠɚH |F&1qEVQ(bo!R|:{uG+}T c!c%Y˻| #aQ;R/5DR $L+Qw-`dxќ\~wé:^n JoI0T9' dAs+%=i 殫AqPlIgP: pvn`[žx(d'%,90]4[+N)ެzD%=1GVKOV#D%28 MKp5r:[pq[fs;y]}siU=˺(bE"Vҁl4q&eŻ_^T՗O漛jN-[=^? mI#,am);JÔºV1anu,dd\' ոJt1j!rdV5a% z8IPep,ɬpkjZ5 yd+i\z*w|'9 QQQp9/ 7!ڗgRNDN$[`Ɓ{Je5n! #O Z7)A˭;8Qvɖ$WR5Z/.(2d19oOBڨK `J*>X}H>J̎dU~rbk p=wYZUksH-~\'E]_ X\Jc ,]ՆCPUiwRQx_+7ǴN -{v2Z7 mRBPCZ !  ՍN Xqv#k]Kd&uy᝛;w{+ umr52 AHr1y[PFce|%2Bol嗶V9l衮`h)C>c=mg\djK&ϸ"xnbݩ 9SГZ(PGf3^UAK֤| fLѻjaK 1pt)@@en%,DY9"~j.,TO&Y1ò%'`Ǟ}a>LK}1H[lAx|P zU͊L0!=̈[8LvMx4;` T VQK~|&`F1P>utIU%,3,)u]0NwLRXM 7yS[ɬHAx62<(VY:Iѕ̳,AnFډy6>TЮB1v*ĊKHG0~왲&լ|EIx;S~4ɾ$,a.DdA`Ud` FҠcu%YbK靦mvV=R,FNK$!k=RHn6[2vHh W(\Ų & #S}̱D*$+Ì'^|`\;D$= LW$kLӡoű:6h-zu}u02nU"*OjpLt< E#}zz[Z$^˭D7LӂP37bDHITm,a\Jbӎn8[NJ48zx^0 g6MlShiyw7hgj6d4699=)^NPޕVW;!KpW3X鼸jR0 C9y]j5sfs7("7!HdPx_,/N|sg%BjI@R&| ̲!$m"*9}q)+r$Rӫh 2Xnw$?zNqިkvrD6}@Žgl-܏ӡxiUrmfb5;RZj^:0 gK7gD4'WsݨKYtXWyխVoFU薽:juES`4Tj n&ڦs*%C2O:RGFU$4`ʶQ2"Q܂By)A*t@!pfL_&daJĝ)|RRȆNfL;2PgWz(+5:jrrUCǽ^.YV)x(-VŕzZ\E4M.cHmd?f Ht9%} UkH8 (^ٮ}KzNAfOi *Qpk+P = 1zp@2.Õ^-GXDEq&$K{Jjٰ^! ^IޭB7LqP:JѰQi vq!,RV_.QY@jA? &Qyg;r"/ԕA4-s2wtѫ޹_9&rp۹6[;|RVgĨCݘzTץQ?mjr?~D'zdz`reEiٟ)\ߍ i%Qxn72,v0zIj5a[sJoN^UsV<|h"HPkٳ&yWls澆dr0y7ŖJY2Fj3q"-]%whu&wӱdi7g<MGfĂ w@WSZ"w9qfʤ: :#;#[s=,ZZA#n6%' 7犄&z0ZL7x1[.Y%'56d+t@JELhKk.W>)`*/Wz᷅zrƭnj{ÅJtBԞF<wvHvQ+(1Jt e;{6D!_"P)1u#hN[! v` BO1^:`aokךa,2Çҭ\3!sB2s3{% 9fE@DgqRhՋ̠h>A7oaovAv\ 9=/e7^vSk/c@`K'VL.k䚔5S 8:iid<ߢJ#",٬oP#u ֠G&b7ʘVUWN:T#(Ъ`TBᒃ1޽=4#Q^i,raA,b&?{~vQAuP`l.LDԸ4Sk.Et,1zhdocIkQLi繳9>..iTQylx\+I|?+N^)9Q:tA{pxB3s~.WE.` 0}2sQ >aobA }M1V A۷b\1eP8R1'I7;yT 6_3RͱrP 5j kYig_p]dSn" vҜծVNTU,T9̆i/}z<:^#ug>BeAc)l*3d[fXu6=;w;/,jOܷ6,<{ɂ]^JCGs+cx;[5~8Ͼ⊪v^R|1> #zͪy۪d&%XW [;[w18mz o3#.aÒLz's8U4$u'2YƓ '3;!!ap{g$4r bܪ5W:\dkڻk юnHmr͢Hߺv1X'`Z g[Zt]ۻIoct m"! HS:(iJSHUF…:|K 7"q̿O\Ml4ǐXqS.^9>͜Ԓ|cg%COSiɏyaM+2E߾\RD.:6l2>aNomg"s3)>~8 t#nxM IV}X`R-K!og01Y'O Ț!*, [tY;@J{j=d5KP]d"uֽH,J5rH&Tjg ՘eԐy֎M IcyPRX+JJQ00Ig5)3 >2 }"6l"dLV9_'''!XI=Vxc*)d7Hov?WPf,h>y6)V*-eOB(A@:LB/.]5Fs` 0ϻ31"'܇eDl;.%@')kjVC$ TS$ E %/x]GFoj!-\֢RkSYy Ud@cYzz}|]i!4 gkNס(5z(Eװ e[RoZ` Hgʧ=y$6wՃt`˱Tu\0,V%8t&A!$\5Ӷ~2wVuK%M&5e]hDƖ@KZ~u%b{ ,'BoD_>]3"$!_7yލGĸ$bU.@ ⼠ڭv%xBV&|uyӓщd䗢0^St1v,a_nD b\]S:#I_GV}d2$xS?dgw\\@ww<S]VA-k34Ѩ:jfcDM7RpT2lRvp%~3&Yx=bAS_(!?tb +}gh?Yjʷ 8t8[:-y+ _/ҠE3f^"KӕhO>8#m==0Ҧe.Y;dhޭy%Q2=]dfkVоpݩG^]n y#*̒JA9MM d $pSo|n!z׃Ku*eE "1Ms%(̴ͅ,S&Ip!K<iSCոjdxNH j*%!9VTeW1J 7R>wNkA`I]Ul>7;jQ͍l]ȫC֝^@X=tI*O2ϬL4:!&#~Ce<KӤ=iwF{=sP*_Ig~Ij>Ȫjtq䎕%x_ɋ 8 .3z,FGVaSo΅kgRXEER <7<p//_"07/yus16:3,jZUC_;w:W .itxQ&~0[EI}OwWx:,~G?E=`:ߓ7[̣xY6+xF6SA Q]e t}UQt:]mRLww3僿ˌ7God'YJzۥvnEvV/Y76`>>vZ#4#za?q>o'Uo 1 UPCYzo{e/"rN #(%bM W3ށq0$]qmr\NZm zeGwA2OyȐbqR办NMދ(yCLyT,yN?JǩΧivNh|ё $n_w_޶jfݪk:V[Vk|/b#y:~qT4[ > GYa[8K4dZgEO^'EEob}.S5jjRl;d)ZkFS혔Q'@/  D;1LoXcGg~  om&4s9(8eSpg_guʏ9z6{jJFD'~K *2.`GA6I> yux`X>]uzI]y|I0f8M_zc75>I3xy @S|w 7Ic_=s_+9寿:fLr;dQs_5wd MnKq|t*H}y9>'L3;0Y_lxel3C3׹ 0 L[þ**9s2ia2omp'Qaӭzآ(گ@7$f^+-7KL$|sZys~ mm xHHbSN V'AGqn믒2c:J[gGr$yڐP@\g2t R믦ur@@+V|df/G1ѯ8vIlg$ LC+3w+>Og\׊p'>5r~b,6l|gR>~g&0fvى43w".BNV sw ĈRߐgFE[o %wˍ?UސASG19 @h,Frw99ѸWwrWg>'X̣pH_%~,lɵlN7/{GS|LiУF cǔk&Gvo~Jj_}5YqƏ4Cjn:Q3j1j%k&2hqikX2ҍK_Q̞wcfE:!'a&Wa Y|vXdv,z){MÕs)08dĥ+ ܿ$ZnI_cF/@耭KTɜDolØKc⢬W_QX2#-iΈS.h}ew4oa(&i^B@z\P%WjҨ='B訢p>6^iLlVRz:[MtQ%wc=s3'/2B;ԁcs2@?ӃD !+"S#*Y\AA==oE2y$q6YP0Z,Ϭ"kXu|Fm,{Fu;>\ZBp❿'% +x󑸍"ij LI/4@>dН3^ zBT֤TTtݬF_F;Dș2;zdZb-ILQϗXjG- I+;6Jr>skJaY(i"ϭ-jCH@ݏ@luQ]cK+  MߙOBOEhpi %E l5--t3Q[ЫLV޹Exz)|O?5j?8,4O;VK>Wp+.S.JP e֦/hRTR%1NR` ;@NJ+;@!O=7M1K Ll c[̋J 8^ʡNfoWZqr o85xƱy^ESOqs]k{Ppe|H46g'_ȶh+Ue*$+2d5CƜ*e͡.;q \=1;\'Ĩe*1.VYDte)5FsI%ID4 FDG"P uxnP  XRȓSTaU1vn6i;խ,I qsd(ida#t$̀4-!("<5^ 71ghdx{Q!y0ami0؞U[f`AaxW?VԉeY3}Sy+u[/ߜ.k{;'AeR8aKg{0խ~W-2bi,1]lpy1>}~uVKw5R|j%,X=5 ttْ< C+dtx5ƴJ0Z). 7I zT%Z1s=v: ,Ohոhտ%x|f3>!kz7_/}qc.$v/$!řzm|Wr+R$f% \dV F\.?JL8XWdmS\F\Ac̋#Y "Z>(9Yy  a1%?7 g>@t # t8m2ɶD?k7LVP`.y=j#F[ O-ɂ(]&vm `ECiNz|Op @3鳸gf7{s!``#aAM=/f$[^$Ѡ?SH[^-qD0 3@F1N .A7 |xiowlz(-Іbͳs#)_"W# AmJC=[242ocq1le|[g7zgw AQZ!+K|WKߥbd*EeIň7L2vk{YO뜲(y1gtOU?u~6vyE=l/:R~Ci9m9_D3le4ڿH}I^L`A_hB<ӕ* A˼HK ^' '_|bHOf"}4M֖O.HcP&|oSThgh~;s|l$337wgN)ON:Sk<8#Tc;QL0Wxb39zrKa&38g3w}b@BoLj 4bAPtr 8O q ?1_rxx)A:/m}{WSt-甂-}OQo-Ό혤~[{Y~9sgt]xV%RMG臏YӴ{ʦ(]qEBL&CK]?jdb@\BR;6q+y["~|tXg.R-aZlWX#}ʯs0x2Ã]v|~ü7>_GI|R F.Uѡ74>Шv hE `~ϼTk_!!ʃ))Rtfd`x&tͰMXGhr P9?F++&܆ W\Ofe{M SSgф_Y蔠ۗm",ec߫FuꉵH~(fJRb{F``IJM%1K %~Lc)ǚf~g| Ѩ<*/?(Ì-=Ϗ@.gʯ Q `z 4ȓ~琑OX_!WW`g$˭BB6yM1^>@$7ҙs̹G8:Tf.T0Х 0.Vܭ.kxig0s0N;ẦU,)M*l{UuU:]b]^Da%5*-KNioU-MguIX2H"l"+PnL8~6l:+ i@?Ӓ)=Msz v}rwWiWނO NuFQ/AyGRtShdLِl8CUvizIR"๑4ܤTߩM3t2aF^ bXR< ^AVш3v'5>PDT`\oc:RnJK.,\)$_8&X2c>:c̚di%*lfN&Ƨ3s xA \Ԋo\1t/ 49xHXJ*wo%bJY,h͹{~:?MNjHl8"s̨wA0䊐Lϲ"$MXE~,F$B3fz-([Wd>JnbL?)gge# ȿu5L&q0TDK8B٧?pS=2?c,6ϝjdj%s0zsdl3L&j^ ,ɞEK&AjԍݍdYL"Ur_{bx32f^\AbH f0CJ1& t?ZMyGq>j5G .qЙ졛Vɿ=Ҩf'`?6cAfaybǂx"P֗קGs /ߟ˲_B$X\$_BD(w;!/t9 ;V;d`2~C)KlstP?-is_bj VڿPg8iY_XDl '؀7hQ"%qxtߢ xzJBM}vh$BclB@=V| O!0ed??% ta29<_OO%;%gLvz3vf+'3sf5b'"i] V~G_"'r4+˔iϚJKI"0Z`[MRL_5/59/?3>Tto%w;ȈȤ~-9tѲ"qR' (BDxD8>GX>o}} OkGպeO 1q4fSѣENFvyB<9?#S)=^Th@ ~N_nt^ҶŴuR6oyjҏA?^?90A`c)XG ߘ5ܠ26+ %gI,K/Ojh%;IpAdB}B!}9~ o0jOI3XN䌈Aݳ<1kx[ǘ/SImQC"9Ѭ>*yoG*%̗s<7T/?K/}𿋒U_ss.IYkg&nHuG{na^#Z|Gp-F%7O;d8z C[]2]njdOiΗ!!T_{|9-5?68Q28>68Š 8}^ ( R9@f.ٚr`i++v>mvYt_ȓcpkV͜qOh;8ػDdӷGd9Z0RU~`I$j8ԙü/K,5BI"$\x0lKϿ3P)hzb465´~G]T8\>^u) tU{T#싶k <~#C#y0J~Pa'_߂5X>|Ǿ4 8:Xz2?f Ɵ;?kf_Sоg|ժ5j/?(cKul|xn$ٌC!6$8;Miv%^OϷē ̴HKկ<1[lПy|A<^\)~ YRVgdCN |%oKr/v5*?Nf?k^)n(:n)MvŒ@H~*q=#Sko(ko笻g9uQ "^ xkfgL6Peꤤ&)gw׳VDd$Bʌ9bsbw|^^i!< qNKJY~gO&ܰe= t7k/qY*֮ڏa8Ui7f+ҳ|+?^g^Cϊ6ۗzO+8ay<&^}6wyn-x *cӦ~:N-UܪvЁd. 8GB8IFCQښxiOW7Q1řJY^޿ig2Db-ճDӁ\~*<#.LDܚ*q0ֱT+li H(Cd?p *DkD98jzI,ɌT05GaVK@)=a2+-QYE@mhS4R9ئqk=6@MF%##svVv:58gv2jd]R UqS/DأsWqxcFDsmo(OqQ:{ED6OXAZ }i#.AD44*t==TG-ҨU*X/G fتu+6 ضa-6s( /Щ"_*cfU+Tt(oN&Ј4Ft[tL`}:DrԢc9jqH&QT~_U5wNmLsY`f|ґO=&$d+xX ?/C7ޭG;r`'Ph`( 2+8xGhB$xQ?=ڬ,~CjjƇO1 sz'zL<]0[ۘ^| 7?}?v=AJZFHҸOF tދE F{;]$aEi\74k#hrlfױ ;ѭ BT"Oe@\o-5vsںJ#Iobc; mƲWv>ϨX_ jp76/y/DZ6ګ%>r- wNu8]`]w}51ۂ#+i\Ao2aľղl/|E]?࣎>q6(5qLQb,F+B8'18c lК×&XhъGN"vHa_AĨBbmF 5+,:1I3:+-1ǶEeڋŸ܎ˊX8֦؋ŏwHɑyATN^ǁw F8C>\ZJE]ag%U +z YvfMǕj%i{iv, M QhQyW`n/Utc}x6}uY+# 2%7 ˩GtĀd1Kr*)3`7nMN%QoS t]!7jf^l4;XIyųdS]X:tD~˄,K/`q) {z䔈z@r )MC~d-y5;b]/Грg