#!/usr/bin/env bash # # Copyright (C) 2011-2021 Intel Corporation. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in # the documentation and/or other materials provided with the # distribution. # * Neither the name of Intel Corporation nor the names of its # contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # # set -e PKG_NAME="Intel SGX Driver" if test $(id -u) -ne 0; then echo "Root privilege is required to install $PKG_NAME." exit 4 fi PATH=/usr/bin:/bin umask 022 DRIVERPKG=`mktemp -t sgx-driver-pkg.XXXXXX` DRIVER_TEMP_FOLDER=`mktemp -d sgx-driver-XXXXXX -p /tmp` trap "rm -fr $DRIVERPKG $DRIVER_TEMP_FOLDER 2>/dev/null; /bin/sed -i '/^isgx$/d' /etc/modules; exit 3" HUP INT QUIT TERM EXIT # The number of lines in this script (plus 1). Using this number to # calculate the start address of the payload. NR_SCRIPT_LINES=93 # Run /usr/bin/md5sum on the binary payload to get the MD5 check sum. CHKSUM=48cb2b6d92a7e5ac6df0f09e974e8b39 # Get the install payload from this shell script. echo -n "Unpacking $PKG_NAME ..." tail -n +$NR_SCRIPT_LINES "$0" > $DRIVERPKG echo " done." echo -n "Verifying the integrity of the install package ..." if test $(md5sum $DRIVERPKG | awk '{print $1}') != $CHKSUM; then echo " The install package appears to be corrupted." exit 1 fi echo " done." echo "Installing $PKG_NAME ..." tar zxf $DRIVERPKG -C $DRIVER_TEMP_FOLDER >/dev/null 2>&1 retcode=$? # Save the return code # Clean-up the temporary tarball. rm -f $DRIVERPKG 2>/dev/null if test $retcode -ne 0; then echo " failed." exit 2 fi pushd $DRIVER_TEMP_FOLDER source scripts/installConfig make install popd ${SGX_PACKAGES_PATH}/${DRIVER_PKG_NAME}/scripts/install.sh rm -fr ${DRIVER_TEMP_FOLDER} trap - EXIT exit 0 o^¿o_^s|Wo޾:88{o^%Q3bZM?n8i&;9;gj8F027 ڬy@c98v84v$rfanpY=r3c0u) #.@⇶;q-Zas'$ql6׆/Lx^x I1 i#.p"iB`Zy !a,rZ|&[+ZN^A,$@ܷX) a$b8kzq&yR yf$ǥو<0})[2#` }I,i@rА9 Oqa5@,2a.8$hXꫀkXUSEO`psu a^Ȇ'\ѺgQ/:j'C tبEх6 Czws `U|Rcu"fx9P4d *}#V{tS - _A& pѾV] AwNFɀzr8X_v:H⺢}R~Cv+HJ3dㅮXѴXKف=p (C "FYZLJ$AQ 8+ W6PN2*8>D<4Am*- ^. uR4'" AWِgB X"elEg1x 'H.3ԓVY@FD2 /[v 0O^$TgT/iB8=|3 pv9ʴLCw)Rj\&$gˋ۩&P-VF$wof4L7g37cm#V$n'naa4c;e{/_}ftb(l7ɂm1(1% _4'(Ȁ%-9iOP&+Hyx`,8a:lA`FwSMJ_>nj}PQq{auة3Y"-̫JnxWլȨ1qfX];\cર x!lhmG-~CĐ۶#f-c?Ln|63C<_A"b@2" ؎>uu*T37 Bk4}$ cHp'aL-!-y@ $T#a,9^x&e@n""9xu O?~a{C qhQ3 IukZm9Tic+ O,pѲ[K[7G v)y dcM!K ,dYv%FWS:cУjP%w5́ ݘނrft61D8J֞%'sAwNJWgf"*ȸMH-ln^:1sp JY|+{ d,'injE<P@4@cjiqiCE2&X ZO R޾,<k &tmflFl;,UxvapX1L滑F6[ n٩P> aXQ XYOė:  vW"R=^~?cmNg`d]G& _b<-@Qc, h ե│ND}6fTabU,_??cIZpTmzt"7Vid$>MU͞srp"ʤ3o,'Dl1|*|[V9^HI bq)<E\<[7F瘱s MY(prZaR-/R<9`AK . MF4*i:φRp9n֏(JuW˔7w iʒFPN[a~ dSU{PIw-)G߄!p~6Ř So·D{GBR6*Ցѽ*b#' KH™,OG;b=ڐp_^:_n2)cB㠤kQpE.;X)˻Djr`Y.'ǚC`isƳb6y6*lz];y(G2f(\Ty> GJqIC{?l"kX/Ķ6@5zmw^ýcgt7`эzЭcE K L\u5P*ϕ'#cX 8lkN x6 @[D֬]IIh$Vh:x0q6!!AƷnd!z_f:1bOÅgmޝ)嘰,;WxCvm3s{,g-7_*d_Oжl{ݮJy$*h dS)j<A_9t>vŜR,0o4+C9yEL! -OegW茭5|!"Xy΅e1ӝcmHa:ݿm;="6<# A!HMBot솑wAa+<(HE'(kH?-x^㞬5DhXNu)}əKČC$|rhb|Sv`(!^ 2Olgy겚P9[3 x ԋ'3L M?H'aIFt{~Q$J2s-Տ . 1O!յᘨBql8@:~%# av.wf%1hCI.ɮx%(K^ ݞVyR$KȡW=7[g';]ck7a(Qi)~aòb+ZGnH3ĻfM͈ΏH.LOd࢏ڡr5$ d`eoKp*y<#ۈf֣j#|iՈj# \g`Q%M6 *ZN96b}Ii}Z\#K 0pҊsWL+,!ru8v!HPENT:-) x 59Tzb,gJ-(5wd\_Aky1_w)?'OcP/?K_EC?dACXOw t16KCuTC7zg/pegd[ysmM]U}l)=nyC h5 }oE0jǓ"ڵ +*Q ">|HK}8z[b 3]:*keNqZIAN6RX[9Z+H$KkČg3o͹m$,54Ÿc%AߚnT!WN C5 0,1#=ڰQoßykx#%taZC^^43Ӕ ^`2{Ī6~mы!~5NlUk+cJ.492뗥oyRjG~8Hj/G@г3Z$>7J;f]ʐk ūӒԻ>ݿɻqEM5]@}4d3o-SǚMeN*ނ+F@Zʝ" W2f:A~xD{wۈcᡎhn-_Uo6ZUBחp/;S-;('~~ /GG`Z-2q2&Xdj~a+i麒v#̠|[(_+۪ܸhtyrWM5G%޲FYǻ\/ {wgƧjj@kEQcZsINzܫ Jq pBαEx{5 o8NĹlvGx?]Zvy+M%%0!W.Qz#IA€i(7D(biO 0z(O먺_jKdi$ BޖHRx&#{`%1Rĉ6 ӿq{!A{/6*h:~ފ?Vy'V[+7ج[DCv&A*_SVۃ}/.UYiKZr+4QF Pf_iOeC Y%59R!!qLJOċڪyLvsj`6QO ?,iCР 8\(w 3@*d8ZR,2Q^[b9$ dbdR_+;5AŇASsK)bxG'N(Mq`!TsCU_&MtNG.E8+ÈD C+ or)B /!i F ) v ^x ΑL[L" ȏ2!:ė/ kպ~մ#,=U|sKVGGKʕF?a-JۙgQ;" 6 « g\iY6UJ\xeDŽ7( <jKR/DL=/TnKxlUzxYX%kzo>܀'(0ҤFSZJ;du9wj7s,ЎN u!58EC.I爩Wq5̖]2<ƊNPn˽{0 -8Z^DP^Lz04X" Ѡz=[l~(܉\L[wh $N}4vk0A}8µh!a[άe&,d,8IctY~1$z_=0A8|¥Ԑl hCoZ+<~lI&cSLc1o C$ G*L>b %~1W0`bp:f /yZv ce }, iiybNzzOZ"<ɂ:ަ2`wO$<> zzL/Q`trՇx :al>%7XYMO ԉELD>=.EwںMxQŧgS/WԚ۹ijEӸ|kCStRjb-M\KBf}##☞H^ z# Ա?2v}2#IsȚp ODJq]Z *TؒYL~F [iAPu!8~lX+Q@XL F!x]]ʆ#w~ [AZ𱎰IP!4c#[6kYvm 2mJ ÷^!{ .o"ˡ_wΜ&Ǿ [}x+& Z) 9&yXeO 8=r`̬y#6g_~c<jJ9c crIJNYٹ ٭N)|:txAnc񨒁ܴp=@suךո:=8ș rgjnT ."Ђ )Enu&Q۰p>.:bܴе=;.%o%p+KBID-wkoO6o6]W4ŧK2ͤTHGJ3"0'ŁL0 Db8 ! ]&Ed:#A/uahw/zZV+PN^d(9~s$u &*Sat;^kKid5z,"R],+$ 8c>7k&VX9oj7'c.o'n⓹s{=ٕe; =4ԃu|R.4ճsގZCXտI? 7ێl·;/G6@7fB%<1JZ!%dy% u=$qwPxKrmt 5>)Α^\I> a629kJf嚨1!R,_0˗u'-0䢧QI/E70Il#_MG!%׎06`Fߴ.@Η 8dWDtV iOLf4FdC;=3f2 &lPZő;↎S,<3NkdCVaQSvi%@K|$1Ip{ܠ 9G*I~uns7> ߜQea*Yv L#g6Ҏ1QĔUPff%dzݭ:ag nJj.lL|36fj8yDۮ_[8dxbrnFA;se`X ˰{oH"TK, {0akdkC=o|‘hhs\}TƜN+ 5B  qR4d"³ l)^Z<j/ЦV?$7D4 'gX r^5ۻBVVНD7fVYq{]e[0mZZY-Vw]!YAqE&t29n8tZÎط}v@\ ^[+ț/;cJ")*I#uӈΧL =;FNB£c<G=+=&n.v^l|#fLFWn j{/kJ9k"<ȼ ˆIp!~4(aS FH'uFpX t\|bTàI_vcO˛1+u!S v1>UD ڶutM` |_ŸwzTKTw@3w&:=~L+ b;>XfQ痑"3If6' FX6j*pw!64=fQW\;1~V/;AƪxÜd mm'ojP~dЎDXAdcTX!&ȣ9+p {ׄ!!.~!W#9JXV"$zrAb e^c-\j] ckXҰbRG2.i'(doi(0'Zca0ŒXĎKMΫ4ɏ 8jfH F82 psfOKS1 q]_b),]0HS#Ve?Lj!,Wh'A8lgM)3s@H$Ug,mϘzi~Y@G>àE2s)%^bL˝CLb[ wx|S8#!(o>qhpY cVyl2Ku>m ܝYv“ .sY4易h ކ]&՟6B.6D~"=mP[6w4fq=y au!R@6A()46 vhnPCm935"0=ǠN*BOOy&1S :2 qQ6}MQq #RgV>VBlO <{U_y2G׍h[TaqI7,3.[< 1!MG P3q4&dTZgǍ >6ׇQ _\^//(D[v" xn.RCWTcx.$Xt=~xy+a_ 2jٲ+}3Tmٰ7"$NF1 `Ǒ h! ލ \ץUjmq%ˬxe\W_` !򤣜W '>53&'ո(MN2-Z )ޏy]-iBaV$WFQM /dݧ%ݾe戽57}¯:ZVT HT!^ϬJe\n.jcQ?rqKs?sg3|StC0 qtBiʻǛhQF'`qx|F/c$xv'!%mJ,'5k0l^YTu-UEvC)}$9lYl}&[+OJe5k~eC}P=9//E'H̕)L/ ;3P/TgzaU|?Fo!fQ PͩRϛlԛt whAM{f X DyDNHPPa$GBx;ٌRAerG'e?YP q4)XsO,SĢ0 WG.yjPl|iNgY(tMI"ʋnY*#ޕ"BVEJ1Մ'7fw/9J(x* Ej|5u mlBK@XE*6eWm{@jj| hoIUmW| *hT_edzxGJ]d[ّŮ;s&c}-XOo.]w8lٯ& LGfvcC1c)>8 yd鉪C=/xXLQ*aQut Q2W<* >L:vf&feN-؏#O283HSXR5HU`5]5BYd8Y_#A|M~dX_eiZ)!|'RoFkR5:ot'mC4Ś}t~׊`W2 hAd5 AuH8R.]` BwD<|P&b@W ?(8=XRu[7Пæ_Nf(rb_C<+{0]j5d2,VԘ\Zu5% u3k9V,fXmR7T9kR1kZ BY=L3v;CTvnt(Gmk P5~s A7zlH+c߁CC ?(|9}|xR9ӥ7A}kʣ|Ƿ a BqekLsHY3ѰS G[zSfwL3y2pjfO:c 4YgeJ ڨz hC/fEu찒E0`vʹ1/6F.^/\wiwpDX'=rIT[yYu]l*ٜ!既o&!7gEg6O }7dVsid-O2-fj@Ȍb{NJ~{ >k7͂U@ّXrȷmW#< >8/@iiwX!-H+O߫Źw/zч CwOJ_g3mmE۽B_oؔ_ } 79# lc.x@^|vO1+vc6I']Ezh?<̯4&N+{f'2}Wn k;mȂ%írZ>e# C$xOT;/BF+$BڴCQ|6ӊ,Xd3`,4`%7e?O0˻7(wм/  N=,_~TxCh|Tv .4¸;} RgǍ ?L<][{k{|s{n=soO#acYÞ5S^Bz|Qwۭ{[QI@~cwVNY1֖RIy W8+HClFkj^GWnG#aȔM,6IZ0"fRZtB7p?`Xljn N N[ϕFL {yݭodPߤCׇ.;l8{cW:l=9Aj!Z"+@ye.q ɻkx0TP Ġ4bvbvR.ȷD!AA(6>CiE>4 DS(oDcw^.h"ZwKу(2$a/,v9m xY)ߓCɨ*(N)6~ 7fBՅy'̺$Mf?fІ!EZB*xxb!^ry4>\OiC (V(c'8h <6>0Cg #\DLCh"܈٩2ݛ7gcÍRAs)Qn,\t\mŭ_]tl,'"n'hjv +,w3)ǁhX\ 6q+c*Yslm6ڱ13N3fƲ=_Dέ3GH+h+<Hl>Si:*~e4BZŬ̿$ֹHqG&26D0__p}Ӯ}}D}c5Jl=7XFHfe1}tR|?fJm38qF$E!XvKLb'ulextveB4fۻ9Bm 4kKǜ"j$dozsX&BYeup/1:aQaz(iN_Iej}bw3ע+&Csv<5 Frvv9Jj&a3Iw+~}@wB/@wݔ"!;qV2~o8bM<>eJj1z-K2?`v=!VTr(>= Nk|E޹]NW ~E(g>0 śUm7ɰHY@mcJG;ս)Y+E&NA]F nN%jI) =E=~%jyo"DJM-\Z"C vHPxyZ(|uZ_Qڴג ES J-tG^\ncq):gb!69s󲃬yLni`MP#>= ȔJ ;Q"p[(Zg_ݱZi4l zw[oTzRmyޏ[,{td2ЍO)`pJZ3Y8UD~nY;s+S0pv>Ws۪6 ђjJMg1tC S|#3& _5R.gHV2MBm}+2E<(Gc:\?+"j%Ǫ֡2J3ý!5$ T-%sJn޵ޖUŅU'DAս6ZH`۽&Msnh,-y%t_"mֶ 'mCNR4dE9ǨkE ulmPȄYD|#g~v*pC;F$B(vhGKIQH,DBZF+^Dd &qHKU;ցq=4oWI4XG%[b9VS8b>4$rKY=-r,#'ڏ$ӜV½-3r}UN_Q$4O~_LAr{} vtH$F nKJCf7 1aa^P.<7m^JBڍgT|o*c%m^qt]2ff9,g g37`qZ5<;V=AlK,ѐɽ^~s|*'!k1 ˢ.Q/EaH HXL%(].Bu:[a=hxӆF|L<6u<)B]-= 80qvDVZbgۧYu+ٴ~v'ڳ~7lݔj3m :Ž@=%50vkchP(J̛10ey*/'Go+f=SM_ԗeuKI<1.&sxZ˴Si`!0u7-g.3U*᦬t7ENZLͮ2B6./"㨪k3s (Y]܈9EF\) "K'9횳Gi|,@TݩUN(o&ntvb8ԴPm^xg8>lIyC;&&F9S"„ry&2EqJ9#{x$ceJ`idGO\aTSFofcðfNw= YeyG$[G*_7EIH)Ƴ|]_#7/vE6zz_#pSI :vRo[\껖Pv7%wulY΀\\XvN{ *WbZMVd2*TwS'd`lxF lKmWOF[fsO<7PI-ǂwasV,1<Ə@8%d@u/%aaTRۻUzrl(]2jzї2$x2 cy5\35WTzj M@ u ;Cvk/+ݚ' ^½/h -mD.d+l۔iY, Аi IاǦ*;m2m) M;]&&[n}~6 wI|1?0ݻ"f/1xx야& &;x#ɸ(nαw6*,c0 N_МρĈ w"I݈MO-+,>5߅+2GcOré[Wz8j`L<TBPY ^\ /ɤCWSэmKw`e2ue338@FZ ǩEj⻧agl_.AIظݻQ[2WXid(1P (ĉ|3/R F6V&Ro 2kJLU^craԗZށ?`rLXői]RD5Pä4cMf\,d=hݛW{R|7PONM-{NJznjcpф` ^T0& ~RXYkATϻ_c8(,M`Ҋie78{rON_OU$s_(#|#Cyru8l?n#*!lM' ` 5Ѭ5h??F%‰ ,w3* O΃ ɐ4Ur/U`)={F[sNGzPnD_5Ɩy =?[_u'$8FJȪ[6esBCɓPȏuhnt/ж1 \8 K MmIf^[PLI5t3vLRbkӑQ,$ͻXp T&DQ#(gwc:ΦkS>kz&Z MQN%eOz3a 5:XK" \4hЪ &=UYJR(+u 팆=1hMbqjkX[TX􌏨2+sM\?JQWeWL5YbavžLcU{2b *ZXWN G*OdhgvY5/Qp HPZ]{Zv?|<<<<<<<<<ÿw pCR;$}Ϡ !Dx 4`KCcԷrtlbߖݒ)G]9a"F(d%UO×WRf]MP(ʷop^,d`欫{g)g^?ߜOt~{ӏg+3< ~󒾿86|~*~rSw^$9V~ ~qXY&NJ)ldfFp ե`?MӺg2wLOiW)斿aFq('.6a./߸i^l/pƻނ*xJ,\o&w w W7g~X.--@DGwD*p0xHFw\6"i#Xت/5:B/4[5[R#B^G |ǨxPDJO;"@-=[bf$ jfREK>ǽGґI+$I.dr޴~O<|6-օˊP髇*Y>䚡;oIU65[Ҋe. SIM[kM**q8>gwڞ0لu#b|SG,}n#-i5.?uC\2j _Ka1ʆY*K"Wu՜۪1֣Se>nLfٍ|-ǮӚbDt%3xNnDM:(:2i3וx9಼)ޏ78ڷo^:ك$˯[v0ͽ˭NNaf4Je{\/#ڷ&gՒn[yIL8|Ͽg~gk}Zg >ӣ~7튨68Ff>'4Pˣp% k>lw89+|iҋV& [$ A2C|KDjNDpbOt@Y Ї>^!:emD%X,EGHh84;}mq"8BZD|?~:.UZBL#俨O:c OFghh.u /@sZ_AՃjV #o4XFˣ2/_gKT]zZ[4[ WY*t ] 5YUfLstmdMoO@ wEh{Ɓ{ Y L{8Tx|~>Y6BH ؀DR@H+$Q.C!޲NpLa?*& Z)+T,Ҙ\NspD6}ͫ4fo%85 a.M<87Ÿhq|}Lvrbq~3MAS͞;xxq a,$qCNapΑG6r. 0l@&!BeQh9F'"uweBb>ys\(>Y 4P;vјZAQ%%S[2F sx+0 +Eϊ~mko#=Ӹ:nzk,~lfD V Nj yHI OG#ҢRAviqr p"q4R6Z%CтvsGsPZȴ VHԈ[>υK LLIY.ާ [yXp.Tfu@@FP 8GzY@cm*L`(Jo1?&~ tO|?s#wn 2[-A sK,Ap+RI؉KkEߒC訴8N d4c?, !JC؏;W7 d(܁ (Fܭ 5XYyV()׈ {RI%FNeSUdLeh<]gE6}h՛)$F~J DuM˟=d/?Z,thPQ>p܆ˋ, +0)YŴ.ݸl O_\@WBYP'͈+hE;+QYG9 o4&,B4Ja8x7;0uC-$%DhlSzIA41}7 jVEQjĜVz'lY#6JLJtU6%N&=‹ 'S F&d4HnΖty,l2IFjF~'g"nҝƞ`6~F=7ѷ~fTŶӶ$^5i]p҆Rn2JC3i~Mߵ(SF%AM}/!S=XX a!2px;4vOt&6.~ EvɨPF)qs6z<'36jeS+Wf= ݨ qV?T'$> Ljpftc_`BʘF4cȤP{kaX-/m~}왴3f,c}ؓZK87z,dppt)`BDiR|j/0 :f}=P1ӚO붿y9鞰EԴd3pqv&H,aH&" ߜ lxK G;D\~ +-(#(nM7'VƥIpSqR xq'% >6auXh8T%8S֭H8m8$2[3Gc$u^BR5 b+ǂbӜ2.b{#$ RT5E Ԯ'hf`ut,[qAh{7 l^0ARt4LӲЊj iX9~q9?BydLaXpӢjH> cωNᄅ]yСz&p0E|G+lE\4s׶è? #yIXMAs"ZC(8\s6ZLT0@`q&­w)~ߒ14xg)*h˳N9@NXM[=j /OyeNel""x"*apT{9L6 v !mx棊"08qA23)gKuif7[QI pQs" bf.4xOKTRQ'>g a:"2{Oc4vm:;=*GI[6hM(L l渍:DzH4p-MNӤ `DIGc׿"5. <WN C<~in KTS\ʺ[Ѭ;Q7 q-{)G^obe(̛)$@/^ F&MLݐ\h~9-CB,Qهgd&pYA*U [KSݙ 7d)KCӃiCU^bg_<[i3OGCQ-7g7Z: J\+R<yfMXdۇ+=FՍD:}')9  ƨ/DDDW5q(+3SD\e(H]_@> a9-)E4WQ6IK(+S70殰_[034"+^f|D9ONóWp><9 ܙ<2A/&==%ݙ(g5ݲҧǔFOVV'~)O0ؓk:.{n=s۴v(yc=U`^'|iVZȢ+)=+ǒa_v9Wi[ASj2rf8RI!2LRG>Tcɠj0;ZKFNu}T\3h_BCW8SLgǯ*\ww`(ةYVYVgYYY)1'01lɆ1}TsQԉcY8VڮۄnVFwd>vB0VU~ 22x2Խh_[oKyiMGxĶ[u|f/-X- Ċ8Wv^Æ{$jGH ,iw6Fc|5{i>@ϒh`eS]Y{1"Pѥ^*3{,lRhqC1N3aM*%4 9ZrEF6)l=)`SR<׬g ܿ(N-9[u8y}XɤR,鴺gofNYwk9񱗔in|9{_3#?xHxnx/) OevgȠ+-r2xK Ml儬PU8Bњ;۵yi9{"Wv}.VZ|?ҍk[iX=2S\Ȳ3^-U< O$ CYG0t";ܱ&õ3u5N͠*}<F7G xEQrٗ8W[28ӚT#5Ձ zJw&Yyؾ9%hk׉<\"ON꙳Fl&V]kcm3KErZunufnFѠ?}5z:͠o0?' N"o/],T~BhlIlkPO/$@D(ܴ v6D5.x e8Tw%pmU o,;ωSۭ{WyKss\;s\;; ~ @BK7{W:y_LGGA, l֝cȽ_ /iЩ u;zuSmӂ kiC~ VV, RUpj,>ӺXp oh^QE:]G̪ϜT94pːd!Mt @lFIr? Y-r^%Fv`C#Oy*om{~xj7x 1I4W PZaքTeU-xf@ͰQキ~A ƥ775jBwMZNJY_)( zVf$fJ!ktXG2˛HY:Jz3Fi}ax{tX9 >)~ad% s`;I BzD-jo*B Nœ-)%FyWGBEXACMT ON_WΪVוr זx{6NI!_)(X)/N=$cv_p/p />27ڝ:᠈Ly ހ[l{$]\_>T 'MnX9EſtFxvhO]i-\_QY.RF)+]p)r3OAc*y!QBU/3_jbS`3yR?aA& :KN19%LJ'3pAsW+Q7_Rgoh]k[Pb %)oGp&$.TɈm309[˭u $7!іG8l&x6`R%n,&{MCv/Fd{B$vD RãY:RAPEo$[<`xv%$ʀSVu")>vP=9//${S_/>YOJzcPĢ,E z=kԟ5Vk݊(c͵K뭟(7V>cXDkY?7%X r8P:|ax|R#3U!wÄQ-NAI6j&ilƀ-4e,$fj0!s #,o}w`l9Hd/}rv$Y-Rs;tP+NeZ0ή ^c[ 7%L8|GUD\Zh=,Ass%^y hμ2~U'EScyI+u%3.ߜ倝c26<5Qru2yś"6uQ/=-êG4 s6nЍ_xmMd T/Zd:# <;|ԉHNHʄԺE*Q@+f(Xټɠv@5 LQxP<|*1ԕ{CN_ȹ؝PXFhׄ3fÊC h54F1̙8s 2qU7n (uKv3jۃh[AГO$<9/;m:X85gW֟?s@a@gӗ-CZ?l_be%eZ/glMdE'rm㏳ oMKeWV&J[z~}}5\AnT\r\蹂JMuqz_ج{P{=!wWz}}[PkU^=_zx/‰sʮzxOzxO_zxOjzx/Jzx?*.X YG`9 $Ft\=%Cq![hY ֵg}B/gBۀ@Í Hr 5QOQhH~_?ߋ?2ۊj>zԡvTw?o\2bqQ,<ۼo㛙2g`S Cer _K8)Rd!T~+N_셕HĀFC'ѢDh,w\~oIQȭP'zLmw߄\i lJsZaC3+GS{~B;A`-Kg\51xza~;g cH!6{6Bw>t O.XWNtI\'Fh/#eCD\$L:$[Z; hA1xa{[#9܈܈u$"`k+X(scyT/ZٝwNqزڛ@Qp4.t 41ػX0!1%#ApC*T g;M*.a