jh1BPt1zAAP1Bt pPS[ÐUWVS |$8l$4OW At1ۋtÅC$L$<1҃0©u9tKt KAC$K҉C$tJWU3Y_u SC<)ЉC|$<uS$Ѓ C$-t*`S$"{${$vs)C<C [^_]Ít&UWVS@T$XL$`D$\|$dt1cD$tAD$t&\$T1@D$D$tЉT$@t&T$T1D$D$ t L$ AL$D$@\$D$9\$D$9D$T$9T$ wL$T$tL$T1҅t \$ …+B$Zt$l1vً`tdd$dBd`T$B>T$xu.C,HC,ǃxƃƃ T$TߋPHHHtC$9B$sv`t9B$rt-d`dd`d&t&ǃ`AdA`A $|$ \$G|$ 9\$ t$D$Ft$9D$d\$T$C\$9T$>D$@[^_]ÐWVSQt$D$~|$$Åt9su SWXZu4$[[^_ÉS1ҋ\$ L$fCftdu5v0hh [A X&Cv[U1WVS |$8l$4jAPPVu 11Pt$VVU"à tNtEjVUSL$ QT$ RD$,Pf@6%Ph$Ƈ [^_]ÍUWVS$t$8T$u.u,N1u,Džxƅƅ t$$닆PHHHtC$9B$s`t9B$rt(d`dd(`d!Dž`AdA(`A[^_]Ít&VSt$L$ \$Fx%(2SC C;S@u)CD@CD2u'SxFxxCFxxFxxC$t'CPVSRh>S(C$C@CBC([42C0C80/T$ [^[^Í'U1WVSX\$pT$tCXiCX@gx]ft"D$lVhY[7B kPs|KLxB)׋SHtl$l1҅t‹B$$ $ $~u B$t&B$t&SHKPul$l1 l$l1 Љ…tʀjD$pt 1AAPCLPkHURD$LPL$PT$\|$LBuҍBT$l11H hl$QT$1ҊQT$ 1ҊQT$1ҊQT$QX |F1ۃÉ݃v1FF u D$FuD$ D$D$1F9|9|?F8uD$D$F8u|$|$F8u1T$T$$$tT$A8BwD$vI t&D$jD$Pj|$xWD$|1u 1D@PD$PD$Pt$xVjL$(QD$ PVj$R(D$t|$ uD$ D$D$D$PjjL$Q\$DST$|RjjD$,Pl$(U|$0WVS$S4 PhX[^_]Í&L$ÍvT$HhAHhxhuD$t& V1S1R\$$$Bht HBhBhu4$t-RXJTrXu[[^Í'RT$BP$$B$B$BtHBuB$u RQ1XZ4$YÉ'UWVS@|$Tl$XD$Gp|tP_LSOHQWPRPhD$D$OL_PWHtD$tD$D$uoLU_HSOPQRhD$X &`t9uGLPOHQWPRPh`tddT$dB d`LJxPHHHtG$9B$s`t9B$rt-d`dd8`dLJ`AdA8`AD$@$0uAjjOLQGPAPWHRWVtGLPoHU_PSQh#^t&[ t9{uu<u7 &[ t%jhjGPAPWHRSVuԅu GLPoHUPWShDD$ C VVZC@Yu*GLPoHUPWSht&$uajjj@%POLQGPAPWHRV ~kGLPoHUPWShD$ ,t&jjj@%POLQGPAPWHRV 1҅J$$uF@< fV<%D$u FfV»%D$1҈‹F9u $gt]uFP= fV=1҈D$:Pu6u FH>vfV>1ɈD$1:J$H!‰$uF@? fV?%D$%D$ u FfV%D$%D$u FfV»%D$1Ɉ|$ @%9tWuF@=fV=%D$%WHtp9t }9uvFK ̓ ku F@: fV:D$L$ uFH fVȃD$oLU_HSOPQRhY$eHK ̓ kjjj@%PWLRGPAPGHPV @~.HuFt&fVȁD$u FfV¸%D$u F fVȁ¸D$jj>jhoLUGPAPOHQV SVhSVD$$uFT$vfVD$GLPoHUPWShD$5t&OLQWHRGPPUhD$ D$ 1tW>u FfV‘%D$ u*u F fVȁ‡D$L$|$7D$$D$ \$ 耉D$,D$(D$0`.Sh]ZhS]ZuhD$  [D$D$|$HH@HBHBL7t8D$D$t&؋`ǀtPLYut$1JTBXuD$@[^_]Ðt&ShT$ RYXt ShXZ[Í&Sj\$ SZYt ShYX[Ív'VSRRT$BX|D$D$jBPAPS pH@HBHBLt$tQSh t0$$؋`ǀtPLYu4$^ Z[^UWVS|$,l$4G@@|$hjD$8%%Pà t)EPEUPRSSXD$@ ʸ Ӄ=u*Gu<$ <$ t$~>ȉ1D$?ËD$uE1][^_]Ít&'SQQD$D$D$t1P|RXt!$$jSZY4$SXt$1Y[[Ít&'UWVS(D$<1$$$ $ $1;,$D$1;|$wt&1tWL$<1ۋtÅt?VWUhS1Ʌt`t A=~Qh[XF?~G;|$~E;,$w([^_]Ít&'hjXZ=&t1hjZYÐ&hjYXÐUWVSl$\$t$}U M9~)Ӎ9}E <9} )ƉU )Å~'ً}tftU E؉U E[^_]Í'WVS$$P$P\$SVSWL[^_V1SQ1ɋD$;@u 1DA|1Z[^Í&'U1WVS t$|$~t1FPX1ɊNMbt")Ѝ)SRhWShW tD1FPFuPMbщ)ȍ)RQhW~tCthWZY hW]X1ɊNPhW{ t hWa[^|$D$[^_]Jv'UWVS\$ |$t$L$$T$BuɋQA荨PhVhVE PVD$H fS>D$(uCHP fSȃPD$uC@T fST%D$2u C fSD$ t{1uCƀfSD$1 u Cƀ fSD$1uCƀfSD$u C@WfSW%D$tXS貨Yu C@WvfSW%D$uCHW&fSȃWD$1u C@8fS8D$ u C@`fS`D$1u C@b fSbD$1 u C@c fScD$u CfS‘%D$ u*u C fSȁ‡D$[É'W1VSt$ <1Ɋ%LjЃ<uBFu'H%PWRhv@t SV_XSVZY1҉Ê<^[^_Ðt&WVS|$_SWYNXy[^_Í'UWVSPD$hcD$(UE@G @1ɉET$B ߊK $uEtL$1CQ $CE@CL$EQ ]A1҃S,UJtzu1BP1BPhv\$1ҋ B@t13хuC\D$fPȁFT$u B\$fS‡D$vT$ u BL$fQ‡%D$t̋\$t&u CD$fPD$T$*u BHL\$fSLD$T$uf:u BL$fQ‘%D$ u6\$3uCt&D$fPȁ‡D$Z[^_]ÍvVS\$ u CfS’%D$1%t&Atvu C@bt&fSb%D$%ƋuC@c fSc%D$% ‹ DRQRhSjjhjjjS0\$ [^UWVSDD$$|$Xl$\PW4[^u Gƀ fW’D$%qqwj11w,wH R!7BQQwA$t&a =( =w2=f =w= =1==w==u1u G@QfWQD$u GfW»%D$1ۈËG4t$u'D$$PW5SUhWhD$(@t9T$BBxxBxxL$AxxQWXZ1ҊUL$AxxAx щx1Et<t"t#Ph^]otVW@%PhD$$T$0|$8BuD$ҋ\$B؉D$$F(D$ @t VWZYtVWh _L$))Љ ЋT$ Aȍ$ȉB EEL$w@<wEEET$ BEEEF V@9ujT$RD$PD$0PWL$D$,f0tMF%@FET$ E BEF,EnF0nVW[@^uG@Q@ t&fWQ t&u G vfW%D$2uGfWD$l$0UD$fW>%D$%PuG@= fW=%D$%Ph/$u G@et&fWe%D$%P7uG@> fW>%D$1ɋu GP=t&fW=1҈D$1 PWZYPuGt&fW%D$%P/uG@<fW<%D$%Ph7u GfW¸%D$%Pu GfW»%D$%Pu GfWº%D$%PuGvfW¹%D$%PuG@fW%D$%Ph/,uG@ fW%D$%P7u G@t&fW%D$%PhuG@ fWB%D$%PhuG@` fW`%D$%PhW Ƈ0 LJHLJLLJ,u G@:fW:D$Wj/] t&7u G@dfWd%D$%P\$4SD$@PQhJ vu G@=fW=%D$%PuG@? fW?%D$%Pl$8UD$DPVhjD$TPW$PD$19s8F(D%PF(,UF(D%PSCh;^0rVWZFYu,FxxFxx0FFxxFxxuG@ fWB%D$/uGHfWBD$7uG@ fWB%D$uGHfWBD$u GfW…%D$1ۈËكu G fWȁ…D$1/uGƀ&fWˆD$7؅u G fW…D$\$4SL$4QD$@PRhu GfW»%D$1҈‹GwB mjjj@%P1BPt1zAAP1BtpPW UhWh7u GfW%D$1ɈGD%PuG@Q fWQ%D$%PQhWhQhuG@d fWd%D$%Pu G@Qt&fWQ%D$%P/uG@> fW>%D$%P7u G@=fW=%D$%PhuG@d fWd%D$%PuG@e fWe%D$%Pu G@>fW>%D$1ɈuGP= fW=1҈D$1 PW^]Pu GfW%D$%Pu G@<t&fW<%D$%Ph4u GfW¸%D$%Pu GfW»%D$%P/u GfWº%D$%P7u GfW¹%D$%PuG@fW%D$%PhuG@ fW%D$%PuG@ fW%D$%Ph$Whu G@fW%D$%PUh 7u GfW‘%D$ u0uGfWȁ‡D$D[^_]Ðt&UWVS@\$TS]t<;u C@vfS%D$t D$B D$AT$1T$t+3u C@ vfS %D$!ŋ uC@ fS %D$80u C@t&fS%D$uCH fSȃD$;uC@ fS %D$B|$AD$*D$D$VhZ+Yu Cƀ fS’D$;u CfS‘%D$  3uC vfSȁ‡ u CfS»%D$%ƋC fS>%D$%D$t΃p̓tɰBD$*D$D$D$AD$|$T$ $RSD$ jj jS|)ujjjSi)txL/< u 1ҊPT$WS|$ tP@%Phjjl$ UL$0QD$3PVSD$80jj jS(t:jD$PjVUT$RjhjD$$PS<D$4,jjjS(t:L$ T$,|$4BuҋBƀƀƀ SjjjSD(ujjjS1(tuF@b fVb%D$1ɋuF@c fVc%D$1% tJ1ۋ  &C9sf%9sfA%9r9|$~!RhVhD$@D$>uF@ fV%D$%D$1u F@fVD$u F@t&fV%D$%$1u F@ t&fVD$.u Fƀ fV’D$>uF@` fV`%D$uFH` fVȃ`D$u F fVȁ‡D$/vڅy)ЁPXً>u FfV‡%D$tD$u FT$PfVD$$u F$PfVD$uF@` fV`%D$u FH` vfVȃ`D$ [^_]Ð&L$u A@ fQ D$u A fQ‘D$pu A@ pfQ D$u A fQ‘D$uAƀfQ’D$u A fQ‘D$ÍW1VS1ۋ|$7FP1FP1FP1FPWhht&13PChX Zv1FPNQVRF PhG0t919s3G(tVG( QG(D%PSCh;_0r[^_Ðt&U1WVST$0|$8BuL$41L$4L$0|$4t9tD$0Rhj h8]Xu 1t&tm1߹@1퍃fǃ21D$ $vы<$fы|$f|$ $E|$ $~ 1D$4T$0؃[^_]Ít&'UWVSUL$D$($l$t$ \$$t^9uA@ fQ%D$t*u A@ fQ %D$1t 1|@U <$tU1B+!ʼn+zu^1[^_]1B9sЉ|$$t$\$ L$[[^_]UWVSD$|$l$t$ u ]]Eu utsL$t tWt&1B9w)9u 1t)MMB ttut&tZ tD$t u1ҋEE[^_]Ð&SD$L$ t t&pD$tItt7t&9u1B&Bp9tB ttu1[Ív'S1ҋD$L$ \$t$D$uT$1HPЋ9vЉt|$u1ҊQ1ҊQ 9v‰[ÍL$ T$tD$tt&|$u R &R 9vЉÍUWVSQt$ T$$|$(f0B ́8Bu3BD$:B u'B:B uZ:Z utOuu |$ut T$f J T$fB!f0f019Z[^_]Í'UWVS|$@L$0\$(l$,t$8D$D$ D$u D$41EU }BuD$ҍBT$$T$tT$4T$<tT$4  T$< 1Ҋ1Ɋ%;T$4u9u ;D$<D$ |$@1ɉD$ t5|$0᠅D$0 D$<t @t&ET$f#2f2|$0t.|$0WtU ЋT$f2Wp у T$t[u C@ fSB%D$|$‹Ef2t ;Ѕu CP t&fSBD$D$tJ;ȅuCHfSD$t#u CP vfSD$<$D$4WGD$&fQ>%D$%Pt؃p &PV|$(W[^_Ð&S\$9s19t9s19u[Í'UWVSl$D$$L$T$\$ t$(u HtvG=sr1?D$8D$<@%ʼnl$4l$ NQD$@PD$@PT$ RS"D$$FPWD$PPL$0QT$8RS,t9|$41WL$jhBPt1zAAP1Bt pt&PS,#l$U~ WFPQh$ [^_]ÍvUWVSR\$uCfS»%D$1҈‹C$+uC@< fS<%D$ $BxV;u CfS¤%D$%t)3uC@U fSU%D$ u CfS§%D$%Ņu CfS¦%D$%Ƌu CfS¥1ɈD$3 1҈ ǃu CfS£%D$% ƅu CfS¢%D$%Ņu CfS¡%D$1ɈuCvfS 1҈D$%+ 1 1 ƅuC@fSD$ u C@ vfSD$u C@ t&fSD$u C@ t&fSD$$Fh,P()LAy9%9q)сA (+ʉu C fS§D$+u C fS¦D$;uC&fS¥D$+ȅu C fS¤D$;uCvfS£D$ ɈuC&fS¢D$+uC&fS¡D$;u C򈐠 fS D$[[^_]ÍvUWVSRR\$uCt&fS»%D$1҈‹CD$+u CfS§%D$%;Ņu CfS¦%D$%3Džu CfS¥%D$% ƅu CfS¤1ɈD$; Љ! ƋD$P,h()փu CfS¢%D$% Džu CfS¡%D$1ɋuCt&fS 1҈D$1n 1 Nj) uCfS…%D$%$ $u C fSȁ…D$Nu CfSȁˆD$3$uC$fS…D$ ɈuC&fS‹D$3uC&fSŠD$ ɈuC&fS‰D$3u Cꈐ fSˆD$ Ɉu C fSŽD$+uC&fSD$3u C fSŒD$uf ɈuCP fS D$+uCP fS D$3u CPfSD$Y[[^_]ÍvUWVS\$|$t$l$ WKQhjCPS RVjjjSV0jjjjjjSV jjjC PCPVt+D$$;W{ WCPUQh[^_]Í'WVSt$j h_XuhVZ1Y1jj j@Y_uSV_1Z&C1ǃǃƃAƃBǃǃǃǃSt&DT@~t$VSZYt S1X[^_Ít&'WVSt$u2u FfV‡%D$Ɔ^ۈu%j h4Ǹ ~ZYt 1[^_ÍUWVS |$ %= \$$D$vl$q E 9u^A $Q@<:BكuFHfVȃD$u F@fV%D$%ىŋuFH fVȃD$>u F@fV%D$%$u F fVȁ‡D$vڅy)ЁPZOt,u FfV‡%D$tuShZYuF&fVȁ‡D$>uF@ fV%D$ ttwtD/t($hZuF@ fV%D$1ۈË>كuFHfVȃD$u FPfVD$ً>uFH fVȃD$$uF$PfVD$1Y[^_]Ív'S1ۋL$؅uAfQD$؅u A fQ D$u AfQ %D$%9ud1uAƀ&fQD$u AfQ %D$u C[ÍvT$D$ÍvUWVSQQt$D$ tD$@V1퀺1Uu V fVD$1;\$}3uN t&fVD$C;\$|ҋ1u VƂ fV¸D$@tEu%V%>uVƂfV¿D$u VƂ fV»D$uVƂfV¹D$u VƂ fVºD$1VE19M.u VfVȁD$>u VƂ fV¿D$Y[[^_]ÐWVSt$ ^ǃ,j h3ljX Z1 V1_@t1uF@Bu F@BfVBD$F1uWh[^VbPjjjh?jjjjjjTQV82PjPRV2jPh@h?PWQV 2PjjjhjjjjjjTRV4/ 2P jPPV2j$Ph@h W QRV (2PjjjhjjjjjjTPV42V_0uQhXZVV uVV_1 t @ȉF ۊHuFH9fVȃ9D$1 [^_WVS|$w.12w$,t@C , Q(RWPKQ(RWS, u(PWY[ RPW S QRW PSWQWXZSQW RPSWQRWPW[_tPY[^_ÍUWVS|$$o0q10@j jXZEVFjP(QWtt$$[^_],F ,jFPh@hVRP(QWFD$(FD$,10D$ T$ )‰T$ <$~$D$C s$D$1҉C(D$ {C,C0‰G0BGCGL$T$ L$T$ 4G0D$@D$$9D$}j j ZYd[^_]ÍV1St$ \$ QhSË t/AP1P1PhSft#&t tu1PPQRhS@t)hF1%PhS"t&F1%PhS [^UWVSl$(D$tƅƅCt"XPjjjSjjjjjjTQU4a\BPjPXPU,`GjPh@SV\QXRU $ `ÍCdD$ D$ $D|$ G|$ |$ ~ۋu1ƅ(u E@OUOD$](uEHP UȃPD$$ AE1uUZt rjA1PUI u"Ph_ ]=t&t5jB1PU uVhY [ U1u E@<Uu F@t&fV%D$uFH fVȃD$uF fV%D$ouF@ fVB%D$.pu F@t&fV%D$>quF@ fV%D$ru F@fV%D$suF@ fV%D$tu F@`fV`%D$uuF@ fV%D$.uFH fVȃD$>u F vfV%D$huF@ fVB%D$iuF@&fV%D$juF@ fV%D$ku F@fV%D$.luF@ fV%D$>mu F@`fV`%D$ntZu FfV„%D$wu FfV†%D$xu FfVŸ%D$Ëفɀu F fVȁŸD$.uF@ fV%D$>vu F fVŸD$u FfV%D$y t6uFvfV%D$zt-u FfV%D${|$$puF fV%D$EE<$G<$<$?~tB$$puFfV%D$EE $A $<$~ŋt8$$1G PV?EXZ~<$G<$<$~V[1Y[^_]É'UWVSRt$VVk]X>uF@ fV%D$uFH fVȃD$u FHt&fVȃD$ouFfVD$.puFHfVBD$>quFH fVȃD$ruFHfVȃD$suFH fVȃD$tuFH fVȃD$.uu FH`t&fVȃ`D$>u F@fV%D$uFH&fVȃD$huFfVD$iuFHfVBD$.juFH fVȃD$>kuFHfVȃD$luFH fVȃD$muFH fVȃD$nu FH`t&fVȃ`D$t'.u FH1vfVȃ"t&>uFH fVȃD$tVwu F fVȁ„D$xu FfVȁ†D$u FfVŸ%D$Ë.فɀuF&fVȁŸD$>vuFH fVȃD$؅uFfVŸD$yu F fVȁD$ t1.zu FfVȁD$t*>{u F fVȁD$|$$pMEu F  vfVD$$B$<$?~t?$$pMEuF fVD$<$G<$<$~΋t<$$1G1EP RV ?~$C$<$~Y1[^_]Ít&'WVSt$\$uF&fV%D$%ً?Džu F fVȁD$uF fV%D$1ɋۉuF&fVD$1ɍS uFfV%D$1Ɉ[^_ÍWVSt$\$uF&fV%D$%ىNj?u F fVȁD$ɍu FfVD$u F2fV%S uF fVD$[^_ÐWVSt$\$uF&fV%D$%ىNj?u F fVȁD$ɊD$u FL$ fVD$u F0fV#ɊD$S u FL$ fVD$[^_Í&'UWVSSD$$L$D$1T$1|$ l$(FtÃp t&t~B(Ј &A1F1:T$t|$ut19tGut19tEut1F19D$,t |$,uY[^_]É'U1WVSl$t$EPtуp t&PtxB(ЈAjj>jhWPQV l$t$[^_] V1S\$ SYt#1H‹C4T$RVS^ @t%u C,fSȁ3uCHL fSȃLD$[^ÍVSD$\$ t$u%HuCH9 fSȃ9D$ RP1Ɋ@C @B[^ÍvS\$@tWu CfS%D$1҈‹хuCvfSȁD$%uC@M fSM%D$1Ɉ[(%Í&UWVS8D$TT$LD$'L$LT$@tf1uAt&\$LfS%D$1҈‹D$LՋu @L$LfQD$2T$L uB@ML$LfQM%D$%ŋD$hD$D$ u\$LusFsT$L舂B ۊHuBH9\$LfS9D$:T$\$L1ҋCuRQhhD$`Pt$`VL$`Qt$3VT$`RSD$dPt$Ft$|$hte|$h~Kx??u$xSD$dx xC@u hZSD$PP[^$SL$$QT$TR SD$$Pt$TV\$, G:D$T$L@t/uBD\$LfS+T$LuBHL\$LfSLD$|$hq|$eL$L:SӁ\$Q%u,1Pt$V\$Shht&HL$ 1Ɋ@%T$LB (M $3CtL$L1EQȃ E$E@EL$LQ +A1҃UT$ PL$@\$LHuCH9D$LfPȃ9D$L$LJT$1ҋT$AA @B\$L+u CD$LfP%D$T$L%ŋ:uB@@L$LfQ@%D$%D$ ,t$'4\$L3uCT$ &L$LD$ fQD$T$L u BL$LfQ»%D$1ҋ\$L‹C:0r+0%P1PhShu1D$ PRhhD$`Pht$`Vt$3VL$`QST$dRD$@D$|$h|$hr|$htbt&Kx??u$xSD$dx xC@u hYST$PR[X%P1D$PL$TQD$ yD$L|$ u@JL$LfQ.\$L|$ uCD$LfP¿%D$%D$ |$ T$Lu B鈈\$LfSD$L$hQT$hRD$`PVl$`Uj|$dWt$$Ɖt$$\$huT$LuBHBuRYD$8[^_]ÍvUWVSD$<\$Hl$0D$ uuMAMD$$u)|$8tT$8$|$ Bu $$$@19$$)Ѝ|$vwvC@ujhD$HPD$PL$HQSUtȋT$4t D$4;Cut&D$@D$|$Ht|$Hr |$Htb듋Kx??u$xSD$Dx xC@u hXSUY[:&SSSt CB t&CGSC $D$HuuEHEuU_D$[^_]ÉU1WVSQQt$D$$D$uF@A fVA%D$1ۈËD$8$pu FfV%D$%$<؅u F fVD$uFfV»%D$1ɈF1Ҋ09rRQhVh9u SShjT$0RT$0RT$RT$0RPVtTL$4EtSWVà 2߅uFt&fV¿%D$1ۈËD$0t/9ߋu FfV¿%D$1ۈÁL$8t,$uF$t&fVD$^_[^_]ÍVS\$ T$Ћ3uCvfSD$ u CfS¿%D$%1u Cƀ fS¸D$SY|$tMD$uCT$ fSD$ u C򈐿&fS¿u CPAfSAD$[^É'L$u Aƀ fQ»D$@uA@B fQB%D$1҈ƒ9uAvfQ¿D$u AfQ%D$1҈ƒ9u APB t&fQBD$ÐWVS\$L$;uCt&fS%D$%3Ljȅu C fSD$ u CfS¿%D$%1u Cƀ fS¸D$SvX|$u[ u CP@fS@D$uC fS%D$uCZfSQ D$uCT$&fSD$u C򈐿 fS¿D$ uCt&fSD$[^_É'UWVS,D$@\$HuPBPT$@*u BL$@fQ%D$%D$jj>|$\Wht$\VÉD$PL$\QT$\RD$$D$4D$0 |$Dt!T$DBT$u L$DL$D$@D$|$Lu)T$@D$ D$tD$@L$LȉL$ @D$|$TT$9T$|$ ;|$}kl$ VD$DPY[L$@Qt4T$TRD$TPT$TRD$ PT$TRSQt VD$DP[^G;|$|L$D$AL$9D$tjjjT$\RD$\Pl$U|$\Wt$\V T$@BD$1L$@D$uAT$L$@fQD$D$@u @L$@fQ»%D$1ɈD$@PBuu/tLT$TRD$TPl$TU|$ Wt$TVSL$XQtT$@RXL$@Q D$@Pl$1El$19D$T$@r|$Tv WL$TQT$TRD$ Pl$TUS|$XWtȋKx??u)xSD$Xx xt&C@u hXSl$DU|$ G|$ Y[]t&L$@D$uAT$vL$@fQD$l$XU|$XWt$XV\$XSL$QT$XRD$XPD$@u‹BHBuR]D$,[^_]ÍvWVSt$>uF@ fV%D$u FH fVȃD$u F vfV%D$%NjuF&fVD$u F fV‘D$څy)ЁPYىuFfVD$V>XuF@ fV%D$ uFHfVȃD$[^_ÍUWVSXt$lD$pD$l$tdžjD$PjjjD$LPu F fVȁ‡D$>uF&fV‡%D$tt"u F fVD$VVZYuF@ fV%D$1۱At tB>u F@Tt&fVT%D$%:L$ًuFH fVȃD$uF@ fV%D$‹ɈuFPfVD$tVZV.2XuFfVD$>؅u FX fVD$D$t&u F@fV%D$‹Ɉu FP t&fVD$tV(]V_2uFfVD$D$jjhjL$QjVD$(11D$jjjjD$\PV$v$T0tD1\$jD$PjWGUSjjjSV,jjjjjjSV ;|$v‹$E;l$$vL$t VZVu FfV‘%D$ u*.u F fVȁ‡D$D$ X[^_]Í&'VSt$AQtF XPuyt RhуF,)V(ыAxQ%ÅyFu FtVT$RSh[^Ð&UWHVS<1ۍPe)ĉL$)ăMԍL$)ăD$MЃ}ЉẺEtft}tftEE$1ҋUE@E劂HE抂HE狂wPEЋMUE鰱E܀EE9uA@`&MfQ`D$1U2u B@b MfQbD$1U uB@cMfQcD$1EU܉EU}WVMQURn} Uf:%9w.EЃ<uUŰ uKEԋUCfTE0f%9w-UЋ u#EԋUfE E@Eȃ}vEPVMQAUB UFl*UۉtDj SMlj ^Xuh&ًutftU uB@`t&MfQ`D$EP5_t]ShZYe؍e[^_]UWVSD$t$l$ :&L$QZu$C %0EfCf%9s fC%9tD$1[;u^_]É'UWVSD$4|$D$ D$T$L$$|$ 1fG1fÁD$D$9sFD$T$$T$$PVL$ QT$1% fGfW%  Ѓ L$a1ۋD$0F8u @HavD$0fPD$C|σ[^_]ht&UWVST$(l$;D$,rhD$,_t$$V\$ Sh uhƋT$,  Z11C;\$sI1ɊLD$$1!ȊT9u!9tۋDPtPh1D ;\$suth[ hYD$([^_]ÐUWVSt$0uFt&fV%D$%$u F@?t&fV?%D$1ۋ.ÅuF@b fVb%D$1ɋ>uF@cfVc%D$1% 1RPYPRPh.uF@R fVR%D$%P>uF@f fVf%D$%Pu F@efVe%D$%PuF@d fVd%D$%Ph$u FfV%D$%P.uFvfVŒ%D$%Ph>uF@ fV%D$%Pu FfV%D$%Phu FfV”%D$%Pu FfV“%D$%Ph.$uF@ fVB%D$%P>u F@t&fV%D$%P1PhuF@ fV %D$%Pu F@ vfV %D$%Pht9u FfVž%D$%Ph]X>uF@o fVo%D$1ɋu F@ot&fVo%D$1% RuF@o fVo%D$1ɋuF@o fVo%D$1% RuF@o fVo%D$1ɋ.uF@ofVo%D$1% R>uF@o fVo%D$1ɋuF@o fVo%D$1% RhF0%PhF @%Ph$uF@9 fV9%D$%Phh @tYuFvfV%D$1҈‹ӅuFvfV؁D$%.uF@M fVM%D$1ۈÊT$8t&1C%PhY_:\$uhhX.ZuF@@ fV@%D$1Ɉ>u F fVȁD$uFt&fV»%D$%P1Ph u FfV¿%D$1ɈtE=Zhh]>XuF@A fVA%D$1Ɉu F fVȁD$uFt&fV»%D$%P1Ph u FfV¿%D$1ɈtE=Yh$1ɋ]<t31PChY1ɋ_<t E=~hhX.ZuF@B fVB%D$1Ɉtt>u F fVȁD$1PhY[u FfV¿%D$1Ɉt E=~hh]1XF1&>u Fꈐ fVD$u FfV»%D$%Pu FfVº%D$%Pu FfV¹%D$%Pu FfV¸%D$%PUEhF1%9hh_^] t&F9t hY@%P@%P@%P@%Ph@ҊHu FfVȁD$u FfV»%D$%P>u FfV¸%D$%Ph [ tE=hhFZYt-@%Ph_[Xt E=~hY1 D$D$9D$oWtPD$PhY_]t-@%PhX[Zt E=~hYT$BT$T$9T$~V.XuF$fV$D$[^_]ÍUWVS\$l$sC1ƋS82Ku @  vfPD$8u @ fP‘D$Su@ fP%D$1҈fC%t̋S8u@fPD$1}f|/tK1΋Su @ fPD$u @ fP‘D$Su@ fP%D$1҈fC%t̋Su@ &fPD$S2K8u@ fPD$u @ fP‘D$Su@ fP%D$1҈fC%t̋Su@ fPD$|/tK11EG9[^_]ÍVS\$ sSu @ fPD$u @ fP‘D$Su@ fP%D$1҈fC%t̋Su@fPD$S2K8u@  fPD$u @ fP‘D$Su@ fP%D$1҈fC%t̋Su@fPD$Su @ fPD$u @ fP‘D$&S0u@ fP%D$1҈fC%t̋Su@fPD$[^Ít&'UWVSRl$ D$$\$9Nt&hS_{Cs1XOhtC1ƋSu @ fPD$u @ fP‘D$Su @t&fP%D$1҈fC%tNjSu@fPD$S2K8u@ fPD$u @ fP‘D$Su@fP%D$1҈fC%tƋSu@fPD$tC1OfD$Su@ &fPD$u @ fP‘D$Su@ fP%D$1҈fC%t̋Su@fPD$fd$S u @t&fP%D$1҈fC%tfL$2KS8u @  fPD$u @ fP‘D$Su@ fP%D$1҈fC%t̋Su@fPD$OzfL$T$ E)ЋT$f BS_D$$t$ 9[[^_]ÍUWVSP\$h SLSvCT$,sT$ 1ƋD$$9Lt&hS_{O]d$tC1ƋSu @  vfPD$u @ fP‘D$S(u@ fP%D$1҈fC%t̋Su@fPD$S(2Ku @  t&fPD$(u @ fP‘D$Su@ fP%D$1҈fC%t̋S(u@fPD$$tC1O|$ $)T$f,B%tC1ƋSu@  t&fPD$u @ fP‘D$Su@ fP%D$1҈fC%t̋Su@fPD$S2K8u@  fPD$u @ fP‘D$Su@ fP%D$1҈fC%t̋Su@fPD$%tC1OsS(u @ fPD$8u @ fP‘D$&S0u@ fP%D$1҈fC%t̋Su@fPD$sS1֐t&S(u @ fPD$8u @ fP‘D$Su@&fP%D$1҈fC%tŋS(u@fPD$S82Ku@ fPD$u @ fP‘D$S(u @t&fP%D$1҈fC%tNjS8u@fPD$S u@ fP%D$1҈fC%S#]<$D$$GL$ <$9$hSS[^_]Ív'S1ɋ\$1ҍ&fSB%|t f;K>t1[ÍV1St$ 1Ґ#9uA~1[^Ít&'UWVSU1\$t$SV _qL$ QS_Z\jSFSS43uC@\ fS\%D$%ǃ r v"wsPhY[y%=d=buC@_ fS_%D$1ɋ3uC@ZfSZ%D$%ƅuC@[ fS[%D$1҈t00utt'ЃyYEЃy y uC@V fSV%D$t  vSZXuUǃ^ uC@ fS%D$u CHt&fSȃD$u C@]fS]%D$%+Ɖu C fSȁ†D$ 3u C fSȁ…D$SZuKWS_]u>$$S ^u Cƀ fS„D$4$1Z[^_]Í'UWVS0|$D҉|$D$D$D$D$ fD$$fD$&fD$(fD$*fD$,fD$.D$ tPh^]jj\$SD$PD$tGL$ QZu#t h]D$t&5t h[L$u3tPh^]_111D$9}m1L$ 1T$f1tL$ tL$t  ŋS u GL$  fWD$D$C;\$|u GH2 fWȃ2D$f7uGH3 fWȃ3D$L$ Q$ЈуT$ fB"t @t@D$ @ tuGHZ fWȃZD$T$ B" t D$0[^_]Í&S\$S5Y[S\$SY[ËD$@ƀAƀBǀǀ1ÍS1ۋD$L$T$f|$ uJfuCf9t>ʃftft ftfu"ʃtx u[Ív'UWVS4D$"PjL$PQ f|$"D$ PjT$PR D$t$ Pj,D$PP f\$D$Pj.l$PU l$|$t$ %$D$t$ D$1 ؉D$11 Ӊ D$D$HT$@ tUL$QT$RD$P|$Wt5fuukt&1H!ljUD$1\$!؋L$ !ʋ11 tD$@D$|$uFƀhYˍvfVD$u FfV %D$u FfV£%D$uFH fVȃD$\$ t tRh_X%PV[^t9t(uPPh t>t1 @t$uRRh uFH&fVȃD$t%PV)^_T$@\$@RKu@ fPD$T$@u@t&fP‘D$([^_]Í&UWVSD$l$t$|$$\$(Pƒ@ƒ UƒT$$Y[^_]Í'UWVSt$|$l$ \$jSDS1Ѓj SSfE1ЋT$<[^_]ÉS\$uC@ fS%D$u CH fSȃD$ u C@ fSD$1u C@fSD$ u C@t&fS%D$1҈‹L$ ЃT$uC@ fS%D$‹D$[Í&WVSD$t$t-8u@@ fP%D$u14VNu@ fPD$u @ fP‘D$ډ؁)PXOt9Vu@ fP%D$1҈fF%tV8u @t&fP%D$1҈fF%uO1ɋVu @fPD$u @ fP‘D$1 t&[^_Í&SL$1ۋQ8u@ fPD$u @ fP‘D$[Í'VSL$ t$u B 1uu AXt&fQ؃D$u A fQ‘D$ uAX fQ؃D$u A fQ‘D$t1uAX fQ؃D$u A fQ‘D$t1uAX&fQ؃D$[^Í'SL$uB&u u AXt&fQ؃D$u A fQ‘D$uA@ fQ%D$1ۋ1u A@fQD$1[Ít&VS\$ 3uCfS’%D$@D$PjQD$ %҉u C@bfSb%D$1ɈuC@c fSc%D$1% RQh yRhYX@tRhYX tRhYXtRhYXtRhYXtRhYXVjR uPhY^+u Cƀ fS’D$u CfS‘%D$ u*3u C fSȁ‡D$[^ S\$D$%ƃAǃǃPjR |$t1[Ít&'S\$D$%ƃAǃǃPjR |$t1[Ít&'S\$SZu 1[Ít&'D$%ƀAǀǀ1 S\$SZuS[[Í&S\$SZuS Y[Í&S\$SuZuSzY[Í&S\$D$ƃAǃǃPjR |$t$1[Ív'D$D$aS\$SUZuSY[Í&S\$S5ZuS Y[Í&S\$ @D$ƃAǃ ǃVPjR |$u1[É'D$@@ƀAǀ ǀ1Í'VS\$ F HB(ЈD$PjV |$vǃ ǃ1bHD$ǃǃ1`PjV1D$ PjV @1[^ T$@ HB(ȋ @1ǂ ǂvÍt&'T$@ HB(ȋ @@1ǂ ǂÍt&'S\$SYu1[Ív'hZ S\$P ttƃA/t&ƃB!&RhƃAY[1[ÉS\$P t%t 9 t$2ƃAA&ƃB1&ƃC!&RhƃAZY 1[ÍvS\$P t%tIt$t/=ƃANt&ƃBA&ƃC1&ƃD!&RhƃAZY 1[ÍvF(h.7 РРРРaРpY / &     P  Q T T T T T T T T =kernel_version=2.4.10-4GBauthor=Maintainer: Justin T. Gibbs description=Adaptec Aic77XX/78XX SCSI Host Bus Adapter driverlicense=Dual BSD/GPLparm_aic7xxx=sparm_desc_aic7xxx=period delimited, options string. verbose Enable verbose/diagnostic logging allow_memio Allow device registers to be memory mapped debug Bitmask of debug values to enable no_probe Disable EISA/VLB controller probing no_reset Supress initial bus resets extended Enable extended geometry on all controllers periodic_otag Send an ordered tagged transaction periodically to prevent tag starvation. This may be required by some older disk drives or RAID arrays. reverse_scan Sort PCI devices highest Bus/Slot to lowest tag_info: Set per-target tag depth global_tag_depth: Global tag depth for every target on every bus seltime: Selection Timeout (0/256ms,1/128ms,2/64ms,3/32ms) Sample /etc/modules.conf line: Enable verbose logging Disable EISA/VLB probing Set tag depth on Controller 1/Target 2 to 10 tags Shorten the selection timeout to 128ms options aic7xxx='"verbose.no_probe.tag_info:{{}.{..10}}.seltime:1"' kernel_version=2.4.10-4GBkernel_version=2.4.10-4GBkernel_version=2.4.10-4GBkernel_version=2.4.10-4GBkernel_version=2.4.10-4GBkernel_version=2.4.10-4GBkernel_version=2.4.10-4GBahc_pci_read_config: Read size too bigahc_pci_write_config: Write size too bigAttempt to queue invalid SCB tag %x:%x Too few segs for dma mapping. Increase AHC_NSEG ahc_softc_sort: invalid bus typeahc_linux_detect: SCSI data structures changed. ahc_linux_detect: Unable to attach <4>aic7xxx: Please read the file /usr/src/linux/drivers/scsi/README.aic7xxx aic7xxx: to see the proper way to specify options to the aic7xxx module aic7xxx: Specifically, don't use any commas when passing arguments to aic7xxx: insmod or else it might trash certain memory areas. aic7xxx: WARNING, insufficient tag_info instances for installed controllers. Using defaults aic7xxx: Please update the aic7xxx_tag_info array in the aic7xxx.c source file. scsi%d:%c:%d:%d: Tagged Queuing enabled. Depth %d aic7xxx_linux_queue: Unable to allocate device! Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev ahc_send_async: Unexpected async eventSaw underflow (%ld of %ld bytes). Treated as error %s:%c:%d: Device Timer still active during busy processing %s: SG Inquiry response ignored ahc_linux_filter_command: Unexpected Command type %x %s:%d:%d:%d: Attempting to queue a%s message %s:%d:%d:%d: Is not an active device %s:%d:%d:%d: Command found on device queue %s:%d:%d:%d: Command found on untagged queue %s:%d:%d:%d: Command not found %s:%d:%d:%d: Command already completed %s:%d:%d:%d: Cmd aborted from QINFIFO %s:%d:%d:%d: Device is active, asserting ATN %s:%d:%d:%d: Device is disconnected, re-queuing SCB %s:%d:%d:%d: Unable to deliver message aic7xxx_dev_reset returns 0x%x %s: SCSI bus reset delivered. %d SCBs aborted. ahc_pci_read_config: Read size too bigahc_pci_write_config: Write size too bigAttempt to queue invalid SCB tag %x:%x Channel %c Target %d Negotiation Settings Channel %c Target %d Lun %d Settings Device Queue Frozen Count %d ahc_proc_write_seeprom: incorrect buffer size ahc_proc_write_seeprom: cksum verification failed ahc_proc_write_seeprom: unsupported adapter type ahc_proc_write_seeprom: No Serial EEPROM aic7xxx: Unable to allocate serial eeprom buffer. Write failing aic7xxx: Writing Serial EEPROM Adaptec AIC7xxx driver version: %s ahc_pci_read_config: Read size too bigahc_pci_write_config: Write size too bigahc_pci_read_config: Read size too bigahc_pci_write_config: Write size too bigaic7xxx: PCI Device %d:%d:%d failed memory mapped test aic7xxx: PCI%d:%d:%d MEM region 0x%lx unavailable. Cannot memory map device. aic7xxx: PCI%d:%d:%d IO region 0x%lx[0..255] unavailable. Cannot map device. ahc_pci_read_config: Read size too bigahc_pci_write_config: Write size too bigAttempt to queue invalid SCB tag %x:%x Scratch or SCB Memory Parity ErrorIllegal Opcode in sequencer programIllegal Sequencer Address referrenced%s: WARNING no command for scb %d (cmdcmplt) QOUTPOS = %d %s: brkadrint, %s at seqaddr = 0x%x ahc_intr - referenced scb not valid during seqint 0x%x scb(%d) %s: Interrupted for staus of 0??? SCB %d: requests Check Status %s:%c:%d: no active SCB for reconnecting target - issuing BUS DEVICE RESET SAVED_SCSIID == 0x%x, SAVED_LUN == 0x%x, ARG_1 == 0x%x ACCUM = 0x%x SEQ_FLAGS == 0x%x, SCBPTR == 0x%x, BTT == 0x%x, SINDEX == 0x%x SCSIID == 0x%x, SCB_SCSIID == 0x%x, SCB_LUN == 0x%x, SCB_TAG == 0x%x, SCB_CONTROL == 0x%x SCSIBUSL == 0x%x, SCSISIGI == 0x%x %s:%c:%d: Warning - unknown message received from target (0x%x). Rejecting %s:%c:%d: Target did not send an IDENTIFY message. LASTPHASE = 0x%x, SAVED_SCSIID == 0x%x %s: Issued Channel %c Bus Reset. %d SCBs aborted %s:%c:%d: unknown scsi bus phase %x, lastphase = 0x%x. Attempting to continue %s:%c:%d: Missed busfree. Lastphase = 0x%x, Curphase = 0x%x ahc_intr: HOST_MSG_LOOP bad phase 0x%x HOST_MSG_LOOP with invalid SCB %x data overrun detected %s. Tag == 0x%x. %s seen Data Phase. Length = %ld. NumSGs = %d. sg[%d] - Addr 0x%x%x : Length %d %s:%c:%d:%d: Attempt to issue message failed %s: No free or disconnected SCBs Bogus TAG after DMA. SCBPTR %d, tag %d, our tag %d %s: BTT calculation out of range SEQ_FLAGS == 0x%x, SCBPTR == 0x%x, BTT == 0x%x, SINDEX == 0x%x , A == 0x%x ahc_intr: seqint, intstat == 0x%x, scsisigi = 0x%x %s: Transceiver State Has Changed to %s mode parity error detected %s. SEQADDR(0x%x) SCSIRATE(0x%x) No terminal CRC packet recevied %s: ahc_intr - referenced scb not valid during SELTO scb(%d, %d) Saw Selection Timeout for SCB 0x%x Unexpected busfree %s SEQADDR == 0x%x %s: Missing case in ahc_handle_scsiint. status = %x %s: Infinite loop in critical section scb:%p control:0x%x scsiid:0x%x lun:%d cdb_len:%d dataptr:%#x datacnt:%#x sgptr:%#x tag:%#x %s: ahc_alloc_tstate - Target already allocated%s: target %d synchronous at %sMHz%s, offset = 0x%x %s: target %d using asynchronous transfers %s: target %d using %dbit transfers Bus Device Reset Message Sent ahc_intr: AWAITING_MSG for an SCB that does not have a waiting message SCSIID = %x, target_mask = %x SCB = %d, SCB Control = %x, MSG_OUT = %x SCB flags = %x(%s:%c:%d:%d): Sending SDTR period %x, offset %x (%s:%c:%d:%d): Sending WDTR %x (%s:%c:%d:%d): Sending PPR bus_width %x, period %x, offset %x, ppr_options %x HOST_MSG_LOOP interrupt with no active messageTarget MSGIN with no active message(%s:%c:%d:%d): Received SDTR period %x, offset %x Filtered to period %x, offset %x (%s:%c:%d:%d): Target Initiated SDTR (%s:%c:%d:%d): Received WDTR %x filtered to %x (%s:%c:%d:%d): requested %dBit transfers. Rejecting... (%s:%c:%d:%d): Target Initiated WDTR (%s:%c:%d:%d): Target Initiated PPR (%s:%c:%d:%d): Initiator Initiated PPR (%s:%c:%d:%d): Received PPR width %x, period %x, offset %x,options %x Filtered to width %x, period %x, offset %x, options %x (%s:%c:%d:%d): PPR Rejected. Trying WDTR/SDTR (%s:%c:%d:%d): refuses WIDE negotiation. Using 8bit transfers (%s:%c:%d:%d): refuses synchronous negotiation. Using asynchronous transfers (%s:%c:%d:%d): refuses tagged commands. Performing non-tagged I/O (%s:%c:%d:%d): refuses %s tagged commands. Performing simple queue tagged I/O only %s:%c:%d: Message reject for %x -- ignored %s: %s on %c:%d. %d SCBs aborted aic7xxx: cannot malloc softc! %s: WARNING - Failed chip reset! Trying to initialize anyway. Unsupported adapter type. Ignoring %s: ahc_init_scbdata - Unable to allocate initial scbs Twin Channel, A SCSI Id=%d, B SCSI Id=%d, primary %c, %s: unable to allocate ahc_tmode_tstate. Failing attach %s: hardware scb %d bytes; kernel scb %d bytes; ahc_dma %d bytes %s: Host Adapter Bios disabled. Using default SCSI device parameters %s: Downloading Sequencer Program...Infinite interrupt loop, INTSTAT = %xfound = %d, qinstart = %d, qinfifionext = %d Waiting List inconsistency. SCB index == %d, yet numscbs == %d.Disconnected List inconsistency. SCB index == %d, yet numscbs == %d.Disconnected List Loop. cur SCBPTR == %x, prev SCBPTR == %x.Unknown opcode encountered in seq program%s: Dumping Card State %s, at SEQADDR 0x%x ACCUM = 0x%x, SINDEX = 0x%x, DINDEX = 0x%x, ARG_2 = 0x%x SCSISEQ = 0x%x, SBLKCTL = 0x%x DFCNTRL = 0x%x, DFSTATUS = 0x%x LASTPHASE = 0x%x, SCSISIGI = 0x%x, SXFRCTL0 = 0x%x STACK == 0x%x, 0x%x, 0x%x, 0x%x %d(c 0x%x, s 0x%x, l %d, t 0x%x) ahc_pci_read_config: Read size too bigahc_pci_write_config: Write size too bigAttempt to queue invalid SCB tag %x:%x ahc_pci_read_config: Read size too bigahc_pci_write_config: Write size too bigAttempt to queue invalid SCB tag %x:%x aic7770_config: illegal irq setting %d ahc_pci_read_config: Read size too bigahc_pci_write_config: Write size too bigAttempt to queue invalid SCB tag %x:%x Adaptec aic7815 RAID memory controllerAdaptec aic7810 RAID memory controllerAdaptec aic7899 Ultra160 SCSI adapterAdaptec aic7896/97 Ultra2 SCSI adapterAdaptec aic7895 Ultra SCSI adapterAdaptec aic7892 Ultra160 SCSI adapterAdaptec aic7890/91 Ultra2 SCSI adapterAdaptec aic7880 Ultra SCSI adapterAdaptec aic7860 Ultra SCSI adapterAdaptec aic7899 Ultra160 SCSI adapter (ARO)Adaptec (Compaq OEM) 3960D Ultra160 SCSI adapterAdaptec 3960D Ultra160 SCSI adapterAdaptec aic7896/97 Ultra2 SCSI adapter (ARO)Adaptec 3950D Ultra2 SCSI adapterAdaptec 3950B Ultra2 SCSI adapterAdaptec aic7895 Ultra SCSI adapter (ARO)Adaptec 3944A Ultra SCSI adapterAdaptec 3940A Ultra SCSI adapterAdaptec 2940/DUAL Ultra SCSI adapterAdaptec aic7892 Ultra160 SCSI adapter (ARO)Adaptec 19160B Ultra160 SCSI adapterAdaptec 29160B Ultra160 SCSI adapterAdaptec 29160C Ultra160 SCSI adapterAdaptec 29160N Ultra160 SCSI adapterAdaptec (Compaq OEM) 29160 Ultra160 SCSI adapterAdaptec 29160 Ultra160 SCSI adapterAdaptec AAA-131 Ultra2 RAID adapterAdaptec aic7890/91 Ultra2 SCSI adapter (ARO)Adaptec 2950 Ultra2 SCSI adapterAdaptec 2940 Ultra2 SCSI adapterAdaptec 2940 Ultra2 SCSI adapter (OEM)Adaptec 2940B Ultra2 SCSI adapterAdaptec 2930 Ultra2 SCSI adapterAdaptec 2940/CN Ultra SCSI adapterAdaptec 2940 Pro Ultra SCSI adapterAdaptec 2930 Ultra SCSI adapterAdaptec 4944 Ultra SCSI adapterAdaptec 398X Ultra SCSI RAID adapterAdaptec 3944 Ultra SCSI adapterAdaptec 2944 Ultra SCSI adapterAdaptec 3940 Ultra SCSI adapterAdaptec 2940 Ultra SCSI adapterAdaptec 398X SCSI RAID adapterAdaptec 2930C Ultra SCSI adapter (VAR)Adaptec 2940A/CN Ultra SCSI adapterAdaptec 2940A Ultra SCSI adapterAdaptec 1480A Ultra SCSI adapterAdaptec 2902/04/10/15/20/30C SCSI adapter%s: Enabling 39Bit Addressing %s: Using left over BIOS settings %s: External SRAM, %s access%s, %dbytes/SCB %s: Low byte termination %sabled %s: internal 50 cable %s present, internal 68 cable %s present %s: external cable %s present %s: Illegal cable configuration!!. Only two connectors on the adapter may be used at a time! %s: 68 pin termination Enabled %s: %sHigh byte termination Enabled %s: 50 pin termination Enabled %s: %sLow byte termination Enabled %s: Primary Low Byte termination Enabled %s: Primary High Byte termination Enabled %s: PCI error Interrupt at seqaddr = 0x%x %s: Data Parity Error Detected during address or write data phase %s: Signal System Error Detected %s: Data Parity Error has been reported via PERR# %s: Latched PCIERR interrupt with no status bits set RAID functionality unsupported adapter at unexpected slot %d unable to map to a channel (scsi%d:%c:%d:%d): Crossed Seg ,.Setting Global Tags= %d global_tag_depthtag_infoseltimepci_parityperiodic_otagno_probereverse_scanallow_memioverboseno_resetextendedaic7xxxscsi%drunning device on run list6.2.10 <> (%s:%c:*): %d): %sSCB %d done'd twice Stopping for safetyRecovery SCB completes Locking max tag count at %d n ABORT TARGET RESETQueuing a recovery SCB Recovery code sleeping Recovery code awake Timer Expired aic7xxx_abort returns 0x%x DevQ(%d:%d:%d): %d waiting %d.%03dMB/s transfers%dKB/s transfers DT (%d.%03dMHz%s, offset %d, (%dbit)) User: Goal: Curr: Commands Queued %ld Commands Active %d Command Openings %d Max Tagged Openings %d 6.2.10%s No Serial EEPROM Serial EEPROM: 0x%.4x ahc_eisa:%daic7xxxaic7xxxahc_pci:%d:%d:%daic7899aic7892aic7896/97aic7890/91aic7895Caic7895aic7880aic7870aic7860aic7859aic7855aic7850aic7770NONECIOBUS Parity ErrorPCI Error detectedData-path Parity ErrorSequencer Parity ErrorIllegal Host Accessin unknown phasewhile idlein Message-in phasein Status phasein Message-out phasein Command phasein DT Data-in phasein DT Data-out phasein Data-in phasein Data-out phase3.64.04.45.05.76.678.010.013.416.020.033.040.080.0for safetySending Sense SXFRCTL0 == 0x%x SEQCTL == 0x%x HaveHaven'tfor saftey%s: Spurious SCSI interrupt LVDSE%s: Someone reset channel %c %s:%c:%d: CRC Value Mismatch Illegal CRC packet request non- Unexpected %sDT Data Phase TagSCB %d - Abort%s Completed. Bus Device Reset%s: critical section loopShared Data: %#02x DT%s:%c:%d:%d: Abort%s Message Sent Ensuring async INITIATOR_MSG_OUT PHASEMIS %s byte 0x%x INITIATOR_MSG_INUnknown REQINIT message typeorderedhead of queue%s: No SCB space found Ultra Ultra160 Ultra2 WideSingle%s%s Channel %c, SCSI Id=%d, %d/%d SCBs%d SCBsqinpos = %d, SCB index = %d Loop 1 Inactive SCB in qinfifo First/Second Qinfifo fixup scb_index = %d, next = %d Waiting List traversal Inactive SCB in Waiting List Inactive SCB in untaggedQ Inactive SCB on pending list Bogus resid sgptr value 0x%x Handled Residual of %d bytes ahc_loadseq: Could not malloc %d instructions downloaded %s: BMOV not supported %s[0x%x] :(|%s%s) HCNT = 0x%x SCBPTR = 0x%x SSTAT0 = 0x%x, SSTAT1 = 0x%x SCSIPHASE = 0x%x SCB count = %d Kernel NEXTQSCB = %d Card NEXTQSCB = %d QINFIFO entries: %d Waiting Queue entries: %d:%d Disconnected Queue entries: QOUTFIFO entries: Sequencer Free SCB List: Sequencer SCB Info: Pending list: , %d(c 0x%x, s 0x%x, l %d)(0x%x, 0x%x)Kernel Free SCB list: Untagged Q(%d): Adaptec aic7770 SCSI adapterAdaptec 284X SCSI adapterAdaptec 274X SCSI adapter%s: Reading SEEPROM...checksum error done. %s: No SEEPROM available Adaptec aic7870 SCSI adapterAdaptec aic7859 SCSI adapterAdaptec aic7855 SCSI adapterAdaptec aic7850 SCSI adapterAdaptec 4944 SCSI adapterAdaptec 3944 SCSI adapterAdaptec 2944 SCSI adapterAdaptec 3940 SCSI adapterAdaptec 2940 SCSI adapterAdaptec 2930CU SCSI adapter, parity checking enabledfastslow%s: Reading SEEPROM...checksum error done. %s: No SEEPROM available. endis%s: Manual SE Termination %s: Manual LVD Termination isnot%s: BIOS eeprom %s present Secondary Primary %s: Received a Master Abort %s: Received a Target Abort %s: Signaled a Target Abort Please don't trounce on me insmod!! p0  } / ``FF @@ ` B      %0+@2P8`>pD"eYj$@@h>@@h@<`>` Bh@xM0Lp90j^Q 1W jvQ^Q09`0pj^r0@~100MW@ 1eX` @xj"` x@ h x jjie AWe@aj^Q q xe@z=zx=z jeAe^e@ h j "xee>00  0T0xee4T4x 44 x4@ 10z0|0eX y0jj]@j] y j]]x0 yjj]e@tj^eA"0j$ y hj^j& j0jj~jx jHJ!L!N%~zj jj nrn"njЁ1 jeZԉ~1*zUF1^eY0U6ze:zee1&j 0dȈd~PjPjԘeVdp0dd!%<`j!jFjvyjv@?hj;vjԁ k10eF1j^jj]j] &e^je^F1^1e@ZeY0e]j{U j tk n{ zjeZj^k8{80@j B! D!jpeC@1@1@1 B1 D1h  1f fQ4L=(?d|e> 10eeLj"j eeTj"j eeeLj"jeeTj"jl0QuQ]Q 1e0E0>0ue^Je@NV@NW NZ0M[@N^3 WZ^dfhhj  qwP.Vw0.pwP.PxxPQi8`8Qu`QxaQx!Q8`Qxq Rxr`RxsRxt Rxu`RxvRxRx`SxRx`SxSxRxRx@SxRSS!SSSSSTTbT bU TbTTxx`Txx`Txx`Txx`TP0UP0UQ0UQ0US0U U UUxPQxUQ`8Qx`Qxp RxRSTx`TP0UUx Vx VGCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)01.0101.0101.0101.0101.0101.0101.0101.01.symtab.strtab.shstrtab.text.rel.text.text.lock.rel.text.lock.rodata.rel.rodata.modinfo.rodata.str1.32.rodata.str1.1.data.rel.data.bss.comment.note@W! %+X6 0E0X8M YY b2 _8 r2l     @@ @p2z @1;}%<d a<f , Q=W > I V g ?@ ;Ab =  BC   # : E l    D 4 L n     `   ` u   [ j o        }7NSsy  EF  % GHIOKJPJKuz^o!  !!!! "L'"M="NM"Ov"P"Q" "N#$V$R[$h$Sm$v$T{$$$U$$$V$%%W%%%X%&Y&$(Z)())[)d*\i*** +]++w---.=.H.^M.///_/`/a/&0bj0co0l11d12e$2*2J2fO222g22G5h5 B6L6Q6iV6]66j66k67777l77m777n7{88o88p89E9V9q[9999%: :::{;r;;s;; ; ;;; < <!< (< !F(*h..7<= = =====>>+>E>Y>>>>>>>?V?e?w????@@@@>AAAAAAAAAAB$B6BBeCjCC CCCCCCDDDVEgEqEEEEEF&F+F%lFrF xFFFFFTGGGGGGGHH$H8HBHIHeHjH|HHHHHH%*I5I:I%YIvI{II J$JJJJJ KKtKyKK$KK KKSS+S4SvSTTYTV VVVVXXXXXYYYYYYYZZZZ#ZZ1[[ [a\ f\\Z] _]J^ O^^ ^^^ _____#`(`6`L`Q```SaXa^aaaaa!b&bc c cc cccd!d'd,dgdld{dHfMffg gggggggggg gZh _h iji!oiZj _jj jjjjj"k}kl#ln$$n%1n&6nn'nno o p prp(wp q q)q0q*5qEq+JqZq,_qrq-yq.q/qs0sssst t1tCtmvrv-v2v3vvvv4wwww xx5x(x 5x x x6xx y7yy{z8zzz9z{~}:}};}~< ~+~=0~f~k~~>~~߀    , ́ ҁ   1?@-Y@^sAx߇BB_}   =CBUZD_2- ErFwGHI'NJSޕK#L(M˜ӘNؘOPRnPsÚQȚٚOuP1R6QSVɠT BeUjV#nWsX7Y֥Zۥ(m[rާ\X]]jҨ^+_09C`Malbqzp ƪc  8IbdgeĴִܴlxP^iv"Gi˸ s~fcghU{hC#b##W{i"EY_y);# 5GjMW-ckxlmnopqr##FsKs)t.ur f%5v:~uz^o!W wK t x yAz{|}!~&+0U afn% T i~Gz{,Bi&+ux 8    f l z    *  P o  ! & R W u z         3 8 B G (9>MR ot x}RWBG\a ?D /4LQV{q ! " Y' '''#(5(D(J( ((U*9+E+]++,,/,D,N,W,\,r,{,,,,,D/c///B0]0i0q0{00011%151:1O1h1$~1111Q3 45,5 66666678$99:;;;;;;;;v<<<<<<<<==1= 6=>??!?8?????"@#@$@eBB$cDsD%xDDD&D?EYE'bE(oE)tEE'E(E*EE'E(E+EEE'E(E,E8F-=FFF.FF/FF0FG(G1-G:G/CGPG2UGmG}G3GGG4GGG5 HH2H:HIH/PH]H0bHK~.OO6OO7OO8OO9O P:P%P;*P@P<EPVPmP=rPQQQSSTTT!V>&VV?VW? WW?W  $(,048<@DHLPTX\`dhlptx|  $(,\htl put xA|vw x yz { @?",     $(,048<DLT\dlt| ,<L\l| (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx04@DPTh@lABCDEFG(H,@IDXJ\pKtLMNOPQR0S4HTLxU|VWXYZ[  \$8]<P^Th_l`abcdef(g,@gDXh\phtijklmno0p4HqL`rdxs|tuvwxy      6 G \ m    < \  p-.JNhX X0 i> + p.1.s@$ 2 ^I!w` 0v!T  *P)c0/G`. / l +;8A <W \a! f$ k= qN w }  @            ` (  < T  #`)q /y 5;A G`MSY_@e kqw }          x j _ W 0<0<s<@@  <B p>60?L?W * c; \? a@ fZ ] ` wg i  k s { ` q k h n }   @     @     tD W# F`T  FiFOHR/IW3 +  c \ PL._n@@ ~P    L0LPLpLLL L1LBLSMd0MuPMpMMMMMN N@N`NN(N8NHX P bx@ *Ў`}M 01, 0vE PyL] j г~ ~%  p Px p !  ` `, B DS @ a Py 0   m   d w  K)/@5; AGM S Y_e kq- w? }  ` # O ) T / 5 `; A G M \ S `Y _ e g k  q  w @}           `   + <    A ` W  e   k  % `, 3 o : A } H O `V ]  d k r y         `    `   `   @      @ ! ( / 6  = !D `!K + R 2 Y < ` D g I n P u n | y ! ! @" " "    #  `#    , # $ G e     $@$+ 2 9 @ G N U \$c$j q%x %`%) G %Y i          %' 6 9 R _ v W  c \ a f  { ws j _ T L D   qkh n }@      v a Q = 2 !               # 0H)  6   C  P  ^0*o`}'bP. 0. +p.J\'a f   W  c .|QeQe Q% R10`RBRTRfRvx`SS@SSgTCU&`T0UUUU! V0.fJ<$X8 m67^0@&`CISI pInLC  N@V^+V>0Wq3w3}2 L M R  4W  ~ n # ) / 5 `4; A G M S 4Y 4_ 5e k 5q 5w  } 5 5 6 @6 6 6 7 `7  2 O 7 7 8 @8W3 c@3\3a2f2  w`2   @2 22q1k1h1n`1} 100`0 0//`/ /..`. .--`- -,,`, ,+ +`+ +*#w )Z /= 5*; A`*G *M)S)Y`)_ )e(k(QRb_{0!0PFH  W,!>L;i8}N3N!bX Wk)? 7O`H2cxTF> <"(I"0` C^t'4 ;8 Jy(@=&=Ka, y|}  o4 0/$B8H0d\w (0 p(pLS)P8 BWDAk09 Pt:US} -<4OY`8&t   m@`> 0.0FX8)h( zV Y'5 ($ @4Q`S#iovPKKH`   x &P 4>OWз"dz( *8 ! %<y80ЍND, Tapk t9 aic7xxx_osm.cgcc2_compiled.__module_kernel_versionaic7xxx_tag_infoaic7xxx_reverse_scanaic7xxx_extendedaic7xxx_pci_parityaic7xxx_no_probeaic7xxx_seltimeaic7xxxdummy_buffer__module_licenseahc_runq_taskletahc_linux_run_device_queueahc_linux_notifierahc_linux_haltahc_linux_setup_tag_infoahc_linux_setup_tag_info_globaloptions.0aic7xxx_no_resetahc_linux_select_queue_depthahc_linux_next_unitahc_linux_initialize_scsi_busahc_linux_freeze_sim_queueahc_linux_release_sim_queueahc_linux_user_tagdepthahc_linux_device_queue_depthwarned_user.1ahc_linux_alloc_targetahc_linux_alloc_deviceahc_linux_free_targetahc_linux_free_devicebuffer.2ahc_linux_filter_commandahc_linux_handle_scsi_statusahc_linux_dev_timed_unfreezeahc_linux_sem_timeoutahc_linux_queue_recovery_cmddriver_templateinit_this_scsi_driverexit_this_scsi_driver.LC3.LC6.LC7.LC8.LC19.LC18.LC11.LC22.LC23.LC24.LC25.LC26.LC27.LC28.LC29.LC4.LC2.LC30.LC31.LC32.LC33.LC34.LC35.LC36.LC37.LC38.LC39.LC40.LC41.LC42.LC43.LC44.LC45.LC46.LC47.LC48.LC49.LC50.LC51.LC52.LC53.LC54.LC55.LC56.LC57.LC58.LC59.LC60.LC61.LC62.LC63.LC64.LC65.LC66.LC67.LC68.LC69.LC9.LC10.LC12.LC13.LC14.LC15.LC16.LC17aic7xxx_proc.ccopy_mem_infocopy_infoscsi_syncratesscsi_calc_syncsrateahc_dump_target_stateahc_dump_device_stateahc_proc_write_seeprom.LC5.LC20.LC21aic7770_osm.caic7xxx_osm_pci.cahc_linux_pci_id_table__module_pci_device_size__module_pci_device_tableahc_linux_pci_dev_probeahc_linux_pci_dev_removeahc_linux_pci_reserve_io_regionahc_linux_pci_reserve_mem_regionaic7xxx_core.cnum_chip_namesahc_hard_errorsnum_errorsahc_phase_tablenum_phasesahc_syncratesseqprogahc_patch23_funcahc_patch22_funcahc_patch21_funcahc_patch20_funcahc_patch19_funcahc_patch18_funcahc_patch17_funcahc_patch16_funcahc_patch15_funcahc_patch14_funcahc_patch13_funcahc_patch12_funcahc_patch11_funcahc_patch10_funcahc_patch9_funcahc_patch8_funcahc_patch7_funcahc_patch6_funcahc_patch5_funcahc_patch4_funcahc_patch3_funcahc_patch2_funcahc_patch1_funcahc_patch0_funcpatchescritical_sectionsnum_critical_sectionsahc_clear_msg_stateahc_add_curscb_to_free_listahc_fetch_devinfoahc_print_devinfoahc_assert_atnahc_handle_ign_wide_residueahc_reinitialize_dataptrsahc_setup_initiator_msgoutahc_handle_message_phaseahc_force_renegotiationahc_sent_msgahc_handle_devresetahc_alloc_tstateahc_devlimited_syncrateahc_update_pending_scbsahc_scb_devinfoahc_build_transfer_msgahc_construct_pprahc_construct_sdtrahc_construct_wdtrahc_parse_msgahc_handle_msg_rejectahc_fini_scbdataahc_dmamap_cbahc_build_free_scb_listahc_init_scbdataahc_loadseqahc_qinfifo_countahc_qinfifo_requeueahc_rem_wscbahc_rem_scb_from_disc_listahc_reset_current_busahc_check_patchahc_download_instr.LC70.LC71.LC72.LC73.LC74.LC75.LC76.LC77.LC78.LC79.LC80.LC81.LC82.LC83.LC84.LC85.LC86.LC87.LC88.LC89.LC90.LC91.LC92.LC93.LC94.LC95.LC96.LC97.LC98.LC99.LC100.LC101.LC102.LC103.LC104.LC105.LC106.LC107.LC108.LC109.LC110.LC111.LC112.LC113.LC114.LC115.LC116.LC117.LC118.LC119.LC120.LC121.LC122.LC123.LC124.LC125.LC126.LC127.LC128.LC129.LC130.LC131.LC132.LC133.LC134.LC135.LC136.LC137.LC138.LC139.LC140.LC141.LC142.LC143.LC144.LC145.LC146.LC147.LC148.LC149.LC150.LC151.LC152.LC153.LC154.LC155.LC156.LC157.LC158.LC159.LC160.LC161.LC162.LC163.LC164.LC165.LC166.LC167.LC168.LC169.LC170.LC171.LC172.LC173.LC174.LC175.LC176.LC177.LC178.LC179.LC180.LC181.LC182.LC183.LC184.LC185.LC186.LC187.LC188.LC189.LC190.LC191.LC192.LC193.LC194.LC195.LC196.LC197.LC198.LC199.LC200.LC201.LC202.LC203.LC204.LC205.LC206.LC207.LC208.LC209.LC210.LC211.LC212.LC213.LC214.LC215.LC216.LC217.LC218.LC219aic7xxx_93cx6.cseeprom_readseeprom_ewenseeprom_ewdsseeprom_writesend_seeprom_cmdreset_seepromaic7770.cahc_aic7770_EISA_setupahc_aic7770_VL_setupaha2840_load_seepromahc_aic7770_setupaic7xxx_pci.cahc_aic785X_setupahc_aic7860_setupahc_apa1480_setupahc_aic7870_setupahc_aha394X_setupahc_aha398X_setupahc_aha494X_setupahc_aic7880_setupahc_aha394XU_setupahc_aha398XU_setupahc_aha2940Pro_setupahc_aic7890_setupahc_aic7892_setupahc_aha29160C_setupahc_aic7895_setupahc_aic7896_setupahc_aic7899_setupahc_raid_setupahc_9005_subdevinfo_validcheck_extportahc_probe_ext_scbramahc_ext_scbram_presentahc_scbram_configahc_parse_pci_eepromconfigure_terminationahc_new_term_detectaic785X_cable_detectaic787X_cable_detectwrite_brdctlread_brdctlahc_aha394XX_setupahc_aha398XX_setupahc_aha494XX_setupahc_run_qoutfifoahc_platform_freeze_devqpci_register_driverfree_irq__udelayahc_pci_configahc_find_softcvsprintfahc_platform_set_tagsahc_dmamap_loadahc_shutdownaic7770_map_intpci_enable_deviceahc_softc_compahc_write_seeprom__down_failedahc_platform_dump_card_stateahc_linux_bus_reset__this_moduleahc_restartahc_initahc_lookup_phase_entry__up_wakeupahc_match_scbahc_update_neg_requestahc_pci_intrahc_set_widthahc_pci_ident_tableahc_handle_seqintscsi_report_bus_reset__module_authorahc_linux_pci_probescsi_register_modulescsi_unregisterahc_linux_queueiounmapahc_set_syncrateahc_validate_widthaic7770_map_registerscleanup_moduleahc_send_asyncahc_pci_map_registersscsi_partsizekfreeaic7xxx_setupahc_print_register__module_parm_desc_aic7xxx__module_parm_aic7xxxahc_verify_cksumahc_platform_freeahc_qinfifo_requeue_tailpci_set_power_stateahc_freepci_unregister_driver__release_regioninit_moduleahc_dma_tag_destroyahc_acquire_seepromahc_format_transinfoscsi_registerpci_read_config_dwordaic7xxx_driver_templateahc_set_unitrequest_irqregister_reboot_notifierahc_clear_intstatahc_print_scbahc_abort_scbsahc_softc_insertaic7xxx_periodic_otagahc_find_pci_device__check_regionahc_linux_proc_infoahc_find_periodahc_validate_offsetunregister_reboot_notifierahc_index_busy_tcltasklet_killahc_softc_initahc_calc_residual__brelseaic7770_ident_table__ioremapahc_freeze_devqaic7770_configadd_timertasklet_initahc_release_seepromahc_alloc_scbsahc_debugpci_alloc_consistentaic7770_linux_probepci_read_config_wordahc_resume__tasklet_scheduleahc_set_tagsahc_tailqahc_read_seepromahc_dmamap_destroyahc_reset_channelpanicahc_linux_releaseahc_run_untagged_queueahc_platform_allocahc_unbusy_tclahc_dma_tag_createahc_allocprintkahc_linux_dev_resetahc_search_untagged_queuesaic7xxx_allow_memioahc_search_qinfifoahc_suspendpci_set_dma_mask__module_descriptionioport_resourceahc_find_syncratepci_set_masterahc_num_aic7770_devsahc_pause_and_flushworkahc_dmamap_unloadahc_linux_abortahc_list_spinlockahc_handle_brkadrintahc_platform_abort_scbsahc_platform_flushworkjiffiesahc_intr_enableaic7770_find_devicescsi_unregister_modulepci_free_consistentsi_meminfosprintfaic7xxx_detect_completeahc_num_pci_devsahc_run_untagged_queuesbreadstrsepahc_probe_scbspci_write_config_byteahc_power_state_changeahc_pci_map_intahc_dump_card_stateahc_search_disc_listsimple_strtoulahc_linux_israhc_controller_infoahc_resetahc_linux_register_hostahc_linux_detectkmallocahc_set_namescsi_unblock_requestsaic7xxx_pci_driverahc_print_pathahc_dmamem_freescsi_block_requestspci_read_config_byteiomem_resourcedel_timerahc_chip_namesahc_linux_infoahc_doneahc_clear_critical_sectionahc_compile_devinfoaic7xxx_verboseahc_busy_tclahc_handle_scsiintahc_linux_biosparamahc_dmamem_allocpci_write_config_dword__request_regionahc_linux_get_memsize. {I-I-{I-... {I-I-{I-Bcp:inst_:finish.yINST_F~1YCP {I-I-{I-/Aupdate.postUPDATE~1POS {I-I-{I-wAupdat%e.preUPDATE PRE {I-I-{I-xOAupdate.tgzUPDATE TGZ {I-I-{I-{/** * * $Id: inst_finish.ycp,v 1.182 2001/09/20 16:22:26 kkaempf Exp $ * * Module: inst_finish.ycp * * Author: Klaus Kmpf * * Purpose: This module finishes the installation, writes * some files (rc_config fstab ... and so on). * * Proofread by Christian Steinruecken , 2001/08/02 * * user_settings: * ro: entire user_settings * ro: "mouse" * ro: "rpassword" * ro: "targets" * ro: "keyboard" * ro: "softwaresel" * ro: "language" * ro: "timezone" * ro: "mouse" * ro: "console_font" * ro: "console_screenmap" * ro: "console_unicodemap" * ro: "console_magic" * ro: "alldisks" * ro: "whole_disk" * ro: "loginname" * ro: "upassword" * ro: "have_x11" * ro: "root_device" * ro: "swap_device" * ro: "module_names" * ro: "module_args" * ro: "post_module_names" * ro: "post_module_args" * ro: "initrdmodules" * rw: "confirm_boot_msg" * * "rw" read/write * "ro" readonly * Writes: * [target] /var/lib/YaST2/runme_at_boot run yast2 after initial boot * [target] /var/lib/YaST2/settings.ycp save settings * [target] /var/lib/YaST2/infomap.ycp infoMap (descr/info) * SCR::Write(.etc.shadow.root, * SCR::Write(.etc.rcconfig, * SCR::Write(.etc.rcconfig.sendmail, * SCR::Write(.yast2.inf.rootpart, * SCR::Write(.yast2.inf.reboot_message, * SCR::Write(.yast2.inf.do_reboot, */ { import "Arch"; import "Installation"; import "InstMedia"; import "PackageIO"; include "partitioning/partition_defines.ycp"; textdomain "general"; include "ui/progress.ycp"; string language = lookup (user_settings, "language", "en_US"); string forename = lookup (user_settings, "forename", "" ); string surname = lookup (user_settings, "surname", "" ); map mouseMap = lookup (user_settings, "mouse", $[]); string mouseDevice = lookup (mouseMap, "device", ""); boolean switched_kernel = lookup (user_settings, "switched_kernel", false); // Help text for last dialog of base installation string help_text = _("

Please wait while the base system is being installed.

"); UI::ProgressSetupUI( // Headline for last dialog of base installation: Install LILO etc. _("Finishing Basic Installation"), "", // progress_title 200, // length [ _("Updating configuration"), _("Copying files to installed system"), _("Installing boot loader") ], help_text ); // -------------------------------------------------------------- // do things needed in inst-sys list idecdrws = []; // list of IDE CD-RW drivers for ide-scsi list scsicds = []; // list of SCSI CDs list cddrives = SCR::Read(.probe.cdrom); if (size (cddrives) > 0) { // build up ide-scsi information // loop over CDROMs and select IDE and SCSI drives foreach (`drive, cddrives, ``{ if ((lookup (drive, "cdtype", "") == "cdrw") && (lookup (drive, "bus", "") == "IDE")) { string devname = substring (lookup (drive, "dev_name", ""), 5); idecdrws = add (idecdrws, devname); y2milestone ("IDE CD-RW /dev/%1", devname); // ** must reboot switched_kernel = true; } else if (lookup (drive, "bus", "") == "SCSI") { scsicds = add (scsicds, lookup (drive, "dev_name", "")); } }); } // Tell linuxrc where swap and root is // Tell linuxrc to reboot on an SMP system // also reboot if the x11 server was unknown // and defaulted to VGA16 (no fbdev !) // // (see inst_pkg_toinstall). Since running /dev/fb (fbdev) and vga16 // clash, we do a hard reboot to turn fbdev off. Oh well ... if (switched_kernel || checkForLvmRootFs( user_settings ) || checkForMdRootFs( user_settings ) || Installation::certify_mode || (lookup (Installation::installMap, "reboot", "") == "1") || (lookup (user_settings, "xserver_is_unknown", false) && !lookup (user_settings, "has_fbdev", false))) { SCR::Write(.yast2.inf.rootpart, "reboot"); SCR::Write(.yast2.inf.reboot_message, "1"); change (user_settings, "made_reboot", true); } else { // linuxrc is supposed to hard reboot on pcmcia system // -> switched_kernel is true anyway ! if (Arch::has_pcmcia) { change (user_settings, "made_reboot", true); SCR::Write(.yast2.inf.reboot_message, "1"); } else { SCR::Write(.yast2.inf.reboot_message, "0"); } SCR::Write(.yast2.inf.rootpart, lookup(user_settings, "root_device", "")); } SCR::Write(.yast2.inf.language, lookup(user_settings, "yast1_language", "")); SCR::Write(.yast2.inf.keymap, lookup(user_settings, "yast1_keymap", "")); // -------------------------------------------------------------- // get list of remaining packages from tmpdir as written in inst_rpmcopy list install_list = SCR::Read (.target.ycp, SCR::Read(.target.tmpdir) + "/pacs_to_install.ycp" ); if (install_list == nil) install_list = []; // -------------------------------------------------------------- // ***** // stop SCR // restart on destination // y2milestone ("Stopping SCR"); SCRStop(); y2milestone ("Re-starting SCR on %1", Installation::destdir); SCRSetName ("chroot="+Installation::destdir+":scr"); // it's not mounted on the target !! InstMedia::is_mounted = false; // re-init tmpdir from new SCR ! string tmpdir = SCR::Read(.target.tmpdir); // -------------------------------------------------------------- // Copy list of remaining packages to installed system SCR::Execute (.target.mkdir, Installation::yast2dir); SCR::Write (.target.ycp, Installation::yast2dir+"/pacs_to_install.ycp", install_list); define InjectFile (string filename) ``{ byteblock copy_buffer = WFM::Read(.local.byte, filename); return SCR::Write(.target.byte, filename, copy_buffer); } // -------------------------------------------------------------- // Tell new boot scripts to launch yast2, once the // new system has done its virgin boot. The Write call // creates any missing directory :-). Also write the // user settings to a file. This file is readably only for root! // It contains a root password (in crypted form). if (!SCR::Write (.target.string, "/var/lib/YaST2/runme_at_boot", "")) y2error ("Couldn't create target /var/lib/YaST2/runme_at_boot"); // -------------------------------------------------------------- // Symlink (/mnt)/dev/cdromX to all real cdrom devices // create cdtype dependant links (i.e. /dev/dvd for a DVD drive // but make sure that at least /dev/cdrom exists. UI::ProgressMilestoneUI( 10, _("Creating CD-ROM links"), 0 ); list cddevices = []; boolean made_dev_cdrom_link = false; // remember to make /dev/cdrom link map cdnum = $[ "cdrom":0, "dvdram":0, "cdrw":0, "dvdr":0, "cdr":0, "dvd":0]; // link /dev/cdrom -> /dev/sr0 (/dev/hdb or whatever) // need dev_name, cdtype, define symlink_cdrom (map cdinfo) ``{ string cddevice = lookup (cdinfo, "dev_name", ""); string cdtype = lookup (cdinfo, "cdtype", "cdrom"); integer number = lookup (cdnum, cdtype, 0); string linkname = "cdrom"; if (cdtype == "dvd") { linkname = "dvd"; } else if ((cdtype == "cdr") || (cdtype == "cdrw") || (cdtype == "dvdr") || (cdtype == "dvdram")) { linkname = "cdrecorder"; } if (linkname == "cdrom") { made_dev_cdrom_link = true; } linkname = "/dev/" + linkname; if (number > 0) linkname = linkname + number; cddevices = add (cddevices, linkname); if (cddevice != "") { SCR::Execute(.target.symlink, cddevice, linkname); number = number + 1; change (cdnum, cdtype, number); } }; list initrdmodules = lookup (user_settings, "initrdmodules", []); // cddrives, probed at beginning of this file if (size (cddrives) > 0) { // build up ide-scsi information // now look again and rewrite the /dev-names for the IDE drives // as they appear _after_ loading of ide-scsi foreach (`drive, cddrives, ``{ string devname = substring (lookup (drive, "dev_name", ""), 5); if (contains (idecdrws, devname)) { string scsiname = "/dev/sr" + size (scsicds); y2milestone ("IDE CD-RW %1 -> %2", devname, scsiname); scsicds = add (scsicds, scsiname); change (drive, "dev_name", scsiname); } symlink_cdrom (drive); }); if (size (idecdrws) > 0) { initrdmodules = add (initrdmodules, "ide-scsi"); string boot_parameters = lookup (user_settings, "boot_parameters", ""); y2milestone ("old boot_parameters '%1'", boot_parameters); foreach (`dev, idecdrws, ``{ boot_parameters = boot_parameters + " " + dev + "=ide-scsi"; }); y2milestone ("new boot_parameters '%1'", boot_parameters); change (user_settings, "boot_parameters", boot_parameters); } // enforce /dev/cdrom if (!made_dev_cdrom_link) { string first_drive = lookup (select (cddrives, 0), "dev_name"); cddevices = add (cddevices, "/dev/cdrom"); SCR::Execute(.target.symlink, first_drive, "/dev/cdrom"); } } // -------------------------------------------------------------- // mount the installation image on the target. // Inform YaST1 about the installation image. // create mountpoint on target UI::ProgressMilestoneUI( 20, _("Creating mount points"), 0); SCR::Execute (.target.mkdir, Installation::sourcedir); // -------------------------------------------------------------- // re-mount installation media on target integer mountresult = InstMedia::MountMedium (1); if (mountresult == 0) InstMedia::InstallYaSTData (); // -------------------------------------------------------------- // saving package-information to running system PackageIO::installPackageInformation (language); // -------------------------------------------------------------- // copy /etc/raidtab to target if it was created if (lookup (user_settings, "raidtab_created", false)) { InjectFile ("/etc/raidtab"); } // -------------------------------------------------------------- // Symlink (/mnt)/dev/mouse to real mouse device UI::ProgressMilestoneUI( 30, _("Creating mouse link"), 0 ); string gpm_param = ""; if (mouseDevice != "") { SCR::Execute(.target.symlink, mouseDevice, "/dev/mouse"); // if we have a mouse device, set gpm_param gpm_param = lookup (mouseMap, "gpm", ""); if (gpm_param != "") { gpm_param = "-t " + gpm_param + " -m /dev/mouse"; } } // -------------------------------------------------------------- // Set root password UI::ProgressMilestoneUI( 40, _("Setting root password"), 0); if (!SCR::Write(.target.passwd.root, lookup(user_settings, "rpassword", ""))) { // Error msg UI::MessagePopup(_("\ The root password could not be set!\n\ You won't be able to login!")); } // -------------------------------------------------------------- // get targets // first build map of module names (remove duplicates) // then make list of modules as string // FIXME: should only include module needed for root-device UI::ProgressMilestoneUI( 50, _("Initializing kernel modules"), 0 ); list module_names = lookup (user_settings, "module_names", []); list module_args = lookup (user_settings, "module_args", []); list post_module_names = lookup (user_settings, "post_module_names", []); list post_module_args = lookup (user_settings, "post_module_args", []); if (size (post_module_names) > 0) { y2milestone("mmi or ppa found"); if (!contains (module_names, "parport")) { module_names = add (module_names, "parport"); module_args = add (module_args, ""); } if (!contains (module_names, "parport_pc")) { module_names = add (module_names, "parport_pc"); module_args = add (module_args, ""); } // collect module names, arguments, and modules.conf entries integer args_idx = 0; foreach (`mname, post_module_names, ``{ if ((mname != "") && (!contains (module_names, mname))) { module_names = add (module_names, mname); module_args = add (module_args, select (post_module_args, args_idx)); } args_idx = args_idx + 1; }); } // make module names to one long string // start with modules from linuxrc // write module options to modules.conf, mk_initrd handles the rest boolean modules_conf_changed = false; integer args_idx = 0; string args_val = ""; foreach (`mname, module_names, ``{ if (!contains (initrdmodules, mname)) { initrdmodules = add (initrdmodules, mname); } args_val = select (module_args, args_idx); if (args_val == nil) args_val = ""; if (args_val != "") { // we have options, pass them to modules.conf map current_options = SCR::Read(.modules.options, mname); // args_val is "opt1=val1 opt2=val2 ..." // SCR needs $["opt1":"val1", "opt2":"val2", ...] // step 1: split "opt1=val1 opt2=val2 ..." // to ["opt1=val1", "opt2=val2", "..."] list args_split = splitstring (args_val, " "); foreach (`args_element, args_split, ``{ list args_values = splitstring (args_element, "="); if ((size (args_values) == 1) && (lookup (current_options, args_element, nil) == nil)) { // single argument change (current_options, args_element, ""); modules_conf_changed = true; } else if (size (args_values) == 2) { // argument with value change (current_options, select (args_values, 0), select (args_values, 1)); modules_conf_changed = true; } }); SCR::Write(.modules.options, current_options, mname); } args_idx = args_idx + 1; }); // now check if we really need reiserfs/jfs and lvm_mod map targetMap = lookup (user_settings, "targets", $[]); if (lookup (user_settings, "need_reiserfs", false) && !contains (initrdmodules, "reiserfs")) { initrdmodules = add (initrdmodules, "reiserfs"); } if (lookup (user_settings, "need_jfs", false) && !contains (initrdmodules, "jfs")) { initrdmodules = add (initrdmodules, "jfs"); } if (lookup (user_settings, "need_ext3", false)) { if( !contains (initrdmodules, "jbd")) { initrdmodules = add( initrdmodules, "jbd"); } if( !contains (initrdmodules, "ext3")) { initrdmodules = add (initrdmodules, "ext3"); } } if (lookup (user_settings, "need_raid0", false) && !contains (initrdmodules, "raid0")) { initrdmodules = add (initrdmodules, "raid0"); } if (lookup (user_settings, "need_raid1", false) && !contains (initrdmodules, "raid1")) { initrdmodules = add (initrdmodules, "raid1"); } if (lookup (user_settings, "need_raid5", false)) { if (!contains (initrdmodules, "xor")) { initrdmodules = add (initrdmodules, "xor"); } if (!contains (initrdmodules, "raid5")) { initrdmodules = add (initrdmodules, "raid5"); } } ////////////////////////////////////////////////////////////// // Attention: for s390 inst_s390netadopt inserts alias modules if (!Arch::s390) { string install_alias = lookup (Installation::installMap, "alias", ""); if (install_alias != "") { list install_alias_split = splitstring (install_alias, " "); if (size (install_alias_split) == 2) { SCR::Write (.modules.alias, select (install_alias_split, 1), select (install_alias_split, 0)); modules_conf_changed = true; } } } string start_usb = "no"; integer usb_type = lookup (user_settings, "usb_type", 0); // 1 (uhci) oder 2 (ohci) if (usb_type == 1) { start_usb = "yes"; SCR::Write (.modules.alias, "usb-uhci", "usb-hostadapter"); modules_conf_changed = true; } else if (usb_type == 2) { start_usb = "yes"; SCR::Write (.modules.alias, "usb-ohci-hcd", "usb-hostadapter"); modules_conf_changed = true; } // now re-construct string of modules for initrd string rc_initrd = ""; foreach (`mname, initrdmodules, ``{ if (rc_initrd != "") { rc_initrd = rc_initrd + " "; } rc_initrd = rc_initrd + mname; }); y2milestone("Modules for the initrd: %1", initrdmodules); y2milestone("Entries in rc.config: %1", rc_initrd); // if needed, re-write /etc/modules.conf if (modules_conf_changed) { SCR::Write (.modules, nil); } // -------------------------------------------------------------- // get console keyboard UI::ProgressMilestoneUI( 60, _("Initializing console keyboard"), 0 ); string keyboard_name = lookup (user_settings, "keyboard", "english-us"); map keyboardmap1 = select ( SCR::Read(.probe.keyboard), 0 ); map keyboardmap2 = select ( lookup ( keyboardmap1, "keyboard", [$[]]), 0); string xkbmodel = lookup ( keyboardmap2, "xkbmodel", "pc104" ); // try translated keyboard.ycp first, if this doesnt exist // use the raw (untranslated) version map all_keyboards = ReadAlternateFile ("keyboard_db.ycp", "keyboard_raw.ycp"); map keyboards = $[]; // generate keyboard-setting depending on hardware foreach ( `key, `description, all_keyboards, ``{ if ( size ( description ) == 2 ) { map keyboards_archi = select ( description, 1 ); map keyboard_archi = lookup ( keyboards_archi, Arch::architecture, $[] ); map keyboard_model = lookup ( keyboard_archi, xkbmodel, $[] ); if ( size(keyboard_model) > 0 ) { // entry found list keyboard_selected = []; keyboard_selected = add ( keyboard_selected, select ( description,0 )); keyboard_selected = add ( keyboard_selected, keyboard_model ); keyboards = add ( keyboards, key, keyboard_selected ); } } }); list keyboard_desc = lookup ( keyboards, keyboard_name, []); string console_keyboard = "qwerty/us.map.gz"; string compose_keyboard = "clear "; if (xkbmodel == "pc104") { compose_keyboard = compose_keyboard + "winkeys shiftctrl "; } // check for "compose" entry in keytable, might define // a different encoding (i.e. "latin2") string compose_encoding = "latin1.add"; if ( size ( keyboard_desc ) > 1 ) { map keyboard_map = select (keyboard_desc, 1); console_keyboard = lookup (keyboard_map, "ncurses", "qwerty/us.map.gz"); compose_encoding = lookup (keyboard_map, "compose", compose_encoding); } compose_keyboard = compose_keyboard + compose_encoding; // -------------------------------------------------------------- // check for Kde vs. Gnome, see inst_xf86config UI::ProgressMilestoneUI( 70, _("Initializing default window manager"), 0 ); // window manager setting // see x11/inst_xf86config.ycp for display manager setting list current_sel = lookup(user_settings, "softwaresel", []); string default_wm = "kde"; if (contains (current_sel, .Minimal) && contains (current_sel, .Gnome) && (!contains (current_sel, .Kde))) { default_wm = "gnome"; } string lang4yast1 = lookup (user_settings, "yast1_language", "english"); string rc_lang = language; // check for possible addition of modifiers to rc_lang map languages_map = WFM::Read (.local.yast2, "language.ycp"); list language_info = lookup (languages_map, rc_lang, nil); if (language_info != nil) { rc_lang = rc_lang + select (language_info, 2) // mandatory-LANG-modifier + select (language_info, 3); // optional-LANG-modifier } UI::ProgressMilestoneUI( 80, _("Updating /etc/rc.config"), 0 ); string start_gpm = "yes"; if (size (mouseMap) == 0 || Installation::serial_console) start_gpm = "no"; // Set default values in rc.config + timezone + mouse list rc_list = [ [ .KEYTABLE, console_keyboard ], [ .COMPOSETABLE, compose_keyboard ], [ .GMT, lookup (user_settings, "hwclock", "") ], [ .START_INETD, "no" ], [ .START_PORTMAP, "yes" ], [ .START_USB, start_usb ], [ .NFS_SERVER, "no" ], [ .START_GPM, start_gpm ], [ .GPM_PARAM, gpm_param ], [ .FQHOSTNAME, "linux.local" ], [ .DEFAULT_LANGUAGE, lang4yast1 ], [ .TIMEZONE, lookup(user_settings, "timezone", "Europe/Berlin")], [ .MOUSE, mouseDevice ], [ .INITRD_MODULES, rc_initrd ], [ .FROM_HEADER, "" ], [ .MODEM, "" ], [ .DEFAULT_WM, default_wm ], [ .CONSOLE_FONT, lookup (user_settings, "console_font", "")], [ .CONSOLE_SCREENMAP, lookup (user_settings, "console_screenmap", "")], [ .CONSOLE_UNICODEMAP, lookup (user_settings, "console_unicodemap", "")], [ .CONSOLE_MAGIC, lookup (user_settings, "console_magic", "")] ]; if (!Arch::s390) { rc_list = add ( rc_list, [ .NETCONFIG , "" ]); } if (Arch::ppc) { rc_list = add (rc_list, [ .CHECK_INITTAB, "yes" ]); rc_list = add (rc_list, [ .DISPLAYMANAGER, "kdm" ]); } // allow serial console after reboot string install_console = lookup (Installation::installMap, "console", ""); if (install_console != "") { rc_list = add (rc_list, [ .SERIAL_CONSOLE, install_console ]); } include "rc_defines.ycp"; if (!rc_write (.system, rc_list)) { // Error msg UI::MessagePopup(_("Couldn't write values to /etc/rc.config")); } SCR::Write (.rc.system, nil); // -------------------------------------------------------------- // Set default values for lang.rc.config rc_list = [ [ .RC_LANG, rc_lang ] ]; if (!rc_write (.lang, rc_list)) { // Error msg UI::MessagePopup(_("Couldn't write values to /etc/rc.config.d/lang.rc.config")); } SCR::Write (.rc.lang, nil); // -------------------------------------------------------------- // Set default value for sendmail.rc.config rc_list = [ [ .SENDMAIL_TYPE, "yes" ] ]; if (!rc_write (.sendmail, rc_list)) { // Error msg UI::MessagePopup(_("Couldn't write values to /etc/rc.config.d/sendmail.rc.config")); } SCR::Write (.rc.sendmail, nil); // -------------------------------------------------------------- // Write fstab UI::ProgressMilestoneUI( 90, _("Creating file system table (/etc/fstab)"), 0 ); include "partitioning/write_fstab.ycp"; // targetMap initialized above (near initrdmodules) map zipdrives = lookup (user_settings, "zipdrives", $[]); write_cryptotab (targetMap); string foreign_primary = write_fstab (targetMap, zipdrives, cddevices); // -------------------------------------------------------------- // boot concept if ((foreign_primary != "") && (foreign_primary != "X")) { change (user_settings, "other_lilo", " -o \""+foreign_primary+"\""); } // no user for imap server cd, y2c_imap will create it // no user if not wanted (NIS active) UI::ProgressMilestoneUI( 100, _("Creating user account"), 0 ); string loginname = lookup (user_settings, "loginname", ""); if ((loginname != "") && (lookup (user_settings, "is_imap_server", false) == false) && (lookup (user_settings, "is_fwadmin_host", false) == false)) { // -------------------------------------------------------------- // create 1st user from installation dialog string upassword = lookup (user_settings, "upassword", ""); string uid = "500"; // FIXME: should be looked up dynamically (first free above 500) integer ret = 0; // back to console encoding string comment = UI::Recode ("utf-8", Installation::encoding, sformat("\"%1 %2\"", forename, surname )); if (!Installation::test_mode) { // FIXME ret = SCR::Execute(.target.bash, sformat("/usr/sbin/useradd -G users,dialout,uucp,video,audio -c %4 -u %1 -m -p %2 %3 ", uid, upassword, loginname, comment)); // inform the user, that the user login could not be created if ( ret != 0 ) { y2debug("useradd - error: %1", ret); // Error msg UI::MessagePopup(_("An error occurred during the creation of the user login!")); } } } // clear screen after useradd, but probably on wrong tty ?! // SCR::Execute(.target.bash, "echo ''"); // Run depmod to update modules.dep UI::ProgressMilestoneUI( 110, _("Updating kernel module dependencies"), 0 ); if (!Installation::test_mode) { string name_of_kernel_image = lookup (user_settings, "name_of_kernel_image", "vmlinuz"); string kernel_version = SCR::Read (.boot.vmlinuz_version, ["/boot/"+name_of_kernel_image]); if (size (kernel_version) > 0) { SCR::Execute(.target.bash, "unset MODPATH; /sbin/depmod -a -F /boot/System.map-"+kernel_version+" "+kernel_version); } else { SCR::Execute(.target.bash, "unset MODPATH; /sbin/depmod -a -F /boot/System.map-`uname -r` `uname -r`"); } } // Set default runlevel to "xdm", if X11 packages are installed if (!Installation::test_mode && (lookup (user_settings, "have_x11", false) == true)) { SCR::Execute(.target.bash, "/bin/sed -e 's/^id:[0-9sSa-cA-C]*:initdefault:/id:5:initdefault:/' /etc/inittab >"+tmpdir+"/inittab && /bin/cp "+tmpdir+"/inittab /etc"); SCR::Execute(.target.remove, tmpdir+"/inittab"); } UI::ProgressMilestoneUI( 120, _("Setting up swap and root devices"), 0 ); // -------------------------------------------------------------- // Copy /etc/install.inf and /etc/XF86Config into built system so that the // second phase of the installation can find it. InjectFile ("/etc/install.inf"); SCR::Execute(.target.bash, "/bin/cp /etc/install.inf /var/lib/YaST2"); // copy XF86Config only if needed if (lookup (user_settings, "have_x11", false) == true) { string new_mouse = lookup (mouseMap, "mset", ""); if (new_mouse == "") { InjectFile ("/etc/XF86Config"); InjectFile ("/etc/X11/XF86Config"); } else { // replace with probed type InjectFile ("/etc/XF86Config"); InjectFile ("/etc/X11/XF86Config"); SCR::Execute(.target.bash, "/bin/sed -e \"s#PS/2#"+new_mouse+"#\" /etc/XF86Config >"+tmpdir+"/XF86Config"); SCR::Execute(.target.bash, "/bin/mv -f "+tmpdir+"/XF86Config /etc"); SCR::Execute(.target.bash, "/bin/sed -e \"s#Microsoft#"+new_mouse+"#\" /etc/X11/XF86Config >"+tmpdir+"/XF86Config"); SCR::Execute(.target.bash, "/bin/mv -f "+tmpdir+"/XF86Config /etc/X11"); } } UI::ProgressMilestoneUI( 130, _("Copying installation log file to installed system"), 1 ); // -------------------------------------------------------------- // Copy syslinux files into installed system InjectFile ("/usr/sbin/syslinux"); // -------------------------------------------------------------- // Save cmdline (with DDC string for example) for later use by libhd SCR::Execute(.target.mkdir, "/var/lib/libhd"); InjectFile ("/var/lib/libhd/cmdline"); // -------------------------------------------------------------- // Copy blinux configuration if (Installation::braille) { InjectFile ("/etc/suse-blinux.conf"); } //--------------------------------------------------------------- // Some PPC features if (Arch::ppc) { string boot_device = lookup (user_settings, "boot_device", ""); string root_device = lookup (user_settings, "root_device", ""); if (Arch::board_prep) { // the PReP boot file (the kernel) is not in k_deflt.rpm // FIXME: this is one of the crudest hacks (cf #9718) SCR::Execute (.target.bash, "/bin/cp -p "+Installation::sourcedir+"/suse/images/zImage.prep /boot/zImage.prep"); } SCR::Execute(.target.bash, "/usr/lib/YaST2/bin/ppc_postinstall.sh " + ppc_boot_device + " " + ppc_root_device); } //--------------------------------------------------------------- // Some S/390 features if (Arch::s390) { string root_device = lookup (user_settings, "root_device", ""); string boot_parameters = lookup (user_settings, "boot_parameters", ""); string zipl_conf = "# Generated by YaST2 [defaultboot] default=ipl [ipl] target=/boot/zipl image=/boot/zilo-kernel/image #ramdisk=/boot/initrd parameters=\"root=" + root_device + boot_parameters + " ro noinitrd\" [dumptape] target=/boot dumpto=/dev/rtibm0"; SCR::Write(.target.string, "/etc/zipl.conf", zipl_conf); // append chandev to /etc/chandev.conf string chandev = lookup (Installation::installMap, "chandev", ""); if (chandev != "") { SCR::Execute (.target.bash, "/bin/echo '"+chandev+"' >> /etc/chandev.conf"); } } //--------------------------------------------------------------- // setclock if (Arch::alpha) { SCR::Execute(.target.bash, "/usr/bin/setclock"); } //--------------------------------------------------------------- // On SPARC, set the right device for a hard reboot to find our // installed system. Modify the PROM parameters if necessary, too. if (Arch::sparc) { if (switched_kernel) { string silo_device = lookup(user_settings, "lilo_device", ""); string reboot_device = SCR::Read (.prom.path,silo_device); SCR::Execute (.target.bash, "/bin/echo \""+reboot_device+"\" >/proc/sys/kernel/reboot-cmd"); } if (lookup (user_settings, "silo_create_promalias", false)) { string silo_device = lookup(user_settings, "lilo_device", ""); string boot_device = SCR::Read (.prom.path,silo_device); SCR::Write(.prom.alias.linux, boot_device); if (lookup (user_settings, "silo_set_defaultdevice", false)) { SCR::Write(.prom.boot-device, "linux"); } } else if (lookup (user_settings, "silo_set_defaultdevice", false)) { string silo_device = lookup(user_settings, "lilo_device", ""); string boot_device = SCR::Read (.prom.path,silo_device); SCR::Write(.prom.boot-device, boot_device); } } // write final user_settings to installed system SCR::Write (.target.ycp, [Installation::yast2dir + "/settings.ycp", 0600], user_settings); SCR::Write (.target.ycp, [Installation::yast2dir + "/infomap.ycp", 0600], Installation::infoMap); SCR::Write (.target.ycp, [Installation::yast2dir + "/installmap.ycp", 0600], Installation::installMap); // debug SCR::Write(.dumpto.var.lib.YaST2.user_settings, user_settings); // -------------------------------------------------------------- // driver update ?! // copy /update/install/* to target:/tmp/install/* list updatefiles = WFM::Read(.local.dir, "/update/install"); if (size (updatefiles) > 0) { y2milestone ("Found driver update !"); SCR::Execute(.target.mkdir, "/tmp/install"); byteblock updatebuffer = #[]; foreach (`updatefile, updatefiles, ``{ updatebuffer = WFM::Read(.local.byte, "/update/install/"+updatefile); SCR::Write(.target.byte, "/tmp/install/"+updatefile, updatebuffer); }); if (SCR::Read (.target.size, "/tmp/install/update.tar.gz") > 0) { SCR::Execute(.target.bash, "/bin/tar -C / -xzf /tmp/install/update.tar.gz"); } else { SCR::Execute(.target.bash, "/bin/tar -C / -xzf /tmp/install/update.tgz"); } SCR::Execute(.target.bash, "/tmp/install/update.post"); // remove driver update dir SCR::Execute(.target.bash, "/bin/rm -rf /tmp/install"); } // -------------------------------------------------------------- // message after first round of packet installation // now the installed system is run and more packages installed // just warn the user that the screen is going back to text mode // and yast2 will come up again. // dont mention this "going back to text mode" here, maybe this // wont be necessary in the final version // we should tell the user to remove the cd on an SMP or Laptop system // where we do a hard reboot. However, the cdrom is still mounted here // and cant be removed. if (!Installation::live_eval_mode) { if (Arch::s390) { // for s390: // Message that will be displayed along with information // how the boot loader was installed change (user_settings, "confirm_boot_msg", _("Your system will now be shut down. After shut down, you have to reload the system, with the load address of your root DASD.")); } else if (!lookup (user_settings, "made_reboot", false)) { // Final message after all packages from CD1 are installed // and we're ready to start (boot into) the installed system // Message that will be displayed along with information // how the boot loader was installed change (user_settings, "confirm_boot_msg", _("Now booting your system...") ); } } // -------------------------------------------------------------- // Write LILO (not on PPC) UI(`ProgressMilestoneUI( 140, _("Installing boot loader"), 2 )); if (!Arch::ppc && !Installation::live_eval_mode) { CallFunction (`inst_writelilo()); // this will also display "confirm_boot_msg" and make that // user_settings entry empty to indicate it has been displayed } // -------------------------------------------------------------- // Copy YaST2 log files into installed system UI(`ProgressMilestoneUI( 190, _("Copying installation log file to installed system"), 2 )); integer log_num = 4; // maximum number of rotated logs while (log_num >= 0) { string log_add = (log_num == 0) ? "" : ("-" + log_num); log_add = "/var/log/y2log" + log_add; if (WFM::Read(.local.size, log_add) > 0) { string logbuf = WFM::Read(.local.string, log_add); SCR::Write(.target.string, "/var/log/y2log-" + (log_num+1), logbuf); y2milestone ("Copied %1 to target", log_add); } else { y2milestone ("Skipping non-existant log %1", log_add); } log_num = log_num - 1; } // copy y2start.log SCR::Write(.target.string, "/var/log/y2start.log-initial", WFM::Read(.local.string, "/var/log/y2start.log")); UI::ProgressMilestoneUI( 195, "", 3 ); // -------------------------------------------------------------- // Check if there is a message left to display // and display it, if necessary string confirm_boot_msg = lookup( user_settings, "confirm_boot_msg", "" ); if ( size( confirm_boot_msg ) > 0 ) { UI::MessagePopup( confirm_boot_msg ); change (user_settings, "confirm_boot_msg", ""); } // -------------------------------------------------------------- // Unmount all mounted devices (from inst_prepdisk) map mountPoints = lookup(user_settings, "mountpoints", $[]); list umountList = []; // go through mountPoints collecting pathes in umountList // *** umountList is lexically ordered ! foreach (`mountpoint,`mountval,mountPoints, ``{ if (mountpoint != "swap") // dont umount / on target { umountList = add (umountList, mountpoint); } }); // now unmount all mountpoints in reverse order ! UI::ProgressMilestoneUI( 200, _("Unmounting installation media"), 3 ); // remove [Installation::destdir]/etc/mtab which was faked for %post // scripts in inst_rpmcopy SCR::Execute(.target.remove, "/etc/mtab"); // Stop SCR on target SCRStop(); if (!Installation::live_eval_mode) { // first, umount everthing mounted *in* the target. // /var/adm/mount (Installation::sourcedir) // /proc/bus/usb // /proc // /boot WFM::Execute(.local.umount, Installation::destdir + Installation::sourcedir); if (usb_type != 0) { WFM::Execute(.local.umount, Installation::destdir + "/proc/bus/usb"); } WFM::Execute(.local.umount, Installation::destdir + "/proc"); // *** umountList is lexically ordered ! // now umount in reverse order (guarantees "/" as last umount) integer umountLength = size (umountList); while (umountLength > 0) { umountLength = umountLength - 1; WFM::Execute(.local.umount, Installation::destdir + select (umountList, umountLength)); y2milestone( "umount target: %1", select (umountList, umountLength)) ; } // disable loop device of crypto fs integer max_loop_dev = lookup( user_settings, "max_loop_dev", 0); boolean unload_crypto = false; while (max_loop_dev > 0) { unload_crypto = true; string exec_str = sformat( "/sbin/losetup -d /dev/loop%1", max_loop_dev-1 ); y2milestone( "loopdev: %1", exec_str); WFM::Execute(.local.bash, exec_str); max_loop_dev = max_loop_dev -1; } if( size(filter(`k,`v, targetMap, ``(lookup (v, "is_lvm_vg", false)))) >0 ) { y2milestone( "shutting down LVM" ); WFM::Execute(.local.bash, "vgchange -A n -a n" ); WFM::Execute(.local.bash, "umount /etc/lvmtab.d" ); } // does not work in 7.2 // boot.crypto fails to load module // so we leave it loaded // if ( unload_crypto ) WFM::Execute(.local.bash, "/sbin/rmmod loop_fish2"); } return `next; } #! /bin/sh KVERSIONS=$(cd /lib/modules && ls) [ -z "$KVERSIONS" ] && exit for k in $KVERSIONS; do [ -f /boot/System.map-$k ] && { depmod -ae -F /boot/System.map-$k $k >/tmp/depmod-$k.log 2>&1 } done mk_initrd >/tmp/mk_initrd.log 2>&1 lilo >/tmp/lilo.log 2>&1 #! /bin/sh # list of updated modules mods="aic7xxx" # rebuild INITRD_MODULES info: # - add all modules from $mods that are currently loaded # - put them into the correct order imods=`grep "INITRD_MODULES=" /etc/rc.config | sed -e 's/^INITRD_MODULES=//' -e 's/ *" *//g'` imods2=" $imods $mods " # add all modules that are currently loaded for i in `cat /proc/modules | cut -d ' ' -f 1` ; do x="${imods2/ $i / }" if [ "$imods2" != "$x" ] ; then imods2="$x" imods3="$i $imods3" fi done # add all modules that were in INITRD_MODULES but are currently not loaded # (there should be none, but who knows...) for i in $mods ; do imods2="${imods2/ $i / }" done imods3="$imods3 $imods2" imods=`echo $imods3` grep -v "INITRD_MODULES=" /etc/install.inf >/etc/install.tmp if [ "$imods" ] ; then echo "INITRD_MODULES="\""$imods"\" >/etc/install.initrd cat /etc/install.initrd /etc/install.tmp > /etc/install.inf rm -f /etc/install.initrd /etc/install.tmp else mv /etc/install.tmp /etc/install.inf fi mkdir -p /y2update/clients cp /update/install/inst_finish.ycp /y2update/clients =update.tarYtSUI^+MI)D26PTI҆f5%m/3bO]E+-_g΂3i :sft9Ss8eI ޗ6 :2;rΞ}}ÏV’%K˞ ¥%Bpq& @Mv;>ݹ>~[Ƿ&bḈx2/ZTQxMq+ Ғ"ñ" om/^\r |=7m|ۦg8.h/︵c_. y tvv7E0bAosKύqqIqQI"~O?ϳjN_b^ LģղDWbhX1R}9k^ Z@m-%O[Rԑ'D^_T/|:ItĂ[15JLcGǽû:KV$hT* FZzBd{\AQ Gۢgπ=QHbb:I]leW*ꈞV:2N\z uC@uY#* ,bUp ?"uOdRТ$V:6dq0a^g)t+&I/B6zՓg+!tXg?V Á h8fdd(dq8YlsG&n >iS!KBp XoM*vVXZKlanbnKG Cҭ';٧!e$ٓsf}q ?@Z56K; 0@AIjaUUjD `(SDۄ6oc3ɓAM5Ȱ.X\Mzs$灈 7_=ޘP#f:{MxlBG6ꦞyYrhw Wi9-ns Ļ:Y4wa? v2`n{ȏIWi?jPߟс;^Cu׆T/Wׂh/Q3 EoiyJ~@v$3,C"x`i=ʽ^F!ZShv')7BG>Ҵ# yو C /~\a2De eL=OBYR?fXv`lT בJibሩRc޿y#qJ)@Eb?XN=>r !!`#C; DV(թTORSZ?aS$6VcFi.Ye@i;Pw;rȠ9N [@wmw_ThzO&@ឫ~I2SsbRm}gxs{8#RMd2:~ Mp{>r<^CuV-+~zڴy m,ãcP}nYcCZd!]ڱ]rehaVbnF0uvhŵ:N9X+;QXcp-Ll3<7Aٍ^!WRJQ6hUlH?("N$83B1Shvs9(☏ż8,UIA9 IY)6H{ja*!]ݩU/#PVi3` =Z-בC273F;kn͟?d<[s7)IjWJKG} Gl "PJyC#9g. X}@hУ44fŠ8=ܞ5lPڇmNo=μs.Z%v? Pfjb4{#(=Jp Dԫpiz- i:G,b&Nd:uwA#POfUd[-'yl~];Wm {Eb5_yj? m::bH=s23^%#C0uEǜMFqLCh8pTq!R@9C4Õ)tsXGb$s|N6]kMb-qe/8b"BH,[XR=")%Y`''U5W8 -: 闾.K菑񢬍r<@=m~GWb;`hCԓ$, +dK{er0ܦDEwU+#>𱾶j,mz(i iw@&Ԭ-! \ܹQ`vv>F:;cXx۲>e:w(=PYV5H|ZIiM=# >yCet t3Éy` Q{h_ă=Vʺ)sC![mT~jgh !MkxZ ғ&vuB gq1[fΛiPJQ+q eg:/E4-"I_}idkvbmfR 4Gpb,a2\? }!ǰzBG^l3`--d7!?ʣ7Xz) F CQYft %rL"ԏ;l@`q꛷K0{1H; OYTsŚOD*.y=2RvnճĆS{ 6틩.n&:a$0N 3)e:9Lظ=f㷧=Ҕ4C31pKJH(vV(mm耎Df'-á -hdp(&l*ZlØ=d 4l cH![xQ3b]0qN'5C TE@>-׳؞"Z^+Bѻ) q'/ ybH>,=QV;f}!,hG(\CMmZ5{3|ZvBzKci-$PL) - 뱹aa-'Plײx XMm]gj)K gu t6_Rxu@~PZ.iA0m.2OS%-sQ$zEF GqC|cbcdACUҧX4Z!t K}sYxU[3:̀nJbW<>86Wљ59=ԋ'BF`2Bu]U:NbCM^z*R!Z$j*Y¾8ȔG|}Z ĉ$x0̈| H*r(MIj$\RI)!LFxJt- r"J-!n1C6G;ě7XCRѼKV0S e ǣ ԣ:%4ūt>UMJIfQe5] Xu[1|*oo_[[,G70~uyT.NH*ь'q4r&]6;c [=uDOFT#q`5BӼ=SmOCT/oI^c{ z2H5Cvp#,fҳ ȖZ&^@PU~/֠18tO@`VہJsΝt |tOp,H\5).a UHĄLz,l2!ɢ6Ȅ^q~pg.X::_1qŮգ 1a@ ~|whf5҇1`x͕`*j "zE lū[_K(,68S+wM=$A_@ʜ^3,FO*v%WʌwCC}zE:El{m NVR%|H)ĽDy&m n5ܨ5 ej.)C0IoC7ORLRa_QlJXшsrcש 4AS1!q[gV"<ǧއquvj1R@~}"xO6e\|o$^>J~.$(됞n͉yniaod+*L`xd ƗI$g.힝!DvP_z^w=hX⠋`pS4M<Z{5Х KڝtV$W`pxR alZ!s9H ;96P|:"* Cgg.aq bbA$l`J99a彩o2u`FҔ1Z9q;"n痈 ,e?e$;VL2girf,rJ+^?Yٗ1wI^΄PHS,31p SJOϝ"(Ó;HƇX㣗Eg(#I>NXv}i\?T Tal|84q֊⤗13>{rε)zDΩHԮ$ZTFN`¶qn>8_,*Aɩ5 Z{[sY!LzƧ9bCڷQ] 1e[ȶH Co ]IgܐيyQԥ[~vk;#.edRue;?>'R %%@qsFkΝ8>wb7O6t_> ӎpto"gFg| fB~;lS({{ưWB6k5ԀAܩ^JS[ca!¿ jb_Ů2 E`S-8߾3{ڷ#'^ANڏ掀j݌$aau)pYƥ!&"' os8085T2Иo v&7@r1T94GRccƥhAx}zF?ޞbԽA-wAsܔ,`s؋NS&!Z~ "pҬ{̋wEQ&K~Fl5pS'7bhMd7QQ?DmtlVKM#n̸ʡuV\KN V2̻)d$/>>XxG8>F;I;n"RF`k#χߚтtypQtDX![xOt쀡ˡGZ-Pz{. EenHXP)z+Zokύ+h}tǠ%Jv$:Sw[ǚ>D TX{qۂkJ wlK6=$74uǾ[z{KɌGP.)zvAߕʻyIj6'ѥXc(-PX!wbwi¨4B|#YU4mAޮd л:$Jbw& k0 e7+c~ۻQCީBm(RD.R<Tl[Jymth#_V[+ƴIu,gUwߒKj?=c?daf2 Kj,ڑK\άBk%{U;ւʍvv̚(~:p"Yp AʳhtUw%m⛺u, ì:N[nkp2@Vh:S MM&WL*^XwwwD0 z7rwOnT?`$tyDZAx`RVFťLX\M:nH5&ޤX ,y!Nm(сLەCa@m:ɯuh*VqlIh_g7mb8> =Y[o Jd"kP>TԓTONZi+\'P,Fhp8;nkF@|aspzC)V7ؗ[;ځn2| IQwDQRuvY;6f5 ".\6k"Y:~^yFèG[$u87"FKEJIW$9/ b&j-5 uP 6PzBu]\CRaB0zkMU]{mCnv_X">Z܇L#Pe~%4BX7U~x8H?@V8c}Ąڠ 7+HedʀipBK{;RY,}Nb[&?LFWCQAUwJI|ݜ.ҬU~ G=H;]Fg'RQ?L#qMGqM.whLAn@6$$ynRJWdқvkɴ!4(X 9\~tp)[h adƿz1@ܭ[yi#Ѫonmc]vviLݣv&ǺZ'8OP𰾙@ZDX7w)zGS< igw;EK, tX7T_ Vu Os϶kr,|Z헱 ]CǿI03Oˡf@g5O8vWAwL-W~~S2諭h=<=I`K;/-NnNOԏh@?=J0}MWua<_4vBQ8"5 oOZ7$_ WJrExxqV;Q%a⧀ buZFy9tHQo]Hٞ Ċ o="#ՁL\[>i0m,VM:ykO{Yu Z뺤 \w3YW0Ba#85qz}>z1hY q>ClaFg0:06cyj%a.aΧ#13 s=hׂѭp#Ad.Y}Br9 MW u\u%i' J:b-ܻ2otn >7jx^tLʠ )WH_jMPƚDL Q[w( {/8uӀ&;E[mRآ0HT!"飿ȎG0g8}퍛mOzG:s i|߇7Z4y}NHۃ ursL. +bDgUN V"6OBI׶ Lý4`8[>HPH) ) ?%bym=d(eMewSjĂQ|+*e}jr#zW;n}O*dTF]d lJwY :n=!_.kcߞ hL\f n?8 §կTQ<y.̙ Oda'+b͒/%ƄgJ;~<+-%/NN~S{Lojk\_b(|mtSJSw?0fA[t|z;z~=v2JHPҚѹ͡g!"J_(h|BEFAg}bT=𭤴!,WIV.w9^ȃZkTS5|evM"Ci4 ĺ0sˆ>fոDf0IU1HZ&ϖ{݀5`p/~P&O[uD5=Gc;gwu8I1^I{ikx9soL~po6u:u8W^8=JA;ӣdP"K>@4Y!B س !|:wMmH;0@Zs׆ZvM6֫c{֍kwqGǣgIVhܧ%A-v%=^ӯ}VϝJ;Yq4&OW 5X\C~Q" br&D -9 aOjG#1i[iok%}&<t>˗1[SIQGL`?&ZbRu*#2`Sg2\$& jRZAauóV99U󙄔ΩThM ]hAPVuz{ mW]Дcmx5CŐ_Ѿ#⶞+XKpV&n+~^꣙T?!0~8 477 veym r8`̋>Hq>%Aud#\Z+d `yt Da%b[wM6xSqOUJ{q|\joS@" |K9s_R<(ND KɒPv,er,F?WY-.ݹ|} /FN16ot)oªM7YMĞă ɽ-d'ϫLžޠ nvO^~CN_`v3WgԈ;c -3N&θN5 $ cR2Bέài4J'*yX4Y4ɼ! \.$HyPCa*uVpI9PU/a&I~bQ~PLGH1&Ɵسk3!JNB1{`(=<;yωg`+l:7H^Q&&u7r^ v1hؾA:R6?`WHF;`/hO"@z BB1tRlPOQn6T'FT{a.l%j_7ܺ|a|0!񜥜.ݮ AUBrx$[yV%?sPXm2$VI}Y{sO S0b?Fâ#4#ٟ[EݽF~VRekg8nksE[LRŖQyxjoƊoAbP@bsb6/P9+<|9IƔtʻC)Ϣ~@=|[ف)[MCKvvrpU)<ﵳ;W tpr d+Y)[zăQP'-E73i^|OND"h[58'fr5h#8 Vu/3N ah湮8\Lʲr1+XMLv(J-xK5bal/v"u.G@X@?i GǃC5JY {QSgB|Yze<j6ɼ} .F˸ƹjF*Vݸ0[kT?J:tA(ECub^[j>-ÑcWO#LՆ.+?lz?Vj)YoM:x3dz4 xxmquuFGUrR'⠉lFuuK|s=>ʰ:nj;M|e"Sбlȯ:xw(0]nxܖJ$:xJ"~ 6"H0?q3deڛћԜ TN,IJKN<{v"o+?Oxd>BO,7?,[~be ''b7FF~bC*?,K~bقe '-h \NSM,233k-ի3x>"~ Do 9MgiM|IG&P^72/A}8V#WMEݡluM Z 2:%/9G~O!w=UL;xϢV98^er9t#DdʌJ-rmj)^wP!??RT uu"b5\^Bm]Ž9pdTxG_/_1@-PJ*D̸1}[tN,¹YR|0zgJ8!Dg%(&8`=ocHzK%{r֩[oNݝ*cn-::0sWF⧜֣cR}|R1Egl6 Ukǚ(32qWɅfX2lX(fi9J(ɧͼϊj[;KWL<V %+s#^|KmRw¹\o`=0=y:/fiF1,Le83FMR#'=<"r$~J?jx ~<ѭ?O]_DCK'veΙ8΄SC=+Kߜ-t@/]_<?+Ժ<1KƜ_7f~uB#/^\}h8%OFcO>ȘໆthڍzWpH!w4FGKbZyNԎ]$k:e񀛪m:' |4ҵf{]GtdU[:Wp7d5-VS wKnw$,bUg S'JzFZG4XMybaV9t_N '=+E^W'BD;w)3d))eN|U$UO"Q:I=AR6y8{}iAs { 9lQ&@iU _9ܡ~g0|"QϿd Q4Sېi2" 6$It@dnɦyD94L^faMf"R_ )z]6l"odkJN^-^DH[8NgQ 웧S]R}Y^h3ofua}$UƦҬ)e,LC ?̣ l } *).ѫ-O@D` ]zLi_,-1'HU<2lTU,Nr"C6nƪckڋFe&ѲA8EcMʲnbQ}tsFE6+K+ 4/l^aZ/vrS:3ПXPCVl9ʑ~x_\],.\3%c9G3iR^ "} y<(pgI3|  ?-dm/6sJLy1u7kc Vw0<& 9F:q4:&pqᣐC9!T#˴ya,GyI=eR7b6cB A$<-?<i.|ƻ@›[?+E؂$1t0Q{jOݴJg,gׄcQ؃s"k5\vS5wt9ϫxzLkX6EF<÷:#D6Q!]{P"?EUJj3S;9~6Dr-]@"J_cX_}s?xN|Dq)VyLG$+Q,#> ^3>z3H&TX$h<֦JH3|)jctQ].>ioݙi,i/QV, MM  G**r=+!]W܏㪅Zk[iOM^S>k_@)\,Á{xN@&s,?"HenI!w(lRM|èjz:!J}(7فyF~::*XgSïl@#U l2b?ahEY,I6 ٱ&1g\?he@r]{- ws,9޲@V.#$ځ%|ϐdA7%>>m|Qr{0 BT!xuQv&yY5sZ jU ԊS+o^u'7ؓ &A`h? swUXCv@7w,P7n=lnbf"TZqFDNBqBgZ^n{RrJ֍yzq9oj/}Nf twm7k/ȡg-8 sb2OAyg0AYӦGF %0[ 3˧^\Bur--S2oLRm[t?׹P&}3CJ}d0$V$zK=psbqɱ@#F?ƾ1Kҽ_qt0ɱ<Ϣ;|b4F~f`ķ>E4D)-Ō9.R XÑ}D~^ @HcG})ꑇy8כN72ijNKo@J'ؖ-m,->eao$pcc0[2_Wjgi&>R|&Mzwz}:]i6m&|@7 ,p\_6YXN _TRP('3 X χq'ӏn՞ \  eP]56#mH 'phE15 s1\Ϻ<QVZ{t7.rگۂ'svh[#b=YYKo6:)r'{# ˨M[,5 R@XМn( .u@C@}KP ڬ,HkpggwjN(#D_n.?2y H<[^Rg>HǼ77 t3΁{z(H~%sN> ʁ 䧽£.287N0Q@)48)A":?E 1Ιßr[վ,XӤɡx̿3QY B|<<+ްPjJxT' ~x5zr`'#ީӧuIF0RLjVI% {(?N)[L@֤iH~ԛSjv Ѐ {SYਏ~tC'W97bP.29 Gm' IHE;8.Iھ3W'yi鴓 NCXc8I儜&N'Mƣh<gbeuw$_K.ѼqƏB f4;7'l~Gl skuqrOR D4K'Xc Z<9L'3R o? USmJ9k^]O#n3μU~=8 4V2p|Sձ OO+ J@RU&f*DH?;ÚQ`??**(Z~ 쟛6fw }" ~?WJv(gK`])>査_슏.Ol裵h)U&w"ia<Bwjz֎G3<ʲՎG)Eg PIo/BŨZ@uV|ثw8>*DZʥGd'}Dotiy~m6W λ4QyhzU9M hXLBR$>ΐV%C@Iy|h7z}0gZb5xb 8Yg#n Jw8Z "MUWBAaL[TFnS4('Cܦ6qB:xGG+^øbZ;J+ V_쿖5xwnof=Ygd18p]œ3A%3?AphXz%k5$nuC@G}#NtkKx8ۙfn͕6BfbGfKbOwYGVʠLBOٚ’=zlRoռ, ~iF48^'J1 8CRJYʙ#/A &:b*n0{Rq@ݡj8=?vaQ'`~ˁ eW 2|r37$NE`^U=|Jc-!&oR8E2^ voUt^nU1/=[̢!䴤C{ c6y=.ͥ Ǘ믳c-?BRFMUtodSUmؤ*g'qUï _c/v+N[* |&+r~ up3~Q7Cy Û) 昉{ #>pEoWLYP1fmbeK9'hve ^9g^u os:< YGVS3;G<ҋ(v;$aD{oNĶ܁2]B.?'Ϯ-o3ie}#^gu8.O՘O^t6@YiCuNwe^xSI6Os=+BKI6.eEV󋬅ELpȞ.nLCK1(ҙ΃=:3{ha#os(1pdSgHno+V8a]K*kVY| 7X.!P^iy ?q>; ȯkY̾S^՞v_/ t}ˊ$m5Ih$o3xg8nU69B{e[do #0/iGl~ 6`2~Btˆì>Z4͍~f;NZt y#v>>fe ?dG63_@Z1>zMdfrڇV#šU {BuܕJu ;!z $nՃtN7=@32(Т_TX:?0AieE>1 sqwF=NLyᳺ7"fS٢u@Q=f5jq}{ai5N&OδF'0뎀>x):?׊7yv6zv] r$Em9Ņ]uژ-Z]Uʼ C,2^;τn9Zw" YJ:=}}yyG_DJnBw+P PX5`IJ@ɕN.\MSf{kt޾WX"_/8޽蹘!ys* 9I˷JZgk 캆w&p?9ҮORsG]F^5l4HP5_y¨qb`RAĥ+;U6~|O/dslٿ8[iOKT+#sfkavPEh^̮Zn#jUF`70Q Q>?o:u `ox GÛ aݛdXȗ:vLyO "NS]upҠoثr_1tv/̵ʓSӅxрG SZxsFHah/,f 8sЈMFZl}F%h]yK~ e=xчZeWT=SAu{Rx7xtFP (q<Vi20)6hm ~󷈗.q!L[ +e$&(Ỳ )>ly=sרR|q5[xThKaʏrYG^ݯUo3kT8Zlpe`Fz]k].B٘J !(ht `WrJӃHK0= =*GFc ˚a9|3-OzoCYڎ_)-kԉ_(%_4Н.94','cd::D{r畁(}/K|d/+M/I_ZXR3*0 Md{ wCUO׏Nyݩ`2~e;eBcIf+%ⵉp7},O~&h WdЃsY/?o[WvBF#tYnK65;&_^Rcсa$ K^,wH?2E^rrr,zRRf RWND8ddƫW:iRq/_l?^\߭&# ızil0^&ů-=c=[Y[LtUN6<)>dH M 4 #W&1뗔9$\C^Y/+h׹=-~W_9d\>i 0Iדу\1G^pY&znݍ|n+/K%/a_텐_" EQk#c̀#c c #UZ/I^f]Rzqy]VpKKFJ_* ~?|!PqCyϊÇSv#x>^"%%zEw~KXax 30V]3fRngOλ/gFMˑoEƳwvы(Ⴌ _FX^ZU Lvg~awzL9/5y7Z.ho0ٓ|r;M LNhG *0W9Rh)m5`OhTKb\}j\v}xfYH%X;rEHNǻf| tDᬷ:-O_K^vc& ̝qOwt%sŧIpʌiUP{8]Clp!"Tc1?1VxOYT ߣJ~Y U6}gX{ e{0kKC]tayԥu3M]NE9/Ӧ_ǃ,=PO^TbO!ȺLwPiG*yñd }PM4L#Ϙ9L>͞lz]+x;FV]/ 8lc${-U{!a)gLGEA'!sTwi an/a=32}fSvmo>f샎1#h{@6З<"U'!VʖE{F˗k Q`R4trK9z)B9ƃC{[ѯuqy2?YN%*VKq϶-N1h@):0Y7>[ps؉ާkN [oT?Й?wU97aԩ"YNt@ 1BG[&̀eg+ D0l6 $  B4@H ̍5r)~TM|>*Nl_?ʗC. tx]!U;A"_ vK FX PM Lhw6N%d Ȁ lWJ$ht̗|LJj-`%+1L*cbT"Jn;ѿ zk [oaV@2ZsR<w0,؈X{ UY Xh!Neo1i0 DPLg~?gQ[KN3^goOMNG~tf@CY9 =mr^c (g'sV5E卍NwyEW&Eߐ{C$!sޤڎ2J*wZ؆nU}0lTdQZ Ln4K}2r{PQtw> nfFhѬ` @1 f@cBƒ-ŇG>ó8۲h7;۵|~K(ȝC 8 Sw%S7>u.IN~ׯ_(oį䬚1WxkOb8;*6Zl.9sS=e~ dP=ꎾ [d1?Ju5"7 }Bkx7mAXmvj*з <`1EJNc5im#84?Ae݈``#[= Ah 0:ZEpApQCBP# @Ճ Qku[.Fݔ\ܰ)eS@ 3.YF|$})1@j aE)bG_[E(L%Ok38ˁE@. ȋ@6^"/b1I|) BM]̺iwe!%0t)x0ȓZݫ}6?ӡH:4H&]=dsQX57M`c1BHKe>u 5fH?6\xy W=yG|U#ƦD,s$Fy>/tHɔN:?$J*|5Z ttl|(t^y9 牱]D$1ڞxV|gW+D: 4 Je.9|#BN1TxE*AUP^;那>+逡"a3A|x1=;sOW=ZϲI8BO%Fq@rtGA@ѵN Q]Δ@*뢊+5xa$8 [? TQ3wAp,blg;=PGFp"=}NakUu:1L!0e4'`(xd bV1Մdr0tcC9gœp6JtΌ4pfeugI{JpNgJԩg􉉚S3{˄gM,<*:DȲC_`awJ@2ی;75Z?Ô-o&ʯ4נB^Y8YW@(YM*9۳cgB\DX>/9 }NЬ#K8Gȕ/wsA+>R3/ { %as۬xPs1oo5f]'&wf#!TѺ\ڻ@RZXǴM|h5qJO]/,a 2ԑPUtSX8j杬^:bQ{!^;2!H ~SGrwM>}S0pyݚcKIc[ǡe#1~W?w )QNZ#[ONxJe45C "&hcvq6Vf9,7Fg2! 405͵'7q:> l?AT@"Z " !VzJ )%Ng:8ϱ9\Ȃ3ƊRhFGo@Q{Y*x^oޫYF!Pz8m4gqN}٧ܘj]Ych [('up迌IVѰc)º3Tq'FG6׺rk|cڵ>P$l$Oqe8j 8GZ5i/Vܬi9<*V[E ^e3 JMM !ƀρ?5JkyPL;Z#XbAŢa<\&ncF8K\~mV0^/uT/E2Q^.wO('e:u%s+_SK8-AA5AEfg.OZ\If} *q?4驄8V]ȸ"vA\[zB?"Y.PwVkEq(¬xƋ↓#?QڃtIA{4yF;1IxBoyibEY),$l-)qmVv#9 OJ2Vo'&gҢxvOI/;">bz$9 ʎoWoHͰžp. !J &!a*vD# PW~M\G`S}?dV٘fφR/yZ`< wA%_Y'\C G{M*P<0fM,#3&G9\,+L܆ 3 KCGvo/k1 rl}7yb%A29χѾBÜ $Nn4=q U4gމQ0wb O}s3<4nqI| 0BhO&s?iu^ؠ$]3ޏU!jd-~E9$D*cʰV{bJ,hI@s  D70j!*C}O&~sXm7q]Mal V-x ^}u?7* Tō5pj<6hXߢ[ʧF>UvI T%2)R$ 6>GSeSoJ gS:U1wt4oӧSCb>^}BS=IiI);'[2 ѓC7n|@z&,yx5!=nLڻ3 GHJv;Kӱ&jwɿJPVJ}?qn]~ZvYsb(cҜrC|WIpi{ԟaƮx"AZ]5C<8BF9ǧU#i{ P*q PWoW3Pomq@ &E<'% NAu%JJLΞ2j>#:tF'\O9^FT}a)q8+!(~_6S (Ǔ\%8X⢐m9phpr/-=uRQy缝^,uhSBo2~%@{3 a]9|ş)ad!|ޛȃ G9#NY (>TiqМW>kϲUx;/'N֛)o[v!{x̟jͮZ5M;rW|b<׏n6mɦ-9r9`x=!֔!g#ĂSTG5,[GAEA'11o#E)̷I,8k. &lov'ḧ́tS4 WOm䙙Ff%6':nV!a7"}T7|ZS?_x~[r| slElj=Ɔ7r:":(鈸rØDG1}Bw=|>4HNяJhĶ,蠫:VfQ[Tma>) LDRJ 5OApr/r.@f /_h X_o%O1 <_lsՃr.ټ 6! Bo[3]mm [,$+ MC1C5ꅢB}fx2h_mMpZ=Cކ$ˆmVv.2ueY$ct :61ƞ\@Rer7J1mC_>|B+ u8Ch08cHxDcfʪ0@;//_B )8VOYC5vTIdj!PPugEjY*\9v a@4k?A9WU|zq$ZT:|PεrMBf2MH!pB&  +q:"\C5Q`a2'^} 3fY2 Ke:cP}(;db]w1k $2A'PC"B:/uHM a:Dgm8zƯ*g~} ՙ)L+C{x020|ѱ{%ȷ*2{}׬t 0BiG?/O:cv\)dR"?{%2:=-JT◘EZoGrZU:{@l~adA!g33H]ɮ͹*Y?[.SQM\NN|Q[BvK(Sž|5*݁"˳&EibJG4HZ7ttW%wI?+t:{Z!aj =:MWS"~+gXCK@=ھ1`ԲCv be1E "CP$ҵY}GOsu}QVc&X_q%h?c&JI6QlU޾ iܢ{ਪ,+I'u,lp%5 ! q2l/ ,e1VSX~NBPw#XnQl lH`s}םN38g{w}{ι4O(&* ]=/fXlG,@LZ%[zj򭁱,s1\Wׇ1v4o6dA7:Hߩ3u]LjT rp0BOe?\:z-u l}t-}@F>D)Ӎ9zY 2wtŒͦ~Jqa#UдBotG*V,U\h6C#&|ϚȒ'C*M%ϺI+Q="(i3_E oN} 𡐎5KhdaO~w:Ʒv\P2>{"rw0h~-7`-^)+Xm5VǩlR| aA+G$H-R}BnGSM2eMp\S$Nj& `>$) QFFd(%vYbaL˖~mvk*i5*$/I>=In2k}R<6MRD+lDfߠ%#qV[I"8F?dK?݆vu~;YI lW° >4 Oeս\8cE= ~[`=q]0 h _*?|&5#Ku(>K?)LE3SROH|lH4.H1%)QE㙵3fyiCGwPsax⯶}R2wtVo;_ "+r"\LN7kWFL45Q)XRz-џ-eyP:Mx%w Q |*x(6닋aU]b\X\hU%0!nTFB~l+0g@͕Ffzke3$ŽZkN-z1W*_ cC'mi 6&}vd uDQZڄKD~H9cE]g-^F0!X'qiZ;߅"l36H=۴(cϠVϫ"38KTo["P`W^vkZ8ri]>v^~엎rW;=ʶg_RؖAmxdPp{duhۡ:p|)/wb9 Έ?+?o<=~&/8+gaOG~r E+~?Y^$Ia䮗 ^*t7_InNjCÿhzl:9 *{^[ lAʲ/ڞL&o=a!LuY9;s-W)+tEdِk<.,䧷M.hpa,Y>taLy4 C{eNӂꉟU+`ӧf&)ͷDoamlPF-ٴ=W"?WBXDB~h38ieJ=k5H| U-CtHA=1@5o%ޓuIk sO.4\\~T)yfM7@;?[$U4NZ*ٰo\Kb9%(Ք'Sp-ͷ׻jI!+ v]Mug.YT^ q';+\|;K}шhR4#%ЦM>761'!WnesEAm|E]w2yur0ZwlI(qzOF{|Ns:Tun oy;F|1>+()isq]Fr `2׀w t |y|N?r᭠؋3<0D1YbjTJVd.WJ9(z'MpjШ7ަ_ ; h$vk"X| ?=g{l[( k~  `ruyO߰"+a{6p <#_N~,`jo pi!s}GHnM#",V s!6g\睍J8shФRe3r e W%(<X{ W)i|x2㢪"_VFu}s~N;5XSPYBupfc _}=j G 4=:'kDoOL#we?,uXXw[`ƾW#>¯ɭ±-ai(Ocvw䘚^{zzYuS9xME{a'~S[ 7h=^۫M8 Ze U *U&N5:%D %3*YaYAƸ6ӾPDgb-<%JROُA^,3`ok4KSR8!nZbH%r7_f&9CUјiȍg>#^vY8zE{k+-j\"Z\.;QF5 b0Zcְb cphouO[PX Bl}bf XI6=>̾1€,Yj%{ }!z.;=6c- 8ge~Dϯxi9"cʏn_腰"d  -ϡp_-O㼃@>_0D/,ю4uĄȫ S7$ցE $M^!4-|'1 Mkr~+qpS v`4us װ4>8% $PB.*<("Z/H?ӯz!zȄ 7~:Fyq-mKKmvpkڜRw92—H\`&-0tSXǔ*<!d@FRTS!8Hs F"M|\YO@.q$p]Kգp>[ҘF(~?$~R8hXrzYrzV};\O}zz}KrȎԭFGd#k73SfpqDS٩95db/l;jxvf/"K0q-PT~#o5)j>Rma}]ڸmA|fѮ.HTLˌn+T1SX:5ԍ)%UKq+{aqQ5=_i-&~<`nWc 9 C*-O _ 9Bsݡ7ɲ =೵cwz.]T$IbB>PsAĔC$CؚгY@&KBXzi} ~ ɆSQDLxPIN%B(5`{ڸ}-+}=mpSWv,lI8؄ Itr1l ]e;$}l> N6 D!EldI3i3](YɤΔ.!3;M&!t[B9}lgy{{ι{{3hB~>+Lw,|m.lL{[\Z0^im]TOnT_|U^yR Wv 裩i2 4K*5?pIhK[=)O.'?9p ͳT#B]ܸ7X@8AE.O^NT}~(0sD/}trl_AT}q侸Lɇ{c9O2dqN17>3ۦl8J?^7O]HWpkb}։6/1.B2:oܢ|x9= ;uZ]6!Z~3zQ<-Cujj#4^24dV\{%ӃJ#ǎ5j~rƭHuK…^#t] ƍ-^qJ G// MPوzx [|Mx \9`.U >G:Gɹ w;@uŀeKVe?9#]~G0%ts:x_Âj.~YI۟+y𤱟r`atQ`u.D #FUQUvp/|]@σj߃.̓4TUg4ޭڢ~{rX2ںh]w *U%;OU'wy C ܋+q[d5P10 i\8(6S [<?Sx}i8;k\L`Wܥ{q<:tG0!˦x1v /t d}H5qKm9 ?E)(MG_KnFYуZO,ߚC5]DW'iq\1}Zib.~*v."8{.ÊNȮ̧_r 6񯟯0(vXjgPO<]8UxAUCa r5~ˢ:,V@Dr7K^`{6b x6ySVR`CqVncj5NTX n=[*Lw gB·' Do %_?zvTÍ#>r1n?no@jE;Kϧ]QɌ?¤FiNJ@KÙ[^‡ȒG\l.M x|蕐oeVB%χ|:'rCVfpO1VSK|i?9 9*gMB tI7ε+ @k*J.n0np#:bK7pG#' ~DwJ1=B#\>^b W[O,3=#zQz_Zϖk IКIÚyцZi֊"Jh+%3pwZs8˟Cn)m3y{vg|<6Rp)yytTgץ/p_`l(5 dփi{yK">ҿ̓4/w28qZl԰#^|'6hej C{K6Ko d6Fv5ghsVhDžSbqښzAoUPWl0R,VX+tz*WzO]UCW)14[/;/sV[c9D2>.fPC'B FT | >K8>wkM0,֬uz +)o]^ҵ٬ҳMJf4d}[Wdv6OS3|g,djLI4K9M`2]?110ےU5֧'QX\IJT2&gTg@R/:5IJzJ{Q ?0sd%J`YBOe$33^=UeH)]4\1@jGJ{r:xxq3IQe24Ye\N{=qyZ2ZZRwl#6't2TדN4`4T P8bٌdS)`&! "DSY2Ԓi1Ry&grܤxflZly2 _26$@? YaY%.+"eT)f.7ZsrFwI0i'My"?'nJKBl$`H*A*O1)HfEâfT6uESY QG^4$& Rc@Z@tFH6̤Rj SғP6y鱕%CD '՘f#p2p4Kr3Q@יv-AjQu=˺ S2z$mow޺w`FFOKQ2Ā2hhf~+ZY<*2m>'ק }@'.i{=YlVʀ":o>IӤl}q&!,"R*Q$NuURX;> {ӮPp`[S𚀠lU 4PLlDZUɱdb&W(%Jų5Rft~z%gZpNRU/Ю3z6$3*F, sRciЮv, F'aulB  v 8=H%E@jRU7 ݁ۻN6FX儤+/e;W21vt%kZ>mnwQmƂ<>@-^@52{"끪M*&ՄU_ C#8X|ЅOI|&E{A*.bQ7]_Ѡ$ioKюyMVtQqɊUIhS?d4ag@L݁Ю]M~kgA#h&̣m); ̆޾~V"8ϟaL!qDdM})-K3r-dU[)rbD7LdJ(aR0B @1`hUSy4FpTi=<9yx"%o +,8:tS`ɐxtԭ}Nwu[G 1$0@ۋHܴ بtڨV Ux:n0X[ +hg0!{,W_OM[ n#b;aY>/u -t=t`tpN3UD50F9vzmx꿉҄=TeS_^6MInToZPddx[=o>M8H( 5E +{&Yb_{uC +k0 5sXj/H4PB:Y?4H@,߹s>[ ׏ј"iY16Ԉ̳cqOLhOùX6CD'ӌ"o)%|_$?obhf h4*X:;B[><6n }F6$A, D`ANT4  aTHI 1A{[| Ю#$L^SODa~0hX*럕cYT4Ue?wՈy^B)ւ7epڈD㡁)03[džGq˂cn[Qu7:j{M^Gf}³2\hpAV 4 jO GÃኄu>V쐔 }-ݙ잌aa=Po¦ՎafšYOr[~@hh4y(m FG#[+rO$GA46LJ$- qLjnX~JR5~ˇR8ʇAZ ɂ [&PB _W@ne8::-:8ux8¦Aċqy=I5Ai|٦ FAʨ5 a'Cέrf6vV0ȾYU*liIK6)RlC"esC[ơ-@g+i50$w qrFࢾ 841` 1zNy̒/}Xvggޛ7y {2Ƹb Jdˬ.X; ֊Bl&a\FKSxAԀG] ey_j#p1zǂTތHtGs1!hh<i4OwIpWɿo.G2 @bC_ c1Q&84c˙yj"(GAj&>n){ݾ`*Ʌy A z1ҵۿy<-Lz]DB2D96~ hX_5X^:|\ÉAc@ahܯ^iڐa.CQ,3|->UnwFTក!8柀e,1Dcpvl pF? A[z6!PPD)c/-*̗ҮBלG -rvaS z 9Q?쏪QͰh12y1xEus_n,Q-E\|:zu׌hE-v}D]\C9L2 qI0/ :e1 M0&Vq8hx|)!^^,rᩑƣ&cQh+_X]"~ mBܖ(SDNcS|c6fv"N љ3k[KOCs_Gmtz;28[lc|1,m3^h*2әx%!c/!nz o~eޮk G0zVs/jE84:ypeb?^YrAG%P(7Q8 /kSP:s.0YUY:ZG}SX"?Wضm"0`BZ ">c󰔁O@_u1NC$*jsc̘d8j+[c_bX3A'%XچhFsE|s\nTV]a"- ;0B}>v(Q(/7`:0f~~ظCL6bP8x&T!G^T[rahf'ZȨ:2D#,ԪO0yYzǸ5p,1Zqt邇s8Iy5gDqؙǗ 8E0q36,Z8iq8bK14ݙ!cy߫b"$iU:};< zԫ E^0κC 0缟EE$`²Gd$q2? 42U0n,icLd@ѪX%sī6yIjMM\krۧ_^!rQ:+e Jl&aJcyRd»g<ҥPP1f~*[kLi{aټAU1jJnZ0I[Mrs?D6I2vz@I߷{ t\b"IgWg waoV7ᖬ@.kLVIܡt  #;%džXkP i'[F6Osog_tg#Nza1DZ s<#s39(3cZv|َIi>!Hcs3xG7N!sǨa6Ӂ+bh;P$g{n=x00kd8J^-yA9}̖m?,0!ˬ_,Zf*f *\ ظ.MgmE8K7 A熽DZ?C&j0èa|͜4; asFFql`֋H=?`ǯ$I+RQQv|xDjL׈N4N4ك"*kva]SHǺ1Bwi G yҐcyGW}aU븃T ?C.A^A%HUdń?LfDjJ=ԯ6oЗϏ6LJVI>5s5IG‰$鰗tL wcO`Zrz~{+ ̿ ڹ{Qր74p^q\JNS ϖdwhAW\~# pmڛY[DwCAsǰ "ø|ȼ|=!ijz.$z٦P߼߉$#uGK2egO/8t:sI=Hzb:|.hS|bB֓W ~I|쓽)(5Z^Z.H'R:PvTrFX'Zq .muXGK "M"-Տs|Օ|qN]@cݺ}lcS`ۦ=m8_s UaT9uZQ+hhNI''|\Z#UΥq{뻂my=91_goz-H9?4x--}&ocqzCn MA=Sa]t$ tbt0@)O&ͨįMuwM!е  :O+qK(Os4۶T%yJuxu2P*ݒP<{=ҭoG!/lяpׯ}kG}v||OZEhgB&@ɳ;'-N80X= s\E{)^?qI^rrDc0_sv BNVlHxce'ߪJ6+ׁ&3[8J妱6N'eSkju 8:poa\~=VJOJNa|4@g1 $cJ;Yi{7b_ɳgx_c~! ʟw/ɲsܤ|nZˤ:m}bso&S>!eg坻m)d+_k.zɼIz}oO?O=VZ} mn/mFHm*Y&MYM'PV1b//zx^?e?ȿ.ƑIƆ)z Eyi1 ٦)GEKO};Ƶ!ƵL%vot'иjCugǡL&uʄU[y؄^ ;39,۪|+&]PjXIPo_8uZki qQoy\渽O17[;ccy Sd2'dBuN7߃hB;3l[>C eOzԿr}_&%slx}fx3|rqLS3oe+[?x>4/;_;|P~;4}L8\~?~{_XN#'NaYݙ ]_fgen9|~_Fh^w]ݼ%>kfίN_:y{/ܖ4{?zg߶}qn}Odk?):ܮϒ7JزL8h1Me&bC]wNx|对K k Ț,\%OXSٞM9}%jvb=ރ(s3Twx*_92n92hy%]s5'+OQ<]$f!NSz"8= j.5Zt:ZdIL5h6U okwky(?o~gWͯMQI3+)'1Yy.(邉?L%]>ۦpÏe<5Q?M}NJssYok+7_W\[£<+I7(Gc9\\-*|RӤ\WI *^}wWOs^AՇroxhGK<14 BmMz=]B)rWmzwkmCkEnr|ݥE{cbؓ>#ycڧӒ>'}rb3ě _$j?^$/5ue~::5ݭINz' ͐z!P㮒sN|;3j؏$噭:C'_N&ǤSA@zyә;W+UgzK5%5 fM9\TАP;udù MEdHBS=>ɳm{,~s~'m/٣N>Rm%f?Ƕl;;1gWX>MjNa;$6u$6MM7ħ]w=cCF{,CݻKoco;ŵN>7qc߻7} MuEC/߱_&pOߎ'/#?$6t7߿]yv{|So/pֶ[@t/Ǜ;ѿ v>EN-V;w(l޻a?=H'2ܟ1:/۟1A2:tߟ3:F8$'Cv.uMt}V|' IxcGSQyf=%ݪ^S.%|o->;4?ۧCD*y(3/"_* cO4|=8|09b/(}ƣ$;Qw%?Uz!ߗơԞ8VVg+S_߽ՠFH0A=qrMU/Pvzz>o?qZ^k7@/dqЋٟ^D珖y0; _+׹cgD!Dˠ4^EttDn!'_QmZyMw\Gtx z2gjʽxw<}סlkOd} oQ[ce>]Q-DAzgPv~S1QN~{&I=gZ:j3YʱaRj,^3 }ءag(4EE3:[y7w})RS~#{WyA_J+o< k3GLEyߘ*%JJ^I:#D˕/&m&ow4iл6^3%HAhLYgkCf2[?C}ޘ-ߙ-'N`h\ c {s%A:b5I.'o%t>9Jb 14:Pzj _>ʟUxF;εj?"ajHx:tK0|xᆖCG:z56ELНQ>G٩NʙjzIcd\V-z, ~1tR폥2|e?g|~P7/eoJj  kvR_1hm3e9s u].˖ j~(H՜-WWs3Skc 寒~7t*)GT˥^Br׋}LBON54 _83 %^)o!싚>\}RsGϬ 艆vx%>ɸ,›Rk^}أu,dC?F5r5Z Zkdy:f(b3W7I}GY|$,%<=>#{4@lnj[$йQo}\oz7V)cf {/I~US EnonM{z{7HO3tFE%%ݗ?HM!K<;<^-ch% W˾jJ }v?;o7s7}zf) ͒2]{MjV K=J]5@oAW>-𕡃X(U^awWxMơ>﷡;Nl|>TVN0)7cRǙx\ h`5|HxY=ە}C}H!Hg$|un{FS?+qܳRyJ z-V߭O?+[%V U**ްUʽcR??'ϳ}˂.5t[>mw$9ׅ\:Gs%/M{/c?=I?CӠ_;t.rGw}.us[WzM쯃4v}#?Aٯ ; J,|+F󡆟5yx~+x;r;Sg5>j^?H$~x|_(|.{~v|Wi~{o߳)>:`دTߺ>{{JdB|`Ÿɼ}(}"A1(_Ay~?(Qҍ?~w7u}q. ] yɢUb<{u/)oy\v΀1I?hAgN`ӛytf^МT-7CgJ~kZy"Cw) !%:Cxߟ&cU&'+j\)\fby154|C9-JӅkWS~ _Ӻ݅z0_cheKz|;:MO7xT')|oOiʏ =<Mo%oQzKɽ/-/W|Vyx_}t}o~[='1o]?c>_3NgGf*O'+_ʛ4ʯjו2_G}١T=d_١,T(7װϸINadءt4_Y3VүXJm7Wx]VGKc$]`8Fsqw1R|>g=o%}hJ'J(t(ϿuTCy߭c3mC x)^2߲_ (Ts0Yu!_y/z7﷡GͽzAߐ!͆A44 JB14( M>nh O*>e ӆ΄>c<賆.n5\ ncǡ/ }+Pn>gC@unzC_A_z@C@BrBAwppy;j:fՍTnSݮCUujUjj?U0ՀjjչE kTTש6nTݤEEuvUTR/jj?U0ՀjjչE kTTש6nTݤEEuvUTb!u믚Oկ:L5:E@ujjjjj&uͪU7nQmQݦ]ujn6=G믚Oկ:L5:E@ujjjjj&uͪU7nQmQݦ]ujn6=W믚Oկ:L5:E@ujjjjj&uͪU7nQmQݦ]ujn6=O믚Oկ:L5:E@ujjjjj&uͪU7nQmQݦ+'>݆-'k^o9n |*yߥ:7Auh6D^QnG{C'ΎPھ)R·DЩ-PN}t.Tn%-z\y;$wC x/0J8@tCЙe*OrhrTn}FRnuhp8_g#<8UO47y/ˆC޿0'telhQ富];9ت|+n+c>k1nY.7>[&z?Y{_+=!bAomy 7ܝ^Zp"mMnϟz?QCX%HeSf(xy~1VyQc7oߟewmշ0IiyN7_wV{t~>sOKqIF{z>}3p4G<ݵ/3mc. Z+oMw}~frPLWwTɌw\ƌwyxG*fS*F+Ghx sPw`m:1VxW9d^k,hdyW\fΧ<%YI;}l`οCM!sODꋵBrWe6B_a~<bKsW_^GTxCry> >yӍD1o峘"@o`]Ct^) 2>}̜~%̚榵3h./gs5:2Ԧ|%^ srǙ[6h~/bK@'<{L1<ק;M0-;mNv|+b{)b_m_<Њo_lbc_<1cܶX/{b[,vŞ1Xd1fugK|U̳,>ϒY]ِGug="n?" 6591s[<يoWY|ݘoSb~!F2gg0`q^~OfNJr6F-/bj__ih,o,^t>)cze՘yD8h?W-y #pGZ؇:<"bG4ZT+GX83~*.>MޑKD#v{o.=;7k9^Q-QGr{hq/`n9_Ŝ1]gM~8.t_↿syO?[>׋hn4G"$|x'ʣ7KΫi}ڻy}=T4c{w?IOg~:FOdj?2op3kxV%_ {;;dzV#ۦ3S`|#ѡtoZ3`|,gny8ޫ_w ~e.*t]XMK?|e_mlEwąXC׿>rQwChgq|$1wlʮ_T-̛vZE$HgI-|3Y_-DU$!|^|Vk{=GF0w1?sxOzLbwY}'i W sW3|^ƭsܗhn`タ+oo ,7tqaC3gZ? ǥO}~-s4 gnxJ"<_h{}O Yڞ#3̛R)RG׿`nI;?y;kxY\Fr?^49y]q[8GɌV~E}Ym>7srr//x=QVBOci1s-nAޯ{ gLzPng8\PX]J KK3 KkjÕTXXUSV_*\T* "pMu{ⅅ  űXPuYP[.-떷k k#5%vC4TYjg*Z^XR_^U. UG9VEiaz (2T*`., -刅KC!+.\bJ;q4TW_kUw V֔WRMm7OttW$ u̳2TZ'UE* Œhh!jGB!_TX}4A `7nY1w~btЊZ\YYSyDv%rٵj\vpˉ?_V\]֡*=uu+2WKth*7.7*"hPUmeq] u\U)԰?ǎ' ߃oF_7rF,n 7i?M+Q\ƈee71n.c\H.nL7m6Mtfi3ݴnL7m6MrfiܴYn,7m6Mvfiܴnl7m6Ms3InҠ4& I9&RSʳZiM*w&vMFoTԵEatGO=:rݱfYnYqe<1brk[[NQ2\. &=X I1':cx`, 1-t'iZҚHR]_UXZ-. -ZQ)+ E"5WJ %BIP\WZ12d@!oȍ7 YxC|I% Ɨ4_Ɨ3/d|iű{~!Z(C`+җ).ⲲHFVpTf_Z\ WuGyHU`se2Lpoe8]Bj"zfȃ9Z0$#T W)Eա5H-3SscNZZ}ԻZ.$_}p5Yinp%(/.fԳQ[DM<;j|S -ޔs[_uPU\U\[XZbLCNVYS\P]ҚH(U,<K퍑Ax25˪Q.7vvbNN;*X9.Vn\7m6MuisEpjsiܴyn<7m6MERV@PDVˀ,Y/`d 䈈c\t?%k.겫nPr%CWlEܝ;Aqx '(^OPx;1K. '(NOP=A{3Ս\ '(OP8@A f7"?((PP!g+kK><)Yp%.ed-{mM `)N!x8L=.lb Tc>Fuhkc7]KIw0eR)+$ mwiۄ#%1a*ﰂ[n b!‘%/ U/j6;jJiiu;^X]¨n:߾ C('T~x^=s֮ ˋq\ֱ {g';'v>LPd)ьyG,fTvG<`"<ˊūz~z슊>Vm.FQluq$ݡ,3>w)3ǟP>v5 Xe;]Ts+YNȪӸW/h$-Ƕ-)<[P$\tqj[d.LhښeܘB`M{Pm5 !I&.R#\qp$a}Adg;?ioy [lYM$vu{֩Խۋ u<-#7?jnu7K0>c[#eg>-5etlBpdNw7Zͭ㰬)/au©ClpqCupdZ\E,^}kx/=zٔw8 _rgǶnU[,TRv խkN{2#$U܀ISQ$>ԝ5]d&V/Ûqt$_yXPX^Y^\l}uJJ<hmc.2W\wc3duvT}5ԛ:n&@T:4M?#5L:{Dg4ED6uyCvH,%˽4ㅡ+ds6tĎAacDj+ G֩ Ebs\ë櫨uݮ?*v`0ktD;< ԕ*6cQEQ~u%~Rq[.\#':ّYN|:G{شe5!k?vrݴ&\P:L* D5(GЫOpzuOeGd 9y3O(8NdrXݟx9B031 dž.џ Y1-?u?1 Ow?Vc?̬gqG<5كpr;ecHc=bu!1FsvnHryMp0# $ĘĻA6Dbp0=cF#~{y鮮Zp_6-ŧAk?b%uk,;ZncW\l"E,#aRN@:ϮgDSR?m`L⅟zmcI5YE埩Aփ|naiDoAw={E!KL11Qt:a܃GEVөU@l 7F.y?,Ғ7R0䛆 ~w}0,Kah?x5u\%GumP}5]C'f?&W {vQnNsiQyuWMʽxvAp8&PpC^M#EtZAz&-?l"|&.(R%?>M GǏ!Y<5z.g]*/ޠS*ѣrYA؋wK q7c74^ %{΢@G,ԆJ- @w%z9cB9f)ǥX/E%kcnȩ`$*`Kxs~bSQhi4DT?p8q$tG?I>7q ?2b?i8w*`ƯlE~$8t8AA RS$jW9}|P=8jqոY>||>oս&;*P9h#bK8c٠ڬ/wn 3jO$KURm @\d#8%Mm;Ćm quVWwZ鳺vrBE Ok8K.z` ׆QV8]wy+yRʻ0 kDWӪ&!/T?b9kټ!6f@ ^TVY `k|/:# j+:4b#oZ>mqYyk5v'h uٻt} 񖺤_[R= &鬒S0W\=!Q]TMqɉo#CH( fA`w3>1Kj|_EOLS;KTG*Ξ'wRu|8G&(sy9ֻ0A /%n8nᖶ E ‘1 ?Qv][x}|'a5zA5ymhH C^kC`]e~wmf;;4$8a RՍZZE"zA(lWho~UnUZp^2rE'DXȣT.9xqeuD.a!ԐAYFu@-ZHI]ƾhPRH+ӳH I%Xˋe|JW-ZecNVDd2=[ޟTǪەo7*0|QOóC߼T)n}2٧Gԏ@$G9 R.$L +6*rbNQ.ʀR++n9tI@6 Ze0nHè9"ac`{ N.?1 C cb|m7MWA/z ITsSn \j&l#zhxjc#]>G*<9IkE$vs;EcYVQ9c;އ`F`kxK'h|FZI$JÅ^JG%烳B"נ[q ԋR }4 .`JnZ\rl"ʱ;36}xAhV|) vJ~ R8PVV÷SA(Se&2XJe\lO}Zpt@qC=<^І!]18J}ğa6s =$MkeˣYբ(\x+~d4/Z[.#mM{Ngp]*5r˚q_\>%U0+q|bU JsַN9v! }e-q3$0mnd x?HM!.- gNiаX[%I^̟8&黋z5\8ye>N*v/BNXZ$}Z@5ֲ/*.Jͻ=I}&o~-۾E_71-ӌۀI)0Yށp|Tح(l"Pֳv./- u=[Ux[C}m`YZ %}5yZ{--\.XP]^C}.6 zu?Oy;X@ګݖmn}:֡8mOW:ǟ/"ML8 !zhDԕi^[i? ٍA=qYΆ p/F$]NCbk]zma(FGĚa}I)_xE٠6*4.E! zHl(YToʜőIR}SR9}5NP>P|~)cmĻ1 Pa(s7R>4%FcĖAޢsT=JY!W+O>VxqQψQGe#դ2xXCi{(R >pOvl}'ޏeauR6 1yG (鴻㾕xV?pͲ ;w:#(!XKyR8}g[Ɩzu=YԮU.evK[#u@8[v c\ꏑ ꖂU{Y]9K;՞e [ߋ [W;.'P~|ݲ|+b*$6I=/H i<ғw$ॏ[c+NjVbD5y:5Ѿ=8Xͥ 5ZW6N+pBUDlU'"_Ec9 b֛& 4\BQp~a0{0# W¿:\ XK) 8BKi}rux5N*7IOjok }d])>S)fh>9fRe3.)x`af1UXwu&⡅~@x|n󻿾8XuBO0SCNnඤq=ѓ-U#bx.F.@cp3HQ&)iԕw1]۹ɭp9+A'Z7.XjGOqjB!d'Y\Ҽ1PN" =grMdp IV68]e] 8F)oHu9!!jڅXuGi&g@yF>Ք ;AVvDb>Qh#2m|Ս %@crlCZ72gcŰK2?R,,6r)*^g}ʏ'hp(0oճyO[ͻ u R\vvT{ qڂ-oٔAO?^FpcUA7#uw+o=]΂nIgI(Fyx4)} +QR /LUkI..V|Õzo4ٕu90`vHiy`^,mʲ /y ^޲w }h's"HqqPW@+9HlKdiZ|ၷ k'FĊ&V1d \PrYDy| F)WpT"Ueq|򨣫թrϡjQ9N.n7ʼwֵ (Vs,N5ƇFש*QZGPipc1'Y 4X6uc;XȫG.HfXh1oUAQJIH%T9WFٵۋ2b5^U FjrT6Q!Hhxm3!]@eZij,شײK<&J[2Гiڡ> Y.Tuv8|6x*rp@ynKmnYJHbr}aj)Q <5&E-:~^/Z%/z#AAc =')܋kG 6rl[C;=ׅ%6ԪSFB|v4elfiHM-Yq`ƇWh1+˧w9̪Q]/ēid5A=+\=Cs&7Dj|=H5I#5$ViVB&jԬ .#/f 1iW/HԴOv9Wx*]X79A`>"~ѱa3N]f;ΝƵ. /K~B\ jZ7hrU+hop+1{4]%:zVV~z㨣qp%TolV;nAZ]dA"<}'hk8ͮݦ|w^$MN#/oۋaSM;9/^UG bCwK|_Ud^Ry8Y_(r&)g\e_Ym{/9pڱå7 7?kU/BBtg'0!z.?LAp-JM, 7+t+gjwhzf<ł.[[MJm:Fi_6*\ w\km d.ߏ1Th۪mFkR63ݱCG?lF:~m= mnNP=yvڹ~G \d!ל &tDbkf>m `RyXڐԱ!`=0aHu+kzΐ;!ޖG?AX[M}/J3Iy-dmѣ .M$uA,b_]¶4B&/FGTNd<ꥊӑC$uP{y_ sFwUK|3Ky6-!EXIoQ-{,J0~8X=ҐG3;P9o7y8m %6!v?"c=i=G#)m(5K?N>]FCF# ߗ lcÆ/2hgyDMi PD%'gEq勄{:mT1J=7)kLƂxL[Z86Z"r.+m#&QSnwYwUp~Yk!%'x l5 W!AQy`ޟM9fߍK?\iGN ޣ6cx*ۀ'@0g_Dv}$&xeW ﱡ7/\Gs|^K _U_-ӾTJς6ҩ~^*a<ܟ|YX$v@td]NE_Kgwki)366[h1hD)(_xˆ̡Ł#g31y&kLbzOR*[Y}/u 1gxk(5,O=-7x6O}G8YC0~[23ho3  _uډ$[v u ʽxȔةj2ETF^WuZJe_m->ԩ#2 A=lte "D sQs! }V{Ng͸ P6w!x;3l䬻Ή9 2^XzuÂYl!*َn.MqBT#pG;ޮ믭fQ%־sMC ǫ#BܻQ ⤰/jbߞc fBuGvgpt E~a6H,e(oØ>tZyɴE&w4$Q'u Y?ڰةNgr4IP 287g"uz21"g0 F\ew”Sxvn@[IliTI͓M.= _BkO@H-h&ָS uBoIX.5cZhcÆ,w9 ERe JB=Ś[HH/@*hItNY$цw07E6 e!jfݳU#~wdpջmfw%\6)tG^*j-'Dxg뻎vN{{X[ȹNJHs+쒴WSiuTeũ{%aŽJ vm`SC51D^P-nVg~Jh KV^Z/ܗ 2~a56z^WIDy_7&A$:hGQ@v:R?vv?e;k0h۽K1h/M1[Z0~{}@;<>N~2hޒC isP BmcO$Nkɼ$v>3Xii k kln|ݻp &Ombqnj'AAgy"g< o|Yra6b* R7JHُTeK [NkwIL O* Mt DE !ul/=B#H?< ;;jӫwcG ]6єXd1MxՍ˵?xvi2V \n62*_/h&˧?&f{W!R-Xq\Lmm[[$$GhLV0kB.?6Mz&u_y#@s#rK#jP čwZv'Ǖ pC5`-~=h2[lZ[>ZvpG <6)u"~sl7_FJhk@%~9>Qn^7t̮Mwj6aY1mNb|l#]e]=Fv>X֙j1୼TPUbT1[=d'`b'"L&6Npq 8Ř:4ҎsRKvDw=|y>K VVf* d9DFY?'D'(_*vDȜP>ƿME WB>1 EyBFk'Kz6*`I516ŽN/>a%c_Bzl}юMM"y/@o܏9{ߩ p1MPM3JMP'n#Z*No% #"G{ş\zkY%pHϋLZM鈨 2U`\srtn^dp#* nNGDPߣ+$W7{`CJE" yeh3 ס +ˈFy%;f R-F4![ځp[ +&:7{F%LNO5%T0c|GTy#Bi ֩@2guA{H>=l0 ,c$Ebҙ m6\x-goDzk{У̐Wy$Js -:2uxROj'njJ$DÚ/ț,[BAEbYz^{;UהA݂|/3cL'˗{1Ag]6}anKgJ&)jؠ;5Ytz_B%ja[:nnL^;ٙQ+u]-koeӆ@ۋw(yNd}:q d0\즡 l@"Iaٚ"d:'5Ω/ŃvX]#qK& D )yچ.ObnYa49" [*iH` HhT`6[j@˂]{L#c̆6s-MZBc#KZ0仟@ɝsqHI[Q\P?ֽu2C\_wFzqE;Cy?iqB;bYFO+G*] 흑vAwFl#jT 'KZ߶^kSC"ѕq` ȇF.!pּ^'v3ֶ=q 嫣IFԓv,x疮93I_jf>g'^0~(v+ICToy\ܴ-uNY ϋs}穿h;S>ze{1q&aK^aUׇLׇ5Bc F? x0%RzYTjB;ՍfAGƗS=v/mA->ގj*vVS.^ju௯O믯7__`Љr}@ h툋:I~N\K 2Q 7\zG9$MESTTؤ2 5hˌG*fj${=4n@:AiN+]9NmмI/6s>+mXԇc[<[2s6>,OGs1W%8E2m fK?AيQP9޿HcGijj#Cꨳ>PI"j{$vПJ^y#_۬ކk%;'^)\(t-⢳QDam7][4m|gebSPR\\ZDy/H2yAwb~-eIRr V J03jTO{3~BͭHR߅G.8t~RFh;l_97c|/W|sė `3KOF|i__;g|sŗZPiD'9s{M?ȅ){+kSUx~TCb>gwJK%rt30j-(/M졬˥3 GӺLhos(4׷۔WSb^fZ:DTm _{_Rr];Tt]ɎٍroA!p\S.{?ƫ}m1G{1De\a_ʽϡ 3qғE/wx'=Op/xݿ?[\ߎKR`&DP WN4',^TmƆXiaz%@燎iZ~mN"UOSSGNjե/ 9Wjz<xX}BMmbk8*FiSg7&#H^/| XS4C>|b2w^ 9szAsY?W.s7 [`/ h9?G#{g{R*/6uͶiE`gIk̯\u"3?dG".z2_Wh3q5+Ng8]v|JPpǧyy9|b9d :o?2 1fkfQ-SX&g`O\A5Vӱzw[uρ/OKI=I6ݢ3Zz]G7==W4ef _33?)C?bΤg%p-}w)y{O ]TiP/I4n,UKՅQvE3[`+e-1En5&v@rid| }P_,=d׫ju:1/4̧kG!Ș*"!+^(a٨iYJNx Iܕ:30JmY Ŋ/C ?Z1tJ%Yw7KOH0 d6/.s,A"|d)Nܭ"V8 ERK̰%>Gk{mbTg^@`_#3h<=vZ S4љ;ro_^Z'M=+PڅnQy7L3\R\c64YObQE&H?e MbmV S #2V&K/絃"ICP,Y90ulʊh[3" ./I b4?^bL\4~n"{-aU"Ld]_r &?-o[D 7rkՔӾ˥\,-9.L)ؼ*koVH+I*YS,Xds*CA@s`ϩ $=G/vN=y$"kh̠eYf|$G(ºjGmU}W7*E&-2$ofJvY{ز_8WxVY\ͿM_|T_,PGʢUl9 +W[M_|խ_rm񰒬r#=5|/YS}el.6 ܰt^ˏ*> L(,y]W6rJf51Lg GςcsǺ5~(cyYylXh:,5V9n*3X[a= {+HbˌO0.8ϲ0oDoE..?}HtB~8Ize7Ɂ2${aeQ+SB ^Ļ]E\k:ekՍ5Pz{ovfM։-G41ߠbo ? Q8|qc^ɘ?71_:i^%e~e+NQ \}~tKġO>b0}/ճBxb0~=N=}4[HԱ%a:r0"Ӌ bsd4?#mĠdel.(ZϹ?L7F]LoԞ3PI wMKJY;#a礈 _CIz f-WxR^8.A#SJV3We֦NTH+oL!X;4+eapc6[AXv톧wEʜ/P ^_UI^slfg6L(  ܦUJ("cJ,Z0= ")(Mc"D6Rt *vU*zޚ95"-44[ nDW'%#K7(T X7~H*2wISɦ=8?=ɝMOFy`(D ~>)kc. _oߞrhރ߿VABAB1"Wa8򥞝 ^;WyE/H>_H(B9|y/4u8"},i1>9f\B=Vs[:&9U{~eaZ @HϠ[T-n) {sl䅵xС 7ރW}H7mJٚ%aߢCKւH=(5b7) [/aK}l# k2} ⊓@,.ñUmÈFۄq/bF|6`SG'*lQ@#\ ֣oaGpS 1s\u`nCaT؏;qex!onR\)AQKFE?sl3 SE֓bN숟$E)>O|I#zFs̬;DKZ8pQ.yK_ҮD1f1l퐖QRmTp{.7 |WD7.dl[gM:r'XQR? ݣ!B,M0uχjW%ǤDzV0u6m-Hy_2 LE*=dhxlApd0#6h2'fY.Tܾޠ3e[br@d.u3 mUKF?fO+3K~ (shZ]6ˏAY;Vڎ,Tw**M%<)׃nVg)j8"xl䓌72;7k?5YO[)ڴͶZ,ɹ0r%PxgNwb5Ϲ927~`HG+[ָRtŪ][5j`+{p#DܰY~$_H|@WG0SN<"RZ]Z:z'Б}Ww%XYzt|h.5}E%?X?O*cxDYLQM~~tP2ȬjJmU-?qYfU=M˽QeS$|JtVqe z?ǃ6Yz Ǻ^V~>P_&MRU^MR߮,| P$oSngx ozCG9՗@:$M締C0o(wnK B7xN {`~k1DXW|T&q"F}`x=,+[I_Tze%kv7:wuͺR>qNS,AV鞻P}aeX7`| ۨ!p!9gN)6FKOa c"c#| ac8z ɽyHf,5'gH26( %j[bNstܠ7x KΉe7Pl;##[q-jIk`\Dȹ'$fSb75^35KS4-̳)P'H!'{VoG[^bXJE>b.xqUģte"QoċHPG_jJgKXUS̤gdT( )vK ?lpCB7]ÃBؑX?= 2p̟(2똞.AfWl0Q%Q>q.w m0^SG 0 `r``o%#,ȍ|W6r7Y:~"ie:aTz3܃{\nm;ie'⟞;K8O&#/v: :P&)6N|8HZR2 (iKR7_uЗI{xl#|SZaS8_L%0/xch[lh }4v+ jBQ^;;yJ<')?{ubNw kPDPRb(>9>M^|j" A]*Ag\N};URi 7Y7  )j՗9rx`o|e$fl j_ 6RSA_Uit &zrj;bsxM&kt%% ÒpT5p4z:-3: ;gLGm,!1PYՆp\Q@ qH̃as;UGp0>;: {?[4 ^ 7`*}x۲2IPăRr #'GE&\!s Nqkh1'x fa6R1AF02ԵxObpƖhw3-7>6NoF2 "Dc.;{P_|Y3Ҡzb7^ =`g4U:i!O3A} MSJ7º9?4 O΀xYh>LtkX4Pr P2¡!U!|lg"Aj2|9^3S8[7 ۆ~C\r9_X֋|3p~|3i=JBc>L;͆]>N8Qr/p1|KbErʽyJ{q|]:A*CQ=g E/vHɂ;{Ύ6G"$L@K}^FuD^&>n1{싀Rc3ZhߕKDE\b.ӡC̏\ΣbPb1[ O2nȞZ"%_4)X&RG@ 3{1u6njSEM>tp)1&ɎZR~h7Wcpßq95ﱠ(hȓ>pfe44V!狱 }G= lHnAxU'{?e[do2'0/W $G'YD|Rˆ,tZo/77 v$B>]M?fe~:/NX]1o?>iDrNϏjDZ}n_S0]ۚ4W\  |(enlMt:Sm E5 ."߃rNQioRkL@D)Lԩ=z ZL:[4bYͦRG4S7Eu^ܖ[Dlr.!xߛ͝&RWF)¬5'BÔ 7w*e5I&*w~=#⌲zЩ,!x&z, L&6wy3y}<+ q:AjXIrwh/ɧ:uTOg(Yzbޢưo<ĐCvGv%GDSCT|Yn޽Jl? qef7@Gshߓr0tف ޚ8ZDW}]^/d鵤p]Wl>E7Z_#V4ex ^d8l ?W|x8w o^`nTe3@qtR @Ur#M)?Ho2 й"H Ev (>=VB_XGKPů徧}H<PK}).Ad (=>nrXj;uWc=G@"[\w12ܼ<Iq˗Q?/^ZZV\s RW1g6M&tz02_ N?Tq0 ,Hڟ N e\ =;~M>%$e͔E đOQf <9Mnt\&)$YT}6sdKuR_lF]>Gxę>XyЍ,N1\igPg ~?_D>S,hRfx D+ qޛd͗ZvLDyOG",'goUyl12EuJ]lZMC DO?p׹7:J?2B9I};hD/=½unp1\r05бaCG=!lsja,n@n<6 у'4fıxЧ/{ :U#~)_ v%ͤV\)SNν ć _:` c_S6⍆xtz?C\ꥄw(Ƈ7Ht6дXJ͢)J*]Ҟ6`cͥ VD{hئGfڟz1`3rze(i'mG&1kǜ=`rUJKz GDSSXD/w\(8t+::p_㋞ ;DDE&IpO"PA[,z;hΡO٦ͮ 'd{OZRX$Oddƫ]F"Noo3_0z[N; SZxarB*2H7gf:c2,k?qх`NL-sr\1fSOovђ-  1t}i] 09mK~=e'.CO"eǜ^ ? FكF]+<*aPEglb%:m} `/}^ON@?c1zQkƯ5Odã;8_|¦?(ׄQ>>|<~~mzy 6&v Ѕ.f_>}яA63x6O퟊gi>pʎlB,}M^P/R,hХwę+6vIA;!w8jl=6Heg<-;OW5}NB:Ӹwq^P% /fWٶ؍-5?;@ӟՆ.ҙ["!G[q:\䧬ir#cv*GP9U0KЂ=rҸq5%!!2ojJa|ꔼ+鵚'և |_Gó<ȵz!XamvXzVH:G4m,ƝgѲrQ&]F+3z&rxvNnLF{,|2Gp(_+cuxJ;xTz|q`d30`{Mx`֪:킈KQ*_joD:0i.٣?}(g }=*G ɦJ+(*0އEhs8<(g*[8 OV&3K]9BwKQs .51V 4#U8vON; NFBB AY5z8m?3≯*²YQV{mz|{@8 n꫻=qBpfmd_bqZ2oul/J>׳m(3(So]nD60b@xH4_wb+ zda9Ť`mwi;z:xSJez2uQzLphN2sLboh/aYg˪/>o??_y;1RB󅌍=e^V/klz0,փg' |yϲγ5+ݿ]Y_IBWgkۄAլb鿵+LܖLl/l~n4VPKFY>M&!ˬTc0@{ 69dX[{?|a`k}9[-ѻxޙj&)Q $͡lI(޸PC1SRyD>1wz`]MJaT H >D8(P>aEMQHH ]τI-$Y;6Gͬ|Rq撚xN_QY8bݏƙU{^^|>qJǬmy̶> ن-洩YX04) ة(쫮qt{ۄ7(U(p1މPAޅ$(&LCU37V }fur!< *-\& y >[$~}h 65gƒmJ.#\e@m>pibT¤{2uj8("甀yBNI&]k$A^kHBQ<ѱg/ቒk('hYj2տD0EZ`= Wbeɞb9k@+ =545 ^4 0jEsQFڇ5i-zIB<yõp7hG(GNulKXo֗Mxk.( BㆧF1z=-~ΥC]el$M,Z' (B&c?'b2Bl~wDje1ir yVed1@bg-"6*ulT=6pmk:!q9`I=ln?.=|+~!5wOtVtX"zܭ{o'(87=h4h|lT@(@ToISo6Dldv7 ?7L ji걕og!QGgfBm8857( |V.B=6r=>Ii qJfdu6X*^v 㬉dE0y"1 2gG0b09DuП&G%=xc179bnrsYx**n]€gUS-lT;/9&@@ <}ZO}?&)—ϫOM}spF?ɛݘCfƄZû1Vzv#&,x@@ f[(&F^s(qਬNɑk)L_:5vp0E 縑 ޮQIHjY2RM+d1DfCᎦc{ރr%ikmQqsMO|fʢN"hSԛ(̏OUmP}$r픞P- w6@ЛڽcH3>\_, h:g8]w8@Fj fjxiwlV-FFu:g?dnpvND#"Ƶڑ“Bۢ^ݾF-P $igXrQq9EYfqQ{ 撻#^wZ$KL\/k/<4x9^l//7k̗b~_/"QF6[39[k_kx.'=d)C|˙{ qf=x4/DTF!C&l Nd.dOf!腰zb?iAP`kUk^u֠,P;m$Np`c>= esͶٔD)*ib{}sOTvdV&:rnOZĹO?f۲=/6^k߲M-95 v7n4闎GD;R­6?pTs4ϝ bd2➎Rti(sߢ7 r`3&hh9NqpIFǬwk֡R+l*;%_hзQQC$ e::!cz̃ecŝP6z*iNnIn8DrDiG+p޳w!GE<9LwachGÌHFռd9G'TdZy'Q܉|>uϮrBzr-z?77vҴgheV:9L~؜<_h_ĝ?Zgrd+l&ʫ@HBZ^1ݛ"ag!4?3~[t,\f|U@#|FPpnj 8?4Ǹ`A>EP8X\ߜYX F^<`F⥚E|= zٍߒgǽ1Xo=p~??ek~O=í33^NG7 vCkva`3(آX'L%Kٱ;6nd>_Fyf3_n1</n֫c.?fmuFB{( ZQ =~c}_һyf79#~aẊ|{tZ<2{mNo֔B8, >Ru#6A6=<{mo{`<##^m`ǥcǕ턝^cL kU&>kwunK`=4@̦/>1 OiK} ';f]]-&3XҠU*jz+yՖJa%G9Pߜ*R>T*O^WXoz"TC}=h ̷ɏ[ǾǙpK U_'q[/gv.zTZl:~v OsK2[/z h {=4 fVb9l2> sh24~:?$b[0/%{xfI.|_>y 8 \r` p}N|Wb7nr ԓggY{+vf!]wJwWY<|3VduόLj+S?!;ϔvvk]f]?`g``[֔fݏux$A7v:Ӗy::[>vn kurxj͛WJO,TCPUAf=NL^j'u` *7p]oCWJ8gz<"$` `c Z\R.(h2?ͼTiS/ӜYLGTc峱PO ܠ0rC^[m؛1B#CM) L\kٛz$8z5EfEe)q4ΫC|<8M=vG: K~v*ʧ`6y`t+ՠ% Z2Ќ#^fM/16T%{% HJlFy0f9q+K |s)0bhN-Ս8tw G&S[kؾ #<7[ka{E@*=JX,u £vOi3ɦoOd/vj95?e u%:ݔ.aP~gfz0#6M,[,[Y \ڨ=Gjڿ1-%؂6M֎\K%]Pa54-l޳YU7Š@ 0xUs."!c<uk';!.tv[tyG 8ŸG:ǘDlhG8_o{3!uʿ ˭:Rk{fqR{K&$w=|%jIj 11΄$Vن\o[3H+HUt!U>mPb:3U{j+ PiJk>R<'*hsT4OwI[S=R@h!_#+AU2Z RBRdrW7K%v9m>6vFKVi/nl2b(o䟉@;.S](=֞4WHBPٛLJa| +n G1WڭTl[(<`@`@h@P?HWhy"0ӧt{hմZe |P$Ƚh$ET<`+gwz)4+Yk.އ٫]x rjX8q,kf?\~ɤͅDS6ց#ZpJZ|ߤ9:[s}eP5 M $4gҙ|+l }3hG} ^7kc[,Q1<3:wes[54wô]S=]P=Ux,}е@F> x{< |q,,q,h;FwŒͦ~J祧MFF T[[ʅZa#>t8yoSVϧɬ Vgץۺd#WT{E 2QrV|;`x[4=lٻ踊_VJoe0͒q6i-l"ymR䲶,i-YcGqC OZ$?/ ԁi9msjƻ9THDt-ۍy_ZI&5?~O͛s;3.0w1ֆPɠ9z˸+4eibk7/=\Je7-ˬBWNxWNom&w5_)@Noڂ0dA\udVlןKօ ;5m'mT{wS%NF\aBܘ Bm@EVz=8\uu9Ss LUC a#Y6.ݦ>S]+~`{/cXfY&Z-ӲJljw.qWդ؋L4ڌ\̍.ž bZdt'B&{jDXǪ}=H=khB?&S5'qpw3pNėήJ Fs뷀0&n2Xm!3qaWM|) 0QD)i>h7 6CiV[6lt,4qYa4C$kB -104c6K RW!* aB> Kjf7 sm9?)G%V2O"]y,R"4e%&?vabu[u*3L~]i@S?W.\TǢ hi7|Ҏ~E1d6s"̼psWu fl{䯶}P :h;ԏOZD!+H^_h9G *9R_9=`DP&akodMeNd9{ j+Ilǥe7}1lNtJ]ލU핖)l;=%mV&axFvCl *[{,dNXN4?sch2>2%=C=]Au[0L-Zi4p }#KkXh0)a<i  ݩwEԊ&c]?eY|u|[mC(Y;+@#B\P0w@yaeZk`[y^Wfۭ6xsArxVooa)yx)C3.X! plʸ9I:a& &to'X/;r7 M brq]"g _*>o+axdZ&lݛ*~vk#E$4Gkj__PǺ1kI*Ff*X}sOFl/u2(֨Yx/maVȯ~m}M(?wtn fjNa6j*jƄ+ 3%toxm Mmneer&PhUEB͟7+ze:-Rgnmq;M++}_`9#%U`æ-K ty3,MFW䄐8TΠa$/ ͼ"Z}e0v&\;KOĴ$>r/;K##ri\4{BЀ>ʀ*KѹTOV4;@(F2v:i-20=إvv8շ.֋ziL' t`y qA#s6jX~qP;9Z<վD| k[|!^s҂`g@M v<% vxǥV 4UZrf~ ,VSIIM+" gx* uj;t.V\dwHl͏ԼU{qyqF?=K<=^03)bWϓ\./]@nPE|ۤ(Ƶ;w|,2UUJiI0{ \mY?{6="9fq[ VSؤ~~. .}ku熕j͊^S0N8=o?P }0ܔf‰ՋI M0m9RwO ZA juFh}._? pET@ (SB>ok^)C)E:ho/h rY9_ijΥyW2>/O_$wrx|JdB+*;GgSϧ/+Ea 0TQ'9دl%{Wo5٣%f{tW r*_zim`L+s 6HET7E͠zu6 ѷ>DzgMn &m5QSIƕWUdH. u,|ƌ|C5x^&ه"`⛕^VCL{wR޲TsT}mQR-)O/^{h7خ rEcjJ 'IFD"we5ki^CdG# FLQ3K\$L܌Rέj 9ZBQ<*&;^^',&s8g'/I'amM1SUH(ihrD2cɯϘnYOz{.!M5𞟼HRv]JxV5%u?Y5Fl_HV=5LS>[P{x7FF}*2Z҃W\Ne\g +]VZ-u]M-et^) 7t\<4"1WL$i.(Z׈^FF?Gͩfä/<{ _@菣wa)''^;h\r^K "ە1\H7q;h6#~a{s׮C(SΤo3Daw?ki'#v ˡrk_TӐ[ۈ>=@1rr?2N+C W?$ fcxtAOW1Nb1+n1`0ʼ ;}'QNȏgK ̒'bz^9kx':f@0D.\Z%G#~eJԢҊ 5<<d? |?K.۟}'@_9Z׸׷f7%փ=ف& : or #%Ìq;=9ƃS֦\o$bF➆]] G:1֧HR__EEh_Pԝ{%DD T$EJP~JL|kw_"?[5Y1͗dۈ_-1t<^EsRϤ}&%->1샜4\^/ Ta4Ėa@醬wMxZ~yxđ%N? 9 OFI ʄYw`oK h=hc.joF?2x3zq1dS ٮ<Tb.8n|qd5a=>>a皌'`KjH"c$}]ʔZ,A|Eܢ*ȀLNnA^$FEF7Px=I9沀 2?s~tWyhjF)Z,9ȓ:p- P՚CŒeBf+T#y&g|evu]Z5i;=}Bg7L9Df[ *"9Z?-l$;3J״Kv5Xq.\DO(V>oLMXrҚkoD-PR9m  $e%jӀu{h/`J^hrEsy!5K7%$mI 6񇠄I1lMEل]96U QJحS JS9͂Am)9cUB"[UIىS` ZAr'5SJ_y##/UWSjRqUW38@Ґ*\X$c{BĞ6'q`gؓÉ@6t+ZJi#Z*m $1ݔVڰYXU #,Նlw= *,g{{ιs+ؽ#zH{I뢎mN 0}/ԛ ",-Z;ۅ?ܱU[AЊѳoʵ࣫Wgo88ZzsOPZ|:C=RFlVc&ys] ZO:x1HmEj;gG\_(;OtOD/oJBųw5A+xU< 800 [l`MuD@7 (c 4k?,Cb΢Şd/]z_2S8-n|̈C ˖mC7H-ww|rwiem3<͐'0^*ȭÛQ?QyôI^xYۊxo\.y _v_./?B#t/s.:n4 ±9e6˿(x̝ck̅m|e/4n)y}ZX8SxA5Ci}]@q7qEu~ۈb:Y؈+'0#dLZN l+VܽU V8[wdi&W B҃H H6Eh{0n ׏ h.I5ZUA=okW3㯱RZ#VmZ\wSxs`76Yh"k9۴ת^ 98)>Vk9j|| PydO$.1]輖B] vق/@֚Ʒ%`BB_x!3X~A1(!GH=Dns+h&_FNK#b5qa}y}pЅ{PXi9Fz +] T_i/w'k= %\ wƉ +_`w_] PDr!|+ bp-ä9~䫍=p>L pH4x1r32U؜]kOJ+^ƃ{%6q$^$aO[]9ehyuՃ5heqXrXХzc4a7);upwp8n(=nO=|N;+G?^qY|mF>>Rl,Dj]i5 9Qz2^h|4jž?x+_[skZbIo~~bܠ{>poݯMhɵf>Nh&v;2nd}y#Eoו};4ZkNLOӧҿN F[^-~6quXAbQ~P) zfC U|h3 ~T[:s#{Myk X4*i9mGm ?*fE6e-<:~~yEto䧧{&Wj?~TQ]G'ۡQ_]̗;s%ˏj3wk%O!.kE[! mr֕K> ]*dN`^ >ȟ_gh{KX|"k9_~+W<Љ:m$]# ~F={^<8|[w>ɿ:-!5wsJ-f~W1:F*@8,dq*m}|%ƃctv3d]In ڢC X^G7}ɿ֋-e&jпR\6M[]!(O' +`͛h+o˦e5$sƥ&X0{dh eU*EW+UХtFrƁzTT0kd%JogYBOe$33>/4=UeH)4\1@iWJr:zxq3IQe22Ye\NqyZ6ZZRl-6't*ԼϛN4`4T P8bٌdS)`!"FRY2Ԓi1=R}^&grܤҸflZly6_26$@? UaY%.+Pn"eT)f-7ZsrFwIhMy"?'>*KBl4`H*A*O1)HfEâgT6uFSY Q[>/4$[@ƀ̑9mIe;[aVA % `^~U唖Ll fu^e}W离I{S=λ6 >7*sЙLgzJVaLf,÷W.Ӗ Wʖ)P@g&b Xfeh*3Fw: 0'xtԓOv q_\}:T..ŧ3l.|\.I֏F B.!AM9tYAӀJAĴn;P{\c>!QiiHČ31 48?5 CBlBm6Nɵ) %MB{4%JPkT "iM;m|nIؕ4hIǺtJZQDk9 u>2H99L̛na!QquaRqY>A7b}>H!qV,>8] }&D?G 1CF eȚRj_0fj8U_-rbD8x&%hŅJTx}=#ܽG"s):t 2b䬟uJ6v, G}!b}rPÂcץϪ)h G;HxY8;=d?C?@Or "?s7`i#;LT__y 78S-Ƅ 43Y? -Z*zxx]Bߦd{C:K06\hƲHfUiV>UOO(MH`ʇR:X\%ILQUwrBёXd*6M8H0\xSEЉ> +&|nֶXO޾??!DPhBq$j}ގ ЂKiJH Ă*XU~x~OWGǦ~z3ׁ׏ј"iYαԈ̳cqǿ030Frl[Q 'NEJPY+SJa+x/H}objn h4*t<~sd|,2e=}fmHX@9nD &|i?P@bm >3]=Gn "I`Mzu8 ,ʱ},I;k:CʍF^TTƣl 4P44Vhp"40Fxp3~wu+8:80.Y|Ǎ79m{p0jlI[o7GFG[av{h8 g.I 7ڗ &|ZQ6L@]X! ^I"n 6Z`ۃѱP0bt6~ 18 <% 叢Yb#igP3fVs8!S+6PJ,&iU$ lC EF2ˀ~]1HtljGtpjHMcgI5Ei|٦ @Ψj ʰAv93<.ttP%XH2ۀP־-a3VedS«F}%FU$Wk/;{6+g(YQJF fW,ɲ#ۤH#듲4hWIMɪ 5"w6mQ:[Is%!'(3#:73KR>Gq P3כ޼f R{3&# 43`0W| 9&_%8'/hKIPJd??j3ɭ[̓E8}ĸ,7V{|ΧWy2&e$%caki 2)/H{u8.0win ΃[ 16?\Ad7aaar0!z q o(T(h  ^(h{ C"fQw *Usx4ydq!VlJH='oa=ޘ_)<([y0["'vXţ(*Z+A,0VQn6a zF _>||(Pms٫Ep[6?(mpg!ոp( `@>%KgrwV Jv1O+(4_iwbTN}!Q T @x,] !԰Pe6?d8K\V24y.s*C[Dz P `q 3dsξmcIQb\}b䠩1 p栈Q̋ȬWUԘ`e̓:!/A&R4oZ>h>njV]_p4l;H ǝs y[C/œեŁ H4Uh^̹PU$B,truHxl@oE&`}mݺ 4tfZ 22sɗ;r 7bQ.D{V@dx` Wر%l90myںB&J}IlQg6uJ&K*c0[dk+&%Q* ~(Wabӧd&cf933"BQ2-}G\g|]:zeuלhE-v{Vmb]\C9\2 RIIrR{2EǪJZ x842:_UyzHoᩒG㦍&cq'.Qn6k n]Šwtud/Щ@R j)1s_YhBSҙ;i=[Jx;=9-H6}1>µ1,k3^l*1Beާs{KT>^n!cv%[sH;B񣰺xQ+_z *CG ].6pw .ɄBQ<zvfuxσYeUAY]W _hJOOE+ёXټomG[P+Ypr/w70.2kk=+} yWcYo@M+'\Uw?e1d+[+Ylum2?~Xd\zg?\3<Vjo}r[aZoopМ\4,YY"ǻtY&}yc-چUZv)ծcpdF`i(n|n k$:{R?dz8 b"dfe 0f'f?$q 4:rU0n"i1&WF~9 1wqycݕF<5S5 φW,Zlxrs7V1|3i Jjc\ @CY)b2 85uŰpz~t`L%E[G7,HAaoAz8WLcј{ s٤ԤkLT3ȷx6 A:mg!Ddˎp͉l[G?܍yوUv\| =>r#d"GdmDlɁ^hq+H-3pj'h(&L1X™Șet+b Ϩdu/PnVR1!"(tEp <s, X8aȃxC*Hɮ TB*~(go46LG<),^a<ς^T6t}y|NgœocD&;+5Y&WVcQ9 1,݌u|ȟn#A58*b)yi#s3y(scZvdKlÏvȤ4dcs3yG7!sǨa6Ӂ+`h=X g{~=x00kd8J^#yA9{aj؋e-Y-IȩY и.MY"fsh!K5aԁrXcaAjHXEE58/1"R/+P\&:3ED)o7\_池 vI2 oF4]0,ibQQ7f R}%FtTqi uy`c鍢"WS"[tï.&U)}~OOg>4G3_Rѿ!{Hzlwa|>\47u1Bwh^'~Ґc0y[>7@ߍ+}E_J+9Y.Q"ڵK)I/##%$.PrJ%SZ"5QnH~7'ƥfߚ'cTt Ur)wמ΢S+8SF ]Voi~f<C΢!^vR|Vݽkﱶb6rD[!EqY)}FJf v+ו^qHCY%=?4#Oj;)TK's)_Z-9?}ʸBߚP`K~5_^T>~7)V_.t?ecJqNc}r5ƃ!{K![߇hcXF=iP2hxh@D+"%7٠;h$bF_+Q$ǧf$ 4֥66*m^$gmQ sָT*l (cT~ [[ʨ3edƔspikb[^K9_ O( p}MNܤ;X,gEWy7&,鏯AHI:r3:{fw?%&ՇWU[;INp|9_\јTjgO8t %?hwFOfIj@^[N^m/'訐n8mK%=ϕ߈xqȋ?yC[3uEUhk];5'颧}9y:5оq;gqӻ4CO\8SfSg^̨7Nf~ԥg~ܥ nj kIa^ m,kz>{tSLj]ftI1%o^xӵ'~WStKO=JYwE/տkK+>U?Yz.;K/g.6޿өVMӱ,.7z<=k= /:k-$q\aZO}pѳM~ϟwzθŕg>І{:]?Qip ;NK'f}()vyt]y\sJÙ)<)~ '\6}#f?XK{O𾇽Xt{0N4NkAV^?E_tpƲvZ?.9cS0w`Msdk s=ܑ6X /`?;A|̽a'ƵaƵ].L;%Not'и_}k7f%yjj =Rx&oW2ZJW#;_U$uXiu.lW%'OnR'%5 6/u_;vu[v*: e/\!Ms D7~sƯ1}Wf,At:\0_< s'c2k*nu=xL}luB *,?-}-se9%(>Տzєfw2J(<[{5u]v,{`w՘՜l?LNJi} ~]QUvuϠ8J㿟s' PB/JfBcDNH A)أbۍJTP,;qׂ !V~>͜ {|?^w7{=9l/0!k_b(Ƶ-2֋Vǵ[0q9&zt؛aؖd^O4@FʌPj Uz[?x5Ʃtj^K[qfɭ\&\5`vp;=9txζJY |'>̈́,6?oB{3^>CJ pmZ}뛐u2vg󟹂+;⽁Of_ӆxo73xߝY/垴sMq\]@QN_a3)@XKS ٟV1h N蹥K_%>f^;r\ϿyaiEW4|w#gƽ*XZP_pϊlǺ]x/<%^[UJ;aMкpቛ^(osLh15RY^r6'^px΂7\85;N3RxL1kg4w -ySsk3SNZ.8d{5sl~{xel-Nin:.%1#Eygx4gX)Sg(T>]99o{sվX/JNvK4{r֯OulL5tItxʊxʣZJ.嬧 jI2)OgRpc^>+-`jK:KxEg)':^b._&Z-ȗ 5׶r]F]xk?iZZJk~k}=65Simg%goI~Wm{_ 4AT/OWjZ Nu{imzt|M]s{;HGy[I v?JV%UkBi!CG.u*|\{ !q-wp5G>_{\|]Wl̓c7~-k~.lvN?ݎg-G#G7n|^<®3~i}} {mz_hobnfkOAHfV;$7+gsrꩣ>{?eHJ9,?'# S{> DѐU%\HX-АpXÿCE b~/)w?2,9iH4[QAk+4,7o%(gO}=J_,5(&:ku[z/gCFYM4EҬ͊ɯdGW}X4_5WyϹ3 U5pL i^_Q׌|Gy]SC[K=ZYZ/{ s^~S ^Qv x%j޺[>wQmjN9Rd_rC_:2+h!z^du9llCvh|1 y5au>rhX'{@ _}>ڡa{);U B=ྲྀڗq \DDr_q>ފչǡݡzr>!'~C5,;m)淔6;t곰?PV*`u;T Dt/nVB;__C:3>z}OdIt2'&.P+VS̷{ .!JU.{2D~Nꯪ=FI;Og5eD+;@Q2_b ]Nu->B:Ccd^2F։Xj#wп9_ka'f\pWߏ~UzCM^Y'󼥜J4}mcD9ơUk=e'UwyB7u`\8rPvΆ^ITh KPv͐;5{X͵D] *ױe'z DwC= AM\2BO}M>vw jjC;Q38O8T ~,2dt?w,I2KmogB~1ْɳ<4`ȡzahْWz G7;q ϊu7c>Cg. X CǟPs$|9>xCH~BP"&PE-^: na(]/^nx ݥa()CF.O }ayVd,]ײѮa´144Gnkh&p;CW)_#>I6])?u;zC쳘 dhG+>lhbاBqhv߁.ɗS 9@ub Ю $ nv7t/5 }{nLOC,{)>6^(E^[dZ$m>mRm,xC~C4ޥ+o\&9w4^)%#K3JzK\KzxB{(}%s2ʾkh+'z\W2'JZ.lGDua UHx t*^hq]A^U W|_C EXjV0 Z!\!SB{ ?ׯr^F㿸BUZ*YŚ f*U2,!TC#w0~/>Ox 7ty߶WM9_t4t%^R΍4t;\ ~WK;$tCɫe\x!>j_m(<c )^-9k*X#OYk>!5\':G5O&;y@?0t OC3 }A#xCm7Jm|m| oxmx/@/vcUj<]UORTC/H>㮖\#>$Hk^uJ=6B's^|O4S u, G7K{wk(toKP{ :[7H-b0to]Й>ܨ}U3磛oLlCoxEjrh B3 Eo}T{ʭb?z꺧[:ŷuk6ɯmb<ۤok4J)[=Bг*\U43ن08_[oen TNG 74_x/W#׻^{|qB:g/$oAI~&/Cʻ_k?_/< JYbC@ySZ{ >ϯgz k{; >:!Y XMeIsr'۟' IIzPNʋT~(+KV<%z+/UZ4ie\ ^%ާ%)wh| }Q¯ڗ8s?kSwJڝ~CvE|=vK.ׯ^S^ /I/K4F OßyIk䗥_r/Y={_뛏.-հ>eRe@ %Z.hrC_ *WÆ.UcΫRj;*}5 C&uA#A ̕ ޼!o2P[oYջ}8tHKޗq䞇_!Aw;hr+>+Hšנ;SrQ}rΧ2ReX=Se% ]Cv7̩?|C~(~f^~~`g{x/PYqAW<}Pr,sˡGه$'f I$JEqņr~%I-Mx-w&_qXq/6n6b.a5 UP.חЃ<yo"}Ps0CyHUG^}[H<K(\+3ǽZK m)yV-Dc|ʫW8^eh(jCە_/+oK6sbi|- lM;0_ |z`':ubПwf׋?|.V7oܫ "C;~qI~(o?LIyS~]㿡ܦ'󃼟))+)(A7@Ojwƽ,Zu|ժ<5R]zS_ ЫP^oz x_s?r3ظ}|JvA/ug? ~ΡnCӇ*  såGJkGJgGJ>7qn.裌ti7KFV< e1'PC!q|B{ڋ8)W}Ofc//z6<5ߠo w] 鞀 3AR%>|Ar?N񓥝MvMtx\Oxc> z7jXBO;?M|hxt S5 _ P/*שxk4ޕ]Oq?}I &O|iˠ5n74ji^5tI ::?=Mq~;tCM|.x{5ޗ4ޟӥ :۸׿ΐj9<9J*p:GGq{(^<ơϔΑ͙lP3RD8[t\DKT/'0 SMTmIjOUj_UBы/`Jhk# Of ЕʝYy tt㾋ʹU÷A~PgzDC_`? <o8;̏@?weis"Wnr/2ؿP'(aC=C5y}P$Pd)CcO}L賆΂"s;x7>o τhrNC }VˆCB_5CC?] 7>wr-兾儾rA@jZmuUUw6QmTݧz@*uM5Y_j@5M5Cuj|lBr*j 5[TkU֩nWWݭڠGQuCI믚Mկ_5:U5Sujjjjj-TT֫VmPݣڨO!UWMVWPMSP:_5[P\JZujZmuUUw6QmTݧz@*$ɪTUiSU3UfVVnPQݢZMNujn=TRZdn~4 թUU UUTU7֨nQUݦZ]^ujF}TR7jj7UjՀjjTL٪UժTkT֪nSSݮZ[+gwvrBV9ʅ Z:ѡ[렧:n$^WnNvSCOQNuhrt {#t7@g:tr-t~_г Rte|ΜPq:sYг\=ۡ ksyߪ :ϡک@ߧ}P:Nꫜ=ס1ʙ\Vfs+op+AswC󸿕ʇ!o^߽K3')χr++G7@kKCq+7@AK7k)woohrZ<[9v(_ Z\p+oVr+CWp+W>WN-d/}${1ʼUuLGo?dZ'y)$q~C܍5||M|aƿt|o|aG5g5-q+T+pwߩJ\}b !Zw7 :`π/wwDž'cH93 7}x9_?Cq>yO{ c\ yn~7:H)+'gY/ckrd>='g?^Fx|ss/7߁˿hOΔG|ֻؙw3揬/2f+_Xo-~'gMw{ s̭,g%ȜmWVa9yqkI+=YwenQ>1.nzV̫,[G#' (OABzdx"Y[Y\m/G~d݊I٘?* u73bſ9щPq>sŏ?'gt_eβyZK>e4_'o},N+H8=gV}?^N193#3&{ 3_tdqc>o1 1-is-Fg[l"&7#eV8b?OZoo[gq)c|[o1ۨηcmŘoIQ|u}̧V8}V8o-|zb̧|QX.`4ų߻Z1~N!_h~e<[҂igu{G7I u=?/gvfM߽b翮\>E}/Xt?\[s}%WsJ.r0_R BΗsޫ ?975w)_~Zo~/MDWv YcFf5[g1'>O⹳oʽwݛZP9753zbD_̰/V[ cpmV8j/6Z >ʮh1S/ފ!-Xo/v2l/Z+I-y|"Vy0ePf _rx]V~%d~m-.  x;P^Q'[Z[roķV}yo̵VXQa Gz27Z꣔'c`ʳ?IcQCza4=oZ{wEy޵Ǻq~g1~MH2p[-|Gofy}7[Nƌ{?mOw{^l^|oY$W(oR --Y>w^(%ʻ*,$寑<#c3Y~r^wOh/mη 3׎3WϏ3W6%FG?b37Lipӌ?\7Й? bNf.øFW;>t>A b8[Wâ<"H8?zr>Nw3VԕzѲN>S$i۳x:st?/&~U 8R%&aKyNx|<dSf/Qk}L_zm;7^nA@{S;wI3?Jr}py?/a~gsZ>sƄ/Fs,~f wdviߌa7XŜt/M ?}|yk(a9#pv;QkԦ&ӕohxͯחqѥz=|n|(&JJ>#M170's6i{R3.|+BylWLn͹s7|A|Oӭ?Oݢ71&< YL8ɓ.. #]}X z<~>#_b \à :&2y.jYOA[{j?Px:?)/zx=JGs/DW1xw?\^Yq$žp|ĿV7z40is^noN!iz|$\CFX>/֏9/tɼؖjs1yٿW>ow{ypbspVy3SqNŤ/1|)so5u10ϖZsmckSix7~&/Y^=u>@|ճyK3y~ᑘM'Gj@gc7g1S ŌZs{2'6Mo?f~dggף֔Dȿ6zPpz#AA +_((PPCH.% O!1"48RQEFjPjPjPkPFkPkPkPlPFlPlPlPmPFmPmPmPnPFn0]]c7)2vSdMPwJ\d)2vSdג\dM"c7En);XÏ8’nY9ECe.Y+؅'YKx^^x{,X9IQo߂"Ϸź 7[X*!%EQ4ҵqdJC|هkZæ9K;l) Zc0ܸ\f]NNټ]c_i"8W+* 4(I 7`tT.rI|\ʰ.mzM8zt9<,xm*((^\feiJr="^brr^1fΐM]ZTSNMϭ1+7ڮa^w8Ͽ1orf٣reaʼ9-[tk[%wwq$l%h·HE1‘bNJ*V*.s^ì,,4gnRs,)A%1DK_ 5?Ib5$ G_ʦSH9ϲuuQ1Ow .m`%tCia35NF !h9ɖM`efgy3~~=s߽_r s2p7Գx>a r #)^Me!m*V zb ht1M[o^噼iޗ/3)ܼP0F˫, p*|ܹd2Oq>cu'Wfڲoz% ]eW-[R*6p*+[R|RkHCke\-^o+i^_Dg ?&Wq w ˗~MyRLp_tU\J× >`/rᛝ\_­eeKK.O勖|^ߚU服͓v]盦Oڣר2_J#[bYsKT~07ҝ?زVm;-{wG)CQ>.=8hjJO_#GiAB;ܸ1r4mj0;ۭTp$3TmQW%JBPʬRFo}]kwZ]èԱv>n93LJ ue`lM}kh3%:Õhj٘kbɃ3r{$&C͂V\BJRWfpv[/@grGxEu@ ҃t?\wIk߂wwF#x2[13(M5Spq~ J三jóHKꑓLCCs-5Cdb(RI!KT~{)&_ξ<9\!Cy +zpuL`C~QYFH Iuo`'@A Bbjp+nVSx5JdFg/}`H+~=!+ݏS~6fl{`^iRP\^{WB½K0nZ~6dx3P+Zd+(%jr,?ъ41(Pya;.b :! S#'wRNs~V7_(; r^z#GRj!FR6>wq@PCM O/[x ـ96 M@y9B9Ɛ{vDzٿs 9X@@94ެ.!{@ dCXĨ4 H"կs8[ N0H=^Fs(Q3>~N1UУ֕ rF9?\Gp`vm](jzuaQ W%u7G8hj;T[jDf +ƌ$b9|;eTijx%3Id|ć?};̪B? 0?)ifj$Ud tE*b>X.Q@;G}N 5^IY|zw}|= 5j=;,PI@-[F%r-Ll-̟<&X:kQ)qjLVCkf3)zA¥HH:T 2Μ:GI(xɕ3%4H!d^%L8XaNm)O FwSۀ4Akk q{lIJ ,@;=v?$&#(=,Mηł¦OFb؝oᵄޕHIкҍ^ͩmÐO1VZR'0 6ip_%&Mcyy`3D/-0aܝ,j7Qr})к @ِ *@eߐ߂5WB;uRD#}\'B|)厤Ц',v:d(ڥvOE. Wb6~8-tWș܅cSs AVdFq~L-8jI5,'b-=/#<˰Ћsp8rrW^Wf-gxCyqyH9PF`us- yhmV~@ItGylN(&¼?Lhxx[`Ba(b zl{6+,I~#$d^t&"{̻&[-pc! H23'>1FJ$dk,5P>A <'ǚ $Q"xl b6hS8hv c!S;+9JhvM(λr;SbAlCoMB;Ao[%F_o khy !_ĪDžjGb ܷ   Rr߷A;VS|m%ΆN}PanF>온kxM*aK*YBntڦY@B?(W_)^SD#@+; uz;EMxfL ){p/Z;uhKB}J*N,cz#g=J ]VP(P'ֽL8r\~߶6lvq5{@p:D&=fV 6Tu'F,Aj[Ż{[pv"АSE,w%Xڀ+fUCfԭ.Dv\߼7o9I뛸3h,Z@ICA_B`->iI Dl.<ְ2~A`ă~~}G140өP⥬xF/< /8MѪhb5ѪY!kM' 5>m}K)W_߈d%5"wb}±QIJ?*;0@St[7SR%IA{O |uF#֋>ete05JM @k$Jj3PȀD?f3ݫ>ﱴ9w1MׇZ14" 8.1OMz'\oA|Xy֢YZy֬N]9<\S^=3&7B@Noא\ZQ~,-Muy!Rܼv~\_vA"wLLH¸|l&_[ލg'lmph)2|Ls||$.ImL߹ #|]/}en޲IV$ 5? @h:0$HZ#m@ܤN0%V0e+ |_Yy z@ao m(o|U[egm$Juk`< ,ZSx2RЏĄ6+xf0FaF] APv$}r|2}h xm dfz*CFX W6V1ѐgF}%Q-bvE`!|ZO8Y^LRW1h!IHlV W]s24s/)#\3{c{P^kIОG)Gs7#i_R4犎4 := Ag?eB70VV"ei:+3%"]4,!A:O镪7V:o "QD }H{EGlm) T|>![̏EM$'_Rz!`!L=9ʯ.{`p|2/qzI)IVތ2̴v)iF{"ځN/WMiVg#+\&kk!֑*'3a5Tב^ 1)CrKF˧L-˜-ED, lOI68:H>Q_c JXbM̙8E 7tCi)#t!t q]Z4 k1%%)Ixin~13S ,3nMf> 9o7N k5VNSϣ}3˟W (J3iuA)7pϳ*6H^b6 D0~1^+rQ#_]sJy[ߤ} xՕ~ƶl71PW,Hv$R7$@K,H mMbg$E`ZlmykWJn l d[tJJ9dׅ/̝;ss0,Hv-ڇfMjOkGQLfP{ $6)FN!˵vjB0&]f;͛AL&_ jk_Ŏ2@l=ϐio gqmKsG@b8PVW"!7UUn\BkA`]dUmqx=;<^_HHAFs]^x=qzqR؊?W4Ҕ~Jag6KxFm>|UpoOp14x KyO>Whu>5 / ^: A}yV{Je/n{(c$MzaUiu_F2ԛ0׿n 8IUG6)vu%7f\[:[w Vrѥ2nO_{]p}\q|B{$l}3EEMZ{z/"j^@^BC>(Iwh ,bt,Z׮>@gr;VO&Xt"lLt.seѽt,9Bފ#Z.'B/Er# Z;>i z4TɶdQgnXՇuޞ{o>n[ѓ9cR)A-Fa$tơN6vKoOrw3+ԃ (}W2tEKR/ʴ9Qd .ʟ@i3 h A?|Ëf n8X%kv>MCp&J_ oWz x )Gʶ 0 U7+c~ۻACޮ T.#;DCe  yCˤch,,Bw(k3.ur:^3 ɿiT Y3*G3k{wS'%>LIB7`sggg5!*| :Y'P8{K+:0 7C8>o.°S[ɖn#k d6-=`vu** TR[,[*`6ATo,T1ݠX~HxɁ&ɵ?#x0j4 &Mt7u¡@auJJV,,y JBm :L2 <YBb$ yv '~ס>c׍@+Iulans=C-)"tRa_ۻ?B֤~_Sf}XU$z.c>8~@_M]bb8{YCWkhTg ^k;iKs& 4w٬ `Ǩe<^Yć`Mo*MхC4(Ox|k@1p~rSI1%`ze'7Xm^EHVkoUQs'߭GDՙ9i**r ;riw8JٜޮӬhnq@>%; FVǭYͩ.Ν :Z}!+\'PG,KhpV8;nF@<| wesfpzCG ~7W[;ځn4|AIb.q`?9b=9k-jw(m͎kF_E\mhw7lv61u2/2A=gݙ:Q6KpnE'p u7(`I s_RMQgkGx 9b AV,4 5聩8$|`uz9.),+DWD2_Fӥ>#`hn pkD#)AynV趋=Vɸn,Y$tnV0~_B Zݭ*Y&v!ڟ`<gh :uQaFJnT86oh!=H\609TSC)Ϝ͵ҵHOs=Ts1a /6 :I02hT~ >Y^%֭LEE?@-~|lH 7._;o^"<%LM6j >AfIh]#90;ضVMq2qHAh^9#NtL?j7++?P*7/߹5K9>-!E"\CߥVj8C>]~6rh'x4`ۢ-> ø]z Χ@_o@  K?WcZ)x6,OϯROlz~SF{|]1E:n(ÿuM7|zVMg8|_B\@C!*P^w'VJ<IEv^ך3 9t5KQomHٞLĊdD㍹HdDkʇr*;m& QI'rI|O7]4Bֺ.)vZxu'=kps+?S3~#nj%i3dfq@a yS=`3P PZP"Z}|>`=2k{- ެ<DWW*Ӏ 1do0GQU'\^V{D#v>˱xih-sFLͮ&li9}GP+w§]8-M />8BRkr&2$gZHR"`}  5) hA@"  Mvd޿WWG`i5Rair"|/XRs)K8!J\\ ˸vzer 3{%g=tN(\ڧ1"f @d;j06Sޞ=TyvIFXwNCLF#R"37*YV%ms3<hǽk0{2=[>M)& s(Eb^7s(өӳf8c&krtؒv]pkcSV0GAɋǽDq8w յdbD)Db(pFSвSwۓ˟C{ϑ3gϯNFI JZ:O8L.$4z|#] m]׍_´ͧV`TqhI[lr0ټ9]IBE_ēv\/Z9ϩbZRA5M~PWf+Ҟ]>BH ck=nj`nُ݁]&2)%^J!th"|wl3ofݏ`cM0]\̈́)Ys t- ,QQGD9]jǯcoчyu8/J1nI{yx9soL|to6u:u8w_2=JAPӣdM֣P(KF$YaBس e|;mwMmH;Aԟ@D\s׆V(mhٮSYO1?a^_@%Kg)gKKz&7^ӯVNΜv8>pL/sAkj0DT;>RoslAϼOjC1i[io4 șި(@y߈#&M-nm1:)O,wNDΩpk*B5* Mڽ@+UzLBV~*F~AP_iPϭ)OvmLDSbECEOpo:` .5Xwzbfb{@´xgT(<ԦQ}l@/KHmc@R)/a$ˋ>HqTxjB.?5Gz.0t7<XzRJ6S@ z>e2k < d/3Hu-%ϳ*oG-hAE,STVKw=c_âKsqr|PmRhUowD6qă -d7ϫžޠ nvO^~GSN_`v3WgԈ[}d Ͱ1SN&b W'X}t1)`Vi'8* ֮C3豾O=ݯTr.~JuҐ@tQ_StR!g6 V"@J:@c!% l L WB11!CȈbҳ@P . {&Ţw3㓷 |-CgFQ| X.*?A}ĤSFQ c Ѱ}S0a Tl~Ѝ]!7s^ȣQKy97sy; CDSgz"ЎR~=KgaQ]|8˞׼&pQ']VQv6W6Y$ PlUWGP6kR`Q HLOOaϋ\pCStC:ó[09t< xNN:zQ!<>Xm S]ڴ=E t6N܄Kd0]1aO-0b3N&ETV<=C J믞48m=A9yT٧Y+sx>'I9@KY*Rl&׌6#rnU'; d}G`3_uD,)9ږ>WljbʰQl]nHc fKiTa6[jU>}'u9bۨ|5_EO]DZ Kq<8 gVٰ5u+ė(e]g!Ww7~c}'|i o>XAӽjKzajy@Ӹ3x^wox6U+AJ6~Rt {]͘# D+f&AH'p0kߤ A~C;vPʭmsLO媓LŸCFrVq~<m-]%>|jөMaIO&Eu|۷VG&9W / _8zhڿ>ic2{cأLhæ|bOчKI-v҇D n\ⵃjnrwPGZ 俣:W-5uĖ&jC\|6+O&YvV68::#C'*9|qD6:o;kɞm`@9$ZQ+%P{ڦ|R9jdZRm/||IWrXtıS hvpN}qumS2I3kQmעZ_*i%oqoI'Ƿ[-ݚ,cʿ-Ջ"ˍol svfSg2~@m٬ iX}JtTm⍷re{Bn@ٶuveFy7|mq2)LV6WG\Z9O= CgrVDO){9bhu/KDz'+ފpTxifvig]tvٳK~7CRv#Y0lҲyK˲嗖-_Z@~lz~)vsu4j֧K˲䗖-_Zp~iB&P eΝܞ4%%~"3 =\܂^6S9ټ("wA&K^(tq'<~79_i好}'cri/OՇ]los(4w;}]S֭:ZDYGWz~6uCo]}GY%Z!w-jCy\!gzq&ޠmJԙ:9)* ԙ/ɡKɃPB]l/Z;H%@{"xݿH\q*o?>+ABoq.X6hOEQɫ *\ Xh~]A"UɼOPS GO1$'6TϫOR^ ]'rK(?+t%\#GF5@y u"o!5Dɡg\b^3|&3dmݒ:<&-SgfIhFU +H!O({.)͕y[(;uwf:q c0]~XpZcXJLIuIɊN's4xTrbkR`SzK)^V+FcM6Xb]@.()$N7:jbPp>+m^2i~r{x)b5_jcM3mӚtT+Wtƅ.HH&~S CFHЗ[D /˽yoq$EIw(USXc–iI?> mܡRwOx̹\PphonXټszPWD|◳=PHQax&زH@L]̑a9?!6|?ߟ'>Ǯ/!զ92iLg©ؕ%~QD NӚ<0bGOg[xD3LaSQ*7'}9Z)xv}1LJ4|(Y}o\0},, Kԃcp;Z6 l WP໦X$_(N@lZceۯ7+>`*ވHP~]j/F4:Lc^M5ƹϊ6U 9{D.`l#MKwB+pOa_ѯ>}PυZY] !Fwp KSyl~< SRI<c{e[fO]TE1 'Q 2i(@I΃eg+aaOhma+*]Sc.oKrvvfZrv،#xEZi(^lXXi]/r1CbPhv ' .q0O"@1Wj_eV_2N`A=ؕ2fMR|3i gԍĆ$M4zٲdsL&{?BDEْK:5Qs^8Yo O@={KЦ~tH^6~HYB񥤞mʒ¬^̕'O)V?ZhHHs3EJޤtxޚY)(ZGt&yM#IS{UR<}g`q>>K ,eY+?h79Bϡ=Us[#j%qS)y+Ԧ܀'Vgē&T?*+zK$\zH\yfj'JTk5"|WdRk A* ?cI3[GbUT| 2# 57# zObZ9oAmΞ1rLD>TȖlsOkZ#;|;ӷ !لC=J_%w\-C?Y$V6~g3r( x7J_r$"Rx2%d O.ONa>93)(70 7"AF6PB2M1W+r1O{U}ΤM{5I{E}[FY447*2HH2HH2iuti_q?oUhn?5y O®}E}߿Z<'r+T a*s;E<ϑr 2"|#j ŻI'ܡTtJ 6z|tN+R_lgwGQ}T|Wjixc+|ٙ!aF>[2RuB+i%uFIl8ȅlI^! Ϸ}3|̒tojGLb-ϳD_ I{"Öby,)sͅzTRsJWHr\?T$1ұMGa=j E63::w(Sol@!/e`KϧxY؛ \m.וYfɿׇ:Aӭ+9^c7X5;*jtkdR':ςmUwbbjUt/GL_)=) a1\0Tx>+ <~p#tr Ul(pU쨶h[NpZ\y!:(6QP;rQ,fEVVCd'Ec&,ZE^ږi̪eV͞L :Z< a+xQ[1M%%D9f[1惕l1 vX(Z@)nΩ\:ߤ>HPFsYNpp>bQr\|sćJ*C혁0G =ãd}?;j⻖kǏKA|\3B_< Z޴XξhQ}ђ\ tc&b ̥x:iAK(x<k"6Y6k'dƝ}E=~'d48eK 2cI&,i&?MzI&8ecx?iš·W]@i$ i4-ۄaz٘OҚ;q~D堭8?5#xD+M?_:[)E 8ƭ$d> lAg]6Γ3+7ksj"+0R0Z_ڴR]/ɾ>?x`ho^gp:k 4?~` Jc["bu=?"Q鷽ʏ g?D/R>m@W'V3v.Icub@n=DDOZʒql'Fo sWEP> 62s83N0Q@)48)A":?#qΙßr#[ռ,XӨʡwx̿3QY<<<+޴P* JxT' ~h5W$XE]l/Όa!Ñ^KROܩ P~R6I'?kqNw3 |6%AH'a$6pdiqII\u|u}oG.L;)?L5TN4 u:m2w B }ow߽x}wyQ|l`?9?ՀD-f'M~;kn;8F㲒,/s{: BH+ ljH8A-1C*[VkL'Ut’mjl k&@*>%ιdQ6.O1e ^oyTB( h5}~!шK)K *q`%!.a7ݒX2 &0h ~-:<9iqdֳV(a^*R ]vWbtс}J?-U]BMnVIJ/O$37ItF\, n[f+AK$ uJt;$rP5ץ 09X'ߋS> zxK/&M.Ә :C# peP O3>Bh73H.PJjjnc,6[oWr+Dy8_*L0JK}WBwbl:fPIRThOarɳT\Vݩ;T ?},ҧQxeRȋ qA&Rѓ_Q,Wt$uhiuQ}K=m#_oR| < F#K6ʩHPKE$ ^0^H_UQsƨׇWἱ/urEwpq6: 6xX8ؒ+\y<8DdhoQnOYJe;0tJP)q"m*kh,Ԩ㝎wtQ?k++Md<l`8YIk)[:ދo|GFڡzȰُu97%-94x*d*LGωvW[X·NBQ?t~T7Dfin=n2anI/=̆[)v3 ]>ek K荲=zc):TĚ&+Ҏ`Kbn6;ԉOO "cyR]k?5MG^JLY=xTF]Im`́4U>pڍmF]ۖ9q>6]% &*ސQǃ)z#PV4>Gt:@*tb*]< }l{7,t^j_XsaO(նR. a'DO!wءzNWoAEZu\RDJ> Ru?(|:,\da=FaN6Ǘɜ>G#|VFl*W>yX(NYn~f+3s\cfwڌ:?B ~F#OO=3d4@ H}02eۅ~lF`1tׁ*K[vpk7z.f|lޜJ|Nmupr[XKl-ẉ]2Τ8$6FjmuI_볔jS iLGC[F#".ud^z%{٦g4׶#E'~9͔ s~GvӞD R-)NG RKك/ljќę[v3XV7'EsьjP蟈y-|Cо[~kp.^d$bԉc${bvRC7U_7i ]l_,{{H o\<<5/ x>77L$t"0a@O0D䮛 /cIo[\9E~ =;gmE2sw[~ J{f6߁kĈ^)_}FQ:ϰg #,ч#z/iv P!+x3i4ͭ"`>G94va,r<< 1^fK8*J8\HIrn/IR.>4l!"%~Ky\xMu6ħ3xd/̠gY5rQ_BwL" t .z !TciXO$΢cRǤ:@*։qȌW}ltuh_.({(Qe&#*ızi0^&ů=c [YtMT*'qcuJdH M #W)&1뗔9$\K[7ڇ3]⯢]^}^s/Z]ODt#yU"k@%Gswvы,ガ 쟭FXnZV LdawrL955̩;Z!hw0՛r3M Lk *W9him9`kTKl\}j\cxf9Hef|;=<o`8fN*ג?dK;_H 1 }lC8N͸'RuNV޹S$a8eƴ(p sR_-oD*p,FGi !TxO@,EHMY7E6H!U2?9i.SZ^KolbqYܣx偲G?` JI:97J;4Gy#T,}h0+=0<>ûWw(%_o z٬#lHTZDǫ|R~%*ɏDNB*y{>g\d\ K[OXD|9]xz-ClLp,ldh'àyKdwתx+e ý@#ŗ Q`S4a-K s04 IZh_+oEd9ը`[-;<CH;ŀS[0BKThQgoczH`d:7o-XWp?|si@Wa@R) V%~&k܌Qg);E(MeBf  n)[1QDXJqð,@[/_ͷ|Og>0y}/o0X#GEP۽= Obz0E |PSk3Ȳ*nܡE.@^./rKjgٟÞ11_w|Iz aʲ  -.ĩ$?9bʹʵQ( /_ÅPmEd,e +@zxÂźWȟmP[]~ϑ rQ&!Vp@t3xϮ;]\GJ_HQ O".>~m@w9ްHKp-p݃M!wt"Oe1|B=\A^ cQذYDHX}'K;YPt)n"PM7IAݒ<cZwF9tWۚGf\ ߑQPA P,\mOőj%ТYAbclpfBƒ-$$2'lϚe*;۵|é+)rJة;U:$C`uL |U Uhw{^~ݯ /-vK(dgסA 3Yj&\<>Ȋx4hXCO!JdUJ+*AuzW*lP*ٻY _g蓔o]) "2u 5fH?6\xy(Qd셧Y5O mFolžakgub s ߃)7V~Be/SiCVV~êj*G' CVI`/mQs@;9)mB Ymqp.*_|@z"U[U7& F4 .F`MX=H|$^*:G)%tXLdj[j .5<ÿ>=;~$PX_t8"s ;*(jAIa} =o!ѯWp8.u@h(s"lr$'Pz5:>bء\@+\y=Q rί#(?$M$lx=]5gvkK#$U="?U\q UmFz8; /Dvi(SL*bN@nl+(CGϭ K#ѳ'K?"9u$fCvQ C8ͩyUA+‡_0W8Ӝ Ң (VbZ,,^ÈYTޓ50Q : s(93~h?ӌ+C)y'a2O:Y<(S '&jMD- \x6p_tU8#ÁUwnrN_ȇI7StHC3_iAGWqQz]ƇT3sgG*p 83u_sYGq,+]̳V6d}f_( ASJ8S)紷QHB6k̺@OMN7FpYпC § ug3ixz5qJO^,a 2p:CGB5N ~/1Կ(r=PkdʎQTn{PB}?Aùax&IgG>)8nMḘf|+_@ o@('-~-'O@2VϚEt „ij`,0r#Yɱ8͑iF'~ 6aMDb M3OUmغ}r >aCH ?M10joOP7ܮ)LWG96?w&X1Xi vT$[!S\6p} ߢNVizڋ7*p~ʡb#ViQWYi`;DSB1`p`Lj^eu!pm}0Sηb(鹰Xs(/cs+[C#EN"_~-l*fKtQDS.1FY{r 7~-NyKAy|)c DPQ%I˜+Lo Y%<&< VJ|T.0h_Hоp+^]OG$*nJ6(C/x`!J{.7(h&{u-aFO's<7븴alr,~ix}~r68 6+;ӑ'%su|^zKǓGi`g_xAW~1=_O䜎beǷ*طgfؿb_8@ʼn%OpZD:sшC5(C BWaؔ^ӬP%Xgdt< }>tD`aG{Wf0 HnKzݜGP"|+=@v@ܓ@M`_Eqs'׿z:1 cOSgFеB^7bjY<3[`Gl@G 2k̻D[$V4Gp㯬S$A*$\g(|^Osģ* '3'g?C93`Om֯p(2؟>ln{XA].|˽n{hM"3 Gf )NFVy@07ɏ{Um7 F8;tQ뻈zٕƺ ==`]ɍǝ \cJxB @UX'a6u-9{%ɽO|lSemArvUI*s񐂑ܟ+_u92u/;%q ~sUJ8GX֩K>9ԗ@JTn'[2w/DOJ'oDOJ'0=)ߖi^ץpP1u3a).{Մm;0j3П/)=ڥ.MŚ%*ףCsXփ*RwvY˚e':&C٥JsAMt{=i|$P}$gZPiRNulQw* Euv(G@CTU+ +˫dTi-PCZޮf^\+ L67y OGfXV'aJ.C =NɧJLΞ2j>-:tF'\O9^FT}aIq8+!(~_6S (\%8X䢐m9phpr/-=uRQ9缝^(uh铁Bo2~%@{3 <4$a^:O|Fo Aa'k0-|zZ,e{nQY>YM(>Tiq1ߜҷۘ~VnʵgY*'dw ۇ34OdWc]+j1Wя n6mɦ-9r9`x=yk҂Mab)Q2# 'KQmRIDHQ)-D63& |E#5 ۛApc)8Z3!T6:!5r6Cy[8yfDIJ%%dU{$kMHͅ&U#}|w/]d#s bm9>tM 6"rZrcC׼Sܛ?e)k)鈸rb1c #673{Q:}h0_*D#Ђ}m YAW#u̢ M6S)eU |RANf<j,T]^Jb$?y?CCfK>>+YiO\y--B| ߲F?f;)Z[@0 ?YHVꛆc4kM5ꁢCE}fh"h_iMpZX@!o֡AeC6~ώv+kkShֶeY$cXyt[Y>(b{(/A'NXLދMs"ӜALTٟ&[f9bv:hh5tAp5vTIDj!PѹP5gEjY*\ɎYv *"/j~ EUs218i(4H0Ʃ #u(蹠k%L LgZ CM @1RFuDq-j,%N(l6g@@ f t6Seȿ$T@Q0wX>>;b>ls3H;ܹI*dNDTm u ^Pkk~tp_wT‡(3y?SVL:adHb,fcK ߪzr]ϻta:2y9f_Vߍt1؁DR&D`=~*Kd&u~{[/1%$H ޶6H'ttMPG؅ȂBtgP]vEisUZ~T`w5ɣ : Ź!?jP=7jUOE(˗fM@c)]Η]k7/^7ttW%wI:=UpGڰG#?&~0iDEګ)z B@%m(jNjـ?C2o RF] z(c,- R)tͻ`,=Φ#&/wb( GW V#9: >^ըAAx1jr/ Ksf Aq헤ҬFY8U,3䕹 i}X[ Hl,yx[.>(*$UIHY+ɒl 6E>!"EJyJ2wO3~}[\D51ZR]_7$ p~Ds*%4t9xS}d!1ko%%ɷ Ʋp]]ƌ6"[x%*FcSB~Qu1rq7LMe= s1nыoa&-k2i%G'Mјn0˂cfl6S !rϕz;R%eTB+:4)%~֌G) =RPyR.y-O^R)1GIK*:lxXƇ tФ\B&t#}+4 4 tgSRTeV,d9g+3!%Rg[[WK1 l췓R! Y2~#8[/K%z)5ϨOf!` nY83Җ=P3v\DZ ʿ^TЇۨU%ڗ8La 5C 6Be+%^ Nuc^)^ buاO`]U2!&ҖԛI-5!yw՛,=I ̼"+)*]`V 6cd_-Akd`ŵ*G|l PFXǓʒi񥐻Esn Se6M`UC1YS<>v @oE'h] ?@ Ydp˚ 0>IjK'-*5LD})R|g<ZP$CyK,L!s˜ #M"/"-JĔDugn5̋#UNjX57dh;6'Lo yD$V//ENcQf<_X90{Z<d6\Kcy.K UZ? 2lȵ?BWӛX4lN,ٽyo={fiAO*0?D3O B9}i3MiQ1tjv :%]_6$x-P鶚<5|M Rҙ3iKbCd2}dyտ T.%nK:zJwٚzԀH*zKnf5++K^h|Bٳ~h8ieJ=k5H|8U-CtHA4=1@5G'&i!M4Z96[lO?y27S%iw= E4GoXSPWzkA‚*fVj#Yѧ\³zAD>OZҥ0=ؕ}NvW/c)>ifG%KM }nl&bNB8++()iC\Br `2׀w t |y|N?+r-؋+3<0D1YbqPJccq@"d.WJ9(z'?upJШ7f ;4h$vk"X| ?=g{l+}g*Î^SN9:e )ZUYL]uN-J8s֡I<g~bRA(?Q9My |b2~#mSRa %r)gKΉV|i9gW t(_bc53$uWMWb&ѷĶgMn mu#NG 'Wu9}.\#˪#۔Rph* {uPb]l4Nj}^10*NSP_Tbǜdk.koJϜU-dF%3-TW }|,Q,c\xi)Z"ϳ}P&)TƧW }doC75Q҉))7aH%r_fV9֔CјiȍA#Ivٔ8zE{k˵Df#B]귢hj&`[YYǃlMhcY7 Gs<܍UP x8:9dg$Zb|i|Wc.vʢp.of;o rS|IsN}$e|wS2IPҒ2~rF1; iimK%JD4n=`KRR0tcvTb)/h;#G}*px"Zԃ_\nb]nte.6׍{Թ|owkK }|+$W7^wbt1/yD&m\J1Ѵ#btsp2;wX7rLaQ )$`avPg9̀\x OQ a xԌ駗Dc_ m~(bO+SA(,Wv66 L>f2 pDv,Ξ`d_hSb@,ÿʅ^W?].@3 ׾ C痽I'-b"d  -Ϣ_-Oa#{ك`6TX*kk o&̓kw__Dru\3`HID 3!o)o%դ3܄|WZ3%^l[|aI9 P^8DYTR#E!2Y4"d}yx,u=0U}ԟ4w- l,-թy4Qߢ> 5}-iG\s-uaȚ͌GQ&9٠hyT&hvj'r ؋3;tdv܅ȿ2:b'\j:LZ5vkl1IGWmuvm6xeb!zn3hWvSd@*qOg{^"D%F7#A5fWbf.}~׷xH_EAP|Jf)JijOvR"0#SC2v1+MbV`y>W;|Eut.D<@YMS61&c}ni%6 Xgmo9%5]BgZ(KYWQA%"v*G;a?66ʙc'*nvcZc{c{0ӂ1ۘyyċ3=&LHfRE[T)ZhTB!e,-UEa%95bi<޻s=s;^~{2`EeWWK}7fo8ު^v>A?w|/1ͥoo&`ڃst YZ{s %Ժ"&1/Te߫~.1CtT<"] vࢶ[gET #B^Wp/n?2"pA?f'*{eǸH82!\$_I];=I;r\8/G}ڡ/֗ ʜ#p,dQ΢,8Jԯo'.(>q/ԩԱ <UHwgLhe!Gnb__nǹq4ݱ%jAТѳʵ࣫K}xsxlh|w9\ F=NKs_/[n9fB7e?0vݍ.duHmEn\]H$Z*YGO|/+"jƥx p ),c` 5$@V(~h䁈;s'(c 4?,Bb΢PZԍLDcΫa>¼bIqhRZmG_yQqO'w- iH{e;rLuM3{`iga.q 8VDa\J  7̃W+{F"׻wqi1m[*xhcbPZPc$2DR{u"wC ~ DuwKLJuA)X0 Oy;cyht]n]0 kw:gYc,CpR$v`YzK70r.[z+vG]jzM]kCg} bl _sa~v}s[eٺ½8?7_tOUvzȳɯ<<ŁV[@1ֈe R0 ~,|_|^>}2 N#07 ''©~M0<Q;\p5NG^H܌m`ڡㅛМ,l1e5{*h Tb_tFsُAܹ'YV:07Qt#/Mzm|o H4-y /F_=';ob u*n*P+Yc'%p:5GruW@1u%,㳊(ʯ#= @@Q3>|% #~foPGjI ;vϯ]ŘeZۂzM/EETl:+kDsA{ʈ^98)>Vc1r|XUstnbgyl4w'\d+'8q אu!̽!s5uZc WKKBfj''N}PLBVAO{ݠw&M>4+;//>Ca-/v7z]^\ҞsO$< JܹS>Woaw^] QXrA\y18a9~K=}vG31Tñ# O rGccv|k,ƃ{j yNpܮۑD9Ips'xm86.!ktV?ve-Mp%EWs|':cH_rQ|UgJϿVm)Q@ΪxGi+.OQϧҶk@!灚.G)}zEzN>Ovw&:(3=#wmV߂7.x ]- /9G[$ܮRG`[Q]?,r0/A`}gfǟ1Z ybm`$>E4C6fװtN[OeOϯ {]Ol3lj Ň:8Ou[56omF|;%G#fǟru2 EB*n?$cS]h?b*?YmqΨ-g G}`hiU ӛ!.˰y[!Mr+|7tV9rTr`WA:4y {Ɨ5?N۫SuxwSd#wWOߊj×sgQ~ks5b[wafgy6U29 [w! Uo"8m<8F7l^k#R 5A_ƲukV%Rxec]RK~#^t5<܈0:nĊhbNǠ?^(l.|tP1Pzϸ͓eg7[V?`%erLV=afgr//!kN4H ղ/  2-m*(*ߖh %M˝=UpժBg~]OOVZ(c'*"}R Nm/bK 7FՈO5gA!Qj[SGJ;~gp 7Pe?lXbB" ;>ᕾU6 vthVO;[ezK֋k{ɅAl?Nu"H-sͅz m[?O?1?ضs?|p|1)O > >s]'yjsV|z?`~3)916-gx:չum}kW 8N3[xJ`5bC/>>եD6I'7ħTJSaxGFGytt{!)[S/aLPr$9ȝ`޶͎))޽{;T0jLəx:ʢr"r =)j&hz"{<`JOLhƥDzbJ{=R"3 = <Wi6.3(̰45%G A7b})|B{p:|1TƉ~c6uG5`,M吱), x[:ē񌥡KЊ G0)eZJ{!D oRu peԹ^? u3$ڸu R-}f}OAHƒZ?@-v] _1ow: !Bg{0'ePXb/H4 PBZY H0 &Tah C[mwy'7s_qd$529™: 3,Xe/St[Q 'N񨉌aV UF{9}Sp+XP@cFQI7G*ﶭC[ìtxf>pY P9f4  T(I @sStϡh׌6En "J`Mnnu8 ,Lʑ,J;k:Cʍj^Tì78 `88Tp`$;Fur0~wpy+07/Ygx˝76qs/l=04h^w Y{QYOw)pφ+ olܺ-6[ˆCP_`?K}5ݩa?o§Ռaf² s[qmP1@vU\Ԗ$ˎ"HE·lڥE$eQwA(\ 61 ;IBHhb 1α̒%ǡ P3כ޼ft=e zFݞN:a34%4Yb72>׸cfjl7X8HzmJ.6iE> lq t읎_pX߻ ʇϱj&[|3.Gǐ?v-7u ?pw1EE?" bW}8$FO0X(q:u 2 V.CX&ۇIX!Ѳ^T55Q)CeW1*WG.@uX_z,XH͘D't\<ǧ\F5p8տF|sy>O.^>̡ e??j3݁[̓E8ҽX b\S`+}B=>0S+{qgDl xZٙ,,cy!cel90m0Om+fm6BR3/-*̗ңFaI⡩@|ql2lRuj@oA;/j'qu& >*АC(7+џYy2ᖶEpG@Li5m}8=kA`˵/D+j[~jwUr ( 's`(\CK%&A˵O(J!#tDm`*M(j),pR@| "Y* OMM1+wTX]~ mBܖ[Ɗwz ud/Щ@R j)1s_YhBlSҙs(I7[Juyý9]H6#+1>U/w CJQP^ޢagx幃 A>(_Fѥ4ZF 3;;Ѧ-a &,@16 <  GȰ8cI3 ƭ燍;4 xOBx$Nu,lv.:8m%oKLg8CJ8l,,Dd1*J$IkCSK!lC;ٓK.!B2 ;33<3ԠGxE 0$sXTL,^,"{:D{Lb' N#W&šcr>06UX%wħ7yIjC]h49O\oDbl!X-d Ah??@*xNYRJC*9̯=ܟ^g~+4x-Yr %Rx 0: )ݴP"%읛~m{ Hn![&~!"еr-a$3@oÝ@.k[,lR16-w(1"Nok a r[ȆKe0*Ҙ 1Z &VܠaPA C0};Ƨ6cZpPKS Ob #8?$ DIm3th32+_"^&:'ƳΰWދв).ɳh u 1<",m=3@'L$?D]PX2JS K8)1jDu|g IDfvkN|e{!Fd !8 H87$k b;LT@\0ERo6 <1GCX4aDƼ([S?PghtGQ;qK}h v LQh".e Zd|g=Kq`|7~3ø!b+ $vk~҄}K?-I%~?/~ w qN u-w*1~>Cݫ_ƐM$Nq-ib-^'ʉ!NYq"\)7*{}xDjJ׉NT4N4ٽ"@!!_Mw"IN ~ B{n556SL$|4S_S\r'3C|c )ڷ 1%C{ܭ#dHCCm%/n\.BZ_-)g5Dݲh?TNIz {")w&USY=E>oQ:}>0|to͢t[(sDz0JÝ梻\ΊY}?|=E.z,x\rj~gŋ)8XCnoi5 pMxs{BD=6@! {^K[cm |߿O0.2^җ$*^^v(UI_Tf'ҥ)L's՗)_fs.9u\ߟ(K򉮏McYYO_ߧ%yOΊԾ?do!dkm@qKO!}dڔ69u ~xpnqLۻgmP~$bF_/Qǧ%:466gmIܿچPLmr=.+^T2Y>&'f(ɕQk2) }~=ہ]/s"oQyocq~V@^]s@h :$i#71آ\ZYՖXݓ@SH'8>tcdVO#g+qm?hwFOUgEIZH^~[K~_'ݸv"}>?nHzF_NyƷop?޺+?xWJuD[\;qקN==蘭vȹ[Oх m}횳1:J`=56uzDGzǃzũ^`慜٘Ѧ̏Un?K]m؄nKߓcsClNv0͋zZf ykgc~7 ݕyoD}ؕىo*^<fZ?+}%ޟWX_C z>?'>۠]%u̿+PU3鬮~`y\KJM)<~mj\6}H1{y^FZ wV'i{W0_ӊ&_9l;}{x1q}q '7 h\{Du^_y*q_~W*ɗSZA>uVujx&o72ZJ~W#һ^Q$uXciu)lW&'+MnV&%5 4& !1:tq:koɔ<uY!׹?㘂|ǧ.G8;WAb=6o5%zN N@ܧ8Igs#vLZwطxUy~f nGǹQ\ۯ8剫\ۂq(]2"vvaQ2M`ϴ=azG@/5wneEjr%*/@X.[q\X2~Œ})8_~GlsB<3;_|?(]`?G ypG.:oM.iÜvx`.šg?ۅ\D/Bh^w".Yۡ|ލ6.(޸U{gXQܺ{e/?­s~y/"k 4 ~ ޸[Ef%Gˌ^Ҁ<>fѻs_w}kX1Vwc{sO xexgƹNWN tIjO|+P7lM?6RDIWj]n{̉eEy|M_ra / H8rTEJ^Kc^2_RZJ]v٪~Oh=ls˽C=vj;=)?yw\R)K-^m.{x|AA:Hh}?U|H+]Aq\#Zz~ׯz?k?FF=*iD{ȼ1^^QRwqpL|fxiQn Jʳ3WE VQO {JLV^_%Z WEIkz-~ߨI]NMwO6Q:HRσm%öŸ(JjxUbId>5;7OMlovur{\7lNb?~13/:o%ݚN~_}qq>"Ӛįo5[פ'7og?)C>/)3#㝐Y{g$ >DO}~l4lEayfkyh^@e9 , ow`Aq1}WLo~J)e ,*.?S~QʩS2?tQin/C}ΔpĎ_-ƺ- /gCiFX4 %[75, _+/n:1^n8='g1t*^_H=⴮v~q}xO|?s!xzY69_;T}ˡo 7u\3ۇС<`%|tjlxh}$ok$f7>E<4j_gFs}zz#f;gHhs}\ΐ_ZixL׋$3o_vˬ|T[p`,/k.aPA<Nnvh.YHt )gok;I~j҉fNiɯr'4hڟ¡YM?:fP;ta׭OBtȓE%}\of}Ib=Iq '7I  bދt!Yd'K;G<Ԃ" {$"jסΓXM1ѹC%r0.V7TKmK: a_#;z ա}EyepY':U3\p7 $NN2^!'*^#[Fj7yK9Yyܥ.Cp,~X5 ?N{N=M4V m3_۠<_>~~LKU_W1T4eR]PQR5+mz Dmه0W?hC%zZMwRe~|(VsQG\F @ى z3=MDOBo!z}s+o68r۹'>}; |rrh 'K}PPv=~w0eCgppڛ(exe.~[ c1$3IyӤSI5A烉:Cמ$Wz CG7žq NJu7uӠC3Iyd},>Щc~7| w=PfDj@wY' hRk5-o38o.>in(i nasr!x~`51>Ju-jZ-LKC2V*o6tR샘8C, nchP^?jbŴ3([Mp{C?^aLCcr>Cr$| ;7Gڿgg_1ҎC;Jϕr5f;b>hWCj/F\ n^{>ֱ ^eܑ/m>abyz.x^C b珔/~՜f%@BBB޸B)פBE4ޟf_ɜn(Xwdz ma((̙b /Y*!T\u?TW&оn,{-Ǖڧ|<,CB(gdyg2a2ie+vje2.zT xghN+?VR'jw!~P/$^({ %ݭf;/](jEàC ^$.r=5jo{/~\)jR ŭqr%8bPC$~1xru|?(o0Ty__+gbi(w\O<^TW֨>:e l[ٷsukQI?M5:)Ǐц)Z/퓼AAI1A]A̡4J?tR=CYن^|F^'߾^ |ȱ<7_oz~A=۰iQ8ho>& D^nxf t7o^lMb/EwCpUTn뎹Mi&^ ֡Z%M34vjQwltCuOYwu ,5fɯf? f"Ye<2'=E)whfy|(7Bp9 -9%|n [ߡop;|H={H#h=R/IY/I藤}$4r E_,>e)ܗK_rO++z}|dz{e/t ;Cѯ -bZ:W$RCYURCW('혹Oʻv>)K2zUim_|޼.o0Pޛqo~=>{d>7}@yЛC\9r>BqUu\xryba'~T{: C7}/`A⍀>sl>|9?J⟙W__eR^5o;R5ퟥӏ/먔c/_58&?f5xxL>&/U-/3/MWooryU7Ҏɸ} P﷠-|+8^kh(:C;_/+o3sqbl|m_o4mor|߁o6v̛ No3jm:0ER|ϛʋy<*w|'; (효14R $靄2t $ʭ:Kv6tRELJ4=H3r *(/:6)ohBۙhH{OI1Eo*Z6L E#DS:R5šthWSv} ;ˑR(I ( _z7jHB;оM|kx24|/w([×LTjUnxg9^%]*tC&< D%PC%OMP55h<rMy|j@y\& C$ߝ$]r\sۙ,tF!!I\orpC+}x(0L [d3C:ݪoP@ASCߨQI(4B5Z5V5Njgn^^}T.P̓r9_1Xh# OfuʝQytt㾋ʹU÷A/~PgzQD/Џxv7oGg;J9+GLu/ _TGVq }~Ai= nG y}P>a}A(W2НB64Yg ->g(Q:C ] } ]mh#tۡ/ }Ѓнb>_@_5ʍ5w2q=:&ʝ6.z}=hߪժTkT֪PSݫZz@AcN78Ϊ^>>dT isU3TTKT+UTשVnRQݦZCNujCGTR{jjgUjUjj4չy%UTU7֨nSUݡZW^j!#T_5NWO5Y5Uuj\ <J*uժTkT֪PSݫZz@AcpƩvVQ&NPMSZZZNZuj6Zu{UU6R=zL:iUT;zUTUSU'UPS-QTR]ZIFuj:սTTQ=JqU}T}ɪTTf橖VVSVݤZMVuj^`9u=ixU΃:T\M1ݮ\ =ۡǔB:_:ΡOAa?Eg0yU:ʩЉ/T~ڎɼ?T^U5Щ} tC(Ce?K4͡o;3ݡSt<@g8MY YMQټoUЃuйV>GS>w(Sz)'C/phrtCU oMLoZh^h6r4[4ם57trXW>uZ?O=MqDGqT7 0n-8&cøe am@}i w;եf\5߂$}~Ņ${ W]}Yd/IÕyFuLGo?5d飌,bk`I>xW}N|od0O_{:F7 0?U&8z9VJ\uB $Zw7&:`πrw#Dž#`G9'7Cx9_?C)yO{_##\ ᣙ}#9Mn~74H)4+<#gYA^<,^|+={iG~=rkPS=!x [|C9S ?$g?ҿů0a񿙿m5}[?3Go={ӏV~engșS#9n?naeq'+~w#Be^jļx4 xoTx&sPf!NgN8**+|)x9VOZ:BƂ} ~^6_[ǼB,~$B#B " 7Ȼ#,=-gc;֒\R_/Gp},BHH=gN}-(}?JN18CSG{ SOhjo~gsac>e1T1k ,FgXl|F7#%V8bE?2OW[oo8[kqc|[g1ېηcmŘo1!|u}̧V8CV8o-|zb̧=!.\Fi|ТSdh|b~d9N_H~^+2-p#i;Rκԇ7It=?)gRxgUfSHoG熸5>xGg3qcnv3Ssk z+㈕?ocZ9(xޭ!+sѼ4Xka;,Mf;=,`nG\9+Z~g%s->u[?+xZ'sM5]')#C䮻_PGxI-z02cH/`z24ܭ| B^@{kE|9k}G6]ۅe:Ÿ3WobY;w3 ?(߅woj},7aWիf2ՑgG^j -:|A8s3ާ.@78`?-xf׃6Gbb殿Xg_ m_aŇ/VY b6!vE/equV|޶!Xe1:]]/fX 1l)ȧ3k/,1YR0y6a1'ȣcM#}Oe^`wMPxG0`a— SB\[Y _n+xג0hX9cw7k?t ?YgX9K(5+gA->œzjbӪO$/TB\co̩\eqxsCY=->93-< /bhqsE_RըU -0ס=zx[|'[|/*+7[ ?^FJ.+^CV!yߠV~?{7V|-`q4j~-wdeqw,Ŝj]?OVxi=,^Z' }ɕ')Oj婲ʳ/Iͭ1Qf@Cz{4>oZsfu~bܯ-bY/ZbOR4X=Zƌ7r8y/{{w{fųS-΍/Svߤ>;~%[9N>BQዔV~7N._#9Fg=xk#헫s?u}ߍkܞzq?3;FQ#:6org2`|`Nj+_ۙ3.S"H_%3?kvkfNl~,N~J;tjz^ c7kka#W9o 9˷A˜mwO~o|[\gGwn:?pW{n1aK4|weXfZnv{Gy}Fu~ uX3W elڿ]1l)߳8s\R> ץ,)c|5K_ݸfs݇z!,7gFj0ҷ4 Ikr{sNWG$>O_弮27aW2n3BjNjm?VF V*,9)wcoae79ѪSp@t^/?,}q/ +w}o \2M>'wZ_xoR+~ע<%{L_0x~C4|h '8[1S709ܟwhxp=zP)?>? /f|:Yײ; ߍ9o:~{3{/&`|_&Z> ^b) K!{-ty ܿAM[Ư#3w}NL/.+Mӳ K 9)=8 $PZ(H_(-/.jLT(#jACiQeٙX@QN P^Y_TT^RZh4 r* WgUJC*qҊ\%rP?wszN`GL_ZXAE_ȔY`'. WXEYT\RS6g׫4PhgA \ %+)ϳč^Qo'g,ȿZύPf/<~|̲UJQM[ɝ跢fgsO̒OX9OZ5tx;8ˉ?YӤr =3˛4 痎e.in`q]oi )_6 dݐ^_&W` T:p gI?ǟ+o|9>w2MƏwJ7KX\( n. n. n. n. 6MMt&iݴnD7m6M;M;M;M;M;M;M;M;M;M;M;M;M;M;DM;M;M;M;M;M+Mfwݤ~7MwBMiq6j%+ ݛ%7=+K3 ][ᩧDG;,-!+66Ln^swK)ך118*1Q IyR8i$in dO y`*]H$ȝO Fd*Ey%EE2Ksťen6^f+):\ K$Afyv^|BznEQe7 0?%ܐnH 7 7 7$K/?4 /ex!xBc(|;<џ2N"}6Ne'3''=,;+XV2s| w&2E:e"QQLe9۵\ǡ,Z^1Zh<2dJKQ`Q13SsCNXV_3HNw%\H$REfYZZn+ * x(,*yYrM˃&v :4{S*mr!׭CafafIzvU"3QuWT;YAqfKBZeW7B [:\ Х*E=(KdK \2nwv'$wJr$wIr$wbOU]+]ݴnd7m6MMv&MMMqӦiSܴ)n7m6M>>Y.}^dɊK'Z+~_\]tueW]to$x]%qw/>_x=~qvt\/>_x=~q{'!/ޏ_?~qވ"n_ 8B~ 3o/:5xD~qexe|eeee7\d\deeeeeeeeeeeeeeeeS5vs/c7^nx>uE/c7^n_}-Enx2ve؍c7Ȥ$dWaOF9H2s!Pn2v!rH޾YX(fJ'8L}[p%=@ia~Q( ,wmKvt6<&Ƥ0TJs C;?'m‘RZK]xRa[n)bK"'PBsLe(-Ϧee *3ٮi鼊r0rnyE:u#1n]!=7eMn yvsbCτ@voA77!H%L 4OI%mB0A?H=EvEWRM[6bX~d (q uqiI tYQWlg|fSSjGke]cEQ~Cq4'pV`Eպt+4[*}F@28eX;ӽd eӠխB4?wEzo3 E{/ -7CmuVdrK^Z_hx岳4<ȭ4t~XSG{74U\\V7/;ЂM_^̕M(n1O*FiOB %2P6!*JGȧ1'im*>2Y7zbҭaayx[_VN}/p\-ƥmS1d}GxuNW]ʥ: ͪC/.3ũPczk=4͕ Ey QRkQ"gK!W}hqN%M|-ryN,@5*OaV-35vC"XOQZҹB&Ya.3pB,`^{ZGn=|yf#SfI&B0it+=1!Js>1QRYѸR7nN h0==================================================================== = Adaptec Aic7xxx Fast -> Ultra160 Family Manager Set v6.2.10 = = README for = = The Linux Operating System = ==================================================================== The following information is available in this file: 1. Supported Hardware 2. Command Line Options 3. Contacting Adaptec 1. Supported Hardware The following Adaptec SCSI Chips and Host Adapters are supported by the aic7xxx driver. Chip MIPS Host Bus MaxSync MaxWidth SCBs Notes --------------------------------------------------------------- aic7770 10 EISA/VL 10MHz 16Bit 4 1 aic7850 10 PCI/32 10MHz 8Bit 3 aic7855 10 PCI/32 10MHz 8Bit 3 aic7856 10 PCI/32 10MHz 8Bit 3 aic7859 10 PCI/32 20MHz 8Bit 3 aic7860 10 PCI/32 20MHz 8Bit 3 aic7870 10 PCI/32 10MHz 16Bit 16 aic7880 10 PCI/32 20MHz 16Bit 16 aic7890 20 PCI/32 40MHz 16Bit 16 3 4 5 6 7 8 aic7891 20 PCI/64 40MHz 16Bit 16 3 4 5 6 7 8 aic7892 20 PCI/64-66 80MHz 16Bit 16 3 4 5 6 7 8 aic7895 15 PCI/32 20MHz 16Bit 16 2 3 4 5 aic7895C 15 PCI/32 20MHz 16Bit 16 2 3 4 5 8 aic7896 20 PCI/32 40MHz 16Bit 16 2 3 4 5 6 7 8 aic7897 20 PCI/64 40MHz 16Bit 16 2 3 4 5 6 7 8 aic7899 20 PCI/64-66 80MHz 16Bit 16 2 3 4 5 6 7 8 1. Multiplexed Twin Channel Device - One controller servicing two busses. 2. Multi-function Twin Channel Device - Two controllers on one chip. 3. Command Channel Secondary DMA Engine - Allows scatter gather list and SCB prefetch. 4. 64 Byte SCB Support - Allows disconnected, unttagged request table for all possible target/lun combinations. 5. Block Move Instruction Support - Doubles the speed of certain sequencer operations. 6. `Bayonet' style Scatter Gather Engine - Improves S/G prefetch performance. 7. Queuing Registers - Allows queuing of new transactions without pausing the sequencer. 8. Multiple Target IDs - Allows the controller to respond to selection as a target on multiple SCSI IDs. Controller Chip Host-Bus Int-Connectors Ext-Connectors Notes -------------------------------------------------------------------------- AHA-274X[A] aic7770 EISA SE-50M SE-HD50F AHA-274X[A]W aic7770 EISA SE-HD68F SE-HD68F SE-50M AHA-274X[A]T aic7770 EISA 2 X SE-50M SE-HD50F AHA-2842 aic7770 VL SE-50M SE-HD50F AHA-2940AU aic7860 PCI/32 SE-50M SE-HD50F AVA-2902I aic7860 PCI/32 SE-50M AVA-2902E aic7860 PCI/32 SE-50M AVA-2906 aic7856 PCI/32 SE-50M SE-DB25F APC-7850 aic7850 PCI/32 SE-50M 1 AVA-2940 aic7860 PCI/32 SE-50M AHA-2920B aic7860 PCI/32 SE-50M AHA-2930B aic7860 PCI/32 SE-50M AHA-2920C aic7856 PCI/32 SE-50M SE-HD50F AHA-2930C aic7860 PCI/32 SE-50M AHA-2930C aic7860 PCI/32 SE-50M AHA-2910C aic7860 PCI/32 SE-50M AHA-2915C aic7860 PCI/32 SE-50M AHA-2940AU/CN aic7860 PCI/32 SE-50M SE-HD50F AHA-2944W aic7870 PCI/32 HVD-HD68F HVD-HD68F HVD-50M AHA-3940W aic7870 PCI/32 2 X SE-HD68F SE-HD68F 2 AHA-2940UW aic7880 PCI/32 SE-HD68F SE-50M SE-HD68F AHA-2940U aic7880 PCI/32 SE-50M SE-HD50F AHA-2940D aic7880 PCI/32 AHA-2940 A/T aic7880 PCI/32 AHA-2940D A/T aic7880 PCI/32 AHA-3940UW aic7880 PCI/32 2 X SE-HD68F SE-HD68F 3 AHA-3940UWD aic7880 PCI/32 2 X SE-HD68F 2 X SE-VHD68F 3 AHA-3940U aic7880 PCI/32 2 X SE-50M SE-HD50F 3 AHA-2944UW aic7880 PCI/32 HVD-HD68F HVD-HD68F HVD-50M AHA-3944UWD aic7880 PCI/32 2 X HVD-HD68F 2 X HVD-VHD68F 3 AHA-4944UW aic7880 PCI/32 AHA-2930UW aic7880 PCI/32 AHA-2940UW Pro aic7880 PCI/32 SE-HD68F SE-HD68F 4 SE-50M AHA-2940UW/CN aic7880 PCI/32 AHA-2940UDual aic7895 PCI/32 AHA-2940UWDual aic7895 PCI/32 AHA-3940UWD aic7895 PCI/32 AHA-3940AUW aic7895 PCI/32 AHA-3940AUWD aic7895 PCI/32 AHA-3940AU aic7895 PCI/32 AHA-3944AUWD aic7895 PCI/32 2 X HVD-HD68F 2 X HVD-VHD68F AHA-2940U2B aic7890 PCI/32 LVD-HD68F LVD-HD68F AHA-2940U2 OEM aic7891 PCI/64 AHA-2940U2W aic7890 PCI/32 LVD-HD68F LVD-HD68F SE-HD68F SE-50M AHA-2950U2B aic7891 PCI/64 LVD-HD68F LVD-HD68F AHA-2930U2 aic7890 PCI/32 LVD-HD68F SE-HD50F SE-50M AHA-3950U2B aic7897 PCI/64 AHA-3950U2D aic7897 PCI/64 AHA-29160 aic7892 PCI/64-66 AHA-29160 CPQ aic7892 PCI/64-66 AHA-29160N aic7892 PCI/32 LVD-HD68F SE-HD50F SE-50M AHA-29160LP aic7892 PCI/64-66 AHA-19160 aic7892 PCI/64-66 AHA-29150LP aic7892 PCI/64-66 AHA-29130LP aic7892 PCI/64-66 AHA-3960D aic7899 PCI/64-66 2 X LVD-HD68F 2 X LVD-VHD68F LVD-50M AHA-3960D CPQ aic7899 PCI/64-66 2 X LVD-HD68F 2 X LVD-VHD68F LVD-50M AHA-39160 aic7899 PCI/64-66 2 X LVD-HD68F 2 X LVD-VHD68F LVD-50M 1. No BIOS support 2. DEC21050 PCI-PCI bridge with multiple controller chips on secondary bus 3. DEC2115X PCI-PCI bridge with multiple controller chips on secondary bus 4. All three SCSI connectors may be used simultaneously without SCSI "stub" effects. 2. Command Line Options WARNING: ALTERING OR ADDING THESE DRIVER PARAMETERS INCORRECTLY CAN RENDER YOUR SYSTEM INOPERABLE. USE THEM WITH CAUTION. Edit the file "modules.conf" in the directory /etc and add/edit a line containing 'options aic7xxx=[command[,command...]]' where 'command' is one or more of the following: ----------------------------------------------------------------- Option: verbose Definition: enable additional informative messages during driver operation. Possible Values: This option is a flag Default Value: disabled ----------------------------------------------------------------- Option: debug:[value] Definition: Enables various levels of debugging information Possible Values: 0x0000 = no debugging, 0xffff = full debugging Default Value: 0x0000 ----------------------------------------------------------------- Option: no_reset Definition: Do not reset the bus during the initial probe phase Possible Values: This option is a flag Default Value: disabled ----------------------------------------------------------------- Option: extended Definition: Force extended translation on the controller Possible Values: This option is a flag Default Value: disabled ----------------------------------------------------------------- Option: periodic_otag Definition: Send an ordered tag periodically to prevent tag starvation. Needed for some older devices Possible Values: This option is a flag Default Value: disabled ----------------------------------------------------------------- Option: reverse_scan Definition: Probe the scsi bus in reverse order, starting with target 15 Possible Values: This option is a flag Default Value: disabled ----------------------------------------------------------------- Option: global_tag_depth Definition: Global tag depth for all targets on all busses. This option sets the default tag depth which may be selectively overridden vi the tag_info option. Possible Values: 1 - 253 Default Value: 32 ----------------------------------------------------------------- Option: tag_info:{{value[,value...]}[,{value[,value...]}...]} Definition: Set the per-target tagged queue depth on a per controller basis. Both controllers and targets may be ommitted indicating that they should retain the default tag depth. Examples: tag_info:{{16,32,32,64,8,8,,32,32,32,32,32,32,32,32,32} On Controller 0 specifies a tag depth of 16 for target 0 specifies a tag depth of 64 for target 3 specifies a tag depth of 8 for targets 4 and 5 leaves target 6 at the default specifies a tag depth of 32 for targets 1,2,7-15 All other targets retain the default depth. tag_info:{{},{32,,32}} On Controller 1 specifies a tag depth of 32 for targets 0 and 2 All other targets retain the default depth. Possible Values: 1 - 253 Default Value: 32 ----------------------------------------------------------------- Option: seltime:[value] Definition: Specifies the selection timeout value Possible Values: 0 = 256ms, 1 = 128ms, 2 = 64ms, 3 = 32ms Default Value: 0 ----------------------------------------------------------------- Example: 'options aic7xxx=verbose,no_probe,tag_info:{{},{,,10}},seltime:1" enables verbose logging, Disable EISA/VLB probing, and set tag depth on Controller 1/Target 2 to 10 tags. 3. Contacting Adaptec A Technical Support Identification (TSID) Number is required for Adaptec technical support. - The 12-digit TSID can be found on the white barcode-type label included inside the box with your product. The TSID helps us provide more efficient service by accurately identifying your product and support status. Support Options - Search the Adaptec Support Knowledgebase (ASK) at http://ask.adaptec.com for articles, troubleshooting tips, and frequently asked questions for your product. - For support via Email, submit your question to Adaptec's Technical Support Specialists at http://ask.adaptec.com. North America - Visit our Web site at http://www.adaptec.com. - To speak with a Fibre Channel/RAID/External Storage Technical Support Specialist, call 1-321-207-2000, Hours: Monday-Friday, 3:00 A.M. to 5:00 P.M., PST. (Not open on holidays) - For Technical Support in all other technologies including SCSI, call 1-408-934-7274, Hours: Monday-Friday, 6:00 A.M. to 5:00 P.M., PST. (Not open on holidays) - For after hours support, call 1-800-416-8066 ($99/call, $149/call on holidays) - To order Adaptec products including software and cables, call 1-800-442-7274 or 1-408-957-7274. You can also visit our online store at http://www.adaptecstore.com Europe - Visit our Web site at http://www.adaptec-europe.com. - English and French: To speak with a Technical Support Specialist, call one of the following numbers: - English: +32-2-352-3470 - French: +32-2-352-3460 Hours: Monday-Thursday, 10:00 to 12:30, 13:30 to 17:30 CET Friday, 10:00 to 12:30, 13:30 to 16:30 CET - German: To speak with a Technical Support Specialist, call +49-89-456-40660 Hours: Monday-Thursday, 09:30 to 12:30, 13:30 to 16:30 CET Friday, 09:30 to 12:30, 13:30 to 15:00 CET - To order Adaptec products, including accessories and cables: - UK: +0800-96-65-26 or fax +0800-731-02-95 - Other European countries: +32-11-300-379 Australia and New Zealand - Visit our Web site at http://www.adaptec.com.au. - To speak with a Technical Support Specialist, call +612-9416-0698 Hours: Monday-Friday, 10:00 A.M. to 4:30 P.M., EAT (Not open on holidays) Japan - To speak with a Technical Support Specialist, call +81-3-5308-6120 Hours: Monday-Friday, 9:00 a.m. to 12:00 p.m., 1:00 p.m. to 6:00 p.m. TSC Hong Kong and China - To speak with a Technical Support Specialist, call +852-2869-7200 Hours: Monday-Friday, 10:00 to 17:00. - Fax Technical Support at +852-2869-7100. Singapore - To speak with a Technical Support Specialist, call +65-245-7470 Hours: Monday-Friday, 10:00 to 17:00. - Fax Technical Support at +852-2869-7100 ------------------------------------------------------------------- (c) 2002 Adaptec, Inc. All Rights Reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical, photocopying, recording or otherwise, without prior written consent of Adaptec, Inc., 691 South Milpitas Blvd., Milpitas, CA 95035.