pax_global_header00006660000000000000000000000064123642003760014515gustar00rootroot0000000000000052 comment=76b3c8b611dea8f83e49e9ce81fc2b189e0ef3d2 chalk-0.1/000077500000000000000000000000001236420037600124375ustar00rootroot00000000000000chalk-0.1/.gitignore000066400000000000000000000004031236420037600144240ustar00rootroot00000000000000# Compiled Object files, Static and Dynamic libs (Shared Objects) *.o *.a *.so # Folders _obj _test # Architecture specific extensions/prefixes *.[568vq] [568vq].out *.cgo1.go *.cgo2.c _cgo_defun.c _cgo_gotypes.go _cgo_export.* _testmain.go *.exe *.test chalk-0.1/LICENSE000066400000000000000000000020641236420037600134460ustar00rootroot00000000000000The MIT License (MIT) Copyright (c) 2014 Trey Tacon Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.chalk-0.1/README.md000066400000000000000000000041421236420037600137170ustar00rootroot00000000000000chalk ============= Chalk is a go package for styling console/terminal output. Check out godoc for some example usage: http://godoc.org/github.com/ttacon/chalk The api is pretty clean, there are default Colors and TextStyles which can be mixed to create more intense Styles. Styles and Colors can be printed in normal strings (i.e. ```fmt.Sprintf(chalk.Red)```), but Styles, Colors and TextStyles are more meant to be used to style specific text segments (i.e. ```fmt.Println(chalk.Red.Color("this is red")```) or ```fmt.Println(myStyle.Style("this is blue text that is underlined"))```). Examples ============= There are a few examples in the examples directory if you want to see a very simplified version of what you can do with chalk. The following code: ``` package main import ( "fmt" "github.com/ttacon/chalk" ) func main() { // You can just use colors fmt.Println(chalk.Red, "Writing in colors", chalk.Cyan, "is so much fun", chalk.Reset) fmt.Println(chalk.Magenta.Color("You can use colors to color specific phrases")) // You can just use text styles fmt.Println(chalk.Bold.TextStyle("We can have bold text")) fmt.Println(chalk.Underline.TextStyle("We can have underlined text")) fmt.Println(chalk.Bold, "But text styles don't work quite like colors :(") // Or you can use styles blueOnWhite := chalk.Blue.NewStyle().WithBackground(chalk.White) fmt.Printf("%s%s%s\n", blueOnWhite, "And they also have backgrounds!", chalk.Reset) fmt.Println( blueOnWhite.Style("You can style strings the same way you can color them!")) fmt.Println( blueOnWhite.WithTextStyle(chalk.Bold). Style("You can mix text styles with colors, too!")) // You can also easily make styling functions thanks to go's functional side lime := chalk.Green.NewStyle(). WithBackground(chalk.Black). WithTextStyle(chalk.Bold). Style fmt.Println(lime("look at this cool lime text!")) } ``` Outputs ![screenshot](https://raw.githubusercontent.com/ttacon/chalk/master/img/chalk_example.png) WARNING ============= This package should be pretty stable (I don't forsee backwards incompatible changes), but I'm not making any promises :)chalk-0.1/chalk.go000066400000000000000000000100721236420037600140500ustar00rootroot00000000000000package chalk import "fmt" // Color represents one of the ANSI color escape codes. // http://en.wikipedia.org/wiki/ANSI_escape_code#Colors type Color struct { value int } // Value returns the individual value for this color // (Actually it's really just its index in the list // of color escape codes with the list being // [black, red, green, yellow, blue, magenta, cyan, white]. func (c Color) Value() int { return c.value } // Color colors the foreground of the given string // (whatever the previous background color was, it is // left alone). func (c Color) Color(val string) string { return fmt.Sprintf("%s%s%s", c, val, ResetColor) } func (c Color) String() string { return fmt.Sprintf("\u001b[%dm", 30+c.value) } // NewStyle creates a style with a foreground of the // color we're creating the style from. func (c Color) NewStyle() Style { return &style{foreground: c} } type textStyleDemarcation int func (t textStyleDemarcation) String() string { return fmt.Sprintf("\u001b[%dm", t) } // A TextStyle represents the ways we can style the text: // bold, dim, italic, underline, inverse, hidden or strikethrough. type TextStyle struct { start, stop textStyleDemarcation } // TexStyle styles the given string using the desired text style. func (t TextStyle) TextStyle(val string) string { if t == emptyTextStyle { return val } return fmt.Sprintf("%s%s%s", t.start, val, t.stop) } // NOTE: this function specifically does not work as desired because // text styles must be wrapped around the text they are meant to style. // As such, use TextStyle() or Style.Style() instead. func (t TextStyle) String() string { return fmt.Sprintf("%s%s", t.start, t.stop) } // NewStyle creates a style starting with the current TextStyle // as its text style. func (t TextStyle) NewStyle() Style { return &style{textStyle: t} } // A Style is how we want our text to look in the console. // Consequently, we can set the foreground and background // to specific colors, we can style specific strings and // can also use this style in a builder pattern should we // wish (these will be more useful once styles such as // italics are supported). type Style interface { // Foreground sets the foreground of the style to the specific color. Foreground(Color) // Background sets the background of the style to the specific color. Background(Color) // Style styles the given string with the current style. Style(string) string // WithBackground allows us to set the background in a builder // pattern style. WithBackground(Color) Style // WithForeground allows us to set the foreground in a builder // pattern style. WithForeground(Color) Style // WithStyle allows us to set the text style in a builder pattern // style. WithTextStyle(TextStyle) Style String() string } type style struct { foreground Color background Color textStyle TextStyle } func (s *style) WithBackground(col Color) Style { s.Background(col) return s } func (s *style) WithForeground(col Color) Style { s.Foreground(col) return s } func (s *style) String() string { var toReturn string toReturn = fmt.Sprintf("\u001b[%dm", 40+s.background.Value()) return toReturn + fmt.Sprintf("\u001b[%dm", 30+s.foreground.Value()) } func (s *style) Style(val string) string { return fmt.Sprintf("%s%s%s", s, s.textStyle.TextStyle(val), Reset) } func (s *style) Foreground(col Color) { s.foreground = col } func (s *style) Background(col Color) { s.background = col } func (s *style) WithTextStyle(textStyle TextStyle) Style { s.textStyle = textStyle return s } var ( // Colors Black = Color{0} Red = Color{1} Green = Color{2} Yellow = Color{3} Blue = Color{4} Magenta = Color{5} Cyan = Color{6} White = Color{7} ResetColor = Color{9} // Text Styles Bold = TextStyle{1, 22} Dim = TextStyle{2, 22} Italic = TextStyle{3, 23} Underline = TextStyle{4, 24} Inverse = TextStyle{7, 27} Hidden = TextStyle{8, 28} Strikethrough = TextStyle{9, 29} Reset = &style{ foreground: ResetColor, background: ResetColor, } emptyTextStyle = TextStyle{} ) chalk-0.1/chalk_test.go000066400000000000000000000040661236420037600151150ustar00rootroot00000000000000package chalk import ( "fmt" "testing" ) func TestColor(t *testing.T) { col := Color{1} if col.Value() != 1 { t.Errorf("col.Value() != 1, was %d", col.Value()) } expected := "\u001b[31m" if col.String() != expected { t.Errorf("expected col.String() to be %q, was %q", expected, col.String()) } expected = fmt.Sprintf("%shello%s", expected, ResetColor) if col.Color("hello") != expected { t.Errorf("expected col.Color() to be %q, was %q", expected, col.Color("hello")) } } func TestTextStyle(t *testing.T) { text := TextStyle{1, 22} expected := "\u001b[1m\u001b[22m" if text.String() != expected { t.Errorf("expected text.String() to be %q, was %q", expected, text.String()) } expected = "\u001b[1mhello\u001b[22m" if text.TextStyle("hello") != expected { t.Errorf("expected text.TextStyle() to be %q, was %q", expected, text.String()) } empty := TextStyle{} if empty.TextStyle("hello") != "hello" { t.Errorf("expected empty.TextStyle() to be %q, was %q", expected, empty.String()) } } func TestStyle(t *testing.T) { colStyle := Red.NewStyle() expected := "\u001b[40m\u001b[31m" if colStyle.String() != expected { t.Errorf("expected colStyle.String() to be %q, was %q", expected, colStyle.String()) } textStyle := Bold.NewStyle() expected = "\u001b[40m\u001b[30m\u001b[1mhello\u001b[22m\u001b[49m\u001b[39m" if textStyle.Style("hello") != expected { t.Errorf("expected textStyle.Style(\"hello\") to be %q, was %q", expected, textStyle.Style("hello")) } // reset it colStyle.Foreground(ResetColor) colStyle.Background(ResetColor) expected = "\u001b[49m\u001b[39m" if colStyle.String() != expected { t.Errorf("expected colStyle.String() to be %q, was %q", expected, colStyle.String()) } builtStyle := colStyle. WithForeground(Red). WithBackground(Blue). WithTextStyle(Underline) expected = "\u001b[44m\u001b[31m\u001b[4mhello\u001b[24m\u001b[49m\u001b[39m" if builtStyle.Style("hello") != expected { t.Errorf("expected builtStyle.Style() to be %q, was %q", expected, builtStyle.Style("hello")) } } chalk-0.1/doc.go000066400000000000000000000041661236420037600135420ustar00rootroot00000000000000// Package chalk is a package for styling terminal/console output. // There are three main components: // // // Colors // // There are eight default colors: black, red, green, yellow, blue, // magenta, cyan and white. You can use them in two main ways // (note the need for the reset color if you don't use Color()): // // fmt.Println(chalk.Red, "this is red text", chalk.ResetColor) // fmt.Println(chalk.Red.Color("this is red text") // // // TextStyles // // There are seven default text styles: bold, dim, italic, underline, // inverse, hidden and strikethrough. Unlike colors, you should only // really use TextStyles in the following manner: // // fmt.Println(chalk.Bold.TextStyle("this is bold text")) // // // Styles // // Styles are where all the business really is. Styles can have a // foreground color, a background color and a text style (sweet!). // They're also pretty simply to make, you just need a starting point: // // blue := chalk.Blue.NewStyle() // bold := chalk.Bold.NewStyle() // // When a color is your starting point for a style, it will be the // foreground color, when a style is your starting point, well, yeah, // it's your style's text style. You can also alter a style's foreground, // background or text style in a builder-esque pattern. // // blueOnWhite := blue.WithBackground(chalk.White) // awesomeness := blueOnWhite.WithTextStyle(chalk.Underline).WithForeground(chalk.Green) // // Like both Colors and TextStyles you can style specific segments of text // with: // // fmt.Println(awesomeness.Style("this is so pretty!")) // // Like Colors, you can also print styles explicitly, but you'll need to // reset your console's colors with chalk.Reset if you use them this way: // // fmt.Println(awesomeness, "this is so pretty", chalk.Reset) // // Be aware though, that this (second) way of using styles will not add the // text style (as text styles require more specific end codes). So if you want // to fully utilize styles, use myStyle.Style() (unless you only care about // print your text with a specific foreground and background, then printing // the style is awesome too!). // // Have fun! // package chalk chalk-0.1/examples/000077500000000000000000000000001236420037600142555ustar00rootroot00000000000000chalk-0.1/examples/main.go000066400000000000000000000021501236420037600155260ustar00rootroot00000000000000package main import ( "fmt" "github.com/ttacon/chalk" ) func main() { // You can just use colors fmt.Println(chalk.Red, "Writing in colors", chalk.Cyan, "is so much fun", chalk.Reset) fmt.Println(chalk.Magenta.Color("You can use colors to color specific phrases")) // You can just use text styles fmt.Println(chalk.Bold.TextStyle("We can have bold text")) fmt.Println(chalk.Underline.TextStyle("We can have underlined text")) fmt.Println(chalk.Bold, "But text styles don't work quite like colors :(") // Or you can use styles blueOnWhite := chalk.Blue.NewStyle().WithBackground(chalk.White) fmt.Printf("%s%s%s\n", blueOnWhite, "And they also have backgrounds!", chalk.Reset) fmt.Println( blueOnWhite.Style("You can style strings the same way you can color them!")) fmt.Println( blueOnWhite.WithTextStyle(chalk.Bold). Style("You can mix text styles with colors, too!")) // You can also easily make styling functions thanks to go's functional side lime := chalk.Green.NewStyle(). WithBackground(chalk.Black). WithTextStyle(chalk.Bold). Style fmt.Println(lime("look at this cool lime text!")) } chalk-0.1/img/000077500000000000000000000000001236420037600132135ustar00rootroot00000000000000chalk-0.1/img/chalk_example.png000066400000000000000000002146501236420037600165260ustar00rootroot00000000000000PNG  IHDRCG iCCPICC ProfileH WgXSS@HhH #J 6BH(!YTp-`E" ve}ADAYurPt a6; b)E>ij7ĚBaP5Q0!6f}yqM(1\ELIFĄ^9 |OS8|C}GhߡW>Ț =p7<^θD[@5Z>z2'̗Lqo)<HPXY[>b?ُD b#E v;5vkڰkd!0| M,I)=ț;h%MѨ"Dc Ԇ|p#]wy9ƙaƽqO8>%HvXR38l~n6\K7C@"Ldnɷ`E\+ = ^B[螊0|2[p)'}?;pӓs!'[&W&wH\G2͌KMҪi-{t:݈EgkgVlyR d *)*Q0(hQ\Xx\CF)L)]i>J}e#eer= ep+{*dcJJvAUeU{\ Փ]Lid3Ә똇&iMğzRޫMVRTIAQa1CcU&MN.|x}MTL3Bs6!-m@-VZLm/Mڧu::BM:u^TYެ4VkPWS7HW[]wXX/Z/_#}~&VAi : ^4|odlkҨѨX͘mg\gЄniiRirӔlljݴ 5s0U]3Gͅ;-H."J;4Ko:n+UUUի)SlrqWk4lmmmmؚrm+lo5ٽ7ﰿpҡዣıޱ)igp5Η\H.>.K]N|tutv=[>SSNqsv`y$xxVz>yUy=6NGs罯b?/Яȯ_?ڿq^@r@]`C RPHІ;l-6] v ^|.R$,T< /$k攙g^ӈ5Scf̏$W)W۶l~Z/.l]hދw/A$.i]`ie5˩So_Z z~PPRxgʝUUVo]Wtغ+?XڤXO^/Z{熚66lbm*y/ڗB"UZִ`*|*nܶzwxߩx]]wwn4,CޓޘrJK&\Sm>}:i];h}y8$=焟o9zHQãێ15 ]MqMǃ65'*N\wzC-▁3gzZ>8;s3ε9B/~eǯ8_ix͡دkwlotåsjq&[ouގ};]wyw{}?eI)>*}7v9vn{AӬ{ џ>y^gw?Ŭ// W}+WGmp`k7kު֡ /Njb?=!_9Y5jx/gcwQ2v/_xD43 z-b|(/}+!$;Q$hadfHFF| hj2 1 2 1 䒏)@IDATx|TULf{BK @U@P (Ķb[]]ZPvQqAk $^'S{6-3I!|99s=i"@ D"@ ~ D "@ D"@ D  D"@ D"*2 ""@ D"@ d@6@ D"@ DJjS.ˍ6.a{ozҊSbpvl'0LŅގF7+rνqvJTwD ^!{u?`68`t(];6R"@@'^kw ̴4mv)9ݸhS!Kz![?3|(nMqi`{yK,}|IquF݈c1gbL/F!0"̜ǃ&PxDQϮճG9KҼ)9/3alK!;˛ȃ"@ a`ŸƐ*M7}0$_%]5r`fwU)1xkw_-`i`z` 2%5LjW-qcvV3QHm|@aҐ֦ze@pXHВ= =_P@^= JK D@X_il;/D#%RŻg)N%Ɏ x+rsorT`<#$-ILJ4aى8'+{5$%Y'(LzdIy6"0ƃ رK)ER3 c@qAKiDb DF@z]s6 /0"~m46V@e^Mfd7;ykVlɌN{a;lN738]4>}j?y/)6V]5Eݓ-hx`'):}p1oy׉X Z$ݒ"@ р/V V=%%EnuQ8l&f\p]USs}^Q=h_]z7\Ҡ%gJ,`#S<"QD^~ >oq? D"@B V†fJpJgjx qxN0 ph z3Ϧu7&m1fXPmGqck E#sfr< .Z}s3km{C$ġ{Q͆ClmCj sHwK}N{3^{ 3.˱[͗OŰ٨.eH,SA>K}1ʿWaHg<>WD"r21" hRˆ D =A69iQހlCFdGV\/:2F҈kag|2X39N|x("YXe*_L N쁧r2%U~>v ^=7;7uKA63֘Y'_UaaKZ$sݞ-$DUT~~N솧tCI-#hHC=?@Za3D$BWbEqn+ !okx2 |n iqQ^_w#>W{>շO@DMQlUXp g3?~G Æ ,uWoϲGᢷĈs,}8n*%뗾E?9.i0yOc=Qn|86qv?W[ܿ,ǥ׸| /#[#i'\V,|Jb<.bXq h:-XاTm\8g:ҒxqhX:E = RPGAV~~祽/> Dm<^e&+Ź1ďYy2fz?L &r=Ya=MLqEe$DI{)E#軘^oʬFwv]v" + oچj?!D6P73żIb#2ˆY9ѝYR%x>b\xdY>-NS~ Η l +-sRJy7{!l4ᲜX :~js"\+ ffCYlf(vNEWWK)>Fi0݅AZ ,f$ =ZQ)}1ޥ9xE=Ǎt| &\}/.L ,xu_|Z/>e7)36|~>+aJ.DK6;nk1AB326ozԔc 1#v6W4Ǭ?11* u[`|i#ODjfʿYB"@ D=A96J/GFFb {5D7ZfFD3o\F{˄Ʀ&G4Og0>c Mb3ؐh r~Bj?;Fj/{i0ܐ$f`c bf1+7yo4cue Q8'-) }S3~ I5tǰ AcK $7gǞ;̞֞IDn&pefE1^ga~!_~*sF4 D"@x -dXgɀQ1soXT[ld33cb*)621+pBY63Fa3Rx^;K0 ȬXGz}~Zme <=Ϗ/~*$_{Wqhط?f"R IeƃZ6]! D2> yWndFxT?l=gd ^뛆 7W`_PYfȗ1½%73eN4 UW:MלİG|ň Yv ^yM$ \qYW]=;]yh"3O"Kf<(_OGlpƧ-ݛy C,'ӠA1v!osɴ7Wn?{/#ZZa<ć]!b͸8\/;JzS^_16$Fa}Eq0#'S[NÉ4_/5(a PL0"2%D"@ ;葛Wb3߱MN`గâp~4{ |_=WPQ1N{a:~Wn(7W`غ\=oz0p/wa!ȉ7bC_Ž>QM)y9Ҵjn;Q s3tam^~luN'MJo[| {/`D2ݥQIKsOT0Cpun4~,_g9?:}:MLsI$@cB^V!o66\i-OK7 ǵ7-h0daܢ /T+˕mG.wg&pc/v5 SnG]gُo|Pw۱W;mS<>`C/ܽbv}L{RNMK}4&,'ϰh/o,."@ DsсZi Y6zR&a5cTn k0a&|M-aZ،܂c=`Ya ʗ '9¥ vm"h#S1,=&N{D?RS1@IƎJ'S4f t8xJq(;s4fc$PN_ė(v,?_'rӱjλm')R{ҍeq g,T'ܰvV_̬do+]v08dKe(Am>(\̆'>Rj.G]TʟKC{u ) D" gLP.b)#ʁM%;uTE~/q#me2,<"u[cS Rgϰ.:륦 =̎%M-s +YX(d|e&E~GNJfϒ-oM8  łpAS+ve0g g\MCR`\jG&&HkFTɯvahiƓqrqɀUؗ 58yTA/'j+_w?D9AҚU֔p"@ D/0h0^܏>OXc 3~\HY]iixlZM"f:eᡗ_%H0OURFmW$ V ,AafS4nd7W8yjJ1跃X6NRbbp;ZQX [37|r<)q_1\zذS|x[dP;Q1D8Z8Y2;{%j{ae w.9`W/A!D"@:z) +B);~f@kt `oNaMyh,Z:C$z%gфY$l`.td`1snS̐i,d/?˳eMQžu?9۟Uq0ᕸn4^7Z}{m른;H'!d(!3%]}G|'_,9 Dtq»Q0ȖЊ2,Q# q1FGutEE%Qn1schwJ&ng iЄbo@8+9Fbm q4T>3GK/n8 ߫;;Խ ?| K/?瞃H\(z߀sZC'8[Q6/qvaօ7xwc"@rn@c[_r .g[-oRUǎ񱂳 %m/$%x:%L eRm<+/4W]j3vcShȦţSM{+1qv\.fcF@!p~}9:~<()dm&+yj]eJT _rf>S /lU>㵷gDx̿~A:Z~yѝ/Qe! Dn@wzMvHnG=zmV_VSxa1NH锄(xEaol\"MS땙a/*rp&<=n f139#E-X^)-ILH^bxmdod3T i'|G |2=|ٴcxHT5":ek}{'1wv~ m 4ɷBqcW %qBPf{R<:ҧxkA\۷/(f)cu;:QQIU"@ D 8}pIBU_Fa"w 䲦֢? u8Ia fGaSJv YaYI٬H 1JadÓ 5I$X2]jQ% pE0Lr2ј[Ym$(dűSFHd'(evjƵiMIIX\V&1afvw&PWV}HL,Mo1bC8Ŗmٓrô+6`G}=) i*.p8nҬdS$sߩavGn|D@Rz_?Cx{v(cж }/+ιoE^jn_w_l {?m>v7ހݥL ;>5Fa58kHkD ,{aK;JM'BYceĦ %g(sa;>{SE~m1I#D"@M zʱFRX6T .<f*$KWQ25e]*fF4GEi/*?@fh6Q완 bNjFHeWVTq$G[vLXF.rC봏IK/,'4]R'O8FNE\?Ъ̑Q%;D=+(<;ԭY㺋:z_y&wFZp`^Z8<kx*jQ.ۋKoaYP>?Q+YZ2O+<ߵv'L@*[_%P'PTgn5pe?-l&tcs8,u2p&^ex@{m!>?r@2RO9J!fוFEQh2yPc槜^kבU6 D"@T6Y6c{U>oo5ٔ}Kbj41lW&MI &cV+f[QōU*>icG#mi7!dW'V_ {11f0D0c#> 'q(k0{p/Dڷt}5zcya|J65C:b2uґND"@@Ȁ,No&[c_U%v7x6W5awR6 D"@ D$@:G2֟9 lw",iO5q`<`*(; y;GHK"@ D"@h3d@h3!Ȅ5g N`*X:nv*@J D"@ D0d@f@ D"@ DJ "D"@ D"@ "@ D"@  B( D"@ D"@jD"@ D"@@ƠD#tLO!+|Г?=ivrг10ʊE$X.-TXjPx_m9(gsl|_d0 0x:FD"pjh@2$'px4r0@$pMg >"@֟w;Ggǵx)#AT7Xgë^GpX|pU"% _@lm:Ny嫏|l;ǴwbyNo~uې+)F ]ow/;Nj4Ίļq۰+D/N_-Ȩނ [O H +XNh ztكMEQ v l$჉7aV|_(l#w4I"@dNޥ۶5ncpr{a!m8 L3ى[x PG`;>()1F;z 3,cDЛ&.XglPj],mR$gwVr;Wa渓&b؋&׏OCq"8/Xcviw/o,G#wԐIIujWoF^Gc4-~ƀYi)!˽1`yli ?8٩و7vY|O)uۻ+_&Zo_ZTTPs $.&ӫb7 7P*? G +yq^֎ R~%0G-,EwڟIg5_L) c0ZqSʺS]XBҞx9MWxu䵸[$BE-K\WxP?s,>6q4MgNFoqZֽ eċF`9FQpԷԠm{gt,dRcKdz&%*vR_´anMz:ԿGZd{!&/DISSQ &L]?.ܗ ~{-gr,&|ndjvmƈ(Ha`gtopo ߐ1|&*֮P]-.]y᡿H=?RzuPn ]@P$@a[4f#g-ƣ{79ϝfۃG,)ނ?coHr=:I&g`9y1YΝ=6z#w5aܚ7xSaJZ,zA:F+#h0l2Ƨfs"vKcd.{9VJ1WZ}/Ha[sd4z'i\rnG;+uD,&e]4tW^_}GwR%<_ X;@.Ќ(\{{J ~4:}zfy'I2 6@qBf5;0uj5M-?%.S~&f/׉1t)w};^ug|w904+F4Xu!n_c\˞/' m6PcRřEOse:d)fY̠)IrҁGjnմ?5i_Ü(_haf  Ѹzl[?'hg1@W| ޏ "2fn j`Կ[fRPgt8kbSt"@@W Z({3G$8p=RLf͓g`8$۷8Zdq9.f[m0wǺZ4<_a<8R 6&G@9\ځm%pQnGp;;zߥ$s WHFd<*6+g`vJ>bF뫑,HWE[_܊wt|uݸ%='b,3 lqۻ*Շ`x ߎӱyDkCuQ X~hV+Pwǧ.&ӫƋƃ.Xf9Xq056)`{&aƱQ?-gsU$qw~%\6 3h捊@p.6"PcW,妥 e4ިo =)2GGk*ߛ?"@/z`"_ ϵ-g~ҥt{K^l#5_7>sF;:ȕg劺pR<~aݎ[v}- Cpl#+_n#RAo-#Nl#,=|C't{ȳBMʷJJ8 fإ-OdwE;R:Fego^Gh4g0 Y=~v2t:߼ Cc;OBm?z_M./A? D@" )mhd1q2d:lqc3yL>n1oC,SfWIqd!C4@l7*Y2CLƔ`FM[6b꺍y3 $wClYD/f,Hd=@k1)eVKeBp _]7:ɗYH*1NThHOMmeʩC dl~TQ:Jտ ;Y)朔<$ w'>b_ئ dKy) I{"2lۿkviP d3 2&hXD E61ShQH F+}l~=VU+ <#qE#*!Pzĭ~ 8c3c[pYω5Z_ Dvos9D^@(Pö7IM!`Zԙ:?A)ڟPj?ul޼Fc-/.4w`ѕwڿVXfJ }X5k}hnr$Di$ε)rwvD`;u;cS1+gQH0j,s^5ǰjؙqc._geؚQ8q8tM;c-߁ƀ,LL΍l(gXx\ '"?QV6zίpŜ4;>*Ǣ>=Ǫ}8b"9.ё}-`I!742AQs3؉CBh8jjbڿ@Db=;'+7cFe2,X*jP_ϏY<)/"@C@!D1hg/>}_4M_+`!hrLikcys3`\ +2TuÎ[=vw1 kUن㻍x5 ΐ~5ii6I9b|?ۂ-a=KC^'fK,*f̪#p`6&4o]l7Bͅ1/3N5 1ڿwɤ -^(F/nD ҡ>²''ně!>9[Bonw Tbd@`?RcT~90M_8DF@]&ʎ\ 3eo?! K"E^Gs~],~lX9L{\ﰣz?KN`#/-Mئ-r?WzK &fR-nf 6E+!^51Sj³X fe3S|\",܏RXPX4߉ݪ&VSW-_ǯ aw6ﶯY n#KN/Pom VWI4:igf~BRsQ a-Ok`uH')OK@lS[Yg"1] |V-_eZ[ tz~TTݔ  D!y둅c3`7%2>'|Ƚ/s/Ĥqxn_/Q LFbR'7z^.<]v tOfCl Nh9M}2><]< 'DŽԱ]جXWI+sRW|ZڿRuw*_WWrTQC0?k IJ)y,oc/C@ODі3[ݛ9,!f6ųB,* ڿԷ ڮBE㫬ۿN}D~DF ] 0"@&yrR ߻k袥O&DT,a8ʼnP DN{ag"@ߙjt%DȀ "@ D"@ nd@@ D Cv ;nݐfD"v>JI Dxd;fd0_;W{NTa* DkMfS D"@ DD0""@ D"@Ȁ5JM D"@ D $d@ E&D"@ D"5 k;"@ D"@@HȀ.L D"@ Dk B׬w*5 D"@ D!$\"@ D"@@$`Z>g -XVu(m+…[YD\nHo}ӦlpXw^ȃ"@ D"``(罾zDz([;ǘ;*?nŲg"~qYXF_NIiN\D$k7]:ʬᲳm|hb穼y!KCèh|):0/g<[v$ID"@ Dt ~g Gbp|,z wBL< vJ\3Ǿ ;SYTz2\f=mr7t>SCYW)сLG}"eژOC'潆;8sQÝMg?|("@ DS__t;?7AbNB/f=诂7}05@IDAT"a>taXs*?L[ j?)g`=Ͽ] ox]G D"@:?\W+t+ Ƚ~gicFf#JVޘ6LbHKߕbr"Bvv_j C:-.-RJuvB D"@@vK3Y爳 T\bv:K/?r"@t#pI)% D"@ D.aXWq\ $3x{&}l BvZ*}<8wm#V<+{ZoG+~{u6nx̩廹Fs=Kg.UyU帲vmKV|* (ߝpudWv9.yvCIJ{Bj^%';gcGmlOװgS?+ߗUP!B\ P6@mj W&]RGẔcJEgh93FsTzXvHK];me}`֝hvp[#uۉwx"7@uSQ[CdKgzR~|WS~ygcTfJ8Z|Bj?2\7ۢ@mm{Bo| 兓Sl8WZ)ק6KKtg@{+*++JE:uN?>Ln'Uό6yM2nWx+VN_38uS !6 P6@mN+6Wόs>;ֺF1ѴIjtE BHc5pwd#ɕw@y\'tIsueE{2Qm@0&5)86kux Y'ţ,{f&cR@j˟6F.ml5_1$HBlMU~0*ӟ|֥]{[wʯ{K"_\HIkum~vY%qG&@PvpW,'2|W15sDʼnx§\` K &uyBEn^48J޳JC5:;eKxKK=xz/}!6Ćj P6iڀEKiɂ+ȫv;{+G܆OZqxyv(G57$f(|Akwch4 x{5?SClՀy,S9?4_K(Z_gyEXVn3rW_NJq<ꧽۏR{8M=~PfńjcB|>.Y+\`\?\T'>%\0iH6DoO}=!6Ćj P6ۀpl+ߝmϞ⎕K8;1 x$HNLHCe0Ng֡2(#t]|?zJYE̳[+KsU[2LA_{Ͻwoq(x*_kT]RÀ!s>(Ք~ڻz einA Qh-9 C|(H'/? `!H?LHͿ8Osj3h}.Spf SVFDHϵ 3mU15)E D"@ Էu4^IKwcܑ foryOL@vE7i`ַ% 3zdQ`oZ$i}tz\9/6Q皟ۻ?tz:߹.7lV Kۏ\q]o͗XHtDE;K!s:t8p~f iSUӳ9e !]lo|ڞv!CB D"@@PJ=j5"Ύk$6 }΀W++U~-8s0F ,r$k82mF Szs?EX&#.|۫nGϘѢn?rQuVtnѲQ=+vHnGEb0g-=W8鹬]yw=7,>Q$7z- D"@ HB'0%#ETyWIKx_߿P./X߼ H{:kyzj40l$Fac81K?󩇩X3B/BCWmO7`z(g͹9;Y=/`qAHstOw۹p `a3|=X5?mx0҆iժ-'D"@ 2V l%׽^3"iӻFAR\rS[.`p)@puC^ `?Z߲ef@ך{^zǷ3\-?|x1'^c̳^:BR%Iexpݦd7 ]<ܵă5m°aWo`W>i%%2ֱXcӗ3t}B~D"@ D7)y83aY'AIm+90 ޷텨@Fp{~{LK%y,H6+g:m(+nDǧRrϨ[芞O/(u,5b ȝH's>#.OG|,bN~&ieF\ÝJę!^:{4K<3m'QyV>YCʻFR  D"@dZF q bX̂v:8cUb'*K'* te*Fw=Gtz=)Es߫ i) S q !JԱrXaf8No|%\~d-;f*b }~8{_s͡&1MDdZ$8[4xemOi7$/3~!q˯36íWm&z;j0uċ3_ îo̩bmݝq|S|ȏ"@ Dtf|$q5m'8/ƿsU9x5yK t8ŋstk BϨ[bRv;Wvpꗍ&TA)ŽʄLEǹ&H{e8;]G{J1QYmvU H/ƭU+tfpڍEH۞g]M?kWtp/E)/{zrD&kTFj6q:{-b;c~C*pOʜ1"e%\EQW!WlrZݙb[J˜l<8uR>L-=PȴW+A3.* V>bCmj P4m |Vn@pxU3Ig7JH(]=&{/J;|/,-{+{`;c|e*_k=̽'/ܷWYW-VW=M Ú7o^yZ(!q%ˈ jOf*O_Mb|nK<< {S<7j P6@m@n+C4/R;/8qk}-uܞoM!ME Lio侺-S_r;luf8n:U߹(5_&H# F-Zf=k)qE]h?ߞhϗapG7.i 1{;wڊ>my,o:i&X۳!\ϳtQ,7sLO"3On+f)2(W#^$16@mj t6o+ο5׸|T7Ԝ )р};lc".܃qCabϷף.yxny@.[mʭuW>}FO*w6g Z~ܻwhO%><|zuxa )5oc̙8&~}KozZM61M Sّyѝxnl?ګh_ D"@@g".t%D"@ D"@3"D"@ D"@@+Ȁ &D"@ D"@h"@ D"@ D 4!H"@ D"@@W'@D"@ D"@ @ Q"@ D"@ ]z "@ D"@DQ D"@ Dtud@-O D"@ D d@E!D"@ D" *? D"@ D !H"@ D"@@W'`BNVЊ  8`&ׁؐb„4TaÆ>[}byٓX#_GZ"@ D u5apf4 -w38`fwRLmN`ҼwNV:00?<1f|KԪ0 &X 'Wʁ Pa񃟸ƻ_!H"@ D3KH)6=w3(E'3 pu AbG$sJ:(vpEtCӨO>471n# g7p,\4K7eA9(D"@L@fa^w|1p03e1l9NQU_' %`eo?H s0 6MT?~<˾?BBEڛq0 ڢs7.cr"/J. A5J D} 7 p?G0??lvV}c g$ǧB.7\WsGA-(CD O>2Ɋ%2`νU-nb#Xp|x \9lwaScz% kZS"%W9{ZXUhfĄqI8W1m}|GbJsu)=Iy5v۱bTf]BV `v}I D"@^dݒkrf`$U7,f@GDRl5cAh7{i3Žy>+?O+7:}R? 4՞ı=x<|sy.}O8o d#p8`[`i?P.^Ċ!7=ofsDr笠7qM}ם>˿ϯ 𧗾P;C+p0N־[<`iR\䌟K_+Gz}$NMĠKף1\^GgZXt?QA+_Ġ9५gډfG.^\ PDJ<)=1 M缷Č~ILG1njO]Q λ>34u""bXL.5ƽd!5>טsfuȲGdL*&\^= v˃ts;, 3d)-D׎]ߑ{ݸhL6\fl5 ګ$$!]i cHrpX=*e컱p`6!2Qxy]RS~ǁqq&vw=Չ.ŇOǵNqft\Lt6i:7Q D"@*. FqB$q`tw?H 9 =QRtg>+l·+סVKb/T*.B!o۾/_MkNisw3r;_-'E;QJgpm'8 ލ)jYLiI=~VrtQeo; ^ 4V.@昈Y=%{WJ0ń+0j?e&([gtjC=! hUdɕEZNmtRo8!Oo'|{I]~{a7O۾Ǯk3&`L 0tu u־=ooL ЫW/UN?AAx y[[?uU2 gã٘~t^iE.זmlRHϹ$Ix] $7? JS&n|$?:t}m-G%{GK TRm E돒JI)0mqL (]M5=6Z 9,9Od vmSj!oK-z߁'M$;ISmM=DnG=oG] V/xuZ~f-SճqsȯL 0&` +@YojQ.]Z`#xm*W'?jl81v})v~M1M|o$,؂FH)ilU~VN(~B+ѽyF҇Qdh\._L7`L 0&L`:o66i3qԣF u812;AYekUSo^XߨwuTъ_/Hir-ƓFr)oGſ-QÑ#U^tv!b4I,a53S]odcON 1 Ћ$MX?|H~=x';c#'˂@LL9Z˿i_da+uo=G,u7Bh-RFLa&`L 0KQ`|cۭ'kG /̀VG#(Ax4}8 Q>v$Ə~l/';k0S$Y"_ EH<jd^[j槦cƌ4jW܁3ygG쵟b\~:}GJe; [[QT>rrCL[NdHv"q ()ϑx {SӦS.0ܕT`L 0& t(@@XBh޵E7b:1R]hV W=s5o\4遃A46s^re*Ę#&cL\̚ZtE16MBi7Ky9FI. Nłd` D2{ZAzoF'?- +.>Jz1}Te>(ry KXy" GVav/=ǓbDiލ^C0vIĘq`6 ̜!)uVQ~!Ko?̛[RSU^Li:iz-kyžI߆˔o ]=:҅L 0&` @hjC&D^\TL[3=5X_!4oMbv8kW/6!d)`e~_› =3   6<&'RB)]ZbcCQ%`.l]gȎF|GOmLON6 `i8}/n¢z F,ز |7ο0ܸXZdmm%q{זnŗNcS<#gL 0&0O@ tHbrU8lX4G+7b 4bzκDT ,v77nFZo[㢔]&=o? o/7;tgzU7 /ks;'[L3@+<‡?SgWفQq.8 E`>m߆ ^$3a4f0@7Dt`L 0&@@FL 0&`L 0&^:^нéeL 0&`L 0&@iA2&`L 0&ao+Q`L 0&`L 04`BrL 0&`L 0&6qy[xe ;0&@$0iҤnnN4`L 0&2@ʥicL 0&`L 0&E6] 8L 0&`L 0&2@ʥicL 0&`L 0&E' 0&`L 0&@W&\:6&`L 0&`] HAp2`L 0&`L te,@ʥicL 0&`L 0&EH:8L`/%0 ZjZ,]}u>55Xvm[\/,9&{<_1/.FcP>6f~J}ZagfK$sq֥G`[x>sIᘙ6:aa8,)*:ڀik}56x m&<|mz3}}qfͿ9R['yM]m>)BO'㶷n|j'^SF{p;s#տӕ߀r. Kei?3~.g%Sq^PUUȳ1؅ 0& HwY"=߂~\p-[+&鳧1{; ,ws;"sAqzM׾p"6DD]0[Z(U!s(v'LSP 5۳o3Vۂ(t? I/o"pqҸ~<;`LCbCf<Iɲ=:&w3MRϜqɕ8c 'ӟ"l7'Nj@jĉːb{w£.<Դ_/Ԗi>+؊J$'<v/-y~*x>I@Z/W;`lH>k*Wbɲv'};3&'v>VV!* AS* n9X-gT,4ף:YGwGթ|bdϜu?OKRa~#.?joܩk6G/綖\~ 0.L-4w&^)w{OL܋C%+02N0Oh/{" v&}sFk`A&:+ܗeQ~Cw/1ۻkv8L d@'ikd7=l5 A,@h^ ɣ+֌ߞ׾aLfTVڵ(Wk .aS-~4VyT1oޒ6&kD cl;F$=_X;&W)'Vf ~(Ɋm/Ym{iVɶ?])1@jnN {%~3y7X5~0&:N $Q-!l]o 5"ڷ'> 9|sBx*5YAf p`5~a㑫Ct6%n&|;\>y]#돟M?~_^rΏtr3^X( gomg5q@k?} &8oi® Kp%'~/E(D۶O1{M5OScۏP]]LuOɋ3N;f,t0"W㷥"OB%k~2z`To|h6voS:o]pFT.(Ba~a$ Ž 8Ju9(XqiD?I P0zijjۍ p՝knVlK})]9p g>rgp)xpΝHJ[~Ψey9t/&7s4 ӓ#c:eMo@~8?ф9<`ʄIߜr6{L` o_% GkYe~ӮaXJe.*Ey0)n“ pg߭2lD8ZN#vJL^f:‡zmsd #0($֧݄RJ{Li=pĥsj9A. 0>?޿ gv~A7`G, R ,}Xcd3ȱ굍R&O,K&Iֿoa8lLr {bq<̞GmrX|`LZrCpsOUtQ', {}>&.Vw|tJCA_a3hwvޙ!i[:,;J_/&.@I*CdnG2֥Lq;܇ DQEȟBѵ9qãaӏ6o݃S5Kޅ:^UjۗWHZd&R[~I܌^p!  ,fˮg1N]Za ]m) &lZ˕?V+!!v=XjTh#.x:~O ` !)`LN snS9h6h_/\$x*X' WL>wsf5ZSgy\_; UÏ; HNa|e Ql̷a iZ4TXøOؒή+I1[DjʱWl9Bԫjڒ'u^~G+n8Ln}%4JRTY~3z ƪ7U.. Zc"f}XTPɿ'zfӚH'ZDudДi8WNyBaNYE;_-' obJyO976k/>\asm3,o/u >&U赘r'TSx#]VXmj6n~b=EOaU9W`*6FuFn$|8Voj1^5f|>3FiU?$1k7q)ԿLu:AŸuq(G)MoM[7d)ysz2)m?\ܹ&~N'L 0 t4q2ť/kuwqSr,+~>3w:'M=sW;v8VL?AAx zn0vdӮQ8TEA@[wCA>Bz>=׸z6`zؑ~50NY]ȠvIsm"#Gݣ(s0Ro[S'>g9:L6)k61 V- H@k"KxFY8 + XpLe?10DzZR?rJA{5>|HxKkEG$1ġ%GTz"/|O{Z5lF5$NNIQv8>;1$م./SСvsbVslI=n gOmN]`ïg!Me#mdQձ=fRQ4H? B@r]8` !DZRҬ_tv?]^29d -q;p^kwxU`aw+ŕWވj=I8-t5ؑ 0&*3R п4GU`;b@?qr5z{c~{O慅I_ ιGgp &;.M"MK0ԱO9~òEGf-o_wBE7 PNjX곶Î$õKl803?Orͫub|%c=K[Wz`!^vMh9gҝK=}R ğ?u.]gvm^xw_CzztѥÎ,{ZvҧIf v?6q Oe{ ]r7Q<O&ؤ. @ LGeL dqĮbۯGÕM;߁&1矛mecԤKkjk̽  1ƥ W[Бjv Lv9_sͲ 5/Q 9wlXr8뒣ί #:3Ə )ۿ2%:WhD]Uz"KS pjhARJIXFL~V4a}U|1ȋdn@[`c B$#*heW[~-_[Ґ@h2ۣOea֤y螵M:Ǵo3U` 0&Љ:Y!>gdICoUXf'^'KBbOl.-5x%A(n'6S 7|K Exex7pSńdM,>8w3ѻ\ħgO@Hy8i뤹8yB?5UswbOgínuClrcF/Q,K`nR2܉I9 H rbAV, P=imݡG v m6BX;iWbښS~hYx2za_C[~iR݅=^2OL8;Gm|1>md1@4gL D5do\鉃i_9J)~+NR1KgSMDUY3ͥ??wCL%cq7{zcCz홤"1 5N:Z'ơ$@Xj^[_ˢ{oASgZq/ L5O%l3(J`/飺E5 ,?5w,=ghXCp n<8b|2Oh~ ~cxj>8Q}97d_Lg#`j2|+Sv𘟜@3L_y\ItM5.7N2%_0&mLǎ%jvN#.MQaI`uƩ]j6f:d+֣?3?ݠͤ-\Y܆O8I )+ eul SO^6/iTJUq/>\8^SVhw34]r,Y-+??*!5KzYs\?3)߸ywc at[b>Z!LW |U+g ~?وhÙ߯R6S?i~sQRŠc2\eD77buS,ɓ1PQEuvw W{-30&R&xJoK•Z}Gk$s{8WpaIgzoVr]Xʍ&k&:uo0c3)MUC[Q]w+€?fҟ(dݝ#ī$@.(QV?K6$d@-<MZv aͮf]qB;fg^ǝǂ͎௿="۝ϟ]Z"ڃ+8XfP) ??[ j\' ąπU]>=~xM]4S4 %yXRRl~,ݏq0S?1I2S'ZXOܶ]`> 8 Q>v$ƏerZV68(=Ԕq $)ϑx–ar үDl=e%Q{Ɔ55ذn;/G ܛPm#3S?O5(eyRñ.<~uذ 0}خ@OCć ۨSsw>m>~wDb>l3Hi>z2o#Te@101{ϻT'Tyoܶ*:Y;?[KQf;+Sgyl݃w:篽ؚr=NjKf/ʹeQӔ0|UxM/h7x;ҿz+k*u0ymiKXw͔ܡuqU%/ߍ|KRH>47.ojگ>{GXkSסV @|j6QRJFp+%P!lvl|[ՠU^+'Va߀u\/W:?tc ԙ1K]M!?a$Q`~|(߱/oOlV_ Sf<.$_೏ js@~ANZig=~O濟" `JC+i}7MJR9/ 1&R$ S)YO*Zkē58\p!؋,Sxu۷a1:0v2ZWa=TG^r#Z)tc%ftz%=^{N[/̋u߇DQtm͖dfY1+<‡)3b bx6c#.I9N|t4E7[Gn 믮MhŻw ʳQZ;om:JӾr? OD@K'Lj1o:cX~3JzqJD]KfތgjBrŏ/hGAaWq fG&@ WL \܃~O@F$)@H8R&@{x_ki';m 0O K?" \D["vo.K&`L`# T<%M^ y.-1`m1}D?akjZ(()CaPʹotceL 0&+ppOcƣPϳmw%fL ,@H8 PTO.ebfKE7dL`!dԕ]< 0&`3w^g(S/==hQh!Qpw$lahWHCeFWio[H[aTJY:Ԏ'1ߟTJMUMcL 0&L %BQM8ɰ҉i#&?Q2+2k5؏h;rC98o.ZFK ;a]8ȴU`f '+|#Akɶ\ _ϛyc (Ғx?V]ZQ։FgHIxg )P^~Ҟz{ ꊋ_~AL8k`wR0\A:"t{tS_܋Z>,~Ŧb ߮@ ;- ʰ$r;$(օ5MiKrh5z8𢡉#-(r [g Fujm3pEdg!#R;sbrjh49y!Y 6jݨZfM .҄l匲GC[QAy\ 'Č,U<%ODԞˏA4%c| ўÍsh 8P RkB` oRݣ$w+:-A6#Y+ 7?:}FI@D8N3wu' 96S:c 7Ƿ1/65^l]/@is"wisu PѝPݬ\5{SxH&E&O <"MmlYENC80(>_ )[#o3"/OL 0&`$!LuBAdܮf g1h`= !;иM; .<F@R=։V[&>jhZ(AIh@i~ ^/ʿ+>dJ'<#"44&K PhR]GQn#vb…[nI3@18ZȡYs%ҚG3A=tΘWyuwiEij$8hIjyw|sQ:J75 ga[V+& Iir?D A6Fu5LrU\)i#dU[/*rb27 3t7~O;?iKա\zCRNVF9ͼSX}yc?N_I}$+IiT-b{L߁6h蟏;GW>{DZ*_0&`L  nuiGiҲ{(oΨQǼTg9+mˢ-/6.C˥ۺу~F%:s}LNy{J[%ܵY&ꉋ*_y3ݤf?ŧr.D, aIcב&!/x0qe@Q2=_gy4Cگ"uC.lѴ:/AUՆ)ä:%85P{:- t=(9L5)OPץ֭.d$NAJ,1_Sҁ*R? aRzuԴťe#c4vL7Y,fMA#CJ*gyS ȂGNNN9bP-nl% q6?kGܦκ i C`_@y:~WFS͟UÁ6ڮOWHhQIKY䃶(O4'{G?p?3tė3&`L : j-i-˳a]tFUN.KЩT~C ,b'5mZ?}A00V&c w iȳ f&Am=h_z;$@2[8yL``Z>3ƉM{Ҫ9m; RF2d.S?'-aBͫvWؽEI8%ØkOUb^!7&~[E*ij~rH6V 5^ 8mL%^n?Sj?N`@bpb:rXYniƿL 0&H'9]w4%fH$?Cb)Q/T L1Լ'wj$i6m=g)}4:Cldܭ(}⣧씖G.t֯^o3'??ZiMA[*Gz-^@R+H @hmÕͿ6%UQCmdLy AB4Ɏ+_]P)ϋ`WƽؕHC+?Ohbk q~)&\Wj??V0N74jW`n~V%CC[gE[hZF)/`L 0&R!ΜL3v)8i+v\BU.BKwozi!񻎶B+;wh0Apnh n xhP3@d/I6# l"S ZTd~'mH*䑙M3PK+n?mUA T[sH5{ ;gLJkɂWQ!nMW2,*7 ղ4`W]ʾ\%z(>/Yo,?F5 c$Czy$018_N7v' HEC3"{ ``]sA6?JȆ"AP*\4w%a@b7jK>[kZIBj)B ;ʵHW{lʒR#cڃ c,i;PZmGzv-tQ ScKBO:͍۴DdäIXz$ ydjP %S?WC|`L 0 +@hޢHeRP2KBǚhp4Gu?(W_'v@}.)C\$dE]6EUf$Dغ06*͊޾Ax];/Ŕ3؇AǦ[FpHU6 $ჽc/7m/Z \&̼7a$7ڭ/EZaH² =;&pMf܅C-T*O\* ' ; mdTv %7+7EmɈh;kkΎwrkDHED g:GQ}džGɯm;ղrҴ6L 0&0 MMMdIZ& I(ɕv$\Z$-m@q*n'hy ֻh&m-!u|/ŝ\젙Lh$/br/o!ԡYt ڨ҆/Y vWML֨7,`Eg:Rzebw6HT2L(;nl:%PnGRN'ӯ]D%?'%2bԑOZ? ZrT0j ކG*@ߝā+'Aßl`L 0&&ЭI=&$*.TB0߄L $$ =y$(I0ȔlYŏʲ"HFk0.ѵk 0&Bǎ{KI&VLXx6)zxA[zb4IYP.6' 0&`B9[ɾ@6ڽO1FqM%H@gpJ iMm5ZVv!:}kuA>H*Y)x`L 0&# tRK2~2F(mݟ 26|0&wIH+#HKO4=O˙43`L 0&,@PH셿QH'BAVJ )pJ iq4lu;@(cKI=C(rƒ}p`L 0&,ǘp4vaH6S 0&L(˥ygL 0&>ll;}l9d&`L 0&`{  5EaL 0&`L 0&>,@H[ 0&`L 0&^C(5EaL 0& `F\`ݓ۰/52&`L 0&0I&cL 0&`L 0&%,@ؗJ`L 0&`L$`?}Fi q`pym oY\i-_G` ($7~ @ρ֦hFN MtZG E~Y!+v( Ʊڊ}kz4}Ŗ6eCN F(=gB V{~+_` 3y2&2GV/_gؕ'QV~>CVy mΪV,5NU+"0bG]#> tB죰 px#sgW̔_X9ˮL 0&`?hLE,.S"PkϺv9|]fR7(iZޡ~KiEV$iE~F~dIkZFS[w>#@2L!ύcX]bSL 0&O"~4"@NDR|v`Cبh4Qc3׼ƫ z^mW,0ɛҊ#wٽ(<{\hRT5},cVa~Nad2'n%b sʯ-&pC/|ӓAanCaEZ~UX rԮE|2M uPĞ / N`L tt.TbT2l:@F_(cUd{@5rQZɫw}P+o@h=w? 0g!2`ENѡ(R9A8 ONĩ+,nAT s)e.}m]Yd$Xl'(LK$vN_Ց7 OGAwxB-owJ[ ꏒ甿_D1YpxCȦrStYxmd݊@O]ص[[!*-E #hw.jnҙ8^QXwBnTE+CiI"Z]^I! 0jpa.4MBILCV7j:D88$p Ť?L+"GaD@(4fu{NGi{;e$HTRY T~6\~AL(H w%##i|iVy; J;wx55+=HVtEYTT7{uGf1En(B*Z-0P"m K|cB>@j<'tOovS;F`ճ`0>GiQYoR}n_7TPuZ<ɇ/*iG '#"F[6J6|Щb/|= bAu2Jkma Lv~\̔jk߷-|OQjw?+23J$f]@R)=&P;<9Q.ZEz%@QgSN/*PQ~u4(_@qmGd@ w|40:gd@ص"iTsFͺ5|9; MzN[5cAXI֧?Bk4!RUۅVa:E5_f:' % ߴ!(jW' Z*t5ʹ!ro\A~F+I"wyP?E9ZJ/ hWz#գD~OJ \5KT#͜1O&yJT?[H`)*mlYYVɿ$P^aQϱZ|Z /A:Q>: 2'6*'I5[zr4ZJ殜u2&PSm{~`eZsEmqb*~KY;̗+O[[I7Ǐb]@GneV%g(@5BJIi8`s`'$<<˂(B6jH#5.¶VZ ™$ٔJ.G;mvҋC.uC4xn0JC\$Ҭu~?<R' % _/WB^>ŻM7Jb:ΚWyuwiEI˂j$8hNgK$TD!vf }v ۢpVOmre_o{o;BU_lf-ne]A(qj ,oԫ$TA B(0G4|Aɩ^dtp['o*BFWgs&:iIJſËK& P٣0B\FN h@""hI -Րf{M%a~Ƶ FCFP6ZhfjpBv>M!?~A.Ψf){}4\+)JPyc]٨)O: hIѱ)ۃuF '֍6;Їh*>1fLJ'q| UI4ݵ+͢|J Z?FMTNdrRHtDԍ ˴@n-$\PrYi@IDAT0)R*e?_ICJ-ok&߆^2'EQB;a]ևN&}4x=f]V#Zy@dhBK% L`hVдFҏeq,ZIrQ }Jw4KSl؁TpQcZCxz#ԓVGktIMVEdQNZOh(CI$%L  (oYޙIQl3 삲DA(FF1571&ޛY̻ycHb-#j"((;0:U]]U==/>CW:|ϩs|4 X/Ij)TGW 4!4/ZOL$ͬ)5AoO-J#3 fC'A3n?<(M1%_74rW\sυGN&/~iTt̻'3J K?8o\"SGjU4'i% <ݢdQ`OS~~;M/~q~+u o^7#6#{*5m>jNFO4su64`V^>Lu`nQ]PO 2SSHҺYjtq5L( /[&E`qx/8(NĎ 44UKH,i}?i :{%_ ѿ&qv<'Gufʌ3-i bS*es~} e_nQ_J]H~|߶I|ϙ@TNviBIGuI)}:XdP9*4[27R'#(=@2W1dl<MT֚f{3va>jNVՄ GSǺh?ZQ,eM>ԩJj ۩ FNJ6UwQnd ޳D/5==Zajf=rvMz*F =ʋkW՚$+&XRG+)&ԉ~}wo\o ^ mIzV&*dTQ gMQB^N9@ 3g9(F)ŇJ*B4+bUԙ7DWe/XHD1f;Œ@ h÷ŐdCV{ۭ{P f#ѽAS,MqFy}գmbAʇZU׮Aܣ^/i*s/)Ӫ0FLTä$tzznw{Q5:Wikh/sMqvz%cvZh3p.|14bXq 2i<Ķ]e> oS~w>?UR 6d+d3l>P"eC ElI LEqxvmtq/FD찗jIȿ}m@ Ra?vYb>ƒȤe}7 I`:m5?Z½ɾuU3Aj$0e2?/KwBY^4ɌM3̯Feߞ~(JRӄ7o+ցgړ;4+9a;IDnpΟ%/KOk)SKk /+ځ! *?w|sUh~ 埣Zv(n9D+ʭ>2!=u4ImŰb;1' ͝/UwȂ2*tM`PjZ8&̇h:nʛc 0h5y!KnJXqnH(S@QK1?;L/vc;N.Ř 0>o*J%GE<θ'a$DbRgjIaGiiWjse)bB_8bKtmm, $~ੋjU1(m'[8nMBݗSCۉ4*ChʣBup^ijf ٹ8EN*Mϩ4¥i?Dp Q!/G˻yԈ]5ҋuQ;VpU䛖毒9K;@ۉ!UVhUCi;Ǎ=dCsO>_*"=ۯg>bKb/#d WKHm3Ll) '1tA>lFYD14}SPִM#?OKΊm>ٯsZ?yNChWӚc4{X7Q_M!PÉ-d!z~7B鵪t#n@ u&Y>Xl}6g5ό3/7&cʒ8)0F֍^E:"O;o8U3O/Fۗ%E栧ad"%T!!clh?:?o3>_*obHI5fj_wvrW>Jt{2$VVNϙ@1mKE xjǍjؙMZ zύ- R2Ft^2)n9.R_'@C(\Ȫl\؅҇]ǵ6jo:JHJyN*d/@'~<hOuă42cl\r$I r ޭN) N3QbXzгZG%;;Ryqz"7;`q0cW[2~~~;K/~꿝m:}ۂ Fh'cmm_3" = SqIu)AM c.|d-ٰHDNn bf59"G"RK~_,s3``B8Dgg%Ԙ.ڲ3< ?Yy`S<8"VCm0$nUy@aƳ+(RK~1rL 0&JAiA#8'UtDTCO6 5 {b!-jb[Ӵ{a?rF4!S~:}8<`L 0% ->/YI-2 $ȠTٮ_2@hx#Vj8-i0>5etNh~0@J.uL 0&*+*msT Ùyugę"D dm{h=H((y4ePGǔ]^Xy`Eݙ@J.ubL 0&*h1[Ɗ Ca9`L 0&`=I($mN66naL 0&`L 0&8g 0&`L 0&@C0&`L 0&c؈b+p.`L 0&Ip.(-PZ:`L 0&`L 0 (& 0&`L 0&@i 9u&`L 0&`Am TD1&!=x}:E1ӛ2y;hufY?B[NkBdG?}ؓu}J)Wn%0&JC OP͊l=ia4gKIygAiʳR% Yu|a??(%o痯ffTr%p$^K4ޖAk_B^_'k[qB#<jSnpL 0J#S[U _>7.ԷߦUkF' ,\U#׆1b;8TԚdiS";7R%8;G_7?D*Ng;h- fL 0J!. -#-:*M@Li{}#YyP)r6 aOiHfD/]Qq-^r-ak^C`L A@҉[N↏{jJ=Ýק?Kٴ{LV =-R $XakS?:Czzw "FJG%u d> {Uy=E$*,!M')n]]TD^!a?sKTEw(g!HVi^wS@p(SH}뽝60&8<@0Kk~hSք ,`DτImC/" &dF z2>0L6`E}~I$!omʖK6*k؉H{yOuԒu/eGJ1+>a?B'GRФdxduIWM˖ˮKAHm6]E&2y|~ {M)eʟ&MdAFrX?&I_U3,o^mE=(y7tap95 _פ.1a>'ƹT4.ߩ9-{8?22dSPqՏߨ|f*Vzb]>;Ƿ?]wdS@Yk\EQ;HJ얢rCst5~AICϊVZ7Xhg.{IP:qv|j;}zc/R}/'e $gg *tw++6ET|0&@% urC$^l(@̵Ç_|ߏ͊+IeP(-5A>AXqs#;M&T[`,^۫\x?ĀfV?~S7Ic65; ^/:8~n(D K&ydS;Oq/B?R&SO&#I !rR  ~vmG?=n=7D[ s+$SG;9p~j)E b'}#_ʒZoRv4yQޕ[o`Uk:+ߞ\;>PX߲B2om[0Kdz_'/Ҳ˯P9Bnخ,}h> E %iEiѼޟ~ޟjk)`ԅ3}3M)i o Wi=Zr(wSN9s&`iw[&ݐ?FdϞ8n>&SdepbZ~p۔{W0drJ9lqi@ӡog+L㼜 r>w~SiTh񿳹c_-HWC1ɰnuuRco*[a*Sf(Kd]V;Vg4|{”FUxZ>ak:=V1H2'+ 5b'EXd +o)O6bsDgo;ȿK1iO-Df|*5'q"e7HдŰ0xLC٢خʟff(IYTH)&{hi](+P R.,{4ޛ8^Sg'MЛFGLt^AlS2Y._.SNjBsO]z| 0&ʃ@A OmמJ ϿAyD7-`0,Q[E~k^]xp>#<,ՠӯl,tT0B!v/;%;3"YyK!BYt*Ia2lO.-vfjЏ0,($~+c1vPk}{1F vo1=.$OGZLnq-E~w=14 i,Y%[X,~ƒUy$VDQ!U.XVͿ2-R=1&ܐ(F<뇪{a~ASI`4- ,Fiv 's>T (Ox֬b!;h;k1WFkig9ߟ-{ ΙGJi-WXUDX)ꞬFuiRYF7l{9X|Ff8i VQ,:,4;]vDkkOjmΛ-Fzf)}tvTS2f)kf h7oG<ӛ\}A%ZB 9ɟ4Cd4U4cOn[:%.<ҳpmq~'?5R8W${Qg wpP Otׄ*:49FMcW&f`ٌE22Ytܴ.ڪJp=LwWw1e: S">])LӬ~v(H_)9ڴnmzL(G\{SfI)%g\],];eA/23$%(a5gT7h΍iū-c,+I~b:x/7H/6?nՒ/HMluI_}0&EVkǃ3hi#)1xq9^K>(aiKW/I/Lbvix5Q9fT`@*ZEdR/a:Ҿo;Kzyjֿ%gN, [;?ϨITQ_Mi4I]vG)vvo^ϵr嶋,?ŝs^fG&of2o[]S_Otcxփ}R+'\ eB8Ï{J?gb-iãBHB~dί+,=/iN'mnښUL&9+igTݿGfu8!/KgPJ"#S3 'Kd44Rov$$ͷzr/Uy+W$tސ`(n}&dnu?V6*>QvPrrW8Vt}/י2_O)mTN:z&SFP cFo&[ncEկGpYZ9"AL3$T!!B=LdU ݯ[oNmĨl~wㄠPܔsm7BPn:W~{q꩕܅_ǐSf ٕ`@U8vgL 0C Gjޒt#7g'>fj{H4E>~ yw}:dRXкZDp̢spl[A#|]k.QYIk}J$Cw|4uI|{a=Gto zˇgi+H+~j)m9h؝ۑ_΋w[>43`չ1\5I_>jR/OտM/]ޥf533K9W| $Ww^jL=3GVM?h-Wƽ~<<ADKxg_7gC?'Ƕ"~oSgW&(zq,M[)~$]q`z>lքWliHaOp?̣6!3^ӱ̏` )9 bNg$pmuv,Ë-i0[Ê1$ջWiy04`7my*o,e 3=w-D49F/Njݿ$ Ve;Ib |X O8**MZ64}WҔNje_ȕg? MFLy`(q߃]y4 \f/d$ɾ׳!& >q & zu?_+O~,!4 ff8QttI*=+B$b?<\lsX.3D7T^N )da~>m6= HϿpzp̕|o1%zs*@Ծb)CX2A򪉻k:4AAScXfL 0C!=5_-^~'w}ɻjxcׯf(&ب( 'R 6|zd_>/r -gLem0qM/nі$Iأ#e9r!M$RUF&mc ٗٹ+dy%p0]o*k´޼1t~*0RQӴSik Rv?^Z a)ʋ=@h տgx -?UdCEWSIR(3W}~P-sd$NOQ?/ {ٟ`e'{)n;hNVGY&C`L FBց~$um&a2#kL8MIF"ta4yymz7~+Kh tNh$S5z#/+ šT+o Im@4wCTr-=Fj4HRˈ4 |FRKhN}ea#m)'F9(7Y)ٿ.a>@1œ8d"20iqtɲu/BӗմD}Ç(M5&q¬'Ũ)cdCF^naaʳq*֙ʋZn&N[ 㺻"#n9I+WP$)ƞאyrg `_42KbSrn\p˿HCDi!JAΥL߭N~ լЅa|en@ufuixgZBO Ko^m&;.| 0&*@+* @$U.UВo~82z%<%O+-\ӅzB/Aw6X7*8=7wаL &[i72vYyЛʗ! =< !`L 02& n-c)Y4&@A}|%e%d(z%`L 0& nf ByN==/\Mkms1TᆯH7SB㈅@Hy%R?ߗ돝ײjWt6&_12#}rn-)~&`L 0Q 'ch&o>aft4צ :A nFm\N?Kd=~~?eXQݒ?If>a>惽3&`L t@[]tSuwZ7)zj :}诣~)s! J%/`S!;(v},gE? A8`L 0&.nF4^1"&έNK(F\nmhC9gL 0&(X`'cwBHqߢ)T50g9cg*Fns~Ɛ!V@҈c[(%Q*I>:]5h?ʃ^~m]=ʈsH8BHunDܼ{7`g׎eo3:}Zpyx`luhmd 2{dL 0&I &9C}s,>aPD"8nҡUI 04!:, )ĭQ٣d`^x'kPШ\DbgB+uŀAUjB5 H{A7X٩{X>Η&MmćfаaF`fbRڶGж*C*BedP$9܎# 19Nw$#Z ʃT=A Z KkM\ z ELUuLB:;u/Jt$)lӝgF6mg5?g>~ʛj!+2HtBYbg봮k缊'BZWU2N5&#Ʃ!G;1vsSgs@_?pZ$-gNOǪx@\&\(٬8m J"qOr@/")x{ʜ-f#-|9x~ݐԩ;oM-KR [ӮnȯƯ ”)`L 0&@6m'cgl _27[4uj\- 7ˀqb$Y/@?[`Ay ĎhyVGm]7ҏlڨSy {Nel_’5EDXD9v; IgHt{}iO4 yl M<}-&tR%k܇Ǥ'[5QDozekG֡+,m} `L 0&5kc4ړĉ;,n3#etixĪ&m|-W&aP֫l(S]gu3^虴T߷WL 6M=m_ۆ'?'pﴊ Ff%ݔwNy E (IDAT<7Yr }}H=y Nn)-/څ:{/Gߋ'ɶ<+4L 0&(oJZkc=Itﴤ!7=:L%N[&đd< U،ƒ%;\Y](1WAG4D ii4+ዸFݭ}Nิƻts?dBOeo7({,|܃ۯ<w߈-!Dpb Ժ.G`L 0 $У pcQ#6bz2ܙ\? ŮW{gb\ zgVaogg"^AG}ALvs @yƜ7Io,[vf,tŃW,qDzwQi+d/ܼ2;1q+qG 7sk.`\5XiKW8V&`L T.aZ3>ל ol;4YbUx㜟cמvcY(d~dPx,p kbѓrNmU4#miש;Ңq` cm3Vrm &3o֡w+> +(}fKe;gIuiw>7u~ǩo^-Yb@~%}7aFv!k>ʶsZk~ku Vsucޓgrb[W9dGB4wQ?ađj&Ei؇053ׄOXPѺşyd`.>lwG77"|,:bp~j~ 278V0 C3; +<;4|Stqi `6m#z;g >8{,i3ːL~a` D;e;زdžhlM)LXz WSN qfm?Luؼ>7K`L 0&dj^v<Di V mFd 5c皳jdpwi>վ Om=n}5O+XSOӦ5ä+E|챍|R ̋}I[aEەpL_QıЫdJ,h,f&?z sxz  2#t[`73%ԌLB7uiw(t/wiyԟDΧn_vlFT'Ri=ق׾vizHTĽ،Sx8l6/'823Rd|`L 0& ȧ+UwC\$&kgn1FoNv;G/ڲҴ4l v(F5H[;ט,Ф-l~]$ v)q h?;7|Ƌ䱦gplYA#usl]UG4Yܘ06#fw#9P2#~ U3Aew/ћ?qh"L~$stZ᝞;M#տ7ʪW܄{c)Wly'n\iڑކc{0֫J/Nx'0.ܰ]6?Wo#a`L 0&ovkwiމD] <[y3SV͒u,ΞrzbJF"a^^]IMa4=y~26-w>m'MRߍxC7}G#Z zl'7g88h8d N0m-]ڙ3Iiͼ9E'6¶W*OІ''o>)shF\}!CLA`L 0&Pvz\PvX &`L 0&`L[/a6F`L 0&`L :@uEbL 0&`L 0&>V ϔcdL 0&`L 0&)g 0&`L 0&X>S 0&`L 0&@# ^W!&`L 0&`@Dj2# IENDB`