emacs-which-key-3.1.0/0000755000175000017500000000000013225014216014317 5ustar dogslegdogslegemacs-which-key-3.1.0/.travis.yml0000644000175000017500000000121513225014216016427 0ustar dogslegdogsleg# language: emacs-lisp env: - EVM_EMACS=emacs-24.4-travis - EVM_EMACS=emacs-24.5-travis - EVM_EMACS=emacs-25.1-travis - EVM_EMACS=emacs-25.2-travis - EVM_EMACS=emacs-25.3-travis - EVM_EMACS=emacs-git-snapshot-travis before_install: - git clone https://github.com/rejeep/evm.git $HOME/.evm - export PATH="$HOME/.evm/bin:$PATH" - export PATH="$HOME/.cask/bin:$PATH" - evm config path /tmp - evm install $EVM_EMACS --use --skip - curl -fsSkL https://raw.github.com/cask/cask/master/go | python matrix: fast_finish: true allow_failures: - env: EVM_EMACS=emacs-git-snapshot-travis script: - emacs --version - make test emacs-which-key-3.1.0/img/0000755000175000017500000000000013225014216015073 5ustar dogslegdogslegemacs-which-key-3.1.0/img/which-key-right-split.png0000644000175000017500000057435513225014216021760 0ustar dogslegdogslegPNG  IHDRV&6XsBITO IDATx^|\ŵޛ-[d[ .B4 G^兼@Bc ȽZ{J+Kdcvϝ9s;swf%?8@H $@H n# $@H $N`/@H $@H $0Dhe#@H $@H PCMM}ƙlKMu,x&y͞]0UVɈ@H $@H 1EfIO/>iUxc! Tİ0[S'IE!@H $@H $0Ho`7q1JjZRũ|dOt)V;Fn܄V% $@H $p% O5(f#ӧ&wvZ ƶ6Sks^zDkK] FFE @H $@H $~+__'Quu ׳jZu*ooJ &M֮.ǻrn0#0R$@@}}իW5MHH̙3z8MEH $O_K/19/)P;)s,@׿v|pJb –[bKsGY7y#{LFkGnutr|fC}2{cH $\ 444ݻٲԩSM&SEEE\\{cY-**jjjbӧ䰻V5 `ܹ߾"AvZqq1;E.;ҥK<'&&_7n8S*ӦM r 0"##)Q4י=Τ>k@H $p<S?V.}f_gH[[spG CBtsE," 2ʇ ?$/'X]Ӕu5O>zQ@H qD_}UfMV^>{wwc#=f3ՉjpϞ=˶=ӓ&Mbv9}ݷnݺ?lA_.6o~M0kqlソ7 6/0׮]Mu~FH $07~[r7X!*a)JF__٧EH}_a+Ѿ!^:nՖ4z󧏤N]='j(4H $lmlž`0[wT̙3lI EKK KÆ3f` z>lq-˳F[ofaa!0~}||x㍲2V R<e vB؂?SVXRX88]XF6{{{(6q״#V $2228~mh`i\pag}vrYzմoo5KQX֛W@Y{/Lsg1sjZsi0;0 @H E |ɷzOگ-[r_E-gffoΦ Ȝ }/޳<[g?, ++_hѶm"WoX?S>;?%DGG?Yb6wԲ6hf g)_>WZ$Y3@H $p#=됰ٍ) 2N_n6O^xI/MU(~(wL}o:L \7-$@[&쾟EmglyyylM 8\l3?K =>,j- g0_җ"mO%L(y JȎ68~8;hmLp~h/4 $X&=t;ed,{Ut:u;+rxrMcCgxwqY3WoϿ}Hٻo] Vܿ!i CDH $06 \|]汹Jv;HNg؋u::rmذgG ێ/fmܸg;wZjg~9'9}FP_Ws3@H $) V\HDsƴWp#V+oh}CI %%-~~#_g;,ܳ cǎUUUU}v?[ogf͚2&gXP p3hX.9ٹ`j6 `^ah)4 $#@E8X"{}Q٬ &՟E^zͳ$3E? :ĮJP@H``XF +@H 5Ql==ʮWxwƤb)`G[cZ[5lq-DZ=H $>\- 6 $@g3~[ثٞCx١ Y"]8M  $!Wr5V $ @_/<.,F#@H $@H a0 - $@H $$6q<$@H $@H`Hr l_|sar"$0F2Yٍꘄ[rIQ4YR~'H`dxw/d\^Ho$"@$k CucZJwweb@H  $@H $@؋Omt&D,|=I?,w-4U#_Wk::Ψ~WMR=ł4,›!9C9p]#mqGڽ'g`͔q;^nxgT+#A< -[Q#C/sw/wCuߍw`H M`M "VnqЄ#뗁W|kǘPF(ݡ3x6U'Y4DKw?hlj[J&V_ȌΙmop̓V606vRLLH-AH Ah_?΋ԚIonͦΫr٢S; Mw:#RNVzT0[j=yT( Ԃܺ%`%g(-O}T>M;}#*|zY4R]y}''[_T/@R|;|G4'D*/I2>LCEeݟ!4 P|K\~)Ly5DzfŘ@pr<~rQZhi'ml=,gQ$?eһo #DUOフ !TA^ͧgLSR8_xd#9!0}t0x`1C } Z$9"*HM'iুj8yzX"h`+~Q6OKHr(((FgBqp@HwQR](G>#2=JN}tVBy=yZY{5bABypqp .҃Y6s&0=ȶpa0ɤwߤFFt\`-pn;. $vǦ)hwwej~LeIWH qJ`)[D fe;9KDFS2xVTLBkʚG $Ƌ()?Pw($[BF6g[礏#iU4UIT2+gRs+6rA2"O. fj}rڐe5Pk͹lC&O'܍ nLAiIq:#b5~5_JJ4x.\P#ԢTJ|ʾ`?l"mQNǜX;)5B64ȴdM9d䜖K?M Û_ P>| )롔sztP&ј'jaQCPdqxu[3ǖ9 eY(>%BP I=r *XOf$}jXrYLTAs>mgsz,ةP}_N*A7:`b?HwQCl4X{& Xհ|3YYG)@P A [֑srz ilIPql2erz䒻=/JA_];׿rM"r\@ ߫Y,#$O`)޿[Zotr] -Ғ6@TJN@‰Rb)L¾2SpF&V>Pr;ȴVݖÇ*s i(gY<Vͬ3[](Lj}"\_FT&S,H yYxi^ꁵt.]&{J=K;*A~F 뀩|L ka/PFx1K"BWKYlI#~ Zc*z  I~,i6‘sByp,\m.fgty*X*a(D l6D!WpYj'fY yO`8TfV&m_pAdZۼFU~~^MW##ɔ~py!@7\ΆK\j1Pf!Eu~ԭD!crߴtUҝ'BS''Bd'TCqa^jb;Fdހ-q(*Qlb|y7C)CάHi0#JKY$p {)\&@4|ԿRLm!)%A6>Qp\udzU>lg7 XwlBH  2F$#$Ziiaom9VHFhΫӷmwiٺ8MX߷9KWeN0Hx%.{4~DxqEE̘ =Ea > Jy]zd&yC~O]j/6~,ZG77)oф͹b9z]t 36uQE8qaPwXYOu P#άi=a~2@H;%ޝFJM%~wN+݊2ROK.bD俏:_w<|ޘi;R'_8AH  6f,\KWu@N> KNb}8iEz,wu$H unv'm67 _d]›oY\lyf]S! KXDCȍ'{73C'#$a*^J <&19,h;3S}cr/{c9" B0޴8T؍2r"ɗ'kEǸMzNOwNpP p8Oj@5""&0Wb;;!ä%*x 3tCZ&նjmjc chuDK=e;1n9P([Ds＀=}{ Y 7ieP5d@wցȹlpudAL &{t,7zh|May{qE@mh=/JCsŏ~~BBrF~֪ K.Y%H $ A[,Oր=$ճ~97`&SP5FOd$,r|E4{!!II6hbl⩓B^<`U-bKi,ҚPTY;o 9ddkC8 O4`GHYMQw~,k},dQՅAS%9pת`tm.^g둻ɥwՏ~wOIDŏK)Kٯ>Y$fJ'$ՍP@#ຸBcv.yPFl{)pޜ<.'wS(-Z*!~2{kiH6q˕۟TzqZa=|d8؄V'Yk]T>Q L8tDl(-S4Ky_7Jʅ޷d:U.0)Ph iMl@Gɧ8/xm<(S=v ey,z ޏ( -}+ӻxb?o}u3*`y_$Y'wZTZ ;I.&Q 5տ&^B?vE&P49aV;HUظ<ݓn1"3p j#|NB'[M"B z~r$KȢ F';\km'Ⱥr/F IDATIwt5juJ.ٵfh?ik>ꑹɥwU~w;N=ˑګ%]Mm+w%UJ@H=2C2W#7+o7o <#W+Z*Sh96UN.Y̸-*+>0]]5 >o=-KGyݨI8vy_$x)B#ýIOP#Y~VUv3KXÊݪ쥀l ߧnHj1㖳IP[^:ݸ9)~¬I/()3% $:һ\%euϷz;] 2sߜ)v ;+'x*ēąʸ:kx+xAl0sų?Z5{/3vWOlޞ{Nj+wdrv[co& Z2xIW+8ReSw%咙Nh+pƗ0⒨Xʟ`}/E:Ia|GAS~lII[S$ ThJ>㳯VT)shX6]uJh1Lg rvoZNQ=Gt,΃aƿ[b"zsG ~_Qs"JX14Z+ȵmE(ԇDʵC+'՗Wvbir[%qn-$@H .ݾ2,S'kK-9s}u}rr~~KVJ`}畊Sk8~ﭨzRXg؆JV%/S{ωn,y,ze]9+@-Ÿiٿ]\T&.={])\ߜy!1}[7HwSeBb~}=:{RJ= WʻZX #ƞA}GV*Z*?gkNfIQCy wer4l6U䒞7wl<^@ۧÇr'ĸĜ?C'{S0`sDMUV4&h]vd>#Xw* YA;b:8G}K'j!J ]'sBrJȥ^OUɕ^.12nB)x&@H $'X/\!xCL䷂(H=|Unƕv|scCl*,m!ô=+^  . ˦|9'G:m(ـL9lR9_ e_5+^0'),XmbI3xd9E F/iwzAqe+65YEJ: lԧR'_'Pj{E1[H{@$'QU,V{_3_׎ԒIѵ&6cֹ\\WqpU|%N,|}Ӫ!7W,[HhFa]O_Y T]q6g!wo%PX#QD ])}rmܥ!Lز_$޳`%ޣiSweEa>QŊRDhX2׏q1f@O*N}c\.Hr {p .@7,Q +DOhaډNn 0R~'m ~&yW_<&5g)`~\9Q;)V>KsjG/$ E`|G;- jY.LY;Q# H $@Hdx࣊%g 86AfM $@H N mgrM8pcc.F@sއ $@H JZ)|p$o L(Bi7pe0.A w6E qMn\7?N xw㴚h6@H`^$@H $@"S6Lr*PcC S @O.9̇On0B(Փӣc| Q:f%8U_@F>i^#yfvK^*2.(Lō)#zK^r-|dzr@[mY (Bsဿ}CO֊ U3 U+k:F39n*j iq< K5Y]0?&Gw*ɺQEIsTc&Ւٝ6v,-!AI|pҷȩ5~:@̃`冃4~[Do)E 񏡲"fM+She3<]M| _:lYE>&6ݭHus!w/=P3H}SCT#^V81pؼ̬[Z[L'W/9-Yv7=3EL=-˺z"z]~2a'@ssz{A3Rõ7[W~^;)&&y|17V_`I%m33F3-jfH3DO|egk:eGO<7WTC2 6 SrrWt/,SѼvZݛH+X!=Sj[g;֐J  C9/`g'q~}Jz@ͱ;ÛI#6a22 S{ޤeTu-$Zd2y*Vt5 h{%ρ%Mž76G{D5y5Md*{O%3  כӝU1<; \CHo}ln[=TgO֦C *dڋ+u2k&y~jo\]Pl)nXAD'^{KHr(((FgC>0wp'ޭCUwww"r;@b7O{lvwWv&oi]A\[EYIФ,)U\mMR}/zO{n ʆHԡA+D/H &5 w*CR>&|ӦXr|Gŝ_TH6,4}_ۛ/\<ۡYE[#2sep[Wty.wK䐅-y4y)q`kǹ4Km[{9>,Q/f٣[^KFU+_iExO-κ;"6K \|߳-/ܚ9݋o1[ʘ$i"/].gw=#Q}ubky5!󈗘Nh+.ܿ䅙BX.(0OAS~lII[M01!!&rmIba$V˃[|^ۄ$[7~KARʫx-}Z)K-TMk)?@ ܀)+;M1b%tN%Ƴ7=NmZEY Mtaf)|ھL N+I$ZO%,^OB%e@ld+g\-qrrW5r==q+D鿜]=b(9Ds0G }p1j(6.|:dQt7 ]([$U09hMWö}4p"iǤ%\\`>y 9tϩ|Wt2n >9^bB6?)Vʈ !ʖ|A?6ؑdɊDt vQ 4Mn[^ T VG}GA;{̅&oQTL3~@(zl6aWb>%yWzt\~`E|H{;+_u;myykwT@Fջ8^touAaҳ:H4V ,̈́5?k=rs]bҤ: b3Wp |S`0quTl[&-FǜgtFE´i@]7qh˧vAw5 rr2 \bIx+}IK=^J%ÅS5p>ؾ7`K(J`v 糉OHT<=vW@U؆seԒ"S=@I+ɪ%U sÂ788JfZ@ԁHKsCUh/*O^D5 IDATx *~5@U'xG+y:!>";0%[$k&gvafNlehef&S{PdJ?]̞n [AY5 yܕ\DO =ѵ8$KNDC1;3aN͏\tGsՑVvX~/=Jgx !Z0yj>rr~US;|NlQΝ*sYͩ(7""7N),5͙K֋9/[*j"]EE 糋I86/h7SPyr=n%+ oJIIԩ5=K擯ds$?s槪r?0m)4ljU{+^vpbs@?qFI~FOЪ"X[?nt<V-d,z|ZN{. $˽/J2o<$Roʝ37*C(~Hcŀh'ۭ>y!ID 5. Ւ5MreT.iݶE`6eΗ,mݎfPE@s ,;b7bWy&ܳ|Y|,T:`+Tth(fQ1DJ)bzv}ҁ_7WCN JwvB'3;=XM^.H`?mƁ`rBCirHÅVYw2>M$}S9 iFtOͅPAESxbG*;ݚ$IKx804~䁭=lfȭ6noyE\DO =q KN ΁DC?0;*(~ZsY-x;9YgU/3mLjDłV1K^B U/ӫYuz5M5ҳ2f9ԜV/(DTeS⣴ZױWem)?lOʏ풳S^[la`eΗh=:fBidv616c|뻍Ju۽i,79:%WcG{686`,EoM d 9rmwc5vS7ܒ1?k`QbE~XzY/VVšXeo>k݂]FUf[nݰC_:uj+v.<&p)۟fq9oHֳs TxM@0-4#1n8Y0Tl8qSNi[,0`=6NJ֩JYD㣰[rvR*ߵDRbքzɥ(=ExmC[*W/m܍0_&K-F!^5aѶmC=~dq~XI.›5ھ7{˔+oj6Ik/y ]6TاM0}fow@h 6CWW9vAFmh'Gm U™I7 !9uNũ陉8 ?"KUc .9Sd I"SCK@C{m$ 7gTϢf$Ϋ& /w/BNLGuZ%̉;Cik8d8KNT4j]rGAPkC4hZiϴq LL>{2Y}FId/dtp^AnkTA?[A F{!X!\gKÆƛV=)W r^ S"g; Vx :AIZ.54'g7&aN{,wW=9j艎H}];-JƎ'zZ9Gs0~7' ~5ΞF4]d_Sؒ0.c-\3}Bש FPmN{:k}.@4is}fXrX~8gSK-;rNc \P')7%~^ihl5GNys$6Nj?Җ" riV/ϥ?9Nvܫj,ca~b>GbSE0dK<7?H2Ϯ1N^c4oM;)bporgOlɴ%Bg K"M͗jֶ/u0DneӖ_V&oRw~6z0kHUG$8}0rW[ |5.sleE_$蹛=(5J謅SRs=yW Л!tn/;[~xBNl|Ƣ++nɥڶ7ӏ rhV-$c88*QGhcT6Jaد 3 D.+a!Zafg>D:z%yz%^o,dQBW\>@s;5X]iGlD!2raJr Y7%=iW9Kl%Ya!,CQ*+m| 89<8hӧ6Mrr}m(eL#qrw@(u+KxZPk$_rr w(rD!ѯ܈ƿ߹ͷ8,Gjt5P߹ˣ%(}./m' ;/zwҶܪpqE[1%Ώ vܛ;KS/T,zVMe%/fD'vu*n{.sc[s }3ԒIѵę`=[k)[ Ta;ylK5{OW8-55|LG{”m+' }gJ]wkצCj_`(vj+WNp9|g$p]]GSҖ  ,c頾'3!TP\tO )[I" -l7BZw5İ"=$6 /@V{_!ǜ;2ɥ Y^r}Z.y n&{iAyKFhB6G 'KpEU}/cJ `ie7c'7W==툿wG/< ~&W_CmTf79[|xO->g*BJsǕ^;vRC qjȠ<$Cˆy9r &D5Ң7I 4fokÜrW~k.͠dC8B:&i>(89RCOU|/9Z~7xQ9Z|[! ךom,6%HCם 0F$+K\N>zuƑW? W+XAOEۀ830:jlVe g%s9u9z3D ㅀG^w5#KU)<1 Kb/ ]C0vGː8$ d8FqXW4 wc%ЎDS n&G%0k Q2{6"$0 x&8; y ߍ8RT% {=ԃɑ@nh-EH $@H J&hc@H $@m0j%<8k750eF$@H $p}_h(/Sz?U~^IVYN>1ՂXӑ__8p㳯2ٺ[?{qWl"g`3 (LTtζd}lgپ;Ng$*IE f"GK]`M3ـӻX=bkz~5U]#Q/*ļmBZ6,Qt ]pz븊W ێřº_J1E)ב 0_up{ nm`{C!`0 BAXU Q܊XevhKS`an`끶psR\3uU<\#/<>%7^r71^ hEk;eRڷ;}E7wB4Ask>eoU75rzHJ >8WQ G$麬Fe{W!1n듹u> ?wG_>}GvLadn8(2]r?m2C-># PQ[h"n`!]K4F\++=\}>A(k+Vkn.,v\Is79`sWƙp}3Ĺ80*$( =s"j:՝j+~Yn:aq}OqӅdDsЦ.ۡW}$WѶ59{!Zqe,۞<دxMߜAS?H#6C`yOR 0DBZwI΀[>= y͔7tt{+]"FV3TJ,P5͚g <Cq齋]zoB[+IĒ@K.w1ZB֛EGKtqJ,gmBNXeLcQ>>`H")_Ǹ '4̆؊"3pܭb~Ey#L? %YWA9*4H:[ٰo0b}>_}4t\V'd@*ܛ$ۑ7~nb+UQwar?Y2&0C!`0 @@q@rAC2]2hKtgʡ?ݯHx96uG_q xry&[^G{Q,|p?y4FvrAdzJƨpu;]>꧄se&>!UMn59C^4Oߞqվ;fߗ/XԺ0Tk2w1MXk$Rf;5pxVʇ<(0]A7*Ebyè@:1W䠏m{a_x#؊l"(O *LlGr ҁZ"HA '_%9 e 3HO ;`0 C!0􍹏Ͱ3f.} ^pV^l*⥭Nޜ{cӺ'bo +SW+ˈYlR|͊F;KԷHOܸ6Nq{݋Ymt,M/:p?i ebVtTÌLɗ t|sBՙCv.]hRbi2WLwd um˷Aneo.g_)źQjz$gUER;]͹b֎v)\ Z - , +۹ʿ(W Ly62vlNZQYT┙"8KPebۘ )aq^_<9#ŴB19 UM9;D BﵺRݔCAս`vw@`ndW<ӈr80n G><4(ry<*+dUv6n=e0 C!`0ng|:CƜN8PXV;N$]q6Y[9z`0 C!`0nwhc*`Jr`0 C!`0&)- w)w3ێ=0]\Lau!1C0 @vw%d-2 1o-QcJ3 C!`0 CCn.c3 C!`0 ?KZټ}ظxyN Y>نJ3Ը|BP7VA%l*2Am#OA[0̙%ʀ21qY⨞4Kdv7n#sb1 D3FewA]E3S_iyj}JyVTtŴ'עێ4,- IDAT 4"R-y~+n(11XȜvs\e{1AeضM37W~.?gYq[ԗK-#М/~ylʜ#Fr7G nXaYcbw"=k`&hM~<B*-{7%( M&l*Q4m ^8sb|M/=hDеC۠wXq7@+`Z>Z l[#wFGm9D3dg( PX";fw#0* \02ӑ嵆_mq XT3턀}|%7 *Vt֞i>͛kOHf)6b\ 4}iqmdPK Dr-h`xu)?FԳ+ 20fF J gK-`Cc 8Ы_>6}\p|DzӂMӋFĘhػk;h!HW#Uh5`H^Vg]1Kt8,18K-e u)R0q4zKMjbWut6 J~呎Qqlg>,9ynNT?y#"nY 4}iUȅ8kh;7v*T;U <6Dڑx8^I q  OˣCN~Sף$5vg>QCH9> ŠVAK5;.I` pOJ7< MY#A膒: EBx\ M~&?gDwC +ѳ%hOvMnIZ";bр?;\߽mP Q$EřKw#%B7B4=]^;ꥧc.DZڅ!^ύ_G~5`RPWJ 0 QJh.{NIa# F,.ϒY"DvDyF.Ϗ;fw1NTGkRp-K"cbEG;;Euw;&+uYI#u|;RL7ƇfӁV92"}Z-itb7X1 >qAփw'pmU~K/K6o%Ut&o]ȝP?`ʧ.։]+Kܚo:5JNN /vgq؃/y'~sբ<$Gk#,E=5/.۞ܷg'v6"?,u[GHB|y*wU5)ab[EηjΙ>mkg1=ly-5a]V|cW]WIaFZ'Ɨ{AfqY.h3 Ssfxn->gp?k/I;Np}R>*nCH~҈ڸtRi*>,Yk 0yɊ/ڣ<.[.iv+Cy{j:UBl4jrP.}fwL@⚹m C}=U쩩O>e$SAnN2wSeĉ]X n^?Prb4mz'52FlCVP :5@ʙ.*؉Ops(/ =:3N"j9DWɯoZ }M.] jQg5u=r9~@_nHஂ!%vU [::a:>XgG}0JQ[!3 5cH68vF PzP#)i2, Puh5E4w.gŰ=wiǪ6*Բ&C\#f-GPJ_@W9"wJJ(/@4,6ea Jd" iE@P`Dfw>)NN4Ws X#žnX|2Jq tJϽ_F|7@ qw'vTO|{aqࡾ/K^q^mqv˶%G/Hko{g{IB, 6ivs7~-nMNy;\6vSk8l ?pQOI3k_צ\|iNV睦/k޽Uqwh<e;ea ú.? .{d qW_~C X?&~SO%o][~R0xzǃE.|f&diݘPwpN骾d=8C褠["+Gw؋{DQw8y _xD}pz: Pg3b}kūp=  yIiy|zJOR1ݑD&؍P,'`li ,Ƿo"1Y# xǗkp+@ǁ͝e6&ݳ{~s0y4>vzh92JD"=?9m*i\D4 %  FǓ;QOavɸSZDJHH.SŖOϿl^3,9R!&0>Q%+:2X4FݗS4 w1_k}O L|BNnnsQ4,CSqח̋eq6t(t;0׸k[k}gAJX?;,4JFnGUdȰ3 y3V>*}1|H" {#Rr$nӣ$gA aMq`Zm#, C he}Tm=w.އ'lCQ=8χê|H$-n6d~z*UbHfB_t\M@\)0;5 w͸G@ AD$ ES[tN,@ MbhmXx\89!/t<qHN8ݟy4!L@G@a8qOP-q%Sf_4? fwF2Ibk _[' EfϹNuO mI?YrdֹtO}+@/0;/_ܕ̃{c n\|}C>/(*%aj:,| ۟EgڏDe+ A[H6GD}{ NޒH/zv]0ߙoݜ9}pC~ݼs}~wdSxSQ]Iԑ2>' ) bby! f;TV9Ź9ZNRֈGt#؆Z _t<,܈ X˅`0?'oD2!˿4p8Hςkfvo17Zb ^oC{oFIn,gKMԅ}Op>ymf /X-'\A )PPD+H Ct^ᯑDQUxI DR <ڏ #OJ&8~l,iz[X02y\*xޓNh C=Z~OϤ3ԫ4ч3b,qu$Od-bdiEVq${҅*9Ssk_vw9(Xx,kًG%w$ ?{(r-Ce|o`csSE="@Y/m/˖wč/Cජi~{j==9آ0`Ql?yvȐv+Z^4Ay2VKY,ܙQ ePa_x5h F́侀Ϝ-Z+W{ðc+ityvDD~}h[##;)T}' ИG]Rݔ58 滁YzU^ܢz ΄ p݄`7i4@CgRm胆==   WtMd$)K' L^5fs#Qm M`Y$9}ˁȆfSs#@g1Y#%|ZI:U.,F.BFnnSK~ uA6872@qf>TI sPq9 oP%Cz#,e_B_oY{C*ڲ"U s㋒{Ǘin4уc!"p{Z";hAeA=.("'/ Rd+TC`2!0I]˭zn5ȋ_O7ƈ n0a3ݍ3~~&:ٯAF`LLP#XS)tk!%0!0)`8))u#& &C!E~-!`0 C!`0  C!`0 $C)9)Xd*߶ fY - #(UyS~jd*B\>()j}9La+'MxC)]Pqhc0B}Cm{B?TnxaA]Pqhc0B}Cm{B?TFS_zvhܣEaG^X_/7ed2lۿz'2ΟG~RLfQ\-׼Gsʩ{~X H]YXj P:<~i#Gݸ} _ A'#chчom"WsчsvɄmCOp>3DYd 냏:%CJ)ݟDYLoKdv?hEs`v'IP;E/2_T2H?= @aНSp}>JꑑF:j)Ӡ?'itJC]׮d EPE%;cM o\|(*gvxQ-;P>lAl+ e:<-*&T˨̇%g1͉Jo_q\j.oo>FHVS|C@S7aߧj1}{b$,NBmcxwF֞uW_@Hb pOJ7< Z(=/q}:DwHO,x)qKiDwC +ѳ%x 'B^8|: *֮DS Uy+hOCx܍"dqPǯ}ң{s|-!$F+gB.7RA^>nGq{k`R B7_4@Hn\ԆN )oe%>r1 mTfrDkVw nFu~h(F2D DLH4уsݤ| 2ma.}i7p0s-Z*C!Ƚ둭O5(_D~]6g: IDATs/;>ADQqi: S^_8@K`F:W\⚹m C}=U쩩O>ebS h$3__M] yt)bg@4rljmǁ֏9cS;;?ڋ'-5_+X ؆zb0-@OɮϹRez#]uP !;J&D#T{ﴁ؉Opd0Q℥ j*B08O:·uAEΌSaD$eAZ^XǐP]Cw>HB@A@!&]n^)_8Pڥ]'xx80]pFR Om JQ4z(D`#YbhWѩ@/=v? ) 33Yfmo"1|^Xρ,`uê3\6|~qP|2 d]zt݉h^`X>x˒kW[\"]m 4}s[n,P@V=y}8-r&1zޏŭ)/wP&׎]]3uj M!N^~_$q͉Nɽ("{𙙚 ڦ9PWh>l{c+ XmG,ܰgyO 8 A`!VC4])V6wBVW7Byxٟ`%w糯-E0 yo,>܏|Ny(Teo?99PkЉhiPCҐ [YG =lVcdMo"Mn{ejyyJOR(C.Awt`ٵc0s56&`B^(f=Y`n65"(7QnBn$9 nh:gԻZ&w"!- ʻ䗣ĖOϿl^3<gT?I#VN{y ,@?)Tfͳk|막e()(F/_Y`>_xo; ] _", |;G%^i1^ 2AoC8,2hX28I%藠$"t͠)zrPj6U`ha%Ŀ3)\OHm$QRhc|HcU꫍$)S_iT_z\x7K ~F`yl#\gl*,sPxmsb?ϟ)VD]—] k^$~09D)b=e\N@Xp0tob>i/x4DEK2g$=1`PF|wKP%?[B2ݟ _EP0VllC͗XA3ٌq*ڶݻ(xB`NVˀh@v,l :hUK$ʇDԎ:l$jfAU',KW‚ 8u)~~V%Pk@N}蛗w Ze@B'^.m[ 3`Yd,=Wps$Zds!GV$r<>riY|dGم{ h zT;8C)hG<%"SEY:D4B*AH/ݟLd]?@4|GyS4<|6bk _[' vNfݷ|38(& FJ8P&fEْ[g=č_zaw^,.+&(oݸ>x`#ߎ7šPv69Ǭ.8f l,[g)>x 0Nz7I${Iw`z'ZE: ̶jЉr(ǃΊ$OwA 6?=+ACC1wI@.+LUh6Kfꄖ0㠵AԠw%…[~tX{?Qݏ\"/nrM"4q$l?aJz.,F,lOz% 'f)7%P!%}21߀21$uר˾#l$ ,@!2gjb٦l~iqST(dO40(@AR|';D`Cg I zn뉆8iC,FZOQ=#6D}跍(žЋ$F>qQ׻Fhj:}4=9Fó4GlxreO]bL;y^TvBד]&8c!eBdڏU!Nኢ2VNB)KQ5jx*.++#J;r/) vKFBi2ŘlRp0-K RpPen (K"$C) Yg ܞH/}xD/ڛlw! :gS_YU?E`]jiXdN k1Jx83/ͬM@NEFY.,\IN@VD1{wUqaU =w׭-C`SrDf7}2-)y!M7C2D3&f; , 7o_^C`\`8.02& `v\2C!`0n+})`0 C!`0 ɋ L޾e1 C!`0 :'?%?S=1 Ɋ$πMczdmC: ,:̚` C eض寍pdk?]| g}pϝ;_ Z叧OCUeRCOv#rk;6uo\l8!sQ-|XWë z(dqW?8_0XhH?cIʀeYY}&%mN [2컄Fgۺ'@mo 2X: =:0x}FފM:Ý=RsPsˊ7B4=]^Yh7 Z2x03ѝ |,t GC[Q';&_V&,E tCiEG";bр?: [FȗTW<4;0@_ȄYjk h#Fg,fÃQdτ;Q(_;" ޲1K%( 7O۲$2V--K_~|LN sb8նO*?|hOi[ڋP q$ݾzz=Zk=j?L0?+rmdm2KDŽQύٝ?&/DSܾntPhRu{:.[P܊XmZLǾtc, Xg' /<[٢f%Kŗ9ʤo}7+rA9h;z}ԕ [Mj"vVXȬi堬RΫ$ UܵIE趶;DSKD4wSe](}Ge8k]?3.q綄ze'jrڬH"U^0Ϙǣ&q=s{+65F_ێ EqFlCV℥ j*B08O:"Q\+E R7RLωUI n "-NIuw1gq pJsV*d}2j_*~iAu0wP]]9Qanb<\81"$)dmR!ngrK*գ#*?=PPM!2ܯa*ϖ]>!,`)B_?2ah,PWn FW'sz }pg;-g1 v+dfC&ءt؅V $nlGІp(;ތvX UobU :sf>%kXL3Ҹ @4Le@a$@ hEbv' #1<;1 shs!‹UQg@B]s_RKu`;ʹy?&y2+o{g{)T ULȂa]jwi=l;5دx Fc61lNUd'hÀ̚\bױH <)i~xp\g_-Et335$øv) XwԾ6 ܣ߰> _o=UT^ٵ+jd|):T8JǍk~[>{ri2_#ѯJP-qu8*+0rM6pu3ߤ=N4 +/ϕp3wJGr_k+N$5]XWz |E5UAV/. y^_9qXx IDAT'E}P㴙ki+)İ<uOa-8Dy EorhkߋDa^^-)?)6~](Tp}vc/XtFC\+4\ݞ3Ūph<&@lv5Ў<<+ݸ=ob| !+T ی2i_lWj#>h:r1CȤHV,QFcP.Ljٝ*;_/$nQ\oҚRA;h| 0DBZwĖOϿl^3"Ib'"ԀZX$LAD!$C&FWjd%9ol@z1*⊳wM~&gU&|OaC8,2Z o)#9)N3،(ǭ$d 61  40KDŽQύٝ?&F!2M%seӦ?t碬iE%*K5iw>hl\w*G+91L NJNչub1*\NWJk#ġNɞJ­`%hS"#)gъ} RN֑eػ vدAV?%+3 A6Ji&'nL̍DWL|l=I h=4ovyqy_}0CcYiL׸k[k(@O̟KS s0&ec+"_|Vn%/d}eǀ8X#Tؔ+<\݈EK僾@p< )KDW"$pCXndwk`L\9RcHS rgM:DSVK-  B,`;8~B8d8gɋ۱W b1$6Vw[[nkAB!ZNNS꺉K8F@oP#&`*Bz.0^he6Fq;pou:X`IHW*ahq0Mr6$}4m!aa1NseSUa:rLg4[w=m};}Ey{,sb'jUz8O4L^rak>ZDC""rV娥9:ZdW c8W ۡu5Og,#b,M-;(sb1{|JZWB]dAYƗ ~Zk]] PKދ'/6sW d1G5>qd^]$RAAn׊V<,- U{N3"!]nu` zR qojzV `&?J\P[? h@wN+ԺВ;@h\Bဪg0y#cKܶv_zmM[=??펨$P^KPj#CVZ˿nϘ,4WV}[>C`sű4*)غ.=k7 vzrpO_7w_BL1)䣖#ݞY;lfFq˼g!KS)bU}#xW^$Oѩy|w?9x!.vKA}UOB@u_12pWS-Q,1T>9/M&YK$bnBp$Iٙd̹8,|liS[(sL ]EMir1)#x8|﫹ҐDP"fwCƒ3@`v7 U-O*~r['0Al'|k"8/*ϻ s/v~,?E`JiEoC,07QwV#0,&@hXSFf_4 S0#07'P#k~{}H1{.5'm t@|ފT <&gYM>:XF;hrƏ`F`nG^B }s%O?~g&mFۤ%LMF @ 2 hӒݍnaJsCc3h Hθ@QA#0#0#0$\YF`F`F`&p]0#0#0 2#/!/U k1#0|#A&q 8Zmv0'fw_YyȖbo~cA-͝vŢS)[`8B@&׊e=c\7n| {D_n W=nu:'s 6G>ѤSxo(9  ǪA:&t6D}p"UϥME J H!tt0An1C%@4%n1 &Cٝ8#0\Xh,imR Y#[ĠUs6Lݘ&cU{iޥψW[[e ;5=R'7nLM ָUŵXW;~Q2w+O׉}Ju)X^ǯ_@4#)X=/~rzo_*qpMo|䜷:nJXEk," z4|KPxe.J[>yz XSwSI$eKIGw2ČUdGv#wd: F0WLs^PW҈v}L (],cU/CG3u0n!*Ot'jUNSY+fm1gFdEGS&WȽKьKK-7EBSBAǁ< .</quS ע +a:2l!s |N> y*4 jFq+2- WMa*d?4Q߸Y^61C<'8 ]'_үnd!7LHN!Ɓ@V D&g &.[F1B 8F0ЃTQޡ ]st_Ӟ0Z^,ψ}VT^siIXe*uVvڊnH̋͆.ͤpSjB129WɳBLX;u7~ZK,6PsJ\9:("NbʲoN|ڈܟOϬؾns:+jS{eMz}i vd vRb/w)mFBxdZlGdfYUp,,QiQ!7'0JH'?)/,-?$pGI[F;p9My,%s|+ GkE{DݕY?|=NvZqw ٙPQ7wN5VI.H^N,)xQW@&=Wg;(ɱ=.g;UaQq[[$E|Tr\Cjoo&5HYO,L&Y;Xd *g2ЄAR8u<Nl:|5.cI>>^{glzIE{sy$Kh"opX=OMqE?(ZEwצ9.IiZ$.inksYMdR(‰a6b7;R(#ɱkI$jzEzBdcl~?NCŜM퀬=i>*ϮsՌHFɚՄSRCc3C(rϠXi</s_֛$}fҷӷ,n'I+vt'">x]p lCdVFG׎j84-Jzِ' .%BWt^@ՄC۾V%A#典N^~ EC{g`&bFhr0KhE(ٝ(LtnʚGrJ >{/@<dqSɘ~&>zB<w/1tO3Eyj˃vKݔXFbdəN'gK*vZ0WGP aSe‹hɴ0Xg띯[(.h A,tvAJ=IǕDkJ'M& "2xvV)/*fO@ʟv&فG qaYԱO"imX H/&g 0nK襀 =z@> x MNk^ZEX.q4R̆B oo%%1MCqgz.WԠ lA&'Yw08 Ȏ(Mr6$'mn{ yn q++xĶ&א#@uG/ַawЂAy{,sb'r~i!y,za &%cd5NE )!|F ˎZk:LvAn׊V<,ra$;9qgGwWY!!]b2rV) B[rwsS ň4Ky( 24u4yL= 3*L y @!@{-R[Pr&oh6$waR2|9O`Fǖxx`=u(V\9q'Yօl@B| E0]Zz%#0hGYb@6# MmF`4Y?[ӽH幜-qϥ.$β?G SdOjGTS_mk1nT~ԇkM6 􎚪W~ra6[EAmq{#`߃+6)5<`n /w#WA=FKc#ou}҃Njݗ/$(stut[g'w LvGTF`(%o(]Z/ҥe11Xq@5>|𺳔% OmI   Fl?"|Gc ](&YK$nBClBq8y;/_Iٙd̹8,~#0}GG*=DR/ #hGUGΐpM>29CV#0#bXā dpV?| b# c&:Jak?#0FeeI`v7jm,3ZYC팡UᛣÑ0#0#0#q0;0#0#0# _M}e2NJfhlh2@7}#0 2#/!/Uv;pb@J`7o6lGa,uZ IDATuv,( ~vu O%|,!:mZ !Fz7LOZ=K%},&w$h:EsΝ[UhO+ &Aj [5oUC'tsrCdMVޜZւ3L R Y5q<rH+?u+/zBPkowmo PAWP|wBZkPD1D۾x<F+4A/yx%'Uqx_>H|x܈\0H %U$ A\#"_K*԰a+ҝoZLgA H'zޗ^bh4%tTn1KFf8ouX2&ݡ`uEST*n,np{ x> L;:x*B;D /'^w5UX4эFTp2a뷦Λ+'+9rXqJwJ⚛Ѐӏfi >Y<"}.vLנS{aԧeò1Äs 0 2njD D58Epv C fw@.E,Ds): > j;!l2ڲ5k<_[>nP~gޅ+-%,q%Ҡ[i$bv7iPI&qvuZ%Il8FlP$g>.9|&;tp_רI l׈!8VF<2sMhړ.K`dXrniKDImpj:ѥ). .T[0Xb\8th/˯P^ fI.?%G  mHYy(7BG˖ &Ӱw!yY9Z"V,E4Rd |1N( S"fC+'8\BX/4$H.~cxXƇ6Nx{'6A@ --]K'LijSRE (݉o؟>>/Bwp ă΂9Sr|v v4Et`ORܑByIG.hF|Om=W|nzb+IPy9P)%2K.&.;fwmdwņ/۝VX;Y)qL9nRas=GRP(KəJjzNoܘq٫k w<+Fʼ߭$?]'~s+>m ^X,/ׯ^ '_QON7]K5A$hz#qS"Ī/J^f)Nߔ[گ?WL^6yw+ LW ]_~^yE@q/̤QQc$×H"Ly$w;}ƂUW(7 ҈ikse Ov}VT>/{UX>lݽcUJ~c]w݋kߔ )X͟|o$yDo 9Ÿx,s~U\!.!*D3j/.}Ʒt)]@EL 3[AdTZ@נWihwM |O _*dODRs#ySD#IFE`W¢uhi;>P_Aᐓ 4}BCCffoG]/L/Zm@^Щ|4dNn}k4Heǝ ˖ς{Nj%zw ;hr?E[0cv=*'AX9)dp `OPޡ ]st_Ӟ0Z^,ψ}VfQ㒞z.-KLPNj8N[ 1yp%bWtJiLUE)}q덟ǒ):.5R=+W7guEQD"uŔeߜ%Ϲ?,?Y+}<1uuVӧ$> ۗ˚nu`2{JE2^t9V 'w3uٜԊ7#\1[چv8X\3Wve@ xa MYi!S;tG6G :F#q2E;q¢`sh3Y+,|RC`DTqX&j\0AA'& \?AWg}9,-Pwz$:\-Ni6q:ȍvB'䩱 *Y+Vޭr@q*8wU2I &Xs`#3.([A^8m]-;گ^ۉWZ]]~Q%X#[taUq!ዯ$xz]Y!5Po<"6k|D{iU-`lk39䑌|Y Cw Q^-NÌ,%s|T/\iuWfdK g7!zCKgnH!N3#'yڴY0dvrHT X5΂_i6V%S'Yzl.Sa[((̰tqqz _?b'vQ`'Xtwn*r_:`g}o7̬zVSϷz;S~+5܅Zh߮N:,R)fgpAB{oh;{f"B&Hcu2u<#j:+'NsN";i[~ RzB 󄯒]Ç<۽1eXz `qg p?O*=@_WKqWھ KGr@c6ȩPPn%H#/ 1>!NV$ :ٓ^Pt֞#Qrq+S{,r@E0:(+kTR$;;G)7َi:e5 p">Q ]}C/bw5?5=T}_~.z-y(K;!A.VAt*s#  sP rp=Df}cYb7Xb@{dwC2RvVK%dPѾe p(bᳯqOI; ]~`EHA˟^DV`5OV(iK*M}>5;Pܡ,4  ^M r\6(ҴH]-]dUnksYMdO!!PyZ-bovPF ZH85: +X-)QO^pw{ͮBwu]I W".Scdd َ"DĜM퀬lE; 9Md]3PȠIJ9`U\9Iuo=R |~d]?WyLL\^-ׄ쬐$=2ZVbM`z>Gf⮂~C(2:Pא*" c VdKry ^aFN^b-/"RȞ-,h_Aj4tcK"=z _hr"Rͳ:8{\8:X,@D ,H}N .|3PnVxv << G#.l!B vMPy h "r̵3HP>m9JK3 eYúh @OBa<IvHCo)h*y.1AqUC/Zor!hfyBiݽ#MGAv4]rAU{Da `r R{iG{@ G%?XE oN-g8HK|]}/YOI߀mInV ɱysٿ3t1jRDl{ vnnqUѺ]KG8gdzYd.%3"y/= o@\_|6lHh^CBbJ:^09Gj{v8L5s{., xrߞjvEw1٧fhR2FtbkK2ZqWMËd;T%lҺhT42Vq` c/OQ6V}h%V\6dE}{n6]ěW]VN7W +5hr?E 5闟Y'wz(=<|ș%K/ܫԓq-l1S~S`'}맇`,:^%dOgf0~Z)RTx(uZ}Fvh,;^ս OUpx^ySFQS[431,f(-/MJ 2[C8KH@+hil͠ӂM/_IP趦N^??펨$P^KP* bru\Ϣ&M>3K$ e֏%!r"]\k:b5 ɴ ,@F Tl?}ш ؄x DH|9dvQPsSHB_,ĥapy7\ +_BL1)l4@-Gϐpk23}׬=_? _qC.Keh\~ ەȥEVÑK/yygixIMѦ8)h5~g Xs!)C1QG]; 8LɇTIsC6KSh1CHrp$f;x#n9nKFs; F0>MAwg @@8|̰c8®YM>X&3ݍ+hE:`FmH[񾊁7QUٯxarig0XՌ"½&48F1u5U:m4Ghf8R4GZ;hÎHf_4HcF`F`n."F`"0627!0TSԨḅ2 0wN|p~]0CFq9ժ_Sh42,mELTW>yfj΍8mh?׵ӒڐۣU8ڪ1he1#0#hRV;)8ߠi\5gԍaQ*ln2?VH.v]H|ee_ָ-gS#u~Ƥܴ`^U\uUYi6Vn%:o\|S-xa_z w,ڞh|G?90՟T^C" 8O7>r[7%B]mB=MyJPxe.J[>yz X}i]%;O361,+#>,B^6&KRxP-qN2-ze$ !F0WLs^'JX+iD;OX1k93?$+:\4K\d//q݌|biBfNggF`F&Tѡ)jNÜ@dwZ 4UԳ肥w"m49QRdc}jqIO=dr0n45CT}pZ͆k(5 EFRDUtQʄ9X?`9 G7/4P>=A/)RWLYC&|C4N[C=P_̷b䶊Z!zJcdL SO= jR2F`Fh ۸0XjpmGX d\ɴj\u45OpU@ i9ϸ3pW)g‰vNbSdA-L&N]+'h*W}Z0#0 )p7Uo;. ,[.}K)Pɤf+i,ԊA s>xh?hO2'[g]8Kf&.Zs8sCJMg'F2NRҰ!C:WwZĂpΖN+h*}Lct$̺; ߔqq _?b'DpЮ]1,[?}-;ߝG[*_:`g}o7̬zVSϷ$<6 TWm O';{xv< IDAT%~+_ivdž[KvZqw ٙPQ7{,|!A/e_DGB2sQ|Bcn07vJ &LW2#0#0tଥn dPe p( ˓>.׸ '{흅.s"Su$u-P\E78Jğ,S\=`;4Zfd1iAeRɠg51ȒB.CH' ؛)xC$NM ErJo=kv7SLI ?/WUl#wD]?frdc7*lmde6 ?Xi/s_` 8bB#W$̈%1`X(p\Z0#0$~2$dꪩtAuo=!|~d]?Wyl!W'$߈4˃vMIemFəN'PJ?Uar,. MvH *s^DK$: xͨe&5)BPi;Ԅ.HU'RHb rY)$eGl梯;I ΍33n-">frR!e,~12ZVbM`ʮi]XALw:Zk ;x u4SȌ%Sgc^\㿏Y F`Fg|ں棗l6N2;2:MPfr΃Ls]>olbVfpȜI1|(*wKK:ozd%slG8l?'uiomdy/e[Ppz{/N}Z')eohk/7 Ruk0G^[Y[;(M.J5}pselݑ7ۤLq0;h1d3Zd<v;ZJO͹#Y_iujCRH#lQGW("xƃ_^UtgjWcI#P3J7쨩E/]ߋ,;q9BNg6׾.'.glevﹴmBBSrEtaTg?MFmi<5;fFxX}owZF#􎚪W~_q#81,=B(-nY u{C"SÓByuGii~sICş\hwg'??]-:#IZ^oKm2z}8U I KCy[-)b F_8@[[1'^ylTx醀UV]pIY0&ĝ|Ev )IE0p 1Dбo~pE$3L\(s!6%g#JCRZPP1K -v`v7Gk 0Zv7J+]Q҄^^5mY $#0#0#0On>d-`F`F`F`A%aF`F`F`n7 f~Ff>Cf7X}ثMcPn08!IGf0#0#0#0 0>.#0#0#0 2#/!/Uq(F2F!20#0#0:exZ 5rHΫU(i4nK'vMHӖ|]hm@.eo M·*F`a2|K-͆Л((Ga X>V ~!t|͙ ssEx _2c@.@9|80ppdCd8/(672@doFiF~ݥ(4"|[8XEW] ֡@T,͏»>N,یW| CDF@11y yݰMGk.hO<qP-Ѥ |L$O?ZI͇Ih#grow`nC/Zzoy &kykтadj#(zGM.mr9/ F@i?rX/gn>j}y+m*EM/Kz깴$_g,TSVuCGbd^l6tU.PNkmƸ0^%Ϟ ]2a׹iy,XۜBQ3)ճrugR &8E)˾9i#J^s>Y޲V:cs:+jS{eMz}i}hUkͻ3cyCU[kJğznBxdZlG6P*c "3)>VXT䇱?eWJmR.T⬭F /Dj3ar6j75T7Pr$#}pap㯪њL8U `iftpN|ʕ(F4"lMyˀPp:oNla]o@TL:Z }._|M D#vJ2@j G[$yEv-E6r*.Y7&a վhy2f$ p ёwC|]. ,[.}K)^đGN^WXa) l%xh?hO2'[g]8Kb}]p2o>81)@-w- q8Ղ'l_vtZAUC5=6HGy-nM9.|q㋞Av|(~˓Z v,;RfUG8t':7 D2%2ChC{;0#0T"g] :ZqքA8 AE{& ¡lTl:|5.cI>>^{glz:hӋ摴뢥G(LQVb,a7S(vC? @hiA#@^lP&i Z|kӧ-bd5iB.CH'S(CZ9{#2o֚D©YhXNW'9eA4rӶhC5ɉwͮu_(laowv& lmde6@0Q3A(߇4|@v{ ,@|s@eEԄOoFG }z{D < G05 kՂ/qhZ8(xO*Gvk qH`GK? q8VXF͎*gv'`߀72YIGOQDNu4׌=BYwSִԩs޺Vݪ\ bkn6脤NvZ?%G]K]w:6i@Ē.,\f`Cl<H8R9A?ZJNn 8|753Qf0GjFkbMjbM*[Yy7ё sx |;3 L T!Grn3RvZ}LcPfOBj1ZL;xy|>1B"$pO$"U*@Lt&5я>`;Nё)O ԌO@AqCyQ!)@H L[#X0mcCǑT$d|!T }Bӄ4i(tsF5&:x<фL%3Z6,0@H $@n%Қw<^3@H $@H $0 tl5 $@H DHY TFH`31$@H B@"X[*DjY2ѧϚ9} 'MG&@^ H $@ӏ2OW/-#NlnG͹ъE1$NHәҏ1&kOQeV5w6[o0&YZοK cj3uc oLl0M,@H $fL" S貞{"9cf-VXWov{Cͯf<,Iĕ\bS ^+0+T,FL <ܷ: 0<5yWH @qfLeu<`NJL3'$uVQjtP@%~͒.h 3t0<5SC$'5HΎ=I%dQlfb3{8c6K8 O+9d5;[V NwőG3~s-@#$t "ʀٍg$ƃ/xm /xƏn"<**@q^l{4#9x+) IDAT-d-߾֞_eo5GO;Ԣ lw{Rmѧt\k$Nû[<R1 ?.2\1b ɑs$dHblL/7`uu8YMreb8)+' , NHas pX8ʈ4]4Dff\7%<,(G3@!M2;M K) ^Ymi1j##yT+  L`{oPgR5y"/xFƇ/x $0"nGŗ]%xO\mdGutW9rtƘ|`g/՗wI3O667=?ӯnrc4:4׷U_5ؔ)]U% yM_ 1QbU\}^FsssO [g2uQrRUs>=mkrR%[YˆBBn>bEaUqUܟFCq:@H,;JC>~PMx}_U}jf#D((B! #q jލCM B3@]#fP7O(#f`6w<@1R$0xǓOoXxœT@H $0sH^Ef#U3 F^Sw LWɧk7@H $p`c!m eO><@ɑ@H $<`| @H $@H $080J@H $@H`!i߄@H $FHY+ıqqInз8Eʀn׸|򭵤̡txeGߍި"o' Y F8#& 'J~f[eGPzv |d4GD XL2D؉3Q.u} 8 oT\wj GH~O9>4|3~pw3|!1E`--zwUAd+m|$R3Ώ & R`NTL"XzYyy+wJ j[U2^v;'=@)p8D+}Da `\ޠt0G*DM+31D3TnnNU∈Mw$.KI+g?=:nG͹ъE1'Lg~v5ڧ2;73/Oތ e.?]#hL0nνI1R>t~etAW}bd쌃+jB0.(1hpH&W0;0c ^c;,`MX+bMکiXޤ?g#]sS<0"'Բ~bJ'PEq/"J|sH]W; #wt:oĸGT$l@H  #u<\C`? đp]$x5 v45dK>ʁ8(.~ttXŀ U_ѣ 𜪈v)=b"BtXg xհj-ɍ j/O.C C IfAV\$O'5>b?op0S/c3 D^薗޶ؒw;R["S=|j0ZbYJ׫ ƭEhVA?~J4="$0JA"@+i,|8Qq}16|u6|=,v5px$5v¾ -~6 'm  28hfFbh fN6t#mNAZ;w08WBOwSdNVҿ_ zxH[7)nwn"fz/QI yp|mQnU X hf!8`p4^԰Vb?C?[gV Vn!Uo m鬠f6FN?9/g}g9'x 8t̀L | O.h$T!Mw#OQtfXoY#kyFj9wUǨ(AeI[[ԮCWMZeO F sY.['iEϘ՗&T.EZ[+%~ij8SpSGe73N´rt"_JL6c7icۖ?}㥟U&fKmEX$W-^ޣxJdt,cS/OLҶ/zp%{\e% ",z|g8멪Iyqo^­WOe,KRΫ񐑋M% 5`C^{V?xQ;r]A;|~_ėڀm j/bwA2fCP}e.j g=uICR"`h9 >=-\_)yɥe2 R=4!'R"X ŃϚjɅmb=zCFt]oWADגp.<\*D\`c:l>Bu|5ԩ$DV}nkfUEc-񬡣8~JJ8zBuSm~z=;ϼGf5f"fbkd:ebX'0 ]ff]话'aibVT廵xϩ?Քf6n&er(IdnB.:jt2yH_RD0@:wP --c}|s%[} PX ATºmV5&T;DFdN7S&<rjۚiܺDHrt5#^Bv [GV ZQjgV^%=u9LD6CYyS-),M3Go@SF9?kzj#85.Oy'|uL9u'K<@vPZ Y\Bp'ũ* 5xj33q2_<9爵8y$T;www_Nf%2IŒS _/@I?6oޕUO<4{|mv{\ V.+u6gݷUz-k z=2pV+yj?Zg鶤٥V} ,] Ovg:u$"2]]mW%iThqF8`lz~|Њãlf?d#ybֿ_bgXѦv_~`z*f^WQ(@]qˈ$P{L͓…1qYAOv~Վ@O4_'}Ak6š|P]<\Щ/ =ð^@Z]lYi^XFt䞽l)*_S/ϸ8PR츏ljlx~v뢟WͻȊh*_4ĀfdE60. #ĸWꆏay1${btC<8\Ȅ C 3LLLOλ'Nj< *;xKrs~7?/`_&KuH3q$/|$6Qf&yw3>Ǝ2F` iG<||`܉#(hH Lżk L Pn])v #ALvO/0-$pŌ#$@H $0U  `:~!$@H $@!Ph.@H $T!OKi$ƉG82fp=$[g'Sd|{HbCkc qa=! XzGoP;w)!xr!:RS+*lB21Pl7܄@x“ ;0T 6fj7Iޅ ]{lLgQY2s% j#X kwܸN[(BH` ^(<UH\'={'~@oG xCtroN>ExR<`-59 3BAZ?TW%P+h}|| O.X`LP`V:9|q7JE7\,zF[G p;j5V-jℴ<)N;f 4SuUoJKX HSu@#'P9v|GxrNE] soA0P >Cuu\ O>Z'-R?ǟqs8jKV:<ü $]z:g'\}Jܙ$SvXkJx2/ Fqkne⥫1Yu?}%mٷX\y3M |(y[^z۾bKbN0=jywmWÆU#eo]n|izYsqKE's~Xx>"7B 4A"@+i,|8l=zX k ]FTlCq8Dv7NS"2Xڎ7ZW od9,i-C}|bXV@*\@G7 //'pG9 ) t1}5`xyD0oY6H 1 +XO?_v;sg}ϩpni~DD]m6>\Fxy]k{B3l5ҏ߅+و0{Nv&)3$+ vjN`ǹgyW,O5$tB0R^䘉?M/Km6D GbR5x:lp*ܝp!Mfr%"Hρ3+/@.4xuԑKTz~q`ZT1t+x9ZX ޻4  &zlͅSf,QH~d9p`)x521|zq\ 3DTJ D}څ|v{;˻byray( [J1=<@+3lr24ļ8yEA/pbS0@[)jWc|2>Z̰q3) '"ﭐX\V9X}bq {ޭ *.g7WBOݑ-ND.;a@yi]k^ @XIë䁶 h4 ]ہP2;!L.*|hhS}]s?b G煥M@|&]oeڭFuA;kcAza~R3V qS6:B5B\t9`ۓrM@ǞuXp}ڑGB t9 u80W{V Ij6 (h{jq7^!R>ժЀHxWfdU\yeD Ҹ 0Lb3}l @є:R˳p|rQ֎Y~wֽ֞hY"irXck  )Uby"t ,!UZwfwv9jfIz,W[f6$4a+yjHO؛!Ύ=I%dQlfb7=X1l{CfZmIݕz~V,I_QB QF@`2vɃU9n|ɇj5-sV< 6FbHJnف6oCR  g'ϡ7Ǡ_ì{L8?Zm67YQ`hekO%(x|<S3BNCbIIV9 ,qAё2'݀zɇa&|kff"/x4ғ1/`KlZhS"CG.PgZ"$P[ "u.$qn=Y˷/'W[0GOoEoxvLThmz}*0A'Uj{lF4;KX5web0xM^w,ldrd2Y?756Znk}G7IL 'b &3YZQAyۡp_T"WWU'o(EH`<>ȷI3-z՟ݭѬVUfR٠&lL ϲ6vc>63tZA4l&L^׍3 ;RXgWߦ>z_P}*\k`eyE6AYeqnYYLE Ϭ:Ie[IN"ү#+&GHv#/Ͼ/2!]GMȨꭐV сs<#(:"^#2:%a嘉CwY.铉E9¼G( .U6}.PBHxT%̓Y[$@ml_'n6^8LzC+Hܕ}u۪q=sw5QG=e[6SGlg+yj?Zg鶤V} ,] Ovn3pZ4x{wu]Q N\`c=C+l-GЭNGWT k5p" P .'Õ3n*x& <9Ohܳ׳PAr}ʽAe/i. ;=ڮ#v4knqzWaJ >ūAea1~Ѫ좟WͻȊh*_4A=Z}{AawC .7\8JE+Rp 3G({##o8>- sS8nA>sguH .p6ì48Ù;ZCorDDo*euC2L`9/xF~?0p/t5?MR%rU)6&Wr$/e)`죊)SgIƞmnsOYgUem=JyƷfHܮ8ӷ]wZ9dٸה߼#!5#*.bc COгP`477A[Q^;Ieo 2Ort䶕Q?9{nJu*=`GSHY`26 !q#@r-6&|ѝ$ܟO<>ۛ&L*zv@#:nd_ݒPP.![EٳNF3SPQÐRyh }-蘪ӹ?imWHU}jM0o0` fϥ(˘wX )10^QL!Լͱ 09@ <fᡥMZ` Pfb0U-tɧ/Y M?[* (A-I?@1 6<Áɳ2٫ ZvpaZ1/xPO}^Kq䘉M8!0/x qbRr s`MՉ $ yN?'_&՚>; 4ő[haٱ fόQ̵R:\ 2mcK=UDU7vyǓwhR9fb`&N5/|"|$bә10&j@H` `!WH_c")M>__ XlB1#DӀ4h$tq9&.hhz:탺^lA?a0@#%8RRƏDKH $@h9FH $@H $&^!$@H q$@ xx}CSH L`BĚ@H $diouJdUY2ѧϚGV>no[s]ℴ<)cFUfu\sgFr6Ϲ F]rtF4&X L'80Z }EH $E|m5)K!jq#_E貞{"9cIVil7_jmnq_i.^͇miv,GH`d }[_ '#/xЬ6@Bxœ @@F@Z=]5erԍ*혳sedv.9tht\uK3C#nh꜁fs*UsgLa)˼L/@ŭu~ )N߳G뤥K3|;g*،W!奷+$Dk>-}LjΫaÚP,ޘ 69V?zuҸ +{D3K%U}\]  ,"'l;@yhE ><{eO̐;^~c- $Gk{+M *IEc`8Ie< %*^x֡ZLnh}jp[iW{sTKSdl%m6VBZ[\'*w)ɓn6@´a11kE$ncʓVF)"=T {HIdr6Ƴ{~qE W{myxtZ|Y9 pdk`WAʦ QǗv_3@E , f/;x'OnnonZ=ǧVH 8Uݳ85Q@6n&erN?$X\VU&Vګ+ yD#=U-ND.;a@yi]k^ @XI9 }@[4.B  h2w9]/{hS}:z}wңEЩٴ=ՙۤ}\us8ۿ:{ ^5Kڱy^0A?_qj~RMwE5{W q l\X+TO.2$JqNU!q!t "ʀٍg$ƃ/xm /xƏ&ʚ>aR~AQm뜜gZ^I8J/ =DL]Iݖ{o_@kO쯲' ejSy X29L,nyIp5QpYm^>mSGstx&F>{FSV}".|:E޹^=Ytm+wu}->L'.8.Sޗ$Zq`3}xԼ|goNC;uBeoл`~#K[kԂ+c7g$N v$zM|$ 2'$B%/ʪ.xIv+^9VmXc2~IϾT_%X??xp[OR~!86_VWW}`SDΎvU֗tt]ƿ놘*\[. hnnAeokUO!n>vwۚ\TI{eVEK_9W氜䭷&w-bX;o0 Ψ8r>}xfZ ;xras(EHK&>53Qf! `ޅ Ց85ơʀ&~Ohq|PO!D`tCh3 Ex0,6LO'O>aHH` eO>\F'/| $@3@!Udv;=R? O>aHeO~CJ #/| $@3@ iP<.ʐ+^c#$/!$@H`pWC*)ߪ& &2f" @#'y7rVƋ@y7^բ$H B$@H $@H $0]ti) $@H ʳ3C/.),4&_0Bב@H $! MʭK͒O<%4>]|sz'TΝK2jk n/2 5w}UPc:i>w:ٷX\y;~Le&*D}ŖĜhwͧ/avVwWZy5lXmbYJ׫ ƭESz< t\_wqwڏw"'deH n8*lX $@Hp;:Ij^F 0yȘ^DXYPHej/p?x2w}6+Z!yF--\wNҟ~+p&f HN)u$FAEZp|rQ֎Y~wֽ֞hY"i Q8C<}BbYlOǟ= E TB,RZ0 I ]1S35D}m}}1 :F6::nJ,&|@&"EsJRI#zj]xyǎܫP b.NYtw}Q(ߓ:|76z);5Ҏ:Zw#ٹJO<>[I75j3 ( g %H`*5x1b&3A 'ˣP<1 ^F9YJ>3lL>va/H;{o.6EuNz>柖W?>UՎ[ջėIT>f6Y@"lS Ňn?WUQaxtOmwoYduՑ0< 1RRPY{Xqv[,{E:I9F!tFq(Yx:ȏ6B /8CHR@8 4}(OL  %%[o[e/~~J_>K5l?}: ){X6cSj*!] _ټ?=}]`ty6kxp'LZCQ]DA4pOV@q,  ka @ @L00Qj @ F R/(5c@A#  h*@@ >w>-/ v/+:,Gߓ>y~]I4yY[G[L@@ x(qiw%\GU랏[ Usl|PhXVYlo?,5P&SM @2,ƽ;jEɸ'ׯ- ~no9ySC nD8j^~fԃb FLX @ 0rz-8d_U'/ݱ̯Ǵv~ڶApw:F qR~o8hCʯqoΣνynWShe?(oٜdX 6Nߴ(,JNL-+'ktt0|ALnڔ4/Mrk.QcG =mM""]梽ŻXD?;1+\lhy{sqnJw| h=#.@2q} @qK;v9ҾLWĠ(Lɗmӊ$Vh=gN q^jc{|L!RitT^ֶ9rXt] cF)/Bt7y`Qimv(szp)G}xUxzaAKK9?O6GOWd*HsGE+JV )m6Ndۢ\{qӉSSV(cܞaMA; r 0r`ȱ@ #J@mw-ka^63Z#No;Oq|tc9 K7Dˑ uDΨ(ZwV ̮W<']!dy-?X4k-p^e$uzYJ3V{ci-,ޘDs`Nzg'R5oK4W0G\X_N7OӣsqC8=ϖxd)g @ FV'ښy"B/EHQE'2xg`_X/[DeV?lus %)2,9^eʿ.wYGX}+%p~a7ܼ3z[ظzڶGmw?Rv3GQQj(\?폐v\,Dz9ډ8x>d p@ 01 +-'hN1VCE<&WZ L0V3?:ГL,g& 㣀`je%Hq!r4;ZC;`C.-YɴupH+VHj"r0pQZfycPzS9 @'Z=;VnFjm Ei1r:%+e+?aۚMm=Yn=>T8xnIgjs~|G}&@UsNgMvڛc=!bϥ )O* z108ܜUIوfr)80%UoYM'}TF \MA:9A^! tʋsv=dYO-t@XO䜳jnC]YOR F8N{qg] }8618ϋxr$fna eMGD b^oBXrK񁏰zkJҾK|4VZMb9,>)?V'_^UIfzxil뢧IYsNƫnY8f{q8]kg,B|e vU$ޝv<$k_U8?A h:\v `J3V{ciT^բ]pCKcjLhcK,|5$09G,k.|-ki8_VcCbVri6<z%(TuBd @ 1"㗀%$#cEHQE'k*ciuHͽrvR@IU"Xrj*VwH`r:b&I^l?H IDATVR(il]Z O\;>?P!? $_x;8.gOĂvt?CUi5\|BzH_nXisX _j)qo/bd<9&֪w{:L O !`Ub<_1␾ށhiU'O!7Q8;'ׇ]M=|<}o6l'޲0&|?{q;j<%KJfD7:#z"qDpD-wA9Vw#dT[l.C?qY%K qdX&&p 9c"-x97R'{g#wիEk/v1cUcE~<腸Z+w8տ 2`0@`"upF wc(Z FD`"q()q7F q7FA-@Lz~l &0A3Q*ſn'Dlw^e]HW8\^ 5xu _?oˤ30 'LU$Lp &)?[@ @ ?0RG F4.-Iq`' mHHbM~\ qq7."8#ҌT&s|g ߥd1 X-z+ T{*֋>? HH@A HhC-ԚeŃif{*g^0MfތO~LDgrGqjĚ<j(41=-FSmsVD['k|6Lj(DġRFH1?<8r7$JS<28ixf)z wUW5IɔtmWͬy4I%85|(U0ZeJFL'0;XGÿK`N6M x!ÁHBHv2At]tD/G)RCԓ!KΔ!;j^~ H㜀)qfa rCDrue3{tl{LBn҈(O[Kc"Wݞ([ ?(?rŹaevӦyi ^sÏ-aZ;?mڌHԠ?x#JO tmH#yԹ7*vn.Bty)-yfo_;v3c%+3J}/Xg,Ҧ\ []qfFy%!w.B{y :_ԹyXY7\'Lue?{?)&=)$7#Q"\7$S,߹|=M{\wޛ;ki3;m&ߝi{ۯ;6!n*Y&ȑ諃fW<&.RXt!6%:B_zd-8+ ";iovRM a0^2TiGlPg׳XH#C"+D41ĝfIㅀip#TMsZ#N[t.}Vh:\v;=gƔ= g Y^S4gE쇖|™#Gm_Tjha8J%[#kj1%B-f~HXJ+n#8͵/l^QQU\Zm60^mXtTFC@>gbg*IuQK'V}ձrm+ӄ d5Y!=K03~cnMEQk;Qd}s.7?[b9]có"%[ؒYğk.|=M7O_?oFTBE;-1bszb5j?h/1=3;Rؿ]==}jDa B[&xˍL.FFawjp]U,;5 GJI_MrImΪ^|_a6Yn;J󶦸.z~{9 ! r",Sa|wY:wĢspSew5ʒEĤFWGXZ(!,ty~hw9uJ+irȯ@F{EG.za}k3>g{F Pey/?J/,T3Oٞ&9K݁/BL6`bo̧h*&n;'0#u<)棩iZ3S؛~ =t NG9PGQ̰zR7HYJ@@$H qq@sNZC-}vW=[ioAy. WՕE~2|N(_o.ebmZD~jF-[3q}V:#Y{gv"=9O k93l)wxa*0:% *T?zgu(O^_]Y_UXaM!|z,(=F&ݧ}O|~^}5kns]/s!#G=zdH` 4.qKHo∩H{VMӡƁ %5k*;a5D ?^hh=Pd vh KV Ygu #vP˗9rp2& \4w7bϬ6l'x0jtocx%|C ދIOyutIiqޜHHDw^xqB`qEܒz=GC8@T~jOOD_h/{GaIs ުz*Ws*A, K<[`U?X*AB""qH'qq7 L/F55qy` FY,)1&!f +ϋHM_ 8 D qq磉m 0 4i>*0UPϩ:Q,~_m&?z\] p(ZY܍FR`'<4ry~ `"y9l :p g%Dh @` @܍>s@ 0~@ @ @G~N`PӸ<"IѵֵQJ,D:0Āy( $y!q߷ F',f'䧎xs3$ Q1P`]~!:K_yuke?gRgsaT}sVXGc[Kk<BG8=x%^w%F ~Vb{'6RXڂGB-&=S kÜc? vH VA$TqZ IO[__QkR!6]U3kjoDssg/vƗCi|pu{F_Jp+1;q٫9h,zo:+4bII"q8 8jPfpZpAIPs5s{K#5<ΑѶg@`5 Π,잺AvHγl>rNE_CE-lR:LBv= \cB)>VovYIwƊ\I,?t6\|5q6WXٌ%ڥ!!xlO]QKZ&i,\\ /=;%XNZz29JU9ߛ s+q1"Kj7ܜ DTmc76?P=`Z;?mڌHԠ?x#=Cͯ~Sc,37O2'.QN_o+놳VKc"Wݞ([ ?(?r $MI*r5V[dpSN~ kBMקdY5vEx!DR~+~susJ⧗mi?P]tWiK_졤Ky-oq.#.+9V63"I/vr$seQ !RowHlWkAm2)9@W:t|$I"A?|`5 G2%m3%Nd}Ss8BW?qZ%'p!Wq-ǰfv泇.A,Nʠ{=`,?F =mYlnIδ~ΎQL/Lkx㏵I߻#. ,Ţcd8 )B"A$N>܄OlA@~ճghRr>+K 2M^Syr,8_70єT9wfQHL#Una"-qc]5#)z#\Ӌ%%V$Kz'iI27vTj{AN h'J=Rm6?.p. s%,fKCz"Wj2휱Ô$uME4"owzD\=M!u^S]Qn7y` -eNlB}>܆t 0|M pV(Gw^Cz\AS+eVrJU,?HtK]l }=F\x~14}ۃSy73b]1v>9c_Q0hsDSl,P-%À4{m'ܣʶuqQ \5pӎ0$P$!x = HYww#@!`3p1RyV,-G;.qks_: Ӷmdj*jrw +;y$~R%os|җ] - Gܔc.*B1Qixs]Fuv|IǗm)߮}FZAS=?D"DTn, uhm5IKP#ar8[u~wIgK,:kl+&1s%~fPX{vPeO%[y[S\_= =[iVL-b.FNB<t+Z#)Q 9]XMv/5靌_=rY|4Bz9+\KG]3XQB<RlG!%J݋ G̉:-fۭ/Bs`LS>4;P bdXkꨫy嵫_78avqzpBn,qzͽ*xlKTUQӤvaKf2s1\o5M2#It~+)b]f^Կ:Xzo~DgPKi\A  ۉ,̧#w+i%7 NE=KJV"A$krdz*}w#dT[ß!o1-My櫿}~=%Ԟ&MFx~ O<0d"zij@Pݺ@բ57q@"1X,SA]j.X$AK?\㳟a*,R[0̙ H#MYn,)1&!fn:EcoM$J TA95@!ObD?w IO8u&\iܲY}oe `X mwU ;x&qw`´0twȏ^aVd4$ '?+ E.X$A@ 068 `l @ @ @0 @0i, @ M  x 0l @cX=o֏k0&_8kD-/ Feo}ŕq L@` *& @ bӵ]5ƪf؍y\ًXtl5'D<U# @LmΆ{sȧff5AV)Mٍ q@L@c@ h9+sN (F};\#GBz=.glmѾҧmhy{sqY\ͱ9Q(ow/Vֹ9_f&j~jd9y"9/7:1nmF$ej]qqM}fߙ6͌p}[%."miQXZWN/`4&r퉋1!p#W]\H#4ޥa>eueyn8W?7QK!W7Q*86G.+ Wap&Ws?j(:;yRWn=C 0 *X+`@ (u)wG#s~7..{,GAfy~ Ӷmdj*jb\!ZGw\د4澰%zuFE% (ygBD?c76_BίK_v50%_̒-t[qJ1~E`/|.f{xZnFSGu'kg;ڎrCtV ̮W<']!'{pGP/Y4d~rH畚]#ċ p LT00Qk@ %$#K* %NL[l12I݃st6Uukd*hng/![}%J!|勋;m{t6{#Un7sKieݟV?EH+GWuS5`[ >d:.&RjEa4 d~AlHC}9 d z @ Gpc~t v1V"+BBNYʳ E8c[a5IM+D/V3?:#Xt~,޻c߸ӤhkVƂ `gxmMq]@3{SqV~\.+G k2zCɼl[{~qf#673/ p.9}hb8,{mtꆵcH\{^jUƋe;Zo15UHF#^|KoחwSg̊Czr/8g᪣eLxQƎ\W!vJ# ?tCy^nyQTkUh Fq+m]ūӳN`޳[Bes C%tu&J+C( B<I@`9,0a*a-; @M`]lqcArBUK{ń?P: $0Yd?pc{@`X@ @` ]5;~S3 0); ..Cn5x @`r> tr ^ @ H|%!~)2/ @$ ;FNĝ0@,f'J|h 0z_0.^U%̍yeo<æ(2+\,}w20T|S՗AZs =%߹]1?^5;/.ghIyJwh`3߈>Wn>E֬[L[_tݏ#^b໲P}=HGuh<j'v1*\_#ۗ|c94  @`яy3/p[xNH2%pK1+A 2 vĨkFt x| Qo; ~Z# GobHB$hARՂlwQS+ߚ /ܺ|ě^@$zĝDw^@y3nԋgQ MvլnnoD!+^ yWÓfYDP燢c x3iB2WM_o%RNw~}KʜV)C}\=coD>!U(:#scxQ[2pG)]zs!{*G( /D0_w |wBd\,Q;SNj7 H 5/?W3!k @AY=uHihzc4b[ؤtBpх̏D̆ǹ=[]nE366*_8qv+ns&KFiv6gE?+(Z,pٻW?>5+2EkW(r(ݱIcO/_SƝ@GK99 )1N]{kAd~1ӕߟI;?2rH+IvvkGU!ws_2eBׯWQ|fiF:j'>\(YbFlQ60HGyeY@6݋mFdP:HE_&%5?GE۰ r}K^o4eרAKLp~j;ݯOEpĘЕ"RPN N#6H/L?/ GkFo"Ebtx۸Kw[Fih\.Ty|v=HH`~HHHH^;;я;(3ѲUi>/[׽,nFra?/}Ŵv~ڶApw:ﱈ/<;VW浱w}oey/ţZ8+//埊vK^=@!7wiDuz_-N1nO\ ]͆(R>D{ ˊj%[s6h}5/g~^H6oӌ{z>?[jl݋u۴$seQ !RowKm1@ԹyX%˾##S Rghb5 G2%m3%k*#MTC+vT_R좇0=u=03>IB$aBvPe X%\Wp5zk.d{\X~@Q*u2Y~"qMͳs (Tt}%,ku$G%c%Uruz!C`]iTEH4:cx*EZ\Fx%e1iʫ;f%'JY"ΐ!kKu.].OLԍ?z1GqOv3꒻뚟 н1XIu/AoC{:(5XLRˮRwak!yI;0ˏ#q>w(#o}m LZћ;XfC.[%xs {FQWVo#[GNw ڃRϏy =b'Οv1ĝG,AMd.2WL|҄UoAdxQěճghRr>+KXzQKr~2Ni3־K^#uk vU/y>mߙl*>f>@~*{]KY|̖곇D1_YYڮŒn2휱Ô$uME4 sX$CvKCoi*^(!6}◐8zEWîݶVt zڋNhJ;O3hҮԦlZ/NJ|)Ͽ(c= )E<9ΐU{a,]۽9"[:HqjvųlJB)N"N~ \$x4tmvo71ID;Sֹxlq)wq>⷟]qm!.NDq2*LC'I#0/m=`oiU>D Ĉ9jqB$&߿}9`Y7Pcz\/rFD Gx>"E-F*;e?{m03[\^Ŧ"wݖd=}8S\rN;'v'bY,[]VoT"N6̲;$H Y\0Y}Qw x.5NT H Ln}y8_Oί|"ޝ.Ic+o)/=9<؀t 5)f; E7s|%>T6rmjd/ `Jd&{`Nh)AJ~4!> `e"ee∡ࡼ1tC/[Oқ-(05@[\U~(YQ\Z_)TÿyW2CW$^ܵ \o24Ą3# rʿڨ|'MksWϼ[>Yyim~^W [ۣfEe]-.y8ϧj'1b\,;wܗ *Y8gNF;8V=9]k@L;<}攅_*=|lמ(z/2r_Wreu~q~#;EϦEm(+<{d@dԟv*Wk姛>Kؔգ8Mg_"W ڑ9U[7Yo\/_dވ՞.wHm.Pi@^|R2 ho \yRKJvdǀy5=WP;&[t>0GD]=srY΁ F}*DV^$2qQ&G2=>]wCA;Q޹gX(йzo@n~Sօ(]DwE@wԻ\,Lr7vՂ;kdzѽCc]LyվU&@e9h2wV/﷓CdF/ϻ .yvIϯY\q_yLV}/*hau3'rVqc=Q7KQ\~bAskL` :? ՐYY$M Ϯʙam[dȢۏ\2>vfkl3JJw]bD-L94k9g^~'%_!U˵nرlO r~K*9?TBʟ"VAk5"<5NK^o;C^F3 _[fx^SفT+{Yə/Un]h*֮LЬINTthv6JDS!`:*Y[وw * (5@-b;X (@Ҝ/H Z>bf+ Dx4Ղ1 &e0Ġk dBF<4vʢ pt2:(]GTʻ?{(3T덦R֫-J<-'>oj֔ K"N~hQ EutxN{w" )f^y?#ԯo]͹g1`k8KndC*"1h{on:~ ;3{ߟs:fh7}yE|}gη=45{Py(E49Ȏ# qҵK9kgR-V#LmF* FGu$)XX5c:׆~p4#jOtd*"fp3-mTAG-|uh+>R=39X5zAPnG+Aq䐠-[\"מ!nP?<l/^9IwmE}XbX@/u1᷎߀V":qi7G%P&R&1cD;;ʻ.nap]َv6bb_b:`ܟG$O; 狺?v=7v#rYSEs Ϙ`f.wŰ4[C\} '?,O}<.%%@̫pO# BΫSצ6}q&`|OV\Ԑܱ$" HKJ OZ)+|8|G~pӵ4"@P@MMPH۠'] cUUlW.E~U1)OT^YM(`AϐWwі\jEz@BFIM\b;)ݡ3(Y(Cȳ wlZv@#C?%~# ]ɋӻF,edu)ՑYob?TY_Té<[U 3y ӹa/>Cx*)G8)6BV>i0=JoXzMzJ$ o}(苠L}Ǵʻ1{Qލ9ZnPGO7B-»['.[kn9*TMb~' UCx!@8jjj%ePA.w?y{ 2"Y_*]yN*olL[GVep(oiFy7zґG>/_xo,:m$մ{lo~hǐ"0 XCܭ6ȻpnA#px7XZ#Ev-kCx>D E"@P(E"@Pn;pۻ*@P(E"@P(@`&zXCP!@F(FW*"@P(ہ^σk[/N3 f+NJBfTNgCs90TE{- ͮ3t7ϓA(h}s TrXngCs:a~xͪYK+(1W*9**U6v@_5Q&܎~=T7e DʻA{hBy74]߀CKddnLzl{̊!ib;:R,*ŋl|C|_*6mHش§XCk9( .!|@7[&d3OICu^IQK`SO؃?cnR()4񒽩:Qoҏ~%=3`ElxZȜx_Z=E߷:0R[v}P3P&zW:]qCѯ63u{ %U!zo3\70%fmtݰހ䍐aZc%,|.-_}T"E"@5<hP+BUEC6 ұm'w'Wxclz^ydο\16XH*-X2t=6$U]{MYcw^e>'.;ew쫞}NtGmF)|UrS= G!Ze ~yQOER([B @&vnq0wǢsRv1. 3fT}ta7zw9޿![8~2)ŕV~enyWu,/oÝT n)(d&Ll b^tKpWRꕯM3IQXldW l)}Ðp^~\m3Ṙ|z.?j@'+^oo [ +B.Yh;+z6r Sc`*=ׁg+9U|^ܙBZO]eMfJhծNV0}ۿ:m8ȐSϼn1e[,I ]hPG+}Z"G+ I[|̤o?'kyMu>bڂ`7Z$lNyv(XxnSZs(){$LQceb?)((4I zəÙm;Vz<7CrX7-'IeG~1+aGoJ3$U\|7q 0·A>jl&^sŐ&,xSa9ŏ|yB((D8;2H' #r ›cVcEHPTK"V.Tٛ3? DuSeom/.CJ"pw#`@Ŋ20N{!4e!Z| ǣf\Z*EGRp|z,@;j,I8ЀKy <.4rRWlCt\eM8z$Tsg,   F)IbL`F'n KAA2W։3b(o{#qFSYj@SWά}NU9ÿa}[^O"?㡧VG>ەV]]ˠmLc.坋1qkUվIis 'K 7yN`2??Q#_.h7mр} )үP}\թzD0\Tg#3OZOvW;ԑVN 22k@(2EihA)`"ңhĮ~D)}e֛0iFo4JQ'ug8};s/jܜN%#IZiZEb4aT&[MN􉱛Z B>#U[nn&prۍ '! S&l10+2_Y;W&>2(-43r;YҥT&NKk6J3I]눊` 1p[]nϼ C}Bd6x/^9U!;W]8R[+9LԚwulxCo},%$h'-ːNXY'2U%کe /q c Ycν`SD5|| iRa̐ v]]I;Ķ\e jm !MF =! H H/L.LLtD2)((SΙe FgCj. ]R(O&D6-N}+d|/I./vY¦<'Sˠ dyk+bڝO[ݥz䛐AL!$eGlCKN=k*YOgլ@\y: Zº$>$5jR#ΧRby1BUv]?ncLQ`T>ulgG^ Zl)=^fKi3E{jV'Xko"W_>v+Q3֬_>h1XrNo  /cתl~&OF4e"e~sǟݺOlV;G+"tu'ulf7IG^w o5L:߫˝>QQMM!gx5@z=8!)D(+u| 6WqXvPDz]~}68DD@PbJȡL&)((z.}Ѕ#\> tpN_ᾷ'b-]Ѹ޽"$ sTz2=uyvHqzv3wL|~JG)ϼ/ d ޣv;MVH1lx|,)G,qsS">šwH 枏 P]-1H/z_Arm`_"ITqRHGc9 3C[Yk/Jm0I'6]:aۂKCҖLn|}WZo_&rleǮo^Gϑ:0qjOxَiWd29W`$Al+xz=3)}G<'ENoIq|rhj{sC;y2>g 8tΨglOzĕ=rZQb8N\n,m]VDDSdJ EE `"ݠmx::Eˉm5eÒ%Zgz/\-;;JOΧ7 F+;."J'& Uߜ}fJaٗ9gX0ڛf|뉤%~a>=i@S(E=_yM rrܩ=Ւ1ngBH]#lbν¥n#_b$0>fGyqV1)&@G S|M^ث98=|]ZeًثG!1CK$A { p18LZ1=:dn#a.yOnlPIn$؅24)ղl/ 6q8ʳOh XIU,Nۈ|~/)zoʺ%.'rOկ4>CSl8۞<[*7/i~懾/%sɗzTNu*w/gP|ŗ,5M} CZҋ ۿO`xIls~M SmߞZ >M P&R&v dEt%be0Ť+ݛZi{;NAt1(ävyf׵" ɤyQI #N.kW'?,O}<.%%@̫pO# r bXw =j_LyHrXTAP`!v ,OV#`G{P'hjj6IwBC4y &m}ayo]h%5qe;t&Jcxnlv6^jOϼ%4"gO<:Cbm[yKθ*8DkX6"h}y`?ԮE6Ѫ뛴rC|ޚ{KCL 8Ƌr>N"u׆;ĉ<| 'w%c⍷A0:RE`"0eTmB9FN("@y]<4Pm IDAT g"0|5AJA >&E"@P(E"@P(n&7$E"@P(E"@9&ݝәm ]> ?JP&R&Тb @yGyfx$E"@c`CBüָ9hd Gܨ|ZE-eo!$@~y[_]*}^Qf+Lt*c8'AɨZxwUzO=Z)!G97m#C)oNߦv@_ȦL.2q㌉w H߀XJ"F M޹^1czĻت aLESn` oz^^Ϸnq&Q(,&Cp6!ZI|ٝD\pqhC)X.&Ƕ2hS* z1o4FcwM{ (xI8zuu RX=u~~Y"f'i_yffaU,|6+$T^r{9s#IAw*"0&xఀ V6oCqZ\L6LD4UY&'&'r\0Z?HyՃhY4uCYO5X _ji !. T e }Z"]@"R T- g y&m_D3>$'Gο9N 㠵KG%}zZPI*tq̅§57z)hs PcQX:ۺW/<2.mD#r܎l*zK)2|J#_%D[!]75AoPC(du|sdчO+4*_a4XO˧\9# lCbrPXvX>plPcOQb\~w )ayzաC*Sn30' Hj"}SÂy/a_5Ktdf,DXxԬ>۷CN)S RNRĪߪ.*oy?HO&T\'#fH_Qp-O15KeU_Tr'E~tG_GR@U{IPpF[? ù= 2@S_le+қspsC,Bc$@LT^w"gɃgI(Y$+RrhuJц |uUOW" D-gW?j8ujT;Zv*5R5ADp" pu߁JW -raWr&w/CxwyO86\JȏhTmQԃ(L.RQ9 8-(b vHnXV#@ /.i>U{GdqY׳9qDzĜEBd'_}~-W"4E7Ga[p !`wpX_~mq!I/(wl#ť?Kyw48.pY)S<.lxJA+bn?V]9 b&* Mw`["@^5 E!#O"th݆IDiv>CP Z9 |mP$͎ٵ2,_  % ]S"Aƭ"܅«sY^FV4^=bpho$|:W؛:xOp׃Xy7)Jzv7z`~:6Fqu8| ⯄\+9B#~O c` ˁԏ$i$P1Lz>yFLLO)(\ tPaEA[!H[.{Ḓe?WX B#"/m&Q[`8ºq80ޝ XCjoUVi@5xzZhg$ke鳄MY=lpb4A9ʥD`Jn#_,X]S&7)ճ'߄ b!i.W>b:7P(%CG| -e𪵫ץŐ1L=Biؚ =whMŊ}!bA+7-~/ emخEj8 ԉAݷ*^ *T@C .50:l#t WO% j@3b|I"Zl+Yzc$lD2{ 8S&zP&v6Qcoww8,T;g_jlu3?ArQ;s]I1n& O LU'LX,ԬxhJD e[#zą[z]NU8oGvA tXM&=+miYP!Їf7~=J^;QWHr ?`L!R94#GF{? lݤ'A@`!ŮbόK m)[ET\Җ4 hL0'h}b% |hF<4:ozGBz`$v &C_JM5V6{jt∾j!Dg\4C+VXȇ'$6^kQ9V&Bn}&r]8$S-+eܴpThF4M; S㠥n$NaJx*.^+Gf;OV(6qQKLtQ9ᔉ]#W ϑ;wwn?}MnTS`xhm`/5iS"AUB \\oZ#:o$ޖ~9%~Փ{gOކjNZ}~s Njy%ﻉ_cDzj?͒ۗ4bZiBi1PǦE߷o9a0˯|_)2N#Bysֹ?XSLaͿ;}SH_$rGi E"0 5cy UﺰG>ŋRǾhlض͖4 h% ZVAͩ]4E(< Ljqb4_t޽ v@&߁Oք x/9@*Pjbf10`ǰ>ۋ,A/,UŜCd;5xMY0V _!AQ.a94qz*I#5fjK#V3RFh/.+chPGC׵Z,e"eEf8f(XJy{)(7RG>6B4Bŧܗsڤ ;!4 ݄Bڀ mx80|7!0Ի V&۫:%5o6ۍemmCAO+2jfdnz˙Lun cODz-HRJ֧do$6_x wࡍ2 !@6wÆ8@>8qd;V5w#bĞp,LsXl-և1o+"@*6p{/5&L.wz^M lfa2E郌᧮BBVV_/@$l[;&g#r9)9S]n%04樯`ۀfؕ ^gc߷ m=yϽ>4DM'6쏛}γpa^.7^Z,FYiɴ`=/i.U;m~'xb јO]uYqjΏOV0'?y%v|SO<˭[9"3Li@8Ά?"N4ATL+Ӊjq ;ėq(?Uuj==v5 6ݑImY#ا9pRza$z/I'Ny1B{9Ấl6ZiVWƚ~u5ho[IjvFǿ{޻._B_ ; гkă >z Rk"mvD\.Pǭ}r{ԥ2.ySokCɶg'Ksɢ1N|h)]{N@wÓ}BctpVO`t)6XSp=X>2f/ "`?Ͷځ   0"u$VVuPA>L Gj. , <.4rRW#ܽx`.9ʘ?AV X(bY{\͙;גs^;YkRaS,U]ZLUF+[u fM|O+T}ՐQյJ *OZ$b[/=_y}[dU^UٯNwwsŅոD{}]w :l'fTs?_;)ktDOCfa9^|Tc~ f%4NF22NmwwulR< `m(.P dKϣz Kw{&+*G%odlLU#`qTrF޺Y-͟B†I"o._!1ym=dIvRŔ_a-4P(xj)xpd2nA>)<*B=\u}Vxr>²<>$-%'/ 1z  ij]ge|\aPp%rPVg㗱)?UEb Ї= 8-9' o |OSiku]4C229wwbޝJr@s`@(lW8岧M @*Ys 4ʛ[a]8ΏF:"bKc:6Dc]\%2z_ٓoB1iL+ jED&$Jrwa/>>o8w9Z7M@6 -W?0Xvw+±. ͞NjY$6_*$.sFҤ yEIMV 5c/&}۝e 8V/dkm_o6 2:N^b^9]I F2MLL8l 8T.*WB8&``T tj]|aVa@q>BIc=_"r15dmcf * ˒!ڹ2BO<3MV|=sRJ>K\ў?3v?(E˴Ϲ>{'X-OEiOA{nٓ%Vȵ)$Sl_23? J}")'.2j/;0v8K327jŖ铵mVٞ Mg&ݻuQE.,m4}Rܮ¢[˪eۖ&:(15֧Gؘ}#mYwpD;xxۦQQލIs*ݗ%SysdUF'oVq,qެR=SRK?q(A ^~'%P^xڪeM;-`Cu ->9~Lt35XM!}&wG14E"0X%Yq355RKt'PWcϱ^֞Eݚri*)S&PU OlG0ǼJ;SEwv N~rۧm/E,]#bwB7?Z~~DN3;?}Y˿G+OՂO zdK럀_~6 IDAT:E#ѐP&P&yEyGywq2fٳӗWɵ?`Dڬ{Ʌw/daH4?E,LLBUEbT\w-ֱ'^mbd"&{kEK=1Qž]%}XaҌ9Eգ!%XPq mR(QFMM*~ >>yK4z:QK4ӣРM7zljr+`Fw4P֠%5qe(;H4e Hnw1n @^wJJjg݇OVvºIq{-VCS] sxh.'iU@;.ׇ"WnJ"i;ıLıBz"Cy7VDy7VHzn &X kke.IKS(#D_WMg~'<npWG]FbO{(vȇh D2qLFejAP(w"mE"@P(E"@P&0] OɌ*E|2#@y7 XGwPҦPnwA?s떌}tew^}OdvwJzn]UchT"E6!@xPO?` 8KBk'In2J)!ƪcو}Ku'6MsX?:vMȐeC\;Z+v~gcoȵ/7ζA.{052THL$Q&d2- ZTo7tMDl՞ӝ @V !Q Kw۱ՕS_7iei E"0qy>&Ivh>`QX;nNE".~K6q[OSFe e-6B((F8th18^gW.f_ 9I!fFC:V䎼}z׏aJ) ;?,v^mͲ_#q DqRsϲ4N} N4ySb0?%9+Xs361+2M'Թg;m͖~))Y? 5}Ճ]j8u) }{7-Z˲}^iBӲ,aTMt3s}a}Nšt[h8뒏[EYz#@H8Bsz ;;o%*g`KM,Fm R:\V5w+[o|7`bx0sgw2*&+&aE; s¥b\f̨ w8IdR׬pSBS 5_.WUknߟv)~W,E" oT!lf.e5[{$|͖= @%gRq'9&@לtg*VKɏ:Wէgy5z2Obgfo/x?I_]ycf>ڄ5O<$fF>UؕO?vW6~SW^xKv9qGB#(CF22qȃfww^LT@16hn0_^qsȥ`}B#Y+z043b 6dZ@'̯W:Ҽf[S_u`g,R}KؔN=pFp)X˔׉f\ ְ)w;^7p8 Qr?@jkZ:Ҡ~KB|І6*rhR$ ht" NbBzEK(;.>~7tՇH;E4Oyk}{,"S}VQq~;NɔR)Sl+T*!u%^D?edmmg##t 'oɔ"l!j3&ܜjx8z!Qcoo'Caသ VSSC5Q?YЋFELtD8B3y ;;o%*gUGe/񫞔ıquQ4[cMVPC  \PB>R1g~5qFS(`CBnH#Kں[Bäiyb֕v?~j^u^SVٝ{q\i⯺{f03 `H0b)Vli:{-9([يT$%f1 `s3&vw] R``Wի aҶۓS頦yZ\{=KP=25\s0eQ:~.4ݸ"33zYWY;wl^/C%$Q|e3fN5u֟D^R:vvlYdN[vp=L{BE/+MSN dCR&R&3M Aw}ڑ~'Fiqa!s=O7޾Ipyd^X#P~sұdgr1\g[,}4눍)8$*ٺ|س_!$Ł2[V׿1 [gV3'A7ܵ+LML iJxE`# Ff̼U2_%y9XYh; Gj&vkچp'byqMbj̝ЧLD%)_ww7+0xfϮK;|}LK :cF{.V:kTu&Ԇ5\4i qpTqݸn>(Dxc^Jjԓ2QU@D9\BFMOʻPu9dF?˖yxM;y׿'\h( Yyܚt_aNlDfߨ-Sّα~Ͷ>᎞Dg+Q6ņ;)\ wtZ,_ô>󑔉Cl"!7)(Hf? [uovgg✊smg8uharK%Vw)d[͹\yƾ$M1 }@3&>@!0,lYT_@.JL%$NŒ UrO .UNnǽ"H6iqeL^ v8VUG!JƝ껯Y#,h"L~?/Lq־ M2w1XhdJfo\A3̖͑ !)vR\GUn] [Ox"kOMyO=tw{M<{VM ­׿y7*@[h:G`C=[ަ#U_{'}^ 22hgP&xxA N >r󀚃`XZh @0&1u`*5h;6?,!* s0)(sxƿ8wP6!a_ɀYny;V "#w bLR#ɗM?CP!`WK@J0w 8-sp5snbl8n1V<N{ڑЎ @Cq1 :oGe&BX(3g!߳ mq)3٘QdV$g L:EL{ T"cR 0Zqnp}L NI? ut5$`,mrP9U_3v#:?SjN~ /}^lmpԒd]- 0򧣵 ^~M{7)"mm^?Dף0qs8@ 68ZAi\,WvsQJ1}FE"@p;6l9KjA:ti96 H 1whVJ̽؛{0rsQO={7lHi'0W1eWdBT(w1H 17?= <[^ĪYM?8M (yHU8߱ ~Jr09Jj&Y]ksB\_}Ekw{OK+6eG|YgI26gI\ߞ lpvrru?P&"LX;` S䙏<:UU=@C@fA.#`-v¼?Ѣ=dl&'elClb/Z*IOG="SgVΗC*N^\l,O i o4)ڿ#QߒX໳c! Qa &pΪF3e^OqƐaΨlER ҅'<.gmD-BrOg q~+RVu4T7vK->+7.Y⑵Pwќn,-!=R_y@}欜 ()M&(&nGwdTt` X5 %N?A\hjCbG73F fjfWmR. M* (|;'B\Փ?UOs:4"@t!`mu$L1K91Xxl 䵊m߉)iy3I&jH4X% ;s2"W1G'>b{h1a0k/v4b5N{,MI`TEb`TBG¯f͊ t_iY)IABh٦ ՠ|:ObY]Pg}R>'w,)xxj4_}Ǜ^u z 3D1b}NmS1bc)M= XQ]-1~Xc&INAl3lsdԑ*ȭV_9ӯT_>կf*+'RhiHܴsq`,-Y=κ|ֳ& 4Lb=9/WG\ͩ{7e"eb7){$^0# JDyGyGy7 >DD"pڒ[?/:Y)dnb 6Tsx͹@0U(0O$^X0mH)}|sw19G">\jYQRS(4mL75 ܤ'CóqAoҎgWW; 8*/ILqe+t˳c#>^Ey7^3<=ktWZ/sW!>אʀBƮK;|ճ.FS@YG{yn? i4lMI'n)ՆUD( c'j=nLAӉ?'jqGKG@P 8 oyc=[{?*0Orտ(]3֟M;Q۟(:\7QD(EgxgeQA"w1RQ#"0mLk8cc^E`La0y#Ăֆ"@P(E"@P(w'tE"@P(E"p!0B&:0ik}ɝ74 aC8.P&fߩ)wsbɹ9~m٫f63.8;D/i+u˂xHX#2q1&%c%(*֟`wQӓ~Y<'daC4*xcҿb;R|c(.'>e\Tҥ]3voo:<?Z>7wԿ~w|ᯯ]،MiU! Ȭ#5gK<}AMk 6Shnw FQ甉^vG,󇔉c5))|*]7 nO}JՅOn]+BLFpq њV5R\|.=peO/I^ ܣAbS'~<4c68}}8h*xxg7kUٯ6p>Z~9B T*P/LLПv&^(((|=;СMa,"A )l@&Ȭ3`}(`+2w!,~DPdѳŐ%@W:+PU#l=iǘń{YsdPzD,B`C$}C#da >¢G(qPAգ@oE`#XuJ.Ŗo:D]◼jx%:NiOɌ"aVV~ɲv^t*.:W۳9Z'JMv[Ӎb$ ,+v7nނ"G/~pJ>-\ࣳ?|DMt%}D1KHys]bTgKɜL^ᖺBh Wŧ'+$x,áW\O> kd^s %*nҋq;2B.U#}H0Zc TtV0:,U]kW#Z!d%(e"P&K>K1ww;K!0}x~#p(V+EYa~6J)-7±ǂ rKSD22W1EU}/^!S/ʐEqrd nHfw^&22d@OTŊLزl!clp&SP7> SQaaѼm "WotF O|yy8?(2-Ny=ycmfdz|~+L̝*ڟ-4KYx2̐'/|W_nX|뢠ڙCΗujUW_Z5Jϡ#} JFٮYy2H>s=̵m:,"DNk֖b¼:)<-h$}%JYH?LTx3P&z(=AI& ]nA2y/.|\3yq܎&%&/;qIUls !&?0`C4oD:L={5$LO 앏نoF&Ik4b@%i[oYՃ8 ʙ4*H!X?U b]`KI( Mʅ鑬K&Z[#WdDžkP/-诎l֤R[ 5wYfum)xj:<47*s%`k#]9Efn{ꅮlDdԮL =pz*؄v$ 6$}'l蒌ͬ'r 8 ߫ԽjSpɁع gGKYfyBJX81s`sIx@HطQ&~Ȥ]/_@wz>ij8LCU],hkMhbw@`-&f`_noҗi>ڎl 2{dA w"rAW^/ 1Jٔ~JqV2u%4"@tZKAjjj [pφ ,Z";[+LA3fDh0~ =].k@7ȸΆ͜^L,#3}EKk;=9Zp@qPi [c};11I EM8<;ӯT_h5ůcbE|22OL5QQQ)cd)O>)\Ѩgm-n(4UB&)Z;_ ?3Ҝngԭvd=XH(Շql?XA)dv !|-ȗF>Xc||{ԧB8aJ<6RT0b<7MIL0||ɶGV5%5V/Լw_ޒg}m޺g[{k_J)͢ŶK߾ݩ[J/~awb~~r4]+orVII'xDGCo5 BOmsH謹'= Hz6cLiߖKӥ>cŕД|ԛ =:"\M.6e< }'~L4|;yvtT_灟}g{gGm^~qJo^LNSmeou/Yc/P&R&FP;;ʻQ)H:YuiMbT`k1BGAZzOe+`ԙbb*qG '_ !lw4`dr~InE0}ϻ6pqp$ÁԵ?B#S)&/EJ6}5s\ҰRQ}@Lд3}[ VSN]|md!d򹑼vd =8ڻ۝܎ηt| (6qG+ w=551)e+(]#=KHy#9;8)!4N=rC_Zrowd@9*L#-]aI' C3MOȊȯ~+{rRydNCb T8#7)χiT1srzfXn,?{e|JLi(cCy 'Ȍ4!B1bZ!i-$ַQFs|D0):1H?㱟`G.CnHt&rn4 8kKJn8z]Hg(+e@D\}0E`RyIG |Dc S&cr-Èϳ7K@wCr0ZY~I~L>Z#"02SՙJw({ R#wwi Cu(^AțƌjNP(E"@P(5V:R(E"@P(E`P!(E"@P(E"0`#"}g|i TT@(eWVQŢ LT} &y^2^MF-%K$.GFxyno-Pҩ,]9ܳ4)KwlGlDYXI8L}7Lq\!;ñ C=;[o-C2 j |d#SQ+K'naJ*"0g9*kB )Hm$CAm¯Y.h~SPQ'`ᑝ*D(}gDBA>V ~l.zC|s f?עƉ=LyǢL)w>$0;B:xDŽDtb2ΧDFySH'Ė?`|Vk6t 4}aHSWeD 6s!4׈I ./;aCP|j-F03:\CzL5*9εw|6J r+6hXXI-(#T\^;+0=8@SKM{$Oxm4d/G!Y|ĕ{ }'K B<|:^ j2yRrh:'gp&ڦߴMV$Do]o`6o*V ]xjBeGL^zcm]D6qYe@~{rRi >,UJj9p瞨gJ[é8tFӢr00%&-oN[5O/[pV@$ PR&v()J(QQ/Cd_L JzLj_^+}AsT#@$dcbȔ~޸FSLa6!_"n qhz$&E9԰f%4@J8\ԓC>}sǵ̵4)Xe\0yx'ޯ)1숭Jf޷'Z8QnfVsZtfM/&>>&fi2Xkmlʔ7jE{b.?_Wn40'D$]9 ˭HnH%Ew_>ӨW n`37'_|N3Fs^">|@(IH C)_#h]$[Q+:5H>;*Sfq1' H-lY!SĴǰꏪK"E ̥P.!҃l+d)+a 8-sp5snH?" bLd(pw_"XF\؇lRr&EHgXTT8P|OoJNK~|CE!N @`"*uԊzi_  6H J41hB_4muHF1X.!n47AQ>t8M? v[KŜS\pMP謈/r:y̷w^:T󩴖Uu!64WpF5uX͵f yڐyDz?Co{6)vk!uD|YzK}%}VCMT iJI B]?s,+&W=aʪuI䳨+=|2(){`" 9ww 8`/c푥gd^E_8XГ={/z4 IDAT9+Է17?.|];`"$[Toա7p&*Vϱeg bNѦ"Ǹos9od-nD? hb_T5}dhp jD'JU,dp0^hHuDSNZOjxE7 @IJ1Ejpp"Tۧ`&cE@v=(ܒjˠ {[&$wh$Nͳ-p@U|&ik6l*°\X\3(qX, 7KgP?{:3;EOGsT^& h*"9LEOlHW_9frߙ*׽mтVAC۹u+ɠeb}QKrs>WwH>LL{8r-5GF)qIU r !={H_ |4՗I0UIioj:dg*B1NvdqxydA4խⷬI=dl&'elӁ.NCY$;тu UFJJyDzgPJZ^ o 0*& l09pll_?×3hvYZ(e/lu*hP)a`3/@A"!<;Pڌ04=E6p3xACΞK9|̢JgSGVU畆IXT\x>DX}Ug_5koE$H}]丹O;gLL#nDPbA{_lBSL$ELU~( 2XM]1I`L>Yq&DO[4aωPT:\P*w5s)A.Ow["p'"X`-&f`_.OF93zS,w@?ӻSAP|O7(*%BQ9Ga-8Fj4vJt1{,#ڤI N?q(h!@ݥYkpy"M1ւ!ˆdPh/5!hD?e k@ qlr2rs1BVjRk71y7]mjLgޟ7}y mC U1 bUbZ.vJhh8tnom^5"B2P)#ZrAkV-ݧ ̸L}ɋ+Y~" x{EzZTШԊKs>eDĻ@/"(((1VXߍVTWKLⲟ;>XIro9Ȓ Y?ud=&S>q”xmal8 W*9i|Ա9XaɮOM^L^"--@;_ ?3nOWbTerMJO%Y4"@lxqC`<\ F떢Qʬ(߾f@עUsPAIWiH_qP EĵI2JG֠sPV@IE-$ͫђ([UJ`~9ʌd1H&F Y}0LZe-Bg!M%ޟ+m͙׻ %=Qh.. [͚y^:'\Tn#b%'/ۺ1f|-b.!lv@Ķ-~?}js+7 VW.8xaR|!-|zj} ޡ B%`J6g_CEϕ EgFmfy4H\g|CxڨEzx .~NhPi~N J{@}rZ ck{PUhe"e]DyfQ/`A]x 8:BåN_CN dΫלF@#r_6Dc-5<`jA1XLG,.Mçsqi"ovc,A8,5D>S]DNqh  ǶJ.1v؁l &SCgS ^߲EWpGqbZ:8J|&N^V&d˵@J1CPR,\f[ŸpmjZOi4E"0$lѴ3$fRZw ԡ&15f`,"0>Lj)<.=l:PI;V_q&`q?8BХ_ZWǗ ,-Bv;֐TNBQ4z"ƌ6nu7+.ofiG6*ۿhiG$*"0P&8Ĵ (A2."X= LR% ! KZxUJgb(M>IQ(jMw+M{`}B cxhPwuZݎ_p7˅y+aDNrBjF1hُ,tWR9q0>5i] w㥥 ;ƻ`"5$D.MF0:7L<4i(E"@P(E"0&q`T]E"@P(E"@ jn4E"@P(E`@MSabK9"@9lxDwB`xAzZ\*]!wKEOAV[}F僚#H\v% r纛–N}fM|RN䴭aE&%w.csmQin{&2>npP&z "א@yw_ 5\S΃ryYަ 0}/n'O%3[{-o?h^E`Xȿ0oXZҿD+|q:*O#;N_?w(Ɋ#̜79!llrXh5W7ߩoKCġN84zrLZnwm"䶕1t1T+SlAu%סcx?;9Я6_)/8P&&sj0k뮀[jMͱY1ć3{UrR]蒇-BA2j$D ۙHyGy X;)5jqE̹\yƾ$MN^'ċ8,r9|"_N0P$&b41kJ b!h GCa] _ =T%CY>vZ[(5x\;OHčvO6Es@SgJ!|_?vg 4'_'@ gpP9 "%p*8ׂq:Dx%}\(#T\^sd9nL<{tY{QYM'ȶI"[8.xl?6z#C؏?vAdl^f%{/x@˧<¯trhBeGL^zcm]HN>".5э]n#H)[WtʳfV(5[;Ri >,PĽ3"!9Tٯ~[v! .aapVr~{k#۲.z= D DO _@~|]C5H7}IҙQxtoٺuBEbTk@BH[ GӉjs"Ŏ0K y'L]1^ 4~ߊ='wT+"Ņz01{2Y}0Ծ0řQ+}AsTCHY$!sFk$n+4,9`9œBx&r6,vkLP(c!VLo?_`N2-4sUEe֬@HIH10u2/&Z>$вZOYRhæ(Zpt<'RVqu=ܷ.}` ڄ?8ݍJbe㕖Q{P->m( 㮝/RD 'J٢jz>rrd|h?ccެɭ+mJ#;b_(.?_Wn40'DK> N{hM{jG|KȐ_kcSV @e{7=JjD DoSP/BS}oUuR^F}rHзBuA)T_dŅ A8և"s'QMbHjASq=F:+PUwoY44[QYF)hiO;2Qcq?.&cY}:2eF7s""؊Qg`Nê?.w+'|&Y9A!P@5g=GC&A݈FP C2#Ǡҹ{VS.G09 ;E=(V J|mIǜ}A;5j(`)YJ4 )?J8 \)&WG.^JMĠ"~?:D3 ax^CE;L  :8By@* R([h04:'4dUuU1:DLΊ~)$it|pzCsԽW]?@*zHނS l`1TOjYpcpR4jY>%PCY3.[o4JZ*YSgD0ycyךE bjȵ,ebC)B2E^H0y(u b.O>X-0LvX[ V"~~c#Q+ߪUoW96Qd=շR(./ P^T'E! )Szo6;q8$87w)z$ۘ9 @A~H47})-TMɛěݣ+eq:oD}"fIመ'+E|2S4"@=C3`ݭ@\'핂Yh *>u o:"CnOxg{11J69+&\˰z烘ݜ 4 eͅ+6Hg=v J~]vEרahE"lqq/rXnE=YjbD&h녪H#kfZFnN,o& P\c5k樌J$ vJ@H)奏raq)jb6i3a+bĩ0\J|省CJ7UI@^FhWLLt>E_~~RkUq+Tzse)(8Ks!1OI`C4oDXam0~dj'&IYCPi@Ő#) 8u*LZ m. =jǝԞDHJ XvuH&pEumJjTϞz 26 vv2{cAE`!04v;΃&6"6A $y}eAU }":Ba2 9A}\ _&fDIa<`kG&~>҂?ZU+j@3NA1`~S{UCVHV,ۿ+JH +`Ɲ-.Z,U}UyGj$ BoQso@/2;B +BX[`U/<+,0x.|)Q 7D0ѽR#«CyGy׷+/ȱ[2X!?77(}pLU!PU?ł V8:&`"`.bz|Zu;{  K8M(,ߎlA >ܥTw49,Y#`B }xF,dnb1OMX/67ZLX+̚+,0Ql"@YzG6.$ff 0.%&"QV*ܸfN${j' $?p:LY2:Fhtzb = ,&)pf>JJaly,Z? 䍌 8b~oqvPfiR K\9'69Ӄ5SS{gLP8I 8;YZU VZWGᨹ¬xDڑccyhTȗ|Ա9UÞ4D ӱ'M۱jJ+%&qKr,$W -Yr`a#많,IT쒠ïwKHig7 B%h♯[쀯uѳA 7ƧS~bav4O3+ݳ_S n\C"B X%TAɩ3;t>:;D|8lKc0iHbJ<('H ji ̝BL*&_ ]$[{SC/j8^N@E"06@fH+ lލ]tC 䒼GX!B3URZwnlHR)FUӮ]yק&15|%exiH1M{+}݈w^}z]vRLX)޵V)E`P0 R鴘@@~t7D]<@|ЈyE"@P(E"@Pn nZ{E"@P(E"@k&iE){* 5wKbqwDZ{wssoɽw_Kĉ[\dV*$@ zppΛ=S @'7ߙR%@ P%@ P%pg)|mɧx%nUU,z)|oݪ6#U.w H\X IDAT^|UGxwbTNWOrIIƒGe՟ sIR٘{3gYYOR8j%g8j`jw).;|!ԪL>1]X c>9/ROidJ<큒}=8ƃ֎:[xKq n Uٸ0 `\&.HVⓂ_GG-ۢhez{Z\i%Q>ۖı9;Áo;|Rb%@^t[lMT(/ GoI./66[G&[}dcXEfjM\e!l]"O}ra.~騥5QEL^q㝮!'GV>5M3oWuVFo[o`Nө/j ծnjW>r)/|PG\mK A0ϪRF[8njJ)SKt=,N)\j%,Z$Djwovox`珒})Knr۝l{k==T*q8{tt!1u`*y  9\ߙ.;p]U;+vC#&}qՁw(%-$aƄs'i8St=7]HHKܑ;-Bx&ˠKsxP%0A (OqahY#8 @+AUV|V1m=t 4qh["tXaJhWH)Im_ iѲ2UK7#)R$$Vw ބ.vЀ?.T.w)Q*RlālBCzX1 -; y @چTsΗ|*+,,} k2<_:CM]m~SŠV|گNiL~hdş3[tYY:M߆99 F~ge?ccޢ{jAȎئW˭KO寯27<07dQNopͫl)lgU=Ő)N-IdqJ C-e xOXKv'}? W Wȗݤ;W F~'GGCyQWb"HBp! $E /{zcըE&Ց_&v8f`4![O 8sˁ9}ia09wfG;00G@g#{#|C*Sw.S`orZ`)(Vfո p S!jLPZ?G6ծ #2P:;"ɾzwo a)3r!uDBntM\,攞sSf35Zs.0*QMo;qRϗ]1v4j,Z,Djj>\(65({զe)LQo=|KZk E .u[}LNry}SX$8wkF4+~*ĭs ^59/cʶ{0$02E3-^z&)S MFzh F蝀D)W.\O2y,}m6Z(O; |A`݉@v&هC +W}(W)׌I|L\{ Y_ MGkAZxr/-[lX"B4P몔H;bw-cE*NL(kN1ymT ^z1lp $\ ]gJc6T矃鳸_Uwere,/E-K%zTFJ$;jw^6Q&FVjp:Cbwد:PIkm$^b|+O@d A[ 1'&YHçcݗK PD)~\.>rJl8l ]Nv(:΃&nAB'o"=?ԩAfMc-G)R12G{~[+35uSkWOLPVc ^nmIg? H<:0UxiKP-_& 5SBk{9h͊PT>o<"G좐p*Akɳh53BRKS zR)YRꢖDwzwOɾ©QeM77G:;Tl5F<~)?AO hF[~n_lݢɆyv05p҆p2 Bu|}U]S! ػxrj-o@@o@=Ȳ‰^4_lq> r;Bx v?B"vhU1XkYøĎ߃뒟_1{U^Ұ7 @>@.~);^;eԿ?jikEn3u%3ûpsv塠ćvwyN'?rJQKH-Q"o@to@̇9xN>jjj7q"n_?'3|8T9w4L &(nNF&\NE1^uVQ[ {8Sɉ]$yW8rMJTY@0phS\ۭ 'iScn]@ Ldcm&rk;4bOt (;VXdÛ R>` ן4ݮҨ%@-qV--8&@nWU(!0J g|+Y(;]u}ޖ:RhZjPcNݘ#R%0ЍPd('@n)fwt#m|t1 x[~#UIUn(oL4oJ`M:?_P(J= wf4%@ P%@ P%@ P%0 ) XiTeJ(J(;]:dHx0(#GDSZbըǨbSwY t>\M26u\QґUͣ+Q հ_LQ P] 4$C+($`8%RKNiFݍhf1wG')ûgANBɧqñ)a&鿀2TSm?#[zEF( G@s ^6#5akPQ_#wp ?R=8n&##QIQ@ЅAReo*Z7F/đb;,HP&  XijDlLE2w*U^5~f !X6;-XWG!N5 {GUv3~`fA _;U~Gj^ebY"(zbݨF8é+Dk[McGE/3s!itsшI3[{,6anȂFXS?]dB gfx[(̵ oGi e+Qf4(sTh]s!~ BSa*܁ih⡲N% p&zx h9@SK(;?ؽ@g{ڝ(;8gC#5^@Lup.6Sދrg׀L\wу/ĽͨR_var 'Ʉ7T!&=#0ŠQ1ZL`I[`f`tctZ 4DjcdrlQo祉 ].bZFtu/]J/nL僦'm?0W2%J }mSB S-G͑Ɩ#!)rR\ Zr?n> 00e젚o煊Jʫv!E3w i1\I4pmKК\]k߇L\YXVbosBr:+ٜW٦}a:Hj{;#s[0M)mަ(S"Cyj4ATw 4"WEU{+*Xy_?-ڎֶ h[;Po<JOMD%64 #5Y _i % = nUxxҶeeз:CVL>Ɵ`N2"\|89v dnDAt:D{s37aQ?rVM;Q_Ju<.*]Ym^ wAafd>_*Mڽ &|UJ!fmfi:f\@{d1ZD-8VIœpd-k1z0Z8Y~VN3-H壀ܐ 8 lE;O92PK %\>##0#uVAu\)`t=:X88DzQTG eT Yb3?d?TĘń]Ԧ)$\&Jvlj@^2 d]f˗c!CHz&CratHk[+c`ˁsL\yztո5g `8 | i&-L KnRXFsBFS75NĞZ, gdqPܛsf H߀7 ~#P\o $MV?CƂ@mlxY;DAih i\d Far0LRG" X:ApH umR؉HoNn@FInC`wf ~v3SrRUnG;\tL ~++LlbO =|0 JpG@y 4s >NCT>暨R.>C:C{ŏqDfv(:΃&nABUK(+Wm =u|(6fB|mD }%S \675. Z D1,zo@7C5 =>ZE#iy!cAw_iB+S L$̥Lmq(Gc_d)V # LC,f*Ht{3tfTQ])>ؽYgGzWQѕao(AA{vOBtXM)Kjܯh1nad&'1,5PJCZq6|q364>FjX !Q;K 8l wSW.q0@`4$}?KWǿ/}N|nrьנm#zZpy-8e*mhNd512> IDAT:>@< lsbCߓ7(φ(r,C> ~  L14q_^B\rܲ CsCO(z ۡ><G3ɗo|u6ʆ;hi7\'PlFr]7ǁQja%S ZZ5>4:^&'%Rh H߀C"Dh}=ظ.uW5|aqeTVxswܱ—8!-G@ws4ƍ쩗!kʽnW2 6Txל]Lg-|-|@x bh)@tD+34ropa![ {8S(j>GUb>%p@3fŧE)ز}<}f|{ёqwGv| s10ա (A%*5jwJdhvpٝKIJpm'H^aGkdDZ›%=7IL{-sXy#-&U6` yJh^"9;D"@-q"uv7Yjr<,=Z'P6F+*&O.I$TC@!QJ L*'UuL&HEQ5c %xa(INnL7nEJީn隢&7_-ntcC`x06Hs<=Us{TF~{\)%A =jwcϜH P%0^ަRB%@ P%@ P%@ P%@ t 6J(J(J(J pN0AY}xuc-k_QO4Ie!??;$ &4j ZqTmJ(J`$ܩS JHKɟ YV[ULOXK H%0ݍ=s#%@ P%0nܩ.`@Bۅ_0n**B L('TuQe' jw"i1Ɯé+Dk[6y )J1#=%= 5 j;=fsKbblJ?mK ^*1}#"TܙW9+ˉS?XxRaI,WXb{W,Ha~—bkZ&hϤMyAmkᶫ\ \<.F ;E./>jtOV7UMS{heܽ}`5^|bǧZܣAe6I" zg^||ިH3%38ΚWI[QmC i:E:a4=_L(MpQBbfL0{9*c:J.$a%یUǠMv1Xha*H* s[0M)moC(I`Tᢞl4fPZL`OiO\F~dkfg5sf` #wdgۿpɎmb>&XkҜu´gTknL@ȧzL>}T KєGaKk;Y5O0?3|Ɣ+MD*a? <_/~תwEk~Y9 Eĵԉ߿]aM~|t Ƞ1LVu=❬%ڸqQs2yx.w]J#;b^._H뀖ДHIhs ؊=*Ӂ1 MSapl&p;kH8%,}FF`,G11R&BX(ldsĐoz!% K`, ]L8U_VKXal㘼O9sZt.k򁭪WU׮_;[g*̛!2E d xw-eYa:U`W |iHZ''+$ lǖXaW|SIop?99L'Yr|ҽJԑK}tNݻ/;UsS,&tAVnrn醢F0̘o(z8oAYZ4pH-q5I0;jwO"KŜ<@T42+) *SDKZk E#xl٪#"ǹ_3AXS!n[᰾=*nuo~\L,0!⒴$g.JS J C݈c+/]Pq>yžobK6(6"v*>1ǢO4TW'v_) NJwzyXwYp]OM]a%'QK!QLଝ*ڟnatGߛ BM[BNJ>UxEC'j'YšvGnB4I$raq)O-*(q@s !Pٷ>6/1kh>"-ni~uU_=p`dqp8º0)T+t4!27`5 S7'fMW!sO<6#{%@ PF|  E--\B{s|v9$yKvɫ,;FX6OdX8+4RIJ/%2=p jp]VVL}{rinמe3/gz֤'@-Zo㰀ݍf9iUN\PJ$٢dӦGC}6ًhHӌSPKsEmd7Gm8_BbmYG}EzM5F&\NE1^uu7 FːSI~jKm+a/Ybb*5d[46%@ ܁Y[l61 >kZ<|Ն|p#b6] ZVʹNO(LʟlPUY}bj¼O@-{VZ3a FxGnm;%rU"d$@GVP(jUw#2L˨)k}siHm8VI-qHO|ݍU-Q+4J( O`7 (U$۲v #kwx!PR2Ӭ>^`ǤEPK'jwcRW3̈́(J`+&]u*3nWqiPKhnS!D qfwt#T;e \y ?G @A5BO}J`,PK 4J`0jwEP%@ PE`-ͩ\J(J(J(J֭FefЧdnU MO P @-qhJ PE4$@*:G&+ɾ q;\\ܝl{4z4+̉دmhǟܺMN2d*`8%jth[ @-4imI2=MI=u:dƨ j0{uXALScoVT]3Pr%@ GUArE[Mun~ kiA:!]ߢr&@#V_l0 PKQKfɆIa6 ( Je4KClGG7H6 q7埉{cp߼5Moܵ$\[\qoJƐH{pIE=yyyEE4˲v)>9WYTg>cygq5ӹY!̱> ’D?X6b:(mqċRcxOzlv,k=Ǧi$Obr7prӅ+o]6-BwT\<Rdje0|Sq(k#ћo>?ktb^ ;o8=~7%=jo-4HvGnMZ?gp\2`=ZѦ_!1u`*gkzOtǮ=`Qx}A7jeę4̘Pa.$r8K?WED /NmJ)Ug1<v[.j]Yӊgl嬏!z̕"6W<ɐq~M_1N=jm^jqʃveYNH6I{“of2vZۮ/|ZsCh1spiڔ~1GNj>*~ꄵO<%/o:re]o_%%.E1)!Jk%zXh#@݈5&*&fݴ=L_s< G_#" $uS9 % b;Sr3p]cjHu !K qNRȩt`*bb.jS?" >p1:%K P x{L.%Ws#ţǽV֋S  5ylaj $ ^4*3U9(8{>`;EVw:N_rțJ^W:.dAi?g6o&@`.@G,bP퍭D5tǴpIpTT|2AK蓅@eaWhbD/P/yxNWGn4;\p2,דmHcZȉ怾6edDh0@z\@dΧ hBPKtbUkF;jw#Ֆ1&`mWXZ܊|Ա9OkW6[oMAL^"#\n.KHi1nlx@JȑiĨ;W8h oftmB06quyMEMo|2qUHמ4%e·ڋ<{S~Xv%a SDWnZxʆݻ6Ȋ)Zchڝ;+^(Hn _~es2gK{C]jvMMڱu͒Il17>4 Ǝ+!D'Jj#֢& jw'|{( H @iO>{'_?o#<%΄(%zDoS@(@")J('{J(J(J(J#^N H# %@ (ޠFQCKS]:딿G8.L=,%0 x3 AՎ<]ݿoى=?[ïw|r؄gdžH(D=@I)!I9OFRqoS#%S>SKɂ)OrM-q_O2GJr>xoœ!ySėoœ̑)Esrܕto}<(NĈCѸ[8ebLnSܚ[8"B/.B f-<4)̾B8:@ԶXġҐHz6EArVⓜ)/aq 55,=D>Djwj>rCzv74؂A01MF'S5.Q%rLGL'ddd.2mo8$ q̬FsB˷J&&K{cFbC[޷.AaOh5L>ɑc DEwZ2Y"a6Lwyd^n^1Kp њֶy.)^FLm) IDAT.%H!yz9= 1Oۗ{Ƣ&6OS)ljj@)wmYT1\8s;D \:iѕOǮ=`QxHsp+}\Y%p]U;+vC#?WE$y}6!G)N5tݿȿiBN1& -L~  7GJHGds2Vz&l?K}%e?d36iwY;~Gx`#<̚pqW~u#)Bژ7-Ɉу} ۝_7ewދlJ Rtsw?rzg_y"?}NHܑ}&aH7}D43^17-ڠrz;duk;6淪տg]Yo/m.O [^hVC"r1lP,_q:01`1as @lgJC`kLM$Oӟrd&tK!<.&BX(ldsĐoNTq̉`+Qg`DH"?UP]*3)B8gB \Qȕot#$`huPsk?{?>RgxrݩW>( MGoG%9~|p߬bgϏd eH6~;#z4uݏ}=qƆ>)^6>$Y_~l`,9V0wf!}lڅv ?UEDCgGGvUS6]'w]|@0BWK) ۧ5oTZ.rʴ5*$sWZ3fY( O߿wt{i>U/l PfzhߡIY< UpQKľLG%RKx蝩 E;Lܽ9zevIgK?/>菪hQN4XO0ҧ8 lE E ̥Pn!ClTvQe,1(kׄP]%NYҳFw |1bY,{apl&p#KzTE OVda  ]V(@(7!˯ )4 i @,Ղ4߯:|i9|j do>Ν Š qBctv2u* &Yn,C̵Le>s hju.sNo9|47}:rf7/;̹WCR@%E~j&Y`ㄸ0,!_;S%9^޼.)u&$as}3݄XWcab?*ѵE;UO4W riWϼ~`.>xVazn &d>P~ZҘO Ɗ.g66DEx΂ ?4lyAu]'wbC/WQ0}qlsÝM&ʹD><;ui8;K'Ko{F1G_ \AJ>GTaoZ=`n7Xr}n8jM{5;imMJ9*7k-Kxh,>z,$wÓPؿwCHCon+J!_WG=ݟpVEOJPK6%*hPvGΝa"Ǿ(nSppzrvj:vf"qISq !P)F f:[`D6~Ġk(&Rl q,'DAY[FTQ !IbD7r%({٠7$lz% F% 仸 ⦕(k J,ٗ%p4`mu$ 19' L1byek&my33\)aySDӣIU :.* )Ff͍f` ,v4a5)ˆ1$!VSuD }9:*4+⒂sf$ Z>^BO/6T |0 :սUS%%h&جFs_>6|tVTy'{7~.MVܜyo-;^fuҵn3&;#sC.>ƫG~(_xq$y@ v!"YUy:ufU:mCH]%D65–H;9vE}QcWiW];՟ Z Cml},+MLheZ3vsMk5taOH$TۮGПL^Qѕ'g %&'%Yr)1l7-(exًV6Rx{ wS5rN_[4f%0 xZ4]YuƊDi<|ɡ};a]l4YB1y8{"%Qºuxֱ?;T[~n_|\~/3RFrJN\'6Kr kXH*0rkTfikLM=3i۪ 9͉w.'kÌ6|굙_tt{ŏv/ƨ֊WU˶L $;~q~}+랱nMs%L b4L 0~ID u_8eSoJSb:]_6;$gt񳦅nuPҟ i8)#&hl Cfxx"m‚ ~:hgI*!cz*3JD7SQvmuYj H[q5?wOİxߜZ"DW8H[1ů'*am4P6N39-DwޒJj0m-k*B&!PykV|uE;tڋU(|%x\&{ɗGks,\{}ri%0xZO2\w^b~~:UB-|@x>*|s2pD t1ׯJ[!{ ̔.~ҿ+qH%&#|]pa![#{e)Ĥb2w{}?{;r"`j/{q%7vJl%Qjn[vĽ%q$8rKql%r-꽐D5RN-;?b 35yyؙ73/" ۤ}{0VJ_PV]ݐI"}W&pӼUKvµH%zwFҎ}\o{fRauLv;v4nvFr+frTPq \f?i $|Ź0/\YFg SK\YF޺Q!u[^\1_Li%rI8?bp)wBÓ}CtDyhB !$0H9€!=E`{Ҕ&cdi3<\<%j2@Ϛ\䀃[rဃ[r\-Y>֗P79=%\%D;[u]ٝ<ċ)-,e- ٌevzkĄTlM᫷k!9W^>;seX ]]s"G.cr 8*]Y|kM9 l"yt}Sh ,̿UrX]Ki2m*~lZD gIMomR!4M!ᠲB^:vF-pg6p@Ɛϖr~p$I?]@&FJSt0y7uv%9R*&6'IP@v|IX$j_9%9ȪCqmm`]4m K^IK!)ИG: -"OP#Fy$9&8w*WnN+Gr6m$w=$Ǿ3;'F)'u4blom_BJlJ+?phEKZ-M8p&N m# @"?7i܀@0g,*t"~br jʼn)T,a3VepQMB(4CD6fRѴ_Yl!s{!= FQ:rt^mҐFi.V,DAcwb+mk;v#/J۫&L_+wEVUn>!oOYf&J K^tն3^H"QZrh4je]H!kϠ,cw)ɂ8E`r2O_| fNM0?HUܺL)cӗèdn}B,D^oo,\K_Q#/E ;>_`Ն=ݔr|4qdM<Է$G @vï&/^TQG{T +t!}`f~^SA\p'k2"4CWo(r-"S8shC/ISO_&jur& 3Db>,~ů|"J/^C;ZYmϫr,AsfUq Ei2'^c^'SrFOGv *ϔ `:jϿi8Cv\.WblNna ۾w( 4`1;4_2!C0w.ߡT:#aGs820_>WEI! ci^[h Y< MPy|`6lAK\˝!@lz+_'-(G#_Pdrj ,="DG|\mG7/] ckDYNvx%9J30v@ǀR P7ͅ\V ;*כ'%uv1z7-qH[b/i~U/ huM IDATR#

t$0 \k|KHKOkN]hf=7`C`\fIW#n'~s3觟@]Y%;Q|s+b`^''8C-As2@ Wu"ݒ J|t1=0 ]v9A b-? Aޮj큤Ud$'dB5K..fm@D|ܾvvBAsR,<IHłv=Wm/0Wϔ'\#dYlvOm% yېUA3D %rmmU5j&8^˵CNK؋)¢$M>C%C>/jirQb:w)4JX& NT=,  KʌPk[=&l$ ʎSaɲ A ruW~c1m$lQ0*])lԤIKdD%=k`8e!0,I ]_94ҊPZdAoY .vs8ҡ㞧x8q pfP9M|OaL2'*w.ޙ-]OD|ܽvvJAs[yLUpVyXi&MH[&&'oBd>>뢧3gP't)v(ɺiE9vOG;*!b1#6B,1GА#R|#D*89뜇sWv-pBËEt_Y2.Ic"Fd=@c9:(5tevb4@k--,nrr`䁇>n>:L@S5-R#@, Qk.mR_O`PrAghm#}9u[my䉛@NCtY<%M\[K $ܵ ?m i ]DKlkD-1wݡݹg\V)ѕKf)I+7~t"8BKlXUC:OA# h'lI+ۮ \KGfR<׾[*$2խb| SobHs}(}|)]aH!uz"8WS$@ƍ445Gth}Ȟiq UIW4k:T'Ǹs]{4Z"ulKTnx؝(MoVٺHZHZPݪߐ^nκx>I 'm XSBȩU@4oo"e}QnW 4Р518{mZbqywyhwhw4~tBڸrY_ ,M\"0D/ !ץ Q@W(P'.ނ&2nW:4$I-;|hwϜcn;{DԀ*r_q| Hjwsv2-p-0p!l4Ty8تX'o'v- GBNJ?nyk_/!lCI4fok(mZ>&iCspɍvwm[ґ@ ]c?"$@H $@CtH $@זmN M9!XJ ęOS5Z'O[2ō4n DRqȑ(F s 4ur?U:ۮp_=?]d YK1zG#!?ZlDSO-B0TPp8@j̐lDl0P_J;6TJ" dVC$S!}`̧f8 ap,C=3}W@Klk|X~J$vv6q06Ì$QXc,~ů|"J/^C*γ,nb1o_[K]KC۟r+f ߰;.6+-%BQevJ;"Ie~c&cI\J,M_M\)tȷ`@Æ(F ٶZH+Gّ/~2q5{"推++Ɏz)d47AX@0- &Ce;>uv7v7PQ8Kͱ/ !еδhX  ;rk)Kb/RJ7`Jaf~fhb|ִON!"JNcaH0sD)SA*F-с )%\hwhwm硬XrXDŽ+L`"iz03e!>$ 'ĞG.&OfSs,6hg4_5ِZ$kZ;7b)KTT+D,r2Dv @@y!@@˲wK m!1j7{'#?XAn%RJxD~o=×Z+mdqJhPݹJv UsM߃*i7βI~14Rs[s&Ф iB,DU89뜇sW(\u k._dmcL8WH`PHJړ]_JL"U+ f†udEg@hb3Y%ע5\fyy&T8uDZC_&kn'F2hT/[4 4Uzh; E1]IG6@Z48*9;Qq J鞒\31\%%9򇑌Ehhhw.7g2Ӹivi 5!k}@ V^0xpc9!JZ(BhKh D 0v1=E $0 `8n&(ok'O냖iCspɍvwm[mw҇|gFrSEap#fGH $@H $04 (o84Z!`}@aPh#bD$ `uXy$@H $~ ik)@H $ &өq{ 6}( \W{nV9le?3㝝4LN{~!.yP 8Z un[^tKr_g#DYOSސFVt/mϪk_̟R*޺EK3G&?}zK#$0d\.uE1E(:ΆwC-LBLnA&@}\/\nWqH Ahb+[DH/TD/b$#KҲy!7 S%pZhn6 +/jǭ+O~Iy.@ %炩H` $]=O Fė&Mlgqwu*_R5ͮӕp8 1[f{ܮ>, PؓiH vp Yw|\$Dm=gMt7&/XOifq*ֳ{ȍ1͟}3IvNYe`¬3ok ,A.<47Zv1vӓ5u4'v&IX|ߚcl=QǗFQ4߶UWKc}||ϮWz ;f7~Su\%kOVu~~DO_?+0 WpEEee3@Kn9ACܫ*H"yxOHX{#ғ˅.j#俠*m/gAB-S-{ ((h]u;-}3SX̦VtՃ)F1o0ubfr5 &f+L 1;i(OYf&ٞ K^G˖tնVo $QvEKhd鵘9xJs(XsgeR wmu; '[?p֩bO~Z3o&c#jZRK}rEI Ɔ}R62%ɪ7>4ѿ|:uٔ˟- Z<{yFz~[RK5r3OC7 R.n m]9*fG|߳9:뭷OP/S^|Ȩ;TXy᡹tI?0fzXB;;\3%Zp^\/;;/P5ZsIcF*zU* l @M b=)8Ψ!b9O :IL^QUߦȻxi>/$ S3;.iZZ>e"RqXi1h" UA3Yժ={d_ -gF7r"8I,"Q:^H vOkN6"kAKۧ% v~k8&+ZZ|WTG1T(T]O.}hjd.J4eaZNVNWZk 4ju2bJ_>b% PkVDyF%l{S`r;+~/~wEԑ7×UXl}NvEҠ%бGҢTEso3. 'R_ډuB--:^UM;;ꐨͰp)G/*xt*}ﲮ0SmU--*0du$ ׶^+ɱVx;d%06<h?AV{zz{XuNLg~Y:%%.=$vv7$:$q 4~ `o F) @L[/vr*~Z<0rSZM;~T͂ :b04ӨF\ st)VGހ+QQ1=)[ӱp@4˵4Vi@%}gRp\}k{wp48Y{ H ̙ Գg#\9 @|"P'G=Cz[,j)w N[y#ĂiSF%JO<-Ilb אN7eu h=mjDS}:W_`);rsZTnd/+$aO--qwr/ ڝvKTeŊ,tEU۟K W+D`grE7(1^HXU$JMgf_J'D QCɹn[b){Ohqa4a6%sSY*Vn31wbLrZAjZ,`s` !S myƭ:wF4b8RϱoUmmbS.nM(J5Iֱ"SK'G[ΰw=M4QzCiScAna/R[<%ͧ!nW2$]?'ޏ%6r’eZuu}{9͋6YVuh-.NΜfnEECCTgHj[mֺ)E)hc7BԹp59vv*,˟'C#eAɺi\(;bs"Dg]u g1&RU)ĹYiT[05o-8;dهWoދhx)Dlw_ IDATo5]5I?m"6Jk61T -{>O11\.V-ߜǞɓdi9f}۱(`1L*vr\t.34G>8^$w9;#i)GC BH` OZȹf!澨^uҡs_q||@ډg%>_Y}oPIAE|rSW}-!- Xnp8_R)~{1 ƭzp&6xvvuY,c,M55oU^{:ٺh.d>*#mV# ?B=`uaOG>*V:OުT%FdjV%u)N*]Ֆ=hfhEz(v7Xv7X S:Y7!T:IsBF\a=]OPU7!sE`V$2wXyǭډ;+Eý2䓋@Oh#)nP nP0{]!*e^Ҳ e^xhé:6: A6Z Ĉ#gK`-=t\63 Uu\'m;&b!p!R@w@|05NKDNeAPuXI$\,( $@H $@K4bQ5$0%& hwCPET90@G`sSRU첟.AJ^mzßA ;0<\h}0D={A>bhx=Ǥ ؝/>O]hRڐK;ʭ:1+6j{/$`#0am.9g5 x˅BLjAUTa*!< &Rlgk@{uf+L 1;i8)o#$E.Uc)M,66fˤwF?z3χ4faSņC4^L[Za샖RB,gG?bZ!njE}#{rZM n)jg6Ȭ4w_I扻'}/X}=z/vݿ){/_dԎ^k*_Z`\Ԃ3-s+m6+eAio>kSj, ] t8phSx?pD--Q{Cn`zJuF@yjُ ;Eo=*O \ j"VEzRpQHC4]٘{@T#=E 9 ڮBk)iiL~Vj5T, o $%viO5{XJFB#/ B?{}>OLY5e!0Uvr>ZDlI: H/˷ +5؛(HJ@O©/Th?t9)-JuPW{*^ڜke WgK RF*=|tK ]hhC]nuDmT|]tfc3XJut.{L*xQPޝVI@ `(c?R}sUnEWծT{% !jq x !(IE16e=:_dʷ&V~]*h}ieA{S Ā{zz34M1.UwHr~ 5WTVع4pZ"Zszڝq6JTS;A\ !>rht=(EiEN.|#oĕ¨ИŞiihK<ҀJr۫"@̆H.'bUz{u(D-zd F P^^>7k /|/# 2.T`zWzyMglbfD96ڙfxߛ %%zsݡ ׾bopǽ#g\:Rkw/CYb5tEU۟K W+D`gr{m'nKbOG# )mdU%5 Ea$Oi3n5O_ԹJ[xm K؊+]8"MTsMdTU|h{D!P9^KNKƏ`|+T?K`AJ/M?FS?oB^yuK-swΔ B gp#g~OhhhOn{^fy^z㚈~~2UYS-ǪΜ(FU;wO爡ԵO&⧭Kx=D)<ԩ> $@?_2y=cikO '%a3i>ŴrTKͺn{Kai3Qcf*k lř+-ri-.msqŁ.jO|q(̍l.֧oYԼ__ZOMc}Р߱4bcNxDD4'vv7Kl;0֝*=8nYMo6tsrkۥ034s 48 PRǞɓd9f}۾#3er `+#$륟\q $0{T Y~Ԫ KK%1vDD*pP0B4R,|mV#LYtaDP!@-a#%:ă7K!9;x$@|xBZ!$З-A)E5j?HƢ[?{@6 ۏSk'&s!{o>H0j 9%vf@H $/|!@Ƈ;P2~@ε^Rhlhw. S$=+ΛxuՒk-C{_@\JQMьJapW)MnvҌ!$ ;tͯF'0~];;;zHR׊~.i1^ij$U 41U8: 4 E+11T7`Ce)Ax|Ir*#4:f^Z}} =gGGq`m*udcE=Չlu 񉞲'k`):{l΃z{YYK&yf]#Meb$`ğHh^@{dv"`PMv䝂@_ST~} [S_|aΛRMI\UИy7/=!9BRs]IN{OW|v׷2 @|i|єΖ8T аwTBr2Q(@!g.9y>' ˒Y?cO> {eibuw_ܒ W3ng||R;`BǏ7)U5e7.]MJv ϻ9ؖXN8 o6r-5ߝ=U=Տp5_I:gk; ʽDʯsN>]L[v͜u쭗8ط *6bm!6$\59{~ra]U j7ETUc֏ZYu,pk{niHW)e_/n5wt_rׯnywVVcǭ{1 PG*sӖݗ6k'/^kuphwnhwڝ[m]8&RgTELHm\h*rhobBT4fp'2u~$FSܞ .JIE&R;}Hy._6*lݸ,m2_H俠*)ͷ.H3o3| xH3Y^H go[n+̋fNi>\efL9}5;!LЌ3tow\ u3GWޒAx5Dז^Zj㡺Bܞx 5i.۾j36\s?+k7ǧS]uKٯ5>m:ޯK7M}GkuJu$ڔ Ɂ+"/ɢxOSld?E2Aikַtܱ:zv-?>4\.(rC`2;SAc@ԫw>wWcw\m/73D`35Sn}Y \hwV݀m\|D#w~=ùcOҜmt&I P+M.:?`@l.5Ck{Bk)iiL~Vj&|:"PyUqZha ȍVW_p0_d.Ws!HBH=)8Ψ!F8-G' @R02w_0 ]ɻm0xU=0=h0A7, wxD/wmXrvT9Qy\9#% lN5+]Ԑq~ 5doy T]3AUImQ7U?xȴT؞T[j̹sO(洅~7]j]|Ŭf` #KxU\Kr_Q2q2\Ĵ46sKFI]{<5+'b2cVpC>.K/2y=g8bM]gjEnp0 DK/n-5} )yC毛sofd@sݡ]l؂jXVm`_aR^Tfҗ6}ﲮFT>j/tDB+g}lsvl]Ǫ~Y47~ψ q ٌ H.\DU-oMCFvƓلgy P[)( aO@PJQۛ}c-A 6t0r1<;ęiL}S|򎒹q+]1fo߹yڋzq5pΰ*Ms-Py gmmouCqĂ=_I&>yO'vL<E6&0j,8]'%r$?)Q|?O0[F '%U}p~O~ۼ I ܱc?{[<#O<ě0ub`)dK;*yCNI'Tַ'lCB9hi,8^x,}fC'/1Dl)>^V֏3K]?q|ps??sA4=o\?fV-<7akNN{\)7( :jLx[*2gLM: l424mḾ/(hBGh4M3?{/{oz)dbԭ+pf?5-JL ˑMf$l͵]D\?&ߟ޸?pCԡ//Sߘz-mV/{;_.i-2'VW7c{ꓲaӄbǧXTz®p5vG|SQ%3nNL+PuSp&NvBK]M:vj~ `bkĴa'[|mǧ~,?%6)IU׏5vDiPW ӲxL0? ((scz mw8 {La뺚g{˂]ϸu)E&|Vo̬RMqCȝ$,b2_T Di"4#V-7~q>Zx45_1-׍l'N\|tbْMQ͘ܝ:6g9VtY#SR}P vcKg37%oN.9Hɿa|.:9_>SW3{#7DYS"rp}9W9ps-@$'.PSL^ ;?19!Ң=ZLꪱ372@tcRLٻa!ҏFJ}mU9"G%G ?msR9a# 4"9J@FPE9 FvׅGlfik2HpL Z7U1wVHȔs9)ڴc]x-^GE8 +,"ت&VI_};o#goJ/p0rVFInTt77m. TޗM`Ln[(q{N Tr{=ȩV~tfG?(jt ԭcG:B B ,MjIDATFϲ\[k9sn6:i4loiI`%9&﮻kij~׽&60yl;mD\+3P53( -Nhg7U4L6uT}幓mGC61m[?dk﫱;. N: w-) \j5@/)<+łv=Wm/=&\aʯIS׃!)b_6WEQ絙_ :E枿ٓib3{h+1+g0.J_;E/b $zP^lNNkE 5*`nuHgTqn.mL =/K+VIGqărAj']:zf¾2 y.%Z(ʚ6?3Kҧ&jQk4͋IR׍7}&}T=n3)i}M";rkZ22]<|篍ցqKǿ.fǜ?{|nW15f oi-4*t$i)E9(7͵D}Zm<\nAZ,͆f3O VFU_ 6=*J.'q_ѬKUX]]ݦ5YQ*scImc[2;q$ |E }$E*e"cTabgefЯVx;f~SrlXL~^oT2=GMC*vb'mx PeaU~.\RzdZM|rXcXOHIjU$ &`nih>rgg}pBM}&n$Eǵ9uYE|#ȟMFdS¡~nE@nirIz :rMK&7mw_"|?^pُV@Eێ`-Ͽ"r`w=VE-;zI,OD6{*a@hJI_BIiB?4M%$jR{`'cmy˖lK]ғ%o?|w9s[peӭ_Xw&뮟oQGンP諸n$fc4I0{/KczprB{cfTEeۇ^iH@t!@@rQO&K-X I7Pj j&~I"<,2U1ai,xj۽q E}7b\C7 2ݟ6Ѣ<؝%nm,7i1(xtoRf&x 0v3-=oV{s$Tu+xau jjDW6żXL1^6^*q΃ɲT76o񓢬$Gp'LTY/D?4BfNoGC=BT) 1ǧ2~yU]p!mUO+6S(umy <il:qj?}}nGҥr3+Y)0lFY6$ϔi(:slY|\G"RlgjT͞Rh@J k6E|{-[Oۡ4":!zyE6HSJ:"hm($|BɄ'a'c-l}rIR*Xon~6g2"~nwT]1T v5-oκq<Uyg3k_Wh arT^ *X?aI#i@ Xw/к3+4c^*aaCi1#+DKb"&qy]bV+դ(w=A%S>U:9Oʕdq)/uv3^F[_m]'wwE9r+uRxSqn:з} GL--r9LwF-V4EefF6ZEHT sku6N{_AjT|$xXҏ?Ll;GV~B_d{NPmMoU^J,NvP.lU/ÊF?ν3؎#o۩4*m4}u=Ev+%+LzDtA2=lz\@*?v`J:Egܒ`Rdr3INoV[6{Wo=P@uk/Pp}j~*Mڅ㶬^p V @(ʛHGƊƋ,5FCAVԅx9M("~Ow+Fd̿X$4lMЄf/q9qE]D± `@O\yHzj5zmVzphEevZHWMMuzH^αM=::cu4` {MP6ȫnL6(QR7kڙ3)eRؙXj\vcd(*39׬V4֠C?\Ɣd=o /뎒%fB&jQ?ni1L&g<Xw;3}p <Ά3{PuP,ٶ[X Ղ4 a4*4MaSi?D297FNֿRkkfx6+Gh/Z4ץ~j֣Cm'XK]{3.A{F{s-f!5bQ^ %ĠG /ʽR\:um{ʅ* Ӊsy|>~kyi▤Ku&>W$qnu!k/ <~C8] x4]vK v:Zm .07mo<<ˁ/m f5u{ZvwcU S'ذ*k\;qTx`u"|ۼ?F09}?>_ײg| lhݡ gzP*)~ *n=x@b6cXwzMl֝*:ǯIͬ},liXޥUe0/=wh^*%ͺ~ 7͙62&o cs vЧWMkQǃ7Ȉ(2'j֜(ᝄۙղ.!2=!Ŗו=NQJ@@/dž A0$?)c)~a)g8(:ZTHiNρjڸ @k_n33:c[SR2˥&ڞa ]7]Xw&20Ø}c( Y3U[ b2l~HdZ_IъS'{xKV p LyV!xD`=)-{.;7N)Q\}s HfX^8;c&x\O!=deQʺ9 ^@*g['Din>@ KT3ɒ=Q8>@O䅬[x4j/VǺ<*( ysM4!BiPoBG&vBɞ/>` dSug %((c&Oɀ#uDN^@ c'+)L  `aG<$lC /!C @ sA 'b0 @ @T  @ x! 0I @ N-=-i+io4-~÷կ@#%_k=1tQRRz|C\)@ @ 0 Q wHaϑ*藦=ihhobxE~kx*&d\8'B#bf5. `f@ @zrpn-)40b-J#~P??ƅ4.Q Bʃ&^U @ @`ewnzmvb87j[KY­!Œ'b@ @ 0[`$W1kwRY5V~cF˾۵r(YRO\)NO{Oȇ@ @盀8)̊σ΁Z ؗG2EZ-@gqT(pP|S @  [ꆂش7(ie%2ԁI[2@ @!#@`{/ݶuS8;S L@K#Lp҉^#GG߲,ȺU@Wҁ@ @A"@u1c¥-qdcJatG\4Ss/͎5r8$ @ \xHظ@k#"(@ @&F, @ @Y#*gx@ @z * @ x?˄(sIENDB`emacs-which-key-3.1.0/img/which-key-bottom-split.png0000644000175000017500000043174213225014216022137 0ustar dogslegdogslegPNG  IHDRV&6XsBITO IDATx^ |T}7w6Z@Ո#Y`q:i4iڦ}y隶$c * !bڷ4۝gFhޙ@7s= q=^6@ @BJUo#@ @0 @ u, @ 2y յ>tἻҒ-c&77nV5@ @.K7 ع{:=fj6) AWz5ovM3fN= @  7bQSlqqfEռqhivá̽pk @ @ \@!vݺuk׮mnn~zq~<)pC{w@k֬կ~C=N> n>CV`??1c!3XT/2$];.yr?|???%ktb|nks]x9)]?oԕy K; {G;W\iiijj*߁4O?AvN)**2LMMMf |?>9ߜp]}/{ޗ.]ի\V<U__6fWp:27v3ut>pUm۶<'%%,ʜG4 _cǎmk'=B 'B8 z^Π !\x\Rs_lx/kx &yݑm;ٮ ZV[|ā< %_|W^!i&!4$_Fٳg7oa|r;|{sq|𩧞)(--3}_\\\XXxQ~P@6'l"^}|:.p}TA ׼' | @6eRԿRx,?G(Ag`)ǎu_*o'.\ᱩ&Rɼ )E"˝='133F @#B]k~|;jԨD>03'' xP 8?>nڼoT]|;W͛}W_LFS0c!&!' @`x U|[g}~X@(r|ɍ7>?{wGgY|T` xj~ ?͛<UVqhGęB ~vQ8OA;zcN'g~aUu;s=ЛV~Ô>@  xWoj85ie.*QyHZNX.i{eOmYyʵ/ [=1oFa1Anw ]5z.?r ߏw~ @4Ť[~nh^%p]sII3bJ9M  ״COimF=E!V<=a V9mݪq"? @R`4u١4ڗx~[<d]ܯ׭F`9 V9Fq߭zA: @@!i1mOV/tߤ5wZy|?(=m|{O+*wvbka;vYLϮ0ONƋW?{HegY Z=_[cU$%#Z<q_h-'e{ʒ|¹m^5V{=ON?TA)b#:9ĘB5à_Nt)l%[ʪ͹\æ~Ps{;iy4!UI$䙢HrssHyJ[ՇV;.M<<|S2}mS~ k2!i3cҒkznP٨ L6W9?Af4>u|t5tB'{8ez%W[S(כQwݪqFp0gvդ<%sp7ο;/m'&P?Ch\>Zz%wug}%^7x _K  @QԴΟ~{99=ϥ5s]mG^iYbV,urL0kJ{df"Uuj Rc5M]8ZOvs2rooTS4\йrʂ5_|o1 'ߌ0d0~Q4oi L2i쬷KW=-jf$5>rf1.^~v7 WWg+I^7zVO~zCs~׽|uktIr]uPn{|rho\~~ßa @  :{de#CMZ'[Ec$+ MI=PMWlڞq׸󐁋c1c%LYIPRE|M]q0ȊejWo(ݸtRt9ǻMWM,NuB6g4<Uh~5{Vƫi?g>@)KOyg+BZYH?ѿRNgT"9 :6j!^i|p4x;.|=[^n'9Qo4zlvd*\ͽ? -u: c @ m)V:71uåJpgg5YeVeE2cOCRxզ|~YSL+D@!-Ox<8ʗh£ 1qehԗ4m>EO3,/l~k[rx)2");OX=Z֦k|W?|' ^n:' |Y!57]ѣ uQ*au{k}$QwmA>F*ǡ}V%k6ǐ?~s) &Jo~(CD?An#ĩ_^je-too_|ij^X,)? [-Ro'rs=ü\(y:?uyۓq(^ӽA>o'` @ 0}z nFpLz$OO$)Fa1>N&6wNeyDy>݇ KԚ=S_\k6?hqKؒqзM^P47=mW^:|@FC{bM$eCMYnD[4}ڜ'WV_LS];^~'uK{V~UNnYrn֒1q7w鈜?@EN 6R'<<lѮ4PrxXRjewg)Ǽ[,EfۦXB7|}4x>*@ @H0Z`8`;-@ @ OG}NIH @ @` ``ĝ2 @ @c @ @#NC#!`@ @@005@ @qq C @"!@ @;e @ 0  D @ @FF)C @ `` j8 @ 000N @  DCQ1 @ '!w0 @ @`  @ 8 S!@ @0d@ @ӥf  @ UQA (DDwB@ @A3H`5GaRSϊh٢[P"(O)kp.@wxb)gŜ*C @N(U8G]YD\lU.IRP"vC]po{z$E5 m[+8_.([io}O3Iu]Ucbn}Mݩѱ]a(ZKcyt&R#%yYj<ˏ04N(4eH4jxĚLT]P:%  @ 0Qx6w,]:SčCuʶńDyV{VL ,ժSKrݵDҥc"U,IkttyAL7*=zwɒ97Mz%tB4fX"ww 9}ឪ,jޒUQț;&@8!GƗ /xTZ䶲s=#fW%T4l_!it8O7Pz?F&}aQ @ @ .zKx9|^g3J_PwdRt" _ibD2 J㩤WϳfM=>9_,Oeݽ}/]@iB4W[控{k[SUZCI)JL~׷lflF=P{,dȝ{>Ӯ57-sK,'i3gq2)t:%6>.Nb nG zԙ xm& *.-xW67:ܽﯧQ+"q4s:u@13R :qZtsmX9xDPj.ez0jQzڱ @ D󮹣G J۞F:IrH~4W,\'V>L%kvK~#Ko8 ?:wdߤMmWd"-wV$]G5]<[y(kJ[uergQ%o,>9"Ь1t+ƿ[ϑK'ʤ7+WF3,'zrj>#_,TɊbӔl:[^{dcWxt4\!;>jz8xIzB<`%Hک-lAxBzd=EƼhb!_cU_;y jg,j=ULWvP/X(},5ޤ#gb3( XjG@ @$ /6oͷW`G(=Rܷ+Vv,>U+tR1^nFybDvJHiĢ#Tdž%n@ @!kز]ܐ7JחTir.DUV8} s+RwTZI{k(Ply&|9O˭|BQH-W>&͗n˦ DAimtsi%)uXg[D\ʰTv<]Hf?gK Q.C'Y3nWm(2+2[=O,߼ΦQI.wt74t㈚ >"g}j"-X$ GYs䔆J08SrWWhoR5[Q~q Ҵ徛ᜐ=KOt3U';_0Q$PnҡCFtN~ =Fɳ 1: @ pwRBLRB u[qy:hhՕZ"QB։򍠅*wE)wD sk$UqTױ߰Bɣ ]%OktA54?R,d!nRA>y}EvQk_h\qLbA.MtSW{+ OIU:'4ǗB׈K]̴!uIVZN77 ez'/K]#5O3/iSQ{iS8(!FUujkrX^#w^я'u+4}Xޡj'eOQׂstO ZZ=#^ a @@ɷw>c]dK˶Rjq"Y $ yRȆE|޴?zhNc&Q^I'].5|`t/riSiFϋoy+F>,xJ1^<ӵۚ- w:)o ަи[bToL|cA)jv>+סQBs2AAR2?Ecf(W!@ ;&m^Qzx^&N)sY# S$iݷ5 P<k,;t:׿N|j:z_{~FGwʎ|c!A@ @vDY[Y"{wQ~qH s ;PCġ۫$sDE~5)~ZbZNS@ @`0G-eѷo> 1yzA$yB&8A[X6 @ 0tц,凗Bf>t䯧@b0,QCK7ɷ@ @ İ?!/W@@6(sPA! @,hP@ @]0R/* @ @`000(  @ 0lCj*}YoVzxQzXFN*?,r5ͯm9=$Ջ?$ި儂gŜd| @C?`+qJ(xfS{S(ckp,滽q9"Q^ -(=4nI;nЈ (s (Fm7!Yg˦ DAimtsi%q92YtaEYEߩQy$n(Mf*OˏϑSҨDhA$y|m9by @ %u R2g2`> teT?r)wD skZ"QB։ #F<*&QZ)ytX^#w^!i% vv ]-BcE-yO}HhJ/SW(mX!>Lv7Ik_M#į`$銍ƫrԞ@kw r;TI4?`𱫄eȆ ]Im4{$_H|Xݣ'!Z~{!Gw$OktA*hArRІ'Ehk-Df=/5puˉo?dz!uIVZN77LMVp_PTy @ a)mLA7C;Fk|CSyJ~Xy_.:xn;jiQ)ע2Э]:er>'Mt5ӄIN7ryC Th=tx=cMGgWP$H鿹M!B)AGOQ37>+58@M9t-_P]F"Y\AnI@X[HjvZ;J]!f)NR.0CQDRiAJ"M'sﱝe0N5{͡D~vRGz IDAT<7>%N:eCؤdrHxq2ϋ}7(š̻BTWK)N-29;E|l #g_K.yb%Ma! @1zRG JۃF: UKsHvҙC$m|#7h*=૎9s /zZ0%5ȓ9b|Ϻn̆ Rܑ!6\TrD~ƯS[,{&RmD8T1{͡HPGlzV$st]k/UOtDbuГÜ#_(yk/4r#YhFq=y6lnd C @+*9F[k F_QAhS?/iM7%?8A Q6ư B`ä~c_շ^#o"õotmи9bL~[`@ @n D0f)?Cʦʫ)z:@ 43R. @  @!TJQȜIJAzxA4-\V.3-|Hd]&ōr'Mr UuBKR +ǿ@kW~d-+:$UqTca(jG|LbA.MtX+w]:s,dm8zhh8 +h(RC@ @vцZyw>x3Jih"Y/QX7d`5[Jit<=97/¢thN&Q^;h:U'%fr%obm!}~H81.74RuML]. %%R<.Rm`7 @ =hC|Sz^xFzyץ}ȴԱtk2RţOv=&P(${ЮFYn%f4#C2F Wsl8Il1zP<V/㒨 ՛{CN Q.C'9P @ @w\ @*(d$%d ݨ Z,fZȺ$_M+-Z'X&۸oo"AS)hzI9 T)hÓ}yӵRh*8*YoX!цZ'Mr U (J:._*_;Zy-d!nRA>ydokl!@ @wI B2^羛Q~3TZBjʜA5ZENSt7Iy$YөxXme]#|@Iᇅ @ a(m!%Gxno~fnD~EI<-ղT+gSCJͥ9.\4!Kt7K{juT)Tۯ4x"%TRl!8*ٞ% S}i,ܵSMERxbB'VMz @ a/mɏϣz( 4ssEV9ɢQM:r{mWd"=A &*SFj[@g|[^\#Y}(&z3ZN뤶zyٵvr%|^lV/55y-Bj @ 0DYY-]?{qg+ʢwVlb((J4%Xq%8}^nSߵǎ{lKTDH콁  轷;o΢{f ,@>f;sV;)G^A'{2`Z<ïv[A@@@@@@&`<Eb|       `       VE)B1qxڣ|3"/_oa@@@@`d72aӳ_aYb+K?02X^ȧ0L8<=8Ei(e{~Ez?j~籭?]#,'87BWZOh(tp\ҫ_aCjϿ2--XDǩ+!6wm=䲓E639mdw0t$|O|uZjiS,s4{5d|@PsjF.2FUu B_Dtm=o̽K&BnѲd`d'ϦsXV"TrF6w}fYl~ņQg ;owz(ðg*9T!V& c#`)wRY!?tݲ(]T\I3fAC'"֮`b}dޜ:---mϳhm7gbg z,P-7$2ѓٺ|J2sP-~" oh&*W'm{RC ,C^vϖN+Af[hrY騩l1bUR[X;ޢdtvߔ;CAص6ѕfMpߍH&M /uwy$VZSr.؜T*+Wʏ6.5 dMƓȘJ-gY&jpZ&TTE&WUZ[U xLRIJHcES^[sk } m^TbmffK]|GTkԩ?Sn%XR DIٰUL氍 %ƅzZ4K.o'Vl`-|c2јhSvDI[EM;[_+] {ۍl}+?,7˩QGHY0^1d̈\Qlk̦ퟱW X5%%kwqyrtQWcGꪷ-/l<:Sէ.i|Uob&v_K]iT(pC]K+ifbiF,HSB!\z k>i~"i˕GuTF|Z% T|{=bfk>BO7=Q-uz7oS"Me8w^bi 6RK^v܊F]}wG\Y>z.rQ;Hzg?'X.~ӧohِߋ8U\o]tkc,YUF9x{pJSJ>xzjǓcg*oC8rL k3Sb^LC]߸.Wł]F9Iwg­,ܫ<. EwP:v2/2=^ط?mEh߲v(?{[|vSl\*=,@u~ra"mbP!Cke7KfW(t"uTmt/-eLPVsxXlRN=!GUTmȄ&,bc;R,e_}s {G6K΍;6?{r1i YCxE%B>'ʛ }P/NFI~Iׅϝ.M9ëc×]>܆iGO.Ì@@@@ƎCլ؛זx/P13ةٽ:"fsQa+=_ !it,Q+Udz A IDATc!O(XkM-{j.ES7vNws4ؕ]L&59q͑7<%TfWlXOin:BA3ؖ5l"=bHW{-SOW.GfF^v̊=.:HMZtf޿IMvnlbJvwΨtGu/T1Mj/qt}J,ī:~cPmN+R⧱%TXd]w2ˍUԅ%ӔKFj֗ېrA_+} x, 95OQנE.Q擳N䕪zx 1+u66t7O4\࿿r+ - Ew@@@@,wuWCq^HY&WW7R]"۲ut奀cwi(_$Ts&HK3{A顮t)sz    C!`U MsQ{d2&et&zkśZy׋ ēqjl|]0L>Ncf| «G3A'cB_& @@@@xVLX+_2r%9ũ 0> ^ 0B      R㣝%R#       0> 0> ^ 0B      R㣝%R#       0> 0> ^ 0B      R㣝%R#       0> 0> ^ -x` Xma*A@@@@@@a#֢@@@@@@T BxH4e>[KꮧG0FR>[?A.?p @@@@@@`OC{vJ&Ǔ> ĺ_3cDΜ^tm=oy ΃ҶՏxaͰTZeőn'I=!gtS lauO )I"wiMtM! kd$n}N]aͥ(U񝇩Iѹlb29DeB%r2ϦsXV"TrFg+f|;+X@ adɷ92SlYQʸy#g.0RIJ)u;,E;>SHZYN_*MY7+ b[;hf6oRqAC˟f%d1Ҋ V$ly:]IEgE4y[RQb95>6gs* SV~p'YH+2"qP;7aT ePͥ0-)@)bak=/~ VXrϭdS)ߕ)csqLg-u;G986-1 TT#uzq*髕 B/PFw8T7 9ź.b`XHs ppuхF7tA^2nJ/Rb^Lrr631#8M{2d֧z@1bs/*9q1 Zeŝ㦲Bu! ol-wWW%sx Ad:       0bSb@ܦ,q{U4el,s&+ @\xuX糵,㏩px2%ty*3Ib}ly He \@ ʪy@ q@@@@@@FL@@!{m = +5leb-M"2f-+(QW9cO!=#S+Ȧ|J=5ĐQl:tST6%h5dTV03ةG)J3㼫|vэ4mc~ e ۼ{QQ  @X'oePc:=X-`7zꮣ"f\p?ӤR;NW Zjq|il13dkǪzyY etMYE5vpQk_]@z)0Kf/P:XyG* yV_y8 G ˝G5|<24Mh%V       Z6LXʦ6}%}VZdmd}A;PD`p <A@@@@@@ ,GR}#@P ~      fF       <7٦;dGG ` b4x       ](;=d!gA<:?IUejje!m UsS&W+ %MJNQ@W_d t\ +N@DYR&W5!&(`ooV+ٹ2A@@@@@@T JcrQ{1xrU+gRM| yed̃`31吂<6UP!x#xk1       "7^ @K~e$_leҚ7BgƬ+v:{Uo&>\qi(tڰٯê;JtZ#=Mm,\2|-ڈe9 ψ} `D<2?qx_Y8%OkhlEu xN5 T.P dgƕVunЈi*Ϸב&4Vb#5B]Y9<%ZerrϪ26BaPdv0JŞK adnyQ"JpÐHO`3٨&; 5A@@@`ܯ.|/(6V~w6Pm@p?Tz`jLe'5nh"YN6)/tZh4~ 5!jYtjN\b[]?!Af׋.#SMORNj̧̜!(ZZ*Kpʛ#x{)|ORtm=oyL !]dL疳,8LNѶYB΅.ohFOf)HA&J1ϦsXV"TrF];m`2hɷ%DKW;FhzYv}^6Ml9Tp \m1uĦ?W\i)_RFvb/RiRGNq,seޗ &z}_@ Dxrxu{s>>hif~vE-wiƐ`Q3tzK'q{#|ȹgYDJڋbkٝ*J.O󜊅b|߾r*Teq 3])O:̤x=^fYF5t۴I 93(j` sR4^)<$˦]S}-O+JoZKa c'S2w*="@wN} Oٜ{kdNV@D9=-%H+68ERM/ƽT'M*z$|:ϊh;x#j㤉kE),_\^]M{wzyObKW%7mL.;gDO?lgo+H}l=-YǒJ'zTSK10^*r撿Фڟe"1(k;NH+g95Mdu'k-?~Wރ>%Z}oc -uQRRKI-Qlk̦ퟱW X5߁9 'Y-7#4trsW ܛ?<ϯ:"+].uRN6ɾdru퐂t`G1 ܽɱ^_dxjǨ[f|bȟNj S)# ړ`9*jPx1ZjQfl`-}qD5\?/t:eL%*;)-1LB)I8'55 l۳]SKkJΩ)\ ARSp*9ۓY$W'LXj;?\LfU;Kpeq$ŶW_φA6u4)w]9 quхF7I \(?Rj~+}N5=*}֭C^JXAr:udo3$:rjz;~YKN衊zrXMK:e+'bq0eZO͗? =~e;ޓC@x |eJ]x[9#k/\U7    0TULV6h'g Q[IwY,=%ݾO$0'n*[,TLa<@o፞h eϽ7 V%ƩRL 0N>pܔ) uBMKW 2(;7$WGd7)'UXxp@Mix Y[MeoMH44 fґVG*K(6,V{s݊8GϠ[63iݩ1V5yF:mLE!K7i5,̛}5w䞟U8jD= &-fs/и.;V@T8?WW8;oQDZ=C"Y{2ݐS $dQUXw"uTmt?*7#n\Bwb:$6ۿv]k'YZ{ ^K4D)}L%sϜD%Fm-[Wb d20eLdPN3Y"޴HA#Q غI ƥPteckg 7" ˋ)Tz<$ F{S&@>2&Z<1d3Coe5( ?}pJ]\n gqy aT {фElu y-CYqA!ӯ|=WQ{%--Y%`y?q @@@FE85#GKZ?[,}g V30{]4j&TeZ~S˞KQb(6RÔ6eb9(*[hz&kQOQٔ ZQCHevQfWI!*q)gd`TtsX_=-Ȧ"s${s)y,7ZHw'\拰d_>ظ:t(wf?=.q-bymv-*G]̙NZd+f,I?z۲m^eCfO>IU.i[OxgMs;dy7߸mTJO>l3](!MVV ߪr䓂*O?UDQ|~}L^~͛@LǦPkh`Z<ïv%p/odGQb+ J򇤽1|_C0 0C'"`Ua rQ{q큘eqΎ={ގ(*e+UE M&4ni2]**+ƐpJPXa}b-2}W&8 %lx\YE fo&k5Uq *\(8 @@@@ $f|- IDATBDp+K~iC)?pp @@@@@@@@@@@@@eH<ʭA@@@@@!ڤpuZuyxlamE}/ 13[C^'jVWW[rk#qbxr,!P7==23 تldRF }b Tx8뿜<Nu/Lg7_]&4?7{kɽ˹?ک[N1J,(?JR簂33Ь|6?bè;{aj)ˊ#g'8O)CI 93(j` sRHĽ8hj= PBYngϲ2,M[(%t9`EY@Mo{}{l=r+J1ry!e)cH .4ҼIbufFՆAz tHyW?ūf0L܏4S`Un%eSKU9    @L LVV*4;40fLdw*IwY,=%ݾO$hPDyF:텊\)'UXx<pt6_D̼gQCx4;Ͽ bAKC>Oq/Ax{ZxO▷hQ*tQ{)Π3ML8+q4wޖDO0:А1bs/yJ/ijXXHtIJлDSW~?*Dd4~gӏ鸩lcdP]3iHRߟR #H ` @,5(}2yH(/u5d dkV}"uTmtZʘ@j/d3CoyAI4c&:K35GOhqexr>q, xCs&)e'[J+ i|Pv|@@@@#h#!{mx% _G=EeS!SrtRt&[M7QX2"p1=mY6/< A̾N>#aUd|CTuut9"<}w4wYAݼ7Fʶ*!MVV t832el=.j|J.|TW_濽wX7I>Ҿ{2CSARl~RZojSs)JŦSjXEݸA<ƋZ} M004ͽ/`[6X?eܣ܏HqU=BGL` b}xexlEj<ePl-ו3}r1A*f{W)FE'2~g7U3ᙋJA'ZŹ\.jmx́6M';un4ҳ:wq}$6kT׫-ak]T]OԲrVb^p g{{/\Txkg);j qDЧx#?~#>ntX)QW_"V_ج.t&fbvVwvKRIMv:/^ξRC'jwyb+yF`3C[,h~ tPSȏU/0s4Tҷm[Q* ?<@@@@@@F$,Qt A@@@@@@ƌRc@@@@@@@~@ ~҇m3HjI)IA@@@@@@`JoMɫL>f@0b)FC)I>)<(        0ft,u{\Cς2yu        paY~UIyyqeEÍqӁ~   O)N}w-l;FO94<c@@@@!_& sB:u چAO0ROYRw@MӼ|d=.;hxvh/%_i` RΕX` m;Χ#`4ޤO˫- RoהN[!-   i.u٬-RӦߝ ;_OH=m}vğLk TwH?rJ~!y^H꫓U3p_54ӧ;! Ƿ~4=# W_>f||m_sMѿ61sͦ=W.֏z{bh_] 3\)fO`e˦G3KfZڱ3w;IYh㮶;wiB%aX[?d'n7?ϲiϼ*COIIe?G! ?c@gٴLɓl]@fѨ;gLߵ,;m܄GA@@'0sfU_;|{(S'18 ɯz)Wǿ]5S=9sGO.tͮyI]/@菿J}c1]ͯ|iHGӵlaU0,-]Q[CZM^?KO=0ĭW7zɑݜtO|K*~OxO^?9:3$|5U^o$ի'M>6 ڔ~ӓ j̃jICnƿhom:,O3$#o ȧCRt 3'=671>9Zn{T{6!c{ؐB}e‚x\1 f̧6dч0*   2?`dC"gY)Sͥv5eGݮ6lҲs NKW~By {wc~mc31Znvo<&E7>Fy &vu1]~Ҟzijw?}_Rz<|<+鳖voU2=C0%;. O`-?ɭ7~1.vP:i0)Yi Qa]5`)h-]'X.mj{b]'-K^2x f% {e*}Q#|yUmeܬzW= =5A>7>/<0$fE5vP`1+ FBZ~ٕ:FT Ru~ТmyPFhL?*q @@@`T 01rYzIT&~Mp;q6LrL`K!Y M܈]?9BǦXr Zh.m?p0^F&nKkʞ8I@wN2t{<;u&2wR9])]o_rg}O&&J];\efgUʑY70%jn.T%[zz͌bK¯t3ibNk/Cev0ߛ=wV gdN4[ddGMM^\IJU}d2%,HϚsuޭ>FG]\k9"MTܕtnqjQmDg>: 4 jks4#Mv6]Ql=ZF$,o=׳E9>^k De/K[O+^ݶ?367̚c8tfU]%,*K-K|I拝U풵xT{?ZcƂC+MkDWyJ{e :K+ZlauT׽XtݮS>`i鰍"? Ƚ{#-zi\h_43&e7jZkMQ 1=)YXֺmK8>\-bnM6Nܸ6~oŎ&+MPLERf[i S^}ծ+G;t`Z(n0kCƔ, uT69#Eibã<ڕ]k濲xK6+ugE̟?Jv^`N7Yw/1y)%TSڼ=.pjg.,16(7牬{aJVl]a7ERC_tYtQy,v%3,7\9V0$'fܸ.$;֞vrb\sXpgύgtQ ^2_~mXJle]ʲKVtg`CTpUw-S51 Yå fwRĝ0d/lxot%͈}M)c\!ү-2ֿ&%6{Y+WιDOn,ܫ|u޺Ҵ‹y+)8Ur=5!T >1k~yK{"flk;,6WX5O[Z]QO?k~y@}dجW6ڔ c9[,?{Dm]?>Jthc\g|OFYI|P6v]m¢܅'?,nR-YڳH{_ΔpUOkyoP|Xyzk圿-oirVbŊ]w?}W,DGG @@@FN_y곫5I,ˏɹ%nEdΉj\/lAOd&M\uЏ϶2eziq]R\\l.R?ځҞxOU_TTUMb"2nzZDHTu)w ~z5/|cv-U۫\b',y_&5vg:9>zjcn?O4v=mʾj]ϥEyYcn//qEueLc©X|nMNJr33N{oXmޕb@rv:{:cט{TPӛ5MNSFV4asL-'/v 7{.+qb^+E~6grԽ1ƓWw%?ŷr%rt49שogthzGy5aӿ\qt%CE Kz SF!*gQYaoRkޔkor4JovKQ믿>cƌ{^IWm47+)g5˜1`Lx{jxxpG٪Z姠/0jt?nt&a)1ڰy vۢ--21Kr:93V-whZjޏ|/$ Ej"àZnk a1:qӹv̼i&mq海ĉD=-騧?.NJRvZ }+՜gD10]rcn-||iPpg}7g8Sy1JZcz5'ZG>SrT{Eig Pe HXGMȖݖ_̂; @8{YFzȘFL HQF{K#mi̊;u7.44,z1O^NmX!OHΊ&ʢemxϪg_b Szߥ/YFÑGnQ٠.؝C_}}FɊv"¦z]V]\'rg[iչ*f\:5 <(RUgڨHlڐw(6|nVpCgun&8 zwvh__o\5 ٔeTt9MGq̦K\\;]|՟Q;-ְ0ݼR˫? v{j6O!ϗh-VH jKi!yQ3b%V٧ cQ5ħ֪͚m jF5⊪H) ,|rl_~RP+[lɓ tu^O bԪ~ӂNJ0D?>C<Ԩ2{ M7)*9#/Rc :h"b*zDOs5,)FS(~2cIQ? 6^ҞƘk c]O-)ɾHzj b$}_WtniQm ON6錩 _{XYc{=#W^HH- $6#V;`c rz^ͫy13;bM5D73]]eWx)`^0H{s\E wh2Ofh4j 1)֘ Vʅw+{n?ҷz7k\A.ի;g?;F\zz̷^HhY\T?ѧHNYQѳWz~ٿ//vSÃ՟txE7=ݘm-&OAzgaREGf/tC鷐4$H|{̔([D\I7C]Gm{W6޹xzVLmy_[wqQҗk7)6/MϬi/9~}}T~gEH̴9쨺J{qv@T,y[nyֱGk'=J6'+ƘIP}5 l1N Sx{UQ]9 Ȅ1?a>/sE,71>&UzݵW.wd<--r&EYZ< -c q j,n,񫷵-S+2#d]eHm"8Z01n7q^w[^ptӦdW^A(@ t xZkܮT;Rϙ¿S"e<;O]9/TKYy'&7uOdy \4Z^3 P0M12 7;S9`(׆Hf<_?Jx 1핗7z;,Ս?Z{(1_c5uz$]-0z|%Iӛ >߽|teNYԷ^~٦ySdx N"SUvpO'Jn|v^z`em^3NHHzƏ#"ۦ^\-t4[fFw{[KS齺扝u+G%󟎒;uo(Zj[]wԿ{9'ߣėXwIsW uoYO{Ht8z*ً^^8WUw2%-z}כի?Xpf~Wsc޶ںۧߌ=ҟft\10 /OzKΙs&fmRRؙ.]7.M(@ PYrd^ R#v*)x¥ڥjP%H^x&7sbK?JOsiP1!LU\w/=C?QWf?_= GF?b64P!Vޞl^0,剾%/f5o~^ q k(f&snzxC/4Ĝ]3?k c&[ a'S׬sI˶4i 5HdM7\m̢?1e݌/w+I?Gtdr?WlRQ\ 9??S(@ PxLUf\憱r tmmTџ7=7i69c(v?۸e32l{˹+/D;?f>'&?Ea/_U|xsA/Wnj95{[mݡ5Εv]xqfFXoRPPB#UP(wYd@ךgsG*grͿ 7_n]#_U1 `VÙ0qvTl͜S"Looӽg]!Qݎ̉x6"zaGhֆuT᮪*A2k(@ PT[2!vML&v IAKfQ.ߎQ~(@ PRI?%g\;q?/L(@ P(@ P`TPh/>* (@ P(@ PS ض~a(@ P(@ N7`OoHoqc\b[g*h9 w7d'f?_T~vVWuC/'Dsn9V*Ξzsm}EK`ʱl|'WaȬ(@ Pq@ FUV 6}8Kկx"=CQ-Ùju?|@{+*'hÕa'*'v=zÍ)@ P(0O@mp$M~e{.UiǤ9iJc/^8WV0(@ PC +]vnBu{}߻>m1xE@R(E&Q_4CyJK$+uwԟAD*I+އU81;Wg!! 8zTh0ND"_%%g<]P_^FBy)V0:[3Uvdm]i9oS_%3q4`?Y6"@uujJ6JCL4o}``l6̕dDte6lʉ)wDEϛ(xԹ7 c(y3Pv8ݱ'.jTذ\&š* gXD9ڹvL7+AkZT92kHV"3x/ 5Iޙ c6:=o )@ P(0XC c#CaیJ l}D&D^f8GeY{fo)φYkeWeHi9XQRnO}ϲdMpyɫVJP]E;(=oUNxc=QF+'V.CAąLtw8qHRÅU[eC6?I}\}^xl$sow*j,.U 0m:wZ>o["mW{GS ϛUC{nqpH%)jhm]X'܆fvvV~Oc'Ijm!Zhn7HR`7rH=TU91y Vb28aB,D4LEîuk ׭Z$ѩ*}tߨxYelͿnuk5OP׭m/W69VV~ۑ1=Q=.t ]X9M0v9u\cA6{.V;)^f{b|G]3RdNw؁`d)]W{YPPq s]i5 iF8ٕ<(fɎٺAsCh|BC.,=>-pNSYϹNoV`v P(@@ײzm󖼵ؘ7ߵV5 hF3QHB V0 cR6N5P4q#y[58=\"HHGjdw^\i e~?%m 3= z$s,t_BUHӓ|%G5鈶#>SV^wa({)vT5DbVbZ;k*J0gdK/;%i>k?' s NzRU8I0EÔxL9 >Q~[(%xW%ʊ)b ;#Y)9}|L%`^K P(@?`XeZBbl^W1UjDe; 8ŋ mӘ__><8tnT#ZLxNKq,cUH֡ދ>[,Go$x;Yir^ⅶ83+jK^U[&-HxQ~K$&bPpLS_{;*4J"Ov+g1/qw:J ';MӭhTk2vj^)}Vܿ>;nZC:׻+O~Ӓ_Nl*K߯v 5hoTC C# z{W_7X*m>#y?VJ P( 9B27.jsOU0iLT7B9sfx<#b7 J {a@9 P(@ P_ B KdjO…_-oEkk<Ȟtps8Z>){*?C^| W̘%g3(@ P(+h!SBL(@ P(@ P X,omx(@ P(̿?t/8#(@ P(@ P`!K(@ P(@ <xnC(@ P(@ ]CC7d (@ P(@'@COMb(@ P(@ p`,(@ P(p I (@ P(0t ݐ%P(@ P<7!R(@ P.! P(@ P !'&1D P(@ P80tC@ P(@ Px8$-c IDATH P(@ Pn(@ P(@ PO)@ P(@ PC Y(@ P(@ P <(@ P(@ Z68 (@ P(@F b"W`s܉9(@ P(@ P`(?\Iwa'7$3X =-xV^EhLّ; !q7d~(@ PF^Su!kuY|PZMɕ5ëLY> n]CEujl> O@AlY=Ih@7Uef |5$ P(@ PA e&T竽uڭ+,5'KLXDi3x\O}YiF 4H^ /ŪF羆1SeGz t9aGv.+2M~k^}A}p>z8ڦvUzpЙTKqF׫{Δ ||d5U# v2Î}h:=[榢H h*MƜ h#,t$ygzS4)v,&QGԡƕec.R\_WGϡK?;VEyzv_ݗPri(4}~zntE$brEԗѪ,A=?y(@ P(@ )t clp6`"ݿq_nB`zqP=e6UF8$V]ªsՅaL'd@yyOM5nqkq^M$ΕI|4 8GeY{ 0yY\B1h/Asʡ'3]c}"cDDч3KaUTɰߵDZfGbL?~:e'X ծ2Ӱ_&ɒS4F`նb]qtbG~LN,()7է?X~n?/y@e,k )@ P(@ @!BQ3ZJ*?N=ZOg3OlժBҽeuH6L\|۷~na[6"g+$.`V4x! ^?QpUU9otQ \剰䂅1p~[9t֬o{3pUO~cN.C o qhq H=Tb}xpV&e5ZNy0y*2P`n?k7vV/v,*bݸ{F=a''Ϭ] R%G/YӂsW}*%nA3B P(@ P/l@w)Ymk1^랭,G{}owL=|X>/abS$zاkV*:W000#,IU{f+xt@lwZ9^$ɼFz:Z?.gpMBEQW d,HÙڀlܫfK&$7xtf`&?+lAxZoaP}kRT$dž+%6D='xD&Kۻ,$ (@ P(0A4lݱl3"n> ^wjX*cՅW][l YzZVە^ l2srO:yP|O͒:pt}BUF8㌑>C%}t 1jA4u4o PT)PlÂޒ;GfvЇ81;ۦ=a}t k,6fUs3p`Vg=͸Rܹ<[`:|adm 7 pרO>mwX*ݯ&P(@ P9`ߢw;o[ ~UuEXArRr!cƻ,QVLC!y(ի׳N7ϔUٸVUL[(3EWZ qz(".IZؘo}n4rɐ8M'ߘBeNVcݢd `Wd~qfFUJ-1Vh3%'B\E?nsp=Z89bg:iԵ1GL]˺yӣ tFa.@(@ P(@af[ϻ J7 OQYlp֯d_JS]WIMĴXo>pGU.;X:p/Sz+Arsi'rBɩ >P%KdZ߹V:1w @T8[u0Iex8wHŭ·n8qH{C2:o^T,[e@sPWlo#_BsGB衇#7e%X{P.+h/o}v WdGVleڣK- PO=kyߧ-7ކӃRxNCy(@ P(@ ̚k^y\gs;/J7/.T7?b]ܜظUJ?SW,.T@*mPtS dk1ѠsץZ # Y P(@ Ph5[_7<%RՁvY P(@ P@J́ĭ҇Kkh-Q_|ޙׁ/29뾧3 xˌ_V`RCw_;-; s(@ P(@a!͂)@ P(@ P~ֳ,.Ꮤ%R(@ P(0>ߧSLнR%(@ P(@ P`p` A P(@ PQ(/ (@ P(@ ;8(@ P(@ P#*!e(@ P(@"!r'(@ P(@ P`D80,(@ P(0Z80Z(@ P(@ FS(@ PFF˝`(@ P(@p P(@ Phh(@ P(0Q^N P(@ P--wqP(@ PFTC#)@ P(@ PECN0 P(@ P DXrZ P(@ PF@kih`D P(@ PMC߷;P(@ PL!{|C2>$˕_@^|CǏ:ґb|VQ@0 P(@ P l.*-J}z*`Γ)Q}x2tUJz_]jdV tL#f\?AeVJZAlPgP}|U'#0#ẀvOaw-(DheZsّ30(@ PBxTCIQw Sy-!挂4d)F7xu=#@j Dž-DGtnyԷC+0䫭e`ݷ\ &b~Eosj6,!%ΕSc|dCM7 (@ PW +]vnBu{ ytsI;k^]V5Iޙ gDzmuDzٹ4y+/-XQ5#=2kHV"< zF// sy:P'y  5itNU:[d٘sX+;JR犌FE'XyHC}Cw16 t,R"^RX,Y.92Zeb,c +AW|d֪wױ[<.dy֩v_7@QvUE,2\'ΕY@4kBqbvBB$Jq`<݃sUͳ8T잮P(@ PG @HmEi+cdRX[Ŧ ?`HBDatڣG`Ë,][ 6 [F~ZmP'J*jԡx54Ϲ‰?PX ծ2+Z 5x7FV^"dI)#j[W{+OM)vWbcsbFI>dMpyɫVJ,eށ!-/,Aiͮ}cc^'LBӵ1HHCHd՞ѤͲs<ƞQoìī~VNErgAuoV 6nաƐ P(@ P` P}tH}|KtӦ&dsx#Zv )2JbEIHH?6Kj[hWh,Q03=#N;>l`;C 7UM0qP}hFYm]1:XUP0=G >NfT={R%G. o ]AT=,0| ~CW&^`j:G]yԶn 59j>f( _*EM%<&̑ O)@ P(@G&l~{,t6Lc/εx*͛) ׌؏-*hNo3S/,FU ӺB2ܫfK&$72Q:tkoÃ|^h<0t ]3aJ=6}s]Lw6˂rPEGZd0GցLn0M'M(lQU~,V]mSeE2ڧ^a$ P(@ P ;PmS{J[n OodVN`םZ_]nBl–z8'),}ĎE[I]ȘRTfam[ǯ5ydG*9ޮW ;g}K!Q06ʆ gk5OPk6a.tzӟs幗q: rv["}:Z ۄ`Ӫ$6PH|~Ͽ׭Z$ѩ*oit$b[>؃z-o'OP(@ P`Lwޒm߲LPc4FH޲N0~}Ce#I!6&ƻ,QVLC!y(|&ySzٶ0Tm[," gFU{Am8*iFmv{{z%COGa,<0f[|{u|Dȗc}m)Sn( !eX*ݲv U23:5HIBkNdjmWvc0{툟(yY]ϡUV2GB V@dR6N6f1Xߜku@7(@ P(0iu7!1~͆)<wu!k$%B֪#7e%X@K?1WONY6b𳕾/V*Fsk꽨l:E֭8}={P.+ /o}vRok(BKLwGZj3=8tnoԢepzP]coevw9I9ͦ\**$cJfkOj NvQnW}k ,yvM/.TNcG}Nӟ03O0:V(Gi<Øh`p+}4>갴7J(@ P^ (6_| "K6ƧWпK;R; &[dt` _tj Dž=9?[87ܺE:, R(@ P\s:VhD=ji4,st:z.qJfR;6O&"ٕyo*IއWU)S$ygzS4(he$:J'ΕY@ٕgqbvBB$Jq`LŚ%OQNj#M[.md`L:Q.@tǞhޗ@>f P~yޡI$E}Mw<~z9[dE}jZݬ$ݸ5v=\rAe*$/b1SeGz ܡT<(@ P:168R`0`>EӓQmo?ʪW8N8GeY{ 0yY\pw*]JXvG ʚj('V.CAąLts ؉@=v_20ݎg׈H+Ghljû1j/o ~S+anD]yM1شV0k,Sk׋--k%WS q]MԨ˪{dƼV1meSeS:ܰ>mFBZ [K>uqpXYlZNN,()7էgs2]X U IDATU%.T z"Rҝ~A g?.sP(@ P`T /T5t`*=F:DzwMy-s#zp(J|X۽ LkW|\+.¶lDAUM<M(i.ӆpt;k# Y]՞#1J^9(Eq$zp^w>fjY9dپ9}?Eu2R`Cϗ>fA ]pg+$.`V4?Q(@ PO@!_d"t[/-?kh-3zU <[oa8>ܫfK&$78m7k3I׽&m= `Dժ!8`O67>[D*I QhG[c5x4q23w[k>50~r,LŘFRnUy+ù/VF6;%ʦh6{QN:F2u.!Nj ґ}WbB)Ư4&P(@ PO@H@At_+P-xT}Oovka:}$Η_.՞O֡ދ,:&;~b(Tz1럮_IMĴ:iBqb /^Rh=AC}V;<W+ή<E}wb 84~Ԫ#7e%Xw8DQp\yˋ mӘU^_z (E}p[oY~2w֙`bc^-1M;VE  tab{pUy;Qَ}j2ym8=.űGᎪ\$ ~s];/(@ P̚k^Ct\ghJ7/M'rxhK4E֭xaizDPuNWTGW͖?7uH?FhɾGNl*K~wOv=(@ P=` gPW*{7 ͊L\34GBoy ɰרjM!QRb_X1EouG°a|Pn6 ^L P(@ 4mxvRz 欕IAKzƳ(@ P(@R+]vnBu{>yk}*%3Z4gbrEԗ$̑@-@R${OHqA:P|]=ZعU:އ{ 2kHV"< zF/>cO8qQ8WAM%˞(3WV/Zӳen*Vb&cN\\u yzGVB P(@ P@&,́YY=S(@ P(hBXha-(@ P(@ ` K,(@ P(@,l!cS(@ P(0<GB P(@ P?!r_FMbx(@ P(@ DcOdz/V; ?^#g (@ P(@ !0C2JW}vmaȬ(@ P(@ ] "Htٹ juxJP\y>>EmwAX,Y.92ZKw bʎl3ضY?PE=9[dXDi3x<8uN )k3aLCT:zC,st:zho (@ P(@ :>>c<{X7Î%kEʐ2 5R%G. o ]ATWF3tϊƥr5 -1DD#у 7b$Vvu3s3F_IZ)DKj !{PՄ SՊ7gCx5W`*(@ P(@ P1 ߛ/2*,/8¢m,S}V~yig} z@wQ| +c ,X13" ΃xף}c5z1jUと1h_'ْ +5d R(@ PF@! ֵoV&kljp۳x#W^}ZQ|һ5@υ&3*ו9bq$ҧIf*Z9N1f#v,M) io`ߡy~ =jWa cZJQb3(@ P(@ P` [LwޒSVVMMwE/VLZek &ҬptL9/Ù>w*F)@ P&0̏գq5 2Wr)CJ5/[W Ά dr ⴪wLّg1dgx cr[3>6"ϥ &t{|C25j`kJY6(@ PH "0īoIFgA^TU䣤u ~DEDKWoƒIt mu(Pn<3e}3*}pUDd&V"* 1z gyHDKQu*2;  ȊHe玩ӥ]0N3'ܿҡ;[J92c]4T Y ]hDu>%xZ-3Sé\( ҌO;{/V%t [N P(0:}39I{CE8W^Վ/~o_>Te^VR[> ՁzZ_X0aG{vyO}GyyVz$(a:bL168N$Sߛ\$rwK4c" .;Ϫ}fW+Tᷟ|4<3άg!c CI|O!-\La]eAާ̏C?wKC{TUInȒTP giBn߽߻Tٹ(o2On'c,˒&s0.MO/tBzq!@%0 Ր>4.KtmҔI\[;>֯d؛IK;>Rn,* "IWÖ0y\ Oe#(zo'b "ρFFQYe.+GD+dSwʊ%yߴ|]YŰ2wRmYYZ0mČ4]5>WhoobǤGlbKlTwf:b%ΟBTnVKPJC[E9ZCNWu4A6rWH![ܒ9 ,Y[( =6E#c+C|mOzZ[gyr!WVH[C-Z qHegq昲بF&*jP6w_.P29m.tY<ĆjQ}35UZ[m>v5%CKSҩU5OC)ȯ6R{fIʨlմsw,%x"nOPV+qwn׽9S[؂/eD7rJ{`f =YŦ;A{W;~?x4#T].y).yxwvor^9>K4@ %1(W @WL?/5 M VƟ[\и,HGZh1CU-G,Z4ф'vdޑB~alcX2Ee\#lY< =6ljjK7s#$zO6W g YNUYJ$~VCKl"j3Uti<Ʃ=K^F#g=:cow~nԼeEb2]SYn&+ʩxR;%%3xM+nXNqD.W/CƳ Yn}J/)eȪ=KVJz UvbS۔w=l<_1{45J_.R#)<\'ν ґ^\iJ{u4u>*W=gYhT Ұ,#.y]]S4K S/xsOXwner/}@ 0Zs(Pt\Y+"QLUz:x_H7wR+]5 }d{g`b:v[E}NJhIeVI9"Ϟbxϫs(#4?˖m`(+a΍Oz超-X;ٕ۶wZܲ^SzU_Vik)/bPI#+~.Y-Ildqm~`Ie/ n>8F ёY!?Q^[R^/ul%q%э,틿jonP^c #\5vSA=F::q"t>{wVbZR xyz|Ё[<7w7Y}_8@ 0HXʤTPE|x^LY^\"نYα~_AGV^  _XS$Hm},Ζj;' @W_>Ѣv@ | .LһKxpb϶x3Y vyAD2D+'9[Fm:[!K쇰Cdz|9">0=T!{( @]ج/Sy]׏,}5XK2XHb6sj,OS??Cy⤥aTZ}]ޟC.C4S"f8_@ U @ @O@ _;P @ @Y Q@ @F?!J@ @] ` .q: @ @`h` `h @ ܥC @F?!J@ @] ` .q: @ @`h` `h @ ܥC @F?!J@ @] ` .q: @ @`h` `h @ ܥC @F?!J@ @] ` .q: @ @`h` `h @ ܥNz = @  ZVjhʂD@ @&%{G@ @TY@ @菖jit{ uQ:ْF*=d!@ @%Fd/ϫȱl0 Oqu#" @ x`)R6|5ɹuhh:v}~_,-Ò@Wd#kȖ@ D99..R$J 9XJ mrZ9z7._iS)2̅|Tci6uĈddc4,椲HY),?pڞ6ul #S6rfuA/adrRJ!@ @=.cjHE%f!u<풻&V.c7 ڥ,]‚hz6o= eo'b "]w~@:Z͍ >EV|NEFPq1~%K-g;nXV;DZB!rxZ6܏~FI|_T-tA  @ @W-RLw>-V2+SxOPo 'K?VЙJjQ}LHne)oHʼB!}9j2S^'M;];ԮP-iDu.!*u 9`os4}$ It\Io @ @}"m @\.Wt2-Čd`Yh&Һ5B~alc0 eˇH#&;>-FA&*"? iDcmwt9%A׉'1B^frL1 @ ܵ%q@ܬlqwr7  @|^vh~nm S ߱jy5.VM:.F\,{.{Y2بu{[)5Y<3m|FyL@EqH[(ki*_LIng'4䕳YX:SMe! @ ^ (E|jrA " V_r{jB @ ( y)ăRS]5\A5}(8f Lco{oqvE%|Uk60ZA-#MzIUm8Ε,wccRe?KįO/& ՇQdx*EQKgN,}0X8 xILgp& @/ZӹhmbEk56-S7V9ݨ_O3T^i3Q_%ڮ>lR-Yzoh*B+tIݪKdd")#A-?]L%;Vd17>03kYp߽dSX|k"&@ ,m 6|5 Ȳ^v2Һ,)n?ii#,΅FڲWtL4CFe$fLA{b4,椲HY),?p_Ё6ul )o9MV"m͙RbHod kx~geŤZMɨ#6}+] "2KwUXZ2%S}=̒el|:iAKA]o8\j1hiz, |L7ˍ!̏>̂.I}"guA/:p ̷ۘ Mu<%P_F_^ )):{SGTlܘJg\vOW[GYD5Ƒ'Me '0=\^׈;~fҒ(̏~1%Sqb ((g3'PEEqwiH~~X+%db @l߸N|M`2{:=Wm(GӃAu<~w"Mjt_%G‘ @P@jHE%Iz*~`?5ln<]@zu,] {zaz `.J)iY=c{Ayr,^CI&Ҋȧ\~2i*/JNqhcb/?@TбWBO}-Fb7[$ 4r3࿿Abbv)Ks*" 3EmL^f.aVGGBKD=̧+N6>N}XrzQuok1~3J@=EIY/t;FLU|qi#lIuoOR^j./nV>z_,(I]oS{;+;AC9v}*i1RqKFS׳5|쉅le^1]:u'q5|]7u`sQGַޓCY~Uqv:H=U'j hJ=ÿEwnLT@ wX÷sq-YzDjGIr90mTDc(!x+]o4s$ckg(\jL#¼igp,O/R-yƐJ FP(P*:5nK Jbq pj,ib y[AR+NG%t~[r}OH[?ϡ+-vEMOo>u?FtSGd*/Ěcos4}+It[>gyabx_Stbǭ{To=KiD'S,tzG{%>PJCJrX"0nJFtܬ%qwhKw'bsT~(iiJ:U]Eޣ̔WE{q( P>y5WšP[8 ;}m[4#/YjH @})ug|djy}Ndڬ4tKݼj2K_IDׯ҃{k}/'| [4LTZE~z}۾W8_w5_[X4Xil 1N4+BI;7^Gr@^IfBz2wKc5FYڐ#bu&< `$^7J5].u䑵R~K q X: Аq%A׉'1B^ֶf )[Ii<{(!s iKcǭ{*PL4畮Rݥ5̯Wmj[ז; 2܃7lj#X8~y]C/ko mgyl˦Ka(}ecS5äl ,]V6!@@ x]S $6Od}`޵L~-hrƷa--qrĽ3.~Il@g4!M\hkj+!TJ ?2k2ݓbFײzmKi'(20e #sʨ~'F h$qXSSs۲o"&=U%tqv)ei({V֋Jm~MO@FдTS|e%Kt@ gva qL-K@ۚ超-X{.{Y2ب9.mo*%5R%4<>d86%!h?oSne:[jV8RmTxOԫsٲ lv#ec%,cqqk{NUlZ+5TZ lcVbts'Uz,&Ļ'zpI*Uq=]lLW#Ƨ(LY=:SM`)R 7v:?=`Z+/5S%pWC^=-l{i]@~7U|)ɫp~#c̀ @`H ϰ .WL;,KR(tA$kx#I[ë#C֨i,6I :8oŭBʸ2K0B @XoY-|_&8lkP҄ !^g#x` ?~ZyP'gRkv]E;˷"W!> @@ Hvx[8P 'SsV I? ɸ4 @ %88@ @w$K^p% @ YKs @ p hcԛӪVxٓXmVz)Ho`,\T/KW5:}e+F _遲B45n׺jnk9 zZ#ƱGW%3Q:jK\~p;ci\Du7SBRئd˾W}w%F_^ )):{CFe$fLx_\Jg\n 7gHamYh-[yRY!UH\j4-]󃎨DBl*[8ʝF33tDa~PLG 1XZ2%`\oUW"gOz<_WmY~7bl\L'`ӦRd0 N%(Ѱdʒ"Igܳe\=UuKt@ (^(TC(Ҹ,H}R]#-_T_ˢQXF>ˍtm0WmjE%e|MZ0mČ4b1BJyi眰t-\s)<ۏR|]IÞ^xF:x;|H+WwWv&-es|c(ұ`.c7H,]ŜJ9FS׳5|쉅le^ޱz`Qo,JwV;DZ%wT).}U'(1 )jH+q59~威2V\c/o'b " b~FI|/ʱ?s]${j):h<Ϟ Q?~^յHE|#؜(jѢgzAbu&}夏+Yj?['F~Qo  @P>o??s"j,7U3>BEMm),k8V''K7(6ٱa&JC Jz^Px*iz>tSV2=-,+{сyN]hbm(EѡT,.kۨ$.9AI,ANEP>MLi_j(&72rtbݡHwcS{J0hC_|l] (.L_M1Q pU]C_dJjI'7U#^Gd*/->XNʼB cIJ\M)ʲΤTޥnxeH=W?/kZ^9z7S^z=knMSPVr3a.‘@ p x &j,t4NIJLLccn!mc)F'w,}%E]OfSKlP&&J(T챉&< `$]5p056҉Ɵ*M !d'sc5F|TvsewI޶j^dq5~N4+BIںҗ~9+co%i-`A:(@C&G0 ck_fR,%ߗۗh~^' yYۚlYl<"k^xS*_Puh4R+s핕KGZZ&xDFPMTh1s7NubBs6LZ³,S_ljvzbϪq+{ =+-{j/8e33XY9K2sբz‘@ p ]i W%P,kxfrnEq¬{@**7GOQSm&ma *τgv*wyax.j^s cumzVКMl# }IlZ_[p.[n,~wPi0 (8?.;]<5Mʮ:qL<^Gx#8pNYnRwp֖`_T}T++_x"`FD˶=H{z[=e9NI ~|4Ss/.9ǹm+ =G$N$C g,eRz/E|jrՋTrͫ١w5l{i]@dPMs019&]tm'[`Uqٹоn-@+a{ƾC @CBU}fFqoytq]>$0T}u/nPMx` Qp$ikxCTƾ0rFhj. fJ\A, Lc qeRYz.߂҄ !^f#x^ ?~J]'dR>,2{v)Qaۻ 7@  B.oK}}V6 . @,0ؖ@!@ @}( Y,> EC @ oX7jT@ @H, > @ A @RK!@ @&m Ϟ}G.e8* @ @Ka(%I/u#/ @ @&RS}L-du(KRC @ 00ޖFj"  @ v#Og ZtH @ @``Q1~CclKFYzYH @ @l6՚6j% I@眲tJ@ @@ x[vRM+YSn @ @@Ux @tˡf%ij-H @ @`-$ac*\rYpsP= @ @,eRA= @  fVjt:T%Qr @  Sۍ'! @ &%c @ #, 'A @Z!^@ @@#6@ @jXj=x!@ @=G'$@ @KN7u:nP}V׳ @#г0n ӢEGD!@ X@\755zpY;tOAwݾC @@`w4zQbC>JfzQF ù:mQ @ Y'kQq'u3O'B_捛_C禎j jͼIQpt٩(_ĦuW-]8cLBcjz&=O_9sũ>1}qO6/eջBgMS 3K:i[wO Vxƽ^]?jQ^?\^e^~(~WkI=8 @},KfK&nw~qkǭWw\ϿR7nO3q̷O &{tB?cu8+;aϯkBӞ~aÿms1]5`d{G j(-U A%%&>:햛JDOk}Y%yeR}ʇk^=j svSM{aa@ t_f 3=0s挱ozyU6jW'?pil}">y7NW&W+zPd_%1szbKw;nN4a<Zxg"]yU_uenN7{I悛w_`)f:sߛ6טD 7d/kMVq/Q' @Y31[cMFU3_8O^)OyOo(7z^4u,[`SV?~aU]73 uٵ[$,pdڵ#FYL7¼xN +;k]Oƴq3Fḱ K'7KldH&jOg/5N0fC/=m7)ОK3k>W?+0c^<;%>`)џ%GFRM[\}6KOcpbbWŵt'/;7 ^sr' WK&A @` Oϗoֈ׃>aђ)M9;_rJ?5!3*o䷲~qI/I{'ͅGM뚙yG_V׿?#v>fL=Qb}YWZ%dcO_SK\ KM5}fL~ki0bGԽ]_Z9B=`ƈ57낦oחD[J [B>\cqyh@̔Yh19̌a%[/L0jE1z{c'Oḏֹ#xIMN%N m0PH; y/O[D]xX`!S'[i}&2{M'v-*L !O;zc0co ?ňXA .3b "wV\~OMA~e[ar?{o^|_8Yb<XKK/_xNOS˿ꭢɛ7Nק;@ !&[ko?ﳇ^;VXg{f><fM?g:32R8|x{5¿FMgۦaNP5u@t#LÆאO+n]Ā;&i7Pݹn,t?W~㙌awfǦmݒ~-J1 O[Tss56q{C'ΨvmdXXhYLVy^#Et776QHH\XJэ E5Z)AiÉ?~'c޷&%GhZrڛʲA||Z.IҏNG ftVNo=𘣎mCSW{7݆%cs._0_eX طQ}nEZɻokZ[??uk>u7OkHSwFUɥ%m|"o_mڌn[R87<~T١|oO7|qmHЭ# @|-;?R+Է\*_ Ri?xrc.*[ bK>ל6^Rf8r]TxxXyh{EXݿ@ &^[eYǿŽ%1˞ugvnǘ,^}t=(/e.S+w9OGă&-iBS?7kqAjyk/ZPC2گzq UUV;gMu [L%5jcɁ[[9|i]s[yM_(J1ڻ^gSl0oIGgcEǟNK T H/ˑBO`7<8%(6@锫%7X>WJ,ZCT|辽'd)o\h IDAT`֏0.B( @CJߙɧFc{ݥ7ڴw:6sKKݨHC-Z#?s16yN$eEׄ-7*ij|{3M۞?tyVwރeغ费câƽY^13Mg] Dcաjkm7?W=2"Dat+lD5&OJ,Rǥ6"-*WTȚ-+KG.8n̪wn5+hd{HE[8Uk[n'S641STԯ5*x(Gۛz}p^|Hu~Em8,#'ʎ_ntG݇|k'?_;WԔpF[Ͼ;ײ-I|tOi[5?~VX{^z- aJuuÒHH k2z*ҜU~rF/_PckyIUU/<<4s\-eOgmX<:Xg~UXtƭzr/T7]a΄ \pot^{a^0Zo/fW_mH~NܐZ]&ʏaƧ~$Zu]]m?تNnlʷ6,'gI,>8-4h)4Z +>[oW O>9/O}f,+?]¢C7a>im#*rĜ[٣2fvBHlɡ j<Z$J\3/۲*l#_#suމەw{jV=/jTx~gv!zcyGoϹ-h?*+_to_ß6>)T @, .bemōc{vrrOˌWg~'Oi?>e';7T"ʋ}aO~Z*}[%'5$T^:m9Ky @˵=[wF?9/|Fy|Z\Mr.;sۿHwӿWRC5~o=Jϯz EG @ pMr}ۼNgZ-4N<|5{9SƌOCysE^0x˭O/Ϟ3=edd\Wvg$pߍ4Qc7̋Jiw~ klR]/@ @`^OKJ['v~bw"h}dgx|ܧvԑTqoW }P{l@ @P@oKnuBGtV-~x@ p`+˿<H @ A+ 6({ճdF @ @-2)էf3rp܊W!w~G10 3|wz憳^c z C~3Rao׼ߚ @ @UK!? oLo>ʨ*Qi|n2m=Ļ|]tGq}[SuzLdO>xߥ/ s7O/_7^1'Gˉ f-}|A!ւKyKqM9*KTᔁOCԧ}oF[N؟o8~S})ИG,K~+Sۃf!Z#%rsL`h߽.`c&xu_ݾ:`^y.9̛?!~u_k_Mݩߟk8(ky ֭_Y:Aٺ!_Ȝ:{nqN햛JDO$mlhah% TtM]WmSkS,Ow=/LIZ>R%ǘ-U A%%AcgNy㟉*'jB#67},N7wj}|h H\3?<.Z}VYvՇO|ͭsztZ[XK|^{<8ܲLf!#KZ3?웲KZ,;s@:c`BphOH"#%$&5Tx/` vȴA/no{0rUa/(ݜo>jeV$[%r{b0`y@HHHH—?)IH(o? cp\$˖e˶e+i-Utg]Idϒ=s;s\ObZ6PM%-TkoX_?D㖄Σe^#Cfv6}Wꅋ`LIO={+zˆPS1Mo|Zr]tZXyh'm6Q^{2$3}fNhgܻy=.Ƴ'Oti=|kl_|.ȀmϬ[_@HdۗyO+xUv7)"ancȱ &=7elD9)SxVE|9U@ސ:YÌѶϔUU.#2\P_5cbmnTJ]u]xlh.knEA H {*[FQw^1Yd1;{:o۵Z \׫]z55A!Y\ N;s@ 6~WO:Sz5ȖKf/qr6Q}MIxN hm֢ZC ] 4 ֊KB‚0 Za{U9m}%D ͽ3SeЏ ;a5pO5o2EBb*tstK?OȾE |L4fW|*OXrJ_:h'x8,WdPl/x\oR?v-IrWK+lr屻߂IA"̻MAB U>bˡU7j 7|5sWЧ6jdZ-.# 0A'M@JO*XՋ+Ҋs[~>g<'F@ktdG&ThdY:1.BBu HY /uxLWbd(cWe96ۨBkTgEp ~gmH*N0;Peuk &hXvWp*͋l[gQ5g0El^l^C v eƬ;#5YTc2kMZ:<;m<խb>?._m\ }kH$,64;Pb^?+vVhm>޻cM *i}ښH" 50P~ Z7J9׸ۑpšf6W|ڳx- qJsb̻sKEG.oa%ڔnq@u`coX[wKl?W4!zpNi=K F>speZ7[#cٞ!"-{Ly)U ֚w5T=߼ޥVhz b-.z~sߕ?,>#%mwK?8͟O r\Ū˽6%k, O/M—;ږRM["#1O0>.1JT^!"6P58_ qw1-\DRA 1 w˅$ILw.]zKJ(~,!yl-(z 0," UibK+zشa+*Tnk6C R{uEi{iV/\_}"}ߊ/4,T?hk/ꎈu3KK;JrοT_]ZCJ^> 32"CKןt$v :V^Nk+?9kR^2'!)Exѱ.>u/(&}t [*em 2[eP|6UGNFLluY>GyuFvpo&Vh; n9w zꨪ3T~{8{YEM-bK=hV?.Į @W>oLA`CN3{ޠtxDcƈXUеXM͇)\`, FoU3Hw>nv_ 1p>I;,'C6 >al~1qXTUN ]v:pnzrexQ!:<몃x5~ w51*MH'ӅO(>AsSvq"1`2q7G628+0[}99w(dӃn%#pglvebf!ćNtvju3=0c kj":%'7AN& cuFm Z,-›p"=!Fe j=r]_4tK Y}zr ;" ~/5B.0H{x3J@H(R i95!CDuC(oSJ8klbLdB:>و9v}$G>P gw3[,&p>n]cgTV,#+smwppݸ|oMBu:vps6( x!Mz˸'!ߦV4C*v420}oI?h<'$}['؟R|H6E#W?C@9dKJ{N8z-$W* "Cv y[ĞLi=[[;MBV>e+ϼOĊN'#vBL-V X QcխoZӧ!Y0lwĠ٠r]+p;l9 !qX{2w!ҺY${!>`D*x25t.]uj 0w?ܔ_˓!)& B"ʽbߵl8 GYb{;:mR&=h˅6Ty>R\YtU}-`CzD]Z\WH~UXȱޞ359&:*z݇6ˏ {v/=t7f.i.:92)Td5xJ &rg>+rۓe#C&5gqCmϻq8AÝzu78ŁsNiV$_:j@NRAt*JO$h!=β:f|`n;TN$]CAoR.B-ZdQa"TIrPR;"ֽ0@D-")LLDޠCC%’OăsR>+~0?!SNG#ay# 'PBwb\:(sq_%/‚\V;HgR%-tT^k,f&KSʸh_09jP?|oKUpdfʬp*T}+"QSNՕXC.0qrw.sw_:8 9O'I#"|n}臔@݀KjŬTacO /JZ)wE`7uqd$qaFLOog$c J!+t z^S$O;tDfmK^)?EAN|lS -8XL`aCq\vSH3S4h#|+AD5gK} 'NQkTM %uF΢~c~)±˪DV ޞ(uKO.hf")2m0͆-N43xü<^H XSr4Cz$!xwMsziӒg2;P܉Oz|ֲ[Rm6>n{ )70^WF5ʝ8IGO ϲjhhk1 no`g?^ʼn^r5+]]Z0mGAkAǗro$i*.}NZ^>}ߏk;1CMI-Ǽq IDAT m la ^#V40i9|6l}tB:)u/pۣ昙XvOT?*U%~'ȟb,Uu*&j.YϰWj^ˁ^W$qWpqG;%#f:=ck]*/ǒ'}4{pj|۫->C0| IG߫*];gu/uSB#5RYNN6)+rN40uЇ|oӱXk C/":r*ɭ0F6Rڿ ,)$>`cU7>V=Ϭ[$oGĝLrrx-i$=Q$vb"1b~MIq5@m:?> wq|b\/g3e5;VVU.Zdi FpU4` be5Ћš>iS64G*yB)T%32DB oO] )}'7wBeBڟa rM.~sWI\IRB2U58ef)*3 L5dĶQ^gN˘Zms&DO<6'[H:怯mڝC_(\ u ξZ8aKhע$$\.]D'#Dw ǒKwm&I$|ccRJggO{Z6?>+U6y5χ{Q^TU7^^ xr)!0#W6(s| s|*&vU|{?QkӍ[ao+ (Q.5z1^rsJ8[?Vڷh>f!0_g՚cv`X^UQYFPY;>L.?_̧/U,ml_zOh=J PUBPzJ,L pu"BsfGɈ 1SE''{u6%!i~t̢@`U,1\    F@񟣆Jx"ж9f'(T[/Rj+(mshX3hν4 :;ҕƌ0Z+WBI^)x#4oi½ix㤺qr"\&8lXE`+2Yű^>7Zw9Rt:Plt|9QJTPh &H;"_AEJ<݁E' N`xj w+;չ2ThazN|tս ΃sS-'eWLiPξ;űWW?`{ҕč8pKY씶$'x ~MڗT/C4~d?-wy>jsݳsJ|PNǩ6~7%߿$ "krk~σ =s?}He)㋀߲iSB=Q'RoCpÜ1kfkTS.}* {C[pD2D6s^v*9tSTt$~F?MM RF訄_?N'_(S(l>kl3e>WOo?!R-A0Ǖ`azhyI#pMB"x(:-']>[@Ѭ_r YaO;|dHCǯXdEXuo?ƞ6a򾭀착SMĀ`}yv(g|iFgpnNl;',oH/,PN | ˙23[Rm]yr@#qQ6쑬TMe"T cm}{CljPgqڠCex<ԖC2[E= XnPǕP=Qp*y&?kS$=k?mnPW*9H˗ I}y.mCNn_Pz6{󬛗krXg;:p!1-TGV]a O.G߸(;k⅓{lr6鍏\KN +m&"gd8B<;PB#E%vzim?'s'T'4 ֊3~Z.U+l\y vambt Z]3Pz'd" O>VY:1QbB| ~?Sprn‚0 Za{U9m4Da(h́NPj?.)Y\5FW@!!:{$,̗Q8.*zj=EaĪVkr(~* ?aCUKU?bcbyx a}B8G7݆7,sAL'~O%T-H^!"6P58_ qwU/[w/LR@ [\J&*5L0cySd>\gO?lkl<{:=iKU/=̊=R~qw)Nۺ3n{iE_9C g$N׉(NZYw.w'X80g[E?6|_Ö$}UhWڲ 1\8E}6f#,>JVu+n5?uGĺN;nfN`UZ[/#eoJ#jBi?gs˱*ΓEUpMHi?Ѕ&|91Ms AF}&&-i`J;qxzŨL8UxYT_I C/j3pc|aA)u?t$%?Uk0FYiSp<"b{{ %IU-)?\/+NRDu6cmQlx1YТO6BvG9k,"n'F45V{o/ gwU' hCoTceeHI8i@N{qm]eG"i\fl{`6GשnCR~mA$7HC/okE-x:N2I2y[D6Z.^y cF8U`# I@>&N4ho-7{(W]6c8OX$"eJ ҆IJZ<\3HEn t%H݇ tRU5QKԭoZӗEpLlR)[4}}ܷLzЖ =#sP_URGTN v 爊M S{޷* ok9#z嘈ЉyX5>vCi֌cRwjp`rϘT:-'jعy¸WvXdoH݇6ˎ}ՌOp=3&@ N,Kۑ 5W_]#]؃߽,um --ß4+`k"w/j]!ν=ɝ m"0U.j ox^'!@DHC)Aڔo5xR& ŸNӃq:vJZ8FXj:'!b$պXNkqps?Dorʖ˓p?V1$3H1f{v/=t7f.i.:lS6B1 )ru6G@an'G ?P@$c\-ml3mvۦ`eZHߐcph6"۾Zv!/9 Q%vJշ*o=T]@nT+T[HDB6I[K|5]R+f .^|nwUHbxYAp@c 2b }9$m :+hFl%G?bC߫a6y¸'{2' jkMڮW=F9oξp/?edNzyBqlok8 $?CJTkx)v=bO >Dɏ*4=`aHfC~ M =G>kp_-6FK7md㱊XrF)~^͸z4?1;?ˮ:~>cdFZCғwtqŻkL57X΅B-L&IK+wSұB FvÞf@!JL܅Y(>n]5>䝀a-=O@uؤXC_h~Kt]Z)1eP\&>fR_r*L(HyB~zʾB=9LHܓ;Rgq {8 7a"iRr8R|wtfjN*V8/ "q`2ʝ)'Z3jÊ kJ:ˏKđި)d"D3^~C2hh`)hy :r*ɭ0FuG߫*]9+dS*)l/zz3 w3KG+޾gC!|anx{/宕NZ/6"Nx9#*D8k.篖)ub\ɲޯCzSx=Gn\Bo~Ir[$m-m٧R#Noc7{V Z 2U58^9ykɈm.Μ.s/o B!Ib2!V~051SnO] pӃ,T̅RJgd|tYF~IqbJ1&3GvAONJܻd'*\_{ѓ$JMܠ 8v8ć#6|Xo2L=qbٹ('{ aYyM1q@+&xro ggI'=-*^<^^tNMO=X#Cd*Tcs>s()#VI*(3UZbP8@^DhSvo֯yaj2Gxic|z}roͮ:ϻ;#"h9e2">M;cJi?]] z%n*Ƌq!@(Vk ㆔ EiX8:5 IDATnBAPBNΐ ]@_Xt; J5Ďg㩷"Fʍ)́O)208Z}]<򫪔 0PjEdkki,e?s~/ՍGH*̇I6ϡ]Yl*Yj5k߯ۤ hÑ* Y]I>3™qsJ,3%*(12F1Rr(LSa!\) C@pS; Ǝtp`վmϐ)(PlG! !؎)O{cpKP80 Zj(xIƎ; Bꙋc'{?:A(b!`AA`rl 7'tMv\k |C`Z1}p4cxj 72uS#7T-{ߕKA-@9?;d m)KäC8Lq#[ןվ:~DQ\#>X~?m受SH:)v1iݫj Eٵf1w]Ň ^~P%&>zXU78iҌ+M>tPеw?伧>4kE訄߼[X_mB{ctoUdԶ?n 2+'Ge0~6rWUTu>6O+aSTs4뎧aj| Q#p983jeSŮ`LmF(8 FGEڰG?NJ or{T?iS ;@F4U['*}{fbr!b,VhnR#jk'?01՝*+'1 G&d%yt]9_wz  rϻ` b;>@"U>#0{3><0 gW`'f}@"Cj7ϺyipY,gU~vo!Ҧ|Pˢ;lx4im7fQZwKN:Ǜn9~A9* k>Z&u\ְ݊ObZ6PM%-TkKF6nlcdjl^rNl|mz#ג뢥*T_/ۚe6_Lp[(nj.)rV{]2e/kϫB?%쫍B%xnrz􍋲B:叭b^sCGWױB=~ѷJRgʪ9 rOwˢJX4N#"#XS\L;⪍ջ'Oti=|klb%e T،ǟNm*xIݏ'EcJzD~g][6Dr'wx<9 ղ~g@r07߾"8DWXu/_m586l?KŁ.m/63 WPI_nZ17 *->m*4 ֊T#j!unp9u:E]ݸ B,'P61Jl~b߃fO:p#:AOUs 6FNfص$VgoAHI&F E?ԫ͛c*:o% 6,( ۋisgWK؛U;y#=3mD*Iix}gd ^U pNo*a>;1hr7~:_Kś@6_:2xb_\~`{#Kql_]$zF!!#8@&@J.mM$ 4f΢Sԝ?cj´B5zwOgNաƎf;hL=rkd,S^#D}iR)FtxvڶyZ [1 i$KۼȶuUsSĖԗNi=K F>s؁J@ Mì3~dLZk~ێ6B/k )!Jr-9 ǎ5Xq?I֦ĎZa_^lm.\ќSc-ڦreLSn4t^~`\К9U -Gj=ǻ\#?+vVhm< so~O6aPݵ._۰Uo:mH Ùl#2UU#(dߟ{jP?7Rh;xE =4c~ݪhQ&1%ХG17sYFl-%U߻҇7/RUǩ'RD"l) OY}* WaCUKU_#ɧ?bcbyw7bžzQ²{`ؘC|12VWR:&򮛴T;{Im꽍FIBWW2P] 43~)l`bVRFk"­-D4peℕ Y~K9vuQdZU@9ίi6f#,>JA4H1Kq5|XN<}vZ2XP&1f"qp{g bOnfӜoZJ!6 x2Ot?Ӊ-~f湕k$pοT_]Z~OPds\m/R-#&t>Vvex{0]yO$U4!eT)KW*Kz_ۡu)$o v :V~6QZS`3)Q@tɋGޔ zԶIۯcМ6!N8R?wTRa7b.:nfN`UZ[/ZO⒧`&\[ɉWX}QNY'r!Q]P} ;cs6mlx$^2~-}z Ǚ`#2_a@U cdو[p[oA7wv;PP'g]u~ w51ŽeQv{7=$.hP=&̿qQI J?ѝ8> GЧ$;wN"+"(C`=pYMbQYo_;y' zꨪ3T>~}ZMP! #D n!/m4zNʒ.>8LMf.VO &ƒZAp2DgS>-@ Oq7xCv]}P^J)X. Ǯ2L@8ŽTg&ϘW&+ >v_f.fl{`6GשnǷ"vS8XLf+i|  v'{/${M84giQ *u8k,"GSd#X\'hw^mB6J& cu 6P ~]Չ) 姿 sW#Vt%R%=i&v|R~em x1YТO6⾭l飵merE#сWJuOX9GДȨn}E dJ!Y!YT_I C/j3pcv}jZ?N#siC7L/p f$kgk9d6Fz_jyXM!9kcW==MV{@89@={z@QCMD { #zDb'SE^Ҍ/Q&m.L^m XHZ'Ցkx`D*xfgv)zkYb3}tIHʧli{{QA|e9F2T%%1AYm4vN4ώZ{d\:wMdf0g]!$D$(vy]jރ%u5~_D-WDT}CbgǾBxPWELfQsegE7EUw\D@w5;-d݀/Q;:^c7<2\mȷsLj:_U%.g$i3:*g.[J4+`k"w/j]!ν=I&c}YqԺXNk|LaJx":8CZn i xGLh#$B-HDnm0;c*M M4q:WK/:Lj,#"&M('p\l@~>aaV(75& Ё]H|AS*ZڎTȬ0*{?:ȥ޹C'!?gP}}5RӶ.zj^m5:"p.Kq270bYa-msV5&B+U HSulA(pt o]F!iɐ :t}fJ=ŵ: *ڂj ۷}~Q1*#\V҇\WstI d-#u{9#TrߦO>5׽qK/^8ɔzb)h6UI(IZcm{Y|M+?!fl=Mh@ J}ӹ g;Hi+gm0g- _%5fc/YFף!YvqnI齏 5 MK0C]J,s'>|϶]4̤$ڰЅ‡)`5%.N3'8-pYن.^hQ'3*7|yir8+r>c՟a$v|MmA2hGC[Ydp{?>i yGu6GTTް/+|lIM\¾ֹqK;=-փ~5*Zd!icuׄ9g]<|S=XrFi8;׊Ͻgr quڬF."X`85Fd4:@6ܽv_FD)4BQ ŠhHO[$iƾĝOzxRP}ܺj};A.3- q7}G+㚛ervݾ\(­+wSC["҈O5zR.+QOl>9| l63o9㽍HZf5V;:,U詁` *)x-_UBnk[?jp$?@.AϫQYr|雂t߅|Ha/<ː YNN6)+rN405ܷJr9:h2}U'UY]K'kPHMa;Gl8_R c0FRoF ).Խj+K Ԑ@=56vﬓ6xm`묺OPm'?2]F]x9]F^t]%+Řh>E/Tgz&yS5_[jA=f6"qrz`Ԗ:W.ĺgcu4A{&QݹJc.'0ƽT߀Hzh1!gg˞GwGdP(3][nV80~Xk[?RPɿx8.?}wvŠV_.x>ս%=rR娿R!p9k-N2Qi<_QiWwEaA@ڠt\kaE70*GۭAQ`Up# *I l B^)WA` LS(((((\.\Zc5[׊|gCǞ7*ȷN\Z)(((((((L4FFX /B2rS8p崥Rˋb;o)lP80 8po [- J             %0}N\AGꙋc'?yWYA@iE ˆd19iwe\)HA`r8@1}77R*3Ϸr UK9~GTSwmk0ڳWG pS;չ2h(GWǜFJRT_R+1E @"Г<|/b[4YLBŽ(Ho&+žds[_'{UVwүT*9"|x앞P W ƨKJZeMc\Έ ]Z̺}m Xi= Q/Z*Oj3iUJqNR}IUIJ;G ǟzф-KqqmFBOC$} ONS{SE'PoUAAzzz&$\ɬ $!;lATs2׉F~e2gα?KX)a7@SpN_GVi*XgԢ+| `{_5Lk JV6mK ǫ?N wu~05Lh\>qVjBsyGy0$Ptxb@ :5ZD=mnLM.~ QjёG׵]*G- s CG.VWyAȽq"{.XxJQČy0}3*N2s8{&j7ϺyipY,gU~vCt/l8Eh8u|wwTG6nlcdjl^rέ#Ǜn9~A9* k>H&o43֚[e5ħg1-{妀\̖l*qeqKBub2ӥ*[hsE n=U ̺m7.8dZɜ.ͺǖoܝQ(G>d _؀zY/.Ъ5[ׅ沆VK~YKBMQibEwp.d$l,# `QVZ.jߋZeʒ@2I&d]wLBr$3I 9?~?̹^p.),+ wB|_)̈-y'%ݸ~ ҄k/ &dBY{kl_E1+'f2Ly}hWl0R5VEb+6n eYv(()?9#v; KJΒPusmwZsqI}^뵵rGJ5FlHW{9#Ν{TPpq.Po:eO~36-LtvRnd\RdoKLO-kqaQz)(}uT?ر5z뮣N=Y. dI[ #3/G9[fOcÐ>ǧQ Y/Y|t*=**E_ۤOb j=,>Jn#>gCQS%x^yTpaqyҮ鲻cXU0}sb<8/x=7EhkbPe/X3Sҋp՚ly~2Stj ZP¦GUyҰ'uڥxhлS{l,^I?ޓOdpk`}eC 8 6<ο],7.H0v~g.J`x-c/x֛3.57B /8+fS <|l}e}w#0 J]k~i?\<;\D9$S?|h&S]( / 4:xX[@t  #([w}G$˽W5 69`N!f[kqxfhj,(cVv/G22.)7c[cB[IW XF\l6ưHs`).㖮j?rwd86J MEwWe {L녖s+2#pwn W; 6|.{v2ޣA E6*\1Gs`n %BaK&aB* U҇ PokjQ8TZp4pssu"-!<4~#"s,bh0xX!!='Gwquq_kw6y(́L~͇tQE_ @ S:0Qg# MZ@C]@v"6<5s~wƽΞ3h[tSE 60-,7f)z>#F1yȚJaxQY5k_fP)-  (?7d?^ RWoM..$'P܈%/砎rga1`kRk]uv۹tA, CQQB'v^D׎HU,<7P**4e?<)1Q*O)^c1%k\dd@_6\||;,2vEfWuyp?9lQ9IlI13'}c78d#8fK>Hh&J }UUO~ N².q >(lSY܇J.,vyνPoW\&Yp#&@춟/ݾ^©h 5hH S=Eu1@oKA>&:rg.4^>P#oXM67OinzxD=[ܕ)NXTǍO'h3_<ꍊC$4+_j@NRAe\2E֒ nU뢍 oRSAL('rK nMEQ i,Ü {6d(qid/s`_UNh;҄|mTc"QVWA5ʴB ]x?0u}EAY. Y %7|F@O>OXĸu2wA38S=Ϥ7y"WL3GH¼q^LNܰ[-źo2qNєqq'G*UsVl=Sq6B_i:%wZ{H(gsu-J1xӶ"HXKrآY$]* Z2,:u)Ol;u݃[SFK7G)2>WF1.sُ=h]3(0Ir VxzM.#\_q#N Ώsj߸)紶[AĤφt;8<..n~-;Z8Ƥ$Рۺ}^1,8s >z7n QbU;~c=E3XB";ꪪ6,rĪKCc#-;.olrqI|)ߦ{-|g[ɒOfNڽԃQ~?卭hSʹJm{ 1GXx9O&?@|A?ĈFƥאfo[ zQa@(>>dt0 @ \Bx pMOL $WV:f9t*v]3W@A 0`qmUڻgܼ5cwY;Y'좞tb A @^\D!@6MPא ;70{7e%ezeȞG" A @ A @ 20Ej A @ A 0 Sׅ4U\(IׅD)Gpi!&  brҒw4  @ \/L:@ćtn9Q1ɦg\x?/8ݫZԊ+|5Ek=9[^2$ Pu4 (=[pAWKPɛHp] 7 ֪]+*?wǓ+ 9UG%a"|ߡ![ޥN!#;}QOU$&#}ؽ;G'bBF`bSLBuj?iLK3Zڃaڬyi 귶W8 MM;tT/Mfni7AQ3di?\GMPT.M&K>k-:Uy˜3͸5Ke@gHGefI?}ɑnjTL< U L4 ]5Tm>2daCkʧFie1.tص/ 0%Ld }'kI48KUvHNOO g'X/mЛ> } 2xo.v6T1UOʥIݤpi2Ѕ9l +1Mc|AXW* A$(8d6yuL*&O,RAj!(yn» mY|햙TwmGjy&>8uZf1TbP[La:x7,!mǿ5+L>RڎvV@NN*0,'`,I|&qꍞRø~"hUmḵFVf~UA+^e2w2e|EeR "mVVu^^~J=1~QQI8Ukz`Wu#GCY 5+I'枢-ZS,?qщ,Ml_|+ǵ:?]_K^5{ђ.z3GJt[EQ WAbg{eqz5pYI%,7Lc0|LS~uZl3@ΣjA MEmz!kilKy l8\g/L6֤F@vh;tI1m4ɷ UM@JOFF=諡>a*kf&EwVz}4\R;]#uH"̑(^dO sp`?͜ro8c֍%f-ħ 6` &Nҁ\0Lgr@VB!15tK/C$ZaW0_`b7(m]c@1u?wM'XTmVxgoQnZ!p~$J9o7T*{ǔfx=|n6܉z{9 >⭝\ S|'Y)&Kl\c骁zwZ߭8Gshś˛U3Na&d2q /I7_ٙTu8~f a0b ;\醖ա68Eq7V%UtqZ`PjN2'ؓ+SuĦ Rqhf]E}{M{Rnhisά{i5nP~_զXe-l!XbsR%* CN%5Ap?a$2flZKMY{kl_E1+'fΒ #v\h{ATT>UzT˿=5qk uΈRrUT9HLcrU'JqXhG/zdm㒏0 uM5TP=Yeusb`<҇!}0 0&:G=>-X"l- $?bc f1y$!) 0b6QBa {E_rm29Iugo yOK~w7?x (<0y[ vHNW" B@ZOQ5yTu*BXr:`C=]`"KtMㅗ>pĬN>\sH qnCVz;|[hq>O^:6*_b'bR&n{BMB{%GrLINed-%!^6 Y/Y!oQzMy<;X.& dm}J[+r!.moȜQZ4i@9 >.f[}w*a8K}PWEWqͼHit1a ,*91hq IDAT_YQ_)B ^+m*ywĚ _I&,3EPկ%/ 3*0Ÿٞz!G25aepvdHbhrY-fxIO]͑cVv/qWEJ!Z쇗?yNuiX[Ґ.:z~PP;N^sH.qÒ Ʈ @i_dqf=d]#RdE}#xuW3 PQO>)Jk LJ&ϱ7:xKK&#Kqw eO?u,W_QjW(pLpּwе[Cr|7#z5&5jI L8ΜRF֥yl|oUF͍6zW~{q9x[>n\ =KȈ> BݟBv.bF菞:/%yiGĠ0L{CQE KX-;|MʧUbA7RRL/PMrzՃ;}30,e!]Tg"C} T9*OUNUCh7hrQSS_b xկ6lEQو)L ]%}h;݁1Fe9'h!Fdl 1}hG()yyOK\f{L7~#GhJF5\جM s69 aG4;}sH ?eA֦>R/+߮;Aiʆ.jc@lzރ2 J$6<5s~wƽΞ31xMtJ[PW @`>GPoLS| dx \EDwʁQY5k_fq)-҄~6g,2xzPb$? f[$ վxpTD:\Y P._HI~$N<*dʦ 5`Ja^M\w1 5 =S;JPRIq`o5Vu| m>H*U(zk0ѐ*qU,ShWG踍 [sUѱwll\>slos 58}댪G9.IFYvMw\;y[ž}Li#[!fƌY6! DZϩ ©Te+ R_.6N(}*~Ӫgtw(ڢyp3vKIo@ǫ>6jGb }|;QHƧli[ϸqH@k\ن{ަd0KB#ʳb:zQJF $D$଀Ou,?s4ʛ)%/B4Żc$H>*q~N.%B:}ny7sPdj?F\׈^8@2cHP.h-1HCDYn̅栚1!cIԻmnmܹ{ݡ̹+6;E`QSBkykhvUx7~B]m IDQqygMOJ#F.+6mY4g,eWɛJT(qHfSAEl5h}{zfelb@s'g$fS5) {ͥ!iE2# 0!A׍YEaIh$UW]%1櫊ƒN}eG:]L90+O4gFf⒯8,:ɚAgQk`x>B41ڨ6@Ej(kǃ|)T%Ԉm$S J!k[8 ?F*cn =㪆}eý :K>!>z:xF|oL'%y< KHA wa)b}y"ƭ.! 5{)> CRx.]!²]/*t.G 栣Os*r ь1%9EkzH B8?ؓ$rIs"͍ [Ԛ2hnF;0Jl:f\8@`StXHmd`fP苋:%wZ{H(gYآD;m/ Zဵ$-eHލp+%#q:mPyΆc[=h5XphtkM~+C~Ul-?&SNe'~95o\̗~Qx*=XxS gۘt[wXvHᴶ[AĤφt;2OFdQg0ᡉnLL^ghX)_2lf +MTP}JaH˲?שɲ9Ȏ Yy:I 9nnaSIC]S+wf:uJNJXPjOO2qqqR/QO7P[a[- &}a<|1㸁pe61-JXs Iv짻wpk $mqrVskAKkJ\ `N\ں'3Rin;;0ϯBqYJ`\GKѥ9N⊟r--3C|oJ 0QC%B}J+(@ NG@]|dYj8ԶQ>3n6,ZQ9*'y}8}p~8'KtH؝ ;vrb EXzb6#4+(.%>A`p/`xV0(&D!`]P1:rrs[gw urf]I47rv4= r[/Ef#(Q}):.kpFdRQxagFA?3i+KARQ~Hm }Z “BiRHp{DَrU@=5\W|ĺGQă?ݬYu2-$eX~rl'pVOt45x< m3!z}EвWmϾ}Yj۳܁fRyv/U~rޯI_Hm(Ňm*=!Ŋÿ&+ΌGyHG@l{WV1?LZuudHAqBqU2,z9_(" Tiwďnc2b۩7eC\ތ.h{w? jYAvKLy)T%32E*]MLm&UgtV( EFAW]xBbL(e풮=RSP7..,QzǴ"Jv5 $g@<qх=vSq~4ff˱Id36& _>;WgT1$ &,$EHLDo4`zuftʎ޶]c\DG+@zj%3ZLV=" l q{d Tߘ6h<ƇA/+# @JYw֢OvS)aڬy?PJųS)_6귶W8 MMWo (["Mbźwޮ"5J+4Z76}zPkZy׬ LAd;[c=;6KNF#r:ۧ MstT*HdEXSj!C {'A p J!( ȍas6S-́kD{"&A ` 6G~}̻^oSoMvMiQ6&,mЛ/>S=a&^g(}W6kvzUxͤ @ŮImzH~k7xG;A9Ⱦ7骴A+3f~q^7ԙ<YRہfҠmW{үPWStCxLI>ZU U6B?Ч @eeLnjf#]1]>wUS0bn}&YPeoiKh#ٜeIYOT>Y8eA[fS}-g+x˖-uY]X f%{]uo.߬+Ӊ,Ml_|g ?⾸O:-Z<<šĽYab>kwKen]dmaUR1E[uU A3rԅlH=p|3[hYA9&=bcc`~{4wy昣5.&! /@;*Ltz?8Ӷu:raivwvIn{z=`4ɷ UM@JOFF=諡>a*kP#J!u^h=Ȝ9 ]".n\!*O3'?ި?t/NHNSoCg};Pw3NԻݻ |Kwq)}9FS 0G!7 Y&Nҁ\̔I)F E_</,a0vnzFAۺ y,`,ա3L}lw}^oGd}GJ9O7A\!8v"Y'vuTlZ&*ha}PB\eRM޾6mq'Waسuܭw!oRG},DOT[dP,F?dTj,mi&W5FҊ-y'%8CM&<\{OFψxձ%(;.4ϵ枱̐/HZMA'lwgz/5С,k=XN3g|++'~Qh ,zx6%i/# e4рҨ熄5Qx ;Ww><7j'%.LLU9}Ð>`9o)>-X"l- }2P(.n~)>P6Z ?%,U7K5FQrRؔKSF@uut8|܏1:32'ZӠ(4͎w}s]EGEQ$`ya1%TUzUBU.(mVQ5'/9\h\!#CL[@?U)"wPM#P6ȫ䡎ݵ&D`zX|(B:||n]sZ|S8V*Uf53K/p4 Px 4q7_82* )8aIrcwY-f8c/ L(%X)Q| httbױA#mşٞz!G25a0]{4;^8.{jgAdz,pz_+b6ϩ~E]Q#+VZ=<Щq}@3HmF@W[1'@o߅SpQ;Ww~֚}\ R3Aʠ=brTKcr@+6qp/=H2h@w'۩/ȉ@۰Ee#x@Kqvta&?X C}ttS!V 0_Di!vXP$gT}JABݟBv.bFW@[QrP)a!6R$cR㗅*[m;3s{iTN hyJ\Upo dŦ-ҷ)>ߎCXyxv|Ndˮ+=£>QSmT'Tce}HHoXܩȢ &<6ѹjP)%*pf˹D7:)&L#ttmGR75';D4 u|&/HaE) 7 !jO:ƪ\_*eŃEu1@oKA>&:rg.4^nBi3_<]AV|fՓDQ`euX7~&^Qv|=~?| agiQE鄎0{ J㫙#GW.ĴCA`!j;V-Q:,| }u)uK2";< uoM5;},J'q}ō(;1;?Ωvb^By^ג`ٸY6K<z'ȬV`!-:aygm'ȱDvUUmX(U͜Bie\縹9mO-Z`W' 8pw,b󩅳mLJ ݈kq%[i;?Hq DE&6.bU FmYW7K ߹H'm:M{XKrq1{'b.]6Syp.iQV`LB~J|UZ a۝tMv4\w&`Wki:)&n2 UcG.m]GN4̵P\54;Ow-fy՟SC{z$\ `Nˏ[;[jmLwwfirNvیNԸyVȴ*|⪏FD7 !r%{WXNZx9S$,B8{8Wy=BlSokDlO;ٟ (c DwC|,#oQ.u%]lmyo5rtb`#]/ZUK&T+Bk_ߵv`Zo'z?hj <}_Q }N>o"oWfk3㙶(++)yUqv*RXkli@JF,婟y)]]+1jA|C^r|W÷m&{盵eA~?!=.8808޾qU)^e~-HBB%U~AZ~ͥ!21=8:PfuAN6Wgj Cq`]Ety|^c~٩S/1P A+57S㩂B3}tN-Ŭ ) fh۹#"ƯcB(slGM z뛻zcoK{y qi4,(4Vr_bU/셵KO6D9vA>49\ l]{zN4EMc9!IA psu;mLOvUFU64h~:p1쾝Wz[&ޛlDsm!F,{W1O,g=BOuV$d&4& @ \QYP|kl" @ \8|#N'\\^u %Q @ & "F@GTդ A*"A p!@\o%\?LfCDGcJj{(E\fΕ sA @ A r:7A @ A @ \7)+`JȪg.]ph4A Cm]0' j` _.ZQ/z4 (=[p1sCPɛHp֑˰ &g;qt[j տ:Y~u BQېplZڋeK5@*>{d Tߘ6 4K EE|M@{ի-i @2,¬9 /EVnNNikK:*&N7g䋡~k{]E*%g,Md>=~A^fKhLK3Zs?T?#WKlW U b@stäJeALM论4T#J!u^h=Ȝ9 ]%?eËaP_p dZ]@"̻SAB+Ux h`s;Pw3NԻݻн8ӸVX;)O Q p vU ֥$&ɿQP$&gG_/=2uQt0GEo)xw׶t~w={n 31QbB| a(2 cw5~SaWMaqW}?N8]~/BT8fN~D90(i.&!ĥ [gVJ:p;zWC}TւXϧZB^f `9Yjo;v/ I7?y`FUTgѴ,W=8*g{2}e5u4+Қ_#uQŖּ\֒nπ Mxҟ0; :v?$T8zbDž3v\bdG=p_R%*N4%Fɥ^j =FY{kl_E1+'fhWVN"$p=rָrhsjc >;8fum ~`\ͬUf) 6/2]EtTVG|k--mΙu<-_u~DFmZɊUҁ=JG!&GߩjLAA鮪9jC`˘EP@lT"lJD\#u(>gCQS%xQsZ|S8V*Uf53K/\QRs(}sb<8/x!QϜKB$W3t]Ȳm1kw{ć^`2Ei-x}I;@%MDG!f{(+$Qôv)^©=6vS+>mO^8~xY1TԮj] #"ZD*f:@}g>r;0?\`X>p뫢竸f^kbZ/냥x܅$dSk(WAۨgDeQU^45'%Xz~-P!|s?Z5Oo}6{519[xo xВ~TN~u7@_m؊S Tc8chO,QhGɛ !t<ٹoŢ2yL~͇tQE_ 5P5||ZIDQ"OF#QEPZw8u7a%Xи 1,b^J4 +{oGq-V2}$Y%Y^$nWVI %l@xr$\ }HXb ƻ/^dȲ%ko3ZGҌfWHlMfFY2՟ORwS>SՉkrFp=i`sWYl*ύa*xm{.S z\]"k?cb>9vLA JI%`6G^b{y+ ZOӤPS41āpz e!:3=6kmTPXoYCF7W@h,L_%'od2ʢw| !{M:9=ב)DA7U<JG^^A0RGmF3v0OՄ|ezKy<~le5*Q JRoܐJV;Аw#$rHIē@X1^|@;kit2t:rOqIZ [n00ԕsn\kb6`+c ̀ C\U ;6+D4iPD R9X-.="8k8re[ގֹY)!8%(|ldOm2[{C4hTMM`}G8^ѭ7S$oDr$ L԰=/^D j_q]{ lF#\۪vȃI'%@.hR#B,j8v鷇l_dTbewUYZCm[Y;9C%D!2[hkp-JS3$OEhV$_jW9U󨮵rNnӿfSCλ/Հr%iL,kt{F}@Bu dKC{9 ˢX1JE Z I@Lc":$rLsMHzpqQfuȊ%?Ԓ&.#}{KHd|̗1ܚul^U}S$$M~+Uq @%$}ugo[.\ף5 #~x60UG r+<Cq9hld4KJ V|10ۻX O0ixcp-(M+A!log&`T-ot.V;GߵSz}Ƿkl:1>O fzq<_R_$F-L,22i&αwe0Aӭ6$[rz4~&#٤6qҦ_ɦ}ηI4yJ` .$4/~drJ^xnƸэE_$ˎ5*Ĉ,í=߹W|ŷ+{cGOeۙw+ϴlT! E$7Խ/캤Hƒj]h~ֆ>U! ΢ )ٛ`~$V|TզLjό m.SuV7nKu/ M]͍|,M>,u;6lF:v^yϥK>6都N+v!ȍ|cl`d>]cһȽx# AߞƳ;fA<$; /<\Fbdzr̃O ׬\Q!t0(< RV@-GAU 6wv;&d=W#yPْRg)␭o(&Np𳽚-9rj9!Np'7,-M G`kc} Q2WSU)2v+/v{u"{se6?&h{xTFZ;lz*%#\MڑX/M;,+-Z+Lͥe>:9QNΙ`҅^#PqWR5UJ)냔IC(9C?T_!Mws/u<76_ay`3 )F L2;\0*n f=ʿ\?(hd(Y!'|&&p G@ xMO^gJRt$:^*>.7}=-sH ;ȔA7C((N8$ )fj`#C4p_@%@ L:0Ui>%0ql’Pзbxω!'n,^zk&eJ(iDm4Rǔ*%@ | Ѕ_ƧN<3"pfj9LJ?wF8j{g8c$Ѕ3Q}u4ᘢ/1QZtJ(J(J(J`C3aQU)J(J(J( !y}'ճ&.MS|[iBJ5`8)^t.#-L.f=szg=՝$j;@>_/e3K@V6 Y4gB/>U~#)cqƛg i| 0(؛wa㔋62YIV\^ L߸NE4 D y~d)BP76gwP;b?=o,=|aP[5ٚ?g=U^:WgiPl+i`w4QTEji'K#_44u?(]By ڼ5mYVp8])}wg[Szzm 0[fݱ4$B%w~blMr~TSIm4+ IDATg rm"Y6- 7UdPRu&4kAX4clo@43{gQ/y{lRRa}Թ{=g xzS{=Prȉƥq'+͙&Cai\O,*o}ee.VHdnXքA', p4鹺ɐ41vwܑ"4Vv'D`}t`bX}0ɼfz7f߷$,N_t5:ڛ}⣶lKTIS"}mlsG4}xEUXz%p ;nmE!䶄ZN5M6yq{g A+3aSl{$ >`Hʐ(B! Zϟ/Tg큊d߻<=Ӄ!kXn(tpGD1='7yQ.HՕ4~qsyҝen\F[8So_qYcS[K!~^ꇒz?[b{oT7W0sd;nϊ>+~@~ֹ[+Q6Ī2fn],[w-)|YF;4@Ia9 ?kq71~znzkah'isf?8Ǝ[1|O_O'tjeV+/3EowAm$n|vhLaoGF gv]Qhu n&׈LV\2,`a0KArR_! mtr(`>ǝC0Gd'%e y;.N>r+>|2S# *|e+pޅpxz^#Q)y "wo F4x?/E=(o0qK_i4c}ϓ#F_owgcY3VG򑑗.$@gc/`짅X{ 7b|p]>gI܇#tĊi2$u0u{ٲPBUW4ٖHHg @n@ԡ̅(XLNJ=!_ 'r+z㝁\-I e!cC}O!ĥajh:碆BݭJj9 Y N P7mC8k..D#c,s~q~NyÐܜ_<2+3^^c5}GzNL'sdP[O$f1[׵l8Sztke~WAM&*J{'R%F\/P~KCrM> *mCX(ؔy/rXM 'M䭗=9;K!_z*$ڄ븱*-AԓS#@nu~Rw̸\![1/doвY^jSD$ɆI|a%EA9(xCoƾ3YFԇ+ I\%=_ŏkPH0.D[*-fb-߂ eO鸹?nW?)fFL J(Vf3-L{%sؚ2+^9ԟe .>Wɑ7!0'>9vpGeWoabJs} 狰n?c#<%L}1TH2l-d0uՊx vF4رP\9V l%A!9c|)&0M dSҒ|VXJL@P3-e*>:3 ԩ5n$Cuve>.,^eQ ARJ[|u1:֥.8N==~$ͅepeI$F P7ߣڔa;M3TIK DJ Όխ_^/UƬ]ua6"sOj2nAN$<~X*xqJpoi{#{0ڕܚ0d:iBBⴆ0Z24x_,+ʽ'Q&_OD<4ՏդF2;d jl_#rnI5 U\ϞK v-1 薋xF%Xp'9԰axrY;;!v{xUr)Q ǹ2rY)q\\8:L֑ p^|{( G$*/ǦBJdۜӉ";kئmU5r~*C-,[:JxQ6W&.{cP]]`v?(F,X"PA e/k3S)¾|K=#6IJ>|xwԻV|sĻ' D?qs,)WFKl/sk!P.w_a|]xVRj]0:J+NEpcI^*l8 ҳO)J`{oJHM-9 zPի r 3Y?kc~Neʼn5X~&0@Ja4x{UEPP&Qޡd2ʢCH^ӡNNAx/K ^sTb~9 *u޲ni4˘S{Ӆr5!_ٽC`͹ .(uSJS]n81qz$_ SD%vD[%H6!_>x)[Κuc 9M0?;q,zD=(W `&f2 09ol=UD+ qWjj+S ZqauQ{HmL}4?2j93k/<<3\bder]ɌJ7%J=:G6 FfXW"RF@Ъ$Ѓge#{j;U ؋&҈D(EP_R?F\  \M" $ VyygAs9hK{|x7ч0( LޮEװ4TDՅـɴt&lLsյy:|RJ0뜇څKvNsFH@e,gG(r r2ls3J^y8hKfpEFȶW<<kE Zݧl*;CH}Ɯ]~3uiVvŹχw%ذtO#AY ݍw.! rm@H=_vBn~֧.6qa78ܿZ2euoo2_Y58LV~p7r7b+Q_|DG)"!'0)_|9#nFYh!leOG$C*< ['lH|2;r<"<)/W y7cc ʜ)xIB4|UJ5ǻ^\T19V>߾&JY=j<>!log&`]O4zVu*NY'W9S1:}PH[ X4{}],'l`>7HwT&9;N+Ӑp?‚s4I]K.}TX,s$Dq뭱ZnڨhQNkm{ݧ|9~aC.Ԧ^(+;W]*=* CEJz[.޴|Ƭg{2s9^D!IUkUY[WEG{saw#Ee/X˧Ώ&?<dۙw+ϴlT! E$7Խ/캤HƒRG6􁨴0VIhpm7+>Hd%M;Ζێ]'I?;nJ+ 1_^tk nVvdvfxffTm}ԟ&eO~dO osTq2vLڽ-)u>>h;%}ag9m%0 9sVG=]y T:%0- PߙeJ >e9W0夙Q`7dixsbKZ3֗sEV |'5&{JȌ_k{~ՠ{'75Ga{KY"l~ :? 8Tf5z̗-'~܏ӾTAJ( ~ ^f`H4WVUqmjX=,J(1O"Tu}$WT(y "dD_>_>Ĕ%?:?;z'%@ P%@ Lͩ?YE!Q?_^TvnL#;EʿL;peA+}V@ P%@ \O..L8]I 6@fCPPD^ $j{;dӅPup7DcAݠ(J(J(J()-%@ P%@ P%@ P%peOA^={i4ȇ ';*/̌D(J`<h| P&+|}̶E6STz0'{_]OCCŠy sZ[I6 s:xA`Ȗ&·lzMuf&00jUַ -j0@jZw{16%C"Y!ܽ M|a'b$zXMg`NeQGۼs*MO͋0?Vdiuӽ:g_^ syyaZ/o!'cRtHɼ[.Ŵun,(1޳%9?#(q5A}ƪ)*hO2h}7 Oߧw)*[.oZ>bf(ݶZa-@H^Oã\z==x 6̎bLwToǼ]F=YbzO6{ot]`+i:;n\F[8So_q_6+/_bUO~(g%oMMuc "Xv{|V\Yt+ݲ45u_+2YṶeSu "˨~GS?ݼ |K״X.Nazn"촽'八"Ły<#7[}Hu]ĊJow)g+l?QǮD{ln話C! 9+(tr(`>ǝqWCJ[\ZTġ sD?`}RRr玾`yJ-GP@r;̗QτIr|ݪ@p-zpC@iw C;9 K%PNDr{mGy&uPJ fJ{e;3Ғ8,QuD-*s{~ m?>OʿOyz_FnI7ɑo~X6Qi9 }B߭Q|4Euk^9J,zp[XO7c=}-gHZt>]TgMfO d=د=^m7ٖH7n9ԛg}jFnNjc֮V5|g5*O\a̚]an䏲7$]3\*-t&ønG8K S35x!n`g 4(EJ UcvO[+ `U. (w)E4d/~ H|h+W/N -{od/F[Fg8, $$NkSvF&rwE׫&^F jR#anXvTxYʇ]C؄' -;_:w]UߟpςWIz[ jqI?eJ$n_{^NxL_sx{WGWtqвy#f{$96H 6`ޭ#C 􏃆goOz9湞D'y~w6ڀnxCu!NϡN?0[q9t$쑗^x|R-C+luLr)Q ǹ2rY)q\\Dm lsr"h#Y?(l-{(]M:X;wmFOF,AöyOJ|aij<kWhIA,[:Jx1ہk^@$=qEarB1)1mlu@$կp߶7u= ⷢsXLYWa"<#SXcgH- 90h~`ݼ[=@$-iA 9Tjh-:3=6kmTPJS,!Rzqث]H$ E e* U$ CH^ӡNNmAƳ[ DAQxB*7^rAP/P,cNv0OՄ|ezPNM _,:';CmJx)5bAnmq$9xeR|Ǖ:Aj)lm=SWuv1&K{f}+Zـ-0&L"[qU-@#v֕{!^ x\F U- @u2jPԭ7.Q[jaaNq3{NH 8 id9O:;8 Fq[+n5tmHb yۻJ%J=:ޘ|׏}g}$'H-UX<Gu:V@'T#^QMvsF3[ 2_ʵ&6quLNU{G&ξ;.*ɵ%*6w }$&97SZ l!nz*#=/aQbt ٳ/9iXZ޷-CCe$X wo(#ڌG}Ʉf8 sWbbTʨRGEZOJ7Q?;9BMiOU f<,.YO~ڱE[2+5D:CM$֊05ONUv 9)f^ 2/Ӭ(ekj s6JaWFckkC\CvzHM7O-]lV8_roO-o2RX׺āDƷ|ա$] Nƅ|ͤ#?ѷ`ѯX1H3fOt f:\F 䃞1QHN߶](}"G}ckLFgx ߂,cEqQN%c<Gn!iQeU&9;N+Ӑp?u'3= $5nz2^ %tį ,tT )KE 4WxX2%0> | c:BIg=741||ɗ(eeZ"` .}6F#M\N#i8|e]$-qh\v Wz<ɟ  '}HyJ"0<\up圙KyyEɃw9*IUkUY[WEG{saw#n,#nrcX!μ[yE`B A|L(."1.d%gDJO6t5ƥ7omQia>/"Z36|ٛh#⣒ݗ6>FfdMn;vϟZ$dq_+x(|}q\:Ky (iOPSְ4ǓRZ>H, qx AߞƳ;fA$Q<%pss.lwm? R4%q}2v;,93FЇ,GC{3NRSG 3Gl֯E/u6Y>'% k`s} B2#I*KO`{3f>)Gzv)đ=O L->/Zin%s,9<9wt'@6譔% J^@g/xa4n|e(uC>YNRW+H^w>TcF$1&Hep E,K P%@ PXCUcʷk7Wf"ߊwnGCnc hcsgf ɲ=ғ)H@ЅCKS$0 'Xz P @z/w)@LkG> uԝ}ݛOdeŹjǍ5q&ΐJ(A (J(J(J:0=Ղ(J(J(J0:`T<%@ P%@ P%@ P%0=x WwƼx=wVhifVkk^O>Jyu߾,;F#7:zaك/w@-t~[ yΉN3->%@ P%@ P%@ P @|X&[绪h$Kbm+4^Zv{NW(g?s=A P%@ P%@ P%@ P7y/d;U5h'|HuVuw~Qnv%@ P%@ P%@ P%@ L/( [~ӏ6|'η\a/~XMYcF;{dyA^@(J(J(JnrpekO.>v˃?x͢^?lA]kGM(J(J(JGе?>[80''Y*zsXbz(J(J(Jn*iOUc5`U ;.wo;wQBV߿/KD CS%@ P%@ P%@ P /p4ŝw*`:޻纜$RpynZk(5_>V_ŋ\nϣ}A3]% p@/ >G *D:!ų!'21IO˕Qy$v5-)t-#dł{':}%)ngU՜\柭(B y5\%6v8KCveWx$̥ 6tpd`xHYKK.)مOwS_eWfgq-Gb@| FAUG"|Dxʸ<eOus"U;)Օq;m82 rm鵀B ijE1:$ ٰjkW[$ NpE#bj _%Hp,@UA V 1X5ě'c' 0$ E:xċN$uuHx#]7"C:? 6x qq$j#gJcr [,X N_$|<=~I+ B ϼ|dIkTN?UbQ b?w b GY,+]ąOA l Q u G=:Q<5šd@UA V Bk GdX1X5`@UA V 1q g :`@r-(,<{r[^|봢@wy:x+F: bv,oBp*hwM ZXoO/>$W >X܊`1 `+zk$S61"B q 믋B W&- Y(h}ą{́kbT^ A}uۭ:i#T xN$jzA V 1X5 -;bj  Ur١ ߦv tPg3s;#ݣX:neXamN\?'bh>U bkKBݞ!O(@e vHi_~d"n`Xkb)>[1hc^'+w: Gn(TcS=ю0'RUs*ϴ;9/KK4WsA|Wǐ,֜-җPVqB_~u)OGz !ϳbKu۳ٗ*ڜTL-OexZode6 bb-R3MKEDCDㄓMk@*`u/a} :&B=yR[2X[t-@j֋an\^PkOblf>Z?]{3ߛ>鋄/IqIERD"&EQ!G¨*aI~*[81 eYVm_MvG׊4l/m)k_3SڢݿuQl:_kYO}V=Z1]!'0E„޳Gqw*q'Bt K ,O+Y; bKLux> A\EuDKnł깰<^?K7i\`_X?&T,xQ(I4"'G" $\bɿWTILuIڵ=Y]y{}1;tT]nՇ)UԾ\0V_]XmYO(Z k#`_ZVUFut߈1x! >bȉp=N RY-[Y[UFRH+\fzBևIb*彥{a3!܈C*4Vz{JiI~m}k~]`KP(E)@  A FJL wAĉp xv V b#1;FpL@`;(؝f36>}jE*r(H  GCK*Ӱ] pV+v9/K1[ G`evX!pa5 WN# b.@N>SrA,KelLR;jXi]߿_=2us?ۄty(O@@b%#j/Kc$BZf*e؊y-ZX hmj4B-sgk ]\-dBlk6v/CdK+Y N_$|<=~Iۋ8V`ebN&&s )[..vHgPN KV\pcv]mRh1 ]U[$-, VIN"f 1YrKJqR4QHaLp q-AQIq-mVևd*%KCk u  V 9bkOB N#$q(p*w$̸-ra>Ɨ15 Vm6u^@foVk'H[nun- n!Or`[@oRXAGѹA7sAg˕ʢ{yۮ==7B/y.N+C.W-5[3>Lj7mXQMmZEJ:#MklcB}RJ1 01` V[W1Bco/01X5`@UAGh=UږwER㇘@/&{' b.Gpr]2Q2r4  bU1/,0qV[l >{ ^,#beد8ٓ%UY@x16uɈ 6R?gOs+ng8͊oM띶Ԇ!<physmQS_Wu)OG>l1vꑁЧOFHzA t&>A#L"~BN)O+:~R؜a\|(&'6 1c`ł{':}%).OVdd'| b%B&n=VNɄ.\WB1љ,[QvBe[alۏ ūXmTښOmvvt5[,pm <9#kOb.#Z0 =+ĉ]*W$V? #7+jBxⰫZETZZ[7֯ў8^>(DY$״:mּG ^L9I=Q7w )?G?j 7>+>%OSߵF\%3cX E԰ ~fz,45mD'γj*UozjXI㳲zi{}#0Rl^?x 5+` bl ;`@UA V 1X5nu;MC t٭z[?&xXp4u-!)pe'8: L0N,3S15f'%-tKl%Z+mYD+C~Y(oefee Y ,S'0X :\] Alרd%;񘶂Ͼkf꠵V? K#q{':}%)n ';㫫sC \qW+j3$f+]+m^\ʹ_0vɺW3#v4#!-ۼj5L bZI=7tbus Wx} !),-yZL({`ǬW_{jzي6jHWDkD5qurBLjыSfϟ{fzbtiZ)tvz.+^!>HxQK(*Z >h55a ZALpH ``bj  vvXΡ-V,}v-[ 1rRj{ wpu?p\UHT3~QL+}|/L<1=u-ižZ]O^7[ÓZ!\NЪՕ!?.m`8aա OOSꗕyZ_<p@+^Ÿ$a\;ƙ`!(Ϲ鋄/Iq9^U\ZqS8*AĹ(#όYJ(1\סS"];c#X!f. 9Q'Ϝ &W-/Ģ(K_0Y!xܿHwY@v||i9C ~`b&8V,q0OҺHw)DK򞙞2B~u´Z^QTwms::całxvgCW:cyBZAOp0{OB V 1X5`@#鐍iI>Ћ[-˧yX[mᇛaK}WKtg?_4^/_Xޟ^lQ;9x)Za-_N0ijh춝n &{+YA튀tne~d?.$a|(ӓ0AU^#O.ķ3G NDQ]BU6Ša~/ 3Mobm8N B3/?2☈&f҅7K''y|L*OiLON\C̶x[.lSZ9].4%+\SLU0/@m(mH."V0]jޢmm9bҢ/<^"3^t5a,_?14\ҵ6d6!\rg.~'ʊO>t"KR\FfW'h2NnŊ' FAPͣdD`?.r+܏mBa@ /Ե]O͖})o3Viz5$*s[,M*;}eOٙ 鼼 W$N+tF$, wLKT8$b 4W}b(-b{--vڕpB7 na|Z{O}av\,t69Lzqf^{oHft[ڔ>7A a*8Liޟ'qا^ yL^oK+b0FE$ #K.^e_*r: l}O+q8yv}<10`-@/$ J1 F8e  ⣠R{$S˶=RhGv@aľG2Tvn { Agק'AzўqV@_Q'q2 Bb3/(?2☈DJθt^8@UNiLOFc. / q%?}eQY}1Z{rዃo}x{I7E!ĮNw%^oÐAā ^a#6qub#4 !q&a!3D,EKկ!]=y ;^^\{bMߵ.:sfR:/pڬXoO/>$eb:A ࢲ$D@0GF,*BcuȄ`@ Gip{\olB@fI/`Pڅ%aQ~y-_f D3+Y,I(* [  +W) ֵh%u_V?z u=w!|[ܿ|gʲovayIP E'g 'Z̤{߳>[Sx) &X`Ý8kq*I>̈T+Rqv 6/lJeȖłGu 5>Q'gDq?r==ݿvbp_^@A Ώd5yGq1X5`@UA H=.oCsd݂qww}h-N?w;4zyU>MX0PnIR١v+~Q|*m  NO˅[ܲU[9òqXG*ExVx#]7C_OW6ʋکWx=_|?urO۱+ԓrX{ذ|w?u>}@?g 7} O_fHBa eK $L* FID!8yygS(҄򢀍mDBAH(bQg $LtrgT"xjX!%O*mh)T|.dJyx~M IIv2:ɂlC5; '=Xwb,\bjT[17jϺBL:p}>AL<bB_+?7!>{/ևAEAl#X!&].PI}ԮW<_cӏO?WRX>1g?=Zw}Nw5Bxe­{b:-OTPsysn}#/% O_'jbV;G-PXŦs q }]ˮY?!!ȿ/B>2jCEtĄ27*+>$W1ALXQkӽs[pVl.["WA뵊5M炨{2ΕCq9|8Q # j3p2q@X}x۸'P!< K+_O-`@`8sAt?hwE L/Cuzs)MצO-y9Zϟ^,}zy~z?~gG\)G%w0,wyE^ĸe'ő5Z9Z؞1a`1^X:Y"ffٟ >gw/ f"D.LWC  ٮ sV w(&^3wkYݱA|z} "fW^%# |ܝ ޘBdxtuyЭޔRx|)+o*W_)Q1[ 'ҙЍC ke{8YJ^^tXs NSfgB/SҨaT7/Cz)#447'œﻖW}L7/-ݓZRl[ޗ8/`qkZE s4[k`)+QGse׳y95GvEfgxׯL9r}J?N&s.9lКAn&E4_+ϥ-p8g4YS@ mky#vS/4G15n>uؑny_R|/uVdl9w6"Q,=WJ7 -IY'`k&]2q;oK2]ȓhM*@yP%Ty21uؑny_Rd_PKZZa.O-A<>x~ݣW%^^VbWY}Sw4:~xQffyH.^Kbc<ͤjs0/ʫ:.gSdTQVnwiK^/ىsN/i8d_(ŭO](ur,9}#Usq+nz;{ߔ¾2q79y3N\#r] w0*RAP]!GF6ĵ1ǼZ1E9 oM`pNza؏ U} běq3ugěA Qˎ|^;5hM _uޣ« X}f>_ci}z#{`va.5 0&-m!a2A҄ J:^c>U^ CO-ϋG91%JN mOO7T.-[YthNy's4Ri>Q//1_ =書=[xEٗo/tP5Al&J"9K_W Z!é|caq&T@ O~z<#Jv۲< i>H1A}Ֆ U'7=4yĊknTWyOr]imkRײ8}/GYTK`;ʷ$>Z,'- B4O.}łExG&d'H;!5#H' T50?upxjcA져=6\Lׅ%rKkbv bp,&dIE7Uq<l"fˈy޼)Ӵ߯ ;K-i_|vLuvHk@vZh?Cޗݵa*yh>r6;;Qt-ChmI8يXt"##UAL8}FbTd6Vq1N~etbwe²IЊM>Otixn2J&Gj¡L2$]aεok"cP_]\1ݼ 14rF=j[w5j{\)=Iٴ_D`aA|M_P.* A A +lu5JqX;+@A V 13ffڀ 9G=Cۖ 0ߞݞi?.ڬ<ڮj[Ia? ܗ5\QNK朝};XЉxHI?6ku~y/_`R-c F9 v? 1?9=}Uh)Ab8;]Ď4Z=>A ?8$S;AN Zvl3N+n~az^_6IuՇ;ϝ>'مHfpGGt*'S|xqJ$ڜ_ CVV ?A, I<_\^~{4_gc˖VRoO +YM/3M,,=ڞbg'ܱSb&ێ<8r$/kxeXMlٗo/5Al&J.ot D"^l2 zCbq2.7WD&4 ޥ+pYCco/y5/R57WF.RKmK֞}`y[9?>ڽmgh2|Q^`oﭞgA]2砲UYKEVc^zɅXOX:-,k9ɗBAiP֖/h㛿Ƚ@bbcG6o1+u!~Im\Ě%}+X|@\2![)|>7i1e/D-a(Yiwb~ AhOꃉhFgdk!_cT#&sWc+Xɮ7BEyhm''iK֞.,aWMj]yXmg'=,Fzo ي vww @w"HnHDhUNt.9٦ͽꁕbpؕ֘X8nܘn^DI69,DXi#U(<5t$vŠ+3[-%򨜚h2X0_ eKA=6ī۶P,s֞4mOTߐ &2 Q28vJl 11'1bA 1X9`@UA|-ny{|{}C?:oحmvfG^V N'm+P&bI:$fa68\#H@=q❒Eܿ!NJW јqeu{]_5NaE2 eXѽn8hC>#ĵbW01}:Њ q b136V?{8~'L0(@AA2,=DDN Ztls89ǩ#&nUN߱' YǶyYfb}tem B3_=_v\Z{Ѵg-mia"A8/z30nq6w7#^%%c9%Ȏ |@xhViD(jM=aZI銬^mৡQ٫i騵w;4^O RZX+#felg_/&rΊaÝ'&LqRDL zPq_,SO+'/[j c'P_)@S T/V/8Y?הG}wW-c2=4k/u"鈐W2☥Z[!/Œ-,s,5Al&J"9K_W Z!é|52.#wp2No7- bA%a'3nL͡S؜g4N6}1 65됇c0vPu6ʼn2hKe+(o] Wg[oE_+Q9WW7i1e/el:_k ʷ2#R{,~[_W߭+]XĠ O@`c't;źƏYu?:{rDzɁ'.^K])&bD$ؤWEz6a6kZx7' }ɥ':"At^xup=}]Bt Vw}6sۗ=z}!ԁ^N3c>]8{\D0oVT3Yi1w3_|<O;=U#fy]s !m%OgJ7۴V':`F?3]3.J+K̳/^> O, ܀:>@o䌒*̊q pKN;_ʫ' rAX>neAlp&H qHC,8X!W2Al&JRۨ2[+b`ݏ7̯捽wO}hM隡6wX1}# 51m]JN{DpX vz$}3*qD~ ڂv x!og*tLDvBeur܃cD_}ܱF[.6CIe8q'o 1D_{;#c!a3U bt:٭u0*8A; e؞dWN Ztk}j\8Ɇfs>` «(yG0:4M8]Ԡq;.ƭŝ&:=Y]t vZ<|=Bl\.]1:,ӓj6Wx=u?*q~S ^LXV7wָR\yGWg!1QR~[ܦyjhy:Qpt]x_ +Ġ8Y[1D.ҶBҐ=f$[H::۟ K AZ!~<\LjOs@ tjN:s=# DJWw [>]"ZTV-QA0i |ru~hAlϭ 6O]8uWnL7/ᏚM oܱhbI݊lgFKV|Z D^|~fDxu㶃[ߚ޸W/x fX rAjuO:#F^N0}ꗈЪ &zF_&xKhݏ w߽𕉁;a9+dH.\1p4@! bj 9 䔺T-s^l*=[מECFnI_5.OW0oyo^T[L:mA{kos]vKALw >F &ڼ99 NonzH18.+>8b8 ?$ >F ػ ~].Εq-:՟(e䎊c&FʋέzIGjv@e-G NJI,ﻩ vzZwi c=_b'ߢHG5?M-U?ߢV]g>Z9ZIgXiٗow:(LwM\gα|uu"@%yyܦ:HY'&8-y{=4NZ)>0c _ (&X1̅N: Z呝^5G +Ņ?rSX8CX2.>$$Nc+TAp ԟH~7lW*juEyZ{~'Ld:ػ xgX#vPa;ţ,&]JӱAy`RӵrAl2iKۥ(#螚-W1)t u-0]m^sW܊+}6]=uXZ\fyx..A|>ɻgEpaK.AAkR;z+:_})]ܿdYm] JŲ||(ў`Ka-G'XrAΪ-zczmWB| C #:pG(OjƠ04 ?{2 Z-tq18ʴRP:O}NjH㔞V|(_M]"In]ӵ5A\Bq!Uhx"I%?~L(R$y3%~T?/K/P(bwD.S%oܫrkG'VqMM$gt|oyg3\y.(ԩlVYmx-I߬CQ:Q8V$zѠsaK=J[Ԟ#YaH, =fWv=nG°"`GTW2-/Jr!A p&sOՄ<Ɋ ޾}$]k_R|P-)yf <=MNO= GX8 S+7$N~ oIH!qy^<=!țFh@ 6p":XgV$;ޜɯduX vu[/v:n5x Djȷ]{mALXQ2鮆tNXְ .m|V ytF_-ﻳ`sXC~M?mTUC8gI}{@)g{~HsVpR} qs(֨}IYA Nb*ApLp @UA V 1X5~鏷pYo18-^}0o8 ߂,aݾ+9oCZ.wyH`G~= {c7;"S}OdͽkEHTۯVo(]mv 倂N T7`gm"d}C+CxxtbtrȄN Zv+ 8CҒ=~JLrK[En6Kǯx^lg$-ק)ntmYB y ږȺko~Rn>r=0̮'مS)z5.YmgMO?y9B 1( BN9hT>X W7sVV_߭sg\i[@:fw rP!#q8^Nt\+1WqxCa;g1t7٨Ctsf<]-pf_{qx}"[Y O[a8i\X8$/p\lᕉnQ7vGSڷ$LYgYq jvja8KWm39wM~ ΅G̥;M@M2\>]"T܎x- /s._~Ϸ~aAY}a24%_S^|dK,bNL8Y48'b@yszHۧ)*eOcZٷB*f^ &*mm N$d@s$"* 'ZCHlw~ bl^J2,+7F&F$~[tUaXK^VÊb湛!cC4Hny 삓\!=`$jW&M  8 }  bj+8zV+0&o{h&۟F8>-Ms0n*U<8G=V>6IAāmmRKr A?'ALo{E#+ćXA;u` bZzUԑ '*˥# ?@A'wjaZ>B.KK4[04[#+CfU>7ZoB؈z_._1ͺW,HB&1SbOPzߕame?rrc55arys0ArX/v48)?85&;0,Y()#" L9xy&H9OΣjO}V}Fy&}Rc4,+Neӵo8lxMJ_chR2>4t].ΈOm$c}7hڴd/jUljj W8oNb7wޖxe.@v,$9Xa@rj7Lޚ`q:jvz<;;e|*}BZ´ 5*-;!Vmq,/o=5)}~}ں=˘ ͺdj#q}7M|W@v􉎾+#SY@+W k٩pDC gkt|'N*w\٠ĜuN|\6`<-Yu}|\ס5<N=0=W&[O(]jtc*<bX9i#%<=zl_ {ޜ^0'(OʸtryJ? P%erysA,8>\dɋo^t$s1Ln7/Rs4!fL^#"7Cxj^γʩ'ǿC|㖨}`c̮ic9k<ۓǯ_߽alBEm& }F}rF6X {}F0t i<@ӻ5Q~[SC С 6F0MҥFH{ÿB.{0/J478,n8&1E7he2_/T ir Av{ǞVt6BM?4j1=_X[6IŠbNW ,~ebiMXJmHkj}~(}P_`i88 Pg_fA Rrv0Ajgp,q|Ҵv2&dSHb<ꏣfȖDDeRy8vVGmRG?Ks!ƴV%sN|Tcg+>9 &紇4eu lk.9K̍1#"89*3G銰Nq23v+Ux^Ö-,P*.#-:YQl@E+>|G/}Wz` [oL-t]!^A|t"k|rG& vN9,:%Q\ 3W7vG?n[EHxx+}q yoZ V>9 d rV'D$ hLLSxmvrUDy2[<"p9X4K0gB?vabG5}On >~-LCJW XG 9'RC_k}_}1_>ý\df΁*|<-`߻,Y 7srrHq$gl i[ðt.Wn~C쪟iarژb$MĖU3$9%yb >9 >h]C c + `@UA V ߞc!h 2o]A) `>k_w|+,l}Y6G[+[l- XѮ,{r.ơ-b >ZT}VQ9KM5WKpLcx*18-6<Xq#C;8A'?n۸'9чV:@N$1baĩcD0;['S,wr{V̒q'qVxC)S\hfOjGZ$L˳k^?W3M,tBsy^' _>礂ݣVC|ާz$?S:fI +Ó9w{2R:Ͼ|Aى;N3]s5-O ʋ9˼Q㚝 /] f&,GynN((Xxh~ߍ yx>1My~ŭLZyg9m]k2{fALxd!f#F4jD󼄼6¤P`hM8C<]ks93jcZThs5O)O#Z[3t- L?˜~kڭj_͖pmy yWmѵ– qpAO#~靷%^ g4B΂{.GT g8*OGsBarR^: ϝqͻof߯}pkh!>|L~iXTmflaXo~iW=s]s"~~IkV%H C}A-Y-y| ‹׼ yQҡ beL\I!C~4aI^I qcܛ>85t2oWCuLS1m<C'ja J#f[l ʰs~ٹY:DoYާ$Z}Ϋ!hc-̕| 9Y!U)MlM7/܀uN_7^tgx>kyX{AlV8u.LTfZX~վK(6sp sbO@  bj 9sA%rjVj66,ͻo2M:+rj䴊"g-)KV-/8"($Biy7ʕ‘~! 2A_E]'Vj C̿$PXj/] kJ=$?3[.{_/;8164d6cc% t8os A<ÝRAo=AL8aQy5g1iyݲ0̙-6?R'X 1u,Ωn-Wnza>-6eb/qz H'LdHg%)_r?eJpO7ܫz_9jT`ڿn0sGfGdžol/ oysb PD3]` HV&qV,bj  fłxeeV9c-)nkyɷ{Ky\}az^`a7^5`(sT @p_] ⥶O$8r?(݉;QE7#߽69}w)}ezV)ँ ޣإ ތ *{DcP&No~k[p a91AN =BBB+>O1)S1-4hG?z vBE-IxAlnJda/D2v2%ڛڟgoVVs1};5~; OZ4n-_A"뮽G/Wn|^}ۗ4Gt2Z5f\< jWL?@O5L~rn=n3~񥁮sϧjId>&?IRW9|9$W}vf0A4Y lǓA&z 1)롩KXM]d Ϝu)̥Ei>-ZGɗH})/+ĵר߶!Qįq b.f3Q01]: N响ej=?=tm+?K.DݷZaǺDîJ ~B chᗪ~~ {~2yzWA`J!A>[VxSvF|>ƎtlZIm-b\gE u[:Pޓg݉oHP;O/lס6F@L?Bb L߸Ve-Al“~rX!yym'>bAl"< Q s̀ &n|lK|3<3A!M?S|j˻D_O(m8ޘy[_$88@#"ݏ h B—q&IgB.[nE\0`{mѨ9&I!o ~b/ FMoXw[+ě q%5K bq2("45)]-Ovߨmᗪe+m8 ACΪ|;Dq^P l=".DN&+X)7=NFì ˜oiFVd.sI {$;d &+ vEHۺJ{O&{l_x׈+6P{L O-#8^ Ywi&5?65'L:uSY  '&N:WnL73J EG_B1< Vu@`}<8Jm mmbv" .[4jΰ$8;kd=.ܕ{̓DbYGm|]ySG+^-LDQ"['?[9ZĄ!g$;K1}Nisz`X]'4Ek5Z|iy~P|'B N GLڠP?'m׾M Q2yS~9lbʎ_XXQ~ ?b6 `@U&@UA VM3[[9ҭ2ɏ96fZYT?pvUR%_p~mKAV Dl}Bw;H#MZؾ8i nN X]}NsE2kx9$=Ay @:TPp؝Wo~>!$5E '44 Zv]nONӅثp\Xl?߾GŰ ^:n}7kVL b7LYA|SJy8~a ޤi%tmv uguE69wby {BxNYd>̧,֮x=.,=Guq+Ͼ|AIq2LJRX*vB\ mO|n x2v_/Ka|ŠaާM?}we{ۇo]˫#n= t1} dp.ﻁ b6AGSuz"KPdc?k$1jj `Y *M Ʉh{Q)8 D߸m]y!6~w"My6E6>\8JN7-'3ĩ~?>x飯f 6KI?v9Ǽ<~6͓ kg 6xJ9 A|;oK2]x1'3Q7q ('V>`D Y(ǭwSm bcO75f+jy8t=7WwCq^vϘ>[sNm\Ě%}aX]&rVݏ^/I?~䓋sɤa4ٵnBO'þ0 ^W&v_N WjDo֯$,V7[Je9=+>jj [婎e;+}7P{L O-#8^` v?p;pܘn 1y\L^nWŪ&0!4,.qdElG Xݓ0<clT/N$d@s$"* 'ZCHlw~ bl^J1X3` 6bbล/0o}q{Dmx >[ OvvRݚʸ]>. 8f  bj%2srضo.Pp[ݞnُB}Y!l3=݉m6ZwcvO 4H?SB7hv P mFY!)ݩR7; Q!6gX[1ExwTo[BjXF,V0 *bXU])wC2(7}-(ݧ'?]ASyUb W\M2#ۡUbQL3/jv+(.M"K37 ضɮ'ղg7=HҴL}_A 1ALBv 3=O_l\&@V h[W$QD"IL E_LKmѳjv6B3Mcroj/ٓ[y<),_^]Nف vbK&|zEGAHh"H b'eXpzHI)ߝ b'⊥e(_R◁mmZ$5;{4mP\Sr^zX 2&xxzXEX[ĂPPV 7фEaT 2kmHyEɳ~ /=..+{x >Qp+1]LEbAgS[؋TT2%B Y&0JWCAޚ>Vag [R<ʼn`#1;%3\ `@UA V 1X17![g%IENDB`emacs-which-key-3.1.0/img/which-key-minibuffer.png0000644000175000017500000006555613225014216021636 0ustar dogslegdogslegPNG  IHDRNcJsRGBgAMA a pHYsodkIDATx^fu\r8gp|2Xlg2dԖ:4ƝfD8tc -MQ`lј$"ˆs |\I2SUŇm]կ~u?}|}O<<פؿ>gSsOo=3_ϱzv T&H#YyI:~&].\ |ȮDLj[= ѕ柶jyRkyjmݠZF{6WqV/Z?(DY$״:m#`@ 7)xg12X7w(?gKUn +d}:#Tw}KRKOOJng"  b ˳lDEDZ9F[kgWұW/j?lQŰgeH}]# 00N)΋sp@ {vV alV0`'H`@ 1 V :7JCrV&wn{^V ^7MǪp~@:kza~Id-eEb8 -ípNqiݒG :ON,Gȶ,'p]yByPm֨_VfOv˺",1u.2 "83]Uʯ&xʟKvi+s+o1;VʹQX8 '(>?~kRNg` wU ]&sAe*\lt,/yji34\싕.%7gG# A,Bز@r렶Y~X4.X`~;[h-CVw90-yl`zLB߻y[|z𥧦VWCp$!5BR^2[N]O1zeOvkyp?":[]yߦGB~krq?׎YV:hǭt) 8A1G?_Dv+sahe OE_kQ 炐<3f+]+ˣ0^sA^NNt~ԎRU?&1"nvDMaCO9 Fbl,D[b=]\oİ%},Šdg?BQaH wY@v||ig9C1 ~ P@ {Pd;9n)vXpg"N4<*ﯧ2B~QF(Wԁ<֟p. XE$TQ4<bXP@ w@;qH:'0(`H}p(V#ȁb_~nz6t_ ~r[(gz<==YՇ~)1PM?LWó]sqO/JaLo-oOqR;sv pK~bD֓[^f/CY0vΡvPڨ&{ʳb ҆9A?Vxq'0vcil*2I& kb]?7= 7r1|ioT9z;Du1/l.¼/ 3Moam8~ [h{ 5˜fb҅7K'eL*OiLOE̶pK[.lSZ9].2%+\Sa*H 6$mSwK;6^RвuH CDO=JY!aߏNI 4Kİ\͖vvMZ3>ϵkt}H|6uEhmdm[G=趴K, GDw&aՋߟ.Ƹ<,ݍ%+ӕB\#`]܆̦ Aۅ; Xxy‡IqA4Ł<h*_b"Ba6",m աH.R=Tޜ.S.2K)_s40ٳſT/,m+ŋP7vvMP?ӹx?hKl 3E]XFZiߧW@2< agfk , ,AA MaM!n.rʃfN;[\ e_[Dd2)H1eh{nҰAXbc>&@b8ÔgфbxYܪڅp A͋.(SI\ZEE$RQΊ Y.fK]d1 I]g61~HElE=?."W菢mBacc `ۄcڮfKձ+clDd.^1 \@tq0 "SNivf":/oÝ|3bE!L ygDni 'BDhxqf1ªOe6z`E.BN4Y2'ዹ<ҎbߥHaYyz"śmiSw4pg;Gls\?3y{z> boߟ^y%Y3yDF@-18C Az GK.r,T9 l}O;qw8yvc<00`@ 7HD$nv HaZ jb ^/5ɾk^mp z qtİA6&F{ {1¾sӓ ! C~Uўp^׭*}IF8=@ ˁnABg'^Lc"lh;y$T91y)J3n}vљG6|aEbӏ~ N&eb=.Ab{1$D<0GF !euD`@AR_6۳gCBؠ2<2vayIx_d l813"Y[ɰ&4l@,V W) ֵhՏa|_{]k]a<>c3e#7J$(ۙ'YSl3NJJ8p@ ,RH6$. RPi‡ AVرBS,zS*y\[mD oR?⛼n=m_m*;].:I<]hSn3ݼlN &PG_Ý0kq*ID>S+Rcb8OL;$ Kq6% `iyd˰&Q]XMwkL|3AlϤKOOoecfQ;08/. ʁOE^9h31 &s8e jbaEݳv98w%;l=>=ޖm&S]ɾwohعwmr4uR'bpK"=8ħ1IO EGײU1òT׋~:w t݈|=]x&߽NS+/j^^L{xluywCCV$PB$%2 #n$l HN?KJ']VX| kTm">I4wU:x;B=.w qS K;qbӏ~ N&͐D !ɖ >HT3!*B$qT*RQ Eۄ A1< HzlT IXl)잯y6~2𘄅\4pE ]?)LÁ zD&ŭ&R;U* J=BR^"N!;1l'&6H$n}ƇpD԰"2J.T(x6S޻\L`)6abLj'A8.mOBQԡWHdgdm]&XİljNq3޻0Fܿ&sZ#X:FHih6咀i>=PwB,\BjBn/Ϸ՞u;=$*u}by<(g'T~%8? jp !uaZ jbyʾx:YSs+|B 70ޗX1+$j!_5=n۩!HG өjKjzS:UINr5Ih8ɍJޖngcکhJݳ2tpv}~] $ ǰSKamr pY*ΖF'bm Mp~#u8-NP }O<<פ3pEVvccmYڒ,ׁB;ѕ%bXΰ*Eb83a^"Nu`Kp g.?tAL祧R9k)u`bRwy>m'0_} qMi~fpaf'Ĕ+ŧT^a׭RKOOop-+X>uJq 1|R@ lՈx+ 1 V 0X-L<̂8Q}?س6.^ c6;܏#7?9Q1W=qA>őB-#}=\a'(dqUxtfÛpڜNχ=\$1v$!F0>Kj,:lem ÚT.g';Qha!ݐVXc4xs[`K[Cc]vI(nkLO\Ħ$٢dwcByEf1XoW[$Ϭc8^N1xM -Z`fQIRlFA8֪-Rag~7,Dꃢ\}1ha[D[~B l9xy‡Iqk80? \g BA- U1-:e袈!ZE^?9|Jm]3,#53ytcO?PKnm18Nt) s:% VmPkpQ*Y >!AчK1׷"?%(o+82NP ׉'(l^nLт:anR3tfd"rmc1TlLl()7EicР[*$_.=Mػqzbe o NOg'F̅y'BŰpb!@%-dg.6ka`;i{|'w>raE5x< UƠRnZ&C祧|,CSZX5/%8 a`;=8UNN [BaR jb {T~"1 P#bXN;ǀ(&m'_਀bS緿5tQ|{zY)lsw1}N+Ste-=lz/ qbO|bħ)!^0Monfa7't;4~iogo$/{ڽ=:0bxL W}8&1`8ӿ}]e~`>Ko'˿6;ay\ 7|`1 a/6!DV_񚂕>9 *'811Ɖ8B7?8bG>5_cS>_r)0ߚ.>Ax~ucniybؕ?ׇˋMscy-1|n0~:A;_bV@h[á O{My8(&n&Ecu[n˿6Gg*PiO ůN'/82}1;ߕƠVBPMă I/O= ,_/R5DmإۏmWQ Wvc+]\7jom&&555"eC1]< #~M a7q"76nm(p,.Ä7<ߘ.6%1lHoq,Ho«4pl.>g^p͌ y8ITJ;ÖhwF1#aB!u0,G$|ez쑇 3KG%{L ڨ /!ٺj4/Ä!۟fXwނe\ /D*l^G)69V 6 p3X} Ç3b1/V=3HW&C g8I aZD1ObaZ wsӽ?)l9~{ztM=Tu1,2]-y9Zg~|c,PIq׿yaz]o~i®pl K=}Wg\ 6XL7Y7yE7Ÿbe'őkZkha{,<'uxLи+w$k֟}ez RاWoc[ [!|of.L睗C ٮs *_'Nh7n7NoOϋ(m!oL׿toaN8ޣ+,*ݐ/nLL;W"G/ v3"ҙujv&D0%&AuOw? 0G|rӸ.<)Zyuxqlgxos U?1>/_&=ǯIwTn&i\ t#C"\[;b8O6p o"@swy-wDs*xP+EEY8"EM[\r3 )94Ϫ--E/1^E8OjB| -*GÍIT炧͹Y(8ɱn֝ᙾZ,E'-3]4O.}a1l< 1]û]]>&qƫK4]9u 7 c bc}j~g|.ɋa7OnmgÚ%a ap$tqWya"$p] 9( E* B/:^IbX'B@{fZ[btp}3G"@bp56wT UlC2$+$h/k`3M A>&`͍ߨa4 jbaZv <y=>dGIs58{Xu_b=nzL_]v 1L"ם86 W'.eJ>knv a:u(7|N/? s15#; nBV`)b◭pb^/ o^ /4q,2So΋SN 81hNyO,aڥ=% R3PpKx!u1LKܢrIʣ1_g[?4 |:OzPz2Nc:q<&8y˿Y0ogIjŘ8t"ZM Wh?Ð<&Aq&~.i~ݖﹳX ]ة鉁ic)=rNa;WԾu+ (YMꞆY⼠|N7nMוzP,xL"9ᇎnniGi51̅l&H.Ǥt#C"\GƴPdc?%[DvgFu c\c;]3J/tpOy%1I/C.?^&iD;Ν wǮy~)F\ַ/4ʋ"8!^>x>56{,/tF8M(rK kBX([& ѱ1WRÍtm*O~Y=s'K (v)˜ܸJE_--)_[<3إ#A*/%BL@ַjyU1ØuY^$̳p6EZ A>& pgP~낾梼0bV=FnzOPg6$;vBx@ 1 V 0X-`@ #49Gc{5ýj'jS}u!*/)\v%`ϝ_Ov}p`r'Sؽ4y0k,s\St dpc7ct^ߋ/wXqakbH^_\q@ sbx?=e~:] Ofx}U{naܧ;N1+'\apx@ İ;\d(f6W=g'΅p tw;U.^OIJ KƑX&[{\lGBM wjJ:^c>=U^ O-ϋ'9@%(nR^AxKI4TOj-f],ãcm,m B+vjՠrNqTl,qL[p[gZ0 6~AA\\f4HfJ>A=$u8f O6p,l3?oݢ]BE#?֥vޝڲ< i>H|B-A$D'7=2y]fvm# 9E{1Qvv2H-X6I}p fgx9e 4KI?l8 Ǽ<~6͓jgX OD ]lY3laH'S5i_ԋ:Y& ZuHGӤGwL^ʧONjҲ':vcCXZw,#KEbZiE|˶P6N(lIr<:8oOd[n[ _/M%rK kBX([& 3"[Zk $2 *bN] uؒl  ;wM~Q7ة.PV079R_DvIEf/< [X%]^V`c-Q] eUsLİO6Kpp%1/a\Å粅4KoiUp)Ol`zilW Y-5Bü `Oka^>˧ vQ5DvжSHgs6{\,+=@ o3fy͌ỳ/_+'(S[I;K7Ur NaNB^nd=$g6_O2O^B$jNR=42z3.=$biG].\7Y0oy6G6l_/Εt%s9%Ȏ "|@|hJ8[Isy<:\ؙ&&ѺJqj,6J[3',q,QYV|Dmz0Ë̳Wo; '9+y_]$?g(&zp6l+ס op6z2:b{%[+P>>aJa br+蟷R-oJP;Fw2=2k/ƵuRg(uڳk mNI`v]͔~yOCvØŰ0gُ.xuzuB&L!3u>P}&;[tmlJ ֵٚf UaFl9m4o|1ǣ!1+C >w{LC%KjYN|赥@iϮy$N/ǮfJ8إt|gP{W|<uoz_<8VNP G!T1Бee:.<'M$ݵWlef&kcwM*wU*MMVf$]pb"M[X-Y{PhvuGsEޚ{/|D@+ Av]wGr(no;ڸnχ-Z{0}Im ;حuM|֞a 4D?G\JOJtQyp~%ha &?)^1RX C9IMfטbԐ8{qrj KIUg ۄک^4^Nm>Hha'Y8(^3:drp^b-zx~EoKƄG+bcH'`}˕ǠgHq]]ڳ=޶bSmF{F|rγa81xLl9ܙUlLboo+`@  pJ@ 1 V 0X-N7mZ@+<@?9W,_;; ^a/|XGO7|{ 8NNN ' pgMӌڥkI)l֯N;-8 w c:ln:C աC 鶴5h:qm>9fxg{ CfS#e?qcÃ6p]:9#; (䶩!z y/(MGɂDi}avPJ#?}HN|OGd1N#ZwBd[>t43MF!/{?o9""5e sq{EŵG smغّ< ccVwi\6qxx5Vz:ڜE3> LHqv=8, g8 1_7=994`<3r.ͳhrgiuͯ(m|J`xgx{Vrs2>w 0Gwؗ8nJl۲o-3P_vWڅSjZ0m paŏk8vy|9]abdA) N?,.sV-΢SAHսcqpM18[3vc9#o1ITDt<ͷGҗ ս~E~ j)v]<^x5ACXYazF8>kho:w^~p`hA2Ez9u̻"&SHMbgVN;rp¼t+28o/\_EvEBoZ}|1o4N+S[=Np^.[$_a]sZuOj_.*}?Ku*Q꘨@h!;"(Rlp(8[ N;E|VЖӹ" 1 V 0X-`@ 1 }~VoLc ӫbpe;\o~i®} N6^=3a#ao-pd2e{ÈY9̊}a'_~Bv|ez RاWoIQ,Kp 1CvypvG vz_޿a8—ygİ=.d5z; h([G)H$sȁ} !~A!'NO Jl$ )t$Iyk!!) W%AoϤ"tT g^a9Ku#V8}fgOiz׮=~z"6f5gɩ[4V3M:qtzksX˜ 5?eHGs<5<[+ ua n8fvۀ$(D_ķ3Ґ=[Aܘ0;h B?KmvJl ~4݌1v.Պo;@s ha 0<]\Z% 1 M* ao:`A$,ǎa<*ivbXKW >L`'4E 1nc} Ɗpz=}-W7^xi, LA &kb_vm7ʳ'1 vL*$fZ7$$m1܆ !~N; iICB4ZvXuϽn. _X4ꐣee\, !\IH>$Q8?ĸ=`,IPHI|mEp*HD!A,{lKAes{kɧKD>%i u?,c/ޞ>X3@c]b[qR~܏nN W׌$ F\XjBI׍lgF#;y%=yہaƗW/-|׋6wrbNژ~az/IWLDZIq?*TC?Ea2$zH a} 0X-`@ 1 V*&ϝ:h;ľkX|.Wܞ-kOpWGWS.^ J;Wi:I8&ϦG-_#u- NJ`}|F?c&ս6spzbף V׿MpvTw8%V&#d/סY omԹC@"XQ:,9=1\cܗo&@vl(G5I*1|M.QӀ'Ņ[(q4A849%EjMOv<;T nmOkաGQ + s{w{d[/NgZfC%,z/,\|T-vݓ Q1y2zD.8.]TpJ{avwz'byyݏ֚C*A!G^{|YVnG_~tsYMkaexVªİݺ-gtN4oI{Gʓś:A9D厩U 熻SmIlgɯ94tWutBq1l:M[0.E l U:F6mV]vo:ȅY׶Zy/B|;*C-]):oڦyf.Bm⸟לOGwy<Qm }\<6u^N6ѵJ*@gj[_/M"AUZ|:YPްg4 ?{!s`]uH @ޞGUjJIIABc[pݶnCyn*wxİ&tbxu?û\s߹k>d;<]nW +|w%4A6HaZ|1|ta.~9[VpB92/M$D#pp0lBsQXȗai˫Y 3[YJWk<ΗkF@ܞnnD 0G!`0F:DkVC1hWږGvzAK(-.Maa<+מ$}rgyHU{\8,UV(npZΡ<v6v!|Xf<]-pf8Akev3}"5uWZ\fyp.-A |>ɳgpaK.A_x1kN3x%><No:Ke!~Dr8Adr+ Iy\99f;kax6w?L T@3-1xF']1LvbFt 1YN1xQ1\ɋAQݲ"sNŋ/y܁9$ҕCX9Yjvjamf/j7;~?oG"^|LK^cp&y>WU ~qV}ubcaa9x{5šu*|Wِn# ơ݋;Ű:*I ^/f^%*mme3={Dbɼ`cx`&UCjWÄ! bHqe-åo>؈Ϻ|LbCbP|ucb(E- G0baZ jYW,8uf_]÷x1Xs{ۮs_u@/1a`yӅkxW{OP b@ M H@az VKXcC9-\w'8]Y3tv~@  ô˴wȑcr2ȣχaOus8d\R!,95("NӦyv;L[.^ku̳)''bx|:4|']{Ou||3idv=.,Oc ==q>V9VX_7uZwUҞ~pr0gubko:gvNc) {vT|L 8K&`g'qdK~s:]\u;;'Ӟ`HaAB6As)a1'1PޅLr5'lwTF+TC.S0abxg{w C '2س<"4vmNp:3TCr 5;=rG՞,< K7oXKEqvc^kE3, ^'y {}_N~ͱ) ,O[Ϣ<.kA.knZRbQ @`gNo.tYϡv: |B.t}AHy$AGfGS!iiOЇXS&Q.wxİ&tbؾeb8ګ^s4rPVQ\V]fK@K諜}9ɵ#{ Bjuf~S' k̓6m̖,:ƾg7ǢLu;r 'Ӟ`淚3wwF正&t8a. l*lx-  n&//>HjIDs~ bT #4꾋 ̘Ë&~p{`'Ê&A/A0ö pb]@n.,Dʉ~qIbo/xX3vi@#Gb&??4Э{Munʓd7m?nUg[M$dts~^#}8_7jWm}[:jEq`kMTl٤뜬C/u:$^sq1Yg I,6(PNVuyXH8ע<V;vaY7omjaK, eQ8M9⌗=5)}~}ں=w{[Џ pelTfZ 7|%^. 94hќH|Lx"!\o:)(*vN]ѳ|*cI/–1Y0 \PDaIk&kNd/}i] WƆ&_8g!G5r5N>!ՉM@r$LHS.|_ C5QzG-R_q 6W0Nᣅ&&,;4a~b3|_ 6IWkv@ l˷6nÖZz- 7_;wnsbx.40g9ǎ6ߗ$@ 1,sFbX;pu 8*)\~]IN = L}T!(Ԏ1 0;E'zV<}oy`O mu;ngvkt|(E}at4f[fkkǼ9?J|K 7ƏtOikc7.$mW婝s%giYgV-+צwCkndM>'Kmi״<5(/6*1Lvߚg˝so Q1*$R6/,`<"Ϳ|s/LCJ'Տ/Ԇ`gx?n㩉p͡gffc'W.01co74_N/+ZUְS[V3D;/Ka}9'i¦Lx-O yey2wiV'g9Rj[C'Gn2_CB9Gv]W4vߚy2ߵtdK.E\#I|s5vc2U\gq[e 81mZ[Ay/+抶Tʭ1Lӄ+vİuFݞ>u.xuzuBaDh ^NH9MdRRyB>Ħ<ĭ;i1 ^>oŘo̿BV̿+LCHbxebx؍kc@cSꃫ1t]ߤb͗/+=ZDŕ3XֲS[%_~0}^.T4A 'CqJSS#ˋ&\>bG0lИMЮݡ&}~ qyaG|cU2z4t>\]@b;;c7?+㵆OVDXg)&"n=.dPǟˠtKJǸqrT TUn /Jauiwh5ߎI&n&̽(fx>yjy$civ7fOnĉ]?Bv(~GJ 1yyGu [C:i{+LCN=Au>7^ gS1<8vcI'+c76se5˗ΕƸ4};Wl0ةK BJpj@ @ baZ jK`_+} {ͩ8cc/C(2}o'k*kaYZ7.4ORw.08&6fq{yKտ4z34_y?f~UyZs^X7Û1 4fA qԃ_4neP `p=n$'Ф èMZ:/ɉ$mZ sXyqQ ژjɯx1N jbyt`Xlzǡjd?9ocߤכm]kRN^=}5QORkƘp5ꕏF0H ogQ%S9s@7 *MjNy8;)]0NơɃ!9)Nb-8?JlPmkުcjsZm}?69FyjuP`Oy!BnkFNM6İ .Ө6&~uDŽc|{*L3W7^xi,ğ\d,㊓ZM'%5Sç~)o;iB.L.X{~xKy%mQ>@EX!R,|Xʳ@n3g@n'a1ڢ{'bx1!oJ&prœibxrT} M̳ (tNwv⴮e Ѕ:^C4;:[KaZ{l1 8kmc,c67$ Fd}ަs˯m>hs>2|+m-LAil"]Ö=(Akku}cPvx:/:`X^1RM@ZH[;Ox03 B ]XCZ_ 99_fHCrv80 V{;qg^MSOZt38QF6[tY{Bl߹ΕHi·[.~Z^MF[juoͶN2Yc5Qy0Q086 a1 V 0X-`@ 1|6Q}}ꙌW 0jK {%Qt^_ ~?q66o1&p?yY=~]-'k@ {hإ%ebn'9%ANE|'nؼXZ7(u?1j01|/6za؟z{݈}BD.oaBdDŽ<1:'/ԁƝ4t,&Mx+;)/y8?Ňngv+-2[]zt wfmI{4_gs˖Ve' /&@e&\2%ڛڟgllVON6W:}BXm[YvrR+BՖl" q1uq<>v~!Ơ/葌Pf+y^擵2a/JquSuvL֤-IesRΈakӒMm#q# 6mQhzOHP;̋Ml";qٮC] Wo׼x{{KRXm-~u-5:&]XZ7V fƬYo6y\w><:2򼄼5'Gu1<9ۭń eaYyk#c+V)ӣ!1;)DtآQs-GZ%K{RCo]ņ2t +ҶOa4{aU6yfرy!ikt6yZOX1Q 6mo X y<vżظa"` @ p ϝ m0+b#!q;!`` 0X-` b1 V 0X-`@ ;fv0IENDB`emacs-which-key-3.1.0/img/which-key-right.png0000644000175000017500000011440613225014216020612 0ustar dogslegdogslegPNG  IHDRIzXsRGBgAMA a pHYsodIDATx^~ߛIf,5q k,of0WЁ|1l0LD`l1 ͹˽o8WO뽫KZZޫ֣~oov !3o}ഉ o6H @c`` 0r25RV4%&a;x{ݝnwT?D:~{0ҾKK_>\o @ 'ϻoAw+f3u(]7|-RLmI b @.N[gn1[?k~V4JhwEeɵ(6\U}A٩HaJad#5W6 ~ @{ew A}ٽ{~"]uHq|%h )KŨEwꖊw]q׏ ½jgLLTo_7S҃cK<\._=.o)gx 3Ìגmo$JcqzX̊M:mrSngMAدR秏~Jc1Yl&:ܿePo!"EaH.k @)f9B"o[&?v֔ +){e=gHX.C=3:22c ag@ I(jxSGIXKv>[Q͍,(3R(3ߒ (;}pX=[/ u"f13!m"^'Z ⯘22I2|DfBXHܘIh.s\T ^LW[0p,R@_sܕm/LgZcy}+Ðxh`Su%Zt#8z2eJYI8wwʔ{5e"gb(o E" ųe64r\0p,NB:X,]c:̲+v`Q2Jb̈m#8 F05`k(+_k~(xXԖ]!}o_>_wqǥ'ݟJōOϿԽ+3adzN3ow?{|=;WuO/qGi獇t_~1kMXO)΁ U=[j:D/&vV @}ZYo O3vBqglbH_0S4i1S;0N4s\`b8 Xn @6 ``  (,+u3B_T܋TH_T|؉<2s ꇮCii[3eȵ/ԇotoۓKRg3.y6&nǥTfxJc}C7he1Yi7a BD?`ީڈcYKWxwIHH8 )ێpP:0ͧt2v;4n11q͎Aye~|CnХDןT͎X 5e^ͅ31}*  mf('.^=s\-rnN[ؖe rQ*έÆe1 ~(pcX~\*LPܸ9L;ݿ w {t oc.^ip/JJ\*ѷ_j-7 F~Zr1/+)ƥ+1wlT1'i+˔t߽T4EGH\ٓ/ &ӆUxq eV\32鉢>DaKP-7E$'6i-+.3Nr[t$,64a>kڦE7iYsDeDԅ݆U/\+.iSЖ>^C$^ ݰ%3e$[ĸP>%ޗ/s2-hׁ-qQ $~ sG*LJ@>EHxɶegkl{ ) 2 *y>$  CDq `/^A86Qf-\.C@T;u\iK^Em7)mDTfH+A8/θ+ @i\*LOa%`SP["}!s ` B\콸^<]A ezmh#OL/]j,:|D}ZIxܖKeKE\l_ܹ&uN"tn^n;a-h]]`=[O^=n9q>~T݇Ħ0k/l4Z]ѿ{9c#Fx4a U..q,lyۄ}*v\Y—RO)[;ʪg)@6Qz wo ;X?ؒ3x"l5C>y_=ZHKƸ|hCnXh~v>lMW4 AҚbU lɭ3*Pwao```0 ? @x19gob aA6Q BkݭkU7>KS~%nFm\6hn][(4#"2F`h (XQ0 @`` F~W?C`ewl3`vwq8 = hwK_m'F@h_g8`e?'-[8`hC>[ px0}{ l @~Y  @>돞P`8`chS@Dܿe0p(XQ0 @`` Fvd^Ao~u7IAQi{OiKqԘA%!akͣN26sY"9j>a/yu7Rq%$_lg 2?tܞ&r{VN\xw,-'.u/ b0y0``3'ͪo` )p>MlZ-߽h?`NE].onJEqNl~7'?yJH}NYQ^=*SaW R~jrYlFzM}KR͋Yڱb[ ?<3ߟ ۫c?>_8?}#j0WͿR("vy 78]_׽aKa]JD>^|J}H"W}?`7lg0ܱTc3 &0"7\fK>;?}q .|6<\F2|73i!בe}Sa?Q}vEaKǬKqVlg7*Կl\o<’Xcw@epK 〭P]b+@|=>ͣq'Ћ^Q~O0,&` <37>-`[7i$JQ$4ه00̔CEi/ " A$?>q˂,3rqD*s3k/9!IZWlqR_vs˘eǦ\/KmdiO@o L\\U+!.#K /䞨y ެTi*ٮ@It}p?Mi,ȿ9I~,d@4RYb&q鋧qXa.K2$Md*~zJe?}4}IJ v6ff>ضZA. P]֗3;{xڠې^Xcw , nupVBS\{ -fn{rTn z&j0RhʒrD7]!245"<L-xH &YhrAS ;X03{c% i;[{m g~|ZvDbf՘ K1N֩>m12N'M^ԑ kݭ`kUyt1 .q h{uw.A ZΕ>"S7/}HRRt!PrLD[ ql}|`\`80"|;+ܠY;fXnm(,cَPx@qdјlZ~T8oAX2Pրh (XQ0yK] _gb#sWŎc}2>gPJZy}l{,t>+y{4MQU5)}ϋyr@}wq  *lgSKEkb?/tT߃͂l؟(,s6$=3?b^л ?^8VŒ&W#}QxJ|rX n~OY"%Wf&_0;( nf߭(۶xcobٸc'=u@~mP?`]- B _?{>jvyVl6K+iNUQ8Gvo`!%u4̈]"87da f~]Omh @`` F05`kXm+ju}*Pw`⾻m+ŵֻK<%vwqoߵMé e^| yBݽ`0˅6wx[x)5vk1`rof K݋| y t3nI'wTFڞ ?,=4h& 'Y v汸qeuM/2#aq0^‹gbZ.)//PPmԟk"]\~$Ċ/An.cEVexn;aqypr`l+ Q'ZgޱP*SٓpIa퀷|ݽ`5 .ǻT^j1_r} _م}G>YOpwYv 0pg5N֗3q]ʕ2>oo_L߃<W&3+>vmHT!Gѿ]p〃6Շ\>^_ES-W@)XO6!!0O%O׀u at4~Rϛp/zf(uMN`#3t}Bo.-blMQ+ lKP&Ѯn8Eu~ҘEc|w=Xns k} `+iԊS7-P B`~lK׏KTG(=HYx&AHڨ'mp^3` q0)ћTerNvNQk/31"71{8Mq<16 [W_i̢1K5u Ɲh#YbA}Yͷ';2^g}H>7];h\\,\ \_\ߘ&qaIs4GԪ?FXM9@f^D)7yЂ1YjPR :Kqw(~RFDMyѬ$؂w74S8`%^33N9_| ѕ|;Kya^Fciâio4qMWh/`8UN'_43g͆e^L"76=х=c‘O V i*?qK XO-X @ᷭ{ri\t%o8D'|)V v?WΧMSymDrn-pt 3xEv<:}ۚO7LV&G3}TyNLDP N۶5Vb 7#l{GL`v*"lQ`Et23RH݇ ҆T1:`Uṽh-h @`` F05gW _Ή_<;h-a^c[YA=>%gq `/{*߈fRKD[}ߎ0'n$8XZTקּx6:+oYv7V߷exZ`=@Vegu25ӕ/Ga;uʳnmo3\b+'ۖEc] |]~l}Sd ǧy W#q(חnDdg>q9[ I4Åˊw܋aJ3%ݮ7~ׂ_ilg+/[ȷ|^6K~T>;f|F6R}%KMGK]ߙp+K aqv_0Y0: -c7r2 )G-rcƹms iR$H }!V/uw.9_}HB[%cwXb8/qel}*K)ڡcvDZӞXO pg(*z!"(3]7 xgIkӈX[}+}ԘreRw ɠ)^tm>W' X(X+ @+Y! gOQ}*;@ƬwfԱ8HtcNQXnt>mD,v(8#iiNbz,w>VI㈋5^/ț:lmKzGI2k!ۖ+1]_oZ/K;c} r*+S_;I7,؊]ťEה#8r,)w/;f 1MQp$ pjVs79~xʆ.?of.;Cꮎ-kD|0eymY4֥P_Hr,!o̘x=vAypofiX,Z0)05`k4 րh aG@^yJf7W -9pE:nGx*0G/%~wl)pAՃV*nxoܳ Q&4`CA Mt`;la@9 G>I0VNO [LE\B%d[vsǼK1g>gmvˋ7K/Zod{;zny& /C)w)Q'Fy2I^/K}ȵs -', a Zj 馓rT}k˜t-m>ɪ2P"mpkɸv l{EŊMMWU RXr5FtV9M(uN}ȷ0{5  (h#2ޞ(Ոgl%T]<8B.MR[t!:8x26Tn:Z \㊅S/CI?K !A"PZ 0iY#fc]n}Jb"Ξtvnjs[tr+1SqCLV @lgwSquԙx{Gb_*SlYAIaOS>RV4ێA( @q}b FيLWu,?xJs,n @b iA6}hMY=_ζGBS +Y"(KyP{w?`^VJ;FC˘.;GzJtãm4l9WfaoT\v,{aLp`}>  @`N  @`` F05`k4;5ܦ8_m.4ac(4yi?00h \N#Fَ]:qFfŧ/KnlI1.nKknR6&!ȵ WcqKR[g!Q7E\155V(lاJL}J^]pٴS"9QT巟ÄR;SnۿTWnKB `f*m: <ήr|qI+ y,#N#~\_2: 1r@0 +3owg6"a۠)0 BgUՁ8mZKU@XyHթןw"]m5ق4ʩ?؈ B"RY$M*,dg{̮k*߮0}/@~8pWJk=Z(1K{"tq~+|%ayc(*! ڒB׋icN, b+c QRm)i -h  @`` F05`k4 րh K*\nueWwܶ%@뇩=òso$ͭ_GvQ_~שq@-XNm @DH 2>&P :%SB I p[,bSg>揼tb;0.p KYQ-YlF;a|apfMsQwW!+ }08`ޮ.܋m|wE _.SN|wqE yy[qQvr?dN\OQSo Z_fo2w+o068sW$0:<6׫ )0NSYw/N1|Ik/E7@.)1˔9 OV̐Gյ#S-g 5x~[ϤYQq K @!9@Ļ`$H!_90e o}"{aO]#*?QjvvhqPnBB )3/~Tidٴkal}}*#pop }j?!)C+ˏv wf/I!͗)p" 쾎-s"|X~Dg}5/Hn9|p0AiȮr-v-Yg-]`59|N mco%9!,A_0x}Pd[ӧj=yN~ 7 [7+%};o -V``qchKXE=r^ o̲oBfŊ[KNsvZQsäQυϴ825bȗ&ArĄ"˜"=  @ag4 րh (XQ0 @`]~{}.|wDfN @`fDnɻF̓)16x;4Kh 3W/R[bcWz*eq"Sh @jr)_ ĸ,ퟌ'm0p/O'q9U+%S2jBU\ ͟3㲨CX.h @ovy`hswMW\d%+Hf 01.s'=bn]T'l @30i08'0{05`k4 րh (jf:55ܜw~Ej^qs(0݋o|f*;+tswXzr:0pW[Aq 6@F9ew l*〕=N.vL>.qB$}?ٽUnHvMqNηe(N @ 3k+cdED!÷B犘!:6iWjҨ?Uh+(Lqa[i\Rq&_-C;4f %@2IQN 8˵0ψ׋}@*Cf}}qL>ۆɂhVo,>Xid D/AGJU{~H5cJ9-p`esʩ ?XA7@0 kWYqM})L^j6B*lb(ĥoTN @l/} pq~YqFoDy@̴xOᶳr= 8.xw_8Y0 h (XQ0 @`` F0Wj^[s_k55-_^WC(0qK^\#@p.|pmbS86Fل{, ]6 :0([q|ztx"ڃ~RR5~YR297wC(h ᜎN/'_[)h U|ldr`T p6G}07Y_I`W,vԿ?X>Kۓ}FiqQvdJmqŲ̦-2\A @  |q ڔ/#SmYbUXS4 {H8〭|Xꓰy,2|;+7u,(~qɶ΅1ߒ+F Q0 @`` F05`k4 īl=2>y.ߗįQ7ְ 0 pAzR L D5O_8l}UlXc (G7"tݷ.ta(L}`XQ6w 4<X{wR$acyޒ|P%޹B}}z?Ĵ%??N?? @lz{Z2Dq8ƣ_ Bd(D [ߪ}n>Iieî4ʦ ٿO {GXbNCF3m[Ci<(_ tʀh `vq“A\|4r:J70qI^ k4& <〕(e~u?+DPs`Q 2&`LԳtKy}րh\<Պ7>>g l"vk f,V=8JxcR k4<.x@ @`\0s4 րh (XQ0 @`jq_=˿Z_=Kg^;kr[(0^{1y/8:i! Qo.3>(XQ0 @`` F0w݇4g71uQe.[?XO3 1_7u{37G' Qc/)6ld&f@ql;O%Fي_?gL|З+7,o;Z1fDc,> /ߝHޱ߹piu}hM ?`0lI-(Gړ_Bb>3x"loW @2~aaS`@,5B 0nϴ7zz˭ooJb E@;QmDǃFv@*eq")޵Fʜ#6}tL~W2%q}h<hXP%eRމfIԈfS (Yv\4Vvۛ3}>Oz%`}h +|]wvjƇ3Wwv>9 _;gnt_9e ;1Oљkvw8>Fٚ}"">s` @`  @`` F05`k4 `W+r7:]R_,&͂h-h7W[t@\]e;.o@stq-odV8cst`e+`Fw+`S;Mm' Q`?r8〥 3.4V { `8=R-F"l?8n[d@V({7ϻ˛ 8={v `˵s̠ "wh @l(jn q)n gU$Bq4 ]߿i*8%^e<:t>9D〡(7׺[w/g.q"ҹtH9v Qx  08'0{05`k4 րh (Hc^Fيv7:4t{,{}=4 W[6q7 6ğ5(7׺W18,.g㆝\|pՆO:(s4)}UhK>\ `{fWq.23\A|=b ZzdA'E\¤R\/׸*ٍRm4FلPɵLbq @LWeykrq}9޳ C[N}ZF Qa䙀ܓ9  j4FC+b?〵f{C-{İY9XdY2r([0v>0ok#@+?|k|ظ n O(0*F05`k4 րh (fc1Fل{m@+}x([0('A>ihͬ '5<؄}ﮧqw=/K  `C`e3.~`+^Ot@0"m}'½g?wAs낕Fل "-(h `.F05`k4 րh }}yI4 `\<^>|;]64 `xAa(1O\v+ĹKӟuO/p_)${>/2n„Q`%\{&`9ey2mYSbxzÜű.' @o sb # FBII#sP-&tX_S(XFn8O;Fϊi-%+Ӧ>|x4)3) tV̬.dCXS-aMNb[L-!,? sƺb?j``eSdՃV*6 Qcuw7SqU0p"F-h @`` F07kplUq%sW֖4 Ph然WbM>}e j0= ^vq-!PX60)w:v;)E8,b)b4ʦ f[3<.7Csm|=-}|8.ŕH3&GGW Fٞ4 րh (XQ0 @`` F+pKLJ}_s(|0 @`\V 5fO.c;(u@fXo @o |+9;z; wHy'u3ݕP㷣ca,f;;̫/N?_BDc}S;4 E/o=P{S%W $YdV%MPI;Uc#isf,al[GR;(T[r;LhSPei}D@NO^JPD$5~ڴ($.!zC ꜐'T79[f PS_.2ŶL(,>; 6_ ( %S4{2+V{V2#c˜Ӎە( @ @q"JW8-Z@p&]KpǯoXs4! 4 34 V7Vh (XQ0 @`` Fwot}݇N;m' 0pٗݷ F9^|нxq7OθMاo?pʕ%|,7}B+s 8A0q&B `#`xlo=8`K~ }Yzj /KQ`rloZ3[c5Zy8o0v`(eFO3(z!03S+έ3*Pwao```e;ug\?ؒ3}w @ϟ0FCypc ү< \ ߽ͭ V`k` ~ V5 Q`mF@.7 `.Fي64 րh (XQ6cm治JIz*n9w>^Qw'_0%0we`v Q0 Q7s6b'?puۉ=ኗvЧml\⑩C ^|?O qu7rp4ʩlj)#lF@B*qw-`*a?8WTRgA=á̀[Nu}DI>E7Cp`nԙXn;k,GL=/ZY'~J,ub$QOg sۈX[ҾK84~w%-N @jO;m);0?+9 YP"(_Qwiޭ;2#pn`TV6B7 6#^\/ _%A!xӫ 4Zk v7eAqm hSy8`+lV.{KJbm03+50[Not)b}Y9_Xw/_-p-ΘihSz M MgQd9(=Ghh @`` F05`Zw>ap_zWF8G0 ly0M0r1M0ҾXr>{ϸ# vg>G¹hSY?'`p}-m+x6*=G¹hS0 @"LnSOTN_870ҪX~pO/1}Y QNe8+Z_8O0r*ܓ41v&ΊeYYb[rWi8N @3 P;1Dɚ$ @q'dPU g?(Z4 րh (XQ0ּmfc^5l} `7`e;{f*nK4yi?00h݋'.4 :00hm ಻?Jcq]wS¦]rA674|9$o9˻0w7\&@ȷe((07Ǚ'ϻwi&? #,%gQO6/DĖc}!My4J㣉QXFKř| 4 g_/fՃV*jZFtS ];+ӈקiԿ5 d~ 8϶-4FCX|pBF_ȣrJ'qVvYϗ>8Nz(m?QcjMhV @HqX+m "hj৉L_ @z5}飉ڴvK3F^+Mh 」3o%PZJ"8.[6̷MVfxwMhSYhD m08.z̞[(XQ0 @`` FنX0l @lv@Qt `96p`gvlts(-iG &W 7ė ;(08`%|Æ;fzv:leLgE:-2*N2hSPg G0'mٸ>+'Թ8)3MPWU&0ҪX|؊h3op  @ s{ &ݰޣ,qohSy8Β=7^hn5 S-23*1F9g`k4 րh (XQ0 @`Ȼ7>~ύC'uFu_}^[7?M@ `p z)3|8A0 pѽ۞O%{3n,ۥre _;K?}M'onJ\(NgLI~F9] ?ؒ3x"l5C>y_=ZHKƸ|h7ϻ˛t%L@0XqV ]g~6txel @lc]`q @<2%qv6 Qo% V @x19gob aA6Qp [|6=1_W f `DN̅{~k+50g ` Q0 @`` F05`n-q'ןn$vOSqfmx}zuwji0ϝ){m?Jѝ]_vG8h @`v ̯Jp^2*R46 ew".ǂEϺ `b<-<)`V znR+0YVyL[ whx%Xe\\e ;vgv``e= H{q7LW8`{ʈ'%OU9Wؕy95o<]AdY)Ӵe,-dz2cKN"8*F-9`4Tp-"hhnH@IٯO/6)Ӥ+e,@¢8$5I0Ep"fq kBu#]ܯ2b[0M>Sж8"m٫ȥ0̀h~+WxDYU/uO|Q @JDH{} @\)C:@:[w4f4V|f!ygfw{ώh*)tBV쌨E ]P=[g`ʓ󙱰ioR @3`Z(XQ0 @`` F05`e{x?o~kmH*Fټih Q6aN+,8`%OAwЋn>͸6W@` 8W+OrjZ+"-}+h @z–2gs ?qoѫ4 Qn^v.0߇Zjh @ls5+ =ڶ>F4&Ԣ?[3KW֯h ʕ2=џQ0 ͂h (XQ0 @`` F0r`ܦ9D=!k4 95`S%`p``=Fن\K18`aţB?=Vd8Lkw˵qގvAgG1_f11"+;rݶ*]Ĺ﫾xN&>WO).AS(7"YϜ+?5XokU_:y>n{DL0!KX4ҖæDRMF K}G},M @qyZ򡙙Z!̤af'tQ  i !rӢ|N۝2u?\+קO}M"K)*ЖMM86Q6aX|B.IpH;QK{!vo^—\"10rT-{}WR[,Uxa8"F-`"C0½/]G2 ŽQr{]Ӗ<(]28iWJY AM @l!o8`癀2ʠp/RJʿ0 ݹ:{sUƘ>Y붔Y!myfM~r9;is).hmh @`` F05`k4 րhMn4-_'W0UչR>8t}Fَ^| I/ەMD4~_bOˉn)n>h @l,L}ݼ~-6F9v? pqf{U7}2K[cO Ow:w7:=qRawY-+ҹ QNe8ֵVRqm _R\-*vW--T}a]y}2&H{c4Yov4)6"Bgf ~bv0PjKDbsÜmHyCmhV 9%ҊW e,0 @ @qJx\!rK7kЯ+52PťoKY5az|0gQ73~D[ݘ!n8f7_XQMWˡM@;76.%Ʃj|0Q6cI05`k4 րh (XQo,N`ůnгmqr*4 `7lXl64 `7` 6A 6Qa.=E"]_%`w=dm}`(j\o۷۱ogl>r@holKXݯbZk8<FنP?l|ѽf+(ХŬ+ a49(D~63^ٱkM|vRpj駫[pJwI['&Y`e?{qMSG ľ!̤q ҹhzhf뾠sTYJ٩uH є8-6_vlTQZ5N  i |6Ob;*ܯ c qt[jJl @ @qEќwJh>5ַ=Wv:eaRf`Ә|zJ0N 4J`qE,+az<.3 ]N |6/% `mqjSH1'c}we l @@`k4 րh (XQ0 @lzxԾi8\}?U=`eK@~"nw J]jIm3n4 ;E0;0r| o<8A_"7;eu{u۝zgI+ϒ3>d4ʦVn>^/|8`h &Bi%.ܚ׊h*r+kO>d4ʩa HBnW<i5~vj(5a)O;%ċ @62`TVveTU։S=q|~]eV(1oww.Tzwm#Cܬkի @o: }ȀhMh @`` F05`k4 րh-9t>V&Bn[+v8aSDݥ8h @I3(R\ OM4 `.26 Fٞ0~rKgqѶòyR@wmu]ò}=O8uX:ޕ @l_vish A"+smK={@W<3dɹp`e3ɃPk=T9m#vFm" x2 Emq ]pLho_Vw7\,<'3P"=#߫ȥ0 @lݷ spŢȘb\ s `h924-IWl1@ @l!7[Ok38`(wqM;#{W$ Qn `L-wޱ1Fقv4 րh (XQ0 @`` F90{Y i"0 @lg`9Mpb_] ( 3}ch 3svsݝB!v{an_(emk/}7AA?/v¦4ʩ=GAO 7%q{[6F 5n+;`&ḙ[mC\j'l @-:PHLq ߧ+mXz38+$ @- 2KDX¼Pjg\_Wb2XNc1NFi,? "55Kb@dFR3}E>J;ԣpUNFٖx]LM38`^Lwn=%qxY<Ϭk던c"AV itј9ŋ|9cSj'l @l{~r-&fq6v΅cl\$}<VXQ;6_ooc;〯Vc U)Hc?Nmg_.l @l@Ć 1. Q0@Y>"F05`k4 րh W#sùh SBl4 @ Qn^v)dWgf'wi8G+x^푸z{L\^v ~[2;4 7u-%E:},hQ4St9N.-PfbT\hLgw@ Q6a؋Z`쉨c °>c*B0Sn ThV . kl|%`t gExvu``F9\!eB/{#q kC$Yh 4#qeNkLWs$nybYhd<h .h (XQ0 @`` Fwot}݇N;m' 08ӷRqot~4 @NSfp`@v|`fm87xۄ}*v\Y—RO)[;ʪg)@6Qa#E~K(m9r@`/˒'S+x_0  g_v/i3[c5Zy8o0v`(eFO3(z!0ҪX~% @I܅@ hSYs!g!>?%` !0ҾXvpc ү< \ ߽ͭ V`k``K Q0.`k4 րh (XQ0O?HMvGݝd~4 `ܹGKE(S(0r`b6K≠ /śxm'N6/F=ÿЋ{K Wz/-/ߖ\` 7tzp/wWh/F:5qy4J~&0iP68Ԗ34 -'Lx䚟z?t7̒]aúR~Ĭ2iHvwo~gBF9H08B:uTe0BmE1ZEۣ?~+`YQ.bℰF̭Z(G7q׺Y+#&@  &3jAwnGr<LY=A ikLMs|F!,1Qv Ʃt4 @tpX~p?&B ~z6;ڳY`0w']H #Ξ;ALT6F-_1 nl[ #R$ЖAS V>NO{0=ЂM>헲[Z @P}4qQX >(mˇ08Hn#l @lx,v1Cg-S``il Y18ɀhh @`` F05`p@޽}{nt:qt04 P|OJŽ}Al Z(;O hM م#'i#lxۄ}*v\Y—RO)[;ʪg)@6Q6c6+s!g\D k |,{b=q[(ZH͠nXh~v>lMW4J`q @<2%qv6 QNe`q; g|M_̗!,h4J`qy)JgD7k#6wb.{s |^4.X hM "2F`h (XQ0 @`` Ft*x}zuwji0Zp{\RQ0`Xi^~~17(07tcwi,8XiX{zlu{m.K؁xIh"32ĩRHj0HGcSo웴]wuYL[JqqNo߹u0  Qouw7ǰ.^igwbV:7_)NʬR[ehfDhsU[\vw(q?Ki`e+rWTmb3{8b3l9Z!2%,lKB4E bo%V1ߎ @*ߐܘQ4ʦFE VH<tg(w /_-a[R-ۗ(sc"Y*  @l-9X ݕ+ uvyF "OJ}S ;64 DZx> '"%ť(h @;Os+$ 4 W[Nم.-Q*!.qKYN\WzwR\}n{>T~6{ WϯKq2}DCmTnh!Qp|54-yaF " OsSqIz0䑶+6hwMo}}niN rJq-/Ֆ~lhQ6q @V<:`.yt(=91/|2]/"޾("LIOE/ˆrCQ[ +-n4P(x`Y~8E(  aSQ[$mE?w @FCrœyZDE`ni2 a73|io̺(p,wYՖLmzȂh7n*D\b/q+vUk`ㆺJZ`]\-wYՖWθ y0p4b3`XQ0 @`` F05`k4 `\<^>|;q08>7~f4 g_v~S#Ռ}&,=VbmtC|]׽t-O/l>hxZ2Ĭ〭{.=>ݹl~v#c\)ߣNnY4ʖ (`0<3#7 |c1.SN%00WW\2n,0|(!@;`e媙08Zq^Mp^K^>^H``?xC\/=U~?,~{|0/FCED:n4  @ @`` F05`k({?5ϻ{^RR>?>x%ݏ?{7SWf{{~/df@5~"~O(f2xmenCoܳ!1.mȗR'"v EhoY/J"s.4sӶX\,=9>.n[4ge;ZwAw+w(+J)iѶ8$ڀ8p8YUeQg{}^rP$n!_20Gߥܱ!mEey~_~͏plZ8Q{soo.[z.SNYL\L}^o\T5mj͛b-zvU'8N7!WfJ;qߠOV7n'i|AߕpDU s%iEuP);1{ҏaZ]UBlĻ(eef!66|M-FO_w/n_LNuΕJXY;i."  @I |Ls`kzs%*ܯtaC))#?sk¥8mK":"BR+J6l))jr"C_ǝTzOg߉tUmEi{L>->m>w0$̋MM(+N,2;aR0TPR&8?"bh^ tJ1)e(}7:ۦT%?`?X]B")c^j„j)s $qN;!me["ڒOd+~BT20 *߉18KڥZ{15y}t};Gݽ{Җ1C}A1pl,z `qjzB.vYV1\H'.\fRL*L2sb8-FSi2HxUm|}~-cyq I3浳~3}jK| &\EǙ6H%T&XKΖ .׫gvv v0*F 4ʖ Q0 @`` FN׽+x/]Sj n9?ūcT}Ml[a-AbIry mczK}ߔζ78m~]1;6q Tܖp@mu}uy}wU:  treƿħ2qߠOV7na YDtr(Jo֡WMAۢR[ɯ>u+vEK] \hCJ]{!ȥb{Zqv(>,d Р{ILdqG)nYfDK'̞Mi9amqeLV"??a*/`.5Pf JIA2b{8NiCקiԿ!Q%5{I1.$8im0Xf~8qDmq)swӦml[YdV%0g`q=}|DI*@F/+6Y`8*;s=/M(xłxg,]2Mz\J}XW@v g .o N\E`WrR;KqTp=Ed+Ӑ4ː& ӆEI`+^6&<_lxN<{Ak~T[crm!5.>GR`33ȅ.[]+/肻tk[UZ%/_?3tv6Y)K$}ע߷7{qxFg۰_* lV!"/bz !桩yUP|OF1-81ӿ R`~/[5/6~HOsuu7XψW|Ao*`a@/ %{~φ/36?=5k2 qq`Rv GYo9 0 @äSԐ4p:` 8C0g !3p` 8C0g !I pD p` (kD m_IENDB`emacs-which-key-3.1.0/LICENSE.md0000644000175000017500000010450513225014216015730 0ustar dogslegdogsleg GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. {one line to give the program's name and a brief idea of what it does.} Copyright (C) {year} {name of author} This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: {project} Copyright (C) {year} {fullname} This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . emacs-which-key-3.1.0/README.org0000644000175000017500000005724313225014216016000 0ustar dogslegdogsleg* which-key [[http://melpa.org/#/which-key][http://melpa.org/packages/which-key-badge.svg]] [[http://stable.melpa.org/#/which-key][file:http://stable.melpa.org/packages/which-key-badge.svg]] [[https://travis-ci.org/justbur/emacs-which-key][file:https://travis-ci.org/justbur/emacs-which-key.svg?branch=master]] ** Recent Changes *** 2017-12-13: Added =which-key-enable-extended-define-key= Allows for a concise syntax to specify replacement text using =define-key= or alternatives that use =define-key= internally. See the docstring and [[#custom-string-replacement-options][Custom String Replacement]]. *** 2017-11-13: Added =which-key-show-major-mode= Shows active bindings in current major-mode map. ** Introduction =which-key= is a minor mode for Emacs that displays the key bindings following your currently entered incomplete command (a prefix) in a popup. For example, after enabling the minor mode if you enter =C-x= and wait for the default of 1 second the minibuffer will expand with all of the available key bindings that follow =C-x= (or as many as space allows given your settings). This includes prefixes like =C-x 8= which are shown in a different face. Screenshots of what the popup will look like are included below. =which-key= started as a rewrite of [[https://github.com/kai2nenobu/guide-key][guide-key-mode]], but the feature sets have diverged to a certain extent. ** Table of Contents :TOC_3: - [[#which-key][which-key]] - [[#recent-changes][Recent Changes]] - [[#2017-12-13-added-which-key-enable-extended-define-key][2017-12-13: Added =which-key-enable-extended-define-key=]] - [[#2017-11-13-added-which-key-show-major-mode][2017-11-13: Added =which-key-show-major-mode=]] - [[#introduction][Introduction]] - [[#install][Install]] - [[#melpa][MELPA]] - [[#manually][Manually]] - [[#initial-setup][Initial Setup]] - [[#side-window-bottom-option][Side Window Bottom Option]] - [[#side-window-right-option][Side Window Right Option]] - [[#side-window-right-then-bottom][Side Window Right then Bottom]] - [[#minibuffer-option][Minibuffer Option]] - [[#additional-commands][Additional Commands]] - [[#special-features-and-configuration-options][Special Features and Configuration Options]] - [[#popup-type-options][Popup Type Options]] - [[#custom-string-replacement-options][Custom String Replacement Options]] - [[#sorting-options][Sorting Options]] - [[#paging-options][Paging Options]] - [[#face-customization-options][Face Customization Options]] - [[#other-options][Other Options]] - [[#support-for-third-party-libraries][Support for Third-Party Libraries]] - [[#key-chord][Key-chord]] - [[#evil-operators][Evil operators]] - [[#god-mode][God-mode]] - [[#more-examples][More Examples]] - [[#nice-display-with-split-frame][Nice Display with Split Frame]] - [[#thanks][Thanks]] ** Install *** MELPA After setting up [[http://melpa.org][MELPA]] as a repository, use =M-x package-install which-key= or your preferred method. You will need to call =which-key-mode= to enable the minor mode of course. *** Manually Add which-key.el to your =load-path= and require. Something like #+BEGIN_SRC emacs-lisp (add-to-list 'load-path "path/to/which-key.el") (require 'which-key) (which-key-mode) #+END_SRC ** Initial Setup No further setup is required if you are happy with the default setup. To try other options, there are 3 choices of default configs that are preconfigured (then customize to your liking). The main choice is where you want the which-key buffer to display. Screenshots of the default options are shown in the next sections. In each case, we show as many key bindings as we can fit in the buffer within the constraints. The constraints are determined by several factors, including your Emacs settings, the size of the current Emacs frame, and the which-key settings, most of which are described below. There are many substitution abilities included, which are quite flexible (ability to use regexp for example). This makes which-key very customizable. *** Side Window Bottom Option Popup side window on bottom. This is the current default. To restore this setup use #+BEGIN_SRC emacs-lisp (which-key-setup-side-window-bottom) #+END_SRC [[./img/which-key-bottom.png]] *** Side Window Right Option Popup side window on right. For defaults use #+BEGIN_SRC emacs-lisp (which-key-setup-side-window-right) #+END_SRC Note the defaults are fairly conservative and will tend to not display on narrower frames. If you get a message saying which-key can't display the keys, try making your frame wider or adjusting the defaults related to the maximum width (see =M-x customize-group which-key=). [[./img/which-key-right.png]] *** Side Window Right then Bottom This is a combination of the previous two choices. It will try to use the right side, but if there is no room it will switch to using the bottom, which is usually easier to fit keys into. This setting can be helpful if the size of the Emacs frame changes frequently, which might be the case if you are using a dynamic/tiling window manager. #+BEGIN_SRC emacs-lisp (which-key-setup-side-window-right-bottom) #+END_SRC *** Minibuffer Option Take over the minibuffer. For the recommended configuration use #+BEGIN_SRC emacs-lisp (which-key-setup-minibuffer) #+END_SRC [[./img/which-key-minibuffer.png]] Note the maximum height of the minibuffer is controlled through the built-in variable =max-mini-window-height=. Also, the paging commands do not work reliably with the minibuffer option. Use the side window on the bottom option if you need paging. ** Additional Commands - =which-key-show-top-level= will show most key bindings without a prefix. It is most and not all, because many are probably not interesting to most users. - =which-key-show-major-mode= will show the currently active major-mode bindings. It's similar to =C-h m= but in a which-key format. It is also aware of evil commands defined using =evil-define-key=. - =which-key-show-next-page= is the command used for paging. - =which-key-undo= can be used to undo the last keypress when in the middle of a key sequence. ** Special Features and Configuration Options There are more options than the ones described here. All of the configurable variables are available through =M-x customize-group which-key=. *** Popup Type Options There are three different popup types that which-key can use by default to display the available keys. The variable =which-key-popup-type= decides which one is used. **** minibuffer #+BEGIN_SRC emacs-lisp (setq which-key-popup-type 'minibuffer) #+END_SRC Show keys in the minibuffer. **** side window #+BEGIN_SRC emacs-lisp (setq which-key-popup-type 'side-window) #+END_SRC Show keys in a side window. This popup type has further options: #+BEGIN_SRC emacs-lisp ;; location of which-key window. valid values: top, bottom, left, right, ;; or a list of any of the two. If it's a list, which-key will always try ;; the first location first. It will go to the second location if there is ;; not enough room to display any keys in the first location (setq which-key-side-window-location 'bottom) ;; max width of which-key window, when displayed at left or right. ;; valid values: number of columns (integer), or percentage out of current ;; frame's width (float larger than 0 and smaller than 1) (setq which-key-side-window-max-width 0.33) ;; max height of which-key window, when displayed at top or bottom. ;; valid values: number of lines (integer), or percentage out of current ;; frame's height (float larger than 0 and smaller than 1) (setq which-key-side-window-max-height 0.25) #+END_SRC **** frame #+BEGIN_SRC emacs-lisp (setq which-key-popup-type 'frame) #+END_SRC Show keys in a popup frame. This popup won't work very well in a terminal, where only one frame can be shown at any given moment. This popup type has further options: #+BEGIN_SRC emacs-lisp ;; max width of which-key frame: number of columns (an integer) (setq which-key-frame-max-width 60) ;; max height of which-key frame: number of lines (an integer) (setq which-key-frame-max-height 20) #+END_SRC **** custom Write your own display functions! This requires you to write three functions, =which-key-custom-popup-max-dimensions-function=, =which-key-custom-show-popup-function=, and =which-key-custom-hide-popup-function=. Refer to the documentation for those variables for more information, but here is a working example (this is the current implementation of side-window bottom). #+BEGIN_SRC emacs-lisp (setq which-key-popup-type 'custom) (defun which-key-custom-popup-max-dimensions-function (ignore) (cons (which-key-height-or-percentage-to-height which-key-side-window-max-height) (frame-width))) (defun fit-horizonatally () (let ((fit-window-to-buffer-horizontally t)) (fit-window-to-buffer))) (defun which-key-custom-show-popup-function (act-popup-dim) (let* ((alist '((window-width . fit-horizontally) (window-height . fit-window-to-buffer)))) (if (get-buffer-window which-key--buffer) (display-buffer-reuse-window which-key--buffer alist) (display-buffer-in-major-side-window which-key--buffer 'bottom 0 alist)))) (defun which-key-custom-hide-popup-function () (when (buffer-live-p which-key--buffer) (quit-windows-on which-key--buffer))) #+END_SRC *** Custom String Replacement Options #+NAME: #custom-string-replacement-options You can customize the way the keys show in the buffer using three different replacement methods, each of which corresponds replacement alist. The basic idea of behind each alist is that you specify a selection string in the =car= of each cons cell and the replacement string in the =cdr=. **** Automatic A newer option is to set =which-key-enable-extended-define-key= which advises =define-key= to allow which-key to pre-process its arguments. The statement #+BEGIN_SRC emacs-lisp (define-key some-map "f" '("foo" . long-name-for-command-foo)) #+END_SRC is valid in Emacs. Setting this variable makes which-key automatically replace the corresponding command name with the text in the string. A nice example is in naming prefixes. The following binds "b" to =nil= and names the binding as a prefix. #+BEGIN_SRC emacs-lisp (define-key some-map "b" '("bar-prefix")) #+END_SRC **** "Key-Based" replacement Using this method, the description of a key is replaced using a string that you provide. Here's an example #+BEGIN_SRC emacs-lisp (which-key-add-key-based-replacements "C-x C-f" "find files") #+END_SRC where the first string is the key combination whose description you want to replace, in a form suitable for =kbd=. For that key combination, which-key overwrites the description with the second string, "find files". In the second type of entry you can restrict the replacements to a major-mode. For example, #+BEGIN_SRC emacs-lisp (which-key-add-major-mode-key-based-replacements 'org-mode "C-c C-c" "Org C-c C-c" "C-c C-a" "Org Attach") #+END_SRC Here the first entry is the major-mode followed by a list of the first type of entries. In case the same key combination is listed under a major-mode and by itself, the major-mode version takes precedence. **** Key and Description replacement The second and third methods target the text used for the keys and the descriptions directly. The relevant variable is =which-key-replacement-alist=. Here's an example of one of the default key replacements #+BEGIN_SRC emacs-lisp (push '(("<\\([[:alnum:]-]+\\)>" . nil) . ("\\1" . nil)) which-key-replacement-alist) #+END_SRC Each element of the outer cons cell is a cons cell of the form =(KEY . BINDING)=. The =car= of the outer cons determines how to match key bindings while the =cdr= determines how those matches are replaced. See the docstring of =which-key-replacement-alist= for more information. The next example shows how to replace the description. #+BEGIN_SRC emacs-lisp (push '((nil . "left") . (nil . "lft")) which-key-replacement-alist) #+END_SRC Here is an example of using key replacement to include Unicode characters in the results. Unfortunately, using Unicode characters may upset the alignment of the which-key buffer, because Unicode characters can have different widths even in a monospace font and alignment is based on character width. #+BEGIN_SRC emacs-lisp (add-to-list 'which-key-replacement-alist '(("TAB" . nil) . ("↹" . nil)) (add-to-list 'which-key-replacement-alist '(("RET" . nil) . ("⏎" . nil)) (add-to-list 'which-key-replacement-alist '(("DEL" . nil) . ("⇤" . nil)) (add-to-list 'which-key-replacement-alist '(("SPC" . nil) . ("␣" . nil)) #+END_SRC The =cdr= may also be a function that receives a =cons= of the form =(KEY . BINDING)= and produces a =cons= of the same form. This allows for interesting ideas like this one suggested by [[https://github.com/pdcawley][@pdcawley]] in [[https://github.com/justbur/emacs-which-key/pull/147][PR #147]]. #+BEGIN_SRC emacs-lisp (push (cons '(nil . "paredit-mode") (lambda (kb) (cons (car kb) (if paredit-mode "[x] paredit-mode" "[ ] paredit-mode")))) which-key-replacement-alist) #+END_SRC The box will be checked if =paredit-mode= is currently active. *** Sorting Options By default the output is sorted by the key in a custom order. The default order is to sort lexicographically within each "class" of key, where the classes and their order are =Special (SPC, TAB, ...) < Single Character (ASCII) (a, ...) < Modifier (C-, M-, ...) < Other= You can control the order by setting this variable. This also shows the other available options. #+BEGIN_SRC emacs-lisp ;; default (setq which-key-sort-order 'which-key-key-order) ;; same as default, except single characters are sorted alphabetically ;; (setq which-key-sort-order 'which-key-key-order-alpha) ;; same as default, except all prefix keys are grouped together at the end ;; (setq which-key-sort-order 'which-key-prefix-then-key-order) ;; same as default, except all keys from local maps shown first ;; (setq which-key-sort-order 'which-key-local-then-key-order) ;; sort based on the key description ignoring case ;; (setq which-key-sort-order 'which-key-description-order) #+END_SRC *** Paging Options There are at least several prefixes that have many keys bound to them, like =C-x=. which-key displays as many keys as it can given your settings, but for these prefixes this may not be enough. The paging feature gives you the ability to bind a key to the function =which-key-C-h-dispatch= which will allow you to cycle through the pages without changing the key sequence you were in the middle of typing. There are two slightly different ways of doing this. **** Method 1 (default): Using C-h (or =help-char=) This is the easiest way, and is turned on by default. Use #+BEGIN_SRC emacs-lisp (setq which-key-use-C-h-commands nil) #+END_SRC to disable the behavior (this will only take effect after toggling which-key-mode if it is already enabled). =C-h= can be used with any prefix to switch pages when there are multiple pages of keys. This changes the default behavior of Emacs which is to show a list of key bindings that apply to a prefix. For example, if you were to type =C-x C-h= you would get a list of commands that follow =C-x=. This uses which-key instead to show those keys, and unlike the Emacs default saves the incomplete prefix that you just entered so that the next keystroke can complete the command. The commands are: - Cycle through the pages forward with =n= (or =C-n=) - Cycle backwards with =p= (or =C-p=) - Undo the last entered key (!) with =u= (or =C-u=) - Call the default command bound to =C-h=, usually =describe-prefix-bindings=, with =h= (or =C-h=) This is especially useful for those who like =helm-descbinds= but also want to use =C-h= as their which-key paging key. Note =C-h= is by default equivalent to =?= in this context. **** Method 2: Bind your own keys Essentially, all you need to do for a prefix like =C-x= is the following which will bind == to the relevant command. #+BEGIN_SRC emacs-lisp (define-key which-key-mode-map (kbd "C-x ") 'which-key-C-h-dispatch) #+END_SRC This is completely equivalent to #+BEGIN_SRC emacs-lisp (setq which-key-paging-prefixes '("C-x")) (setq which-key-paging-key "") #+END_SRC where the latter are provided for convenience if you have a lot of prefixes. *** Face Customization Options The faces that which-key uses are | Face | Applied To | Default Definition | |----------------------------------------+-------------------------------+-------------------------------------------------------------| | =which-key-key-face= | Every key sequence | =:inherit font-lock-constant-face= | | =which-key-separator-face= | The separator (→) | =:inherit font-lock-comment-face= | | =which-key-note-face= | Hints and notes | =:inherit which-key-separator-face= | | =which-key-special-key-face= | User-defined special keys | =:inherit which-key-key-face :inverse-video t :weight bold= | | =which-key-group-description-face= | Command groups (i.e, keymaps) | =:inherit font-lock-keyword-face= | | =which-key-command-description-face= | Commands not in local-map | =:inherit font-lock-function-name-face= | | =which-key-local-map-description-face= | Commands in local-map | =:inherit which-key-command-description-face= | The last two deserve some explanation. A command lives in one of many possible keymaps. You can distinguish between local maps, which depend on the buffer you are in, which modes are active, etc., and the global map which applies everywhere. It might be useful for you to distinguish between the two. One way to do this is to remove the default face from =which-key-command-description-face= like this #+BEGIN_SRC emacs-lisp (set-face-attribute 'which-key-command-description-face nil :inherit nil) #+END_SRC another is to make the local map keys appear in bold #+BEGIN_SRC emacs-lisp (set-face-attribute 'which-key-local-map-description-face nil :weight 'bold) #+END_SRC You can also use =M-x customize-face= to customize any of the above faces to your liking. *** Other Options #+NAME: #other-options The options below are also available through customize. Their defaults are shown. #+BEGIN_SRC emacs-lisp ;; Set the time delay (in seconds) for the which-key popup to appear. A value of ;; zero might cause issues so a non-zero value is recommended. (setq which-key-idle-delay 1.0) ;; Set the maximum length (in characters) for key descriptions (commands or ;; prefixes). Descriptions that are longer are truncated and have ".." added. (setq which-key-max-description-length 27) ;; Use additonal padding between columns of keys. This variable specifies the ;; number of spaces to add to the left of each column. (setq which-key-add-column-padding 0) ;; The maximum number of columns to display in the which-key buffer. nil means ;; don't impose a maximum. (setq which-key-max-display-columns nil) ;; Set the separator used between keys and descriptions. Change this setting to ;; an ASCII character if your font does not show the default arrow. The second ;; setting here allows for extra padding for Unicode characters. which-key uses ;; characters as a means of width measurement, so wide Unicode characters can ;; throw off the calculation. (setq which-key-separator " → " ) (setq which-key-unicode-correction 3) ;; Set the prefix string that will be inserted in front of prefix commands ;; (i.e., commands that represent a sub-map). (setq which-key-prefix-prefix "+" ) ;; Set the special keys. These are automatically truncated to one character and ;; have which-key-special-key-face applied. Disabled by default. An example ;; setting is ;; (setq which-key-special-keys '("SPC" "TAB" "RET" "ESC" "DEL")) (setq which-key-special-keys nil) ;; Show the key prefix on the left, top, or bottom (nil means hide the prefix). ;; The prefix consists of the keys you have typed so far. which-key also shows ;; the page information along with the prefix. (setq which-key-show-prefix 'left) ;; Set to t to show the count of keys shown vs. total keys in the mode line. (setq which-key-show-remaining-keys nil) #+END_SRC ** Support for Third-Party Libraries Some support is provided for third-party libraries which don't use standard methods of looking up commands. Some of these need to be enabled explicitly. This code includes some hacks, so please report any problems. *** Key-chord Enabled by default. *** Evil operators Evil motions and text objects following an operator like =d= are not all looked up in a standard way. Support is controlled through =which-key-allow-evil-operators= which should be non-nil if evil is loaded before which-key and through =which-key-show-operator-state-maps= which needs to be enabled explicitly because it is more of a hack. The former allows for the inner and outer text object maps to show, while the latter shows motions as well. *** God-mode Call =(which-key-enable-god-mode-support)= after loading god-mode to enable support for god-mode key sequences. This is new and experimental, so please report any issues. ** More Examples *** Nice Display with Split Frame Unlike guide-key, which-key looks good even if the frame is split into several windows. #+CAPTION: which-key in a frame with 3 horizontal splits [[./img/which-key-right-split.png]] #+CAPTION: which-key in a frame with 2 vertical splits [[./img/which-key-bottom-split.png]] ** Thanks Special thanks to - [[https://github.com/bmag][@bmag]] for helping with the initial development and finding many bugs. - [[https://github/iqbalansari][@iqbalansari]] who among other things adapted the code to make =which-key-show-top-level= possible. emacs-which-key-3.1.0/which-key-tests.el0000644000175000017500000001137513225014216017700 0ustar dogslegdogsleg;;; which-key-tests.el --- Tests for which-key.el -*- lexical-binding: t; -*- ;; Copyright (C) 2017 Free Software Foundation, Inc. ;; Author: Justin Burkett ;; Maintainer: Justin Burkett ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; Tests for which-key.el ;;; Code: (require 'which-key) (require 'ert) (ert-deftest which-key-test-prefix-declaration () "Test `which-key-declare-prefixes' and `which-key-declare-prefixes-for-mode'. See Bug #109." (let* ((major-mode 'test-mode) which-key-replacement-alist) (which-key-add-key-based-replacements "SPC C-c" '("complete" . "complete title") "SPC C-k" "cancel") (which-key-add-major-mode-key-based-replacements 'test-mode "C-c C-c" '("complete" . "complete title") "C-c C-k" "cancel") (should (equal (which-key--maybe-replace '("SPC C-k" . "")) '("SPC C-k" . "cancel"))) (should (equal (which-key--maybe-replace '("C-c C-c" . "")) '("C-c C-c" . "complete"))))) (ert-deftest which-key-test--maybe-replace () "Test `which-key--maybe-replace'. See #154" (let ((which-key-replacement-alist '((("C-c [a-d]" . nil) . ("C-c a" . "c-c a")) (("C-c .+" . nil) . ("C-c *" . "c-c *")))) (test-mode-1 t) (test-mode-2 nil) which-key-allow-multiple-replacements) (which-key-add-key-based-replacements "C-c ." "test ." "SPC ." "SPC ." "C-c \\" "regexp quoting" "C-c [" "bad regexp" "SPC t1" (lambda (kb) (cons (car kb) (if test-mode-1 "[x] test mode" "[ ] test mode"))) "SPC t2" (lambda (kb) (cons (car kb) (if test-mode-2 "[x] test mode" "[ ] test mode")))) (should (equal (which-key--maybe-replace '("C-c g" . "test")) '("C-c *" . "c-c *"))) (should (equal (which-key--maybe-replace '("C-c b" . "test")) '("C-c a" . "c-c a"))) (should (equal (which-key--maybe-replace '("C-c ." . "not test .")) '("C-c ." . "test ."))) (should (not (equal (which-key--maybe-replace '("C-c +" . "not test .")) '("C-c ." . "test .")))) (should (equal (which-key--maybe-replace '("C-c [" . "orig bad regexp")) '("C-c [" . "bad regexp"))) (should (equal (which-key--maybe-replace '("C-c \\" . "pre quoting")) '("C-c \\" . "regexp quoting"))) ;; see #155 (should (equal (which-key--maybe-replace '("SPC . ." . "don't replace")) '("SPC . ." . "don't replace"))) (should (equal (which-key--maybe-replace '("SPC t 1" . "test mode")) '("SPC t 1" . "[x] test mode"))) (should (equal (which-key--maybe-replace '("SPC t 2" . "test mode")) '("SPC t 2" . "[ ] test mode"))))) (ert-deftest which-key-test--maybe-replace-multiple () "Test `which-key-allow-multiple-replacements'. See #156." (let ((which-key-replacement-alist '(((nil . "helm") . (nil . "HLM")) ((nil . "projectile") . (nil . "PRJTL")))) (which-key-allow-multiple-replacements t)) (should (equal (which-key--maybe-replace '("C-c C-c" . "helm-x")) '("C-c C-c" . "HLM-x"))) (should (equal (which-key--maybe-replace '("C-c C-c" . "projectile-x")) '("C-c C-c" . "PRJTL-x"))) (should (equal (which-key--maybe-replace '("C-c C-c" . "helm-projectile-x")) '("C-c C-c" . "HLM-PRJTL-x"))))) (ert-deftest which-key-test--key-extraction () "Test `which-key--extract-key'. See #161." (should (equal (which-key--extract-key "SPC a") "a")) (should (equal (which-key--extract-key "C-x a") "a")) (should (equal (which-key--extract-key " b a") "a")) (should (equal (which-key--extract-key " a .. c") "a .. c")) (should (equal (which-key--extract-key "M-a a .. c") "a .. c"))) (provide 'which-key-tests) ;;; which-key-tests.el ends here emacs-which-key-3.1.0/which-key.el0000644000175000017500000031222713225014216016540 0ustar dogslegdogsleg;;; which-key.el --- Display available keybindings in popup -*- lexical-binding: t; -*- ;; Copyright (C) 2017 Free Software Foundation, Inc. ;; Author: Justin Burkett ;; Maintainer: Justin Burkett ;; URL: https://github.com/justbur/emacs-which-key ;; Version: 3.1.0 ;; Keywords: ;; Package-Requires: ((emacs "24.4")) ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; which-key provides the minor mode which-key-mode for Emacs. The mode displays ;; the key bindings following your currently entered incomplete command (a ;; prefix) in a popup. For example, after enabling the minor mode if you enter ;; C-x and wait for the default of 1 second the minibuffer will expand with all ;; of the available key bindings that follow C-x (or as many as space allows ;; given your settings). This includes prefixes like C-x 8 which are shown in a ;; different face. Screenshots of what the popup will look like along with ;; information about additional features can be found at ;; https://github.com/justbur/emacs-which-key. ;; ;;; Code: (require 'cl-lib) (require 'button) (require 'regexp-opt) ;; For compiler (defvar evil-operator-shortcut-map) (defvar evil-operator-state-map) (defvar evil-motion-state-map) (defvar golden-ratio-mode) (declare-function evil-get-command-property "ext:evil-common.el") ;;; Options (defgroup which-key nil "Customization options for which-key-mode" :group 'help :prefix "which-key-") (defcustom which-key-idle-delay 1.0 "Delay (in seconds) for which-key buffer to popup. A value of zero might lead to issues, so a non-zero value is recommended (see https://github.com/justbur/emacs-which-key/issues/134)." :group 'which-key :type 'float) (defcustom which-key-idle-secondary-delay nil "Once the which-key buffer shows once for a key sequence reduce the idle time to this amount (in seconds). This makes it possible to shorten the delay for subsequent popups in the same key sequence. The default is for this value to be nil, which disables this behavior." :group 'which-key :type 'float) (defcustom which-key-echo-keystrokes (if (and echo-keystrokes (> (+ echo-keystrokes 0.01) which-key-idle-delay)) (/ (float which-key-idle-delay) 4) echo-keystrokes) "Value to use for `echo-keystrokes'. This only applies if `which-key-popup-type' is minibuffer or `which-key-show-prefix' is echo. It needs to be less than `which-key-idle-delay' or else the keystroke echo will erase the which-key popup." :group 'which-key :type 'float) (defcustom which-key-max-description-length 27 "Truncate the description of keys to this length. Also adds \"..\". If nil, disable any truncation." :group 'which-key :type 'integer) (defcustom which-key-add-column-padding 0 "Additional padding (number of spaces) to add to the left of each key column." :group 'which-key :type 'integer) (defcustom which-key-unicode-correction 3 "Correction for wide unicode characters. Since we measure width in terms of the number of characters, Unicode characters that are wider than ASCII characters throw off the calculation for available width in the which-key buffer. This variable allows you to adjust for the wide unicode characters by artificially reducing the available width in the buffer. The default of 3 means allow for the total extra width contributed by any wide unicode characters to be up to one additional ASCII character in the which-key buffer. Increase this number if you are seeing charaters get cutoff on the right side of the which-key popup." :group 'which-key :type 'integer) (defcustom which-key-dont-use-unicode nil "If non-nil, don't use any unicode characters in default setup." :group 'which-key :type 'integer) (defcustom which-key-separator (if which-key-dont-use-unicode " : " " → ") "Separator to use between key and description. Default is \" → \", unless `which-key-dont-use-unicode' is non nil, in which case the default is \" : \"." :group 'which-key :type 'string) (defcustom which-key-prefix-prefix "+" "String to insert in front of prefix commands (i.e., commands that represent a sub-map). Default is \"+\"." :group 'which-key :type 'string) (defcustom which-key-compute-remaps nil "If non-nil, show remapped command if a command has been remapped given the currently active keymaps." :group 'which-key :type 'boolean) (defvar which-key-key-replacement-alist nil) (make-obsolete-variable 'which-key-key-replacement-alist 'which-key-replacement-alist "2016-11-21") (defvar which-key-description-replacement-alist nil) (make-obsolete-variable 'which-key-description-replacement-alist 'which-key-replacement-alist "2016-11-21") (defvar which-key-key-based-description-replacement-alist nil) (make-obsolete-variable 'which-key-key-based-description-replacement-alist 'which-key-replacement-alist "2016-11-21") (defcustom which-key-replacement-alist (delq nil `(((nil . "Prefix Command") . (nil . "prefix")) ((nil . "\\`\\?\\?\\'") . (nil . "lambda")) ((nil . "which-key-show-next-page-no-cycle") . (nil . "wk next pg")) ,@(unless which-key-dont-use-unicode '((("") . ("←")) (("") . ("→")))) (("<\\([[:alnum:]-]+\\)>") . ("\\1")))) "Association list to determine how to manipulate descriptions of key bindings in the which-key popup. Each element of the list is a nested cons cell with the format \(MATCH CONS . REPLACEMENT\). The MATCH CONS determines when a replacement should occur and REPLACEMENT determines how the replacement should occur. Each may have the format \(KEY REGEXP . BINDING REGEXP\). For the replacement to apply the key binding must match both the KEY REGEXP and the BINDING REGEXP. A value of nil in either position can be used to match every possibility. The replacement is performed by using `replace-regexp-in-string' on the KEY REGEXP from the MATCH CONS and REPLACEMENT when it is a cons cell, and then similarly for the BINDING REGEXP. A nil value in the BINDING REGEXP position cancels the replacement. For example, the entry \(\(nil . \"Prefix Command\"\) . \(nil . \"prefix\"\)\) matches any binding with the descriptions \"Prefix Command\" and replaces the description with \"prefix\", ignoring the corresponding key. REPLACEMENT may also be a function taking a cons cell \(KEY . BINDING\) and producing a new corresponding cons cell. If REPLACEMENT is anything other than a cons cell \(and non nil\) the key binding is ignored by which-key. Finally, you can multiple replacements to occur for a given key binding by setting `which-key-allow-multiple-replacements' to a non-nil value." :group 'which-key :type '(alist :key-type (cons (choice regexp nil) (choice regexp nil)) :value-type (cons (choice string nil) (choice string nil)))) (when (bound-and-true-p which-key-key-replacement-alist) (mapc (lambda (repl) (push (cons (cons (car repl) nil) (cons (cdr repl) nil)) which-key-replacement-alist)) which-key-key-replacement-alist)) (when (bound-and-true-p which-key-description-replacement-alist) (mapc (lambda (repl) (push (cons (cons nil (car repl)) (cons nil (cdr repl))) which-key-replacement-alist)) which-key-description-replacement-alist)) (defcustom which-key-allow-multiple-replacements nil "Allow a key binding to match and be modified by multiple elements in `which-key-replacement-alist' if non-nil. When nil, only the first match is used to perform replacements from `which-key-replacement-alist'." :group 'which-key :type 'boolean) (defcustom which-key-highlighted-command-list '() "A list of strings and/or cons cells used to highlight certain commands. If the element is a string, assume it is a regexp pattern for matching command names and use `which-key-highlighted-command-face' for any matching names. If the element is a cons cell, it should take the form (regexp . face to apply)." :group 'which-key :type '(repeat (choice string (cons regexp face)))) (defcustom which-key-special-keys '() "These keys will automatically be truncated to one character and have `which-key-special-key-face' applied to them. This is disabled by default. Try this to see the effect. \(setq which-key-special-keys '(\"SPC\" \"TAB\" \"RET\" \"ESC\" \"DEL\")\)" :group 'which-key :type '(repeat string)) (defcustom which-key-buffer-name " *which-key*" "Name of which-key buffer." :group 'which-key :type 'string) (defcustom which-key-show-prefix 'echo "Whether to and where to display the current prefix sequence. Possible choices are echo for echo area (the default), left, top and nil. Nil turns the feature off." :group 'which-key :type '(radio (const :tag "Left of the keys" left) (const :tag "In the first line" top) (const :tag "In the last line" bottom) (const :tag "In the echo area" echo) (const :tag "In the mode-line" mode-line) (const :tag "Hide" nil))) (defcustom which-key-popup-type 'side-window "Supported types are minibuffer, side-window, frame, and custom." :group 'which-key :type '(radio (const :tag "Show in minibuffer" minibuffer) (const :tag "Show in side window" side-window) (const :tag "Show in popup frame" frame) (const :tag "Use your custom display functions" custom))) (defcustom which-key-min-display-lines 1 "The minimum number of horizontal lines to display in the which-key buffer." :group 'which-key :type 'integer) (defcustom which-key-max-display-columns nil "The maximum number of columns to display in the which-key buffer. nil means don't impose a maximum." :group 'which-key :type 'integer) (defcustom which-key-side-window-location 'bottom "Location of which-key popup when `which-key-popup-type' is side-window. Should be one of top, bottom, left or right. You can also specify a list of two locations, like (right bottom). In this case, the first location is tried. If there is not enough room, the second location is tried." :group 'which-key :type '(radio (const right) (const bottom) (const left) (const top) (const (right bottom)) (const (bottom right)))) (defcustom which-key-side-window-slot 0 "The `slot' to use for `display-buffer-in-side-window' when `which-key-popup-type' is 'side-window. Quoting from the docstring of `display-buffer-in-side-window', ‘slot’ if non-nil, specifies the window slot where to display BUFFER. A value of zero or nil means use the middle slot on the specified side. A negative value means use a slot preceding (that is, above or on the left of) the middle slot. A positive value means use a slot following (that is, below or on the right of) the middle slot. The default is zero." :group 'which-key :type 'integer) (defcustom which-key-side-window-max-width 0.333 "Maximum width of which-key popup when type is side-window and location is left or right. This variable can also be a number between 0 and 1. In that case, it denotes a percentage out of the frame's width." :group 'which-key :type 'float) (defcustom which-key-side-window-max-height 0.25 "Maximum height of which-key popup when type is side-window and location is top or bottom. This variable can also be a number between 0 and 1. In that case, it denotes a percentage out of the frame's height." :group 'which-key :type 'float) (defcustom which-key-frame-max-width 60 "Maximum width of which-key popup when type is frame." :group 'which-key :type 'integer) (defcustom which-key-frame-max-height 20 "Maximum height of which-key popup when type is frame." :group 'which-key :type 'integer) (defcustom which-key-allow-imprecise-window-fit nil "If non-nil allow which-key to use a less intensive method of fitting the popup window to the buffer. If you are noticing lag when the which-key popup displays turning this on may help. See https://github.com/justbur/emacs-which-key/issues/130" :group 'which-key :type 'boolean) (defcustom which-key-show-remaining-keys nil "Show remaining keys in last slot, when keys are hidden." :group 'which-key :type '(radio (const :tag "Yes" t) (const :tag "No" nil))) (defcustom which-key-sort-order 'which-key-key-order "If nil, do not resort the output from `describe-buffer-bindings' which groups by mode. Ordering options are 1. `which-key-key-order': by key (default) 2. `which-key-key-order-alpha': by key using alphabetical order 3. `which-key-description-order': by description 4. `which-key-prefix-then-key-order': prefix (no prefix first) then key 5. `which-key-local-then-key-order': local binding then key See the README and the docstrings for those functions for more information." :group 'which-key :type '(choice (function-item which-key-key-order) (function-item which-key-key-order-alpha) (function-item which-key-description-order) (function-item which-key-prefix-then-key-order) (function-item which-key-local-then-key-order))) (defcustom which-key-sort-uppercase-first t "If non-nil, uppercase comes before lowercase in sorting function chosen in `which-key-sort-order'. Otherwise, the order is reversed." :group 'which-key :type 'boolean) (defcustom which-key-paging-prefixes '() "Enable paging for these prefixes." :group 'which-key :type '(repeat string)) (defcustom which-key-paging-key "" "Key to use for changing pages. Bound after each of the prefixes in `which-key-paging-prefixes'" :group 'which-key :type 'string) ;; (defcustom which-key-undo-key nil ;; "Key (string) to use for undoing keypresses. Bound recursively ;; in each of the maps in `which-key-undo-keymaps'." ;; :group 'which-key ;; :type 'string) ;; (defcustom which-key-undo-keymaps '() ;; "Keymaps in which to bind `which-key-undo-key'" ;; :group 'which-key ;; :type '(repeat symbol)) (defcustom which-key-use-C-h-commands t "Use C-h for paging if non-nil. Normally C-h after a prefix calls `describe-prefix-bindings'. This changes that command to a which-key paging command when which-key-mode is active." :group 'which-key :type 'boolean) (defcustom which-key-is-verbose nil "Whether to warn about potential mistakes in configuration." :group 'which-key :type 'boolean) (defvar which-key-C-h-map (let ((map (make-sparse-keymap))) (dolist (bind '(("\C-a" . which-key-abort) ("a" . which-key-abort) ("\C-h" . which-key-show-standard-help) ("h" . which-key-show-standard-help) ("\C-n" . which-key-show-next-page-cycle) ("n" . which-key-show-next-page-cycle) ("\C-p" . which-key-show-previous-page-cycle) ("p" . which-key-show-previous-page-cycle) ("\C-u" . which-key-undo-key) ("u" . which-key-undo-key))) (define-key map (car bind) (cdr bind))) map) "Keymap for C-h commands.") (defvar which-key--paging-functions '(which-key-C-h-dispatch which-key-turn-page which-key-show-next-page-cycle which-key-show-next-page-no-cycle which-key-show-previous-page-cycle which-key-show-previous-page-no-cycle which-key-undo-key which-key-undo)) (defcustom which-key-hide-alt-key-translations t "Hide key translations using Alt key if non nil. These translations are not relevant most of the times since a lot of terminals issue META modifier for the Alt key. See http://www.gnu.org/software/emacs/manual/html_node/emacs/Modifier-Keys.html" :group 'which-key :type 'boolean) (defcustom which-key-delay-functions nil "A list of functions that may decide whether to delay the which-key popup based on the current incomplete key sequence. Each function in the list is run with two arguments, the current key sequence as produced by `key-description' and the length of the key sequence. If the popup should be delayed based on that key sequence, the function should return the delay time in seconds. Returning nil means no delay. The first function in this list to return a value is the value that is used. The delay time is effectively added to the normal `which-key-idle-delay'." :group 'which-key :type '(repeat function)) (defcustom which-key-allow-regexps nil "A list of regexp strings to use to filter key sequences. When non-nil, for a key sequence to trigger the which-key popup it must match one of the regexps in this list. The format of the key sequences is what is produced by `key-description'." :group 'which-key :type '(repeat regexp)) (defcustom which-key-inhibit-regexps nil "Similar to `which-key-allow-regexps', a list of regexp strings to use to filter key sequences. When non-nil, for a key sequence to trigger the which-key popup it cannot match one of the regexps in this list. The format of the key sequences is what is produced by `key-description'." :group 'which-key :type '(repeat regexp)) (defcustom which-key-show-transient-maps nil "Show keymaps created by `set-transient-map' when applicable. More specifically, detect when `overriding-terminal-local-map' is set (this is the keymap used by `set-transient-map') and display it." :group 'which-key :type 'boolean) (defcustom which-key-enable-extended-define-key nil "Advise `define-key' to make which-key aware of definitions of the form \(define-key KEYMAP KEY '(\"DESCRIPTION\" . DEF)) With the advice, this definition will have the side effect of creating a replacement in `which-key-replacement-alist' that replaces DEF with DESCRIPTION when the key sequence ends in KEY. Using a cons cell like this is a valid definition for `define-key'. All this does is to make which-key aware of it. Since many higher level keybinding functions use `define-key' internally, this will affect most if not all of those as well. This variable must be set before loading which-key." :group 'which-key :type 'boolean) ;; Hooks (defcustom which-key-init-buffer-hook '() "Hook run when which-key buffer is initialized." :group 'which-key :type 'hook) ;;;; Faces (defgroup which-key-faces nil "Faces for which-key-mode" :group 'which-key :prefix "which-key-") (defface which-key-key-face '((t . (:inherit font-lock-constant-face))) "Face for which-key keys" :group 'which-key-faces) (defface which-key-separator-face '((t . (:inherit font-lock-comment-face))) "Face for the separator (default separator is an arrow)" :group 'which-key-faces) (defface which-key-note-face '((t . (:inherit which-key-separator-face))) "Face for notes or hints occasionally provided" :group 'which-key-faces) (defface which-key-command-description-face '((t . (:inherit font-lock-function-name-face))) "Face for the key description when it is a command" :group 'which-key-faces) (defface which-key-local-map-description-face '((t . (:inherit which-key-command-description-face))) "Face for the key description when it is found in `current-local-map'" :group 'which-key-faces) (defface which-key-highlighted-command-face '((t . (:inherit which-key-command-description-face :underline t))) "Default face for the command description when it is a command and it matches a string in `which-key-highlighted-command-list'." :group 'which-key-faces) (defface which-key-group-description-face '((t . (:inherit font-lock-keyword-face))) "Face for the key description when it is a group or prefix" :group 'which-key-faces) (defface which-key-special-key-face '((t . (:inherit which-key-key-face :inverse-video t :weight bold))) "Face for special keys (SPC, TAB, RET)" :group 'which-key-faces) ;;;; Custom popup (defcustom which-key-custom-popup-max-dimensions-function nil "Variable to hold a custom max-dimensions function. Will be passed the width of the active window and is expected to return the maximum height in lines and width in characters of the which-key popup in the form a cons cell (height . width)." :group 'which-key :type 'function) (defcustom which-key-custom-hide-popup-function nil "Variable to hold a custom hide-popup function. It takes no arguments and the return value is ignored." :group 'which-key :type 'function) (defcustom which-key-custom-show-popup-function nil "Variable to hold a custom show-popup function. Will be passed the required dimensions in the form (height . width) in lines and characters respectively. The return value is ignored." :group 'which-key :type 'function) (defcustom which-key-lighter " WK" "Minor mode lighter to use in the mode-line." :group 'which-key :type 'string) (defvar which-key-inhibit nil "Prevent which-key from popping up momentarily by setting this to a non-nil value for the execution of a command. Like this \(let \(\(which-key-inhibit t\)\) ...\)") (defvar which-key-keymap-history nil "History of keymap selections in functions like `which-key-show-keymap'.") ;;; Internal Vars (defvar which-key--buffer nil "Internal: Holds reference to which-key buffer.") (defvar which-key--timer nil "Internal: Holds reference to open window timer.") (defvar which-key--secondary-timer-active nil "Internal: Non-nil if the secondary timer is active.") (defvar which-key--paging-timer nil "Internal: Holds reference to timer for paging.") (defvar which-key--frame nil "Internal: Holds reference to which-key frame. Used when `which-key-popup-type' is frame.") (defvar which-key--echo-keystrokes-backup nil "Internal: Backup the initial value of `echo-keystrokes'.") (defvar which-key--prefix-help-cmd-backup nil "Internal: Backup the value of `prefix-help-command'.") (defvar which-key--pages-plist nil "Internal: Holds page objects") (defvar which-key--current-prefix nil "Internal: Holds current prefix") (defvar which-key--current-page-n nil "Internal: Current pages of showing buffer. Nil means no buffer showing.") (defvar which-key--on-last-page nil "Internal: Non-nil if showing last page.") (defvar which-key--last-try-2-loc nil "Internal: Last location of side-window when two locations used.") (defvar which-key--multiple-locations nil) (defvar which-key--using-top-level nil) (defvar which-key--using-show-keymap nil) (defvar which-key--using-show-operator-keymap nil) (defvar which-key--inhibit-next-operator-popup nil) (defvar which-key--current-show-keymap-name nil) (defvar which-key--prior-show-keymap-args nil) (defvar which-key--previous-frame-size nil) (defvar which-key--prefix-title-alist nil) (defvar which-key--debug nil) (make-obsolete-variable 'which-key-prefix-name-alist nil "2016-10-05") (make-obsolete-variable 'which-key-prefix-title-alist nil "2016-10-05") ;;; Third-party library support ;;;; Evil (defcustom which-key-allow-evil-operators (boundp 'evil-this-operator) "Allow popup to show for evil operators. The popup is normally inhibited in the middle of commands, but setting this to non-nil will override this behavior for evil operators." :group 'which-key :type 'boolean) (defcustom which-key-show-operator-state-maps nil "Experimental: Try to show the right keys following an evil command that reads a motion, such as \"y\", \"d\" and \"c\" from normal state. This is experimental, because there might be some valid keys missing and it might be showing some invalid keys." :group 'which-key :type 'boolean) ;;;;; God-mode (defvar which-key--god-mode-support-enabled nil "Support god-mode if non-nil. This is experimental, so you need to explicitly opt-in for now. Please report any problems at github.") (defvar which-key--god-mode-key-string nil "Holds key string to use for god-mode support.") (defadvice god-mode-lookup-command (around which-key--god-mode-lookup-command-advice disable) (setq which-key--god-mode-key-string (ad-get-arg 0)) (unwind-protect ad-do-it (when (bound-and-true-p which-key-mode) (which-key--hide-popup)))) (defun which-key-enable-god-mode-support (&optional disable) "Enable support for god-mode if non-nil. This is experimental, so you need to explicitly opt-in for now. Please report any problems at github. If DISABLE is non-nil disable support." (interactive "P") (setq which-key--god-mode-support-enabled (null disable)) (if disable (ad-disable-advice 'god-mode-lookup-command 'around 'which-key--god-mode-lookup-command-advice) (ad-enable-advice 'god-mode-lookup-command 'around 'which-key--god-mode-lookup-command-advice)) (ad-activate 'god-mode-lookup-command)) ;;; Mode ;;;###autoload (define-minor-mode which-key-mode "Toggle which-key-mode." :global t :lighter which-key-lighter :keymap (let ((map (make-sparse-keymap))) (mapc (lambda (prefix) (define-key map (kbd (concat prefix " " which-key-paging-key)) #'which-key-C-h-dispatch)) which-key-paging-prefixes) map) (if which-key-mode (progn (setq which-key--echo-keystrokes-backup echo-keystrokes) (when (or (eq which-key-show-prefix 'echo) (eq which-key-popup-type 'minibuffer)) (which-key--setup-echo-keystrokes)) (unless (member prefix-help-command which-key--paging-functions) (setq which-key--prefix-help-cmd-backup prefix-help-command)) (when which-key-use-C-h-commands (setq prefix-help-command #'which-key-C-h-dispatch)) (when which-key-show-remaining-keys (add-hook 'pre-command-hook #'which-key--lighter-restore)) (add-hook 'pre-command-hook #'which-key--hide-popup) (add-hook 'focus-out-hook #'which-key--stop-timer) (add-hook 'focus-in-hook #'which-key--start-timer) (add-hook 'window-configuration-change-hook 'which-key--hide-popup-on-frame-size-change) (which-key--start-timer)) (setq echo-keystrokes which-key--echo-keystrokes-backup) (when which-key--prefix-help-cmd-backup (setq prefix-help-command which-key--prefix-help-cmd-backup)) (when which-key-show-remaining-keys (remove-hook 'pre-command-hook #'which-key--lighter-restore)) (remove-hook 'pre-command-hook #'which-key--hide-popup) (remove-hook 'focus-out-hook #'which-key--stop-timer) (remove-hook 'focus-in-hook #'which-key--start-timer) (remove-hook 'window-configuration-change-hook 'which-key--hide-popup-on-frame-size-change) (which-key--stop-timer))) (defun which-key--init-buffer () "Initialize which-key buffer" (unless (buffer-live-p which-key--buffer) (setq which-key--buffer (get-buffer-create which-key-buffer-name)) (with-current-buffer which-key--buffer ;; suppress confusing minibuffer message (let (message-log-max) (toggle-truncate-lines 1) (message "")) (setq-local cursor-type nil) (setq-local cursor-in-non-selected-windows nil) (setq-local mode-line-format nil) (setq-local word-wrap nil) (setq-local show-trailing-whitespace nil) (run-hooks 'which-key-init-buffer-hook)))) (defun which-key--setup-echo-keystrokes () "Reduce `echo-keystrokes' if necessary (it will interfere if it's set too high)." (when (and echo-keystrokes (> (abs (- echo-keystrokes which-key-echo-keystrokes)) 0.000001)) (if (> which-key-idle-delay which-key-echo-keystrokes) (setq echo-keystrokes which-key-echo-keystrokes) (setq which-key-echo-keystrokes (/ (float which-key-idle-delay) 4) echo-keystrokes which-key-echo-keystrokes)))) (defun which-key-remove-default-unicode-chars () "Use of `which-key-dont-use-unicode' is preferred to this function, but it's included here in case someone cannot set that variable early enough in their configuration, if they are using a starter kit for example." (when (string-equal which-key-separator " → ") (setq which-key-separator " : ")) (setq which-key-key-replacement-alist (delete '("left" . "←") which-key-key-replacement-alist)) (setq which-key-key-replacement-alist (delete '("right" . "→") which-key-key-replacement-alist))) ;;; Default configuration functions for use by users. ;;;###autoload (defun which-key-setup-side-window-right () "Apply suggested settings for side-window that opens on right." (interactive) (setq which-key-popup-type 'side-window which-key-side-window-location 'right which-key-show-prefix 'top)) ;;;###autoload (defun which-key-setup-side-window-right-bottom () "Apply suggested settings for side-window that opens on right if there is space and the bottom otherwise." (interactive) (setq which-key-popup-type 'side-window which-key-side-window-location '(right bottom) which-key-show-prefix 'top)) ;;;###autoload (defun which-key-setup-side-window-bottom () "Apply suggested settings for side-window that opens on bottom." (interactive) (which-key--setup-echo-keystrokes) (setq which-key-popup-type 'side-window which-key-side-window-location 'bottom which-key-show-prefix 'echo)) ;;;###autoload (defun which-key-setup-minibuffer () "Apply suggested settings for minibuffer. Do not use this setup if you use the paging commands. Instead use `which-key-setup-side-window-bottom', which is nearly identical but more functional." (interactive) (which-key--setup-echo-keystrokes) (setq which-key-popup-type 'minibuffer which-key-show-prefix 'left)) ;;; Helper functions to modify replacement lists. ;;;###autoload (defun which-key-add-key-based-replacements (key-sequence replacement &rest more) "Replace the description of KEY-SEQUENCE with REPLACEMENT. KEY-SEQUENCE is a string suitable for use in `kbd'. REPLACEMENT may either be a string, as in \(which-key-add-key-based-replacements \"C-x 1\" \"maximize\"\) a cons of two strings as in \(which-key-add-key-based-replacements \"C-x 8\" '(\"unicode\" . \"Unicode keys\")\) or a function that takes a \(KEY . BINDING\) cons and returns a replacement. In the second case, the second string is used to provide a longer name for the keys under a prefix. MORE allows you to specifcy additional KEY REPLACEMENT pairs. All replacements are added to `which-key-key-based-description-replacement-alist'." ;; TODO: Make interactive (while key-sequence ;; normalize key sequences before adding (let ((key-seq (key-description (kbd key-sequence))) (replace (or (and (functionp replacement) replacement) (car-safe replacement) replacement))) (push (cons (cons (concat "\\`" (regexp-quote key-seq) "\\'") nil) (if (functionp replace) replace (cons nil replace))) which-key-replacement-alist) (when (and (not (functionp replacement)) (consp replacement)) (push (cons key-seq (cdr-safe replacement)) which-key--prefix-title-alist))) (setq key-sequence (pop more) replacement (pop more)))) (put 'which-key-add-key-based-replacements 'lisp-indent-function 'defun) ;;;###autoload (defun which-key-add-major-mode-key-based-replacements (mode key-sequence replacement &rest more) "Functions like `which-key-add-key-based-replacements'. The difference is that MODE specifies the `major-mode' that must be active for KEY-SEQUENCE and REPLACEMENT (MORE contains addition KEY-SEQUENCE REPLACEMENT pairs) to apply." ;; TODO: Make interactive (when (not (symbolp mode)) (error "MODE should be a symbol corresponding to a value of major-mode")) (let ((mode-alist (or (cdr-safe (assq mode which-key-replacement-alist)) (list))) (title-mode-alist (or (cdr-safe (assq mode which-key--prefix-title-alist)) (list)))) (while key-sequence ;; normalize key sequences before adding (let ((key-seq (key-description (kbd key-sequence))) (replace (or (and (functionp replacement) replacement) (car-safe replacement) replacement))) (push (cons (cons (concat "\\`" (regexp-quote key-seq) "\\'") nil) (if (functionp replace) replace (cons nil replace))) mode-alist) (when (and (not (functionp replacement)) (consp replacement)) (push (cons key-seq (cdr-safe replacement)) title-mode-alist))) (setq key-sequence (pop more) replacement (pop more))) (if (assq mode which-key-replacement-alist) (setcdr (assq mode which-key-replacement-alist) mode-alist) (push (cons mode mode-alist) which-key-replacement-alist)) (if (assq mode which-key--prefix-title-alist) (setcdr (assq mode which-key--prefix-title-alist) title-mode-alist) (push (cons mode title-mode-alist) which-key--prefix-title-alist)))) (put 'which-key-add-major-mode-key-based-replacements 'lisp-indent-function 'defun) (defalias 'which-key-add-prefix-title 'which-key-add-key-based-replacements) (make-obsolete 'which-key-add-prefix-title 'which-key-add-key-based-replacements "2016-10-05") (defalias 'which-key-declare-prefixes 'which-key-add-key-based-replacements) (make-obsolete 'which-key-declare-prefixes 'which-key-add-key-based-replacements "2016-10-05") (defalias 'which-key-declare-prefixes-for-mode 'which-key-add-major-mode-key-based-replacements) (make-obsolete 'which-key-declare-prefixes-for-mode 'which-key-add-major-mode-key-based-replacements "2016-10-05") (defun which-key-define-key-recursively (map key def &optional at-root) "Recursively bind KEY in MAP to DEF on every level of MAP except the first. If AT-ROOT is non-nil the binding is also placed at the root of MAP." (when at-root (define-key map key def)) (map-keymap (lambda (_ev df) (when (keymapp df) (which-key-define-key-recursively df key def t))) map)) (defun which-key--process-define-key-args (keymap key def) "When DEF takes the form (\"DESCRIPTION\". DEF), make sure which-key uses \"DESCRIPTION\" for this binding. This function is meant to be used as :before advice for `define-key'." (with-demoted-errors "Which-key extended define-key error: %s" (when (and (consp def) (stringp (car def)) (symbolp (cdr def))) (define-key keymap (which-key--pseudo-key key) `(which-key ,def))))) (when which-key-enable-extended-define-key (advice-add #'define-key :before #'which-key--process-define-key-args)) ;;; Functions for computing window sizes (defun which-key--text-width-to-total (text-width) "Convert window text-width to window total-width. TEXT-WIDTH is the desired text width of the window. The function calculates what total width is required for a window in the selected to have a text-width of TEXT-WIDTH columns. The calculation considers possible fringes and scroll bars. This function assumes that the desired window has the same character width as the frame." (let ((char-width (frame-char-width))) (+ text-width (/ (frame-fringe-width) char-width) (/ (frame-scroll-bar-width) char-width) (if (which-key--char-enlarged-p) 1 0) ;; add padding to account for possible wide (unicode) characters 3))) (defun which-key--total-width-to-text (total-width) "Convert window total-width to window text-width. TOTAL-WIDTH is the desired total width of the window. The function calculates what text width fits such a window. The calculation considers possible fringes and scroll bars. This function assumes that the desired window has the same character width as the frame." (let ((char-width (frame-char-width))) (- total-width (/ (frame-fringe-width) char-width) (/ (frame-scroll-bar-width) char-width) (if (which-key--char-enlarged-p) 1 0) ;; add padding to account for possible wide (unicode) characters 3))) (defun which-key--char-enlarged-p (&optional _frame) (> (frame-char-width) (/ (float (frame-pixel-width)) (window-total-width (frame-root-window))))) (defun which-key--char-reduced-p (&optional _frame) (< (frame-char-width) (/ (float (frame-pixel-width)) (window-total-width (frame-root-window))))) (defun which-key--char-exact-p (&optional _frame) (= (frame-char-width) (/ (float (frame-pixel-width)) (window-total-width (frame-root-window))))) (defun which-key--width-or-percentage-to-width (width-or-percentage) "Return window total width. If WIDTH-OR-PERCENTAGE is a whole number, return it unchanged. Otherwise, it should be a percentage (a number between 0 and 1) out of the frame's width. More precisely, it should be a percentage out of the frame's root window's total width." (if (wholenump width-or-percentage) width-or-percentage (round (* width-or-percentage (window-total-width (frame-root-window)))))) (defun which-key--height-or-percentage-to-height (height-or-percentage) "Return window total height. If HEIGHT-OR-PERCENTAGE is a whole number, return it unchanged. Otherwise, it should be a percentage (a number between 0 and 1) out of the frame's height. More precisely, it should be a percentage out of the frame's root window's total height." (if (wholenump height-or-percentage) height-or-percentage (round (* height-or-percentage (window-total-height (frame-root-window)))))) (defun which-key--frame-size-changed-p () "Non-nil if a change in frame size is detected." (let ((new-size (cons (frame-width) (frame-height)))) (cond ((null which-key--previous-frame-size) (setq which-key--previous-frame-size new-size) nil) ((not (equal which-key--previous-frame-size new-size)) (setq which-key--previous-frame-size new-size))))) ;;; Show/hide which-key buffer (defun which-key--hide-popup () "This function is called to hide the which-key buffer." (unless (member real-this-command which-key--paging-functions) (setq which-key--current-page-n nil which-key--current-prefix nil which-key--using-top-level nil which-key--using-show-keymap nil which-key--using-show-operator-keymap nil which-key--current-show-keymap-name nil which-key--prior-show-keymap-args nil which-key--on-last-page nil) (when (and which-key-idle-secondary-delay which-key--secondary-timer-active) (which-key--start-timer)) (which-key--lighter-restore) (cl-case which-key-popup-type ;; Not necessary to hide minibuffer ;; (minibuffer (which-key--hide-buffer-minibuffer)) (side-window (which-key--hide-buffer-side-window)) (frame (which-key--hide-buffer-frame)) (custom (funcall which-key-custom-hide-popup-function))))) (defun which-key--hide-popup-ignore-command () "Version of `which-key--hide-popup' without the check of `real-this-command'." (cl-case which-key-popup-type (side-window (which-key--hide-buffer-side-window)) (frame (which-key--hide-buffer-frame)) (custom (funcall which-key-custom-hide-popup-function)))) (defun which-key--hide-popup-on-frame-size-change () "Hide which-key popup if the frame is resized (to trigger a new popup)." (when (which-key--frame-size-changed-p) (which-key--hide-popup))) (defun which-key--hide-buffer-side-window () "Hide which-key buffer when side-window popup is used." (when (buffer-live-p which-key--buffer) ;; in case which-key buffer was shown in an existing window, `quit-window' ;; will re-show the previous buffer, instead of closing the window (quit-windows-on which-key--buffer))) (defun which-key--hide-buffer-frame () "Hide which-key buffer when frame popup is used." (when (frame-live-p which-key--frame) (delete-frame which-key--frame))) (defun which-key--popup-showing-p () (window-live-p (get-buffer-window which-key--buffer))) (defun which-key--show-popup (act-popup-dim) "Show the which-key buffer. ACT-POPUP-DIM includes the dimensions, (height . width) of the buffer text to be displayed in the popup. Return nil if no window is shown, or if there is no need to start the closing timer." (when (and (> (car act-popup-dim) 0) (> (cdr act-popup-dim) 0)) (cl-case which-key-popup-type ;; Not called for minibuffer ;; (minibuffer (which-key--show-buffer-minibuffer act-popup-dim)) (side-window (which-key--show-buffer-side-window act-popup-dim)) (frame (which-key--show-buffer-frame act-popup-dim)) (custom (funcall which-key-custom-show-popup-function act-popup-dim))))) (defun which-key--fit-buffer-to-window-horizontally (&optional window &rest params) "Slightly modified version of `fit-buffer-to-window'. Use &rest params because `fit-buffer-to-window' has a different call signature in different emacs versions" (let ((fit-window-to-buffer-horizontally t)) (apply #'fit-window-to-buffer window params))) (defun which-key--show-buffer-side-window (act-popup-dim) "Show which-key buffer when popup type is side-window." (let* ((height (car act-popup-dim)) (width (cdr act-popup-dim)) (alist (if which-key-allow-imprecise-window-fit `((window-width . ,(which-key--text-width-to-total width)) (window-height . ,height) (side . ,which-key-side-window-location) (slot . ,which-key-side-window-slot)) `((window-width . which-key--fit-buffer-to-window-horizontally) (window-height . (lambda (w) (fit-window-to-buffer w nil 1))) (side . ,which-key-side-window-location) (slot . ,which-key-side-window-slot))))) ;; Previously used `display-buffer-in-major-side-window' here, but ;; apparently that is meant to be an internal function. See emacs bug #24828 ;; and advice given there. (cond ((eq which-key--multiple-locations t) ;; possibly want to switch sides in this case so we can't reuse the window (delete-windows-on which-key--buffer) (display-buffer-in-side-window which-key--buffer alist)) ((get-buffer-window which-key--buffer) (display-buffer-reuse-window which-key--buffer alist)) (t (display-buffer-in-side-window which-key--buffer alist))))) (defun which-key--show-buffer-frame (act-popup-dim) "Show which-key buffer when popup type is frame." (let* (;(orig-window (selected-window)) (frame-height (+ (car act-popup-dim) (if (with-current-buffer which-key--buffer mode-line-format) 1 0))) ;; without adding 2, frame sometimes isn't wide enough for the buffer. ;; this is probably because of the fringes. however, setting fringes ;; sizes to 0 (instead of adding 2) didn't always make the frame wide ;; enough. don't know why it is so. (frame-width (+ (cdr act-popup-dim) 2)) (new-window (if (and (frame-live-p which-key--frame) (eq which-key--buffer (window-buffer (frame-root-window which-key--frame)))) (which-key--show-buffer-reuse-frame frame-height frame-width) (which-key--show-buffer-new-frame frame-height frame-width)))) (when new-window ;; display successful (setq which-key--frame (window-frame new-window)) new-window))) (defun which-key--show-buffer-new-frame (frame-height frame-width) "Helper for `which-key--show-buffer-frame'." (let* ((frame-params `((height . ,frame-height) (width . ,frame-width) ;; tell the window manager to respect the given sizes (user-size . t) ;; which-key frame doesn't need a minibuffer (minibuffer . nil) (name . "which-key") ;; no need for scroll bars in which-key frame (vertical-scroll-bars . nil) ;; (left-fringe . 0) ;; (right-fringe . 0) ;; (right-divider-width . 0) ;; make sure frame is visible (visibility . t))) (alist `((pop-up-frame-parameters . ,frame-params))) (orig-frame (selected-frame)) (new-window (display-buffer-pop-up-frame which-key--buffer alist))) (when new-window ;; display successful (redirect-frame-focus (window-frame new-window) orig-frame) new-window))) (defun which-key--show-buffer-reuse-frame (frame-height frame-width) "Helper for `which-key--show-buffer-frame'." (let ((window (display-buffer-reuse-window which-key--buffer `((reusable-frames . ,which-key--frame))))) (when window ;; display successful (set-frame-size (window-frame window) frame-width frame-height) window))) ;;; Max dimension of available window functions (defun which-key--popup-max-dimensions () "Dimesion functions should return the maximum possible (height . width) of the intended popup. SELECTED-WINDOW-WIDTH is the width of currently active window, not the which-key buffer window." (cl-case which-key-popup-type (minibuffer (which-key--minibuffer-max-dimensions)) (side-window (which-key--side-window-max-dimensions)) (frame (which-key--frame-max-dimensions)) (custom (funcall which-key-custom-popup-max-dimensions-function (window-width))))) (defun which-key--minibuffer-max-dimensions () "Return max-dimensions of minibuffer (height . width). Measured in lines and characters respectively." (cons ;; height (if (floatp max-mini-window-height) (floor (* (frame-text-lines) max-mini-window-height)) max-mini-window-height) ;; width (max 0 (- (frame-text-cols) which-key-unicode-correction)))) (defun which-key--side-window-max-dimensions () "Return max-dimensions of the side-window popup (height . width) in lines and characters respectively." (cons ;; height (if (member which-key-side-window-location '(left right)) ;; 1 is a kludge to make sure there is no overlap (- (frame-height) (window-text-height (minibuffer-window)) 1) ;; (window-mode-line-height which-key--window)) ;; FIXME: change to something like ;; (min which-*-height (calculate-max-height)) (which-key--height-or-percentage-to-height which-key-side-window-max-height)) ;; width (max 0 (- (if (member which-key-side-window-location '(left right)) (which-key--total-width-to-text (which-key--width-or-percentage-to-width which-key-side-window-max-width)) (which-key--total-width-to-text (which-key--width-or-percentage-to-width 1.0))) which-key-unicode-correction)))) (defun which-key--frame-max-dimensions () "Return max-dimensions of the frame popup (height . width) in lines and characters respectively." (cons which-key-frame-max-height which-key-frame-max-width)) ;;; Sorting functions (defun which-key--string< (a b &optional alpha) (let* ((da (downcase a)) (db (downcase b))) (cond ((string-equal da db) (if which-key-sort-uppercase-first (string-lessp a b) (not (string-lessp a b)))) (alpha (string-lessp da db)) (t (string-lessp a b))))) (defun which-key--key-description< (a b &optional alpha) "Sorting function used for `which-key-key-order' and `which-key-key-order-alpha'." (save-match-data (let* ((rngrgxp "^\\([^ ]+\\) \\.\\. [^ ]+") (a (if (string-match rngrgxp a) (match-string 1 a) a)) (b (if (string-match rngrgxp b) (match-string 1 b) b)) (aem? (string-equal a "")) (bem? (string-equal b "")) (a1? (= 1 (length a))) (b1? (= 1 (length b))) (srgxp "^\\(RET\\|SPC\\|TAB\\|DEL\\|LFD\\|ESC\\|NUL\\)") (asp? (string-match-p srgxp a)) (bsp? (string-match-p srgxp b)) (prrgxp "^\\(M\\|C\\|S\\|A\\|H\\|s\\)-") (apr? (string-match-p prrgxp a)) (bpr? (string-match-p prrgxp b)) (afn? (string-match-p "" a)) (bfn? (string-match-p "" b))) (cond ((or aem? bem?) (and aem? (not bem?))) ((and asp? bsp?) (if (string-equal (substring a 0 3) (substring b 0 3)) (which-key--key-description< (substring a 3) (substring b 3) alpha) (which-key--string< a b alpha))) ((or asp? bsp?) asp?) ((and a1? b1?) (which-key--string< a b alpha)) ((or a1? b1?) a1?) ((and afn? bfn?) (< (string-to-number (replace-regexp-in-string "" "\\1" a)) (string-to-number (replace-regexp-in-string "" "\\1" b)))) ((or afn? bfn?) afn?) ((and apr? bpr?) (if (string-equal (substring a 0 2) (substring b 0 2)) (which-key--key-description< (substring a 2) (substring b 2) alpha) (which-key--string< a b alpha))) ((or apr? bpr?) apr?) (t (which-key--string< a b alpha)))))) (defsubst which-key-key-order-alpha (acons bcons) "Order key descriptions A and B. Order is lexicographic within a \"class\", where the classes and the ordering of classes are listed below. special (SPC,TAB,...) < single char < mod (C-,M-,...) < other. Sorts single characters alphabetically with lowercase coming before upper." (which-key--key-description< (car acons) (car bcons) t)) (defsubst which-key-key-order (acons bcons) "Order key descriptions A and B. Order is lexicographic within a \"class\", where the classes and the ordering of classes are listed below. special (SPC,TAB,...) < single char < mod (C-,M-,...) < other." (which-key--key-description< (car acons) (car bcons))) (defsubst which-key-description-order (acons bcons) "Order descriptions of A and B. Uses `string-lessp' after applying lowercase." (string-lessp (downcase (cdr acons)) (downcase (cdr bcons)))) (defsubst which-key--group-p (description) (or (string-match-p "^\\(group:\\|Prefix\\)" description) (keymapp (intern description)))) (defun which-key-prefix-then-key-order (acons bcons) "Order first by whether A and/or B is a prefix with no prefix coming before a prefix. Within these categories order using `which-key-key-order'." (let ((apref? (which-key--group-p (cdr acons))) (bpref? (which-key--group-p (cdr bcons)))) (if (not (eq apref? bpref?)) (and (not apref?) bpref?) (which-key-key-order acons bcons)))) (defun which-key-prefix-then-key-order-reverse (acons bcons) "Order first by whether A and/or B is a prefix with prefix coming before a prefix. Within these categories order using `which-key-key-order'." (let ((apref? (which-key--group-p (cdr acons))) (bpref? (which-key--group-p (cdr bcons)))) (if (not (eq apref? bpref?)) (and apref? (not bpref?)) (which-key-key-order acons bcons)))) (defun which-key-local-then-key-order (acons bcons) "Order first by whether A and/or B is a local binding with local bindings coming first. Within these categories order using `which-key-key-order'." (let ((aloc? (which-key--local-binding-p acons)) (bloc? (which-key--local-binding-p bcons))) (if (not (eq aloc? bloc?)) (and aloc? (not bloc?)) (which-key-key-order acons bcons)))) ;;; Functions for retrieving and formatting keys (defsubst which-key--string-width (maybe-string) "If MAYBE-STRING is a string use `which-key--string-width' o/w return 0." (if (stringp maybe-string) (string-width maybe-string) 0)) (defsubst which-key--safe-lookup-key (keymap key) "Version of `lookup-key' that allows KEYMAP to be nil. KEY is not checked." (when (keymapp keymap) (lookup-key keymap key))) (defsubst which-key--butlast-string (str) (mapconcat #'identity (butlast (split-string str)) " ")) (defun which-key--get-replacements (key-binding &optional use-major-mode) (let ((alist (or (and use-major-mode (cdr-safe (assq major-mode which-key-replacement-alist))) which-key-replacement-alist)) res case-fold-search) (catch 'res (dolist (replacement alist) ;; these are mode specific ones to ignore. The mode specific case is ;; handled in the selection of alist (unless (symbolp (car replacement)) (let ((key-regexp (caar replacement)) (binding-regexp (cdar replacement))) (when (and (or (null key-regexp) (string-match-p key-regexp (car key-binding))) (or (null binding-regexp) (string-match-p binding-regexp (cdr key-binding)))) (push replacement res) (when (not which-key-allow-multiple-replacements) (throw 'res res))))))) (nreverse res))) (defun which-key--get-pseudo-binding (key-binding) (let* ((pseudo-binding (key-binding (which-key--pseudo-key (kbd (car key-binding)) t))) (pseudo-binding (when pseudo-binding (cadr pseudo-binding))) (pseudo-desc (when pseudo-binding (car pseudo-binding))) (pseudo-def (when pseudo-binding (cdr pseudo-binding))) (real-def (key-binding (kbd (car key-binding)))) ;; treat keymaps as if they're nil bindings. This creates the ;; possibility that we rename the wrong binding but this seems ;; unlikely. (real-def (unless (keymapp real-def) real-def))) (when (and pseudo-binding (eq pseudo-def real-def)) (cons (car key-binding) pseudo-desc)))) (defun which-key--maybe-replace (key-binding) "Use `which-key--replacement-alist' to maybe replace KEY-BINDING. KEY-BINDING is a cons cell of the form \(KEY . BINDING\) each of which are strings. KEY is of the form produced by `key-binding'." (let* ((pseudo-binding (which-key--get-pseudo-binding key-binding))) (if pseudo-binding pseudo-binding (let* ((mode-res (which-key--get-replacements key-binding t)) (all-repls (or mode-res (which-key--get-replacements key-binding)))) (dolist (repl all-repls key-binding) (setq key-binding (cond ((or (not (consp repl)) (null (cdr repl))) key-binding) ((functionp (cdr repl)) (funcall (cdr repl) key-binding)) ((consp (cdr repl)) (cons (cond ((and (caar repl) (cadr repl)) (replace-regexp-in-string (caar repl) (cadr repl) (car key-binding) t)) ((cadr repl) (cadr repl)) (t (car key-binding))) (cond ((and (cdar repl) (cddr repl)) (replace-regexp-in-string (cdar repl) (cddr repl) (cdr key-binding) t)) ((cddr repl) (cddr repl)) (t (cdr key-binding)))))))))))) (defsubst which-key--current-key-list (&optional key-str) (append (listify-key-sequence which-key--current-prefix) (when key-str (listify-key-sequence (kbd key-str))))) (defsubst which-key--current-key-string (&optional key-str) (key-description (which-key--current-key-list key-str))) (defun which-key--local-binding-p (keydesc) (eq (which-key--safe-lookup-key (current-local-map) (kbd (which-key--current-key-string (car keydesc)))) (intern (cdr keydesc)))) (defun which-key--map-binding-p (map keydesc) (or (when (bound-and-true-p evil-state) (eq (which-key--safe-lookup-key map (kbd (which-key--current-key-string (format "<%s-state> %s" evil-state (car keydesc))))) (intern (cdr keydesc)))) (eq (which-key--safe-lookup-key map (kbd (which-key--current-key-string (car keydesc)))) (intern (cdr keydesc))))) (defun which-key--pseudo-key (key &optional use-current-prefix) "Replace the last key in the sequence KEY by a special symbol in order for which-key to allow looking up a description for the key." (let* ((seq (listify-key-sequence key)) (final (intern (format "which-key-%s" (key-description (last seq)))))) (if use-current-prefix (vconcat (which-key--current-key-list) (list final)) (vconcat (butlast seq) (list final))))) (defun which-key--maybe-get-prefix-title (keys) "KEYS is a string produced by `key-description'. A title is possibly returned using `which-key--prefix-title-alist'. An empty stiring is returned if no title exists." (cond ((not (string-equal keys "")) (let* ((title-res (cdr-safe (assoc-string keys which-key--prefix-title-alist))) (repl-res (cdr-safe (which-key--maybe-replace (cons keys "")))) (binding (key-binding (kbd keys))) (alternate (when (and binding (symbolp binding)) (symbol-name binding)))) (cond (title-res title-res) ((not (string-equal repl-res "")) repl-res) ((and (eq which-key-show-prefix 'echo) alternate) alternate) ((and (member which-key-show-prefix '(bottom top)) (eq which-key-side-window-location 'bottom) echo-keystrokes) (if alternate alternate (concat "Following " keys))) (t "")))) (which-key--using-top-level which-key--using-top-level) (which-key--current-show-keymap-name which-key--current-show-keymap-name) (t ""))) (defun which-key--propertize-key (key) "Add a face to KEY. If KEY contains any \"special keys\" defined in `which-key-special-keys' then truncate and add the corresponding `which-key-special-key-face'." (let ((key-w-face (propertize key 'face 'which-key-key-face)) (regexp (concat "\\(" (mapconcat 'identity which-key-special-keys "\\|") "\\)")) case-fold-search) (save-match-data (if (and which-key-special-keys (string-match regexp key)) (let ((beg (match-beginning 0)) (end (match-end 0))) (concat (substring key-w-face 0 beg) (propertize (substring key-w-face beg (1+ beg)) 'face 'which-key-special-key-face) (substring key-w-face end (which-key--string-width key-w-face)))) key-w-face)))) (defsubst which-key--truncate-description (desc) "Truncate DESC description to `which-key-max-description-length'." (if (and which-key-max-description-length (> (length desc) which-key-max-description-length)) (concat (substring desc 0 which-key-max-description-length) "..") desc)) (defun which-key--highlight-face (description) "Return the highlight face for DESCRIPTION if it has one." (let (face) (dolist (el which-key-highlighted-command-list) (unless face (cond ((consp el) (when (string-match-p (car el) description) (setq face (cdr el)))) ((stringp el) (when (string-match-p el description) (setq face 'which-key-highlighted-command-face))) (t (message "which-key: warning: element %s of \ which-key-highlighted-command-list is not a string or a cons cell" el))))) face)) (defun which-key--propertize-description (description group local hl-face &optional original-description) "Add face to DESCRIPTION where the face chosen depends on whether the description represents a group or a command. Also make some minor adjustments to the description string, like removing a \"group:\" prefix. ORIGINAL-DESCRIPTION is the description given by `describe-buffer-bindings'." (let* ((desc description) (desc (if (string-match-p "^group:" desc) (substring desc 6) desc)) (desc (if group (concat which-key-prefix-prefix desc) desc)) (desc (which-key--truncate-description desc))) (make-text-button desc nil 'face (cond (hl-face hl-face) (group 'which-key-group-description-face) (local 'which-key-local-map-description-face) (t 'which-key-command-description-face)) 'help-echo (cond ((and original-description (fboundp (intern original-description)) (documentation (intern original-description)) ;; tooltip-mode doesn't exist in emacs-nox (boundp 'tooltip-mode) tooltip-mode) (documentation (intern original-description))) ((and original-description (fboundp (intern original-description)) (documentation (intern original-description)) (let* ((doc (documentation (intern original-description))) (str (replace-regexp-in-string "\n" " " doc)) (max (floor (* (frame-width) 0.8)))) (if (> (length str) max) (concat (substring str 0 max) "...") str)))))) desc)) (defun which-key--extract-key (key-str) "Pull the last key (or key range) out of KEY-STR." (save-match-data (let ((key-range-regexp "\\`.*\\([^ \t]+ \\.\\. [^ \t]+\\)\\'")) (if (string-match key-range-regexp key-str) (match-string 1 key-str) (car (last (split-string key-str " "))))))) (defun which-key--format-and-replace (unformatted) "Take a list of (key . desc) cons cells in UNFORMATTED, add faces and perform replacements according to the three replacement alists. Returns a list (key separator description)." (let ((sep-w-face (propertize which-key-separator 'face 'which-key-separator-face)) (local-map (current-local-map)) new-list) (dolist (key-binding unformatted) (let* ((key (car key-binding)) (orig-desc (cdr key-binding)) (group (which-key--group-p orig-desc)) ;; At top-level prefix is nil (keys (if which-key--current-prefix (concat (which-key--current-key-string) " " key) key)) (local (eq (which-key--safe-lookup-key local-map (kbd keys)) (intern orig-desc))) (hl-face (which-key--highlight-face orig-desc)) (key-binding (which-key--maybe-replace (cons keys orig-desc)))) (when (consp key-binding) (push (list (which-key--propertize-key (which-key--extract-key (car key-binding))) sep-w-face (which-key--propertize-description (cdr key-binding) group local hl-face orig-desc)) new-list)))) (nreverse new-list))) (defun which-key--get-keymap-bindings (keymap) "Retrieve top-level bindings from KEYMAP." (let (bindings) (map-keymap (lambda (ev def) (cl-pushnew (cons (key-description (list ev)) (cond ((keymapp def) "Prefix Command") ((symbolp def) (copy-sequence (symbol-name def))) ((eq 'lambda (car-safe def)) "lambda") (t (format "%s" def)))) bindings :test (lambda (a b) (string= (car a) (car b))))) keymap) bindings)) (defun which-key--compute-binding (binding) "Replace BINDING with remapped binding if it exists. Requires `which-key-compute-remaps' to be non-nil" (let (remap) (if (and which-key-compute-remaps (setq remap (command-remapping (intern binding)))) (copy-sequence (symbol-name remap)) binding))) (defun which-key--get-current-bindings () "Generate a list of current active bindings." (let ((key-str-qt (regexp-quote (key-description which-key--current-prefix))) (buffer (current-buffer)) (ignore-bindings '("self-insert-command" "ignore" "ignore-event" "company-ignore")) (ignore-keys-regexp (eval-when-compile (regexp-opt '("mouse-" "wheel-" "remap" "drag-" "scroll-bar" "select-window" "switch-frame" "-state" "which-key-")))) (ignore-sections-regexp (eval-when-compile (regexp-opt '("Key translations" "Function key map translations" "Input decoding map translations"))))) (with-temp-buffer (setq-local indent-tabs-mode t) (setq-local tab-width 8) (describe-buffer-bindings buffer which-key--current-prefix) (goto-char (point-min)) (let ((header-p (not (= (char-after) ?\f))) bindings header) (while (not (eobp)) (cond (header-p (setq header (buffer-substring-no-properties (point) (line-end-position))) (setq header-p nil) (forward-line 3)) ((= (char-after) ?\f) (setq header-p t)) ((looking-at "^[ \t]*$")) ((or (not (string-match-p ignore-sections-regexp header)) which-key--current-prefix) (let ((binding-start (save-excursion (and (re-search-forward "\t+" nil t) (match-end 0)))) key binding) (when binding-start (setq key (buffer-substring-no-properties (point) binding-start)) (setq binding (buffer-substring-no-properties binding-start (line-end-position))) (save-match-data (cond ((member binding ignore-bindings)) ((string-match-p ignore-keys-regexp key)) ((and which-key--current-prefix (string-match (format "^%s[ \t]\\([^ \t]+\\)[ \t]+$" key-str-qt) key)) (unless (assoc-string (match-string 1 key) bindings) (push (cons (match-string 1 key) (which-key--compute-binding binding)) bindings))) ((and which-key--current-prefix (string-match (format "^%s[ \t]\\([^ \t]+\\) \\.\\. %s[ \t]\\([^ \t]+\\)[ \t]+$" key-str-qt key-str-qt) key)) (let ((stripped-key (concat (match-string 1 key) " \.\. " (match-string 2 key)))) (unless (assoc-string stripped-key bindings) (push (cons stripped-key (which-key--compute-binding binding)) bindings)))) ((string-match "^\\([^ \t]+\\|[^ \t]+ \\.\\. [^ \t]+\\)[ \t]+$" key) (unless (assoc-string (match-string 1 key) bindings) (push (cons (match-string 1 key) (which-key--compute-binding binding)) bindings))))))))) (forward-line)) (nreverse bindings))))) (defun which-key--get-formatted-key-bindings (&optional bindings filter) "Uses `describe-buffer-bindings' to collect the key bindings in BUFFER that follow the key sequence KEY-SEQ." (let* ((unformatted (if bindings bindings (which-key--get-current-bindings)))) (when filter (setq unformatted (cl-remove-if-not filter unformatted))) (when which-key-sort-order (setq unformatted (sort unformatted which-key-sort-order))) (which-key--format-and-replace unformatted))) ;;; Functions for laying out which-key buffer pages (defun which-key--normalize-columns (columns) "Pad COLUMNS to the same length using empty strings." (let ((max-len (cl-reduce (lambda (a x) (max a (length x))) columns :initial-value 0))) (mapcar (lambda (c) (if (< (length c) max-len) (append c (make-list (- max-len (length c)) "")) c)) columns))) (defsubst which-key--join-columns (columns) "Transpose columns into rows, concat rows into lines and rows into page." (let* ((padded (which-key--normalize-columns (nreverse columns))) (rows (apply #'cl-mapcar #'list padded))) (mapconcat (lambda (row) (mapconcat #'identity row " ")) rows "\n"))) (defsubst which-key--max-len (keys index) "Internal function for finding the max length of the INDEX element in each list element of KEYS." (cl-reduce (lambda (x y) (max x (which-key--string-width (nth index y)))) keys :initial-value 0)) (defun which-key--pad-column (col-keys) "Take a column of (key separator description) COL-KEYS, calculate the max width in the column and pad all cells out to that width." (let* ((col-key-width (+ which-key-add-column-padding (which-key--max-len col-keys 0))) (col-sep-width (which-key--max-len col-keys 1)) (col-desc-width (which-key--max-len col-keys 2)) (col-width (+ 1 col-key-width col-sep-width col-desc-width))) (cons col-width (mapcar (lambda (k) (format (concat "%" (int-to-string col-key-width) "s%s%-" (int-to-string col-desc-width) "s") (nth 0 k) (nth 1 k) (nth 2 k))) col-keys)))) (defun which-key--partition-list (n list) "Partition LIST into N-sized sublists." (let (res) (while list (setq res (cons (cl-subseq list 0 (min n (length list))) res) list (nthcdr n list))) (nreverse res))) (defun which-key--list-to-pages (keys avl-lines avl-width) "Convert list of KEYS to columns based on dimensions AVL-LINES and AVL-WIDTH. Returns a plist that holds the page strings, as well as metadata." (let ((cols-w-widths (mapcar #'which-key--pad-column (which-key--partition-list avl-lines keys))) (page-width 0) (n-pages 0) (n-keys 0) (n-columns 0) page-cols pages page-widths keys/page col) (if (> (apply #'max (mapcar #'car cols-w-widths)) avl-width) ;; give up if no columns fit (list :pages nil :page-height 0 :page-widths '(0) :keys/page '(0) :n-pages 0 :tot-keys 0) (while cols-w-widths ;; start new page (cl-incf n-pages) (setq col (pop cols-w-widths)) (setq page-cols (list (cdr col))) (setq page-width (car col)) (setq n-keys (length (cdr col))) (setq n-columns 1) ;; add additional columns as long as they fit (while (and cols-w-widths (or (null which-key-max-display-columns) (< n-columns which-key-max-display-columns)) (<= (+ (caar cols-w-widths) page-width) avl-width)) (setq col (pop cols-w-widths)) (push (cdr col) page-cols) (cl-incf page-width (car col)) (cl-incf n-keys (length (cdr col))) (cl-incf n-columns)) (push (which-key--join-columns page-cols) pages) (push n-keys keys/page) (push page-width page-widths)) (list :pages (nreverse pages) :page-height avl-lines :page-widths (nreverse page-widths) :keys/page (reverse keys/page) :n-pages n-pages :tot-keys (apply #'+ keys/page))))) (defun which-key--create-pages-1 (keys available-lines available-width &optional min-lines vertical) "Create page strings using `which-key--list-to-pages'. Will try to find the best number of rows and columns using the given dimensions and the length and widths of ITEMS. Use VERTICAL if the ITEMS are laid out vertically and the number of columns should be minimized." (let ((result (which-key--list-to-pages keys available-lines available-width)) (min-lines (or min-lines 0)) found prev-result) (if (or vertical (> (plist-get result :n-pages) 1) (= 1 available-lines)) result ;; simple search for a fitting page (while (and (> available-lines min-lines) (not found)) (setq available-lines (- available-lines 1) prev-result result result (which-key--list-to-pages keys available-lines available-width) found (> (plist-get result :n-pages) 1))) (if found prev-result result)))) (defun which-key--create-pages (keys) "Create page strings using `which-key--list-to-pages'. Will try to find the best number of rows and columns using the given dimensions and the length and wdiths of KEYS. SEL-WIN-WIDTH is the width of the live window." (let* ((max-dims (which-key--popup-max-dimensions)) (max-lines (car max-dims)) (max-width (cdr max-dims)) (prefix-keys-desc (key-description which-key--current-prefix)) (full-prefix (which-key--full-prefix prefix-keys-desc)) (prefix (when (eq which-key-show-prefix 'left) (+ 2 (which-key--string-width full-prefix)))) (prefix-top-bottom (member which-key-show-prefix '(bottom top))) (avl-lines (if prefix-top-bottom (- max-lines 1) max-lines)) (min-lines (min avl-lines which-key-min-display-lines)) (avl-width (if prefix (- max-width prefix) max-width)) (vertical (and (eq which-key-popup-type 'side-window) (member which-key-side-window-location '(left right))))) (which-key--create-pages-1 keys avl-lines avl-width min-lines vertical))) (defun which-key--lighter-status (page-n) "Possibly show number of keys and total in the mode line." (when which-key-show-remaining-keys (let ((n-shown (nth page-n (plist-get which-key--pages-plist :keys/page))) (n-tot (plist-get which-key--pages-plist :tot-keys))) (setcar (cdr (assq 'which-key-mode minor-mode-alist)) (format " WK: %s/%s keys" n-shown n-tot))))) (defun which-key--lighter-restore () "Restore the lighter for which-key." (when which-key-show-remaining-keys (setcar (cdr (assq 'which-key-mode minor-mode-alist)) which-key-lighter))) (defun which-key--echo (text) "Echo TEXT to minibuffer without logging." (let (message-log-max) (message "%s" text))) (defun which-key--next-page-hint (prefix-keys) "Return string for next page hint." (let* ((paging-key (concat prefix-keys " " which-key-paging-key)) (paging-key-bound (eq 'which-key-C-h-dispatch (key-binding (kbd paging-key)))) (key (if paging-key-bound which-key-paging-key "C-h"))) (when (and which-key-use-C-h-commands (or which-key--using-show-operator-keymap (not (and which-key-allow-evil-operators (bound-and-true-p evil-this-operator))))) (propertize (format "[%s paging/help]" key) 'face 'which-key-note-face)))) (eval-and-compile (if (fboundp 'universal-argument--description) (defalias 'which-key--universal-argument--description 'universal-argument--description) (defun which-key--universal-argument--description () ;; Backport of the definition of universal-argument--description in ;; emacs25 on 2015-12-04 (when prefix-arg (concat "C-u" (pcase prefix-arg (`(-) " -") (`(,(and (pred integerp) n)) (let ((str "")) (while (and (> n 4) (= (mod n 4) 0)) (setq str (concat str " C-u")) (setq n (/ n 4))) (if (= n 4) str (format " %s" prefix-arg)))) (_ (format " %s" prefix-arg)))))))) (defun which-key--full-prefix (prefix-keys &optional -prefix-arg dont-prop-keys) "Return a description of the full key sequence up to now, including prefix arguments." (let* ((left (eq which-key-show-prefix 'left)) (prefix-arg (if -prefix-arg -prefix-arg prefix-arg)) (str (concat (which-key--universal-argument--description) (when prefix-arg " ") prefix-keys)) (dash (if (and which-key--current-prefix (null left)) "-" ""))) (if (or (eq which-key-show-prefix 'echo) dont-prop-keys) (concat str dash) (concat (which-key--propertize-key str) (propertize dash 'face 'which-key-key-face))))) (defun which-key--get-popup-map () "Generate transient-map for use in the top level binding display." (unless which-key--current-prefix (let ((map (make-sparse-keymap))) (define-key map (kbd which-key-paging-key) #'which-key-C-h-dispatch) (when which-key-use-C-h-commands ;; Show next page even when C-h is pressed (define-key map (kbd "C-h") #'which-key-C-h-dispatch)) map))) (defun which-key--process-page (page-n pages-plist) "Add information to the basic list of key bindings, including if applicable the current prefix, the name of the current prefix, and a page count." (let* ((page (nth page-n (plist-get pages-plist :pages))) (height (plist-get pages-plist :page-height)) (n-pages (plist-get pages-plist :n-pages)) (prefix-keys (key-description which-key--current-prefix)) (full-prefix (which-key--full-prefix prefix-keys)) (nxt-pg-hint (which-key--next-page-hint prefix-keys)) ;; not used in left case (status-line (concat (propertize (which-key--maybe-get-prefix-title (which-key--current-key-string)) 'face 'which-key-note-face) (when (< 1 n-pages) (propertize (format " (%s of %s)" (1+ page-n) n-pages) 'face 'which-key-note-face))))) (pcase which-key-show-prefix (`left (let* ((page-cnt (propertize (format "%s/%s" (1+ page-n) n-pages) 'face 'which-key-separator-face)) (first-col-width (+ 2 (max (which-key--string-width full-prefix) (which-key--string-width page-cnt)))) (prefix (format (concat "%-" (int-to-string first-col-width) "s") full-prefix)) (page-cnt (if (> n-pages 1) (format (concat "%-" (int-to-string first-col-width) "s") page-cnt) (make-string first-col-width 32))) lines first-line new-end) (if (= 1 height) (cons (concat prefix page) nil) (setq lines (split-string page "\n") first-line (concat prefix (car lines) "\n" page-cnt) new-end (concat "\n" (make-string first-col-width 32))) (cons (concat first-line (mapconcat #'identity (cdr lines) new-end)) nil)))) (`top (cons (concat (when (or (= 0 echo-keystrokes) (not (eq which-key-side-window-location 'bottom))) (concat full-prefix " ")) status-line " " nxt-pg-hint "\n" page) nil)) (`bottom (cons (concat page "\n" (when (or (= 0 echo-keystrokes) (not (eq which-key-side-window-location 'bottom))) (concat full-prefix " ")) status-line " " nxt-pg-hint) nil)) (`echo (cons page (lambda () (which-key--echo (concat full-prefix (when prefix-keys " ") status-line (when status-line " ") nxt-pg-hint))))) (`mode-line (cons page (lambda () (with-current-buffer which-key--buffer (setq-local mode-line-format (concat " " full-prefix " " status-line " " nxt-pg-hint)))))) (_ (cons page nil))))) (defun which-key--show-page (n) "Show page N, starting from 0." (which-key--init-buffer) ;; in case it was killed (let ((n-pages (plist-get which-key--pages-plist :n-pages)) (prefix-keys (key-description which-key--current-prefix)) page-n golden-ratio-mode) (if (= 0 n-pages) (message "%s- which-key can't show keys: There is not \ enough space based on your settings and frame size." prefix-keys) (setq page-n (mod n n-pages)) (setq which-key--current-page-n page-n) (when (= n-pages (1+ n)) (setq which-key--on-last-page t)) (let ((page-echo (which-key--process-page page-n which-key--pages-plist)) (height (plist-get which-key--pages-plist :page-height)) (width (nth page-n (plist-get which-key--pages-plist :page-widths)))) (which-key--lighter-status page-n) (if (eq which-key-popup-type 'minibuffer) (which-key--echo (car page-echo)) (with-current-buffer which-key--buffer (erase-buffer) (insert (car page-echo)) (goto-char (point-min))) (when (cdr page-echo) (funcall (cdr page-echo))) (which-key--show-popup (cons height width))))) ;; used for paging at top-level (if (fboundp 'set-transient-map) (set-transient-map (which-key--get-popup-map)) (with-no-warnings (set-temporary-overlay-map (which-key--get-popup-map)))))) ;;; Paging functions ;;;###autoload (defun which-key-reload-key-sequence (key-seq) "Simulate entering the key sequence KEY-SEQ. KEY-SEQ should be a list of events as produced by `listify-key-sequence'. Any prefix arguments that were used are reapplied to the new key sequence." (let ((next-event (mapcar (lambda (ev) (cons t ev)) key-seq))) (setq prefix-arg current-prefix-arg unread-command-events next-event))) (defun which-key-turn-page (delta) "Show the next page of keys." (let ((next-page (if which-key--current-page-n (+ which-key--current-page-n delta) 0))) (which-key-reload-key-sequence (which-key--current-key-list)) (if which-key--last-try-2-loc (let ((which-key-side-window-location which-key--last-try-2-loc) (which-key--multiple-locations t)) (which-key--show-page next-page)) (which-key--show-page next-page)) (which-key--start-paging-timer))) ;;;###autoload (defun which-key-show-standard-help () "Call the command in `which-key--prefix-help-cmd-backup'. Usually this is `describe-prefix-bindings'." (interactive) (let ((which-key-inhibit t)) (which-key--hide-popup-ignore-command) (cond ((eq which-key--prefix-help-cmd-backup 'describe-prefix-bindings) ;; This is essentially what `describe-prefix-bindings' does (describe-bindings (kbd (which-key--current-key-string)))) ((functionp which-key--prefix-help-cmd-backup) (funcall which-key--prefix-help-cmd-backup))))) ;;;###autoload (defun which-key-show-next-page-no-cycle () "Show next page of keys unless on the last page, in which case call `which-key-show-standard-help'." (interactive) (let ((which-key-inhibit t)) (if (and which-key--current-page-n which-key--on-last-page) (which-key-show-standard-help) (which-key-turn-page 1)))) ;;;###autoload (defun which-key-show-previous-page-no-cycle () "Show previous page of keys unless on the first page, in which case do nothing." (interactive) (let ((which-key-inhibit t)) (if (and which-key--current-page-n (eq which-key--current-page-n 0)) (which-key-turn-page 0) (which-key-turn-page -1)))) ;;;###autoload (defun which-key-show-next-page-cycle () "Show the next page of keys, cycling from end to beginning after last page." (interactive) (let ((which-key-inhibit t)) (which-key-turn-page 1))) ;;;###autoload (defun which-key-show-previous-page-cycle () "Show the previous page of keys, cycling from beginning to end after first page." (interactive) (let ((which-key-inhibit t)) (which-key-turn-page -1))) ;;;###autoload (defun which-key-show-top-level () "Show top-level bindings." (interactive) (setq which-key--using-top-level "Top-level bindings") (which-key--create-buffer-and-show nil)) ;;;###autoload (defun which-key-show-major-mode () "Show top-level bindings in the map of the current major mode. This function will also detect evil bindings made using `evil-define-key' in this map. These bindings will depend on the current evil state. " (interactive) (setq which-key--using-top-level "Major-mode bindings") (let ((map-sym (intern (format "%s-map" major-mode)))) (if (and (boundp map-sym) (keymapp (symbol-value map-sym))) (which-key--create-buffer-and-show nil nil (apply-partially #'which-key--map-binding-p (symbol-value map-sym))) (message "which-key: No map named %s" map-sym)))) ;;;###autoload (defun which-key-undo-key () "Undo last keypress and force which-key update." (interactive) (let* ((key-lst (butlast (which-key--current-key-list))) (which-key-inhibit t)) (cond ((stringp which-key--current-show-keymap-name) (if (keymapp (cdr (car-safe which-key--prior-show-keymap-args))) (let ((args (pop which-key--prior-show-keymap-args))) (which-key--show-keymap (car args) (cdr args))) (which-key--hide-popup))) (key-lst (which-key-reload-key-sequence key-lst) (which-key--create-buffer-and-show (apply #'vector key-lst))) (t (which-key-show-top-level))))) (defalias 'which-key-undo 'which-key-undo-key) (defun which-key-abort () "Abort key sequence." (interactive) (let ((which-key-inhibit t)) (which-key--hide-popup-ignore-command) (keyboard-quit))) ;;;###autoload (defun which-key-C-h-dispatch () "Dispatch C-h commands by looking up key in `which-key-C-h-map'. This command is always accessible (from any prefix) if `which-key-use-C-h-commands' is non nil." (interactive) (if (not (which-key--popup-showing-p)) (which-key-show-standard-help) (let* ((prefix-keys (key-description which-key--current-prefix)) (full-prefix (which-key--full-prefix prefix-keys current-prefix-arg t)) (prompt (concat (when (string-equal prefix-keys "") (propertize (concat " " (or which-key--current-show-keymap-name "Top-level bindings")) 'face 'which-key-note-face)) full-prefix (propertize (substitute-command-keys (concat " \\" " \\[which-key-show-next-page-cycle]" which-key-separator "next-page," " \\[which-key-show-previous-page-cycle]" which-key-separator "previous-page," " \\[which-key-undo-key]" which-key-separator "undo-key," " \\[which-key-show-standard-help]" which-key-separator "help," " \\[which-key-abort]" which-key-separator "abort")) 'face 'which-key-note-face))) (key (string (read-key prompt))) (cmd (lookup-key which-key-C-h-map key)) (which-key-inhibit t)) (if cmd (funcall cmd) (which-key-turn-page 0))))) ;;; Update (defun which-key--any-match-p (regexps string) "Non-nil if any of REGEXPS match STRING." (catch 'match (dolist (regexp regexps) (when (string-match-p regexp string) (throw 'match t))))) (defun which-key--try-2-side-windows (keys page-n loc1 loc2 &rest _ignore) "Try to show KEYS (PAGE-N) in LOC1 first. Only if no keys fit fallback to LOC2." (let (pages1) (let ((which-key-side-window-location loc1) (which-key--multiple-locations t)) (setq pages1 (which-key--create-pages keys))) (if (< 0 (plist-get pages1 :n-pages)) (progn (setq which-key--pages-plist pages1) (let ((which-key-side-window-location loc1) (which-key--multiple-locations t)) (which-key--show-page page-n)) loc1) (let ((which-key-side-window-location loc2) (which-key--multiple-locations t)) (setq which-key--pages-plist (which-key--create-pages keys)) (which-key--show-page page-n) loc2)))) (defun which-key-show-keymap () "Show the top-level bindings in KEYMAP using which-key. KEYMAP is selected interactively from all available keymaps." (interactive) (let ((keymap-sym (intern (completing-read "Keymap: " obarray (lambda (m) (and (boundp m) (keymapp (symbol-value m)) (not (equal (symbol-value m) (make-sparse-keymap))))) t nil 'which-key-keymap-history)))) (which-key--show-keymap (symbol-name keymap-sym) (symbol-value keymap-sym)))) (defun which-key-show-minor-mode-keymap () "Show the top-level bindings in KEYMAP using which-key. KEYMAP is selected interactively by mode in `minor-mode-map-alist'." (interactive) (let ((mode-sym (intern (completing-read "Minor Mode: " (mapcar 'car (cl-remove-if-not (lambda (entry) (and (symbol-value (car entry)) (not (equal (cdr entry) (make-sparse-keymap))))) minor-mode-map-alist)) nil t nil 'which-key-keymap-history)))) (which-key--show-keymap (symbol-name mode-sym) (cdr (assq mode-sym minor-mode-map-alist))))) (defun which-key--show-keymap (keymap-name keymap &optional prior-args) (setq which-key--current-prefix nil which-key--current-show-keymap-name keymap-name which-key--using-show-keymap t) (when prior-args (push prior-args which-key--prior-show-keymap-args)) (when (keymapp keymap) (let ((formatted-keys (which-key--get-formatted-key-bindings (which-key--get-keymap-bindings keymap)))) (cond ((= (length formatted-keys) 0) (message "which-key: Keymap empty")) ((listp which-key-side-window-location) (setq which-key--last-try-2-loc (apply #'which-key--try-2-side-windows formatted-keys 0 which-key-side-window-location))) (t (setq which-key--pages-plist (which-key--create-pages formatted-keys)) (which-key--show-page 0))))) (let* ((key (key-description (list (read-key)))) (next-def (lookup-key keymap (kbd key)))) (cond ((and which-key-use-C-h-commands (string= "C-h" key)) (which-key-C-h-dispatch)) ((keymapp next-def) (which-key--hide-popup-ignore-command) (which-key--show-keymap (concat keymap-name " " key) next-def (cons keymap-name keymap))) (t (which-key--hide-popup))))) (defun which-key--evil-operator-filter (binding) (let ((def (intern (cdr binding)))) (and (functionp def) (not (evil-get-command-property def :suppress-operator))))) (defun which-key--show-evil-operator-keymap () (if which-key--inhibit-next-operator-popup (setq which-key--inhibit-next-operator-popup nil) (let ((keymap (make-composed-keymap (list evil-operator-shortcut-map evil-operator-state-map evil-motion-state-map)))) (setq which-key--current-prefix nil which-key--current-show-keymap-name "evil operator/motion keys" which-key--using-show-operator-keymap t) (when (keymapp keymap) (let ((formatted-keys (which-key--get-formatted-key-bindings (which-key--get-keymap-bindings keymap) #'which-key--evil-operator-filter))) (cond ((= (length formatted-keys) 0) (message "which-key: Keymap empty")) ((listp which-key-side-window-location) (setq which-key--last-try-2-loc (apply #'which-key--try-2-side-windows formatted-keys 0 which-key-side-window-location))) (t (setq which-key--pages-plist (which-key--create-pages formatted-keys)) (which-key--show-page 0))))) (let* ((key (key-description (list (read-key))))) (when (string= key "`") ;; evil-goto-mark reads the next char manually (setq which-key--inhibit-next-operator-popup t)) (cond ((and which-key-use-C-h-commands (string= "C-h" key)) (which-key-C-h-dispatch)) ((string= key "ESC") (which-key--hide-popup) (keyboard-quit)) (t (which-key--hide-popup) (setq unread-command-events (listify-key-sequence key)))))))) (defun which-key--create-buffer-and-show (&optional prefix-keys from-keymap filter) "Fill `which-key--buffer' with key descriptions and reformat. Finally, show the buffer." (setq which-key--current-prefix prefix-keys which-key--last-try-2-loc nil) (let ((start-time (when which-key--debug (current-time))) (formatted-keys (which-key--get-formatted-key-bindings (when from-keymap (which-key--get-keymap-bindings from-keymap)) filter)) (prefix-keys (key-description which-key--current-prefix))) (cond ((= (length formatted-keys) 0) (message "%s- which-key: There are no keys to show" prefix-keys)) ((listp which-key-side-window-location) (setq which-key--last-try-2-loc (apply #'which-key--try-2-side-windows formatted-keys 0 which-key-side-window-location))) (t (setq which-key--pages-plist (which-key--create-pages formatted-keys)) (which-key--show-page 0))) (when which-key--debug (message "On prefix \"%s\" which-key took %.0f ms." prefix-keys (* 1000 (float-time (time-since start-time))))))) (defun which-key--update () "Function run by timer to possibly trigger `which-key--create-buffer-and-show'." (let ((prefix-keys (this-single-command-keys)) delay-time) (when (and (equal prefix-keys [key-chord]) (bound-and-true-p key-chord-mode)) (setq prefix-keys (condition-case nil (let ((rkeys (recent-keys))) (vector 'key-chord ;; Take the two preceding the last one, because the ;; read-event call in key-chord seems to add a ;; spurious key press to this list. Note this is ;; different from guide-key's method which didn't work ;; for me. (aref rkeys (- (length rkeys) 3)) (aref rkeys (- (length rkeys) 2)))) (error (progn (message "which-key error in key-chord handling") [key-chord]))))) (when (and which-key--god-mode-support-enabled (bound-and-true-p god-local-mode) (eq this-command 'god-mode-self-insert)) (setq prefix-keys (when which-key--god-mode-key-string (kbd which-key--god-mode-key-string)))) (cond ((and (> (length prefix-keys) 0) (or (keymapp (key-binding prefix-keys)) ;; Some keymaps are stored here like iso-transl-ctl-x-8-map (keymapp (which-key--safe-lookup-key key-translation-map prefix-keys)) ;; just in case someone uses one of these (keymapp (which-key--safe-lookup-key function-key-map prefix-keys))) (not which-key-inhibit) (or (null which-key-allow-regexps) (which-key--any-match-p which-key-allow-regexps (key-description prefix-keys))) (or (null which-key-inhibit-regexps) (not (which-key--any-match-p which-key-inhibit-regexps (key-description prefix-keys)))) ;; Do not display the popup if a command is currently being ;; executed (or (and which-key-allow-evil-operators (bound-and-true-p evil-this-operator)) (and which-key--god-mode-support-enabled (bound-and-true-p god-local-mode) (eq this-command 'god-mode-self-insert)) (null this-command))) (when (and (not (equal prefix-keys which-key--current-prefix)) (or (null which-key-delay-functions) (null (setq delay-time (run-hook-with-args-until-success 'which-key-delay-functions (key-description prefix-keys) (length prefix-keys)))) (sit-for delay-time))) (which-key--create-buffer-and-show prefix-keys) (when (and which-key-idle-secondary-delay (not which-key--secondary-timer-active)) (which-key--start-timer which-key-idle-secondary-delay t)))) ((and which-key-show-transient-maps (keymapp overriding-terminal-local-map) ;; basic test for it being a hydra (not (eq (lookup-key overriding-terminal-local-map "\C-u") 'hydra--universal-argument))) (which-key--create-buffer-and-show nil overriding-terminal-local-map)) ((and which-key-show-operator-state-maps (bound-and-true-p evil-state) (eq evil-state 'operator) (not which-key--using-show-operator-keymap)) (which-key--show-evil-operator-keymap)) ((and which-key--current-page-n (not which-key--using-top-level) (not which-key--using-show-operator-keymap) (not which-key--using-show-keymap)) (which-key--hide-popup))))) ;;; Timers (defun which-key--start-timer (&optional delay secondary) "Activate idle timer to trigger `which-key--update'." (which-key--stop-timer) (setq which-key--secondary-timer-active secondary) (setq which-key--timer (run-with-idle-timer (if delay delay which-key-idle-delay) t #'which-key--update))) (defun which-key--stop-timer () "Deactivate idle timer for `which-key--update'." (when which-key--timer (cancel-timer which-key--timer))) (defun which-key--start-paging-timer () "Activate timer to restart which-key after paging." (when which-key--paging-timer (cancel-timer which-key--paging-timer)) (which-key--stop-timer) (setq which-key--paging-timer (run-with-idle-timer 0.2 t (lambda () (when (or (not (member real-last-command which-key--paging-functions)) (and (< 0 (length (this-single-command-keys))) (not (equal which-key--current-prefix (this-single-command-keys))))) (setq which-key--current-page-n nil which-key--on-last-page nil) (cancel-timer which-key--paging-timer) (which-key--start-timer)))))) (provide 'which-key) ;;; which-key.el ends here emacs-which-key-3.1.0/Makefile0000644000175000017500000000053313225014216015760 0ustar dogslegdogsleg.PHONY : test emacs ?= emacs CASK ?= cask LOADPATH = -L . ELPA_DIR = \ .cask/$(shell $(emacs) -Q --batch --eval '(princ emacs-version)')/elpa test: elpa $(CASK) exec $(emacs) -Q -batch $(LOADPATH) \ -l which-key-tests.el -f ert-run-tests-batch-and-exit elpa: $(ELPA_DIR) $(ELPA_DIR): Cask $(CASK) install mkdir -p $(ELPA_DIR) touch $@ emacs-which-key-3.1.0/Cask0000644000175000017500000000013713225014216015124 0ustar dogslegdogsleg(source gnu) (source melpa) (package-file "which-key.el") (development (depends-on "ert"))