summaryrefslogtreecommitdiffstats
path: root/urpmq
diff options
context:
space:
mode:
authorChristophe Fergeau <cfergeau@mandriva.com>2009-10-21 12:16:31 +0000
committerChristophe Fergeau <cfergeau@mandriva.com>2009-10-21 12:16:31 +0000
commitca8aeb40d48d21095354e1ce65673035d931f270 (patch)
treec7eb4481576ae8e9da2cb18662cf6621cb1d317d /urpmq
parent9fb1dd823d8ff51280fd7501491b6fd778ae5343 (diff)
downloadurpmi-ca8aeb40d48d21095354e1ce65673035d931f270.tar
urpmi-ca8aeb40d48d21095354e1ce65673035d931f270.tar.gz
urpmi-ca8aeb40d48d21095354e1ce65673035d931f270.tar.bz2
urpmi-ca8aeb40d48d21095354e1ce65673035d931f270.tar.xz
urpmi-ca8aeb40d48d21095354e1ce65673035d931f270.zip
add --not-available option to urpmq
Patch from Pascal Terjan, fixes bug #51418 urpmq --not-available shows the packages that are installed but no longer available in the configured media. This can be helpful to figure out which packages are obsolete after a few distro upgrades.
Diffstat (limited to 'urpmq')
-rwxr-xr-xurpmq20
1 files changed, 19 insertions, 1 deletions
diff --git a/urpmq b/urpmq
index 11c0912d..bed74dbd 100755
--- a/urpmq
+++ b/urpmq
@@ -51,6 +51,8 @@ usage:
") . N(" --synthesis - use the given synthesis instead of urpmi db.
") . N(" --auto-select - automatically select packages to upgrade the system.
") . N(" --auto-orphans - list orphans
+") . N(" --not-available
+ - list installed packages not available on any media.
") . N(" --no-suggests - do not auto select \"suggested\" packages.
") . N(" --fuzzy - impose fuzzy search (same as -y).
") . N(" --keep - keep existing packages if possible, reject requested
@@ -176,7 +178,7 @@ if ($options{env}) {
if ($options{ignorearch}) { urpm::shunt_ignorearch() }
my $rpm_lock =
- $options{upgrade} && !$options{env} && !$options{nolock}
+ ($options{upgrade} || $options{not_available}) && !$options{env} && !$options{nolock}
&& urpm::lock::rpm_db($urpm, '', wait => $options{wait_lock});
my $urpmi_lock = !$options{nolock} && urpm::lock::urpmi_db($urpm, '', wait => $options{wait_lock});
urpm::media::configure($urpm,
@@ -249,6 +251,22 @@ if ($options{list_aliases}) {
# use the generic code
@{$state->{selected}}{0 .. $#{$urpm->{depslist}}} = ();
}
+} elsif ($options{not_available}) {
+ my %available;
+ my $to_string = sub {
+ my ($p) = @_;
+ $p->name . '-' . $p->version . '-' . $p->release . '.' . $p->arch
+ };
+ foreach my $p (@{$urpm->{depslist}}) {
+ $available{$to_string->($p)} = 1;
+ }
+ my $db = urpm::db_open_or_die_($urpm);
+ $db->traverse(sub {
+ my ($p) = @_;
+ my $s = $to_string->($p);
+ # FIXME Use $pkg_to_string if some options are set but default to this format ?
+ $available{$s} || print "$s\n";
+ });
} else {
%requested = $urpm->register_rpms(@files);
^@Y.Uad6*:/^}?;&qԵaorqYF4dwI.-lGy7wBk_Soex?ٰ.S=aoy6vDf,Jk[zAM!l%Jo3$'N ڬ!ra_Fĵ}?Ț`);XvHD t*ypT%Z?zi*Ai0 ~&[RG,gNzH'8O}gJ'S9EFKG q@G YzZ$g6+¦ ne`Ki\~fhSwx.IsVxrvƃ$AR|ZAGq"oU6"["_([/qU},쐛h 8'9WL]!K%@ySKX;N=6݃8I/~2 FAh]6m5g7=(f2$El*HϺGɈ^QZJ/e_t @YvmHNO6a5p $eF^.z,ݬb-Cup7u>bL:ԆfA4|#*6u͝ry8 vKs"bK?C eu-OxR~??o5 䏇\g; =/FϪά83buV!6AeG;ڗ7AG{zki J3eMKb_'_݄Qu}{yX  c: ~~(s[S?Ur!(ˈ4lN"49av2ڔ̋؂ӀE k;T_\zWr䤉jSQu&yPP@I渢vbD_zbCBD#q~"#81cvT_~Ҹϭ'n_Y-j`jG]z9;6RX&ZgCo9 {Y:{r^m J_*2EhapTK $B:O]7T\~{߁q әJj-_Jf/zNKmT-f3ݕs/~}|<yq 3"Rt;`6l zÚO8<;V{bWu] \ F@}ghaP. nPG?5nǽSuS1FKֺNX D[Բ[ Eǟ 05 u Xq66TJnKW;˘ 7ܢ^#Ҧ~iTUビ|If'kKUE Z*s)"\~HZ7Quo9 ,rŵx@W?gfED܋WO!8{ǼԸ9} yOQ0zΕKLHw4tw>BB>đoo+Ue#L5OSZv,C[il!Wm"|3Ɩhuy(ށk4~uAm[+ BqUK~ Ռ$LD@lwWky{*Q۴NPk;9 fZCJhLߒ`3{ۗ`Ru.\�'{'k` l_6I3} +~hUTjAa'_B[lْaz}\zVxjF,g=>o7kܳXh큫pAZk]Ӻ!:B8?sј2⌶%-{(' Xk;WA  9X= ӈCl;x =R3鹞c&%5G,;2!ґ 2B6ˢȘO }9P>vkmOKZ=+QX;rͻ9uii-|6#G T)=1ŝdRbRx P5UE?Xlб /y/ L}>}b;&lAOA>T/#xnVlkY5DP],yl]PGWMmUC)HbiEZv[%p9Z%ũYGò-OX8M- 0UHT.L28/v $PC /yyh c`0 zM@&\%F:w KA$Gɂ6!S7z%DVˇA?'[̚}F~}2oJ`y4\6.wl-}8#h:]ׯ6_tQ{M0x-( Jk& z/3;*GP௾&N}1T̵@tA<=aZ#7H|#2vm/ 3Jm1ao 㟱߅$r:VH}U?Ei ;-uAfq& /cV$ƒe0 `¬>#ډg PTlxGҶLMئ,2 xY؆8_!Oh@XSeH ,-l;.vh'"ٲ }|)˕uEyK:R,].9<ׅȪ6.ރz,xdPǞz`Xav%?b9agr7_Sʅ9|4s򮵧`y A/\n+v1?Hn1|t I|\K*^3yN+2aTw[%\TKL tхO2+]ʧycPФ5~A >6/QbMGq|-a9-GɌ7DP9wL.>PJ(./Wd~킼TMaȫNhOѓ S`_Y8H\O!Z1B-Z[)шޒ!x羃.Oʇn -_ +Uۙc A%6ܭz2/{bE<$.!X]#.F~9tE'G>\SPmX}yR`0H7}> SnM'=n<rP,b~`-8b0JQ+T!i >+k- A=lhuE07t[E0<4TRp [~cP:%CLZ+N&dĄGwC) 'V O%M2f:4PDsc2P }Z( #G0L/w.4mFGz#Eݥd w=Dݯ=( qfeyL[.`SIy# -xPҷ8wcO_7U4܅xȄ?YZSh"iTm h6tEDQk2P )rаj7f+qqWYT(O5ĦlvgWQgsj$Q:+l9vXcI L$RݼlL˰5]ӹO-#bfvi{D-^~kH{o#Dڿ"鬳T;[Sc˟Zy^\ym=cz Lٹ!З2vivyj;Drd@Hi@gZԥKn57>u~ y26k2g9xs^{1 ^Nmc-f(em o곎ic\(>!b_ntWD+7v'_&4 >L_@|zId K~i&4CrԚL&g~7nėٵ{xW梺[S m f)m9+0O& lQ塊6>ޯ x9U@WGKّ~ѵpwЋ_*֢J!xS1伄ox%Тل_?xh͕  #"CHQKT?˻oF=P?b&#W4' <ڕ%7(;IMm:>߹}رYm}[ZZazQn'mI ; 񊂾l@NO` g}QL^ϪUA ոX s|Q)<"%zu^1O6M4T7cuqwFzy_Tp\GkANAyeYx8Qc#cq*X`)塲7Cu);)XEKCNCEFkem;Ƥ +לW-Y"-$QHs5OPZnqg;ɠo!Fi$M/}d =Jxa fQ*W$8`}֮B 7-?&3C~ae2ҧ\v/ L$\mMz\ K7Cu4}>\wD%C8έF jPM"Lr۟&#lO*oAZ B c<ԩS" UA3S 7ߕ3O*qNꮣl+0rs2iv#d=)3.6*|d"߆u)]5 ]fCȴ{f͸͓`^ 6Ͼ]B4嶸X%gĹKиEEq SAjd,q5т>0 K\'YκEAqT|x֤U!??D׶ȟa3ge<\s=2#\#!Exs2'ׅvE }a9c?^,Un˕CMA"ZL2+aI˫;aUq{@>23P' uOQ9*͒e KiMx?7iOȖI *AYc$o^{F8OHN)epm,lMW?%q N̯/)W:δ=iݬu%8,J27(*t<u|GD6Pll\$B֞~sY?Fp:;4nh_񙝙SzcRF̫HwV`dDƻZ\G\S~X9k'c &iK)߇20F)׌; /зj}Kzha(;w/+Iqlcuؐ=jK_A#(ߍZTU1|喘mL4`e<}Qz*Q`Lh$Iq 1F'YvzI!А C &->QJ! 'pTo8 E8gyoQņ2E=-'A,5GSU%0@W] $_T5lI'x|8+LO&d#Z>D*Oզ׫&|ڗ/poRA_F!db8+ʈ _[MS'ps'u1n$x Z\@d? 1e%? :ի(5w!꨹yB*|?PAeiJ0Tv b98cU#جCki0Kș,],R,\35hI}ZQ ذ ^ 7'1=2G /y {vphOHH!jnwliiKFdsׅҫugo)桿KA!=ܰ;a5&Jg ZV,) elڽdקzTu22Ѳ1] |4A `[ۏ͖E)i|h 15`ȉ^ ;,L!`5y G=!~ h*f{Cj}H?5HfwbSRsl&:B&P ȩ^22A-b䱋 ?n{@wcֵ#Olcù=9UD8C,hÄ``ˎdPx75K|P>lOgVE/9TtS c0g.`ރ}GC>D ,5ctyx9BJ&", iv(w.^_6 F̶Vf֮&IFb}_hbz~Jyu Ĺ7-dS: ƗT+P )&(+#Ec^CDF]Scv+y)Ȁ<k1AWɢi0U)fq: CT0DC_Ej>P]5L=,\ޜ`v3)W٬vmcԟbLv=8q sw.ZpǝXK'MuOcm;pK-hq? _~iͺۏ dx$^* rpnv_Nҋ?Ou'1tg kɓ6By=` bQσzTWGdՒ\\Xl9 oSmHRT.WV !<"fRǺxNz өYzؠf+ifY} D O9{H!Md;Ü/k݁', fE'sBw3ftYg D1㫹k ;EGNpe _\ˈj.B|p5dIyBN -nN qmrF~ uV{v\}\`Xh2$9' L*4ov1$Rwy^Bcrр^L\&AoEGDBrp%T!x.yKz7^ojR !$7pY'8A`}3wb`!ˑUwvFx BR!W"@J1̀SϾA\o@z %AdLU%( Ez$Vz=e;D#ҞžW1G#rvhȸ^y߱| '.6RlWc̥7>TQQ|($~0'MPLdA>Z꩚$s`gB:o1ZQ@ٌFj*~/-M![s?C*˒[,8oHNo~}8?pvr㶸 ސ[pIa8W  U1](/~ 6^E1r !`v9li;j1Ix]f̶a&ʨeGi^rBZx!ju! zPK3ߪ9hD ?@j2:ʊԥs֛al"C)YdHl|HzOթe邎ɶO@Cu$HV3P\mLgz +Hvӏ skL_(8t\ a$XX=F$~J,Jkh}aFmqҺk_nnZrPmfk 5Qַ?-hA]1"!VѪI^[c&bs];7=M<9>e(7blaD+@:Z FBNOHFIEj]jTT/q"s>}O-L+9m`y.anzfCb,CqA8r*y)6{.&U9 tɭHt0v[TfD',); >JceT;Zt} _`zT;'+~=g`-j7"y51x5f!ZB, M>KdHSxc _OG?> +rN4oG gYi_+ 4TM9 Ƅ,E4^FnKr̵YױpTAIR!aUҮG7N#(,Ps匿W5ʀ2sM]]SX mܱVqZ>]V}A]K| Y6Ԝ{&9X5\tc+ϓ"PCa9:B pN pm5Yn"020ELM-O@+9SW~:GyU_QYO%*M 4CdaV+spr lcԻzda_hEK:`%I^Vtpph1\u9r7Oz,,P7{hQ=x/>ռqNb#4Gg:wEJo#h!x='v!jT3]`$%\ ^lTaaHi&>|"&l=# X )X$:WYDC EuLfv.5as$Cwr^D(UQKnTLksm2Bd鐽UʞZ뻻-lVDXx\wⰜho8[:tS**QM]qck܆"KUq^JVנzd۞Z58{OR&̇^|G;mS| *,F~㠎~a"MZ ۘti#wl_kd)V_$~&5KG_ h}9ѢWP~ ً۵"Ah3c5y֣)]2(XbC]i/NPt#U")wcNrTK-I4u~cHLGg=oȳ2ٸ'ILo}^cl?\B<%ʺ)Gf+艪26-XqÐ@drl*d <,A^KYHut{g)XοR_Lj(&.L!~U8KZu3rLq]W:%ry6cfG "ɰOW#5[|ZHR- vav8A0y8EA@e5HuAtz +X̓ة\/RHcfp_ QʝX(:˺VSNUKFneR.]!÷ר\FdD0~m"g^I@xH(Lz9*3^Vߐʰftdl':;q#c 9cȌmŠ|`Q &ܨ_w!eAU~%3vA|TofXc@4zSy%LW\j3&O"J zHg?KpпK3OK޷S,LÒ&~P r}uD4*} jHjDEġpO:19#!~2Lee}=`4s[1b>ݤ.C\o`HP:pMmUY%f|N$%d![tS\_6NAg$Jf+I^3 ]@4 BGY׹OCsL z/@0=EP$[̩6'А k'9f:^EA^+ $gp0ڊ-B0WEc"Γϛ$ Xcf_͏ 0p|ȭ-P `1 idZgZ^ɦp (&? 9z7M0r]ëCX@āC!Rh/==֙!AcO_1.𣫚11f@b3)j_-dwjT$m]!LM52ip]At71H 9"vHV^ZGYk2 s+1c["EK?.pZuݎ)3FG$== ,_E%$Cr 3fKHY}*jזQk%u$5~B'ƎE'"~W%ɩ%ZmF u CzO^_\k>MJ>mjg& OFIW.~bB^΍3D=\Ka]D0Vb6,5IĹp8ܮa#0 Yh;TR6ANf}r4@#G{rX$(565ףI *O-5 {Tݼ[#"&?sE9,.?2Ktqa,}9u0m+ùmРuDvA[S o2U J6:~C)&)^oZN՘ʄ8.ע_Ӱ1TM͠)6PzAyW7|CZ[<̠+peLVþ1.gt(᯦ cC泱]Ӱ|J\ \> hVR\DKs͝"d.g!= hUhao;[St̘*tmb}KߟK3q`qG稁fZ\]=Wl0CI("*aiл oJn',m鯨Bf~v>!qՊOt'>rnߜ} mJ*z"iښ?ji]\LjW}h,UҠӑµnT)hw]sKg$Ȏ6u7hohC K{ҙbD,!,Q-x0ΡdBah2& ݳ{%GmO`3V7Z*Z| Ge'3G:]g԰jy9*BJX@X%LxL`ߴZ8Y=Qh%s:rR}ƊTq=r@`(9 e+!QEi~ Ni 8O~7Z_c$xc:fᆄw^WVZK* Jbc)C҂?f-C#1tHf7zOI'pG73MLJ6: 2:XX/HҊ)= ÎV{"pU=h*4Ь"pUe/,$epvKg5-+Hsff> D' /bM[RL :9Uy<[6r}AM=}| %K{+>#ţ ,.1cd\i?=@58"u7Iq>Ss*'⟼CُҤ29Fs<ԫ;P4@t;!О!cχJN`AX@%M+rM)v-7H|Q"NVnnRQB2LM(ݷH1~t_^_/|d ,emI=e^mN#\\p7c^V@ (_@.v?ˑ{o߅m#Rh0 NM. Qte=C5B,ZiLϑƉ4>[f働Gt᲋ LpSMWV2C35M ?oC Ոmi7 @{(MY)ג!q֦̱IDQbE%pʸXXAOtq?? !3sG0Y8jUlY$,W΁"nZzb͡ߕ3@tF^|"8l ݋P (@4 qg-FHIx8b:3B^=Kh**b|9cCEv%zdi_k84AwW(v\fYZwI|e߃9q2_=~=z 4$%PT]H)mtB.r#`7!(?, |ϭ?BTdZ[B?4mh1t,~Ѫl/ Q/4 mxwaܘ׼(;JtJx 5 ӭi"1ONސ F ȗ5rbe"ynƃȕ`A<_02sgO^f,\sɂGTʚwnD[TI 5\A#ԩ/Yeȓ0#vG[BA{ dEu459dӄ.=#;W nes<&NrUZ0> S W ȢK^w+ѩgN:g)(,$#.P!h͘@O̱xޗfB\(|eOOCn̿mb[yu,_ֵI]OM(Lq|=p;nڦBS.M7#Ҹ6sM2 Ag=Z;EC@5)?@pa46?fZအEQp" i t&ƴ*з)M_4V Ϣ YV prkr5/ ϙue_HuIaLJyPwEd$b#V{٦i؋uZ? |@E,‡i:| &3+gjyn*+bK !j*kZ8βfG࣓ =5jA#d:1zޭ7$S~G'[ĢOiW4rAZto)#L<]*nBm/} ֯"*AմIV,Aq/;+pDbwP)k*r6uS5#EjZfw+u$ jI[W5Ab~ {iBCNΒ(x8$zV#۴tQ.MI wޣ|LI/,,gA AҦ;͹<ǹ9|im=eb{+Hښ2+@M%GrxTn<(! B1i9hZl_ϧq>xKbߙ_>3$=Y̰ O5}cطN7[kMSuB‚*42#>Ag>6{/ɔ`}nDp9C8.ňE70`fTSh |DZ-4>ǂ*Wu^8]a_|'A_ 9ž!z|=Đ fAV{Yv~dUVTR}eݯmP/~Dz~p+l's,NI0ϸA6k᱄=B?hf5\xcR*QEh$>.J$¾߼(XvH2o3О?Oߙؽl;0]=r-H9Jɭl:BAzҠyorHfa}+o Whe> g/N Ty\<|HI@oMu[gu2ǘ*Λ3y_ׇ]\Tˮ>>7Abض.ځGYuu= 1͉!-seG8r5:"6Фz{`SL1 FU8)v6(Q{I_d@ ![X`1'=O6X2hsFͧP i,o|b ɹ>HpiU[{@{9ͧIxR`MD\"nW̐POO'M4L ^/IGO|?{8qİ  o0q]Ƙձ.~}@JR؜!X,S9Χu䩑"ݑbtgub˜]Nh_?sP{#,~Ub]ϻTG.w~T/6%f[M){WG&+ C3K汚8Ru \\TϽ1 PrH$<8)͜ \RBXa`Vl#lntOѮXfUͮƫ2p-(EPOΒo[6L]/#xG*fbڔaP7QB8кVab(Wk'O8kcQ!֣=o!=Z4#fC{ L|ËV9b7u*VSdv#&ZhLu$W} @G~ÞBT^2?;KOova{nfl&uY^Q j1Jj+]w\qi pL Žp ɘg_~@L.$ f'w7"V Fެ@e*B}Kۉ2G\bZ3SJ ,a_&$fYvyyV$aѬ$/lRڂzDӄ'@bn}, ~Lo3_Q;&kaqo' X!BodT|C;t+uЕ 4 ˤNynZB4F6;=~27Qgb`=wuؼ @&t4A>p%ȭ/8 - ?#6vr0VWÚk" <7sV?{wˆM v!*cUߨ: b O8ڏ4{Wi%!HBGۂٕ/!ۥ^0PB3ח$ ZʼLx&cCT>)?GU԰/|foj G##~EyLvs+^ g!b,<φbښU]Su \k@^{o*!q{]A0ZWB7G?j&i0w cCE<=1({$*6,_js6+a u>VR֧'gT< ӂZc-qY!iTzh,,r8eTVX7_N8 Av?>,sdSf' B5p6lՀn(pZ[ )_9j,.dauef$dZGNcuwLi}F))韧 ,AD(4@|M]K(JVcM@rnmr-yDW;39ܜ)ߝǗDQs-+n"gשf}Ly6؈PnitR|k,6r\#~|1:ۊ}IRdU[1^K2TM: z s;%.@fxa(8MQe ҈ u*"v 1`y K 8աY OdU=Lđ|ڟfaڠ!Fv dSv[a ;8&^+W$nݥ/K-QL !7l8nc&ݱU@T%=XB?oG9k▮5^ g200+c3!ïn9G DU s-:$ƏK:ZJg1MYGR3y*ks"_[j`FAg'}T-q~Fi!-V+Srvo#Ӎ> :-EA"Ѯ{4TP'~0-mG ܩS$TK>m{ynxgUA/Pmӆt=orcGJ,DՏߩlpm89"2Ξ`z[v]_wp蝘b<Xm " Ѧc g<4@AQ Kna`ޕ-!cDZS ǧJT ;nv6<eOSzCiQ-'JmZywt:t:XAS2P>OhOs%")<űґ~Ԍ+ޮwr4"K|4i`o #JiEjΥۃ_ܲQvV@Q EYȕf:ؾZ8Z˖.q ӻ1TtϚy wV&4e\'%MMxp[K-dsp+e VQFe5 ¢LOC N?7wSWcQq &ĕ(vzt\%&iAO5G^ur[ю! sP1ylԨh+Y%$ =d^ՠKGX!1LiCx !V%wbKijW~}}dmoQ5Hޮa9]}Ц.)wTgҪIkkrm x,k- 9}3gǬvD N̒kRLzAxyt@N6#"m&gCՖ3xrVkB r>}T3ف]? A@{9!M3fӨNi4@f=+ ~s5\f\^lGh^fiiNl!.Ǝ}vD,ie6*b+ Q4.M oFg9"z׭sB"K8!s&@ PEOfP+p%H6 v,A+ve@pJNc{C`ńGnTש`cVh[t@Y\ C`]7>r':f"au_sMOh-ܳ4Hg 5V)m%,0Y2[N? q1dG|ê_BZ#azXgF M㿃e5co*iGcU4O/ڳ*hbH̕SO|"75z,E@8a.ehk ^GX6{x lr0ے [KXUg<ׇ* %q/R>A?ʫ#DbJ'o1KưH Tmxͥ /sYowwj_1AZeإMC'+;u]|mY0M O1wTz%x`фF,nF6ho.塿BI;tF8)`zm|[/gN$hJ0 }!F^~?\R vɓ9R4$ H;_2O#`i?0o,mxnA6&4  MG+mo7J?M+SvX8dvYDyzxˌ9:^e eh] %4avȦ_RL!wqN #ytk ?{d;0CKAJ{y/x^ HMT݄,']9'5Cgl nI|J{'K #y2wBŘu/.dm.5w񴡱;9W)ǭgqS#gno;ӷBK\#$7|[Z2arȠ#B5;IL;,2kN##LI%ywz|]h;L,Dv &FzYoAfZ!ޮYyʅBwVϞE,{i\lZ^.3qq;=顣K> J37DDjPLY^/s~}bK]HIW;@. ll2n.E&ǦU,Y)XG:<2%ݴ8"7=?a`fSB"jIіnN@b5h=ǹF:Н6[̻o[:Eu՛K6&<rgL7jw6E/D0mMᄻIl*qRwTtz0]qźD^E8k׭Gr 3Pw|s2IϙE1?J\ұa@؂7v,l> ]ja<\^DXOP>v_6U1!K.O%;$d:OWrBQIMCr RDM]3\HȜ{"˛ ; T̀e09 TK Fg#`Lu8{jnnGդڠ<ZR\Qr~ڹw0.)qlU_)$Bwl&'?s)=CR r&kLj'.3p [E>غuaUa,^F,'\m )fZp0۱Mqks峫W՟E\v 9JGip7+g8D0s*o:x8Vi`r~!'s'g5=)8<%a_p*ohzޣ"i774SO C`ؔ`|SZmG_ cm)5hVtShf,ܕY^rles]B@bh/A1L[wme,n{79^c0LszfOqŠ>p't>w@@1 GAR8h$6JC c5]7q/_㞂<( T/)S =)KNwn86O`[3*.R&DHPIxuz3&2xp_ISdQJld`znߣ,1߆zHA,63sZQteOū7? !`=NlhoyvA`k/$;]aHgV.q4?O 2]tmbtOtƋ.cGo9%Pt|t1§[³%H0 P$B\O\!yQc/hWKp6PPK_U!D&hҷ_?*Gx"&C&yPYx}XKEا<J]>Cz}weexԮ(R|J m[[+19+݌5]l\ߴKӧ)P^vuk;0V0gB26@$G{ Q3Ē?Q[¦|H}Qgd͛oi2XIŌ:REnzFek.RHR՛Qv˜klOdFi=bϾ ¦еS&b"=xA)P_۫mxrLƙQ*J՚{ٷ+ 3^gG@Z!_s"ڝ7&u/Q + 'И`p{vù?Ruj "aKNfd(%_}Lk_ /NQW~~m^M+Q\?5]l,3@DuHw:/WiƷ,y)ԟ<Φ1ӏRbTJX&b"K/wZѣ_+SY!m`ml9)ŢZ*J7Gdc(n҄1A\D!;Q/[83u9']+.G(iw+`x'^"('Zvգta[ Z&у㵄ȋG +?Y6gNR0*?y1<&ys  WoL?Q հߑM1]sld:Lv3×BȏYŁ?L*o<#A[N9z7o/b>3j|Vn:]dB PH,yї@M,7.NFdR 5ڿpĦ%+ª{tXF ׵51(4>l֋Cw[" sW5 E  M/ >,;Z%UO&ٹ0(Ҹɭe*7FtXj!lsYxÅ+n튾.Զ֥EPT"fՁ-tMTϘ Roy`XQ_T]Zm&AT Ɋ|i`C޾.絛!,M ZP>\hO@s-B_ȍlTc*\m/'jsLipZ Lz$F̖Q9xIQuɩIAio.h}[.mYčjLK Mxb辠[ Ǭw_F쭹՞; _QUGmX#%̽ .a[,=я OT_+ERAk.W;Ijx2 ](u8WjRK%p ΡEwN}Vj0^7q*3Z +daTS_Dzxt=+ERxwU_f3zm;#7 F'qmuK٪gwNSL.K/қ~Pʙ;51=trU I|e (o:>-T67R,I53H:~MNnj.[1Bܴ)D}_4,a+{3 FcVC IFo}S{(2(g>k`a#Y}wxpcaHd|N}!ٿ7h- ed?x}'nk`_AD9M/%Be~8W޴H r&RDMCi}goѐ@5ϓg{d,B]f>m75j_(Jz 8&)%D`jZU4ӓC K飛ZX$67-NVcO^$V>ʣ+BcCWc6ІK3<1pΩTN~:T^Hp`ZEl 3D>;SgPW-{ ٲ-_9r`ln:qt>ڤ6I)@xNDԭɝnȼ!4)_jl* #I$~2Uoxj2|A !b$3hIif^ @}tfke]'KPk* h*>Sg:"A͓M/}h~7^Y2*bE_Q9Qzf[ >Z;h ;5=R+n7㞸P4^MT]`rЁN`:? z:z[;TMC 0 b\Jw9Vywr;3C8<&:rZDM.ײ]`ldx"73>$a/kMx3(ICse=]kls{*.Iؔtd̛'/J)P.ڌ9r uݑF]aYl'Ʃ V@.Ȱs5Ļ?:ӼӔs6w7}YzS_ue$HUk0G*#(!`Dq[ߙxuvj)]Q.Dzf<;4"܃0j؞ ⳘF E9pWvKGj?9n,|abĀ;o⷇R ԓcjFިŶcg!+/4Jh,K ҉g}Olz_ɩxgsK7cI ;uc1InNjv%oO?CNzs ١)!{< OɌP`~ :End#XȼqI18-4P񦇼OXt@ZZ䩔PI)T?&ۊeJt F{tsvC0M?H\o֭P,u0r3ƶiJ8+""FM:o)@np20pBdMpvqm/`g繢zfY.TC=5"j|d-!s.~ ѬR402/7[P<VWJòH $j) JusJn- /p4=eDNbb 'uGC>50 #D׎ ݖPvH~yp/UnLQ- x 9y'57(l V|Sm,Y\DЊ,~@m86(d+G;'rd"ĸ;+I]bo (kGkWR"ė(C -DV {6SʡЫnPNĐ@Ɯv\"˜GdR  FgT'2 pPÆ)Ll#þa)jBfk.{$8OԎI [",I%> knb+Z3hD6&*O$ÂNKb6%Ew շM O]5< <ӌ |H Qs'u|{hu RRvynۑk|zA\9h~\phdqt1M$m&j\h3fl_;F˥M.fG?C%SY{Pk\\C@!mY|A?AcWW!kߐwkaQ 7oUr&S SZ kcX= wѧ t& [P0?L'S#;5ڤ1u0NAʩʦcx!7ւ!AH6) 2h4URMkf-L$Ei2*9QQ_cFӒ]lMsS6C)7xfA؎,}lQwMbhwFx֨%0IϘnf۰K0b#uu4gq/TI"VQE[F/F{p!= /r# }/Ns)lQ/ܘ,D1t+A*" nͤ| <"pbgs$Dəd #GF?GŻ|6GrՉZvfsV)@a&>m||$R&FteӆEJlOHb*^VR@ᓨOa/Vi3Ԃ9 42Tm!]7gYprdrDu|r F=`R.+|9IbGtvTec)! HσbY$Bg4EAmC}PMaIT 0+ԻO_UeinJ{.,O˶L6apDdt~ =虘^Em~1`'hз"-nMt4HYo6ŃEb,&_iڂ1AYP^r|)b:ض-%xc$A=G --"拡m~SSqCkL~ \kRt͂c /Q6.ʄ53%Z2ȳ!5/sf;H %A·,T!?sڂDZ VOuYL>j")b7O` Z녙}BuF<LwX>'Վ+^phޭpS~V[Zՠ׸C^Be˪346\G4K0EG9֘%4;_j:ˡ&'ׅoźHRՆstp iaڔ"HV@BQHq}  cI gQGHS,Q֢UR1N YV i Gu9Σ4Y'̖ B ؙHv_E~*kۤ["Ԉe HQ?ADa7kj+??ey)& )|=]CJͥ>1),٩E7v Y.֤"A # |AK=F-7p u'*CRlsgS\%4fK--#zb_;)r&GR\ءvrO$a*xao4)4*qJFJbR,¡6Afyǧ5L%B'؞cO*VO C"V W*)P#zӾ"ig!*DO p 6zgaj,JW泳#^Ũ.qZLi⑋@So):D10.zW녔>}x B*i/wUM*h2 Z&֣գsH,Sv9i@ A3H0i/C`c04DׅDo`OPiRƵI=5t nk1N{zH#sg%Wm]t~F_68t%;hrF,mf(jwm*ۋ3T- ?`"*1B,ymw|(|l$<7(9ɚ}4Iq)'xU N)J$t= )sב֖x-iFBYAJٕ#\%;8B|FMs ZCW'x6!7ۘ/{O%JзE[:C/ Lfpn|NKJ! μxdic@]?љDX[Z!)M,sSp7@Տ /e-n;\=FEhu㨈 @wG Ybh7aq g2g-X}L[,4eB^pC[knk 2e]YVfdMigRxVM: /+Fx&ݡ yl%>TO4$(%Y) _)6s<2Vx|r쾟3\XJb$&w`r;3tvRҔw% 0kxӻw(+ekq jy?R|[F/l #_o( iBc=RdhxrowbF1[Mt0`](U"mAg &f2!~6jKz%(wG&Ϣ̄@y s d[K/K" K*7k0C`o/L+"pQfZ` THZ]D_m;|嫛g>σ+u&P0:7;Ơ.grpMGD-nR08bC7UBGߓB߰Pcr W15mWJ1ggE562DK@ȕ2 ^!hhxlQ#ʓ23NrXWMj/g~r;יF~b.&NVɭ0g@pQс߶n6?Qՠ! :iVC^4`,ηCp>qBe.Vm?/oiq2Q>Js=́s:AݗiMV^xi]͸ \y〰"Gi4.W gnpRYP$\Jժ=|At(dUj/p豱Iw"çN]uتiϖ}!e* 6arLGظ8GȋLq <6!+A #K>kDԮ&~6X)e'Q"o b%rRb>Vb4qdo;lh`Q)BԜ˧m?#Wt˿R@@y 9:p>-G>#Y&ILow'(G drQcV.Ad{.' 6*pg)XZaq PLtyFI&W-`j Cu4}L>jR'Kms1>Ud6/{#P8G$TžjI]/wUP"6hݿx9 ְbhL<*kp<$k)>BKKj-= *ف;_xXpŒ i-HjȘ%"bC?2`l4Gt!9kIs3)\7Pze=#.86d9c[m~&F1$K9=_ldg:wZ?+JYqw;<LK=9h}gEs.5ǰp`'wSat^5Nh^ 'Gܽ-Re- z"l7T+zDǘ Χ9:!'8p|#W%lzg T_ Ǵ5Nψ8XVnNp =Mu~HeYRFf+P,482xZ;&OBS~E17цsJ_ꋫ ԃԍ}DSC WC]YRjlc)(OyeIΉm. xt~速$;О6CU^=gwZ 9rMn?pUW`dQhGcMN{M"DZ39ٵ܍j/CT-J7g15߿c'Ϯ9Q�Sg6V {kp>ԈUh;n+WI7fbtmq?~8s[l_wYS ̲ܶ;/BA:/N/Gma&+ v_Ydn\sS]>m#8 ,C!=yHܥB DkaTa:SPjP })t8c/wq<l};lܐ =wB8Aȃ#C/]$a3c) Z hHOSQjjR]b/}޸LMcZc0кHœV w"1 ˈ ΋):ѼG ()+l l䞴jRۈ#΄xr&h}$9rդgjv:{}!#pc&N e.bB[UC9(иݬrrfav2/sD#Vz!ŐNR!ccy3\UU:OoX)">u7ZJxb(Q[ەFF_RfJ(~2l蓚 m_wO¹gp(KqU,n@ĥg_d˱1fL4WG"K`IFzb}lnP9!7װCf[a2y #Es۲/FN 5P7 :p~/<ϟBĒ!"n lF@;?zf|nkoy<+/vBDL]'X/?:ΌvޅT JϺ֋"k'fD%##7Te&qQ䶦kcl c_8I YΠ-+V:gtOwCuh`f+{^P1(no.E: ;Wpc}ѾDlV郤%] w a"gM{x6(>U 2ȪxJ^iV1p3[)J 7Ynɘ׍_2OgVa9&[gAQF+9_e{T)SR$ZT-OpCƧ,wbm>5ma"WREd*^|+@ps)?˵R9Uoe 1}MnY/I8f I$x_Sz1Gm.P*RI8^v͢[e4kc ـ;:kQǓKHu,5x6Ɋ0Y~CɳÇ`zO?e;AKƇ]VZ䍖PJ8#/0N!"e w+' l_c$Åtm]}s6s}Ý>;\MTJBÞUUH뉲,_a1zE!n @d{U7$x]|jTp,#PQi z7mquhSYaP8v~8nj5LXdտ ӶC;Sj/t pƎkQ2v?ױN$U>L* Oo\nb¶ Ӓp6zT`؏1ehJ4Ug*fh #OpVT#pNB88M 5{MgI3[&{i"fjZVͽ[nK[:d:9cQD&qu)/έZP's*::j(azD'{'ddY =xf1 zawߝxi)N-zsԪШ$/:R^gӭXR~ˠ۟ ah@N{pl 6!$r@a]|*)^c&,XG1.RUGPTdGLiŁ/-rHЯP} . f/@T]l̽Y<=oaC7ujTdZLAvf TVN+fCp8&KKPPSksΙbd.Wiwrf2Y,4W-ΙD:پכ4Bq#B[uź^?'{Rm3e p,^lrPd.WJR`^1lC7juqpeQkaoނ` R#,bl=WZSd\ #Ĩ1`dsꇥtĜK^^>L~?R1[GT-LpgX34$+,5)XSDU!?gT*yk1+wIsV;zoèRR,+t8h}~a!+(0B 'QY[G~xckK8t `c-9I)yVe`{ {CU3\/jVV-pZc#paކ(9~ϵ*(UƢDS9ۅvQhy?>[.o]|w'xۜ6koH͎~zib>g`Ło vM MhA.Wy{Ƕ$6zV|KL'm 'ɾQsa) J~OȔwP ,Y2~ݮAN|N $L'Tg%8Wwt*⏵#4WlMi'Jۧm+9 A: =^~b6uX~od$mCC'ѧ"0+ zSt/ DhVqmCDt?j4{zPD ێ[d/pK6a'DŽHsJ*3^>S_j~!QuGŋ$8z_ ,K _:+vKۯbᝈ^zꖮoRoU~N㑂>u2f*SkP1!Hq(jVI}(T+@Yx㫔Ȓ۸xcIjǥ!80~;ʺcZJQti~h `r_%Ѵ(L-uS 2Kѫr4 T,[ުyuiXGO:BglcR, 3S A"VF>9} Ei€0v_rb:U '>gld; -!\(; .iIh%Klw-B!m-}Nk›!,NoJ9PXغXwki m;TW_~qӗVK۳X{7咂8R74l2+GX6 nGV̄; %h^ANX=< 07kf/bHT/K8;oZ$MګМ}grQ^z $^< {B gVIEbS)pL>)Bu*|N$vk琍|;["H~$j(S"5ݷ*>i-07:.l]^P&vm|{ijA9!圚^>m*VC9BFY[u I@$pن׼p嫐/E1Y7H1Z &~ކ N6c̪+G7&\W%FKciV~hΌ>rrl5jXpQ-J+]HTw\m}q`׿[5_5ҿGx TrD iNF\1ϥտ׃_$wL5k8Wjs_c^P'M]s|F~B =t lbH2KW|KvTNIJoj2Q?zx4ϟ?V{w]?$Y{z|h}W#B@:D 2؊U, Olk* =yPQt!&}\F1PVlҗԾgc*lǽ, "bGl}U 94pɜ xDWB1מ*ucVc74"7@A~̤5&N-7嶒6OkÛӘg11F{rVP><VNKЀTdW "G hxY?b9pOq/nLKNU}Pe}Ns\Mq9⨱ijE'%S8<.9#rfߋBPٓjfyGPiHr䮣Z䣲4ɵ= @ѩ@W= qɧZ"x/\BKHSP7& e*`t017'OZj ^\ e2L7*Gk wGXim|sIH8U舁p'a?U0Il(@Kv*(W%gߕw0%$CVkYB &d?]e ʯE<hK&Md-vPU~׃fp45phR5&PkEt0Qp{^;DpM AOnЗys+?bv[R]|D[@Џ:#Do2M kgCMQv\/ acܟNCvR0u^r45"9w&/Y"7*GG,o&:,~fw)Ulدf( oEžT ?u BL_61e/E|Rތ|AoKt:7R1{>e(-;G5AيՄU|BIy-bIs˾klۃCd[S:k<ؠdl~Y9,zo!yu$e/3\t/,o}|/"oE9y:s2veo![45B{fc}ظ{YN"_]&Pb*^]hu2xŽ`7~[YՒ%q.,Q<+7NƊ!\!9%(,c(GoFM]nP?ٶ.R5n