summaryrefslogtreecommitdiff
path: root/security/keys
diff options
context:
space:
mode:
Diffstat (limited to 'security/keys')
-rw-r--r--security/keys/trusted-keys/trusted_tpm2.c53
1 files changed, 38 insertions, 15 deletions
diff --git a/security/keys/trusted-keys/trusted_tpm2.c b/security/keys/trusted-keys/trusted_tpm2.c
index 68249db98a4c..d225ad140960 100644
--- a/security/keys/trusted-keys/trusted_tpm2.c
+++ b/security/keys/trusted-keys/trusted_tpm2.c
@@ -231,6 +231,7 @@ int tpm2_seal_trusted(struct tpm_chip *chip,
int blob_len = 0;
struct tpm_buf buf;
u32 hash;
+ u32 flags;
int i;
int rc;
@@ -265,31 +266,32 @@ int tpm2_seal_trusted(struct tpm_chip *chip,
TPM_DIGEST_SIZE);
/* sensitive */
- tpm_buf_append_u16(&buf, 4 + options->blobauth_len + payload->key_len + 1);
+ tpm_buf_append_u16(&buf, 4 + options->blobauth_len + payload->key_len);
tpm_buf_append_u16(&buf, options->blobauth_len);
if (options->blobauth_len)
tpm_buf_append(&buf, options->blobauth, options->blobauth_len);
- tpm_buf_append_u16(&buf, payload->key_len + 1);
+ tpm_buf_append_u16(&buf, payload->key_len);
tpm_buf_append(&buf, payload->key, payload->key_len);
- tpm_buf_append_u8(&buf, payload->migratable);
/* public */
tpm_buf_append_u16(&buf, 14 + options->policydigest_len);
tpm_buf_append_u16(&buf, TPM_ALG_KEYEDHASH);
tpm_buf_append_u16(&buf, hash);
+ /* key properties */
+ flags = 0;
+ flags |= options->policydigest_len ? 0 : TPM2_OA_USER_WITH_AUTH;
+ flags |= payload->migratable ? (TPM2_OA_FIXED_TPM |
+ TPM2_OA_FIXED_PARENT) : 0;
+ tpm_buf_append_u32(&buf, flags);
+
/* policy */
- if (options->policydigest_len) {
- tpm_buf_append_u32(&buf, 0);
- tpm_buf_append_u16(&buf, options->policydigest_len);
+ tpm_buf_append_u16(&buf, options->policydigest_len);
+ if (options->policydigest_len)
tpm_buf_append(&buf, options->policydigest,
options->policydigest_len);
- } else {
- tpm_buf_append_u32(&buf, TPM2_OA_USER_WITH_AUTH);
- tpm_buf_append_u16(&buf, 0);
- }
/* public parameters */
tpm_buf_append_u16(&buf, TPM_ALG_NULL);
@@ -364,8 +366,9 @@ static int tpm2_load_cmd(struct tpm_chip *chip,
unsigned int private_len;
unsigned int public_len;
unsigned int blob_len;
- u8 *blob;
+ u8 *blob, *pub;
int rc;
+ u32 attrs;
rc = tpm2_key_decode(payload, options, &blob);
if (rc) {
@@ -392,6 +395,16 @@ static int tpm2_load_cmd(struct tpm_chip *chip,
if (private_len + 2 + public_len + 2 > payload->blob_len)
return -E2BIG;
+ pub = blob + 2 + private_len + 2;
+ /* key attributes are always at offset 4 */
+ attrs = get_unaligned_be32(pub + 4);
+
+ if ((attrs & (TPM2_OA_FIXED_TPM | TPM2_OA_FIXED_PARENT)) ==
+ (TPM2_OA_FIXED_TPM | TPM2_OA_FIXED_PARENT))
+ payload->migratable = 0;
+ else
+ payload->migratable = 1;
+
blob_len = private_len + public_len + 4;
if (blob_len > payload->blob_len)
return -E2BIG;
@@ -472,7 +485,7 @@ static int tpm2_unseal_cmd(struct tpm_chip *chip,
if (!rc) {
data_len = be16_to_cpup(
(__be16 *) &buf.data[TPM_HEADER_SIZE + 4]);
- if (data_len < MIN_KEY_SIZE || data_len > MAX_KEY_SIZE + 1) {
+ if (data_len < MIN_KEY_SIZE || data_len > MAX_KEY_SIZE) {
rc = -EFAULT;
goto out;
}
@@ -483,9 +496,19 @@ static int tpm2_unseal_cmd(struct tpm_chip *chip,
}
data = &buf.data[TPM_HEADER_SIZE + 6];
- memcpy(payload->key, data, data_len - 1);
- payload->key_len = data_len - 1;
- payload->migratable = data[data_len - 1];
+ if (payload->old_format) {
+ /* migratable flag is at the end of the key */
+ memcpy(payload->key, data, data_len - 1);
+ payload->key_len = data_len - 1;
+ payload->migratable = data[data_len - 1];
+ } else {
+ /*
+ * migratable flag already collected from key
+ * attributes
+ */
+ memcpy(payload->key, data, data_len);
+ payload->key_len = data_len;
+ }
}
out:
YPcxz\H|_ܱ&(\RYY}6ݣC=;smEdsRp6\1T=ymMͼGmҡf%sL9 KC%yl8$* VD,I#A)h0scxe;JFcq$i5 E㵽z.B"a[mw$B $ amߪ$ET5]}g@>&$t8J_WSRXG2ۇbK\BM$*Yc*seZLz v([Y@mb4I\m6L!RN&54@1i={QxKgkゆM꟔7f̺ 2pqfpV8Rs3i 67Z'˭G;Zw1׆:هf?U9kWedB<~[geBW&I8$O8350ey ^r,h y(II{&C IBEt*H&2 |:ڦ, Hjx+XVZPWF ]H@3Qg2x,1Z7Úh<$AB" e^V?gDH J #(y񊜊)%׆7maލ׊XL|0闻($gA'>W{mŠʐbw.y͋WUzOO;=4`'qF =ok RE{;d.@I9lh [@IȾ|ӈqf9Na6RY),e^}u]ᚅҔoSN跷`H], [пnө컚AԓE[z:~/z_h n]+Qs)#͔ #.f6g&E1>\1$s "Y j "YfbXuU R@8hUPe[uiŜf 3?Ko1_& 9V&޴KjE8PW@0c_f_:(tZ2[plg}ֲ?xg|qfu?<tM+0)o{^2SZZZ٫VňOY:$-Tu0n)lo?ɑ,GDߢ+{<.hӇp;[fۮ5-hDیBFW̽i9zQ,cz!%rh60[92H+6PC- /5;1q)#ֵZ}j|=%Z r(6t_ Nߜݝÿ󌃿?Z1X !Mj8хp꘲JHe4ֳ判YTUh!N9OD3'XT* 1UUÈg`h=3~m0/CQ`0_YrX\.&k|{IRB1g9R%V 5 lxχ?x-AMgFpi_2jqTbőKz4_bjїySFU/3KXy5pQ6]#8Y iLQ@HJczbܚ9hH5+\ec~@D8yr91mQ/pWؤk^):8 r1HLV 0TbiMZ_iQd- oStǞ8W\-1<1TG 6}#~@/$D*m/XUAYPs84ۿXm4.#8AAw";ה&L-+6[3\K0âU_etD)I(hpu&>5e^ P_ Ŗ̽ZiYLY_~Џþ6D_$j[J5>o+6 D4Ǘ(Mn1:nJ۩i2A_48\ZPKx{ΙDJ ICSv.CNTj{GvK;AGⴿǗ&DY@3s$sFȢ{I &}Xg9S; {(Z:x*Գy-ŖU,pljlK\-K1V=G%c >Ճ=ժc,r!Wҽ"]lWJEu\!-J4-chX fq&4x\e.vzt&},Y}>N vT3{vN -<Mti`7-pm9k;!dw ٮ~au!O +9p:ϯi8n 7lQkbR2:(q|GeG8g v>W맯 8gvne47MUحWԯݽ˓qG887bp(b7{b/NND8y!Q-/DV,Y:e$aWl\--ãWk$ithK(:$r9PYguϼݟviκռۻ9:ý.ۋ}q78/w;;Bt_tG`oDCor1*HmkGHXxо8 up'Fӈ]]oǻlrwy .d򓙦Q%>r*^WuLzȗyBc3l}o_YOeuQ&nlS`Rء@Ki[3k4i&{w ?ۿP9vsG4@wIZc'/h eϖɒlQ_% N1T6[`w0$(i}.սm#2CvJfۃn.Uofq>CvȸQ_R h&>S ?jED%5DVZz/߷Rؙcst}&!3]rH쬈Q&I;썆͆5=mZkMU[oΈIZy@2ۦ+.17/R{UթnMMn7`X 6V]Ŗuդ6!gQ}{#F1΄aB"lm Ş?Dt3-iP"e+T ^}3k5."kGEݫ>n 8 z-W('l)D;}}7.$Sel{Gq1]^i!Hq__[tX*J?B m=9da9~}b.6+=(ұPψ֮6b'V䅠N38tBR-xqAEnN!dah ~MpOѨZƫkŁ%'&v-q9PfF3:^yB޴ٍτNI?j*Pտy,wve"YfwrrFK*yb%5/KNHl|R닪%U>hU`z\k ,tGP/iY 5*lnڕ} 11f9ژj#{̗.M,G+I$gMef TZ;[{t{`??5^۪*KFo&#z U? w7.Vai 읫Zn<|r&T 'Ø71Z`6MUFu6)i5`E|u7Rӑv,0tj}}9+3dW-6. Ts5$} Wc!b6dSt!K7J)GRyUl^q !ZHljzVo09郞:nln3TÏ|fb̻1ǻ]a^4. Ѭ)*N_}^%l@zGcp}=ḴH,K[*|W{!¡&a؅$qG ˖#(/g>5Fs3̲_zBJ*Q實0~1%hr~P\n$; G;1lNXQ)|ZY^rh;^W&?U^MU~=sq\8.B ٵh-4 Q);ZZIi%FCke!QT=GF9qrNg%^[Ts6h`U&*ӛ)ctd_D #OFCx`y1d"}w:۟u}S#%}pB<98|5_'@2F)Hb^BJDa97jpsWƅ4{&:3.7jA,{$̼K%tО%D8)̣[!N{djS6)C5)2aBB3!NMՒ b .n]֗ArBnbGV^$;"gwADC#_ h >N,T :OCz5Y4:/dJIZϮ+A;$4$>(q!zHLYZHBybU?8?h?8%^'aL7t ޲g>גQ4mU#hJ?& dS*]XD(. jj)őo o׉d J'&@z^zHRJ!{Gb7Rer~ys;g4\KP>X yL\v:W=WC7ۧVmjT(r‡ԉוsXe'fdo܋[?֎;h2>N5!=Ɠ,:mGZ#f9HJ/ -+IBFꎔ}E:%@KB+7u3/IӫCze5u /ިsl-Ncw֧c CA&i&Z/-Xk<.eCHSC#3N(6ۘkWn\P0 bc̆;RN<Ї.`Q.6ϪK|iAƒ*:\:J]B08;#Ynp^x/j} 2f^"ԙrzmB5z yrJc{e5PyFKС*,슊 trz Q]{OUVMiv1|jg'<k0sa yy3]`y&~qpVF&.1fEXnOBC'+?e/?g" nZ3_2qm2 k͂uD;["V\(2$,Lzb B8 :Ɗ;arkIz*d{5{3mX -`)͎jTI (* ?`QeGGz]5:TF>q8#u r*x.Zggt'(ÏӾMOEx)tRya -nn.YoK@]^_gջ| t2\]ۤFxƿaPć( t3'Y'q6]3 dFfUMなj0c-2l&iCuCW(\:-i]@] dIbZۂ7C4ܠvgRrx[M[eKj\2PCyb[ (as|0uݣc B$Cq*W_zȳ-q[jDgZ>Ȧ#{2ٰD}g0H:tXn=|C5'L(O݃iGڿP#$M1vjˁOf0gKZ͞pˋZYmi-QjW)<υ:qJCHuڪSӱjƛ!BHj8V!B; /Cڍ_urTUlܛk{ƚЛ8r/ƾ,CD!+;$j&AƤCj)~bA?2|/.s!}sHTTNcO|V&v}СoTMDIIt>ULiT$$\'Ees~ʖvzIwWp/;H`<qBکX{g+|ovK쉖/^5ua3.G,Po{rpsC@W牡9%X-?.}IY 2*+>b֣B* 㥌(j2t^ gndk-rqjLf2AvCIkeHdlkNݪT虼 @W?{IG #몧z6ìۛQ>O泜[Fd$37 Z]CRw΀a Hlj':B(k̢M*9jRyj'M&O҅lj^c<]Uxk~$z>‚>YB Tdds> b@"4P۸ z ykwT5b)GdL̇6jQ3%j?B! ʆB<` "SdKM 陹ra_8YL-vQoBk4H̶_jۭH8vꓖT!5OmZMERZTY:\WBwDff?Ʈ?>ҧH6ltyur-2 XBspC oY1F!{hL$B\NgꭼO٫m%v! iCxu}~~/-x']5(4}]1IjOQGtM_{C7Zz1sf(&-[Y{۱IS,IX3ɾȶ"ϚڲNфd*7:4˨ے[NdMਅq(t}\u؋U Ԫd%g ^M`In鮪٨TkrxdKrZ8 Q sLxÄ^)Y=R!QYW}D'C!2c -̯~=:Ql_CDo 0XQ^+{ЈlwK譅'JAȴB:ޗed[<{;WX$C~D"00 'oh.D/vBfPwӌU_16ŵXC|LV^&^UH!)UU=fShvV[E_TѼY'j'+b:9-24߸g܇Z`37j4A heoԲ7Ʋt :+?H:=0miO"}oC]\ X.wZA2 X`$ٟua3j+4N#a{RTMkv3jT*\p Ɯ6Ώlї( r`ɚNK + QTۡZ>ZemH2|h\,{ 䕽 Ųգ} ˨n׻5 !Z7*YոAD5uhMFڍ+.`q~ R?m==Tk- 1"_=ۋ>ApIOpWrl@d8>Y-I2R[X\.9)n`E=;~N5BY!weǤWZ;"RzYDcEAFv(i7KTKpݜ_M{蜻 \LH-W\-$-Uqʐ/x8 t:VXe] jIVbV:iZXtRhTk(mכAp5)X.gI)ii܆qQB_pE Vb @;74.^;_xAbb. LF 7%t[~uH7 BQo=?!o)iݖ:Rh#nfяk+"@83X1'og`h}Cܨ&3~6kOKR`sV#uG#v$]$XIs zkrӅ込]6(Sɜv@vdA5 q-Zt璪 bz|%MRMAd \rfL|Y/陗ՇUeaid<U3j=/Bv!^yluڳlU{fB5VAyHN0 #0sL!hMfɖ5;3LwN`ZWq^qGզuצӞRZZaC KX $ !XXHg1zN#͋O$m'ӷtZ $نDʁq|11`+js9Sw9߂Vb Umld M bS@MiBY \>_jQ| ߱Ek;~3ݝhXl ˜aTaIc! . ܽ &6rjP|H qHt_|E?g%|!]ַp+~X!:ô.2Qxۇ|E ɟRjin$žMjj7 K7TKŔd<Щx퓎&F}7vnf<#NcXs|RScE44W:Xk]y{u (DS`޻wً¿= ^#w>LD"uFKXEZZ<:kTDː6$A(X@ɛ9vLUsnHSD$3V=brU޿$wd@cNԧ x3RR.tInw3w 69xF 5mw^ո]NȲFשiIt%fbԉ43X{%FL@xk65Ȳ\K9x5,n# /\ #$w&w'g$0^hغI$ڵ4{jlq2 Hd!dw$ݣ~tdzg$Q;~DOP LrnV~Wf%Nӧ=Xwˢ7ȍNay@[Ca)sXTݽ֍]r(SB-L U~͍YB#ʣ. _zllOGQD$x:i.5v᱒Eo2t+VcݪZB# dUo츜}J&r@* ' NW G8P`uk o(um/w5]9AS\z##i|m-O`x"*T((^ƊA曣E,yߋP[ߛlygWeBE~"gs/mBsJ봰$| bg9O6WDcNq=jJ&lJy_S+ޡb6pS^[Xn>+àӒ`%E6r6Þz K82<B %~d QwH=r&yzh1HͯH t.XWf{?otCԘCD[=nwwT큤u>*1Ϙx}7"mT 1D* ۻ I&9!RLǩN1xZ]N* :DW~fv>F5gTH >M=դڴn7դ]5  FH!]@iBBtYrgsbxK|puO&kl42ԫZ#\w!ї 7h1wWWRV^lRҷS-^d5|je -szvΜȶZUIqF3ԷH]Pk 9kk|@&$W_?8U_2[uijGj,o?Z,/Zy GdOj"/ ''ih'nmWb_?+]}H0gz5ؓ9.&+VLʆ\, )MDݑy)Fے\MZ&gv>]#I+`GFĥ쭙&[w1hx!u./v̉O˼`nCJa]kp#CxK{lfgP>e2mmN&m# \ZIR9]-+.pرU,'m`SbgLɚjVWji %x}k1UExaw`Tх@Ȍ%fI0ۤITp(Ƌ[zal*xpψ|d'5YNscF9&}Z̓QaqH֧@cUa12^Nz,6o22\2W|C'wgnpR ^W&r9aȤd>z Q_(a5qd1$.sW|p#Rq"ZIZ0[vݨT ncb ׊nn1d[TIӧO9Y>:k`jwzFg> /תesP[NK'E.NPP-E|mI ??>h j+t接nFŹ$ HhE ٌέ|K)LmxdOJunRW~{}># a"Q:ĉj|1@/_{$y4wR*/lzne.w]6FfZՌoWȉ#X㛪 %\τVdeŏ3ŋD&0'Ѧ 6lW=s!>jG^>Wk- //UFB;A>I!Ԓ2ȫ8Z| D.0H1>: DC4akѤC3R#dl!PZ%qZѵ#ZWf펀/2g lhs &U&yX8[MM] [J LG0AѨ_G{^y玈8] \s88]E>A`N:7nY EBdg\jwգOlwW9zb`2kIzC}u)qdW'PdР38X/2qCGBjMv N6{yS}7j4 h{aGT[LonԩF<ѭ#Ȟi>O|*hzjAEX 8B[C"ryt$иq|˩1$Wm?W{:BIƫ0HZK6%eaچtLa'\av8M{s9 p u'R9C{Xгv Vw0XGư"nN;`(MڟjbkJ֛qU~ KFm{ԷI,@d%F:/V@^6,ӂ0ؐ9g/q11UV@fWHeAi;77Ņ/^Fah'>Y$2 j{Լ/U3^å}6?U @(2rqbL2 Da73 GCZܼ\5Up]Q ޛ˳qv;Tƅ&8Z*w.*zHVNWUxUynfH7ʋ{)WC\פ:&OТFݮM~~qsprrS}b<EING̶;3&~&½=-ý~z=`cI}aYeGƤpdiuaXHX60HيzYuq{)q#!%LU"B3,"(빪A<5wAJ3 W$%s#hb y: k`6Ȑ58ͺE8߫uR3d y8\ŠԶc_EUޱCѿE3lHᶅqz/.WD}R_F @aOb>/+QH؍٤ -5qFCuJ6Uwp`CGmIچF0R)x>S6>#D%ngK8K( *VO]$DLJ'6CZtԇK[_oHO.ɈWWKR 4S 8:dʥAM _q]u+Ay.G 7 y5OObXCǍ4 9q) TS~ 4z]uw)n.56 !ӎX_ʵS!9i- xy>8ƃ*DX$yۄ,ΧQ>78 ;(ho`X$u{'̈́dߗb-_ OefL13IR"nm:OjYS"Ǔ6xM5hn)-'lҺߣg;$^1VkZ5D8xyI{/ֲMV F$-KoBjDOrm";04##CMT~WO\As.Zt0_nCQ5yjHŸ& n85zSu`ot.xc\4SAZPbъn-h̠b\e5p|%oTQH[{9C]%uT|~˷Hb!X˯wZg*'n]ruUQCf>@3ず@5Ij5O3̺_;51quH2/k>>qOU`7Wh @Hލ' XR |Y;d^i _rm|GG ZTc {~^pL뱿y l$a:յiY4Le?wv7><$n9\kI7w,1ˢ9~4!_汻jn Tcnt.`Wd0¦b֦y=؋˃ oS~Y&5V:{p"oݵLw|TF^0k.!=cwaPR|YI[7O? iAQ/-LHM/76 lj" ysZ; MIПava=hӾlsLs}`{B :'i0fa;|vIeÛ91A/yyWlK֏KSڽG$zPo60t!R.f?cGR?ڇ^Ι@t,{#C{RgB I&J9$Xq\5+͝P {qZ#ut%d ٽ@Ԫveޕn)E1HZ (Zn$||sR2-p&6`{3MzcZ %~ƳW>[u40,0{8\7"3ˍBBZYom23W˂M9xB4'+M ؽ; سrgT(bI>ޚl&3QMȜ?)s*K)oҤqm? kIgH;-qhk&H(x$ڶ%<VO*7{&$r)49,+m.㫮Sʦ/rUlȔ.#8^khj^#WiОqH,f)x % %@n=hCC}nkC99| urPrf qͶeӏ3M͠ , +ms 's0/h[: -mE.5-uuD4 : _Ii6h MaBĞiUwTTBihY?63CO4pi c]"|v gV~ҷ3 Y>{ SNGPc4J:*L8S$zz`E塻c9#S ^=fs7+=DEч" VJS)t a;mdn UH6\MCPx;NFJSƱ94Wp.'4F%e\ p~m0챴OY!IfAX0KZb$9VʨźN|4 +cp0GQR4}Zt%Fˆw\:<[¯V7c,@cvl~+ʎf'1D: .oqjT.AFr^o`ں@.VN4hg6=8qծ+(br.IZ$]bMh@`g3 m@rW+R.xa%i kgdw˃զ5q6xz/ ra X xځwoG*g/YX&.Օ$uk:^fV]t0Lx7>zzųlQHxoo2p{>bsL ɀɿDKKp٩d~#hL x0^Z,95)_f88eR#]|oVZ|?j^VJ+.Cױfp0eJ~'shvF4}"/mCVr sI<:ֳ,}\}P»9wZdsPMXźJ:@׬B2V[=qbw7$k|RQjcƓQC5jՎRI-  p tX0/f^fSUn77SRH1,O7Gm .榐rR/H>B1k+;W.I/dKnQݿ5 !tGwEt®"4.^NM6#%ݼѯ}*D &b(ٴwƼpע{:*v:#6 ZqJ)5x]JvTEmh&Zh"AeXz3VS]\%2k=-[.`#璞4Ͼ;"6 t{ &Dz3N$i'YpgarIC&fRFD]в'0ZO%SIADOZ꡸$o(Q LMab+XpvP O j~)&PG,%vۏy&ʻ](8/\Dhe;O3= 6Z>]]R[a,UdҮg^`P%3x pxEXE8yyeEp+ڇI>)x$0-#;Hj,;Z53D+nk,{ H\b67%w:;;ŸdNp1jPS,ױ3VZψ95WwWA@gj~bqH0U{U28wtNf_9e*?铵9{7ehxF)GugnT.o8#kaoeCNG JI'Gfgu~y.>k=W_pE)q Lu!tlQglD"3 n_"X-y2-38CaVέ #jM[6ZvQEtřC2`&we8"α X'qcvITKLt}VWx)d>Up\l_Mw?Y wZ5ڜ F܅:dָp yUB^:+03~R1`y1B39/>gnmmhr{4Q2Nک"U? MC-|vQ)ue ?9,uCPRc{v]n<ΨUb4=fazeP2JyX/֟5˯^=+TVM:9+n{F#[vzx\1԰tiP\>B֒a%҉6U?8Z԰;w"K,igVe%C5[iGcهe-yIuR Fl)'$9%ufZQfљjₜ4<<؍,͕ tF/Fm`/tߑD7 # \A+@^Ll0"BZ"@C9 ƖJ@wADԌ'%NcJ0켧w0ޫ+Md۝ZW,1S˙UҙPws S\d[nuX]8O[Z|տ 'N&aE].gDGLU eBf9lp7EnƹTɾ0rW6UjZ^Rz̉Ҡ/4%,HH.V/O.vS UI*!`#Q+4@Ni9o@ˈ,{ trfTe_$Z:YDB]9O:yC Æ_ih%oܤmߐ>,V*VezIPQ ڝvp>ڋE9FCx IFSεܳ`y-HP[5R1K"mXI:uɠy#(rN ]d1=o'5y]z!vQhٍn0˖0IVoit1-i(8Q/bdI= J# -48a뵵L|aB%+=QKBhc&Cաw# Be\˫ے/v:|;D{DZ9 L%Kp㒶R!NxKT"nT$M]඼>_#Y [blϷ2[j`}vsj5ڃx5)MMIEE4ӵU @j-8?=ஈI~c+Ҵ\rA]y 2c5Hрw1OcI瘌0VYnvkE%B;_$9s:>\)sFofoPyy[;h5ظ&O?uVdȘ1;^i)C9k>|r.qa;2r ;+ ZGzm^P{%)N1Nh2VQA[RX 4Yq%xT~i9u?P0SsAޅ(ʨ[ۺamA ߂n>f&[Oҥ 괋P>LVFfJGZH, Ħ>z%<,gK;DȹwczCZ?@t҇ hv14Hv|>6=4;Gb 56B&7&7VnG;R \pIޏfꑌQ?s6~"fHܞC,/p-l)ӽ3-4!-_ ю7Lc , hY\{ aA2ЋK]O-K/֕or#AvtЏn=b|+٫}lnLWgq-NZG<{G.~tG@5w 5 wrxhev}7p`ȺVA3\@.W>u& YTfo3R ^^nv괒Z6\ 5|9{h[~hr8Pۻ\:^nv]Al~ };AI*JC.DŽԁwAØ_e^0'g 5jTճGS 2 cAI)Ѱ @׹NKNAgV)B:hgZukt |&b:a  T~ s#PY.d=G;zbtm-ڵ'Ƨ2/ Pה^e,58p8XK:<*lLT7n## :Pt6`>Yh)` @&C*?чqt^&*Xr8=)ֶF;|/{W/dX@WcG4 VQY#[$:OȾ͘zm/@SF.$G6_ w/C;M3.V1gXu\f^J 6Tv 5^Bq&Yh%ړhST׾KؽV= II}F )$?I\t'Y9|c\H4  ϧ ,媑S dz.0\ﶭ[ɜD0M/aPdJ&_h+P>)%++rY_O& Sl T%2xp,;I*fZVUpKv_0\) | W^: \'k& 0.ZO%۩wrlvi'-lUw|#͋j@ۯ8sr^ݏ8AcHx_}6L5:#HPn-s&7cyg1'!0f]$Ue@ I;vh.Z D qͫwYd*p E.aIy|m/Xa>Ù ׃j,ə[8+48[5ԟa«K$ Տh ha?"T̂QS }UODRc6G"ѬZh栙Nˬ>jY+n?XA$@qzz ?! Fiq(i0ޓ۶`wemMɗ9䌝Er -P=m\أ;~9⤼Oe˪6|&'8YQwwj-C GqRd{*U5)2/M}lDmgLjL>Im":nJvJڍz 8ו6YJ},O$֞P8KyӪl4`]u<9E@<:^zGC<5ۂy2.~o.^ @"h; +դ go~?gD]Vn`nqc/BۄVZk #WiXqfwijl+-{>H"%{5|`]1/f]қiz5o.hOγ@ݫ|6Q*ֹw -$wmC\ķ]H7mCt9/Eõv?YeپͿ`HL TA] Z^Gz/ G?NJQs?ʊSf<`O9i]pw: ~s9q#M1U{]a@Qĕ&ae\bkӏ3XIVZ놴jÈswAGy7>$RlqsOEdĥ,\ ".ʻ GVQB4 DԘ\( HY9$kEL!*i6SBmLSgLY|5ó`i;viZuqJ5M`Z7(9c305` :j3ł]8OQ\ƝMȯ'tuibzd>Q@]'%SHFeɩOS/. m1۔wkRSg=SVsfeΌମT8atR +ҴFd~/29Tf瞗]\+E\;2N.FCÕr's:[pcL):Y8pZK6{)rE?q}O( ׹M}-U_]ͯ_g&@7j@PnjAɫ[}ugYkCDjGeW}|ӷ#yEULd'XJDkj])6@">x- c+`+d[: v ^ƍ\`9cՊќm{#g ޅVѕw᱿wacmVuRĪ$~b߬7Q>ՊZ fu^PTGx*9|v$<1rPoVÁ>.PgؤF~'neЩ!(q3e@8 ,Ě8Qm:~p&  fzmxs8cEnw1=.SRwlFIOnU'=Z^Th{;T,k"R (dW1NCBP_G!Ғ4o-e{MzKƗįK֙ JvђmF2\*Q"*gAXk<=DX`ңhEF Vw9! ]"-$< ;jU.Xs^qzIϰ\T+yrHwOaH :uS_Th:pZr; ݑ6kŤ;O}-I,frqRbF ꚹR7 3E?QspTpԤHjM;_P/JfHʶCaW@|{i{fp:)#"Tz%oܪL}/H 69s ڂpZyk+DpZ~-W6K6LlwvR)D*fW XJ۹FŘ0G<峻xwć/Fϻ ׵ԛ=zޑF#8~U~Ig܌ZQZա^'}3&3m:Vo`}8.@jrtNvޘә<$t֩O'ٛ,ɖĿ.@ t^ J ,4g4"ZϞKJo^}U&C_I街4xJ(rBh4]]E|n>+}]x#>-Z]GT.T£=[d s&hӬ `8f$9jw zV 0]fi.}^T>%%'* ԫ,[;&62^A3mxyJaR4ВztkvKmt.h r聕7Dl[ݞgDs u\k(*Ȅٴk^C(-) &̕L3'+`> &"wO@h<8yܞ˫4NdZ״:2_$7ln_L>˿+A%2yђ,}">p!@jw1Nf¬F>(IvS7Z̀}H^Mwe[Uk<}i+,"s1 #Y!^6ٽƧ=d =ւW3B.$GS h_aV߽d:Uin I7 XQZ~Y([uDeJ(()#z. [vEd885vaRr]]B ̐? uш\nLƧʥ \^Vn:7#)1yW6oZpߡT u<.@KɱhW^j:"l}i݂S|7{Cbu'k}rU2tAiOyS"k$/^㓮s_ތF_,"s2}5Y8f9bϓ% jy%@Gwo?O|t3Fm\>e軙6ΜDjMz3筒l'/]&8F,3Խf.5{l uҿkv]7zITUo)cQcj#=+겳r@3duiq+u`\(D rKTΰ!Nݯ )Iw^L)~)𙑞23Ɣ, sKΦjj*Ud~\. 6UѮm);FE`&$ejhRm[aX ,)EF 7jiUƌ ɤrMG4is<:E>S,Ξ}}OK!>~k8!08Ibb8^}<Mzm՜:7Lt4nҰkNըEfvG54 I e<Æ>z{\:1S l.)b7JfѨj>7չ. #C&Α5 ,ٵZ2-#)C p-% &DE29+l;7¾vLw .kb Hx R}#%IJiRw8ePϋqGy\wyj@Wg<8XL֜W7PC8Rk.ʕs|pQ+RI{6! Z6_}g#Gi0;Rɜ_YORj)j0s+3(K[5<~hX p~B ɖ(w b ZysfI 2I\.\ VDC8؉|RߛYe]傟^YQo>(OK)cp:e0`ƪd35Ɂ׳ 7~xЃ/Kk{8Pi<)5Y6^USjJF(ԂbDҦ[pB=1kk/1X,r京A>ke:3;gY( 2 !Z#ί6APoB˯qb,Gx)go"Cg/>YCHU@b<(C.3I.MRos얃"̓푒j4DCQӭ=R\P:{u;Ը5Icjhk6k5lQo*\ T]IjTҲgy\v|j3܂Ζܱk'U%y߱ȥ S54KRu[yL')jpGˉ֌1GŒTƹ53*41Gl73U+V%_H wHmLHm=n&!Ւo)~v(͑xۿ:3ȯ4jVM:`8tZMZY6$C#?vM\^O1]gN;z](5B5WCx7"i߾O2" 'WLgu= NhB źa'0h^]8* ?IʙL݆&)>Q5j36&"]6 E҉bTYQv%ȏ!e)/x,{_G֞"ta.fjO8gPph.iZ&,hz8;%g;-o1\2OAU*aj3|d˩E[?lRhT fdeo= _̨pfe8)UGV,!NɁ+Z&88jK"k֪燫=o'gyXQٕBD͉Vsl8G>T/ !$8IǒZ<s;]֮tF)(5[\A*r}jԊ :J؋i]ښ{ h"eRZ7Ah+Hp>lv!TR"RG~$sp_qz OB1MiGօF]o}{<+^ ڈ34]C gYfq][kajC{:1I8[vKOdQƨPU6]罰&,/Gf_)֟ihV۴0!jp,0VY(~N{IO3\[|˜rɪLI}s3!0:Wk1=aJcP/׫&i9al26JzrѨ VժXVjygOyDT]+MQ )&*83E8t ,I%R)!J13nCuE98YgLC?!a-jخU#dqTmaHLA/οr1ѶN [{WzQZ1e+g!_(bSc׹XQq_ ++Ʈ,Mf~WdH*|Z_$y}^蔒88PBDhEHɌ,/XZj `X@maa=xe˰PDLRȑX bKb*soזX!YupA/0Thp-̎0\QeJFƏ5a?xK?N)4;ϲIӄ"$~pB酪 D)Bs憚f1{NդugB:0dGmwŕD$FfYmF·k+7hfmur#] 1$y&,{> ÷bpӪARc^ۨ2VN(Eͭߤau#:IɨngW|P/F3b2,_t'[VGI8sUΞ?ş~xa<$ _kڏb:z1[ ز_ =<ΣVrVꯏbx3vڅkQ^Mr㦹 BTj!"&vB\!CXFyD<+$HMj+Kz`X&mSt-sD&t=(ڣahEұanCpD,;_8C`rkY"~7ê( /Lj {U9~^>-u1b/@3U}w;({O> unwZ8(!jv%V`6I<u E՟7Ujh{K*\xT;Fp@"1{C'>oQ?8$\ɭVǍqPt:C'C0;mz^ TՆ+.|}l.R>j 趄V8//ã$fyd ԕot D;jPUaPjRbXFSt >&=Y Gu/ТOM00i6͆>~U>Ԛ$<A< hvϿ)+I2 yؽW/uK@ hԞFxJ ]矲OoKo9{k֍}9U^Gy{t\հ%wN%UZ l)ڕ:|$lU꘶N仇\!Kp~˫TQoâ{ -"C{G׍6il:h|qGEXJoX!MG&^B2c =#McҤ<ľh_BЉ^n6~1-zvG}OE8|kg[1punMj 3̛1[R\Cqls"??!m,:)3}2tU?FgĊj>`Z]\Ia~C+ň: )x8e'GRh3Ea"P+A0kd?Z};ȧǏv1Gkb7wɕBOn嬁tGW0h@"q g*3y@?:0]¦5n8B`#M4>Fe`UknI-Vﶛ DN2mK h&8@?8=z>WW'TYxt\X6LEk&`/[JjI!M~v{G- xg2Wd=e^R\udȕN|adxx".Ǔ jHrNGh$:긛S)\dHҍ<=_a˾lTMu=7(ŽeJJۚ=t=8:jHN0`)8fRYL%jU`X9/>*7"ANjqѠȊlI a-xΗ+M~+wOc/%ckFS'9"u Q@]ij#8&]p/nOsk簶dV-(ӚwUͦ5^0R]W TTªo.fd)J|t\\m7!¶~~ȃ `΃p:iMJC%Y܍0s44..^#L-ԒcVG|On+$4WJh>5>uϾfvɝH Y];)0!FCz UeT`HLzڨq8MpzѣԛQJrMqq`O@ TE%I{5UxpOrkh/* _r-QL4 Hn(d$9O+z;쓰V"d.dKFF6>EqdiS$N,&3d^!mVxN?Gxf^D:7l{9/I36 Dhקa%'vG=Ě BB+wFF-{GIUbmq(VR廴n)CZi(]j1wC,b-%g|5 WZ83@CB2'-_54E2 ҵ$[Ы,Fv\Zu5_^Cm7mK-P \L&{$_>s^7Ε^yatx+[j2,-uPMsӪЪw 0xO@C,O8Uq N}PT| `cͥ8I/*Kع"Yk0"D"N<8SO](5k'`BY۸s., U_$3tc!y<).Y8a/bPSBa~@g>ֺb "96թJW6gd1mȢYx0hKKHN jԸZTCՖjti:=-E턁ʷWnȰ4t/q:?y4Ƙ1>>a;ZĮ`\3%;Rj[fQ-@h_!ʙk0΁7y tEQK=U%u7Üz3{0E`:H8Az?H:K vQajGU̓O}RtF:koB>P/0ie3&GWJ* 9+ G+w &%}Lang_#iN<=(+| x{ $:X]*#Bf!i4)" K \O*)F e#ԡI@$EJ[eSR$u'"S og.(7t,¹T8eB+_;9#H_|B1~D3P3*×7Iۢ*6UTNLjTV^mҦ.V8J5Q4|^VQ(inJ]1cnp-T!p `V9MoM :@MW]1]Qz RhVGNԋZ7XzB{wg j HUջTwVM"L2wCk Z__5x]V(>)WuýMP~Q XqI4U;!! So6UK:t*7^ָ>PBͫAzh&os7[ɜwyR}Pf7RNÏE :¶ G0ǧ3O9hW#z"oŬz$uyפzDᇑ肞&qtr)WL`8 -r[|B9ҏCJ+6 ^$e_Z-D?$:EMnۃ ]V!{2~FJ{m AO &{Z乂\~k_(C*zhu;d\\Za6VrJ37X}yM " \wb013׏ ev$aK'00eNBD!jOTgCz5;Mv`sT{Jɡ"[|ꏪ.f3Y N_nцi,A3)4 Hz e3ڔkEH e{K\ֽj.$}wdw%Ԁ(}x?wHN.wZ! >RIragm!e*@{Ļ@5xd^K-_.X;#c~s_ ]%+f)\kXAS-٩;'=:à+ Տ6Qܧ[hayRS1o:6ȶ-}3 z(ur?G_V$PzXczE9/UsjG6QPΊf]'^Sí񊿺t}f W 㻢Q^8l_:'#\ַ{aeNvXoiQEij%ۛO}5XNpd>. oƒܭVk xzqWl,.pϨ4X} > JWyovv?FEEt\ڒX:!bFs'k4[NK)V|DVSV y*JW^pJʇ5if|2k=5G}J=vWCJI8 )T[$t97Ev>TQe P9` +b[̻u!I]?G|>Cs!@v]x{"Cu͖42R(詺U> V6qr+ "K55+Tm2,ޡ"٧3sL˼wr${f9Od+~kVOJ`dJa2Wk`|~~b''-s^]J)i.`-p%d ~Zmˣq9//iT[M1N5YZڨ']vDgϹ-Wzm2/ \/ԃ\s^FTWo"~!g5{قGF!6bƧ-amfpP `]R8qz$#Vgg]U_.֎S@ GGd8I ^dN\Uz4M% 6dIa`:f9 509pZ%7LD_hdJ @>H!-1'ۓtA:7Pe"xyLVa4l]y*{8q$ǣaq.:aхv~w<!>ݒe:Bޯj0qa632,5燸qr %uAmEݕFq7-jyb3FjrMԌoG)TLF]. A79RHez%]{|A\c:{TʀaIk~hkblYD~Gz'530id+Z)\ˏ[yz.%ʣ:$Vׅ7~OS ݬ5؞@A'\nlbA`<_'XlT34_Y0Y{X[To$chĔOB^L83E=]5A;HjFfI>j[jw/p͜8"#yMMx\%uH4*yܖ ~!(G:W>kPfzY%XoF H݂al|$ő/-fɪUAτTDTԪ5co'jܩl"j~j;[s{Q#C'⇻F@ Tb:^={/a$AV._u 8$'Δ%;{2JK=-Cf ^3~R7+lTvWR[P6c<, q@v3)4K JI¤RQwT"Ɏ&AdxZQdVdRVI(o–q>?ȵAmb՟>nK~X6)DXy 1տs'9В糩栕<-bs2cI[K7Vd#J8FuEG[}TrID+MZj>>܃ʁsܘ>˼ߞZ.ye[o,ʓ3On!G83z#Q 9:gK u9L3K~Z{*r;cФ)j %.bOAXy+h/ҩ 7ڈkVW-cƌiVȾF^RS0;TGmiF?;PـFL*V¹r;;[9YΞ3He{yZFiInHXR."騪NrymӲ`‰({P9 }9?9h+_l 󺾈RW_X4R>H'o&"L!NCx`B\$ԁ}巁/nvOcb"jmp "ZAZvs41ɀ-(uЪ.GLg |H2ҋ%ov$+u x:p0Оw|0~`t=Û} 0э %Xy;d3t n ӃŐ -GoEW$0[q/,Bh/I`K}tFUSC]Eqʵnj7v UC<0%dzc0s>ٙe F 7R:'M,:@NkP0JŷOoyUư-kpetbQ3wb\gD2ja{Ƅ.u rK]P;Á GMb;GJ'1PcmsF5 nעQR-IAzepQēZ;+3aԻm;dzu{S&O j]Md K \.{Y?7n#ڕ UK;s1KU%>s'\qiU}G\壳x9'Tb*f7 eZ R#%p{ǒVC7[Eј4nlE;b2"Hk1# CZ\A1zwkڇas0LAs=V6;('Ԁ?h@ZTӉK:.ꕽk-1W"pyw9耷:!1 vXB]q{2Y  <@xiV1c!q4/W0n^uk2T#nf+B<Խرȵ<'"o|vW7rZ!\d\T"jU{đ1J)CɨBz' :keҫ,KV͚&βF`48.]kyLYWMB.G [z`Drvwix[Msb^Y2,^u ~\NWMB"ҳgRZϺ 7DysmI% ]M{emIDNkX:n WϫE *0#И$Z'cג$WFRy=9ssScΕMtgE7 |"D}6мk{ ,t5PtpE!15BsI[%4` D68:zu}RjB4}8;'bDa˓G,1:b}~snaw΂JOЎ7H 6ƕ_Lښ&2K7fX-J()i$7iG?ZInB/\^ކ7z5 鵉* %&-\Սj>|_\^gKu7w%[A5 )h3Ue] VZ]['XAپO>)w!8!ėrf:>Wyy ,g ;P# D!Cp$m:Ɲؗ`!@J)$"*nfW*N)^s*t^ki!rv<#u, ϸcTb?ܤ@MShHz:`RSt,6ހw;.w$G,(jNS£e|j[e4kXMP.Mp5fd#vNBKT1Id2N:fSipuBST\IB-,1'MYB=W0&>ОNNXm6ؿ3V/TP jrQkŽ֕O~Khd֬Zo[av@vk &We:$ g Xy8!)~)g5ak;.Ыl"$ 4^lcɮO/Џ|qX<.ǚXL o6{ RG,Wz 6cYCh0dx7 !,܁z- ś}&A;qZ2 mib 1Q eCDF\y6TW);!bP9h Ѩ <󕾢9s+05Yˇq:@|t6V;@Nr3wȿ8Ylv蓲>A޴ԋ ?D}SgE B&3/K}qd6#,r}?3;4f#H6F0irP*<%FC[3zn|3KcWmj_`x mNL c;mTn9lGi5L@i6q[S&Iքf[C.PBvѳ+*2٨2\LPcZW~ñpyX-!aZ6#Tv|&l(5%jO]بf{rH nhC$V"M-HF۱jl #υVҖEH~` l:qxܛK̞=k3aa-"63EVY&ZDșZs/fQ5vvwtrN6v+7<$VU8Zml,7lntQ @ HkJ' W =2Լ65>}tuQwb}=qKQ!?y.ws%b7C;Q$ph\ n&@fxX'~'QZjT2:p洕R/()?8ļN[#n/XCF:7eϚXLBg'ıY.`fvO.WݲDv''):-0tw]y0ՙ}&MUtVn62K,%|o4+](Μ:PE$CT"v?s2F]];֝VӢOsmJ=-߇IȘ-W,])i |ܣ9=X%|x3@Fm@ 7 ^}){dZZPL75ȭC*kKf:Q@jOjafv]G &7|r%{.F !ohؤT+Ҹ=5.0JCsY UH_cuB>з4/S ~<[a[|O_?gNx )vY,}n01.=%4<` qV޼AB =LE;\}CuԜz;4dw$%ȜAKqւJy\r]ӌ#Io` ŚI=ϙ+,n8LLg/)K|5$|pg!@zjuZ%ԪFMXx(cRq CDsv ӗ$}yA\T6xAPX#Q,fCR W"WOo_7Qv&'V d_.krM&'jx=J'|D=F6˥QO%sGh@bg0ꔔΠT^zT'Ը֜p%aq BT\Qz4(#ϱ䐖[`dG4GNjȶzB$esyr@ T? Y>]Rby!Sl0D%B~^4 gɝ j:\+UxZ\|U,\_):q6vp|A_s~ne6rk{ :c2&k Q.`^-cQ,NǏ`Ϙ)*^c|]ѣvӼ,5 ?(jd[H_,ImN1k94=Wi;NxHvcWnޠPN4zUZj&sW(\N?lp[`4N߳Ba}'鞤Ĺs_ݾ)覤dih@IW^HXn?-۹!}8Mb8:ϓFsG_yZz wPz'ZV&&$d..h'y􉅪tW8]vBMYі,Zsyڵnp 8 g a6,xM'0Cϟ?t: ^-Lmg^$І]e2exap}ys)٤I!C1Q˯6I\ѡ|q"&T8Ͼjvnf@тcռ[$&s`7G6;Ӌ؄KF#DyM P] ;N鼞setzT~ ]ѐ~x4qt Hb]ci[UX:\{(U0V~pru-NN(J.38oo="!)#~LX:(FKSHZuJ:o6ĴHe𔺜G؞|Xq2!Y^98͜ Abe6`%CO3iɏ‡QMvr"/%\;p%I"/PQx|ϳAFSIJsg$(GL_N &m& ء@uScoݡ&?8=X{Vo6d Yu]HָZA (f8;#Um"8ӞRc 6CIRL[º\)֪ؑ^}A+1T83og8j5(owe, DɀD?6GmQ9 ?.ɞk+;Dnxs m`->Ro Z2)KUDzM3;h9z,'qوG# 9d0WkHu2 yRYA>cc?@xkqڒ,/Ȉϯ(m@T*7b2 EHke}("ޘƤJJMBț/$=b lEϼՎvƲ/!W!|` u.PWs@F꒚T;,y0Vމ&'pvD2SRʊ`s/7 m IZh4s{)"xCQ?H Yn}X-j)C8%XVv[4&Mݗ'?aHrk?}JimkG벱?okO Ig*=U$\`۩Ty\2<VӲNT4p8L BH$A2wY t=Ů P󛆪ݱhBƖ@KZY~?%rx /ެ<]ѮYnI"}Ό$s+z֣)L=61qvHB1;@Y϶ I}(> _ 1µ sT%ו&{^u6K}%պ.P."/'^ P+WY@='\?dv q0ԩ#;OL2sV[꿽j|q7$I?tw/*F}(HWyޔ}cG؛iF:= nl睰 [qutd^4vj~bI0sYuv[hƤ`kxc{^;EvBA߀@uIu;j!ihK]~~ !s)-7(% (\VI- 4dzz dZ2㚪Sqv{M+.a^,63C JJmpTIz㭓`Zl$swQ~W+׫5HMdG-sc特x " ^6Tz@ij̕3^±OS*2} ~lV+b[:Fya6\xM촲6.㹹(]2/< rr򑦛cM?Er5.wF]MCN_.pN1zem QIZ!%%,X$24>R?$`'@=Ns{ 1L"QOx$ QMGtZG/,S^glc-f"eU|$! 3Qt9Y~*irb+urD%̀@e%U;ڭ_Y~` Z#4zadqr;x\#k!*glf>ۡYX\Ks(T3HXi}C.N5 kw~\L耖~z聉蔻dmt;;b~9ʸ+b /FOע K__q!?'Nݶ;^Vk-kל;K۩n©@eNv٬7fѦF?C\ m '/kO?647>? Gz[ߪ6DyNgO+wIS\lE\eW}$1*2u8.S /5fb|3~Ewڵi7PWi&;& p2VIIeRov`jL"B qo\Ÿ;÷Ӏ;\=NPT7F V07تYU x)G.G2Pt *;*ljӐۈg=xFufבg5j{/$_jQq38ye6#@(`bCAb_x#}}XW*t~xNoNF&AO_e&둚+v|ǽȟ`J:=CM~L(/ +SY}#zb3K 0\I aþ ʍ5t\w o46 Ѩ'1zڢ(گD7R:gzt|nω}` R/mb9GH{f k"i[DEd0ޅ/zj' \*i,mo8q7@Y2+-#S9QIKop0 MKz:g [}Q7 YS9̼+Qvtл:$kh=etj'ٌ+r'ѰF7\xE~7/_ .ԗO#ƣD&<}VNL ^H*nxΎQLkI=эCgq t:u SsFb,7pz: j}=*݈äx1̢h^~Hw*j6'䛗 Ջ4 mx :׬}Qvӱ5S#7 KiAZP|3r-_hot&QKpVJ|~8DA,ַtYmLX+, p ^; o;21%}Ip>#ci}..~ L94Og%Fa<Ӌw913Gp2Slr'icB x7"¹17#t `%ۋ|] to{״2}N)J);pX0t& ,ɭV$DdF7Ag<ѝ#F*(CUJ5Ι߳dI5,O?;E%e^ɬ%4~:d .is^U-]pzaO/Ba 8_ C3#t]6-8pVoV- )5X{@Gv?2%j ` ړ>est'k2cQҚ4ꝮWs˩O#8 Bo@9+2ܒTո鋥~湔Bp`+ϒCt$k0sqA[BFH~dj-Fɰw_M_Y2XJ.|xZU*28 K#}ZNs4bͨGoM2w"?"Un:>fO}ת\Ư:ii}qSY:X|OTնjLS^e0s4ڼ&~V"ob}A'|r"u33P,5mlv!aKVsei݀sV{XwTOtnxu;~/bGʄE}Qv^j`cjJjaYX5(Aݚ 41!a@zuocq[Ge;}Ưvq:;5asgu$,H!!P{)V3mUw?G_;&pcΒfNFD#kg=O(v& Kd;20|:1>Tu؋2u`2ߩ;ҵ/tgEz%PY`e] Q#g9 8=88|eIev(iwu έ,M\q{>;o{믣mo 絛voo|_|_a `}0qnBT[YNb7\x3$wnzo7~v?KC3IR{or_ߩpg#7͇An<{7o{-sUM㯐8Nsװ ,W# A's}9hI繟zoG0I|iLƃ[_n̾erpȼÊ8«RzK>[@DZ,=d#cIH1ft6NAn(_eVcWbڮ˃p4<Fn `ӣ;7}[C+'8yA)d4e **$o%d;@9d9~!.a.2~/ s Xk>;~~/XL`K#ɸ<fWo*lZAĞaԒ ZAl'#iK/\)!4 !0v9utPFեK͘i~ [H!N272Zev)vl1AUt|Q#ip &mzE,R)8e:yǙf(aoqbRعҪ;vlFcqozc=^XKHQ~0C8L&蚍v`Ndf2W'K8 Nf&dc ?MG࿒gYtTSߥ{^J 4D yY%< / B-(lXU59|| u$N38S:EbN.rw,zyޱ"+hO(a$o,J"E{BۀʀWz_s^G 9ZZzWI }8_{EdMQ|9Iskq0K<;Gt= Aڨċw8U1vn6$-Yw>H[#Fis&8 _dη-!YyN kXV:Wk$RGbH`o YOjD)}0 3/h0؞ m)6Y~#LD