summaryrefslogtreecommitdiff
path: root/tools/perf/scripts
diff options
context:
space:
mode:
authorJon Medhurst <tixy@linaro.org>2017-04-10 11:13:59 +0100
committerRussell King <rmk+kernel@armlinux.org.uk>2017-04-20 11:19:42 +0100
commitb089c31c519c3906c14801b6ec483e18a5152a50 (patch)
tree2173f0b5e06586977b3ef4fb39eb814655d54742 /tools/perf/scripts
parentea2d9a96b6abe57d72d39a7af24e0120f5df0a8c (diff)
downloadlinux-b089c31c519c3906c14801b6ec483e18a5152a50.tar.gz
linux-b089c31c519c3906c14801b6ec483e18a5152a50.tar.bz2
linux-b089c31c519c3906c14801b6ec483e18a5152a50.zip
ARM: 8667/3: Fix memory attribute inconsistencies when using fixmap
To cope with the variety in ARM architectures and configurations, the pagetable attributes for kernel memory are generated at runtime to match the system the kernel finds itself on. This calculated value is stored in pgprot_kernel. However, when early fixmap support was added for ARM (commit a5f4c561b3b1) the attributes used for mappings were hard coded because pgprot_kernel is not set up early enough. Unfortunately, when fixmap is used after early boot this means the memory being mapped can have different attributes to existing mappings, potentially leading to unpredictable behaviour. A specific problem also exists due to the hard coded values not include the 'shareable' attribute which means on systems where this matters (e.g. those with multiple CPU clusters) the cache contents for a memory location can become inconsistent between CPUs. To resolve these issues we change fixmap to use the same memory attributes (from pgprot_kernel) that the rest of the kernel uses. To enable this we need to refactor the initialisation code so build_mem_type_table() is called early enough. Note, that relies on early param parsing for memory type overrides passed via the kernel command line, so we need to make sure this call is still after parse_early_params(). [ardb: keep early_fixmap_init() before param parsing, for earlycon] Fixes: a5f4c561b3b1 ("ARM: 8415/1: early fixmap support for earlycon") Cc: <stable@vger.kernel.org> # v4.3+ Tested-by: afzal mohammed <afzal.mohd.ma@gmail.com> Signed-off-by: Jon Medhurst <tixy@linaro.org> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Diffstat (limited to 'tools/perf/scripts')
0 files changed, 0 insertions, 0 deletions
'U3ϳ*Uzee3C3Zۭߍ/iƿ鶜,T-</\N1JϳWo#a,v;{{F׺eú{"DzM5ߛaCWI/@r' D%Tc0~B|1b? xaZ$h'} &KRaK)5[m&f/ t!KIP.f@GGAn\c@vXLņރCLtG1qxr!1L DRSCwyp Jfƒ8"VG 0Ld0: 1y9~'d%85Y&ZcEvm&9Ͷ*|g{}z5-pd: h7nYKӀv utYiPB5,BcR\>ږa<48ֱNsg0>w/{{9d K\3ɫ.OI'+q~MH)g ȦgZ絙#)[BE' h?^rW,#; D 8"]!"X5+]-B#czqK "#rdjO%x{Z9ѹ6|.٥Mmge):{|PWb?]KHN8aŋLӾU' 3-d6X\'||)Ѐta]svNtsħwב TWn"wAMFX Λ=&7Efh.1z/E+\8Ak>l03C^.xc77Wށ lf-/GWE˳Г7I~źt\H,OGLh]lck,xyaN&]L!diD%huۑJlnvlۙ5;Jg ˧gg!(bt|}Sd9Ixa~X^xMtK^ҽ,-]2-Id8ǢT#h`p{Ϛ'+LsU8VYBF..xqXQ:3ѝ  GMO$Cf{s!Hcuw+f+~lofG=h%F*pR߯1׳V3G"-Q1b ''Y>^k C Xgꕺ2(+մ}1CI5>'a"81m4ԏsG#{.#/YJ,hgXIDjl3Ak3߈ޓbf\?ţJOzhA(d!XStӑ [?>yJL-LF&ưSҰx!b~xfJۤ:7wհc8(=?%9qO0 qnm@𦄕BaI|C㬲o8Ym;+-)F?UQNRڻ ;jL8> d=E\-RGS~y׊JjLQ|h!&vci7(M?Y%Z?=xU biQ$5qSTM Ü8K^<e|#0E`&5#/,I/;=t҄:hQYPH>-!\*`\Suv7D<ш|J-71]Wt#%9 1V*{}*Ъ\L@t Яlo)j=}hYѪPiZ-__0isχȳ"r HV35nx! {h8Sq .yV1 \yEe6uWX6#^Aza$Q! 3Ak _I`'gf5N<=)GYH|馓?(;q䃘6 7g:Nyg^]ºO{%44esy褝q{[g3dv5]nʮ5-` o[>.3f1z8'%16s=!fuN_yv7 vQnFhidh@{rݘBVF.5Tm,2GU΀X$1)y締͚q&˸U0~[^)Fu;3]FGNoSM[FuTB.k8bqSG'+;3[uYqXØsjZ%3rc? fcx4R;9y't[st9†_ax{H+M2< }!.Ngn6ov޷wnL~~HōoƇҝn+gfDNXJ~7^ _5YBr{gjvvc Xpx5X,^2}Ǧ/_W߁"hH'`鋚a}l( d7MnS/6NO~zK,NJsVEذ;N+yͶlCs,o_M};!D>Uǿ%7(̫ZQ9';Y3ws~pݒ}býnK3i$ \֘69G:t (E EHC/݆:%/ܑϔo)_{QԜ궝J 09oB Ptnqtt"ВJ$#!&&R"L0"s b b"an '?ၢ7,E3D0HED , 42aZ(#hqMCrC?똢?;o6 k ƫÆqf<(&mYZ?VΣ42<)A/ 缽eYGxŤܿ_ޤ*X`IC?w2^_:*u,sB0 L``P c=%̽M7Y߶ )kgQ >~8=>6Өw}|1tV5r9!a6ث>CXvi]![ NoĚd!l?HL6EG$`N?P*'., ?9# Sc;Y;ba9[S.G[R]H^ZR<,IT;zC #>|Y fy{c%3~.v>z%]C#YM-~hf y}xmNl@EO L!)wD7# C"0{'ow2l^DC(b{ ɷeXⶃEq d%0ScZэBAP!:{ЇSE5Z?ZS=e17<@{8?.aboVRq$CD]D㉧kC' [[ 8\AɽM7׶޿PΎꛍ)Fzo>"ٱHЁ#J=:Pٔv^iS| 30F 21H Y|T.+Od Yn_>á,O>jNZu[lGI(Dj.8w%L:Pu$i3h@7gq C/C G&=u/8Ht7$y]Z4m_X{j?7zeoߥҰ3P`y\q`;m5h|vSubɹ>JՔ~_ wf7b)|q_#`Xh5l A6AuyWʴ~+c`Ns<}k p sK$-ӣt`*g (E8C/8@rԙus:",㬤b2,&f h7߽ 'ڛtz %$%0:G/`1r=V^f(<z?nGMZ+g<B0m /6>  q=bIl,M , 4iL^0=K5L>dw9TgH^~&(qo~Zd@F =@ǦL`OR0?GH;0_KSGt^Q(ʃVEF5šLWEhZqOOïop٫71mD02|4K/fN+wⷤt~6ltrf7OISXz&9^h k=I8{p]sRAx~\t}i׀+% yrJn{hG:; }X2瑓M1@t gMFB7(}"C'+rK9{Psl)A_di"_XPֽ?Rw"Im#-ޖlO^y+au`Rzb/td/QhD0·twy >!O6Dx:ȟ_uE)١4̬8s[$]ml6Px}p3!H?[ b%%Hmڛyqun!/^ H4y3:]WAU='S1 ~eŖOx ;fP6^9nMU/7ziB VW- f^{bRKM%1Oj;szz:E^AoښƘ !Ju~4FȷQj<:6GMn;; 3B~ntTMMJb7K~\ les{ƏkWp?';iIQH,xQ5Y?A:XX ,ct򸍸, ]%#Z"NV~O0bPb.A4laڠ6HpF.>~P`b >!x_qoljXjGliތcg@TĜ;/66.$Pjisc٘2mkmɃ,& ?vw9М6zFĚA Ä78L / .Ftp@].ɝkG *PR}_ ik작/f}z-FBA{2aFK݌0kmLÐh\Rpyvľ8zG9sCG1fpB5xCP HVj8[g`ΪQ}"F vnG;!F8[C~FA[;闿u'<Ot 9~Vmc{6ߜ>8/rxz0.u ;wӈz9HG*>h<Cy}f;qO5NF ynxr ŧ%W hdžfqj^c|rqpΥ i`܃LBGmrR+<擲H_|Qx{:=Tz32cZi. @ۯaxѪ yU^\sr\n料.p>u 򝑳fΚ+i+nq1 4߷~tjt*KQh-׀M<,Dv}}ljXɊ#c&tŀkݻ<߇NytrjJV(ڗ&Mڲh#/0×ee`˧7 -&x1#;C[Ծܛ 8 h%m·WnO]Ǐ=u]Y)aé5kϙ!bNpPԪ2!0[:ĻCy7Fijhm:dS쐻.MU@"G/E5'K,u5GVƻR ׽疩`zR݆,~EMD"P ES,TXz5o;8~Ac0Ecu-'?ܶGI19kZjE Yn8EsT~䎒k0*t&{F&TkDňEEbp8 mD(ufaUa=7q\6 S9i/0hÐEOrd\ۺx!(?d#=G{\L0W2onSBx.&#/d׶+^Ւ3wR("\۫#/ ǻMoyNX@8}8M)ƴjf$Et4JT&D|dfC9DM;cS~_ g꫟PSרle,zm<>^*lrKn#_WY'W_@) G]O?t?ʪ4`6<7 ؂R,kuG!ֲo} l,gyg x=ótꄅq⽇CrmC?F0vC |Õ }f鄴vؠ`8~3$ L7#  7s=hA<y;|WFŶ0 .u4y`nū$4a6<~Hu1ÎׅwBtRn˺6W,.NRD]xkEl.~XLgT <ɋ!i-7nWg+/*_?61:Gy x$#H ~dkMmQɘB~[y 3g ELÂLd6\dyIDen^Y}d\,AP`"W^xaH&0sjF?㜩~B083oKݒLݎQ`scwoG +ua9ͭ}Q Ѿ@rxǵA:]y"i>@y3@&,K1Ӑ`|kߠk;9)S  nېKRiQ?IXE-|[MG_D-"hspwGNaRxߞZ M:=W񸶈=:}sG'H;}^^K8AYR+n-h*d!%g~:w88"2 f8DǦKJf ]z1わ?RC9*/[H(LrO$55o%i3lyvR5[ǼJ3&q _udG%3h+E\EQhZ<;(`rChL\!R E]GG.F_&q~Ma)6^J/z,0~ß˔b[I ,;QQH'ai}i뙰1CL~ɔ埜[DrK\̆>O,mK9Pk^?TӖ_ ;4/c:qB8=ᅩj=nJIci1}mD7zTŸgEvn%g],(jgŔ7yTmCT@]մ"G [/*! s~#虻-]d;6=H7azF=ad1ۈZ,R! 31J̹-e2yu2'̀tqnG~IG2o]˨RwATG#CmC)pNzHxްgc,x Cv!dw{>͛\F@8̐mm%X|r`ߍcƄu'@>-16i>CCbՋ9'@%*i,szza#붏)HLKMK0L ja>}X ׾"zl+Ev N|(Є5WOrWS$?JanW6GO4<\ שbUL;.-a|z BTGL>`c^S~I`s_ua zrIN)sZ% ɕ2;׋;,JXu~ DN27oǓ:=;r/S4xۥ.=98^,~Im1\A>0ÛA \&JZe{@r,j0 ^ ;ztc7E{`G!+\$L׃)ZdD/z7 ^ %=p5.Ȕc}w,0ZW1/ED_Ip@=wk((W|]QvOy`78j!!c[S8LpF=~lz,i>4?7';91aבͥ}!jmFeGUk#`6]Q@WYgeю) :3D{{O\A̷8~eQ8儫v`V2OvЎ3?*~Ƒ5сJmxTKx bxydr5.ry>|fzsR%jqcnG?%Ym[,UuMQd: }T\ )ΌMwZ䖸Inǟlgko>cm0jd!,@|" 0vJӨSlt.- sыf?/'ۓ,>6C0 X7 xh6 vE5T1GW3S `jz⭦$g1жGkw=ȣpd1 Y$ d*sñn>o[tVUH^cw "90'ky_b ҩɌAJoRrR| z{j>02-/ 4XώClp_VSڎh] WjBcB1ٍD)۬#KK=TMn5MXmqw*VRQC-xo " P rUSIfAoOg>8[{ٳgDDXd|`DPlQa+4Sj.vFJc|,=VB52}UQ??&;}JP"tEf#gVY3s- :CB׹U'%qŐZݏ9s)Xs1a:ðX!+=O*q.kPlU;`bOn+'&Pc>Pab$p3hd-,nviWV84.Ԅg#y߈_1$v 1yUl͆e^f'˄Ĥ!"ࣼnՉ5 V!DaV>a ɿ:Yc9nn=yBXssuC#+fnf@ 5k)R lNع#ħ4OcZQ9&xፎ2n=d2q> J=";^C܂O̕e]D XmY ixNCJk̎A) r$3y4pן|Ab681:O|hhvkcb\1q)g8ܱN1VZEf]sO vyZ4xIF1Վg<764TfJ} fk<]X$p:~f,5h ae ,׼G 3TMx&96]6 SR"(25 ɹ )ro}X°E wbPﴼˏ9ݏ7qAʗ>z62 7 lnuԚ6?X|z n&_wEm֕VVqbwY6bl ]}lg.f?2'8%D;H>dd @vjN$>fθ,NgX+#xs/ }vKs-]s15p_JX[n&T3[˻t/61B cgAVf _M^Ls=j8Fඹ3%UONȧ*j6e~q%˹mW1pDݒ=wsv. 4&ARq3 f4(0厸6Z0suUuvꑼ$%2۲GxC߯o^6+L[-p[,,a2*%+L$geGj: Lֵ 3#khnۋ>ͷ:^zW?fN?q s {|dtivt_ޤ6_^'׀۽_6_\ ~;wjkme,Hla#-Y3WyZ5!ТPACA\D}sȦW>OzZ'm9!c.Ќj ETq >?OY5UYM5_O9eMw-޻7$AqfA} .8~WDkkktڧ%^3dx KXW$M= 7 K֚dt> ;Q^ӭ5C̤>( G;BcmjbeԵ8pڢ﫽/~WfCS4j; }{O3*J]wY?/f# %Zt4FcF̟( oxf?'2c JvxtuX{bߖC_ֺ^kU _j[K:[4n뭝7.92׿`/z>h7h`qL :baF$0O&܇+蕙|oC/̢n04G#zkAjU-P9sgzۡBP$$eU!S+ %.h2mЕCB GzJ1#ub kim{ZfWR]P$bR+h   }5[桚):rJ QY~u F7DK.(K/LH1QDIa8 s TCɣFZ5*ձ{9~-'JtBrMaGGE#XnR00byp;0tN~"7!ܦeAI/w.q2Mu֛~+GwSԪ-8ik6o^fKjGLN<ͅk#Kѕ~)Nচ}dnGO,OŔ<[wZFY*n QOՑ^Ţcb’P@2 ?Ylet~!<(`*X;ǿ?Wf|*mUZ/sIqsn;Rڱ|{)츎$bQVؠLJCqH.!t`AFPi9v~L 4OԺ0(u%EƱO/qzVC=K*̔AUpdfx泧n'>㝖UC@"-]WG&9VE}e/_"W|fI>g])$LHI yl5(1&l9 2&"J㢝_k?q`@uq/lfHC/S_K,Po3ylUZh`dqESng32rajrtQPB=&QRC'"L31# K0*ȡ$mPy(0)Vn1y1Jpuw2> Ǫ̈ hsEO|lH`9!3Ƴ#{d4b2˲ ͣxw en퇭I7f27fv3z3pK.bd^bRouhc"e6p};\MDbs^R'"1_gZN2 Z)}6tAXc)L2r/} \+=QF!"Y 61;7?@u ?sFA ó)pfEj/?^'$9!L ;$< @8}7Pb <}4d5+>hbLGPIXX `"˞c{N `hX~0CS()Vts#u%L^IG|~L4Fxnvq^(e׬$akV6HsnJ S{6?7̛*7n18NӾ৞ƣEaǀf{6FJrn',Cq|F{WǔۍN`98ax =Nfg~ HfF~}SL{kPQ>rlt/?QZ^#17tm#7d9M]"DFW71Nzyx@VV7m[8g;`m6/[-1A #/tu1alD@; 3iIa;N[8yO`ta@7{ߍgp2Nt}ϵ&})Ԉ BNSPxӄ7^F ,d@+!P`H.=u %W&2)b1qjrk,` ;G|~nB\}i\ J0ю}[&͓% fop-ʛ-"W/^0raGbx9#Q>Μr8qHޙuUK5?%/cM%"C#y v: qIتc@h8%<xM(_NlQ``X xƆvu@Qno;>$NL;r8M&c)Ӏ 9m ׿$ zV[DL_L| #E]ퟋ> .fdž )(F/z LVjcjC2OkYޢ+C{I9NcHExʖ.m|Gm|%BuaN⠖[\$TBQA&1222u]!ܣc[ǂ ZB+ E<89:;~C<^a{۞C'op;漛꬜QB98be nD3"3lN7h<:x?K_e^PQnA!˘?MW{UCtID!lV3#U‹ qNCmh \,X(}۵$G#g=Mifvfiq[9ϟ6">T? mCM-Հ$}|YP\/?a IPe(C3i4)I sV:8eK Hu@BQil]t@JM:1LBH8_O9'DOռ+j|Zwxs|&BԺaj mώӅX q5ӦRB (oFGKeUO ,2Rm%6%LȼaO O}oS8ssbm44Afo٭ˮË`Gc cfiW5uܱn)<>j[=Vv:e{k d(viV״EE_@fnI{yr$,4goFiԷqX{^rqrYb{Mb1Ve5'H=!0(t(*Rru_lCDAP%Py}-`)vWwfN2N~FV (5Sl¯%bʓ\a@}nu@jaϮ4퓌unZcpJҢ#k^@4@3kyyV Sa6X&r 5+;|}dj G G@=g^lIOR4a092g5=4$x~9.6/ͪcR\Ot߽I;jePxn ,QLpa0ȶ@9SbyMsZ!]ls>}s~A ;V2aկ4 N2)ג*ʂKhR4d0aI C7rI?sW s77LJ!$iyd,1wNF2Z,}4fI1vY9je>$/'q a *,qqF#҉Ң]F'Y܉8h=>_sg!)t|Ɛ)#q6~cg_mph<[-ߝlܿ:Bg=kns21-bi,˖Ϧ.4tHOGۯ~nI)c]mkX?%]nMy>=>k#3}$ǛU:m3tzqդĦy** Q7a[dgyͪ-8 u)^Sl$pQ IsOc_(3ߓ.#bBג2}r4Ha9Vc }Zm_t( M!YO} uQq)OG:1]Tݵ4ࣸ Z]+Y9TAWq yX, i]*#pY*7.xe6! (#+MZyBa>ZJ4Ki2A&fۣ'!֩쀘1~y#4 6+~ W%r±~̵30Y"`<7hUNv_WZy'[##3C1k9ΰnN?2kްw5- 0 0Zc)m !%@ 3|UE~Y&>N( `'00[( hoDv;A#`"dNW*˪$'pL5% $Bgv FɸDݑ [YGVI"P\A(J î:vT37ăosc|!8JR 1Y,&s\bMzH1WlfrZpMla (<*M A=y.Jc<:Kח VMуra`=#iBvl KVt+ ` Lg|R%8.{x $"@un.pdOMS\>NTqQ?gUĴHsIQRA <4f&p>4B%M:b-E8#M.q3z-E|Ymx"?Q=V9T^SG_?rr]YPv*bӌ&fJm ?qO6Hdʧryݷ?=Sgjpq(zt : tfGmehTNԭƱvbVun\n鱘i$>ZdAo{-٭2Muj,e$ م Tf|z'%z!{e>?Oɭ3E;\h?4"`?SIw(Qh<]QIxҬb_àP ٧(c΃syR\Z"AHH6$G^6taů$ d&{tR;JS|=Բg@(D1O4$n!51#=}%e(+杴,"V.MAu'z^Fpp`%Ve78z JQY}~[fBDB%5ܩ ˶.o$\T[8B1&ż H矖c!~Q 8qYڑwtze:N:PXufME9(I?<ޟ;K,kUq.<uH’ԅZ0G˭%j""]^4szbr\WZʈk#HeBpj'61Xό[IF(I5W q{i$U `g@,"5Tu(ʦu42,P ޤ)6$N8"LB]jء* p(Aj:4ҨQ'u_j*"T]Źa׸嘧M$Ao3CDʱcMmb ER|+DH~ \cU7F !z -V٫g#%POec 춼"[h31: @uP7Wl8-IC_YW> xE4/o,>QƊꯇ qcs/@\tL1Pj7~4{yhc!okD-ttG.^,}|1GF'qIxy7u:naTLDxgqBoCS}ha u3 oNQZe, 0ukv eAFXDT|bw PRFR* jWwF֙~T :vkX}Kr_埗,~) "U.>϶wN ~F1ߟS ,PQI )*J*g!y|PwqA1;<8 :`y W8'x”v#WP_CB6zd0S#$wEϡ9Si˶ƖMJ"TD-: ~Qkʔ{YZu, dR_"`rYL8,cg:DV0Q#}dƭ?wo2<({Rތ58_4ϏsWƬd4S^dRx*9 _ skFF<@Z]`2Q_c Z 66h^Z^gB3׹cn8 sSycQh+ ^D1V64Ѻ"bZ.uMRDwRPW5eA>f%r*uS[Hm /EVO';L<41 sB_ ('~m,~h%}HWW/0Y'z *\#ظWJXt:(/32 ho;7Hx$ Sq?\_\ps;=9M;L@BbO`S!{h 4549ਗ0:Q0ĔWꨴwJ#Kn['PejWRΊH>*IMvM7'!Ov; 4[Ep/%׈}z{#_I&lraE _Zy8I«wR@̳ h% gd&-ܸ|ΗvJ8ppfwǝ 0bdQpKmLC@tV/# T1C:fD^Ukh),NTٓ['E4JqaS}-UiX ѴZzW&f|ָ;cq> A6CE坬Q*cSD<ayL !8`#$7Mĕ_cx-ȃAO7 A=1zQ f`,0 "jN+eBZ׉kʟP_/)@R2LJ_3揉BLD2Rn^БDcOES3!Ћ3.R`= K' t5ŧ'oL6adcPἮ0, œ{@҆joDBdUnb(L]/1?NO~Hzޥ{GT_q}B^zo"A6$2~W}^Xs9z双Dw̺tu7 iJ"۟c;эaKeg& q_DbX…?gYb2)BC&.7|̰yޤ.ԑtj~R_d?2EĿ;$$sTvjKh?0blQ_E5) yjWQG-y62` eͰffR:ÜьɆ ȭgNFc\.IIj,ZfF4$4^sq}ı,fzn.fQԐ >^j#xyVmz-[K}o;H6UZY5NGjbJ׺ G_yW^dPٹ4s~~mA+t5Bmzh. lUKB?Uk)2?.}tuix塲}ȡ29P0r<ʉ0Ok6KI(IS2 ٗq6&c4d -XG펱X~ur 4O# ռI2Wˆ*bĢG3Q%뜔[ك"fěq ؜]ٙ&eA$;T%]*9r%oP*yM9yGbԾ/YY~]b>Ogpc} j܎gü?@:vb==#k#ґ?#34Z ~MB)fsW b ~Ř\T/Ⲿ*CEU&a!#dB#dagcForK=mg+xv/΢9YGVRN:Ƈ*%\fj {w>xql鿳PZ m'YsMD6],up0vT38N/"CH(xL ?fI|B<;?J).#m)Rˏ.h*~F_ø%OݘO$ȳ!#B6A96V]y|>~x!Aws'G#t-d_oTg],{ E6tP,>®8€ 5Fgk 8fĸĔ)kxv  1"QyL ,0b ~Jv@4uK lWH\zڡUWwELghB-3Kig{b@͗0`a< 5Ik_ʢk_f!=wxŴ"0@^ N<+"`[by,C҂AQ.Jc-OEdYnPx;Q E,saTߥb`BBˠ`xfXGB4.)#!.;?c'G0Uv3X,$$XښLK2=%ft4HB4OVx\^v:uv}pH<70LJ{4\!b?'veTqLp j[݈ 0%*Y g;&u)\Kڃ1E|s0ӆ硇u;dd2R-L!z|p_~'0nxlpx)3PAW)W|8;D)f1$PlbJR"Z]p3(Rd7>, + "LyNQ[q;`qJҾk%xWWO8T#>6LX Y_ci*+2S2)1`U8miɏPB DG=:<"AᭌƋJDH@zώ+k5]bl&f2}ۅ:e9ASK1qfB7qNk:'PbkÚz\Ag`bllf)-ls3U*^*i@KZŎdߧa#w)-;FCȢGj/3_Y^qtցd>Ac=vYWLn8 V -qH-٭w c{MmLP^xf>­1n'g@iƅh- lze; _# CڛTvbDq|d( o.>'#E ~q{2"aoE8Si9-wElZclQxϐ@FkF! 9ڃ /?s+;8p59RuإfƓYi6 `)' $bFb #F0gX1[IEpμDOCOdC@hjzEtkS|U?xg4ע3!4)02 c2/\A3A:~_ONk9s@P~>]Pd t( .@! RRva[Z)^rݮPΕ^TgY7Y?]qF/*Sb&" B݉(|F ˉb@ɌlyQpNC;z. aԤtW`Ɠ'Dk߾(V\d/);*u[裔!;C"r k9IYE$ra°6'qDj>X3˴9(Awd2_~5&v16fSlU`, -h f , mg\>A*Vb +5>>!+בH"`*l-<4Tc{m+ǽʺoM?WaiL@C00[Ucw!/)}D@'3:46V{wuINVs3Ģ@1W6^&NXGD%24F;w-ؐ- ]trG3zaOC ""!4E B+s5 bW`=ݖP'i{sLQIZR4AŃ( a{cnW|CYcf&&5߯s^6]r;y3t{[eвg=/U?j 6wLZRVU񆧥 .Qey[G^!:9 JaE-t@Qwb(Ʊ#c 85% x tgm<<}qh?gçW(n:yz̙O DKRnY1{<14S1n2fOopbb*w.);* bع筻ԧ|q}ͷq 5_&On8Rwzhx {,ُw:1֦̂fL|b#دf1gn/{jG 0[7!U?1?Fټi=XxB)50>].Rlxxf+|.mc"ۣnLU^ZgugNW],,Fvj(n9aSTzzDH),v(fp08o]T'& fz1\w;ZQ u$,Km\P a8u9w f)[">#߂o_Cqd׾ns񯨗BC}n6]-Pʐ0Hg@-t th>[mE0O95(p??w>7HNV?۪*,uːݓ,E8\l2eu0.LP9#|h_>%_ 9UD {ْ2R ƲtPhdដ98A?PBu2LDh =OU>r9h>_lxt+ݰfyΜh##q]Ko\q7#cRX.zsϣqu\;ÌUK%%O1*էX*c7t8tH,oiL2x(;P!V\8% r\*&juƑEbACN54|A̔ifB cD_h{Sp;|jhܼs @cx!,4 ESQ"hC?ޝw2+֍vZ0+dчEBqR/o"Uxs*G6 *at[nҺA|9B Mά|)W*EN晧;6rΨ=Snb D&;,vÍ# A֝ /#,-WX\{xXWm58.1?d.v{<^W"cLKuN4Ǝc ,ӧ Gp&W4$扭EW Wy+لolo+'>7IPUXx>9$ϗ9IY]|^(sZtʹ;e!@>=D=ysGu s@.ۆ/C;&IA/)^6$;>~[&_#6EިR͜k }{G,m5D:2-9j %1 |9A@g{{#)!ٕ 0}hDԃw87q>z4Uv/,328q[gW*gᓔҍuVjzz(x4o<{!M|9y#dľvwϏ7Qⳍ5[;\g2Ѥe:RMgu|r0>.yucQ/>O;{Tj&ŎBc=칿!5qgO)xg:~.\p(i}!`wv>8(=#&4iP`@d/+;Mp"kYBLj-͝ "텭514 Y[bgq[8JcG k<u La5wָ=Yg}h ~F<4FgYjlu&dޜ%1=1ku,Djnl9ZbIq ɫuo" < SBiu(&}ۥPaieJ,U uu8d+Sj`i:ZK+snkC^y'db'rz2,aW.y\:8&YtS4uزB02nm'.A즍>ޣDGymu;ک 8.Lq+>un~^^=q(sAr Ͷ UFgߕœ? &vs\k?=i b Bx:xg5g8x}iK`NbIWl=2x;s1y_ $kPȌN2ێ32WKLmfT#\)i -g히u}nt=NasQ26}͘CҼy: GT{|>Jtz|c<21 3L6s[ y} Xm)D)>/>>_K;B1uyW:ٸRF*(<҈1:VHI| g iwvJٜ~hSdxU~#p7t4W)GB1Cmœ?)#<,4Uo֚GZ\vͤҋU1W4P!h6Sly[+?X1b\vq2Ըt_ة;Vdji>8͚4404_{&{&8W"T~SkbfVCxX'&P0=ӈDfz(V TX.ßLD>eP<6$8k m.?LW^_9ro;P=M VGē#܈tFs6f Oru9z)g}pxﲝy+I+D46o=Mb$Mƥs*C"+x&)@gFqHU 3#h9 ttE(HVt8'yY]"LX8ah5}I mܧ9 D|Ô+÷KypTN>up{KfܸEX ω2kq(¦{tPXwZHQDb<y`tQ55@7K2V xC<'枲b4XʒyhEpD֎92LqMuQNFzLb{JfZi^QJON3yd9 !g\2L}+},Cl^R!V g8vwG|c(jfldp4_iPPrz tvǐ,l'H! "SbmiC ,*1O :]nm$:9D"PI &?Cb^S;t"cx]/ܿ'}Htǂ\&BTҊ Yx @Rl5#\ ĺpϤ|^=L-on kF3E]~iȕZwI1;p~D8ZFQjgc'ĤQ@'Lj\#{pDn IL(a$J^xwՐ6GXb]^6{#HT_Q˅Zcۘ&S%so?j#|Q9U?Hh1_*έKcdwRE&%Wvکj.]7;@ qJQD|IY~7ם#qrpB=-Cקmw&J~ifZCWe9=o#ء>gO_JwVH/bY?lLnË6?) [2j`q]\8[&1CvV`hJHK܀[p H46ݧ?\Am|b|Qlz4:Yl3ѵ4V^]5oML[x֧U}P|YN9&8 m-ጅ{5Gl1FJJG$AФ* e;אkR@$/H7>T?_}epb>中>8Vb3ovڒU+SKkx4bdi8HשLRW(Aut0֝1{oǬ̖01) D\0,s]\I*$@GCiS"0q?OF--~)x用} Żje#ҞofYE}p׾W~ C-ȺsYOקPS0}d5*nzO]Bs3dLW/ #"7X~Ǟ lK-Ot4f~]pKAg l1?>8;}F_X`o{:[:rJ'_rě,.4JM cizUx9Kr&FyLHF5:
NKzn gMh}}"@ F665Յ={mHqgkuĪ0?b=ŴDȪ{ !{X [~kkdQh# ~m8E 9qM sntUڿZ63$j$Ωґ\eqyaG8 ūМw\FB4D {3bݢ:5)>@%7Gٿn|D#TJѭ0m!1 cP~9< eۦyR$ ϣNW$TOBw")Z@hP`11;#'tBR_SR4*Q@:?LԹRO$Ԕ(]Qj&dPc|QKW!.|?uv}gk_vjBVO yY~caY{yᏛ*qyvc >Qp~zpr|Yѓ5\:ȴ)gơG?ҐH^+y ֺsprX<oqR3̈́8$fـU)7g c%"bF?ɢkM R 1Č1B}?LL#E)c&N."2 _? Id*یJ ᮟ`lȔ 90aݧ۫.o~Zꕼ3pt[|{ ɱ4g~m)maC9 {3*;]tWu :RKYpBv`&P<_8=} `7kDž/&{wH`i]jQI~({ƻ}\>wm1u{5'{s{hcAz#z3XxQM~,2FU+KXuX܋/ ydb_G?kQ7y?Ѕx[h:s Y MI?÷+w3e}3'}3|7sx7?<{ \!PD?O7@,K~Pʀsk0d"+fBtu=QJGC0g7^zfn`!,0_ѿyim޾)cee,=5r#wlB>%(؎y%[CN+VT+`$%-6v'V~;FS.Y?۹7C0Peou:GƭC^rg7WbiK1i&Ѓ(Nrsv[=ٶeN')eMG;cm=T7i|_;d犠#-m%O0>OzӪ[Z=1-Gs^0k>9ѹ'i3Žy4ߓn+مh ժc*sܤ'I΄)VB?w7[#镾LRY4<8u $EaL5 ;۱iծbPK }.sk0"&((ڲB6Gyy<0eeTvNQޜo# u;eQds2sVLcG^v?LvPEׯe͎8rݮA{^x% G'RoÍS7;b{Џ&؆'3ᯇi >݇hhG1Jߎ/qp 7]IJnfaM`gs_{J5(":~]>I ^uֿ5i( :q,$etӞVia!NOƭ(˧c`3-B(dg q22ӬYaHWISh<¬=wFVȬ kekjI@5I̊=V0DƄ# XI&>tV#T˗JvOY&#Ê$,_qUC&9'\#qz( #g/!ShJCwp㰿?C IE(񞰛idԯ`)p"qϡ4:?~>w+)A0ZԲmYE?@\ ݇k:N0?ݐ0h(a3.;|??C-~=-u|)W܃~  ޚnOf ј'vg6d>Y*pXg @㳄vY7&;  g&\.-ɦ8//qvnyd^w>,[X| \/D?yL#ϳaD}^%x@&tGq^ߣiO}` y~[< @B~@C?&N}=_]t-x@,nk=>#ã^din)^E=1DCχg_ .H5Q$P H N"!Ai_j @8AI$\p `dCڗZBLhn3m3ls;'pi#!FВ4wV/pIoћ;# 6sUFxnC=sw7E=#,$bHvD]@Hl0qb=!MQFTR %iQI}oP«4fW , Eʊ2<[ n-0qezcP#?tjoK>q񾵸N~NT%'~?GA?}r9}s8syOA۔t8M*QB/L3}ߎ,(3tWX;ǞgV\tӥFݚU9 [w=ݍ?$Ioͼ-ɼ*9yvigfӯu+9"n5|Qg͠ʟV*+_Jn1jZFb\cjSEՍe}a#tWL抍eA ~K|)wy?eߛī^2>Kyh}:>%Cd3]MzNH"@ϡN &t2Q^rPM*jE9VeߗnI #<~L~u3{}`MaLDسt`ЖAnٽ7,_nbG/ɯKOXAZR^yJBCj64 /c, 6_7 vбx(J+0}Ϥؑ}ƂNyhj IZaa){2m 4D%OGFMMIc`emBxpUHΘ30 DA T^b× 2uu܌ot~n$Ϝڋ]T08dYv92uLZ(wA=3Q󬏶H r+^w9z z^2;D^? ;LK|;(3D735MAP|Jeb(1 )rr%Si`Caz{qi?%40!*ϠLª ~ʁw&8"c$S@稈߬qoG#Pq농脎@웄&޶ ebk UJq&\pp9-ljޡsd)%"Y (AUüIV#\8`V1!9J2j9mCJ@{sfIx9{oE]k( 0Paᦼ3ͭ86n3W6 CJ=}v~\$HS2CfR); B,vu l^|lm-"g/AM#*|=>/ a;k'c_ޮu^ħ ۣݯ@/w⿬Gqf./}dG0aﴜ>wY,Ï@B"Mm#F\5|J0K{<7;}2ӧZ!77b-,^ , ᵴܛ_mcmŤfcLNTrg~1'nT) lMuܶŶ*QFipK6Z[GZԃ( -F2Eϩj~R{<}ocѫd6<&"B tRdf.PֽۛkSG~~+MԚ.1%'d9I7K#b4tU0ƖTFӆCnxJ׏Lf=uν8~+~(޹y{r}O0'擗ޥPDlo09SF]`6nCȫLUmcm55g:AR$swMH pm<x;ͣJ"0_l)/1,M'&uJ?KUpH8 e,AX '4 t<$X| 3t h[Ptz*<w\V--^ސq!m'l }^3PS PGj<:ĿؾRA3~(NrQ!!qΐh^|(W>}^ޫىcSn>=,vȖc~ww|?Ǽ6̃X41 fT1 B:d=4R!fqq2i#ad ouC,^{"SesWAMywº@19EnAWK_l8ul偺g_/^8ڃm-G]u0Y@ypINlzQ_1qfToLp؍$%kIXo0F}@ D1 X24#US-MJ.6Q 3y—4YKpK0f7\jyDE~Z/ؗJeK)[z^T%\5QPR:8+h)oOYǪԉk5xFU-]%FD5Ir\G|EN%Gll2e]cJ!i Nuчl&z "i*_~{^|%'҇P:y/.RaVm&.9V2l&zZ-F9G[!"O ^Hm=c (i6 z6QO֩^CӊܧPO +.կzèGuN!b:vm+٢(Fyݍpˀz6tp [⠔Ԛz Pʹnǯ͜iH .t3Vhu~ocďۀmL;N2y2UQ2UQ2URTQCTQCTQHP5E5E5ESE QE SE QETQKTSm1E{8p ؖ[K"^a,gZ, `5\+D[<:; S7$,C*dkBݑgxxu2tsV(b5tgIe4f7vxVYE!BHym4It<4K;aN\bq{8Ԁ@Y")&ݐ_O%*YwVipW嗍_UVl>w r\s2}IXa`yp4~/{ vֻU.N^%-!$"z)nW-bΧ:%kj;.@9ZH_o%wԮ {liht{|Μu򆐆G< RT k{)u"'6k,soK.=V٬zIJUTrELh"!&0 SHB(P JhJ!`M4U($D0 '~duD)6B"UY %*{`fbEvA%U?c~֩E{ *AnoG9xt48}Z2yKL!cۦ'#eE!1p}JWcNqff86ߐAcjWŕs\# WoWݜu"ݕp;_UAաLC:&:N߇ڂwehZ)'6oBw?``QBh${GYc0OpR]@1iM'h Ib,ȅ~T22A W *k0nXͤS6$ѭ=_dzΙ]3 l脂?OI"l[UJwۈ};q : ""K'g #- SօF ~WH@9)N|V֖6ʪ^ɔY]2v{ioۗB'I#~lϓ+G]>H|l߻ . 3r`q9|BN31 lj:RH3x#>jsj|g;QtӼ;ƿC@+%a(p~ r$3ϮSRXIgK- KY* 7ݕur}B|y(T g8N](dps&"w;۱^MdHD ¬mFOFa8ʎ"cÅzV.NI/­3!?0WmK6ok0hbbDBi1)>\r/akrg?grI\v al5Oȵ _9dm.}N4kU`#FF 1t@ c+~kV+E$ ׾O@@ z+sB{vTdN q-bC5TdLcÅ#u||$JWT֨4 yBP -5 iR{2Y-h/LQ=DdTM3o˼@[E&'Uk^-?4Et[1 hTd$Q)$KUO 0 e"n>کEn(Ylcȼ:AsV0Iဠpg ;vGXB|6Z4DAqۧHS0uْJ#w@2iWJt;s\VWYs$Lmt="< c4z[CmZʥqER -??lpM9)p?VHv䡳oCHOkU})qm`4BB$ZiY!Vo ϚoߴWb $1&@g6KEj՞-\p=:S@§A.?n_sPX'q)df{w}=׺z*3x3ƃrz8=_J*u/R3e=< 5UFxS?ToX7XuRrR\)uV:,UbUM`_=?bJjF儘Ypgx7[yJf ;Q,1s0:Gj#IoMqW;b9uW`P'[('<@Gtoqٻ1z"\?䕓r4iѾsInԁ[j Z7o'E`+1fң؁8ʟ ,R*lmzǰ+8ŦAuyw@wI鮗L\H0;3-]Si8>%,S X6|ƏOWLS 41%bR5 4c20 KA5g?ֱL]պEOv" SH [lةl.odgYh'HQK؏SZA@lIR랻6 ~E JH$ Ʌ9ף,&8uR?tK3}RVH^D3" EO3}Fߝ,$S4T,rH&Lf3yYz*UӸ(wio>;3 .k_1ogTq!k*zK:*Yr~k_Mq"jM\0٪WwK-Jtʝ؍kbׯ$0c=~YZڬuKN4 BeQ5PԳǫ~>+-,A;h*bUq Dv RJއ 1.5O8o$#^ؑݽ"#uumUK&0S\},I/OͿ+HPJ,6EOk|ܓ !8[t g0yIkv gD2!E 6͌21iTnjDh|-KjY9E`I{iXYZ3}?ihP̌@:bp*\WOK9X]xx ,]F˩E$l@I"`h4pc\p[Vu\4dMR,PCtE$=rI̅jc"65 EA1ve۔.m9@׽;~/g(Embq Hxt94a= 썲ӉY Ʉ. 4/2DN,\XDAu.Vcs W'n%p.\2୍M$<0!rx,~,Q7r8i!J*0-Y$@C6Cdžq=[jzGw[e/QaĝڮA1bT>L1.ݤMr&j@pA X“sX}U/k(%uk 0w!#6YEm!UOc]".z:ǧ=%ϬzLLR|3q2?@DP