spykeviewer-0.4.4/0000755000175000017500000000000012650522331012221 5ustar robrobspykeviewer-0.4.4/resources/0000755000175000017500000000000012650522331014233 5ustar robrobspykeviewer-0.4.4/resources/icons/0000755000175000017500000000000012650522331015346 5ustar robrobspykeviewer-0.4.4/resources/icons/info.png0000755000175000017500000000272212650522331017015 0ustar robrobPNG  IHDRw=IDATH[lzn|'v!RTUoT}BjT 6Uh҇*mURZRQ AE@E TJ!QKjg7:{mwzNƱc93}wft#\Ľ6RLuZB٠^|__/_lHcή8|[w*r9!`yF8{vttア8Q<o@._x˧ʧ{;XTWCÄP*gc//xP{ӯ-iqw_щoPʃ bЀe$,)x_ /Ώ =Wt=?};77Q]IIJCw+ɪLFʋ3//W&@ɗvtQ]R)>Op~ V! h+)]Zs>N Id8 3kkT{c-^vzoaen+ϮJK/&H$#f CR L L{\ Rl9Lm]*js~1_:ɶ~ZܞF*hBjNRL@mG͇χ?zu]7~܅+̌p,)%QիQY^%۾nK瞛ntg#>}meϣP]u1=,KI%\.>LJז' ;:k}ƶ\.Ӛs0̮+Kdy<1o?q>[O75+ %A)¢BQBAC޹sgĉGX +B#PD9捤wvvMӬkniI@DHdDW_{ 3ƠEE{kƱ}at\uogk3E<Zdl˻'" q`Y8754,*`6'ku[ lRfch@@mUBq J[e&8 ]ZQ! njM2ihRRrJW`ZRʇuc#$2"R|JMz s `@#׻؛Cob잳s]h G)݉TV[/ 訊EZkC]1|>ԇY|0~nXjEm,d3#[(h^/+T$ ѥsCC'S#GVl6G"鞞]|#JA>G*ozc^qACc YZ8 ?RlBZIENDB`spykeviewer-0.4.4/resources/icons/reload.png0000755000175000017500000000255312650522331017332 0ustar robrobPNG  IHDRw=2IDATH[l\Gk'cP1E# (7B+U /}BDj!<@B$$Duj"jjK]]ݳ{.s!D|h^ߌ1l>q[;_>϶uQ-ywV菞?sp]ՠ5o~莧KL|wTl}Wc ]wN< 9kkil-Ж1 4LGo䗶[("؜CkĿ͗{P#,}eFlA1햢ըR0e>zteα@`aKnB6 '^8+!ZGkxa6 "PjJCч JbW֏8;>\rb;f8>p{a!˸tsYB*a5a{:пAΖ 9]AAbPrUO l#J{LjMWX!/2iw=Ńkj(xal](uw2w8Ez7@HIB&\yn8w>P1BSox2s_']̹pDž xk3\FO6Vy{;>q&c0+߯ y"E kG[Ɓ}׻Ni0ʌ̾>K(ooͲYR5~Wzbwvs+7hϬo>|2깸(Q&'G5!A w Ͱr\17̟sg a&*a0 $z֪?}}ohRqmv+_<DZIm eULNd"P-0Mб x'*|Ijgp|a3ޱ򇥮2Eхg($Md0*4Àj5ЎT\Lws-5TƦJ@+B!?8 <BQFҤ1R_lP]i i0W^s`CH) MB5irʤLRR$$q4I*`: &8s7_Ktfi$ !B"EJ,Rb;!rbW 5ɉtgv𳪥w.4Ym[2 Hd[>nSǺijju& ͗9y6}fC,s~v_zFBe>q}SQ/;-=7 \˼_ܯ.Iرovr 3tp#o'DSg-IENDB`spykeviewer-0.4.4/resources/icons/edit-delete.png0000644000175000017500000000066512650522331020250 0ustar robrobPNG  IHDR 2ϽsRGBbKGD pHYs:tIME 9%: 5IDATMKBq?Oa3fA%?@Z "AGP4ZZ\ $q( 5޷!z{ιpFk.dKYns 4hh<~-cMA$8+2)qj1cΡq, A5)>m5VkeR|A@A ﬖrB:r_1ԋE~Y$‡^oZ&n("EԄQCQحcGWz)UϥH:=].%z#zMm΁_6vc=.-IENDB`spykeviewer-0.4.4/resources/icons/repository.png0000644000175000017500000000402012650522331020267 0ustar robrobPNG  IHDRw=bKGDC pHYsHHFk> vpAgxLAIDATHm[l\G3잳^^vB/Ai%iBI  #QQDh#(^&nP'iB**;Ɖ^_kŻ{ΙaN(ia3'(KhLep[kJLS!Pʻ;G~x[!_X H}E4Jmqq0 RJErbx5O }~^V^^C8|\eVQL$"k{y^> :::zirR)r  Zhh4BX,aݸq}boh4D}S!T(кdX,1:v/7l5?]6mzk*<׭ &Zh,4B+Ѐ  s;굫?ѣS̗CBuR"Hi"uioGkA EZ%8DT,|H!DJHm ם 4kx8r٩{s8M-(0LL@JH!&4J+(壴"R@tUJVoMΞ]e).1mi@f2 (՟azf3X2ʕ_oiiJ¾}{#d2&''hA@ 8lݰ,Ǐi6q ;v2wWvٞSNW_eΝ|{%7bJ`M833Y?q {N$oGW{5mƷk5}f$jq.^4MRXMT!LbģkְmvJ/@:}mٲhBcǾ;v+)C/ΝIT5 +hFX(O337S+}ogD1)RquW荛O?C8,,.VPʯK p9N4'!`b߳>sF#P`bҥᧆ/UڙL$-E@c, г3{s֭پ}D"9 @K@/'N`u.뙞* uZk*P('dža }<xd6l 7 8HY%_y%tEXtcreate-date2009-11-28T17:18:28-07:001,%tEXtdate:create2010-01-11T08:45:16-07:00lR%tEXtdate:modify2010-01-11T08:45:16-07:00R5tEXtLicensehttp://creativecommons.org/licenses/LGPL/2.1/;%tEXtmodify-date2009-11-28T14:32:14-07:00ՋItEXtSourceCrystal Project'tEXtSource_URLhttp://everaldo.com/crystal/[IENDB`spykeviewer-0.4.4/resources/icons/restore-config.png0000644000175000017500000000310012650522331020774 0ustar robrobPNG  IHDRw=bKGDC pHYs oy vpAgxLIDATHǵKlU~gPK,Rk)>qF "%( ]`"" # YGDE7 h1T*i)ҡNg} B$ws_= An R )ɄhˈϞ_H/zOM@oiȲު.GC]ySIK_Kv8+7=I-,}^ڙ(*t.ړ5Z+"&JFs;1GӾ;J:7ջf/JKlE>|pl$B¦0E&s sЂu)kx%[ss( 0 c\(( ( Zq- xT> 9 `){8I;^V:[T+ʙb 2`BG ׻s^8y-tdM֐:kDnol}R#׋:_–CI J *ݗyF5caȥQ2ϱ|`GkzƼ#[d;:I! g~ws9k`$N5/Qh3ͯ\Ngj8dn  HOd-߲C;{Cҵ'FWlA}ơ k9w9P8Ə7}N؁mP V:/]DaQ!±2eX C!7n][N58jN_x]OMVlkB=`Lhm?}ʀ %]1OtR9WCkt>ta7~k4J%tEXtdate:create2010-05-24T07:42:23-06:00 ^ %tEXtdate:modify2010-05-24T07:42:23-06:00|O5tEXtLicensehttp://creativecommons.org/licenses/LGPL/2.1/;tEXtSoftwarewww.inkscape.org<tEXtSourcenuoveXT2 6"tEXtSource_URLhttp://nuovext.pwsp.net-IENDB`spykeviewer-0.4.4/resources/icons/show-folder.png0000644000175000017500000000253412650522331020311 0ustar robrobPNG  IHDRw=bKGDC pHYsHHFk> vpAgxLIDATHǥk\UνIjXikJ&i_`!O>T_C(W!  } "AS)kbc;L㞳afڙd ^^kufƳ˗/I;ƝswQtQh䍥7.#^rEQ'|~P(9vͽl3g&|=@j$(W7 %{k~~ݻws FxTZ $XC@\4^x >Hrz88R C DT03TYaF>ɐ xj}(Alj6 )Gw# [DB8rD  GP$TUELG'jk 5D $6`P[6Jp@ÏA/YP BA3 '#vRQ]iF#6[PURd"hzcA'O8Vy)>ūEQZ }rΝq_{W_fii= )պTP tRo866yNΓ$!MSDYsNzNmemSޫi 4}QsmeTֵW/ W&?;epwlm1],8r뇋UY]]ջw.//فvS>/^)۸͛{A$! a-ATԚ@! !xf$ ׹$"aɠ @@+sM9{vZc]eJQ((`ڕ0li;s淬!:mm*gŅim`2uB>91(kJzՎ; (kj4H\oC 4Ǿdn|+ilvT9G-.FIX,C{|i8~ًP(8kEC$M\.sv9hJ[ҋyak>Di1Y s2(J(*gR}{xrijSCΝgGJ*`Y T %<믽_8qff.R,QX^^&M14 #"{bs9}کSJeHxISo94ͦ?bc_Jō ֛LNLp1:;;iii{%O%$!MS4%I"fݵJ֮CLNNǘRhD $IB ϒ(99>>p}Tj59Z6''P|.O>[wcX|zYbT5}{}Z'|Zvt[R9[m:c5&kLj&gϞ+fWNTUUM<LMo_1 cLS@pMUmc_/X[c^ܾKQ S: wp]!i2)6߸@pIENDB`spykeviewer-0.4.4/resources/icons/copy.png0000644000175000017500000000224012650522331017024 0ustar robrobPNG  IHDRw=bKGDC pHYsHHFk> vpAgxLIDATHǥUN@=s(*H#5ݱ(*ib7thT/ocBJhB؞{p8D‰${sV"qy% 0c׿CDWS^@`LLL@krD bWVV>DQֿ& /~EnWC < 2ZZ$DG=3ye%%q 0s`v,+>Ox@]&gِ`k϶1,bA?qࠥA@gHc& 9j~NLrl`O uA٬/.u<"MҠTB yHZ#M{{D<"(*@ Tp0ac0BfͶ#I <8ZR dYY}fnv;|>\__Q6Ca‹ig& .Qŭ9z[=v]>9˝N焙L 8s\_RVʱY5SiyD`>/ϗFn1sKF}VЏ%tEXtcreate-date2009-11-28T17:18:28-07:001,%tEXtdate:create2010-02-20T23:26:15-07:00;\%tEXtdate:modify2010-01-11T08:45:22-07:00gϛ5tEXtLicensehttp://creativecommons.org/licenses/LGPL/2.1/;%tEXtmodify-date2009-11-28T14:32:16-07:00B`tEXtSourceCrystal Project'tEXtSource_URLhttp://everaldo.com/crystal/[IENDB`spykeviewer-0.4.4/resources/icons/edit-add.png0000644000175000017500000000575412650522331017542 0ustar robrobPNG  IHDR 2Ͻ =iCCPiccxڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧ:.bKGD pHYs  tIME # 0IDATu?KaƟ}NOO;rRhAA9TKԧڃlD%fDשy|r4:CToNg#0n2RW {S HQCfo4 TؑF%#յ[:sXb~F$W ۏ = \p9PcfC" dCy㌕Vs<Q.ԫsä G}Y+T◢/Rej*(("|tn=@ݓx"UMl}N?gFiƽѴ{8:vq7o7pM~tCSK YtgqatMCcagRe((?oE^<\'T2@al4{z@a 6ݷb+0F8Dqz#`1":鎃a4Y,"BS" k/wkx\] Ї i ssUՖ4Cv)Znk6T{,"{  * ,b1PDy"Gwؐ3Qu uHM L$xI\Cz9ejwWy@(NqpahKxD; .C~^n ( $+ԙ 'Y@JJ$/7:FNujuCebF28pZ Ÿ.=e+/-T D8X:JlDr[*(rӪKe/4N$~B(21W`l ,*ą"Ξ ^^,Tʋ9M[pb:< Qb`Q)gc"写ϴ,f%/XsvU/{9{OxF,`p45HÃ"%t^]k uQ2LaY6}h2,`fXe,Ϣ0+whH[.NV1.Í1]A@CKxM[IMkSs?~`T9` xe<>L}3 lGV h(xaghgd%5v]R#_O$K=GC{rxN b Asc [vitǫy|]j宆 ۂcS&\'IJYIENDB`spykeviewer-0.4.4/resources/icons/appicon.png0000644000175000017500000001773512650522331017522 0ustar robrobPNG  IHDR@@iqsRGBbKGD pHYs  tIME 1 :0tEXtComment̖IIDATx{ix\ŕ{njly-K6o0 x`$,a$B2!aK[6x"wc-b}h˗ I&9>UT}[N:u/3GϿ+U<%33cRZZZʖJx +Anoojj9o[7ЋpԻY3cqȊ`0WB<G,C<eY`0\.x=^x<x}^8ۇuvؼof-6}ԛFfX U'Oèohminn:t;18RJP)F*(,,,,//N,-E05 ؽ{ϡm۶?~ Hs ]XW۶b֭U'6:u :D$0 @pHP=dtɼ /Z(-Xvݡ7WxκuOvww>{}{Zy;bEDRT) [`,k7oq{|WozM<`хWS;}Thk'}Ϟ=r$p^adgAꓖuϽ?GE'Ӥ߳> ODYn+@1YO~﮻:Oӧ?tjZh_KwuBpvcZlo|c 3Akc9ZZrf.Z`|9Ĭ9`;-rQ?χjgΞ8o?Oǭmy&>g]4>ҩ^حoC|9nZ̋fӴ֓yz 3kօ9Ygj=ÿNEk FT*1R>mhO`Zh硧C}Wݝ}?=rύ @3g.q〔dD0!"43kbh&M~ ÚMi"s477j@ЌD¿-7ߐ;﬛t39?Жuݗ鑼P{챾n]J8\ ˘Pm3; rhA;<TO +xH/DqNx;xӾNg/s;tgϙ5W~~]v:COBkb,iSJJ'ldYrXiJ*' @kkVĚXSkv475h׭iGM5^ߛ\:ocs}I&`+M,_qnAEmSc#^yMs./(sxRHR} 1tpr3sl99`(f$DRRI1TJ@*40H rA$>%}5o Oɩc'߰aGQa᭟e.uc;{thTn5Ex̠iWgi"b1&Q?$cLrȄ5_莵K ,wi aX\p $k Dc& >7#=SO=B@Ԋpoၟ럾r*︳AI4b`u{(wrK"c_$UĊGyCBI19 R$A mkiE_i۷Ǐv̚5P3& *XZQ^S]]CG\:,rCP^ϖ.\k=@ز4)!f3 c`@%, uu;+F= L^Y,Y f)?Qf]vؼ e>Y/20mb;sf,\Tcd^Puoh ((_2bf0|aaa!j:1^{m=Ǝim{ܺ0!ؓt_/tu顠C>Y?.ITV>ADO\+ !Ibgן[7jԏyyo| e۶v:5gO ޾/FTpfCCG7FQgB@qcyݨ𬊻+^@"= OY`Ц> Բe=Zs˯9`q*W X%fS"'ZP(8p5F 9_ݻ,rJFX6( F+==mO}>: x[ggO9 )M2: 8#Mec$፤# p~t$y}pFL t97$wx~oYU$7~8S,IJZkLɷ9RٗGͩORDdk 죻1 bHOww_^n.<3 bQ,,?/ @V ` |eZqcA'GH 1FȤ_ j jQ_o$n{ k#:EQ;Jk7O70"y\a.+Q=|sfs+VNzF _D6?H\k$6\x~X^u@'HѮYr~bV  XŔ5b1*xQk"_giۗ9\ JXT''T@nRi;$mZBkbAJ DIq 8y<$@H $#%\pZ$ CCHz5@ WA~zͺxv3RhPţ?UTQO aR+H2C)??P "0p3gIN`YH1;L6( Y]=>E R(m?Z:Q 2.{}Xi{w I" E@`N0*_9 F}UO]v4gҚ94xv\vѠ(5-׭H$k<}aQL￶Xe"9gg=vo?.g"LI-{~yeLmYeJ^3bKRiͬx(>.5$Ɏ#3둋/\o|oц1)/Zr|XfdM-f4>@,`7:>[[޽DCCSEIf!yRLI|_e3 .ynU[#Vث2n3tD6_|?-~>A .CDry9'Z"9CczJф&uˡIiG\u|᮰{p3IȁHb¢s;2ޓ ɔ- bT`l‹6ڬa^s^m$ ADsvv><S'l/M-DZA4 p! ⶖfBKǒ"(s-<|ǸW:, WePe:2Ić+#W,JF8LGLŹ|&b׬~LSZk GXb… ;62ӽn8R;v `kH ̮$ P՛ a%HX8D„Hģ݋ĴR1iO*~O=V_`f+ˎTr-r" -11%%Z6a'(JKQ>FpiM8!;P"ҶpJ%LD4xȌbxhpمHe&=ey޼e0s* ]vyw7899E(WQQɚS+=)3:xoIhC-m,a%e"AHI 3NG'OI!-K׎gWu7ϿQ^6 =6e囯zV}@Ng{[ki\$2,-ǃۡP΋"Ӈ.l ʲ JP4!qB, 0{z( ͹ٴpX|kr1K/VL2 )^E99!ڷ]6q[o" 9Ho9|`Pkֺ1|#ʧLfƇJŊ<|v>5 $ 2,&OZEggФP:SL4Q[[;=SؿoUusKs `Ri)ǿdf ?18Hpa~AUʖ^tRq/=4!#DQF错@WFDk$IU ˍ$#H)Ǐh o^Ko| jر^֛/>}z֎;sQa!a}ߴa>lmmY}K,F^^.<IrRPb(1-Z'C EO y [GC8~m/++6?kDԩSVS5fJ~L޳0++'¹G.~4̛{ƍáPO&zooNǮݻi߾=u U6='#طoL0J)WUUQ~^.ƍˣGct a_lڴ?Ef, f r&嫒(Y|rrR 8DWg'[ЈS֊``OO_~(Nug]]]ɓ\]]#G'OVܹsyٲe>;wD{{۷oD@)i^/HIwR !l Ԗcٱh|4=h@ggN^r&n۶oNV;.RD"]v[Y|$xՑ 7%a(9(eH۲&xt @P'ɡCDyy%̼.''ǧbjhhkA̜9ӧOg4'gώWVV>簀^vzW]]N8UUUwuM2ػw/޽}}}wWVVB\.ٶرc4nܸ3fx= !`6СCTTT\q\ vE << 22~zmO ݽ8==ikk#)qf8S"dۍOZ)??999ʂmݽtuu'`˖-ֶm^7o9(h8innÇ#77222 ӳ8%%%7O̝;ul.B>'NP(,AJI nعss7lpt *F'N@vv6!##aߑ\JD. \XX W_aYߙl۶z_:pٶml ëCGG ##\gdd\JDǁaB\PP\ bըێz]4;xøIENDB`spykeviewer-0.4.4/resources/icons/filesave.png0000755000175000017500000000171212650522331017656 0ustar robrobPNG  IHDRw=IDATHˋUqB"@ >0Wwʽ wnD\ хd#$Wɀ&F2t=yNDnzݯ9{Y==r)ec<9}˭ȉ?>qcGyzƥK/G67`dRK-M5)Tc_NAQ#HyDf- D@)ned̰E 7_dAL  H8=j)/S5PEH3bk@7l@Dj@R/2ww6Ͽ WO2T{|ч4_˥b0od{3m!RB$ ḳ{r9j693;,2 Z\@07hPZhL0-P`;׸rU6&*6']!ң䜹~:_~-hJ5,ՀAiyDKM|2ɧUmY=uj${*BhQAUDhF "Գ--3Wk0/p)nG0ͨz0`PJ M,TΙ(׾-D tR mRJ!"ږѶ"Wf+w_ "E̓)mҶ*RP-AXģ=ϹGߪt/\xkx4f<lF G g666L6GmۜN|䩜DzȐT"ǼwVEfvik_v9#)LEd l h#xTU=028 H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧ:.bKGD pHYs  tIME  '9B@IDAT(}OhRqǿD]f>iZ uXAt!N֡"۩eEjRAF6gs:kAۗC޾N!'Iv ͦe^E3Y,̓#f=񺃄a-m3vՊ BMF=!52q1pEf2 Do($zj /'ޥ̢-$!ۿ mAwt]Z,Em۽d֠>\岊B՚ڽs3M_\*j}9S" !Pi4/Ԫ7sۉx2d&r?rQ*GZ$6S=8OXlz\Ua^ NoE1G<]dl*Q*jo] vX(a֏p*q68n]J]ݎ7J _IENDB`spykeviewer-0.4.4/resources/icons/new.png0000755000175000017500000000053312650522331016651 0ustar robrobPNG  IHDRw="IDATHA0 DǦH\ˆ=ʆojϞؤR/QX+eY`gffcD4a۶zPU`*RJPU*q|YCc|s=G @Dι[.̥aqfvsP>5,[tL._/R1ndlK(ǣb GĚ>gSZP:f^9W˴J-Qn=-QMˀZmB /*!zذÇ;RsɯU4S?IENDB`spykeviewer-0.4.4/resources/icons/new-filter.png0000644000175000017500000000207012650522331020127 0ustar robrobPNG  IHDRw=sRGBbKGD pHYs  tIME լIDATHǭUmh[U~ι1͇Lڮӥ݇"Jmб*LA"΁TI@V))Ώlq8hH.Ymmm6M$ƛ4I;{=st~%I&3qd=G.F]ԾGv;|PΒLaa= U!&QT0f綁{{{ U ,[,:wldkhh؁A^qo}7BHDӴRUB$D;8Ӆgˌy{<ݵa_7 `B@>B(**X\rS]./224lma BS O4%&P(~yp``Tҗ_~A}O,-ӥasӉlLOArJFnaNv-u͘[ƳGq0. ?y^Ғ?gi, DIH$ڱ @%Xa~[[s`{kn±h|8( Mng%ĸFUmgژoܸPBx!^XVlhoJȿ)!$ +SiT#G<ᵮ nΜmFfVfbwUttzօlP/A(2* Lg_f<;Ҳr8E;'TULC+Ih|u: > *H]|y)EBFwd~PJ.vagסTU?1i~t!iuW&9MIENDB`spykeviewer-0.4.4/resources/icons/edit-filter.png0000644000175000017500000000211712650522331020265 0ustar robrobPNG  IHDRw=sRGBbKGD pHYs  tIME ),~IDATHTmh[U~ν7k6Ktbm1(vlC7 CA]B"~*QnQpRj$&i&K>ns4xiM/9s=󼇌z &&xdkKKhƲ,Y+Pߚay!+ܨlƣaM++X+pB:44:#4|)xwEjB>C&suuس =ςȲI IF#|>z17kyug;q<+_ӏSP-P|nkT,.??s׷,vLjl$a!>P *!U}P[S \%ahFIENDB`spykeviewer-0.4.4/resources/icons/remote.png0000755000175000017500000000316712650522331017361 0ustar robrobPNG  IHDRw=>IDATHYl\Wsxgs_Y9 ș:I\orSlvKד klzOT x+46=U7Sef{{:&xؿr,n*>1m,[nj=*Aq{!=FkeqSTyN;<2L"A++I/dxbz,'`Y'ʏ{5_T+ l:^PoZLSgbdtФ#C ڽ|6K1'3,],9rpa߆N ֝NL$?b"TJe~^=l;qutO7(Ccd#C=N*eұQNqsjE8X܅9Dbɀŕ5n@+[7殯 *e#~jQKa g]^'Z i (ŭwgNxfv(qZlE>Y_(Qc\_c@Bdc:~im8>~̿yGpGt`Q M.)sQD@xM`8Wr/׿p_=çޜ_/$Jh iDj;wWX&/ˀ<@Bu j7D1lWf3O]b2L>?HP! UcI䳒='_mYlmл9n/Qo)t Yd8ԇ)gD+?+; 5<{ψ\V9pD~`d/4q)Z3݄0ixٲaLqo ]8[T}-З.ζE}Q]yab ~-]M?{fd ߮*S|AirT!pvnuLUq"Hl(LGzPM)O;"֚F$beF1G VD AёT UҤ*[2+ӛB쫫X% )EQ=Ȟ~g"iIENDB`spykeviewer-0.4.4/resources/icons/new-plugin.png0000644000175000017500000000127312650522331020144 0ustar robrobPNG  IHDRw=sRGBbKGD pHYs  tIME 3٫I;IDATHǵVkA&Ɔ*栂h xov}YXt\.p\,BaEJB!NQTk1H8J)5>P@)5@Z  5DdO ,&i5â@Jt6~ sS*}MmΌ6J@7O4ekD:øֶ-?(2$$5RL7(|./-Ec 70+i5wr`iRX"ƐEc|mj^!zivz`Xrw;7IzÉә[޴D/0.|/~y%Bf2i B;Eo}l~{[Pטjly ۾;lzwoS)VnܛB '1B C8Nl&77=:?KdxuJ)q%gikg^coaIČ^IENDB`spykeviewer-0.4.4/resources/icons/edit.png0000755000175000017500000000133612650522331017007 0ustar robrobPNG  IHDRw=IDATHOAǿ) !!Af z ^x3'h@k]IS[4-P%ڝt0]0K&ټyf\uit$bCB~hϛ!2.15uUEݺ)m~~RʙL~?ȎڤDPJ#1J)RRX,@qB؜lI k= &C)O;Rsdϰ]DԣaooBkgزt:X]]ZP>WJX,1ssɄ|̒VyyZbt4 EKфn!{$r[WCgV [E6 |0 "/zNsZsKwbM AJ)T*Rۂ8`hYevȁC\8_8Npl P RAvd F߽E6 {IJJ4  yrPl0PPJpv}?cqq18Pۓ}'x"xtēz.^z 4;S g1\#O,//)JWFIr/s6-8&'&odŽIENDB`spykeviewer-0.4.4/resources/icons/config.png0000755000175000017500000000277712650522331017341 0ustar robrobPNG  IHDRw=IDATHU[lTU]1w*,4~DjPGALy}@`h)3 twLy;9c}>{Cx^44487l@>WZU\ H){Q큃X4&ɔf~ v9`ss;w~ XԺsE!BH~ys^Dze­K;::2HvBokx( ϟ?*.~՚N`p8x'D+LBB`&$;`a, a4MH ؖ 4]TU]iB`}R( (`r[Zk+?>󪪪*UT-˂h 4-] %0o\ܾ}>_.R̙(//0UfX]_^Q+++X4( 2t:- )%8 JHMx<Yie˖Öeykma5igp8<v|%0`>킔h>z_i~?^/~ 56~P"gr!{cJW<G08@ oBX!''uk?D"h, ۶A0pa`hh#rRܮX,aR[PJ&p8R$R2 ּr((|hҲx,(/Y:A\.F"nxllcР*(%S _P" #^(?xs~5<^U%% , c!cGOrO`ddh8l9*3DmCuTm#L |F)FGGi:ȴ3gφ^RL[G2}}!%/S)%4MGW?dBJ n1ŕz,YR%`AUU %ΜN<BȂ͛7w۷%DΟ6Mؓ6k\xa(//{g|[Z!kZkR\ @cSSӕ+WğҥM.xvo=qXft:.\dCaȳgJB qM댮0cGA2f_7 LR{/ X^rIENDB`spykeviewer-0.4.4/resources/icons/run.png0000755000175000017500000000303612650522331016665 0ustar robrobPNG  IHDRw=IDATH}yW~۾ͼYXa-*ΠlB*ԤI-Kl5X5mC4%%iLMiIjF)RS6а y͛-?дPNr{s=s=\%"JR), ece$Qv[9NQ师TouX!wy|Kc}}DbQDZ*3znTvb$=WRN~Gdh: Fre"yppɭ [RS{zbڮ>['d&n(_K?wKDVC@R 9-s'cG}6!E-d9? wŏ[[\hZ3XZ~:B!"HAC|#}ƻC+٠>ZCkRՊ[!9 ^Eɵ,!
1NĈb( D`RiL.~i*[u/|,BvZL040SNnm-ZEcܯӓ'=L xw+>N(љ.oD@, ^}mՋȫNi4@mgJ]^'ȃNv͋(eᢇ!~yP ٞe* ryrCgUIz)FDƃ*Hh̬zQ x P1p5 l l9cSWu+9P1eV9x߬wg`?b5"Q&9gvs'#KDV?hC=(,W^=xϔ2ԋ"-p,/`T=4ptɃ{ك` Rl&KiG*bH5q;1_ |'t|so vj!@cHu{Gg76rxJɫYWC6]o eٷB(3;ۺt;5xOjosW+(KUv ^ˣQnјa/;U*#IENDB`spykeviewer-0.4.4/resources/icons/copy-filter.png0000644000175000017500000000215012650522331020307 0ustar robrobPNG  IHDRw=sRGBbKGD pHYs  tIME  ,IDATHǥMoU{87mIT"% %iQTPUaJuA75 ~A` Ď(`H Hmj{38رgaauqzw3=9y߯R,'`Vª+v\6$\ׅJgs-˲g_}FcGFc7Ӭ"@ݶQ*V G{"fo(T7[xu26kd Z;Y'#4l?Zm8.lfbh"d(+DgN0l0->& ^3?vvuefU-,767r"ёQzp"!p`YUJ29.'6|H?V^|199dRc@|1n`Rґ@ܗkkkwFFQ("ze4M,//czuO"ٳ$CH* FF!mp7="0 #U @?5 Czp'Q2L\."GpB' !A.u}K"B46 ˲$::DTS%Ņ"D <۠ZIr@wz VWW\ׅ$N=Bk@v5Rɀہ1fi_v tuaP*Bas@Bsr6h4DR.cZjdBEnJ{͔VUUu-e膢iNI4Rܳ TUMqf;)-0 CdbED%nϛ񍍍388xsǍxZ)IENDB`spykeviewer-0.4.4/resources/icons.qrc0000644000175000017500000000222012650522331016051 0ustar robrob icons/restore-config.png icons/show-folder.png icons/filesaveas.png icons/remote.png icons/config.png icons/run.png icons/reload.png icons/new-plugin.png icons/filesave.png icons/edit.png icons/repository.png icons/help.png icons/info.png icons/appicon.png icons/edit-filter.png icons/copy-filter.png icons/remove-filter.png icons/new-filter-group.png icons/new-filter.png spykeviewer-0.4.4/resources/splash.qrc0000644000175000017500000000020512650522331016231 0ustar robrob splash.png spykeviewer-0.4.4/resources/splash.png0000644000175000017500000005527312650522331016247 0ustar robrobPNG  IHDR\ dbKGD pHYs  d_tIME | IDATxw]Օ[T JBJ `=&i=۞ncC{llLH "HBS)JR{'}-z|yDI=g%ϯ?}^۶mCtww7iϯEg-?/?Yt)ol> H "~:Ewh$lէݿ{Z/ 0Wgmߕs gEӊg'OKOubc+L*:",>(Ju=(ohC( 0E 08ux-{mB·k">&y6UpiC[K*vo-mW{_ԄwmA[#126_)16HA>u4a1vdm\_Ğ@îXfhLQi"PRZBtvg۶ٰq]]'u'nhr@1G(z|^4Al۷}qcKYYeee3zhFlQŀƢ1O{ igi| P_~=b֮߯e<ꪫwᅅHcoRpژ?lo܎4"md 8=W^y7~H$5r_FS|%*"}`bHmNVm8P-KbkU< LGR@(JیB }M!p12a OʴM试+l') XcDeh;ȔY'1\ Š.\RYeO" Ś!u6sKSĚSY0id8_A?-/4tm:vLѰE~lN"G!Ćѹ[R) <-n& AmUZE1!%ks_4Zm̂Z^E9M)b;f\ꮫI$S|K7r<|N喇a؏~L TT*E2qwy\yr|D!.\t:C}C=vⓏ϶mXf 7n4NT7pTMC+@b3!skRlk Y1|dxU5/s3E1R8N0UeH ŚsJ}HrLpy.شnT"\ cR y\.HD2I*bpp'?|=}iӧs;P::z>Qh](T p, >QH{ϭ͎Ra"-d`a\p!97nd߾}ގ84554r$SϘJCC78`uO=&ixD~㳝K_U+V~iӨ1-kx8&P1~<%%s9⺮?EE.F8$S)2 eee<쳜ᮻfpp[0a|7TFiHKvsۉeLINX1]gggA{&vEEEAm-3L*@LDk$JeG' |-"C+g.=L&÷-cq='o^pՃ/sײ`|9Owb3#h pi 1{:~8' `0Ldzpdw~;>xٳ@J,k>|6{9?61vT2N8@%sŋI'q~=j:Cc\~0?cMNWW՛/_)---FaWly6.C )̋x )%fܳ/,T*=Ø1c< yynwݠ =dƥ$^br¥f8ƍ7ȑC%[Z`S*ŸA 2Fr8+&F< Hm;$(-uH%S̚5_z |;wR^>߬pXi913 Q ~矒V@ALձg7l0yd&Mĸq3z4N",aa[_9NX:[ɷ؜1u Z[[ؾc*29xw%gByQSp33mڴOeYn7{x(""p2,Xts,}V[ҭ,]BnB)mI[l߼y?z8'9X^lr6qa~ I i]jWxsrgo1JP*hɷ 0L?(ݻh" ?|9gi3Ylo]cر\wu<Дu6H&s9X{cSb@voTW*BVʿ$3 P34 ηTnGsƔ_;t:T&l܈λЌv\%Sg8Q5;;H-dTڛdhP9!:w54Rxq";n㬳Ήq|?|pQxh]uᐉ3@Bz0bkO BAfd^./*?մ_"1K.eϮٻYm T 4 SRZÆ\"hMbpLO]UUNd9r٬>>ٽk7K.^+"2Ey긕!Ι9sbl۶-[pĉv6ǒ3Ź!Ca-PB70 \^jER5kx"񄷸KK"Lպ|}cex}̛7B5tvvfIRL}#hܮ 93~fU lT mzA;taomr^#xE6ޓ|w>պ:")EI_d(aYbUt]JYgy]-[xVڱ5zzz?}8q²U/lysLq[ZQ}4B[I7ƄeQ3ݿ0kR8J85nۆ:.ɤBP]!f^28bYf5?>@"KqpNB 8 DI$PA9 x&0l?ϢݟJ \O)@/~RhO*ATJM)³G'Nȷ-2L=zX|%#&DJ0] DJ޽>\88~yQ~96dUŗL&mu;GJרfرO* ɯ`l*Q*{\ "RO0MBt xP}N/3)w=Fќ}&N`۶!ٳﻮ ZS}kleT<"y}`ֳK .yĉTVV}LIS %%%FBf ER&VPaNؐ??񏩪[CCC5}G_<_-5JE A8-1ElQF29sy{g(2azFNCDkr~4AƍQE [ r9(} :EN\6%?c^ݻqI޿zQ~@"mm؁079>r4AKèfMI&MmmǏS ɒŦFԎ͡C|R"=$I*Ne3qy5'N`Æ Iz\gLIQ hx\ߚȄ,7e\e,fqz23U+QSl()~%-yq??))- , IuuMll!AzzNRSUmsa,r.*uLM LbdCh3qF86NC ^zX0,Yʡ+c<24) UqiZ9{6&M$L@Om-c֬aXGRo:ɬV|$JNLӕdu'?NYG~=J)R J18 q59g28L`8ži} a'Jغ~̡HSŴ!>d``d2III)'hG<쳴:Zj@s'9>D4Y}*<ȠD_FFEm^_4HGtř약ȶ|jj|׋1׳sN9OA[L&MĪU.v9ghPQQΊ(`6ϘHx2lz{zXp!?uu4kEW@ PT˿/υwF|&y8531%dM .[FQ6QQ7))cr<= Kg1τ+<|xk/^Ϗq=iIB"AWc#/o-L+}QFl o}i,d-LYwo9z( {O!TBRi,k.ve&*ѣ*dIV'dYw*3 ̑9OrpY?k<~s$D_2 ɓ;xl(yAn(-ƭo}bժUȬY r<͛S] R4K<4DS% BA[lz.-EL}TF^͘ի|5yZ5}/g嗓f=918HR0]Xy]Ѹj9o׾U9:a."tZ>x7v:PK/:% `A^x3+Wn DsytR6o\f͚-C%Lh5:z+ IDATXrXTLIZxhVe0[*_4OtuSRZ T d IN&'IT>;DzQYcS%`, >+qDQU`͜&HtYҙ43%$I4*@VTPсv]8e xi=ZpQ]ٮ8VzG$'ü,?:`]Z>{7lmd2I>Qd+lZׅ!g{{uXO5k,/1jhX@y#Fҙ??:* 2H%LI e1}d6rL&Bل*HZ&Ge.V**ʹ{ yٻwQ?̝;3<'t|$l!-Pd=9WNLO`ESVzII J94cR\`i J)J3isdWނ!9B4u3+u% I^K,f}--.O>)en!lHO6/4ʼ '1 ;RS:aJ@eD"rU@[,A^eBeDO1; EkRj2dMU;TchnkQ ՄbJCDaLZ5uĪjj9/Zdv%ɐLpT W, "<މykRJQNQ 8w˜Uܪ vD Z n SjrHK8yQ88}!عcsЪ0׭ x1LЦƺ:v>yʝۘ{:&4e @Ѫ*P)ݡ :Y2|*i /uAc$ÑGd2d)ټKVD$ARR'Oz̦HAb;;Hd*od qǐYkyޖ|>{)H*Bp)HIT`Ӧ-$m H!DE~Đ w|q$+PK6Ow;3cw Չr˶`ž icȭ'dci~)?I5ժN$Ӻ5-Ocv^N ef&a19TF1@ai#b1:dD  q:LrЗ(3;HE#A3Qr"Ƚў2?1rkl(0j 3QRyyv%S6۞M}hvuH*E 㺋GS~$ ]Usɑ#z͛Zi/y~:x3rév$$I4x$.++$NԍEDH1TL\NgFIq4 %:~wQI>L͔WVqЄ()qVʎwşQǙ`ym)B)H1)EdE,=sP3,gLm6 Tsqtjxogw28 Y=C I -[/ 0V$T4I/'Lp\sz{ldj >ֻqv2 rfV={rc:Wu,u*K;XG !49x5qGæ6dmF$ dnao^#EJ*u5"LZ>DbXI]keh)&8:}uW&º1OC~|ސ\)2:A(VQ;-Qb˔7,HPH Bf,1TZNU5MFUUGm`Pq3*ΠHQ҉xK՜P'nWxE8Ju I>J*Ih'D;3;ژ,/bga"pY"L~;=ֲQT7MtwwS__od' Hb~GSFšTH b0@bbpi*TT3EM7 m1S2E] w]wd̈́ڙ,)aM4cl@sTlŊ`&`?Ru,cN6.yu -tᐠBWPO=/e_t`q]Bqf,:RQ%cY{ >aJ:v%B(bx hcM8H6+ʊF=KsdӤZ}VLI.i)Aa1ovO`SlhCѱ &֎|9-Ha6}S]QZVJsXVZ7 ҕl~:/a{$Ju9L lZ\MLlwwqqIJ'B]A, m&qhWȻW`z +rp'f=[7䱓]B&mKk Uq`oiDjsKg bW7ؚ5"׬f[f*L$^ZBfF+cBT`82 "1]vMnڠԞ#UԘ2I1Y%O(֑I&y|8Q8CW6Mzם/X5NzO#\^ \6ܩɣ_b:'^\pNw9u-G<,djxc[?~;2y v}і dL"}eHCDK& f!nI 1֨TmEpaP<߮_bUr+Nٺ@2jcƖ0T|Eia+V똋Ɏ#e)OKCu|p7n +V,k|XmP{=}BI&jBXX aέSC)PN槀9PZבnqnbP)alS&?/2L&R(DiH ."L% k $E5VU<^0"TA 1I Ac(R Zp!0W޲y %_\r2CijLĨ+ίc^}9uAS<a~CT|G*bر(%<܋T&{)IٜBk. B㠕9i'CS" jU-#O((\̻\$aܸFx9o/̞=8NDiflkBD"_2>1!p2hX;f"q QD*A PBP/j$~6@Qv2;Z'kB@|/ӻ1Xs]P xd ՚z5^Wh'D+KtL,7IBf̘c8c$.]ydR0ux6P^u*idRxN&q{XD{\;]/'2!5{ɧaYTVTXȢ`G쐰(zg&QHgx԰ E,ͬU!,;v~Ȋ,Ȧ&j10QU!nE嘣9ZiV*0Tŷ}zW af%vf7~ɷX"*v`1xK*дֿ\)5Q#ʆ1qDvo~vOIjmf֝^s[@GԪZw &gH = h+&9`֥aL3S3od=+:11s/s2kM+hUDɓ'z&O\ !q:Ou֭up"^|E;3ojOk ֦BgᣢPdD -1.VR(haae#XZ@GbpM1*̛ l(()ySXx5g²e+ϓΤCAP*/~c>WYre5j>;kM$mTE}y ͟?D5CÇ Aads08_iZb KIi J@th 6ڮWhėbn+21\ìd7}_!i1P>橙qT,NASMĉXnWt3sR%DIe'BEGlR"sG\KUqMࢣ "RzN4A\.A̘XJ/Mpk<#̘6ӧYR#i%3C̟X~ϟ_Ǯ{kq#rʂ7oސ!^Q{ KI9aV,za 3ӥ%a1O,C,߄pg>6! 33[TJ袉m9*+.bB_J̝Kww7O<|0CaNf{I988ީf(^kzi,An0h0cʒ [K vrܿĹ:Th`Cz!W<5J =m&UUUaWXql/},u˖9R6?<*tLKH1&%m o<0q">RFvX2Qē%Jէ\Reʠ-"Y~ݼ#F0gl=0A+"A6^6ۏq<$5j&c {NkM. 8Ռ$-^sdiuf;u֙r EL|% *!"Tӵuկ~EUUU67 yӎ4 /̐pL0T<4LmM ÇW{W?1\}%77 #XxW'yt`B)'$MeE)R(KF}+<ݷYә=k˖.+}%iְ|yaY䆆MӚ5ygϔbĹ0e)|a7|/b*QիC]v !W{{;3{o-uF@e<.[hA c}5Yii Ǐ;Jg|."QЖ|{㞞*G4vxʆUЊ _@Sc.<kY˥\ĕW\Nccinc)R0Ӹ[H&t2I/$]zzzxͷXh16n/|sA)S&eپ};pQfJ'ظi#SNeTVTH&( ̎4j_(Б xJ.₅yf9U1]YtTI(`C7zr9>֮]˽KID;4-[EqFUE޸ic[gNM}7Op?L$|;P>-BHry~,.WS4mO!gv=Xk%%lɨQظq{/2s g ׏@)E )^&<Ύx{*֮};wRIqg3 7#G0bPJm68 m3H$Rĉ. ƤI=kvZLKň C?Pa6f*7-/~\rI=d@9 !{-:q,P~wxꩧB3g\cƍ\ve&1 w^ŠIZlh/ZFk̦1 5N\.G:fhIR,~un .}{=.]ɓ'7ohEyḪMDh$$E]3q,:j7d3ڌ^1XS)ObbzeiK2mcfN~AX@cC;$0IDAT{.;wdue۫!xP|>Gv0K^q.D5L;I'2uT!ꢩѣGL&Yl=%%%\r%3g,+W$s%GNIMvՈwb9IMMMK.)/8l=ɼG*W^)܏~Cfx$LꫯZG/0 Cf۶mfs)ذa#!"†"s֬Yf~=)p]wo߾"m|;X:~qSwwwN#="#JfXG|f=.=0JKK+}}tv(::'ReJښZjjjdҧȳiby7OII #Fu]ٽ{7> uY̙3V^R/Sr/ՑXۑ8a={6;v̰U5˖- _޴iS]v1E&㏷|fڴila\r5ynVR H3gZ /'ۘ1tttD6[k+ׯ㡤bmKmZOm(K# /,NjWQQ7CE*H[;͐1#܈V":,h2҆(--eXi)#Gm˫lD )Eyy^9Bss3Zk۶m?)immeΜ9y.]J.+};l,Fi~#I(.bz)|MnFD KvL>ݐTe)޽#? uTV-ڳwO7 Xg'(8ZZgaF-,_.7"5}Q6iℐ@ÞGm?^rpPia &OYg i<`PXF9y~;і/:hRЖPyˊٳ"y!gHy;v,|\.Ν;wf͚E[[,]W\qM7`!VI(,v,{n*++yͷ K/ ĊKSjgOݾc;wl糼:`; a'ٴiӘ5;l__;嵐ݻwwN"a%m?tCSLs Ѫ2#*3qq\=O3Tpm vJe$!DIu  $BJ9~Wv%Ne$J욖F\ץq1ydƏÇ/~5kf̚59sxb^~e#/'V49ӉE69s|i<˖->8 G \)^+Ӊo}=%P7bFG!"Iʘ1c>|xG>b]ԟo=NGCd d!j زVix&b!QYP,&As.Gg@RK(24s(8g 3MH$\x,]SZZʘ1c8Î;;:u*---y^zer< "wBxL_^V^Mwww\~徼ɦYE$Jm7n\Q9ұ2*f͞ /ؕ\~ir[e\R)fڸ4+pG,}9_vQO8>UĴ?D}'oa}UZ gjX0щ0FNci{\8o^;S#GѣG~;>C\eʔ)pXbXNzf̙3sĢ.C]~H!/~Y(E&%K8t谡"Ç5Ν3O=ٮFaf[[DS3O'JY&RBmoooM4?+>ET['!cH361TLFi-FC`G 0%|x(> h(sS62wb!M.(H@h#)A#G&Ʉo̘1tvv>l6ĉ=6ۤT1K1}DԷ .TD댖(z" &mk5`o[r_CYN]\yŕmkIckح3PD̞3',\"ad5dߑf]]] }CSϝ{&=ztȅwWO$*.sj͕Hkga͚5g{{{Yp! .>7okf1oZ=I 4I!UbUhTR/>,l\ô'u^TB$7y}5{S)Ki{ ᤊSN峅Xaf.Bww}qj Sw#f9yVC<OW7n F}8tnӽܼ}K垽_WJO٦nO1U-3U.WF['4)v0~/]xٗ 4𑝨xoj˳8w>YւmM+/ev$mUc,+!gOIG@0|b0 Ĝ,VQ8$lrDid䜂1'|,hB2ÓJzP4M(ȍiК-᥌ȢTZ{彰Ro[A+үɕ+pVfRnCCSc% X62[Vb@oÔWGE2ܥL= ; yGh&@y)NTjG5:W{$H7==0)Ɲ#wqI0h9<`X'6C4v&:c˭x&m<xͤ0ͷ&ݹ]$-2d<ñT  bafxNȹlw4la URQ97Ǻ+Z#8;!"ޅEBh/={K~z(-|`޴fENzLֱjo` ݌=Rȭ49j 2e%5X9[T|T9kWAl dvX\=xMŠf T{uO\یC+GuS6Pcg[[Rx.C VZe2i8QjYTؤT1:I#(1m ys| hy=1g },D܋ph=T c WT.8+bXlW$"V1w[<#$v\eH{LJ3TOT֌cf7[An*`U x;ܓ\Ms,Dձ.qԢuaݫ-@"7)g5 &k YW9J^h&$-fԤP3[|x0aOd-p#xÔe/xQnꁆ^%:'@b\S5 ̪t6O+Exrܞ${v3ߖ'\TmڱԂtf2-`UXSFtb_$_ȾR;/@&nxdd!X҉cNQkhgdߣ3&oSϏra]8mR~= -竻Hc= 2٘F'۔nߗ{аmF`;7(tm燸$AE1' EI)UzhJ%T*u#];\)*gziNx.>Cj_f-\ԬP-D+l⇈gW8ҘV˕$wXyMRSC XCb?xY2+ަ?(. l|#nWҬ' [5efP<]Z %3ψl;!pۦMe hn1uear\ [s]K~Nߔ5GM.ͩ@Wh#säL69oR[ZdnsW[쓺R#.:dsrw4#9>b(zhT ;OlUĦ0C [RdȁQSAzڡBkxRHN*F9&D#SK7 q{ {$@/N]6r)Hwok>W](JN bV>A/ۀM Pl#ZY bQcܖLZVZF -QVQ^X xK tΑZ^5 >/$$ _`m>kڿ~׭[Lkڿ~WlI_?kI_??)*bKUIENDB`spykeviewer-0.4.4/spykeviewer/0000755000175000017500000000000012650522331014576 5ustar robrobspykeviewer-0.4.4/spykeviewer/api.py0000644000175000017500000000763612650522331015735 0ustar robrobclass __ConfigOptions: def __init__(self): # Ask about plugin paths if saving a file to a path that is not # a plugin path self.ask_plugin_path = True # Save and reload a modified plugin before starting self.save_plugin_before_starting = True # Load selection on start self.load_selection_on_start = True # Default load mode (0 - Regular, 1 - Lazy, 2 - Cached lazy) self.load_mode = 0 # Default cascading mode (False - Regular, True - Lazy) self.lazy_cascading = False # Use Enter key for code completion in console self.codecomplete_console_enter = True # Use Enter key for code completion in editor self.codecomplete_editor_enter = True # Additional parameters for remote script self.remote_script_parameters = [] # Show duplicate channels (those that belong to multiple # channel groups) multiple times in navigation self.duplicate_channels = False # Select all visible segments in navigation by default self.autoselect_segments = False # Select all visible channel groups in navigation by default self.autoselect_channel_groups = False # Select all visible channels in navigation by default self.autoselect_channels = True # Select all visible units in navigation by default self.autoselect_units = False # Tranformation function for file paths when starting plugin remotely self.remote_path_transform = lambda x: x def __setitem__(self, key, value): self.__dict__[key] = value def __getitem__(self, item): return self.__dict__[item] config = __ConfigOptions() window = None app = None def start_plugin(name, current=None, selections=None): """ Start first plugin with given name and return result of start() method. Raises a SpykeException if not exactly one plugins with this name exist. :param str name: The name of the plugin. Should not include the directory. :param current: A DataProvider to use as current selection. If ``None``, the regular current selection from the GUI is used. :param list selections: A list of DataProvider objects to use as selections. If ``None``, the regular selections from the GUI are used. """ return window.start_plugin(name, current, selections, False) def start_plugin_remote(plugin, current=None, selections=None): """ Start first plugin with given name using the remote script. Raises a SpykeException if not exactly one plugins with this name exist. :param plugin: The name of the plugin or the plugin object. If this is a string, it should not include the directory and the plugin with this name will be started using the remote script. If it is a plugin object, this plugin will be started using the remote script. :param current: A DataProvider to use as current selection. If ``None``, the regular current selection from the GUI is used. :param list selections: A list of DataProvider objects to use as selections. If ``None``, the regular selections from the GUI are used. """ window.start_plugin_remote(plugin, current, selections) def get_plugin(name): """ Get plugin with the given name. Raises a SpykeException if multiple plugins with this name exist. Returns None if no such plugin exists. :param str name: The name of the plugin. Should not include the directory. """ return window.get_plugin(name) def annotation_editor(neo_object): """ Open a graphical annotation editor for a Neo object. :param neo_object: Any Neo object. """ window.edit_annotations(neo_object) def load_files(file_paths): """ Open a list files. :param list file_paths: The files to open as strings with the full file path. """ window.load_files(file_paths) spykeviewer-0.4.4/spykeviewer/tests/0000755000175000017500000000000012650522331015740 5ustar robrobspykeviewer-0.4.4/spykeviewer/tests/test_main_window.py0000644000175000017500000000573512650522331021676 0ustar robrobtry: import unittest2 as ut except ImportError: import unittest as ut import sys import os import platform import locale # Hack to circumvent OS X locale bug if platform.system() == 'Darwin': if os.getenv('LC_CTYPE') == 'UTF-8': os.environ['LC_CTYPE'] = '' else: locale.setlocale(locale.LC_ALL, '') # Use new style API import sip sip.setapi('QString', 2) sip.setapi('QDate', 2) sip.setapi('QDateTime', 2) sip.setapi('QTextStream', 2) sip.setapi('QTime', 2) sip.setapi('QVariant', 2) sip.setapi('QUrl', 2) sip.setapi('QVariant', 2) from PyQt4 import QtGui from PyQt4.QtTest import QTest from PyQt4.QtCore import Qt from spykeviewer.ui.main_window_neo import MainWindowNeo class TestMainWindow(ut.TestCase): @classmethod def setUpClass(cls): cls.app = QtGui.QApplication(sys.argv) cls.win = MainWindowNeo() @classmethod def tearDownClass(cls): cls.win.close() def test_object_selections(self): self.assertNotEqual(self.win.neo_blocks(), None) self.assertNotEqual(self.win.neo_segments(), None) self.assertNotEqual(self.win.neo_channel_groups(), None) self.assertNotEqual(self.win.neo_channels(), None) self.assertNotEqual(self.win.neo_units(), None) def test_plugins_loaded(self): self.assert_( self.win.plugin_model.hasIndex(0, 0), 'Plugin model is empty') def test_filter_tree(self): self.assertEqual( self.win.filterDock.filterTreeWidget.topLevelItemCount(), 5) def test_file_tree(self): self.assert_( self.win.fileTreeView.model().hasIndex(0, 0), 'Filesystem model is empty') def test_console(self): QTest.keyClick(self.win.console, Qt.Key_1) QTest.keyClick(self.win.console, Qt.Key_Plus) QTest.keyClick(self.win.console, Qt.Key_1) lines = self.win.console.get_line_count() self.assertEqual( self.win.console.get_text_line(lines - 1), '>>> 1+1') QTest.keyClick(self.win.console, Qt.Key_Enter) lines = self.win.console.get_line_count() self.assertEqual(self.win.console.get_text_line(lines - 1), '>>> ') def test_history(self): history_lines = self.win.history.get_line_count() QTest.keyClick(self.win.console, Qt.Key_5) QTest.keyClick(self.win.console, Qt.Key_Enter) self.assertEqual( history_lines + 1, self.win.history.get_line_count()) self.assertEqual( self.win.history.get_text_line(history_lines), '5') def test_plugin_editor(self): self.assertEqual( self.win.pluginEditorDock.tabs.currentWidget(), None) self.win.actionNewPlugin.trigger() self.assertNotEqual( self.win.pluginEditorDock.tabs.currentWidget(), None) self.assertEqual( u'\n'.join(self.win.pluginEditorDock.code()), unicode(self.win.pluginEditorDock.template_code + '\n')) if __name__ == '__main__': ut.main()spykeviewer-0.4.4/spykeviewer/tests/test_plugin_manager.py0000644000175000017500000000263512650522331022347 0ustar robrobtry: import unittest2 as ut except ImportError: import unittest as ut import sys import os from spykeviewer.plugin_framework.plugin_manager import PluginManager class TestPluginManager(ut.TestCase): def setUp(self): self.manager = PluginManager() if hasattr(sys, 'frozen'): module_path = os.path.dirname(sys.executable) else: file_path = os.path.abspath(os.path.dirname(__file__)) module_path = os.path.dirname(file_path) self.manager.add_path(os.path.join(module_path, 'plugins')) def test_not_empty(self): self.assertGreater(self.manager.root.childCount(), 0, 'Plugin manager with default path is empty') def test_directories_loaded(self): num_dirs = 0 for n in self.manager.root.children: if isinstance(n, PluginManager.DirNode): num_dirs += 1 self.assertGreater(num_dirs, 0, 'No plugin directories loaded') def test_plugins_loaded(self): def find_plugins(dir_node): plugins = 0 for n in dir_node.children: if isinstance(n, PluginManager.DirNode): plugins += find_plugins(n) else: plugins += 1 return plugins self.assertGreater(find_plugins(self.manager.root), 0, 'No plugins loaded') if __name__ == '__main__': ut.main() spykeviewer-0.4.4/spykeviewer/tests/__init__.py0000644000175000017500000000000012650522331020037 0ustar robrobspykeviewer-0.4.4/spykeviewer/splash_rc.py0000644000175000017500000027475412650522331017151 0ustar robrob# -*- coding: utf-8 -*- # Resource object code # # Created: Do. Jun 6 13:05:36 2013 # by: The Resource Compiler for PyQt (Qt v4.8.2) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x5a\xbb\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\xde\x00\x00\x00\x5c\x08\x06\x00\x00\x00\x01\x1f\x0b\x64\ \x00\x00\x00\x06\x62\x4b\x47\x44\x00\xf1\x00\xf1\x00\xf1\xf2\xab\ \x19\xff\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x11\x00\x00\ \x0b\x11\x01\x7f\x64\x5f\x91\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ \xdd\x06\x06\x0a\x1b\x1e\x96\xf1\x7c\x02\x00\x00\x20\x00\x49\x44\ \x41\x54\x78\xda\xec\xbd\x77\x98\x5d\xd5\x95\xe6\xfd\x5b\xfb\xdc\ \x54\xa5\x0a\xaa\xa4\x0a\x4a\xa5\x8c\x42\x95\x4a\x81\x0c\x92\xc8\ \xd9\x18\x03\xc6\x60\xbb\x3d\x26\x19\xdb\xed\xb1\xbf\xef\x99\x69\ \xc7\xee\xe9\x99\xf9\xda\x3d\x8d\xdb\x9e\xe9\x6e\x63\x43\x7b\x6c\ \x6c\x93\x4c\xce\x48\x20\x82\x22\x92\x90\x48\x42\x19\x94\x53\x29\ \x94\x4a\xaa\x52\xc5\x7b\xef\xd9\xdf\x1f\x27\xed\x7d\xee\x2d\x81\ \x7a\xe6\xe9\xbf\x7c\x79\x44\x49\xb7\xee\x3d\x67\x9f\x1d\xdf\xf5\ \xae\xb5\xde\x25\xff\xe9\x81\xff\xa4\xcb\xcb\xcb\xf9\xf3\xeb\xcf\ \xaf\x3f\xbf\xfe\x7d\x5e\xdb\xb6\x6d\x43\x01\x74\x77\x77\xff\xb9\ \x37\xfe\xfc\xfa\xf3\xeb\xdf\x69\xd1\x01\xde\xc2\xfb\xf3\xe2\xfb\ \xf3\xeb\xcf\xaf\x7f\xbf\x45\x67\x2d\xbc\x3f\x2f\xbe\x3f\xbf\xfe\ \xfc\xfa\xf7\x59\x74\x00\x89\xf8\x07\xba\xbb\xbb\x29\x6f\xf7\x6c\ \x3e\x0d\x48\xf0\x7f\x0d\x22\x9f\x7e\x03\xef\xd3\xf1\x7f\xd9\xef\ \xa2\xfd\x9f\xe2\xbf\x1f\xfe\x3a\xfc\x45\xe1\x77\xc2\xd6\x68\x24\ \x6c\xd5\xa7\xdd\xbf\xd8\x1b\xde\x7b\x5a\x8a\x7f\x7f\xe8\x2f\x0d\ \xfd\xf6\xa9\xae\x30\xe4\x57\xb4\xf1\xfc\x9f\xda\x7f\xa0\xfd\xbf\ \xca\x67\x6d\x8a\xdf\x95\xf6\x73\x06\xfd\x1d\x0c\xe6\x67\xee\x45\ \xbb\xd3\x8a\x0f\xcd\x67\xec\x27\xbb\xf3\x4f\xa3\x4b\x4f\xf9\xb0\ \xde\x75\x62\xbd\x63\xcd\x2b\xf9\x4c\xf7\x2a\x3a\x22\xa7\x9e\x2c\ \x9f\xbe\xe8\xf4\xb6\x82\xf7\x12\xc5\x3e\x28\x4a\xfc\x75\x11\x3d\ \x88\x28\x6f\x9e\x68\xec\xb5\x11\x8d\x43\xb4\x28\x0a\x1f\xc1\x18\ \x30\xff\x9c\x15\xed\xfd\x45\x87\x0b\x30\x38\x80\x75\x78\x2d\xac\ \x7b\xf9\x6d\x42\xc2\xb7\xac\x6b\x1a\x1f\xf5\xfe\x22\xe1\xe4\x8e\ \x3e\x26\xe1\x82\x17\x91\xf0\x79\xc4\xff\xad\x36\xee\x55\x70\x69\ \xf1\xfa\x43\x5b\x4b\x2a\x76\x6f\x89\x2d\x10\x6d\x8e\x57\xec\xa9\ \x04\x7b\x88\x83\xfb\x06\x5f\xd4\x84\x1b\x8c\x77\x6d\x41\xfc\x06\ \x5b\x93\x23\xe8\x1b\x31\x17\x86\x0e\xba\x32\x36\x5f\xfc\x7f\x29\ \x31\x1e\x36\x18\x48\x41\xb4\xdf\x3e\x11\xbf\x0f\xb4\x75\xff\xf0\ \xd9\x34\xe8\xf0\x61\x31\x76\x64\x6d\x5c\x5f\x1b\xd3\xc4\x9e\x13\ \xa2\x40\x87\xe3\xa9\xc3\xae\xd0\xda\xde\x58\xa2\x9b\xf9\xfd\x17\ \x3c\xbf\x44\x53\x26\xf8\x9c\x77\x4b\x31\xe6\x4f\xf4\x78\xe2\x1f\ \x1c\x2a\xd6\xe4\x60\xef\xb3\x37\xc9\xd8\xd8\x06\x1f\xb4\x06\x98\ \x22\x07\x84\xb6\x7e\x04\x9f\xd5\x14\x9d\x2a\xc5\x17\x9e\x12\xaf\ \xc5\xe1\x42\xd7\x12\x2e\x10\x91\xa8\x71\xda\xef\xb1\x10\xaf\x6a\ \xbf\x73\xf0\x3a\x41\x82\x6b\x04\x0f\x27\xa0\x45\x7b\x9d\xa6\x62\ \x83\x61\x4c\x1e\x2d\x82\xd2\xd1\x84\x40\x07\x6b\x32\xda\xa9\xc3\ \x41\x52\x46\x07\x06\x8b\x43\x8c\xa1\xf6\x46\xd9\xbf\x9d\x04\xdb\ \x48\xf8\x79\x6f\x0e\x7a\x93\xce\x9b\x5c\xde\x4f\xb3\xdf\x29\x32\ \xc9\x45\xab\x70\x11\x6b\x1d\x9d\xc1\x5e\xd7\xf9\x5b\x90\x71\x8a\ \x7b\x93\x42\xbc\xad\xc6\x9f\xc4\x12\x3b\x1b\xb5\x0a\x16\xb7\xb1\ \xf9\x99\xdb\x99\x8e\x26\x92\x79\x5a\x6a\xbf\x83\xc4\x5f\x6c\x5a\ \x11\x76\xb8\xd5\x7e\x7f\x22\x88\x48\xec\xb4\xf5\xef\x22\xca\x5e\ \x26\x22\xa8\xf0\xc4\xd5\x28\xe5\xb7\x3b\xd8\x38\xc5\x18\xb3\xb0\ \xb3\x82\xd6\x46\x2d\x0f\xff\x66\x4c\xe2\xa8\x6f\x54\x34\x0f\x54\ \xb0\xc1\x6a\xff\xf7\x12\x4d\x01\x11\x6b\xaf\x0a\x36\x02\x15\x6c\ \x9d\x62\x35\x07\x89\x6f\x62\xca\x1b\x5b\x25\xd1\xaa\x15\x73\x6b\ \x10\x63\x43\xd7\xd1\x53\x68\xd1\xc6\xb8\x1b\x5b\x7f\x38\x57\xa3\ \x35\x82\xd1\xce\xa0\x3f\x14\x80\xfb\x19\x17\x5e\x34\x00\xd1\xd4\ \x50\xf1\x1d\xda\x38\xdb\xec\xcd\xc1\xef\x76\x63\xbd\x98\x10\x49\ \xfc\x7f\x68\xed\x22\xa2\xc2\xdd\xa9\xa7\xb7\x97\x74\x3a\x4d\x45\ \x79\x05\x95\xc3\x87\x33\xbc\xb2\x92\xd2\xd2\x52\x12\xc9\x04\x82\ \x90\xcd\x65\xe9\xeb\xeb\xe3\x78\xe7\x71\x8e\x1d\x3b\x46\x57\x57\ \x17\xfd\xfd\x7d\xa4\x52\x49\x4a\x4a\x4a\xa2\xc1\x94\x68\xe0\xc3\ \xf9\xa9\xc4\xda\xd5\xa2\x36\x69\xe3\x94\x11\x63\x52\xc7\x4e\x4f\ \x63\xe2\x7a\x0b\x42\xac\x23\x47\xcc\xbe\xd1\xe6\x7b\x76\x7f\x98\ \xeb\x2c\x5a\xdc\x62\xf7\xa7\x10\x83\xd2\x12\xad\x11\xb1\x3f\x8f\ \x71\x1a\xc5\x2e\x6e\x2d\xb8\xf0\x5a\x22\xc5\x4f\x40\x63\xa7\x0f\ \xb7\x51\xd1\xd6\x08\x47\xcd\x8d\xda\x19\xa1\xe5\x60\xc3\x95\x68\ \x82\x8a\x31\x43\xb4\xd0\x7e\xa8\x9d\xce\x8e\x63\x56\xa7\xd6\xd7\ \xd7\x53\x53\x53\x13\x9e\x34\x62\x0e\x4e\xec\xc6\x12\xac\x78\xa3\ \xe5\x41\xbf\x9b\xdd\xe3\x6d\xda\x80\x8a\x96\xbd\xb9\x58\xed\xc5\ \x6e\xb7\xd3\xdc\x20\xec\x5e\x2e\x02\xb1\x45\xac\xef\x9a\xfb\x90\ \x35\x3d\x74\x71\xf8\x39\x34\xd4\xd4\x62\xa1\xc4\x70\x27\x0a\xff\ \x1a\xed\x64\xa6\x6d\x26\xc6\x9d\xe2\xb0\x4f\x44\x87\xfb\xa9\x68\ \x45\x7f\x7f\x1f\x89\x54\x9a\x49\x13\x26\x32\x69\xf2\x24\xea\x47\ \x8c\x40\x29\xa1\xbf\xaf\x9f\xbe\xbe\x3e\xfa\xfb\xfa\xc8\x66\xb3\ \x68\xed\x92\x4c\x95\x51\x92\x69\x22\x93\xc9\x50\x52\x5a\x42\xde\ \xd5\x74\x76\x1e\x67\xdb\xb6\x8f\xd9\xb0\x71\x03\x5d\x5d\x27\xa8\ \xab\xad\x89\x75\xaa\x0e\x27\x6e\x68\x05\xc4\xf0\x72\xb8\x40\xc4\ \x7f\x1e\x31\x9e\x47\xa2\x13\x28\xdc\x7a\xe3\xd0\xcb\x7c\x5e\xe3\ \xf4\x34\x91\x88\x8e\xf7\x41\x6c\xa1\xee\xdb\xb7\x97\x7d\xfb\xf6\ \xd3\x71\xac\x83\x63\x1d\x1d\xb8\xae\x4b\x59\x59\x19\x65\x65\x65\ \x94\x97\x97\x33\x7a\xf4\x68\x46\x8e\x6c\xc2\x51\x0e\xc5\x80\x0e\ \xc6\xa2\x31\x4f\x7b\x0c\x04\x80\x69\xd6\x11\xbc\x67\x8c\x69\x01\ \x7c\x16\x0b\x9a\x87\x50\x5f\xb0\xa0\x9f\xf8\xbb\x7e\x04\x3d\x62\ \xf6\x91\xdf\xaf\xeb\xd6\xae\x65\xf5\xea\xd5\xd6\x3c\xbb\xea\xaa\ \xab\x98\x77\xe1\x85\x85\x48\xd9\xd8\x63\xac\x99\xa5\x8b\x6f\x88\ \xca\x00\xc5\x52\x70\xf2\xda\x98\x3f\x6c\x6f\xdc\x8e\x88\x1d\x34\ \xc1\x22\xb6\x6d\x3c\x6d\x9d\xd8\x5a\xdb\xfd\x6c\x76\xb2\x10\xf5\ \xfb\x67\x5f\x78\xa2\x2c\xdb\x5b\xfb\x36\x83\x37\x09\x83\x1d\x5c\ \x1b\x50\xc4\xec\x2e\x1f\x36\xf9\x13\x30\x98\xd0\xfe\x71\x84\xa0\ \xe9\xe9\xe9\xa5\xba\xb6\x8e\xf9\x0b\x2e\x62\xc2\xf8\x71\x64\x07\ \x07\xd8\xb6\x75\x2b\x2b\x96\xbc\xc5\xee\x3d\x7b\x39\x76\xec\x18\ \x9d\x9d\x9d\x1e\x34\x70\xc4\x83\x72\x7e\x3b\x4a\x32\x19\xea\xea\ \xea\x68\x68\x68\x60\xe6\xcc\x99\xcc\x6a\x6b\x61\xfe\xfc\x0b\xd9\ \xb5\x7b\x0f\x2b\x56\xac\x60\xcf\x9e\x3d\xd4\xd6\x0c\x27\xe1\x24\ \xbd\x7b\x87\x98\x4e\x8c\x13\x59\x88\xcc\xd7\xc0\xbe\xb1\x37\x99\ \xf0\xd7\xa1\x3d\x2a\xe1\x24\x0a\x06\x22\xba\x9e\x36\xcd\xd7\x70\ \x67\xd6\x3e\x64\x0a\xbe\xaf\x95\xb7\x38\x82\x3d\xba\xa3\xa3\x83\ \x57\x5e\x79\x85\x8d\x1b\x37\x7e\xaa\x81\x9e\x48\x24\x18\x35\x72\ \x14\x5f\xb8\xf1\x46\xea\xea\xea\xac\x53\xd9\x7c\x14\x25\x2a\x22\ \x13\xfc\x85\x1e\xf5\x7d\xd0\xc0\x60\x62\x48\xf4\xbc\x86\x1d\x6d\ \x4e\x56\x6d\x9c\xc4\xc1\x38\x04\x50\x2d\xe8\x4b\xb1\x1a\x62\xac\ \xbe\x00\xf6\x6b\x55\x94\x99\x13\x3c\xac\x1f\x20\x4c\x15\x9e\x47\ \x52\x40\xc0\x85\x28\x4a\xdb\x8c\x42\xfc\xf4\x0b\xa1\x7d\x04\x92\ \xa3\x4d\x21\xb8\x9e\x18\x70\x31\x32\x12\xc2\xfe\xb2\x61\xbd\xb2\ \x0d\x4f\x15\xd9\xf9\xca\xb4\xe9\x4d\xe8\xaf\x95\xbf\xc1\x2b\xbc\ \xe3\xf7\xb4\x6c\x3c\x62\x47\xb4\x01\xcf\x7c\x93\x58\x59\x67\xa9\ \x2a\x84\xa1\x62\x1e\xe2\x90\xcf\xe5\x48\x24\x53\x5c\xff\xf9\x1b\ \x68\x1e\x3b\x86\x3d\x3b\x77\xf1\xe8\xc3\x0f\xb1\x6a\xf5\x6a\x06\ \x06\x06\x3c\xa8\x59\x59\xc9\xf0\xea\x2a\x46\x34\xd4\xe3\x38\x8e\ \x71\xba\xb8\xe4\xf3\x2e\xd9\x6c\x96\xbe\xfe\x7e\x36\x6e\xde\xcc\ \x9a\xb5\x6b\xd1\xae\x66\x66\x6b\x2b\x97\x5d\x76\x29\x5f\xff\xda\ \x57\xd9\x7f\xe0\x20\x2f\xbd\xbc\x90\xfd\xfb\xf7\x31\x6a\x64\x63\ \x34\xb9\xc2\x56\x4b\x1c\x29\x1a\x2b\x4e\x0a\x98\x40\x61\x88\xbf\ \x88\x0d\x45\x8a\x91\x5e\x52\xf0\xd9\xe8\xaa\x07\x0f\x1e\xe4\x97\ \xbf\xfc\x25\xb9\x5c\xee\x33\x31\x63\xb9\x5c\x8e\x5d\xbb\x77\x71\ \xf2\x64\x37\xf5\xf5\x23\x8a\xb0\x71\x12\x99\xcd\x88\x05\xa3\x0a\ \xac\x04\x93\xa0\x32\x71\xa4\xd8\xd7\x0b\xd7\x2c\x12\xb3\x77\xc5\ \x36\x79\x87\x80\xaf\x26\x74\x2f\x4a\x0a\x8a\xbf\xc9\x17\x00\xe8\ \x08\x5d\x88\xb1\xa9\x6b\x7f\x6e\x86\xd0\x34\x4e\xe0\x15\x3c\x5b\ \x21\xac\x24\xb6\x91\x20\xde\xda\x08\xec\x7d\xbb\xef\x74\x71\xd8\ \x5b\x60\x82\xc5\xa1\xbf\x81\xa6\xb4\x9c\xde\x89\x67\xd1\x3d\x16\ \xa2\x2a\x1c\xb4\x00\xe7\x87\x3b\xac\x2e\x44\x1d\x5d\xdd\x27\x99\ \x3b\xf7\x4c\x2e\xb8\xe0\x3c\xf6\xec\xda\xcd\x3f\xff\xcf\xff\xc9\ \xbb\xef\xbd\x47\x69\x59\x19\x63\xc6\x8c\x21\x9d\xc9\x90\x48\x24\ \x7c\xf6\x4e\x50\x4a\x59\x06\xaf\x16\xd0\xae\x46\x6b\x97\x4a\x17\ \xea\x47\x8c\x20\x97\xcb\x91\xcd\x66\xd9\x77\x60\x3f\x7f\xf7\xf7\ \x7f\xcf\xc4\x09\x13\xb8\xf9\xa6\x9b\xf8\xe6\x3d\x77\xf1\xce\x3b\ \xeb\x78\xf1\xa5\x97\xa9\x28\x1f\x46\x45\x45\x45\x64\x9f\x19\xcc\ \x9c\x77\x61\x15\xc1\x2e\x7f\xab\x13\x1d\xe3\x41\xc5\x24\x0c\xfd\ \x2f\xdb\x88\x34\x06\x5f\xc4\x86\xbb\x31\x58\x93\xcf\xe7\x78\xe2\ \x89\x27\x3e\xf3\xa2\xb3\xc7\xc6\x27\x29\x0c\x58\xaf\x63\x44\x81\ \x05\xfb\x65\x68\x3b\x83\x18\xc8\x94\x90\x59\xf4\x27\x96\xd2\x31\ \xbc\x5c\xc8\xcf\x0a\xc5\xa0\xb9\x2e\x5c\x87\x52\xfc\x59\x94\x65\ \xeb\x1a\x4f\x22\xda\x20\x10\xc5\x9a\xee\x21\x83\x19\x10\x75\x36\ \xff\x1a\x73\x4b\x05\xe6\x53\xc4\x9a\xea\x00\xf6\xab\x88\xf5\x53\ \x01\x59\x18\x83\xd4\xc1\xdc\x30\x69\xac\xe0\x16\xca\x64\xf4\x03\ \x38\x5f\x84\x41\x3f\x2d\x1b\x2f\x34\x74\x8b\x6d\xff\x3a\x76\x4c\ \x07\x03\xe6\xc3\xd1\xb0\x45\x7e\x13\xb2\xd9\x3c\xb7\xde\x7a\x1b\ \xb5\xd5\x55\x3c\xfe\xe8\x63\xbc\xbc\xf0\x15\x6a\x32\x69\xbe\x71\ \xe4\x30\x07\x6a\x6b\x69\x2f\x2f\x27\x91\x4c\x90\x4c\xa6\x10\x51\ \x5e\xc7\xfa\x17\x0d\x76\x0d\x1d\x32\x4f\x1a\xd7\xf5\x20\x47\x2e\ \x97\x25\x9b\xcd\x31\x66\x4c\x86\x91\x23\x9b\x38\x72\xf8\x28\x3f\ \xfd\xfb\xbf\xe7\xcc\x33\xcf\xe4\x1b\x77\xdf\xcd\x7f\xfe\x4f\xff\ \x2f\xbf\x7d\xf0\xf7\xec\xdf\x7f\x80\xd1\xa3\x9b\x8c\xa9\xa2\x6d\ \x56\x55\x54\x04\x87\x83\xf6\x63\x4c\x42\x83\xa5\x17\x13\x7a\x2a\ \x1f\xfa\x84\x06\x3d\x11\xcc\x0e\xe1\x76\xc0\x32\x06\xf6\xa5\xb0\ \x7a\xed\x5a\x0e\x1c\x38\x50\x74\x40\xaa\xaa\xaa\x18\x35\x6a\x14\ \x83\x83\x83\x1c\x3d\x7a\x94\xce\xce\x4e\x5c\xd7\xb5\x17\x9e\x0a\ \xac\x1a\xf3\xb4\x08\xd8\xc5\x88\xe8\xd0\x81\x4b\x48\xa2\x85\xe5\ \x31\xc2\x12\xb9\x59\x7c\x2c\xad\x8c\x09\x17\xd9\x89\x3e\xc9\x16\ \x6c\x4e\x86\xfd\x22\xe6\xc0\x47\xfe\x21\xbf\xfb\xc4\x86\xba\xd1\ \xb9\x5b\xb0\xf0\x95\x52\x16\x29\xa5\x0d\xbb\x3c\xc2\x90\x06\x2d\ \x6e\x9c\xbe\x26\xe0\x0c\x08\x41\x6d\x92\x55\x5a\x17\x45\x31\x21\ \x85\xa1\x25\xe2\x6b\xb4\x8d\xec\xc2\x73\x5f\x94\xe1\x12\x34\x19\ \x5a\x6d\xb1\xcc\x82\xc1\xbc\x5a\x5e\x45\x39\x4d\xa8\x29\x62\x3b\ \xb9\xe3\x66\x5c\xec\xb2\xd1\xc6\x15\xd1\xea\xae\xab\x49\x24\x53\ \x7c\xe9\x4b\x37\x72\xbc\xb3\x83\x1f\xff\xf0\x87\x1c\x3c\x7c\x88\ \xb3\xa6\x4e\xe5\x96\x87\x1e\xa2\xe9\xf0\x61\xf4\x07\x1f\xf2\xd8\ \x8f\x7e\xc4\xc9\x4c\x09\xa9\x54\x8a\x54\x2a\x45\x32\x99\xc4\x71\ \x9c\x90\xde\x77\xf3\x79\x5c\xad\xc9\xe7\xf3\xe4\xf3\x79\x72\xb9\ \x1c\xf9\x7c\x9e\x44\xc2\x21\x93\xd1\xe4\xf3\x2e\xb9\x5c\x9e\x74\ \x3a\x43\x7d\x43\x3d\xbb\x76\xed\xe2\xbb\xdf\xfd\x1e\xdf\xfe\xf6\ \xb7\xf8\x7f\xbe\xfb\x1f\xf9\xfd\x1f\x1e\xe2\x93\x8f\xb7\xd1\xdc\ \x3c\xa6\x88\xff\x4c\x0c\x83\x3c\x06\x29\x63\xec\x54\x38\x48\x12\ \x67\x14\x7d\x17\x81\x35\xc5\x62\x70\xdb\x80\xb4\xfb\xf6\xed\x2b\ \xe8\xf3\xf1\xe3\xc7\xf3\xb5\xaf\x7d\x8d\xb2\xb2\x32\xeb\xfd\x7c\ \x3e\xcf\xb6\x6d\xdb\x58\xb3\x66\x0d\x1b\x37\x6e\x34\x4e\x89\xd8\ \x54\xf6\x37\x8c\x70\x54\x82\x4d\x43\x19\x80\x2b\xce\x40\x62\x33\ \xba\x21\x73\x6b\xb1\x87\x52\x80\x6c\x82\x7f\x6b\x0a\xd9\x59\x31\ \x7c\xce\xca\x64\x1d\x8b\xd9\x78\x12\xef\x1f\x83\x55\x35\x88\x2f\ \x73\x33\x8c\xfb\x88\x45\x8a\x31\xed\x52\x38\x4e\xb1\xc3\x30\xb2\ \x55\x65\x48\xb8\xcd\x10\x0c\xb7\xc5\x9a\x17\xe0\x80\xc8\x05\x73\ \x4a\x9b\x7d\x48\x72\xc5\x3c\x7a\xe3\x3c\xbc\xb6\x0d\x70\xfb\x94\ \x8f\x06\x22\x9d\xc9\xf0\xd5\xaf\x7c\x99\xf7\xdf\x5d\xc7\x7d\xf7\ \xfd\x8a\x8a\xca\x0a\xce\x3c\xfb\x6c\x2e\x7a\xf9\x65\xc6\x1e\x3e\ \x4c\x06\x70\xf3\x79\x2e\xd8\xb4\x89\x8f\x6e\xba\x91\x54\x22\x89\ \x06\x5c\xd7\x0d\x17\x99\xeb\xba\xde\x63\xf8\xbb\xbe\x52\x8a\x84\ \x93\x20\xaf\xf3\xb8\x79\x97\x5c\x2e\x87\x48\x9e\x44\x32\x49\x2a\ \x95\x62\x70\x70\x80\x89\x13\x27\xd2\xd1\xd1\xc1\x3f\xfe\xfc\xe7\ \x7c\xf1\xe6\x3d\xdc\x7d\xd7\xed\x3c\xf4\xf0\x63\xbc\xf7\xee\xbb\ \x4c\x99\x32\x31\x82\x25\xa6\xcf\x48\x1b\xfc\x9e\xf8\x5d\xa8\x63\ \x91\x02\x05\x4e\xfb\x38\x3c\x8a\x4e\xc6\x70\x20\x8c\x8f\x04\x88\ \xf6\xd0\xa1\x43\x05\x7d\x7e\xd5\xd5\x57\x51\x5e\x51\x6e\x38\xb6\ \xbd\xfe\x4d\x26\x12\x4c\x9b\x3e\x9d\x69\xd3\xa7\x73\xb2\xbb\x3b\ \x84\x9a\x96\x05\x10\x9b\x50\x3a\x16\x3a\x13\x7a\xe7\xc4\xf2\xda\ \x19\x3e\xbb\x08\x51\x68\x5d\xd8\x1f\x28\x83\x54\x0a\x70\x83\x15\ \x2c\x20\x3e\xe9\x51\x48\xd1\x7b\xcf\xad\x87\x84\xcd\x8e\x52\x11\ \x61\x22\x9e\x2d\xbb\x64\xc9\x12\xb2\xb9\xac\x81\x60\x85\xd2\x61\ \xa5\x5c\x70\xe1\x05\x21\x39\x15\x98\x1e\x1b\x37\x6e\x64\xdf\xbe\ \x7d\xb4\xb7\xb7\xd3\xde\xde\x8e\xe3\x38\x34\x35\x35\xd1\x34\x72\ \x24\x53\xcf\x98\x4a\x43\x43\xbd\xcd\xff\x9a\xd3\x37\x38\xa9\x8d\ \x60\x01\xd3\x07\x17\x75\xb0\xb6\x98\x4f\x1d\xf7\xbe\x17\xd0\x3d\ \x26\xdb\xc9\x69\x9e\x78\x44\xf4\xba\x18\x81\x0e\xe6\xee\x04\x7e\ \xa7\x99\x03\xe3\xb3\x9d\x1a\xe1\x4b\x5f\xba\x85\x55\x2b\x56\xf0\ \xcb\xfb\x7e\xc9\xd4\x69\xd3\xa8\x1f\x31\x02\x2d\xc2\xf9\x6b\xd6\ \x78\xbb\xf9\xe4\xc9\x38\x13\x26\x50\x31\x7e\x3c\x25\x25\xa5\xe4\ \x73\x39\xb4\xeb\xe2\xba\xae\x3f\x18\x45\xec\x45\xad\x8d\x2e\x8a\ \xe0\x8a\x46\xe3\x38\x0e\xa5\xa5\xa5\x24\x53\x29\x32\x99\x0c\x65\ \x65\x65\x3c\xfd\xec\xb3\x9c\xec\xe9\xe1\xae\xbb\xef\x66\x70\x70\ \x90\xad\x5b\xb7\x30\x61\x7c\xb3\x37\xc1\x54\xe4\xd8\x46\x69\x7f\ \x48\xcd\x13\x4b\x87\x76\xa0\x15\x05\x10\x73\xdb\x89\x85\x65\x4c\ \x9b\x49\x85\x4e\x58\x31\xe0\x5d\x67\x67\x67\x41\x9f\x97\x97\x95\ \x7b\x8c\xa4\x14\x8b\xfb\xf1\x26\x76\x45\x45\x45\x41\xe4\x97\x12\ \x6d\x2d\x1c\x33\x4c\x2a\xdc\x40\x4c\x17\x89\x7f\x12\x8a\x44\x86\ \x6b\xc8\x24\x1a\xf6\x4a\xe8\xd7\x13\x65\x47\xaf\x98\x27\xad\x01\ \xb7\x94\x18\x8c\xb6\x09\xdb\x7c\xa8\x2d\x22\x43\xb0\x2b\x84\x67\ \x84\xd6\x2e\x8f\x3d\xf6\x18\xef\xbd\xf7\x9e\xf5\xa9\x4c\x26\xc3\ \xb7\xbf\xfd\x2d\x1c\xe5\x84\x63\xd0\x71\xf4\x08\x8f\x3d\xf6\x27\ \xb6\x6f\xdf\x5e\x70\xd5\x83\x07\x0f\xf2\xee\xbb\xef\xf2\xca\xcb\ \x2f\x73\xed\xb5\xd7\xb2\x60\xc1\x7c\xff\x39\xb4\xe1\x1b\x8d\x90\ \x9c\xf6\x4f\xf3\xf0\x77\x62\x33\xa6\x1a\x23\x68\xa2\x08\x0c\x0d\ \x8e\xf8\x70\x69\x0a\x31\xd8\x7b\x3a\x7e\xbc\x38\x0f\x27\xc5\x0c\ \xf3\x60\x30\x4c\xc7\xb3\x70\xf2\x64\x0f\x77\xdc\x7e\x3b\x1b\x3e\ \xfc\x80\xfb\x1f\x78\x80\xb6\xd9\xb3\xa9\xa8\xa8\x40\x1c\x87\x96\ \xf5\xeb\x91\xca\x4a\x06\x16\x2c\xa0\x6b\xca\x14\xea\x3e\xfe\x98\ \x7c\x36\x8b\xce\x7b\x8b\xcd\xdc\x39\xb5\x3f\xae\xda\xdc\xd9\xfd\ \xad\x36\xef\xc3\xcd\xd0\xee\x31\x76\xf4\x54\x32\x89\x4e\x38\x40\ \x25\x73\xe6\xcc\xe1\xb5\xc5\x8b\x49\x27\x93\xdc\x71\xfb\x1d\xfc\ \xc3\xcf\x7e\xc1\xbe\xfd\x07\x18\x3d\x6a\xa4\x1d\x3a\x14\x87\xce\ \xc6\x43\xeb\x98\x63\xdd\x5c\x1c\xca\xd8\xd9\xcd\x7e\x30\xf7\x3f\ \x15\x63\x4d\x87\x0f\x1f\x4e\x57\x57\x97\xd5\x9b\x2f\xbd\xf4\x12\ \x5f\xfe\xf2\x97\x29\x2d\x2d\x2d\x46\x61\xd9\x13\x57\x6c\xf6\xac\ \x90\x79\x36\x18\xbc\x18\x13\x87\x14\x12\x90\xf6\x2e\xad\x43\x0a\ \xdd\xee\x13\x29\x0e\xb9\x8a\xcc\x8b\x78\xb4\x8f\x0c\xc1\xec\x29\ \x25\xd6\x66\xf3\xdc\xb3\x2f\x14\x2c\xba\x54\x2a\xc5\x3d\xf7\xdc\ \xc3\x98\x31\x63\xc3\xeb\xbd\xff\xfe\xfb\x3c\xfa\xe8\xa3\x0c\x0e\ \x0e\x9e\x12\xce\xe5\xf3\x79\x9e\x7f\xfe\x79\xb6\x6e\xdd\xca\xdd\ \x77\xdf\x1d\xb1\xe4\x81\xdd\xa0\x0d\x08\xad\x86\x08\x0e\x91\x98\ \x13\x3d\x64\xc6\xa5\x08\x24\x95\x82\x90\x84\xa1\xd6\x5e\x62\xa8\ \x0e\xc1\x72\x1c\x17\xc2\xa5\x82\xf8\x66\x7f\x86\x1e\xed\x38\xc6\ \x8d\x37\xde\xc8\x91\x43\x87\xf8\x97\x7f\xf9\x25\xd3\x5b\x5a\xa8\ \xad\xa9\xf5\x60\x53\x2a\xc5\xb8\xc1\x41\xe4\xba\xeb\xc8\x0d\x1f\ \xce\xf1\xf2\x32\x46\xe4\x72\x38\x83\x83\x06\xfc\xd3\x16\x2b\x26\ \x02\xe2\x46\x93\x3c\xab\xf3\x0c\x0c\x0e\xf8\x08\x48\x85\x6d\x8c\ \x3b\xb4\x95\x24\x28\x2d\x75\x48\x25\x53\xcc\x9a\x35\x8b\xe7\x5f\ \x7a\x99\x11\x0d\x0d\x7c\xf3\x9e\x3b\xf9\xdb\xff\xf6\x77\xf4\xf4\ \xf4\x52\x5e\x3e\xcc\xdf\xac\x02\x9f\xa3\xed\x70\x0e\x1e\x58\x69\ \x9b\x39\xd4\x31\xc6\x33\x0c\x51\x0c\x7e\xe7\x9f\x92\x56\x40\x96\ \x41\x4c\xd4\xd5\xd5\xb1\x67\xcf\x1e\xab\xcf\x37\x6c\xd8\xc0\xdf\ \xfc\xcd\xdf\x30\x79\xf2\x64\x26\x4d\x9a\xc4\xb8\x71\xe3\x18\x33\ \x7a\x34\x4e\x22\x19\x9e\x2c\x61\xa8\x9e\x61\x5b\xee\x96\xbd\xfc\ \xa6\xf4\x5f\x39\xa1\x4e\x58\xd7\xfb\xe7\xae\x7f\xe1\x84\x3a\xce\ \x5b\xc9\xb7\xd8\x9c\xd8\xcc\x31\x75\x8c\x3c\x79\xca\x75\x39\xe3\ \xf2\xcd\xcc\xcc\xb6\x31\x33\x3f\x13\x65\xb4\x33\x80\x58\x5a\x6b\ \x9e\xca\x3c\xc5\xda\xe4\x5a\xfa\xa5\x3f\x9a\x17\x5a\x31\x25\x3f\ \x85\xbb\x7a\xef\x24\x41\x32\x9c\x73\x9b\xd5\x16\x9e\xcd\x3c\x43\ \xbb\x6a\xb7\x26\x5a\x99\x5b\xc6\x2d\x03\xb7\x30\x33\x3b\x73\x48\ \x1b\x2f\x78\xff\x8d\x37\xde\x60\xc9\x92\x25\x05\xbe\xcb\x6f\x7c\ \xe3\x6e\xc6\x8f\x1f\x1f\x7e\xae\xab\xbb\x9b\xc7\x1f\x7f\xbc\xe8\ \xa2\x2b\x29\x29\x21\x9b\xcd\x16\xb0\xc5\x5b\xb6\x6c\x61\xd9\xf2\ \x65\x5c\x7c\xd1\x25\x06\xb4\x8c\x42\x0b\xb5\x15\xd1\xa3\x23\xc2\ \x30\x4e\xea\x6b\xd3\xd1\x1e\x05\x42\x08\x3a\x32\x2f\xc4\x38\xeb\ \x86\xf6\x9f\x0f\x65\xe3\x49\x68\xf4\x86\xce\xeb\x60\x72\x07\x0c\ \x98\x14\x62\xd9\xee\xde\x93\xb4\xb5\xb5\xd1\x58\x3f\x82\xbf\xf9\ \x9b\xbf\x66\xcc\xd8\x31\xd4\xd6\x54\x23\x4a\x48\x24\x93\xd4\x54\ \xd7\x50\x33\x69\x32\x7a\xe7\x0e\xba\x33\x25\x48\x2e\x8f\xce\xe5\ \x3c\xfb\x4d\x47\x46\x39\x6e\xe4\xd8\xd6\xae\x1b\xee\xec\xd9\x6c\ \x96\x6c\x76\xd0\x5b\x70\x82\xe1\x67\x32\x79\x1f\x89\xa2\x44\x80\ \x54\x3a\x45\x4d\x4d\x0d\xad\xad\x2d\xfc\xfe\x0f\x7f\x60\xca\xe4\ \xc9\x7c\xed\xab\x5f\xe1\xd7\xf7\xff\x2b\x67\xce\x6d\xf3\x9e\xc7\ \x3c\x35\x4c\x9f\x5b\x40\xed\x9a\x58\xdd\xd8\xc1\x75\xe0\xeb\x91\ \x18\xf3\x64\xb3\x19\xd1\x8e\xef\x7f\xf7\xec\xb3\xce\xe6\xdd\x77\ \xdf\x2d\xe8\xf7\x6c\x36\xcb\xc6\x8d\x1b\x43\x87\x7a\x26\x93\x61\ \xc6\x8c\x19\xb4\xcd\x9a\xc5\xf4\x69\xd3\x48\x24\x93\xa0\xc5\x87\ \x97\x9e\x93\x78\x71\xe6\xb5\x82\x45\x07\xb0\x36\xb5\x96\x3f\xa5\ \x1f\x23\x2b\x59\xeb\xfd\x4e\xe9\xa4\x53\x75\xf2\x5e\xf2\x7d\x1a\ \xf3\x8d\xdc\xde\x7f\x3b\x0d\xba\xd1\x62\x2b\xf7\x3a\x7b\x59\x9e\ \x5a\x5e\x70\x4d\x57\x5c\x36\x27\x36\xb3\x3d\xb9\x93\xa9\xf9\x29\ \xa1\x1d\xb8\x28\xb3\x90\x76\xa7\xbd\xe0\xf3\x27\xd5\x49\x5e\x4b\ \xbd\xc6\xac\x7c\xdb\x10\xa9\x2d\x82\x88\xe2\x9d\xb5\xef\xf0\xfc\ \xf3\xcf\x5b\xbf\x71\x1c\x87\xbb\xee\xba\x93\x29\x53\xce\xb0\xc6\ \xf7\x85\xe7\x9f\xa7\xaf\xaf\xcf\xfa\x6c\x53\x53\x23\x97\x5d\x76\ \x19\x33\xdb\x66\x31\xd0\xdf\xcf\xb2\x65\xcb\x78\xfd\xf5\xd7\xc9\ \x66\xa3\x67\x5f\xb4\x70\x11\x67\x9f\x75\x36\xe5\x65\x65\x68\x65\ \x9b\x13\x62\x85\xce\x88\xcd\xb9\x04\xc8\xc6\x37\xa9\x0a\x99\xee\ \x28\x44\x4f\xa2\x90\x6d\xc3\xcf\x57\x7c\xe9\xa9\xa1\x23\x57\x02\ \x7f\x9a\xed\x57\x13\x51\x9e\xbb\xc1\xff\xa3\xfc\x87\xf0\xe0\xa9\ \x62\xde\x85\x17\xf0\xf8\x9f\x1e\xe3\x64\x4f\x0f\x13\x27\x4d\x42\ \x94\x22\x95\x4a\x51\x53\x5d\xc3\x98\x9a\x1a\xca\x0e\xb5\xc3\xc0\ \x00\xdb\xdb\x66\xd2\x5f\x5a\x02\xb9\x1c\x2a\x97\x43\xfb\xff\x99\ \x91\xe0\x62\x40\xa8\x9c\xbf\x93\x99\x6d\x13\xbf\x6d\x88\x42\x89\ \xf2\xda\x18\xb4\x53\x49\xf8\xf7\x54\x2a\x4d\x53\x53\x13\x63\xc7\ \x8e\xe5\x9f\xfe\xf9\x9f\x99\x3e\xfd\x0c\x5a\x5b\x5b\xd8\xbe\x63\ \x17\x2a\xb8\x9e\x32\x9e\x39\x78\xc6\xf8\xbd\x94\xfd\x77\x25\xe6\ \x67\x94\xff\xdd\x00\x42\x79\xd7\x51\x12\xf5\x53\x70\xdd\xe9\x33\ \xa6\x33\x6d\xda\xb4\x4f\x65\xbe\xfa\xfb\xfb\x59\xb7\x6e\x1d\xff\ \xfb\x37\xbf\xe1\xde\x7b\xef\xe5\xc0\xfe\xfd\xfe\x78\x28\xdf\xed\ \x22\xb8\xc5\x22\x70\x81\x87\x32\x7f\x2c\x58\x74\x05\xb6\x90\x73\ \x90\x7f\x2c\xfd\x19\xfb\x9d\x7d\x56\x5b\xab\xa9\xa6\xd2\xad\x2c\ \xfa\x9d\x12\x5d\x42\x93\x6e\xf4\xe7\x81\x42\x29\xa1\xd9\x6d\x1e\ \xf2\x1e\x93\xdc\x49\xa1\xad\x5b\x6c\x83\xdf\xbc\x79\x13\x8f\x3c\ \xfc\x70\xc1\xfb\xb7\x7f\xfd\x76\x66\xcc\x68\x09\xe1\xb2\x12\xe1\ \xf0\xe1\xc3\xac\xf1\xf9\x01\xf3\x75\xdb\x6d\x5f\xe6\xac\xb3\xce\ \x26\x9d\x4a\x51\x51\x51\xc1\xb5\xd7\x5e\x4b\x5b\x5b\x5b\x41\x5f\ \xbe\xf1\xc6\x1b\x5e\x9b\x25\xba\xa6\x98\x63\x1d\x8c\xaf\xf5\x7b\ \xff\xa7\x3f\x3f\xbc\x39\x16\x8d\x81\x84\x63\x6d\xbc\x67\xad\x9d\ \xa2\x4b\x0c\xe7\xbc\xeb\xce\xfb\xdb\xf8\x9b\x35\x54\x47\x4e\xda\ \xe0\xe2\x81\x7f\xcf\x0f\x6c\x16\x3f\xea\xc0\x9b\x68\x8a\xfd\x07\ \xda\xb9\xe4\x92\x4b\xe8\xef\xed\xe1\xb1\x3f\x3d\xc6\xcc\xb6\x36\ \x94\x08\xa9\x4c\x9a\xca\x8a\x4a\x9a\x46\x36\x51\xb7\x7d\x3b\x8d\ \x5b\xb7\x30\x90\x4c\xb1\x6d\xce\x1c\x92\xfd\x03\x8c\xdc\xb4\x89\ \xbe\x92\x12\xf6\x4e\x3d\x23\xb4\xef\xcc\x9f\x22\xc2\xe0\xe0\x20\ \xb9\x5c\x16\x94\x0a\x17\x8a\x67\x1b\xd8\x9d\x83\x78\x13\x01\xdf\ \xe6\x33\x3b\x42\x29\x87\x54\x2a\xc9\xde\xbd\x7b\x71\x73\x39\xae\ \xba\xfa\x2a\x5e\x7e\x65\x11\x23\x1b\xeb\x51\x8e\x13\x12\x0e\xc1\ \x73\x05\x30\x28\x98\x8c\x82\xb2\x7e\x47\xb0\xa0\x44\x85\x04\x81\ \x0a\xde\xb7\xda\x24\xd6\x75\x82\x2c\x82\x99\xad\xad\x74\x74\x1c\ \x1b\xd2\x9f\x57\x70\x7a\x9c\x3c\xc9\xaa\x55\xab\x98\x30\x61\x02\ \xb5\xb5\xb5\xe1\x06\x30\x35\x3f\x95\x26\x77\x24\xa3\xf5\x28\xb6\ \x39\xdb\x8a\x2e\x94\x19\xf9\x19\x4c\x75\xa7\x32\x3e\x3f\x9e\xe1\ \x7a\x38\x27\xe4\x04\x39\xf1\xe0\x58\x5e\xf2\x6c\x72\x36\x71\x61\ \x7e\x1e\x09\x49\x20\x02\x69\x95\xe6\xa2\xdc\x02\xfa\xa5\x9f\x5d\ \x6a\x57\x78\xad\x73\x72\x67\xf3\xad\x81\x6f\x31\x9c\x4a\x50\x2a\ \xdc\x18\xa7\xb9\xd3\x68\xc9\xb7\xb0\xc1\xd9\xc0\x80\x0c\x00\x30\ \x4c\x0f\xe3\x87\xfd\x3f\xe4\xac\xfc\xd9\x28\xf1\xa0\xf4\xee\xdd\ \xbb\xad\xb6\x95\x96\x96\xb2\x68\xd1\x22\x0b\x1a\x8a\x08\xff\xe1\ \x3f\x7c\x8d\x39\x67\x9e\x69\xcc\x33\xef\x59\xb7\x6c\xd9\xc2\xfb\ \xef\xbf\x6f\x5d\x63\xec\xd8\xb1\x5c\x77\xdd\x75\xe1\x3c\x10\xf1\ \xc3\xd0\x94\xe2\xdd\x75\x36\xaa\x48\x26\x93\x9c\x73\xee\x39\xc6\ \x58\x7b\x63\xa1\x08\x16\x53\x90\x62\xa4\xc2\x40\x76\x6f\xec\xfd\ \xb1\x54\xde\xdc\x57\x2a\x42\x56\xca\xbf\x06\xe1\xf8\xfb\xf3\x24\ \x98\x33\x0a\xf6\xf6\xec\xfd\x8c\x50\x33\x34\xae\x0d\xc3\xce\xb7\ \xa7\x54\x18\x84\x6e\x47\xb3\x97\x97\x95\x73\xc6\x94\xc9\xfc\xf3\ \xff\xfa\x5f\x8c\x1d\x3b\x96\x74\x3a\x8d\xa8\x04\xa9\x54\x86\xa6\ \xa6\x26\x0f\x12\x6c\xdc\x88\xce\xbb\x1c\x9a\xd0\x8c\x76\x1c\x5c\ \x25\x90\xcf\x53\xbd\x67\x0f\xe5\x1d\xc7\x38\x51\x35\x3c\x74\x64\ \x6a\xed\x2d\xe8\x81\xc1\x41\x72\xf9\x3c\xe2\x24\x10\x5c\x2f\x10\ \x38\x0c\xbf\x34\x99\x46\x1f\x9b\x6b\x8f\xbd\x0a\x8c\x65\xed\x43\ \x09\x11\xcd\xf0\xe1\xd5\x8c\x1f\x3f\x9e\x17\x5e\x7c\x89\x4b\x2f\ \xbb\x8c\x0b\x2e\x38\x9f\x4d\x9b\x36\x32\x65\xf2\x44\x03\x09\xf9\ \xce\xe2\x98\x37\x46\x5b\x91\xe8\x62\x07\xc8\x69\x23\x2d\x85\xc2\ \x3c\xb5\x20\x48\x5b\x8c\xa0\xc6\x4c\x49\x09\x77\xdc\x79\x07\xb3\ \x66\xcf\x62\xe5\x8a\x15\x6c\xde\xbc\xd9\xa6\xe4\x87\x20\x0b\x9e\ \x7c\xf2\x49\x7e\xf2\x93\x9f\xf8\x31\x99\x50\x2e\xe5\x9c\xab\xcf\ \x41\xe7\xe1\xa5\xe4\x4b\xd6\xe7\xaf\xcc\x5d\xc9\x55\xb9\xab\x48\ \x93\x36\x62\x1c\xa1\x3f\x3b\xc0\xa2\xe4\x42\x16\x25\x16\x01\x70\ \x4c\x1d\x63\x65\x72\x05\x97\xe4\x2f\x31\x20\x60\x92\xcf\xe5\x3e\ \xc7\x3b\xce\x3b\xf4\x48\x0f\x00\x9b\x9d\x2d\x64\x54\xda\x9b\x64\ \x68\xb4\xa8\x10\x82\x9f\x50\xc7\x39\x21\x11\xe4\xbd\x3a\x77\x35\ \x8d\x34\xf9\x93\x52\x8a\xda\x78\x71\x22\xc5\x3b\xbd\x6e\xe3\xac\ \xb3\xce\x89\x71\x17\x1e\x7c\x3f\x7c\xf8\x70\x51\x78\xfe\xdb\xdf\ \xfe\xb6\x68\x88\x5d\xfc\x75\xf8\xf0\xe1\x90\x89\x14\x33\x40\x42\ \x11\x7a\xe0\x30\x62\x6b\xc5\x4f\xf9\x0a\x02\x42\x94\xd8\x41\x16\ \x66\xf8\x64\xd0\x5e\x15\x0f\x2e\x2f\x0e\x2a\x3f\x85\xd5\xb4\xa3\ \x5f\x91\x22\x31\x8a\x00\xfb\xf6\xed\xe7\xe2\x4b\x2e\x65\xcf\xae\ \x9d\xec\xd9\xbb\x97\xb6\x59\x6d\x20\x0e\xe9\x54\x0a\x34\x0c\x0c\ \xf4\x53\x52\x5a\x8a\xd3\xdf\x0f\xb9\x1c\xfd\xc3\x86\xa1\x81\x5c\ \x22\x81\x68\x4d\x62\x70\x90\x4c\x4f\x0f\x5d\x55\x55\xe1\x4e\xa3\ \x14\x64\xb3\x39\x72\xd9\xac\x11\x3e\xa6\x3e\xd3\xe9\x10\x9f\xbf\ \xc1\xbf\x1d\x07\xea\xea\xea\xd9\xbd\x6b\x37\xaf\xbe\xba\x88\x4b\ \x2e\x5e\xc0\xf2\xe5\x2b\xa2\xe8\x89\x22\xc9\x32\x45\x82\xc0\x8a\ \x11\x79\x9f\xea\xb8\x95\x21\xe2\x1d\xe7\xce\x99\xc3\xdc\x39\x73\ \xe8\xea\xea\x62\xfd\xfa\xf5\x6c\xdb\xb6\x8d\x2d\x5b\xb6\x70\xe2\ \xc4\x89\xa2\xcf\x76\xe0\xc0\x01\x36\x6f\xde\xcc\x8c\x19\x33\x8a\ \xb9\x8c\xc3\xd7\xc5\xb9\x8b\xb9\x21\x7f\x43\x61\xbc\x2d\x50\x42\ \x86\x1b\xf2\x37\x30\x20\x03\xbc\xe5\xbc\x05\xc0\xfb\xce\xfb\x5c\ \xea\x5e\x6a\x45\x9f\x96\x52\xca\x35\xf9\x6b\x78\x22\xf1\x84\xb7\ \xb8\xe4\x04\x4b\x12\x4b\xb9\x22\x7f\x85\xc5\xda\xe5\xc9\xf3\x4c\ \xe2\xd9\xf0\xfa\xd5\xba\x9a\xf9\xee\x7c\x0f\x7d\x14\x63\x65\x87\ \x78\x9d\x7d\xf6\xd9\xcc\x9b\x37\x8f\x42\xaf\xb7\xf7\xa3\x98\xff\ \xf3\xc0\x81\x03\x9f\x19\x35\x74\x76\x76\x92\xcb\x66\x49\xa5\x52\ \x05\x4c\x7d\x10\xe1\x23\xb1\xf1\xb4\xe3\x03\xa4\x68\xdc\xae\x0c\ \x39\x33\x86\x7e\x66\x55\x9c\xd5\x0c\x6c\x08\x15\x8b\x9d\x54\x16\ \xf6\x0d\xfe\x0c\x0c\xe6\x98\x3c\x79\x22\xcb\xdf\x5a\xc2\xb5\xaf\ \x2f\xe6\x8e\xef\xfd\x3f\x9c\xf3\xea\x6b\x28\x47\xe1\x6a\x68\x3f\ \x74\x88\xfe\xfe\x01\x4a\xbb\xbb\x41\x6b\x3a\x46\x8d\x42\x44\x38\ \xd1\xd0\xc0\xf1\xda\x5a\xd0\x9a\x44\x36\x1b\x51\xdf\x7e\x4c\x65\ \x36\x9b\xc3\x71\x14\x8e\x72\x78\x27\xf3\x01\xdf\xab\xfa\x2f\xbc\ \x9f\xfe\x28\xb2\x9b\x02\xdb\xce\xb4\xa7\x44\x70\x94\xa0\x1c\x15\ \xe2\x79\x27\x68\xb3\x23\x94\x97\x0f\x63\xd4\x98\xd1\x2c\x5e\xfc\ \x3a\xd5\x55\x55\x4c\x98\x38\x81\xdd\xbb\xf7\x16\xe0\x7e\x25\x4e\ \x04\xb3\x03\x7b\x51\xd9\x98\x5f\xa9\x58\xbf\x18\xff\x36\x21\x71\ \x60\x03\x98\xed\x35\x6d\x50\x11\xa1\xb2\xb2\x92\x0b\x2f\xbc\x90\ \x3b\xee\xbc\x93\x7b\x7f\x76\x2f\x3f\xf8\xc1\x0f\x98\x3e\x6d\x7a\ \xd1\x41\x3b\x74\xe8\xb0\x61\x6f\x06\x6d\xb4\x87\x72\x81\x5e\x10\ \xda\x23\xf6\x78\x45\x36\xfa\xfc\xfc\xfc\xc8\xde\x93\x83\xd6\xf3\ \x06\xb6\xfd\x7c\x77\x3e\xd5\xba\x3a\x22\x29\x9c\x45\xf4\x49\x5f\ \x64\xd7\x28\x61\x59\x62\x19\x87\x55\x74\x1a\x5d\x9f\xbf\x9e\xb4\ \x4a\x59\xb6\xef\x67\x79\xad\x5d\xbb\x96\x2d\x5b\xb6\x78\xd7\x56\ \x12\xda\xb1\xc1\x35\x7a\x7a\x7a\xf8\x3f\x7d\x9d\x38\x71\xc2\xb2\ \xcb\x55\x8c\x2f\x88\x6c\x79\x73\x4c\xa3\x71\x8f\xc6\x5b\x15\x99\ \x13\xd1\x5a\x51\x12\x7d\xee\x34\xc8\x15\x42\x5b\x49\xf9\x37\x80\ \xe8\xc6\x84\x03\xae\xe8\xed\xed\x65\xf4\xe8\x51\x90\xcf\x33\xf0\ \xe2\x8b\xcc\xdd\xbf\x1f\x9d\xcc\x30\x6b\xe9\x52\xa6\x1f\x38\x80\ \x4a\x38\xe4\x35\xf4\x6e\xdb\x86\xea\xf5\x3a\xae\xbb\xae\x2e\xdc\ \x10\xb2\xc9\xa4\xe7\x42\x50\x86\x5d\xa6\x21\x97\x1d\xa4\x66\xdf\ \x5e\x32\xbd\xfd\x38\x8e\x62\x59\x66\x35\xa2\x84\x3f\x96\x3e\xcd\ \x40\x22\x4b\xc2\x71\x70\x12\x0e\x4e\x42\xa1\x12\x09\x9c\x84\x83\ \x38\x09\x9c\x44\x02\x49\x24\x50\xca\x41\x39\x0a\xe5\x78\xff\x16\ \x95\xf0\x26\xbd\xe3\xd0\xd0\x30\x92\xc1\x6c\x96\xf5\xeb\x3f\xe0\ \xec\xb3\xcf\xa2\xdd\x9f\xc8\x4a\x94\x17\x0c\x10\xfe\xf4\x5c\xbb\ \x9e\xfd\xe6\xb7\x4f\x29\xc3\x40\x8f\x08\x15\x2f\x7e\x52\x85\xb6\ \x9f\x84\x8b\x90\x68\x80\x94\x4f\x92\x2a\x41\xf9\xd7\x54\x4a\x85\ \x13\x4d\x29\x85\xc2\xb3\x47\x27\x4e\x9c\xc8\xb7\xbe\xf5\x2d\x32\ \x99\x4c\xc1\xf8\x1c\x3d\x7a\xc4\x58\xd8\x12\xfe\xdd\x7c\xa5\x25\ \xe3\x8d\x23\xc6\x04\xb1\x26\x95\xa2\x44\x4a\xc3\xcf\x0f\x30\xe0\ \x5d\x0b\x7f\xb2\xf8\x9b\x44\x4a\xa5\xb9\xde\xbd\x3e\xfc\x5c\xaf\ \xf4\xb2\x38\xb1\x38\xec\x87\x7e\xfa\x79\x51\xbd\x18\xfe\x7e\xa4\ \x1e\xc9\x39\x9c\xeb\x07\x36\x18\x64\x55\x91\xc5\x97\x4c\x26\x6d\ \xd6\xd4\x75\xf9\xf5\xaf\x7f\xcd\xbe\xfd\xfb\xfd\xb9\x47\xd8\xd7\ \x4a\x14\xf5\xf5\xf5\x05\xd7\xa8\xae\xae\x66\xec\xd8\xb1\x9f\xf9\ \x4f\x2a\x99\x0a\xc9\xaf\x60\x6c\x94\x2a\xb2\x51\x2a\x7b\x91\x05\ \xeb\xc0\x5c\xa4\x0a\x22\x52\x4f\x94\xb1\x30\x4d\x42\xed\x74\xb3\ \x13\x0c\x78\x50\x18\xde\x18\xbd\xbf\x7d\xfb\x4e\xbe\xf8\xc5\x2f\ \xf2\xf1\xc7\x1f\x33\xe2\xfd\x0f\x29\x77\xd2\x1c\x1f\x3d\x9a\x46\ \xd1\x9c\x7d\xf8\x10\xc7\x26\x4e\xe0\xf0\x60\x8e\xe1\xdb\xb6\xe2\ \xbe\xff\x21\xb9\xd9\xb3\xbc\xef\xbb\xae\x17\xa9\x9f\xc9\x20\x5a\ \x53\xd2\x7d\xd2\x6b\x6c\xde\x65\xc4\xfa\xf5\x9c\xf1\xe4\x93\x54\ \x1d\x3c\x08\x22\xdc\xf7\xad\x79\xb4\x9f\x7d\x18\x07\x05\x0e\x3c\ \x52\xfa\x14\xdf\xe8\xff\x5a\xd1\x58\xfb\xf2\x23\x47\x48\xf4\xf7\ \x73\xb2\xb6\x16\x57\x29\x16\xfc\xfa\x7e\xca\xdb\x0f\xb1\xfd\xec\ \xb3\x79\xff\xba\xeb\x41\xbb\x0c\x1f\x5e\x49\x5d\xdd\x08\x56\xac\ \x78\x9b\xaf\xfe\xc5\x5f\xf0\x58\x3e\xcf\xe0\x60\xd6\xb3\x4b\x0b\ \x1c\xe5\x9f\x01\x2e\x89\x10\x0f\x79\x8c\xa7\x92\x98\xb0\xe4\xc4\ \x89\x13\x54\x56\x56\x16\xf9\x8c\x7d\x8d\x4c\x49\x86\xa9\x53\xa7\ \x16\x10\x0a\x25\x25\x25\x46\x96\x42\xf1\xd7\x66\xb5\x89\x0b\xf5\ \x85\x45\x52\x92\xa2\xd7\x26\x15\xe5\x01\x56\x50\x61\x04\x4e\xd8\ \x90\xeb\x3c\xce\x63\x91\x5e\xc4\x41\x39\x08\xc0\x62\x59\xcc\xa5\ \x72\x29\x15\x54\xf0\x8a\x7a\x25\xb4\x01\x01\x6e\x72\x6f\x22\x21\ \x4e\x31\xd4\x5d\xf0\xba\xf2\xca\xab\x78\xef\xbd\x77\xd9\xbf\x7f\ \xbf\xc5\x3e\xfe\xd3\x3f\xfd\x13\x3f\xf9\xf1\x8f\xa9\xaa\xae\xb6\ \x10\x5b\x43\x43\x43\xc1\x35\x9a\x9b\x9b\xf9\xf6\xb7\xbf\x7d\xfa\ \x47\x5f\x3c\x1b\x5f\xec\xb4\x2d\x18\x1a\x35\x4a\xd1\x45\xf1\xe9\ \xdf\xfb\x8c\xd9\x09\x41\x38\x91\x11\x2d\x1e\xe6\x31\x45\x0e\xe4\ \xc1\x6c\x96\x51\xa3\x46\xf1\xfa\xab\xaf\x32\xa6\xaf\x9f\xf6\x39\ \x73\x79\xfb\x9e\x7b\xb8\xe5\x85\x67\x28\xcf\x0e\x32\xed\xf0\x61\ \x7a\x46\x8e\xa4\xaa\xfd\x10\xee\xf1\x4e\xba\x0f\x1f\x0e\x43\x8a\ \x44\x6b\x72\x7e\x34\x41\xd3\xc6\x8d\x1c\x1f\x51\xcf\xf4\x45\x0b\ \xa9\x5b\xb5\x0a\x72\x39\xb4\x1f\x28\xbd\xb4\xf4\x7d\x14\x09\xd2\ \x3a\x45\x4e\x5c\x36\x25\x3f\xa1\xbd\xfb\x63\xae\x5e\xb8\x99\xea\ \xdd\xbb\x71\x93\x49\xde\xbf\xfe\x7a\xa6\xbd\xb6\x98\x51\x1f\x7e\ \x40\x22\x97\xa7\xbb\xa6\x9a\xbd\x6d\x6d\xd4\xef\xd8\x81\xd6\x30\ \xe3\x8d\x37\x39\x3e\x72\x34\xbb\xe6\xce\x41\x94\x4b\xc3\xa8\x66\ \x0e\xec\xdb\x4d\x49\x26\x4d\x6d\x6d\x1d\xc7\x8f\x9f\xf0\xe2\xfa\ \x8c\x1c\x19\x53\x0c\xc9\x92\x80\x89\xc5\xa6\x46\xd4\x8e\x19\xcd\ \xa1\x43\xe7\x7c\x18\x52\xe4\x87\x22\x3d\xf0\xc0\x03\x24\x93\x49\ \xae\xbe\xea\x2a\xa6\x4e\x9b\x1a\x65\x33\x18\x71\x79\xa2\x35\x27\ \x4e\x9c\x60\xc3\x86\x0d\x05\xe3\xd3\xd0\xd0\xe0\xe5\xa5\x49\xf4\ \xbd\xf8\xc2\x7a\x5c\x1e\x67\xa2\x4c\xa4\x49\x8f\x8c\xe2\x51\x0d\ \xa6\x68\x1f\xfb\x78\x5c\x1e\x0f\xdf\x9a\xc8\x84\x18\x2c\x8a\x04\ \x90\x14\x0e\x37\xe9\x9b\xf8\x17\xf9\x17\x00\x06\x65\x90\x97\xd5\ \xcb\x5c\xc6\x65\x2c\x66\x71\xf8\x8d\xc9\x7a\x32\x33\x55\x2b\x51\ \xd6\x7f\x94\xba\x53\x6c\x93\x28\x29\xc9\xf0\xdd\xef\x7e\x8f\xff\ \xfe\xdf\xff\x9b\x25\x2d\x79\xfc\xf8\x71\xfe\xd7\x3f\xfd\x13\x3f\ \xfa\xe1\x0f\x29\x29\x2d\x09\xb3\x2c\x9a\x1a\x1b\x0b\xae\xf1\xfe\ \xfb\xef\xd3\xd9\xd9\x49\x75\x75\x4d\x6c\x80\x6c\x21\xa2\x81\xc1\ \x41\x7a\x7a\x4e\x52\x53\x55\x6d\x88\x73\x61\xb0\x2c\x91\x72\x80\ \x2e\xd8\x2a\x75\x4c\x4d\x20\x9e\x12\x16\x84\x4c\x62\x64\x43\x68\ \x33\x71\xff\xb3\xb9\x13\x46\x38\xf5\x36\xb5\x4e\x84\x7f\x43\x08\ \x20\x8a\xbe\xde\x5e\x7a\xfb\x06\x58\x30\xef\x02\x96\x2c\x59\xca\ \xa1\x2b\xae\xa2\x63\xde\x3c\x32\x99\x34\xe9\x29\x13\xa9\xdf\xfe\ \x09\x55\xfb\xf7\x71\xf8\xbc\xf3\x69\x5a\xb9\x9c\x8a\x03\x07\xd8\ \x39\x7b\x36\x07\x26\x4d\x24\x95\x4c\x81\x40\x4f\x6d\x2d\x63\xd6\ \xac\x61\x58\x47\x07\xcd\xeb\xd6\x52\xba\x6f\x1f\x3a\x9b\xe5\xc8\ \xe4\xc9\xac\xbb\xed\x56\x9c\x7c\x9e\x1f\x7f\xee\x24\x4a\x14\xe7\ \xee\x4e\x92\x4c\x95\xd3\x95\x1e\x64\xc6\xf2\x75\xdc\xf2\xf2\x27\ \x94\x1d\x3f\x4e\x59\x47\x07\x93\xde\x7e\x9b\xe1\x87\xda\x3d\x02\ \x4a\x29\x52\x83\x03\xd4\xee\xda\x0d\x4a\x31\x38\xac\x0c\x71\x35\ \xa3\xd7\x7f\xc8\xee\x39\x67\x32\x38\xac\x9c\x92\x4c\x19\x07\x0f\ \x1e\x60\xe6\xcc\x19\x9c\x38\xd1\xc5\xbe\xfd\xfb\x69\xa8\xaf\xf7\ \x7d\x92\x86\xff\x8e\xe0\xb9\x09\x61\x27\x4a\x8a\xd8\xba\x7e\xcc\ \xa1\x92\x48\x53\xc5\xb4\x21\x82\xf4\x11\x81\x15\x3e\x8b\xb9\xf2\ \xed\xb7\xf9\xf0\xc3\x0f\x19\x18\x18\x64\x60\x60\x80\x64\x32\x49\ \x49\x49\x29\x27\xbb\xba\xf9\x68\xc3\x47\x3c\xfb\xec\xb3\xb4\xb7\ \x17\x3a\xa6\xaf\xbb\xee\x5a\xaa\xab\x6a\x8c\x40\x07\xef\x1e\xcf\ \xc9\x73\x11\xab\x27\x39\x96\xb3\x9c\x3e\xe9\xa5\x44\x95\x90\x92\ \x34\x59\xb2\xec\x93\x7d\xbc\x2a\xaf\xf2\xa0\x3c\xc8\xa0\x44\xd1\ \x1f\x5f\xe0\x46\x46\xaa\xc6\xd0\x45\x13\x6d\xe2\x5e\x5f\x34\x48\ \x03\x1f\xc9\x47\x74\xe2\xc5\x99\xee\x96\xdd\xec\x95\xbd\x1c\x96\ \xc8\xb6\xfb\xa6\x7c\x93\x6a\x6a\x7c\xd7\x8b\xf8\x31\xbc\xde\xcf\ \xf5\xeb\xd7\xb3\x73\xe7\x4e\xeb\x39\xa6\x4f\x9f\x41\x5b\xdb\x4c\ \x26\x4d\x9a\xc4\xaa\x55\xab\xac\xf4\xa7\xae\xae\x2e\x76\xee\xdc\ \xc5\x39\x67\x9f\xe3\xc5\x68\x8a\x50\x51\x51\xce\x8a\x15\xcb\x19\ \x18\x18\x28\x60\x36\xa7\xcf\x98\x8e\x93\x48\x78\xac\xa2\x8a\x32\ \x6c\x7a\x7b\x7a\x58\xb8\x70\x21\x0f\xdc\x7f\x3f\x75\xb5\x75\x34\ \x8f\x6b\xb6\xdc\x45\xe2\xbb\x00\x02\x57\x40\x20\x50\x14\xcc\x01\ \xb3\x7f\x83\x98\x54\xcb\xbf\x1b\xfb\x83\x99\x2f\xe9\xcf\x85\x1d\ \xc7\x77\x9c\x46\xc8\xd8\x10\xc1\x7c\x26\x8f\xd3\x79\xfc\x38\xb5\ \xb5\x35\xf4\xf7\xf7\x33\x98\xcd\x31\xbc\xba\x14\x25\x0e\x99\x64\ \x92\xee\xb1\x4d\x0c\x2e\x5b\x46\xb2\xb7\x8f\x51\x9b\x36\x51\x51\ \x37\x02\x29\x29\xa5\x63\xca\x14\x72\xf9\x3c\x3d\xfd\xbd\x0c\x4b\ \x67\xe8\x19\x31\x82\x1d\xe7\x9f\xcf\x84\x15\x2b\xd0\xf9\x3c\x1d\ \x8d\x8d\x7c\x78\xfd\xf5\x1c\x6b\xf6\x9c\xb2\x2f\xb4\xf6\xe3\x88\ \x17\x5e\xf5\xe8\xcf\x8f\x71\xf7\x3d\xfd\xec\x69\x49\x42\x22\x41\ \x57\x63\x23\x9b\x2f\xbb\x94\xc9\x6f\x2d\xa1\xf2\xc0\x01\x8e\x4c\ \x9a\xc4\xc6\x2b\xaf\xe4\xe4\x88\x11\xcc\x7d\xf4\x51\x46\x6c\xde\ \x0c\xc0\xf2\x6f\x7d\x8b\x69\xaf\x2c\x64\xc4\xe6\x2d\x4c\x59\xbe\ \x9c\x77\x6f\xba\x99\x92\x92\x14\x15\xc3\xca\x39\x7a\xf4\x28\x8d\ \x0d\x0d\xbc\xf7\xde\x7b\x91\x90\x11\xc5\xe2\x19\x4f\x21\x82\x54\ \x90\x42\x52\x8c\x69\x2c\x9e\x86\xbd\x6b\xd7\x2e\x76\xed\xda\x65\ \xc5\x26\x9e\x2a\x06\xb1\xb6\xb6\x96\xd1\xa3\xc7\x18\x2a\x64\x14\ \x49\x56\xf6\x27\xa4\x64\x59\xe4\xff\x77\x2a\xd8\x33\x81\x09\xcc\ \x91\x39\xb6\xc8\x4f\xec\x84\x72\x70\xb8\x59\xdf\xcc\x3f\xf0\x0f\ \x9e\x6b\x83\x3c\x9b\xd9\x1c\xfe\x7e\x0e\x73\x98\x24\x93\x86\x44\ \x5f\x32\x14\x97\x20\xc2\xe4\xc9\x93\xb9\xe3\x8e\x3b\x78\xe0\x81\ \x07\x6c\x28\xbc\x79\x13\x0f\xfe\xfe\x41\xee\xbe\xfb\x6e\x04\x28\ \x2d\x1b\xc6\xad\xb7\xde\xc6\xfd\xf7\xdf\x6f\x7d\xee\xad\xb7\xde\ \x62\xd5\xaa\x55\x9e\x14\xc8\xac\x59\x0c\x0e\x0e\x72\xe0\xc0\x01\ \x0e\x1e\x3c\xc8\xe6\xcd\x9b\xa3\xfe\x14\x8c\x53\x5d\x0a\x52\x89\ \xa4\x08\xf4\x97\xf8\x1c\xf8\x34\x04\x4b\x3c\xcb\xe8\x34\xf3\xf1\ \xcc\x44\x08\x53\xbc\x25\x0c\x97\x42\xd3\xd1\xd1\x41\x5b\xdb\x6c\ \xfa\xfa\x7a\x11\xe5\x90\x2e\x2d\x45\x9c\x04\xa9\x4c\x1a\x11\xa1\ \x7d\xea\x54\x46\xaf\x5e\xcd\x98\xd5\xab\x91\x7c\x1e\x35\x79\x12\ \xb9\xda\x5a\x94\xa3\xc8\xe7\x35\x7d\xbe\xdc\xc3\xd6\xcb\x2f\x67\ \xeb\xe5\x97\x93\xcb\xe6\xc8\x66\x07\x3d\x07\xa8\x9f\xaa\xb1\x39\ \xf1\x31\x8e\x38\x8c\xef\x48\x52\xe2\xf6\x30\xb9\x5d\x58\xd2\xea\ \xf0\xe6\x79\xf5\xb4\x5d\xf8\x9f\xd1\xb8\x1c\x6a\x9b\x8d\xb8\x39\ \x06\x86\x95\x85\xf3\x6f\xdd\xd7\xbe\xc6\xd8\x55\xab\x39\x3a\x61\ \x3c\x9d\xcd\xe3\xd9\x72\xf5\x95\xd4\x6d\xfb\x84\xf1\xab\x56\xd1\ \x5d\x5d\x47\xfb\x39\x73\xb8\xe0\xdd\xf7\xe8\x6f\x99\x42\xed\xb8\ \x09\x0c\x0c\x0c\xa0\x44\xe1\x6a\x37\x9c\x80\xda\x0c\x1b\xb2\x7c\ \x3b\x14\x8a\x68\xea\x28\xae\x55\x62\xe2\xbd\x3a\x72\x1a\x7d\x2a\ \xb5\xfe\x69\x81\xbf\x77\xdc\x71\x07\xe9\x74\xda\xca\x9e\x08\xa1\ \xaf\x36\x07\x36\x41\x8e\x4f\xcf\x70\xaf\xa4\x92\xbf\x94\x6f\x87\ \x7e\x41\x33\x3e\x2e\xc8\xc4\x0f\x22\xaa\xa6\xcb\x74\x5a\xdc\x16\ \x3e\xe2\xa3\x78\xe0\x17\x37\xcb\xcd\x76\x3a\x19\x86\x50\xd0\x10\ \x4b\x2f\x3a\x25\xe0\xfc\x0b\xce\xe7\x60\xfb\x41\x5e\x78\xfe\x05\ \xeb\x33\x2b\x57\xae\xa4\xa6\xa6\x96\x9b\x6e\xba\x09\x44\x73\xfe\ \x79\xe7\xb1\x74\xd9\x52\x36\x6f\xda\x5c\x10\x99\xb2\x66\xcd\x9a\ \xa2\x91\x2d\xe6\xfd\x82\x43\x25\x80\xe7\xda\x4c\x68\x35\xb4\x3a\ \xad\x84\x92\x7a\x2b\xb6\x00\x00\x20\x00\x49\x44\x41\x54\x8e\x58\ \xac\x72\x81\x58\x54\x4c\x13\x49\x9f\x5a\xca\x78\x68\x56\x13\x65\ \x30\x5b\x2a\x8a\x12\x11\x5f\x8c\x34\xa0\xa8\x4f\x74\x75\x53\x52\ \x5a\xca\xc0\xc0\x20\xc9\x54\x09\xc9\x64\x0a\xc7\x49\x90\x4e\x26\ \xd1\x08\x27\x1a\x9b\x10\xad\x49\xf5\xf4\x90\x3c\x79\x12\x32\x19\ \xca\xaa\xaa\x48\x25\x53\x38\x8e\xe7\x90\x1f\xc8\x66\xc3\x9c\x31\ \x5c\x17\xe5\x38\x28\x71\x50\x8e\x20\x8e\x62\x40\x0d\x92\x10\x87\ \x4b\x2a\x6f\xe6\x8d\x1f\xfd\x88\xd6\xe9\xdf\x26\x81\xc3\x81\xb2\ \x1e\x7a\x9d\x5e\x12\x2a\x41\xbe\x6c\x18\xb9\xf2\x4a\x8f\x9d\x72\ \x1c\x1c\xc7\x21\x57\x51\xc9\x27\x57\x5e\xc1\xb1\x89\x93\x50\x4a\ \xe8\x9c\x34\x85\x77\xee\xb8\x1d\xed\x24\x99\xb6\x70\x11\x57\xff\ \xed\x7f\x65\x54\x36\x4f\xfe\xe4\x49\x2a\x2a\xca\xc9\xe7\x5d\x2f\ \x8a\xc1\x71\xa2\xb0\xac\x80\xe1\xc3\x67\xbe\x42\x8a\x5b\x45\x61\ \x44\xca\x0f\x13\x0b\xd8\x3b\xbf\x4b\x4d\x78\x1e\xba\x1f\xfc\xef\ \xfd\x5b\xaa\x33\x89\x08\xd7\x7f\xee\x7a\x5a\x66\xcc\xf0\x99\x34\ \x09\x19\xd8\x90\x91\x35\x5e\x7f\xed\xfc\x35\x35\xd4\x9c\xf2\x9a\ \x13\x99\xc8\x7f\x75\xfe\x2b\x75\xce\x88\x88\x36\x0f\x42\xdb\x02\ \x66\x57\xa9\x30\xb2\x43\x89\xf0\x45\xf5\xc5\x82\xeb\xcc\x93\xf9\ \x8c\x72\x46\xd9\xfd\x63\xb0\xc1\x4a\x49\x51\x92\x25\x8a\x04\xf2\ \xfe\xdc\x74\xd3\x4d\x9c\x75\xd6\x59\x05\x9f\x7b\xe1\x85\xe7\x59\ \xb6\x6c\x49\xf8\xac\xff\xf1\x3b\xdf\xe5\xc2\x0b\x2f\x3c\xed\x3e\ \x54\x3e\x3b\x8f\xcf\x44\x7a\xd0\x51\x59\x63\x14\x8c\x53\x00\x97\ \x25\x60\x2c\x0d\x17\x01\x3e\x2b\x1d\xba\x71\x44\x85\x51\x55\x60\ \xb0\xcd\x9c\x26\xab\xa9\xa4\x48\x10\x74\x01\xe6\x14\xb2\x83\x59\ \xd2\x99\x34\x83\x83\x03\xa4\x33\x25\x24\x12\x49\x34\x0e\x2a\x91\ \x40\x80\xee\xfa\x11\xf4\x56\x54\x50\xda\xd1\x81\x76\x5d\xb4\xeb\ \xe2\x38\x0e\x65\xa5\xa5\xf4\x0d\x0c\x78\x69\x3d\x5a\x93\xcd\xe7\ \x70\x9c\x04\xda\x51\xc4\x5d\xd9\xae\xb8\x38\xe2\x90\x56\x19\x7a\ \x47\x8e\xe4\x24\x27\xc3\xbc\x2c\xa5\x1c\x3f\x86\xc2\x3a\x60\xac\ \x5d\xca\xd1\xe0\x8a\x03\x5a\xd3\x3e\x7b\x0e\x1f\xef\xdd\xcf\xf8\ \x37\x96\xe0\xa2\x18\x6c\x6d\xa1\xaf\xae\x8e\x64\x32\x49\x3e\xef\ \xe2\xba\x1a\xc7\x51\x14\x64\x17\x2b\x6c\xab\x5a\x8a\xb8\xd7\x85\ \x21\x92\x67\xa2\xf7\x83\xdd\xf0\x7b\xdf\xfb\x1e\x7b\xf7\xee\xe5\ \xdd\x75\xeb\x58\xf7\xee\xbb\x05\xb6\x4f\xfc\x35\x6b\xd6\x2c\xbe\ \xf4\xa5\x2f\x31\x6a\xd4\x68\xeb\x58\xb3\x40\x92\x00\x79\x23\x46\ \xd2\x99\xc8\x3f\xca\x3f\xf2\xba\xfb\x3a\xab\xf4\x2a\x0e\xea\x83\ \x0c\x32\x48\x25\x95\x4c\x92\x49\x9c\xa7\xce\x0b\xe1\x65\xbc\xe5\ \x31\x7d\x64\x8b\xe2\x1c\xa7\xc7\xd1\xe8\x36\x72\x10\x8f\xe1\x4c\ \x92\xe4\x26\xe7\xc6\x42\xd9\x84\xf8\x14\x1a\x2a\x48\x5a\x99\x10\ \xcf\xe1\x9b\xdf\xfc\x26\x47\x8f\x1e\x65\xc7\x0e\xdb\x2e\xfa\xdd\ \xef\x1e\xa4\xa6\xa6\x96\xd6\xd6\x56\x2a\x2a\xca\xb9\xe7\x9e\x7b\ \xb8\xf0\xc2\x0b\x79\xf8\xe1\x87\xd9\xbb\x77\xef\x90\x51\x3f\xf5\ \xf5\xf5\xcc\x9d\x3b\x97\x33\xcf\x3c\x93\x89\x13\x27\xc6\x74\x7c\ \x24\x96\x0e\x6c\xe7\x21\x17\x2d\x15\x50\xe0\x64\x8f\x3d\xa7\x39\ \x57\x4e\x81\x4c\x4f\x99\x81\x1e\xa4\x88\x60\xa5\x01\x45\xd8\xc6\ \x53\xe6\xf5\x56\x7a\x49\x49\x09\x4a\x39\xde\xc2\xf3\xe3\xf8\xf2\ \xe9\x34\x9d\x63\xc7\x52\xda\xd1\xe1\xc5\x5c\x0e\x1b\xc6\x60\x69\ \x09\x4a\x29\x4a\x33\x69\x06\x07\x73\x64\xdd\x1c\xa2\x05\x57\xbb\ \xde\x82\xf2\x19\x21\x80\xdd\xec\xa3\xdd\x39\x42\x9a\x34\x75\xca\ \x33\xda\x2b\x75\x25\x09\x49\xa0\x05\x5e\x4b\x2c\xe1\x66\x7d\x9d\ \x2d\x2d\x1e\x2e\x3c\xc1\xf5\x43\xb5\x94\xeb\x67\x56\x03\x5b\xae\ \xff\x3c\x47\x26\x9c\x41\xbe\xb2\x94\x81\xc9\x53\x49\xd1\xef\xe3\ \x0e\x6d\xa5\xa9\xd8\x49\x38\xd8\x32\xc5\x86\x51\x15\x66\x47\x68\ \x33\xfb\xdb\xd0\x34\xb1\x74\xd6\x22\x19\xb9\x31\x63\xc6\x30\x66\ \xcc\x18\x6e\xf8\xc2\x8d\xf4\xf5\xf5\x71\xec\x58\x07\x9d\xc7\x3a\ \x39\xd6\x79\x8c\xfe\x81\x01\x6a\xaa\xab\x19\x51\x3f\x82\xba\xba\ \x3a\x4a\xd2\x19\x5b\x40\xc7\x44\xba\x43\xc2\x1a\x21\xad\x32\x5c\ \xe3\x5c\xc3\x35\xfa\xda\x42\xf9\x78\x6d\xa7\x96\x88\xa5\xff\xe9\ \x67\x6c\xc4\x61\x98\xc0\x07\xf9\xf5\xe1\xa2\x03\xb8\xd2\xb9\x92\ \x1a\x55\x6b\xa5\x2e\x05\xe1\x71\xa1\xc2\xb6\xc0\xd7\xbf\xfe\x75\ \x6e\xbf\xfd\xeb\xc6\xfc\x31\xfa\xc5\x60\x92\xd3\xe9\x34\x7f\xf7\ \x77\xff\x5f\x04\xf9\x74\x74\x3d\x33\x5f\x47\x03\x33\x66\xcc\xe0\ \x7f\xfc\x8f\x7f\x20\x9b\x1b\xe4\xe0\x81\x76\x0e\x1c\xd8\x4f\x57\ \x57\x17\xc3\x87\x0f\xa7\xba\xba\x9a\x9a\x9a\x1a\xaa\xaa\xab\x0a\ \xb3\xf3\xfd\x36\x88\xc1\x20\x9b\x50\x73\x88\x94\xdd\x68\x04\x45\ \xc7\xd2\xc9\x02\xf9\xfb\x40\x42\x51\x1b\x72\xf2\xa7\x95\x8f\x87\ \xaf\xbe\x15\xa8\x3d\x88\x9d\x13\xe6\xe3\x64\xd7\xf5\xe4\xf6\x02\ \xd9\x05\x95\x48\xe2\xe6\xb1\x12\x05\x7b\xeb\xea\xbc\xd4\x1e\xad\ \xe9\x2f\x2f\x27\x5b\x5e\x19\xaa\x02\xa7\xd3\x29\x12\x79\x87\xac\ \x7f\xf2\xc5\xf5\x20\xdb\xe5\x08\x8e\x4a\x30\x5d\x4f\xa6\x51\xea\ \xc3\x1e\xb9\x80\x73\x58\xa5\xd6\xb1\x4e\xad\x67\x5e\xfe\x5c\x1a\ \xa9\x37\x85\xd0\x6d\x69\x52\x2d\xe4\x45\xc0\x8d\x32\x75\x8e\x4c\ \x9f\x46\xc2\x11\x86\x97\xa4\x49\x2b\x87\x5c\x3e\x4f\x3e\xe7\x8b\ \x16\x29\x65\x99\x6e\x21\xed\x6c\x48\x89\xc7\x4f\x36\x2f\xae\x34\ \xca\xbc\x0e\x05\x9a\x0c\xdd\x27\x31\x0c\x07\x3b\x91\x52\x53\x3a\ \xac\x94\x61\xc3\x4a\xbd\x40\x04\x1d\x65\x44\x9b\xb1\xa8\xc5\xe4\ \xea\x22\x89\x72\x55\x40\x5b\x07\x91\x2c\x41\xee\x5e\x90\xde\x65\ \xee\x1d\x86\x42\xa4\x95\x1e\x65\xca\xf7\x8b\x91\xf2\xe4\xe2\xf2\ \x44\xfe\x89\xf0\x1e\xc3\x18\xc6\xf5\xce\xf5\x96\x4f\x31\x12\x3b\ \xc2\x12\x90\x0a\x12\xd4\x45\x6b\xb4\x52\x86\x6a\x97\x32\x14\xba\ \xb1\x64\xf4\x4d\xc5\x11\x1d\xb3\xbb\x55\x98\x3b\x08\xa9\x54\x9a\ \xe6\xb1\x63\x68\x6e\x1e\x6b\xe7\x88\x15\x51\xff\x0b\xfb\xd5\x84\ \xe6\x62\x4a\x43\x44\xb2\x0e\xb6\xc4\x61\x4c\x1d\x5a\xc5\x35\x75\ \xc4\xaa\xbf\x10\xe8\x6a\x6a\x39\xcd\x13\x2f\x9c\x1b\x5a\x86\x64\ \xe5\xb4\x76\xe9\xed\xed\x25\x93\xc9\x90\x4c\xa5\x70\x54\x0a\x57\ \xe7\x2c\xa9\x80\xce\x09\x13\x22\x96\xad\xbc\x3c\x92\xd8\xd3\xde\ \x89\x19\x88\x1a\xe5\xf2\x79\x6b\xf1\x08\x8a\xc3\x1c\xc5\x11\x87\ \x52\x4a\x51\x4e\xd4\x51\x0b\x38\x97\x77\xf0\x9c\xca\xcb\x9c\x55\ \xdc\xaa\xbf\x80\x1b\x09\x76\xfb\x93\x44\x87\xe5\x16\x94\x0b\x5a\ \x09\x6e\x20\x53\xe1\x6a\x94\x72\x48\xa7\x93\x94\xa7\x4b\x38\x79\ \xb2\x07\x51\xe2\xb9\x38\x8a\x38\x7d\xad\x8c\xee\x21\xd8\xb9\xa2\ \x99\xd7\xd6\xf7\x8b\xf5\x63\x90\xa1\xae\x8d\x05\x12\x73\xd0\xaa\ \xb8\xe3\x30\xbe\x07\x17\xd7\xad\x8c\x20\x95\xb2\xfd\x78\x31\x81\ \x1e\xb3\x4c\xcc\xd0\xa6\x85\xf7\xc6\xba\xfc\x3a\x76\xea\x08\x16\ \x7f\x3e\xf1\x79\xca\x9d\xf2\xa1\x89\xdb\x98\xdc\x7b\xa1\xe3\x3a\ \x26\x34\x65\xc6\x0a\x9b\x40\xc3\xf0\xb9\x15\xd1\xaa\x2a\x1a\x84\ \x50\xf4\xe7\x29\x1c\xdd\xa1\x96\x0a\x3a\xa6\xbf\x59\xac\x32\x8e\ \x7c\x2a\xab\x69\x09\x20\x7f\xf6\x13\xcf\x2f\x05\xa1\x75\x41\x63\ \xcc\xed\xbf\xa4\x24\xc3\x91\xc3\x47\xc8\x64\x32\x64\xd2\x29\x12\ \xc9\x04\xd9\xbc\x4b\x56\xe7\x18\x44\x93\x24\x41\xae\xac\x8c\xc1\ \xd2\x52\x52\x27\x4f\x7a\xcc\xa6\x48\x98\x41\x16\xf5\x81\x62\x3b\ \x3b\x48\x91\x64\xac\x1e\x1d\x2a\x06\x6f\x64\x1b\x09\x71\xa8\xa4\ \x02\xc7\x90\x59\x6b\xa0\x8e\x79\xfa\x1c\xde\x96\xb5\x7c\xc4\x16\ \x3e\xa7\x7b\x29\x97\xb2\x48\x2a\x42\x04\xe5\x17\xe8\x70\x83\x29\ \xea\xfa\x92\xe3\xfe\x86\x92\x48\xa5\x49\xa7\x12\x54\x0e\xaf\x60\ \xd3\xa6\x2d\x24\x12\xbe\xc1\xad\x6d\xbd\x0d\xa2\x1c\x87\x48\xce\ \x21\x94\x44\xb7\x45\x7e\xc4\x90\xa7\x0b\x77\x7c\x93\x19\xc3\xc0\ \xa5\x71\xa1\x24\x2b\x88\xda\x50\x4b\x36\x4f\x13\xab\x02\x8f\x77\ \xff\xed\xf9\xed\xdc\x3b\xf0\x33\x8e\xe9\x63\xd6\x18\xde\xd2\x77\ \x8b\xe7\x9e\x20\xc5\xd5\x89\xab\xf9\x72\xfa\xcb\xb6\xd9\x60\xd8\ \xc2\x9e\xa0\xab\x0a\xab\x05\x69\xad\xf9\x63\xf6\x0f\xac\xc8\xad\ \xe4\x04\x27\x86\x9c\x64\x8f\xe5\x1e\x63\x69\x7e\x29\x3f\x49\xff\ \x35\xd5\xaa\x8a\x02\x81\x4e\x9b\x24\xb5\xd3\xba\x35\x14\x88\x2d\ \x19\x4f\xa7\x63\x76\xb5\xa5\xc8\x1d\x5e\x4e\x1b\x0c\x65\xfc\x66\ \x26\xa2\xf5\xaf\x61\x96\x07\xd3\x31\xe7\x39\xb1\x54\x94\x80\xa1\ \xd6\x46\xe1\x1d\x31\xe6\x40\x61\x69\x23\x62\xe8\xbc\xc0\x3c\xf8\ \x74\x56\x33\x88\x51\x0c\xf3\xed\xfc\x18\xb6\x90\x92\xf5\x58\xab\ \xb2\xb2\x32\xda\xdb\x0f\x91\x4e\xa5\x29\xc9\xa4\x48\xa6\x4a\xd8\ \x2d\x7b\xf9\x79\xee\xb7\xbc\x28\x5e\x3c\x1f\x22\x1c\x99\x35\x0b\ \x44\xe8\x9c\x3c\x39\x8c\xff\x54\x4a\x21\x8e\xc3\x4e\xd9\xc7\x62\ \x59\xce\xef\xe4\x4f\xfc\xab\x3c\xcc\xdb\x6a\x2d\xa2\x04\xc7\x71\ \x18\x54\x83\x24\x24\xc1\x19\xce\x04\x2f\xee\x52\xbc\x80\x69\x11\ \x87\x1b\xd4\xd5\x4c\x92\x09\x38\x92\xe0\x41\xf5\x38\xfb\xa5\x1d\ \xe5\x28\xef\x04\x55\xe2\xe5\xd8\x39\x41\xa0\xb3\xe3\x33\xb3\x0e\ \xe0\xa0\x51\x64\x4a\x4a\xc8\xa4\x92\x54\x94\x97\x73\xe8\xf0\x11\ \x4a\xd2\x99\x28\xe3\x43\x79\xd9\x11\x18\x81\xb3\x41\xa0\x74\xd8\ \x17\xca\xc8\xcf\x33\x03\xa5\x89\x58\x4e\x33\x98\x56\x59\x4e\xd7\ \x28\xc0\xda\x0a\xc2\x55\x51\x3c\x6c\x70\x7f\x2b\xa7\xcf\x67\xdd\ \x30\x98\xc7\x27\xb2\x4f\x16\x2c\x3a\xcb\x3d\xc1\x20\xcf\xe5\x9e\ \xa3\x8b\xee\x88\xad\x8d\x5f\x47\x29\x2b\xf0\x7b\x1f\xfb\x79\x39\ \xf7\xca\x29\x17\x1d\x80\x8b\xcb\x3e\xbd\x8f\xd7\xf2\xaf\x1a\x31\ \x95\x86\x03\x3a\x64\x44\x0b\x13\xab\x83\x20\x71\xaf\xb3\x88\x92\ \x98\x95\xcf\x3a\x1a\x4c\x72\xd0\x97\x28\x33\x88\x3b\x48\xc2\xf1\ \x99\x45\x23\x41\x15\x89\x33\x91\x51\x12\x72\x94\xfd\x22\xbe\x1f\ \xd1\xc8\xbd\xf4\xd1\x9e\x32\x12\x97\x83\xf9\x8a\x3f\xe7\x31\x72\ \xf9\xc2\x6b\x1b\x6c\x28\xaa\x30\x90\xfa\xdf\xc0\x6a\x16\xd6\x0a\ \x33\x51\x52\x79\x79\x05\xbb\x76\xef\x25\x97\xcf\x53\x36\xac\x84\ \xfe\x94\xf0\xdb\x9e\xc7\x18\x96\x4d\xb3\x87\x7d\x68\x81\x76\x0e\ \xb3\x75\xde\x48\x2a\xe7\xdd\x45\xbd\xae\x0d\x0d\xd9\xe3\xba\x8b\ \x47\xf4\x53\x1c\xa1\x83\x7e\xb2\x24\xc5\x0b\x98\x5d\xc4\x12\xce\ \x55\x73\xc9\x91\x23\xe1\x7a\xcd\x9b\xaa\xa6\xe0\xe2\x5a\x8e\x69\ \x01\xee\xe1\x2f\xf8\x79\xfe\x7e\x3a\xa4\x93\x07\x78\x98\x33\xa5\ \x8d\xf9\x72\x1e\xc3\xa9\xc4\x05\x76\xeb\xbd\x24\x24\x49\x83\x34\ \x78\x03\xec\xba\xe1\x24\x2e\x2b\x2b\xa5\x24\xe3\x90\x4e\xa7\xf9\ \xe4\x93\xed\xd4\x8d\xa8\x45\x44\xe1\x48\x31\x18\x54\x4c\xa5\xd8\ \x1f\xf8\x02\x8b\x5c\x4e\x1d\xe3\x67\xb1\xa4\x46\xbf\x16\xa0\x49\ \xc1\x02\x1b\x71\xfe\xed\x34\x0b\x25\x3a\x7e\x10\x77\x51\x49\x9f\ \xf0\x3e\xbe\x4c\xae\x9c\xde\xc5\x03\x82\xcd\x94\x57\x56\x71\x86\ \xd0\x84\x8f\x9f\x12\xcc\x28\xf2\x29\x71\x95\x56\xca\x8e\x14\x84\ \x77\xc5\x9f\x51\xc7\x99\x60\xe3\x79\x6d\x29\x42\x29\x48\xf1\x11\ \x31\xae\x29\x45\x64\xf9\x45\x2c\x3d\x1c\x89\xc9\xe7\x73\xba\x50\ \x33\x2c\xaa\x67\x4c\x00\x6d\x8a\x36\x0a\x54\x94\x97\x73\xe2\xf8\ \x71\x8e\x74\x1c\xa3\x6a\x78\x05\x6f\x67\x77\x32\x3c\x55\x45\x57\ \xb6\x9b\x81\x7c\x8e\x3f\xca\xe3\x1c\xe6\x28\xae\x76\x71\x71\xb9\ \x45\x3e\xcf\x38\x19\xc3\x20\x59\x1e\xcb\x3d\x43\xa7\x9c\x20\x49\ \x0a\x2d\x8a\x5b\x9d\x2f\xf0\xc7\xfc\x13\x20\x9a\x83\xea\x30\x8e\ \x56\x24\x54\x92\x34\x49\x2f\xc5\x27\xd0\xf1\xd5\x18\x4c\x94\x70\ \x91\x5c\xc0\x73\x7a\x11\x1a\xcd\x7b\x6c\x64\x8b\xde\xc1\x19\x6a\ \x12\xc7\xf4\x09\x3e\xd6\xbb\x71\xb5\xe6\x76\xf9\x32\xa3\x19\x05\ \x92\x20\xab\xb3\xf4\xa7\x72\x94\x95\x66\x18\x56\x9a\xa0\xaf\x7f\ \x80\x3d\x7b\xf7\x72\xd6\xdc\xd9\xe1\x86\x63\x3a\x57\x83\x02\x9a\ \x18\x75\xd8\x2c\x75\x2a\x4b\x3b\x58\x47\x0a\xd8\x21\xec\x34\xb4\ \x39\x88\x12\x78\x35\x71\x8d\x47\xc3\xa6\x36\x64\xf0\x6d\x46\x24\ \xce\xf5\x0b\xb7\x64\x6e\x61\x6f\xef\x5e\x8e\xe8\x23\x45\x07\xb8\ \x4a\xaa\xb8\x2a\x75\x35\x15\xaa\x22\x9a\x4c\x5a\x17\x3e\xa7\x44\ \x95\x62\xc7\xca\x58\xae\x49\x5d\xcb\x6b\x83\xaf\x92\x65\x68\xf9\ \x88\x14\x29\x26\x38\x13\xb8\x3a\x7d\x75\xa4\x57\xa3\x05\xf1\x89\ \x26\x15\xc2\xba\x80\xa9\x31\x98\x4f\x43\x7e\xdd\x7c\xde\x90\x5c\ \x29\xa0\xf2\xe3\x32\x86\x3a\x16\xe4\x41\x28\xc1\xa7\x8d\x1a\x19\ \x56\xbe\x1d\x51\xad\x3b\x2d\x51\x62\xb2\xb6\xc6\xcb\x94\xc6\x37\ \x96\x8e\xe1\x2c\x0f\x48\xb4\x50\x9d\xd4\x48\x0a\xb7\x8a\xaa\x9c\ \x42\x66\x2c\x31\x54\x5a\x10\x81\x4e\x86\x55\xc5\x35\xe8\x4d\xef\ \x46\x55\xd5\x55\x88\xc0\x47\x1f\x6d\x60\xfe\x05\xe7\x50\x71\xe4\ \x00\x33\x2a\xce\xa0\xf2\x48\x15\x9b\x06\xd6\xd1\x51\xd2\x89\xa0\ \xa8\xa1\x8a\x0e\x8e\xf1\x78\xfe\x05\xbe\x9c\xf8\x02\x4b\xdd\xd5\ \x9c\x50\x27\x11\x1c\x6e\x57\xb7\xd1\xe0\x78\x45\x38\x4a\x75\x09\ \x83\x0c\xb2\x49\x3e\xa6\x4a\x2a\x49\x68\x27\xcc\x44\x0f\x3b\x33\ \xb4\x3b\xbd\xa6\x9d\xa9\xda\x98\xcb\x2c\x9e\xcf\x2f\x62\x1d\xeb\ \xe9\x67\x90\xf7\xd9\xe8\xb3\x61\x0e\x22\xf0\x70\xf6\x59\xbe\x22\ \xb7\xf0\x4c\x7e\x11\x3b\xb3\x07\x98\x3d\xac\x95\xd6\xb2\x51\x54\ \x94\x37\xf1\xe1\xfa\x4d\x74\x77\x77\x53\x5f\x5f\x6f\x64\x27\x1b\ \x0c\x97\x48\xd8\xf1\x62\xc9\x7e\x47\xee\x16\x53\xfc\x46\xfc\xc2\ \x9a\x9e\x54\xa7\x84\x82\x48\x81\x0c\x62\x30\x40\x62\xe8\x62\xea\ \xa0\x70\xa2\x69\x1d\x2a\x8b\xbf\xf4\x15\xb1\x54\x54\x9b\xd3\xff\ \x33\x45\x4d\xe1\x37\x15\xbf\xb1\xec\x0d\x6d\x31\x96\x12\x53\xcb\ \x32\x94\xa2\x45\x83\xe1\xf2\x0f\x5d\x0b\x02\x77\x95\xde\xc9\x5d\ \xa5\x77\xda\x64\x9a\xb1\xcd\x84\xda\x99\xda\x2c\xc2\x29\x61\xa6\ \xbe\x4d\x34\x05\x63\x87\xa1\x6c\xad\xac\x40\x73\x54\x6c\xb1\xc5\ \x8a\xcd\x60\x04\x26\x60\x16\x01\x8d\x3f\xa1\x18\xa5\x52\x75\x2c\ \x63\x3c\xb0\xd3\x4c\x3f\x9d\xf6\x4c\x8b\x42\x89\xc7\xc8\x2e\xb4\ \x7d\x94\xb1\xd0\x32\xad\x8d\x76\x48\x81\x3b\xea\xb4\xfd\x78\x85\ \x2c\x90\xb6\xe4\xbb\xd1\x9a\x61\xa5\xc3\x18\x31\xa2\x96\x77\xd6\ \xae\xe3\xca\x2b\x2e\x61\xd4\xd1\xe1\xdc\x5a\x77\x03\xdd\x27\xfa\ \xc8\x0e\xf4\x71\xa4\xf4\x63\xae\x95\xcb\x39\x43\x4d\xe2\xe1\xec\ \x53\xec\x75\xf6\xf3\x90\xfb\x4c\xb8\x78\x2e\x95\xf9\x8c\x54\x8d\ \xe4\xb5\x07\x23\x27\xaa\xf1\x6c\xe5\x13\x4a\x24\x43\x27\x27\x70\ \x48\x50\x2f\x75\x3e\x4e\x36\xfd\x2e\xa6\x9d\xe1\xbd\xff\x79\x75\ \x0d\x2d\xee\x74\xde\xd5\x1f\xe1\x90\xa0\x42\x57\x50\x4f\x3d\x2f\ \x65\x5f\xe7\x98\x74\xf3\x60\xee\x71\x06\x5d\x8d\x42\x71\x66\xdd\ \x2c\x3a\x52\x07\x51\x25\x63\x59\xf7\xee\x7b\x0c\x1f\x3e\x9c\x61\ \xc3\x4a\x86\xc4\x3a\x76\x25\xd2\x42\x28\x62\xfb\x78\x0c\x68\x13\ \x63\x86\x4d\x38\xa2\x83\xe2\x1b\x81\xae\x48\x81\xf3\x36\xee\xc8\ \xf6\x2b\xca\x8a\x46\xc7\x3d\x4b\x12\x73\xcb\xc5\x00\x96\xc4\xe0\ \x64\x9c\xd3\xa4\x00\x1e\x15\xfa\xfa\xec\x5a\x88\xa6\xf4\xbb\xb6\ \xae\xaf\xa0\xb0\x7d\x56\xe7\x19\x4c\x9f\x18\xa7\x88\x49\x2e\x69\ \x29\xea\x41\xb3\x61\xa6\xc9\x17\xda\xf7\xd1\x31\x6f\x76\xb4\x16\ \x94\xe5\x4f\xf5\x60\xb2\xad\x53\x8c\x0e\x6c\xc7\x68\x43\xd1\xb1\ \x0a\xbc\xa1\x16\xb0\x26\xd6\x8e\xa1\x7c\x7f\x9f\x39\x2d\x48\x61\ \xd6\xe1\x36\x7d\x1a\x91\x53\x5d\x51\x5a\x56\x4a\x73\xf3\x58\x56\ \xae\x5a\xcb\xee\xdd\xfb\x18\x37\xbc\x09\xd2\x95\x6c\x1f\x7e\x88\ \x8b\x3a\x2f\x61\x84\x7b\x05\xe9\x94\xf7\x08\x97\x24\x16\xf0\x4a\ \xfe\x75\xda\x39\x4c\xb5\x0c\xe7\x02\xe7\x6c\x5a\xd4\x14\x5c\x4d\ \xb8\xab\x4c\xd0\xcd\x6c\x77\x77\xb1\x89\x8f\x71\x71\x49\x4a\x82\ \xcf\x27\xae\x42\x19\xf9\x5d\x41\xd2\x2c\x11\xe2\x0d\xd3\x6d\x26\ \xa8\xf1\x8c\x93\x71\x68\x57\xc8\xbb\x1a\x57\x60\x7a\xfe\x20\x2b\ \x72\xeb\x70\xb5\x90\xce\x27\xf8\x66\xc5\x3d\x9c\x5b\x37\x01\x9d\ \xee\xe6\xe4\xb1\x93\xac\x5d\xb7\x8e\x96\x19\xd3\x42\x26\x17\x6d\ \x4b\x99\x6b\x0b\x9e\x89\xa5\xe2\x1c\x55\x95\xb5\x85\x71\xcd\x60\ \x03\xcf\x6f\x15\x69\xb1\x44\xf5\x6a\xc5\xd6\x73\xd4\x11\x4b\x67\ \xce\x1e\xb1\x0a\x83\x62\xd5\x57\x37\xab\xd8\x9a\x35\xdd\x22\xef\ \x1c\x96\xa3\xd7\xac\xed\x66\xdb\x5b\xc6\xfb\x66\xd5\x1b\xc1\x2a\ \x4c\xa2\x24\x5e\x16\x5a\x42\xa8\x66\x46\x07\x2b\x1d\xf3\x8f\xc5\ \xd2\x63\x42\x54\x60\x38\x32\x94\x09\xb1\xcd\x1a\xea\x22\xc4\xd4\ \xe1\x31\x91\xab\x5d\xf7\xc1\x76\xd8\x05\xf5\x1c\x4d\xf6\xd2\x0e\ \x6e\xf5\xda\xa0\xcc\xd4\x9e\x82\xb2\x23\x91\xdf\x55\x88\x8a\xd4\ \x98\x9b\xb1\x32\x8b\xf8\x98\xf3\x07\xb1\xc7\xf4\xb3\x05\x49\x8b\ \x31\xb1\x94\x59\xa8\x25\xf4\x4f\x28\x12\xd4\xd6\xd6\x91\x49\x26\ \x79\xf3\xad\xa5\x7c\xe3\xae\xdb\xe9\x38\xde\xc9\xc8\x51\xb5\x9c\ \x38\xde\x43\x57\x8f\xa6\x36\xe5\x4d\xe8\x7a\xd5\xc0\xd7\x9d\x2f\ \xb3\xdd\xdd\xc9\x58\x35\x8a\xa4\x4e\x7a\xa7\x95\x4f\xfd\x23\x9a\ \xfa\xc4\x08\x9c\x5c\x82\x5e\xfa\x11\xc0\xd1\x09\x5c\xe5\xd7\xde\ \x36\xdc\xa9\xa6\xc9\xa3\xb4\x5f\x62\x3a\xb4\x27\xfc\xa0\x5e\x1f\ \xd3\x5c\xa2\x16\x70\x90\x4e\xb6\xe5\x77\xf1\x39\x75\x2d\xb3\x47\ \xb6\xd0\x3c\x2c\x83\x64\x6a\x78\x63\xc9\x5b\x1c\x3f\x7e\xdc\x13\ \x3b\x32\xa0\xa5\x79\xb4\x09\x76\x95\xd1\xf0\x7d\xd1\x96\xe7\xb0\ \x20\x64\x4c\x22\x9d\x7d\x65\x96\x48\xd6\x43\x44\xec\x4b\xac\x26\ \xa9\xc4\xdd\x0d\x14\x14\x87\xd4\x66\x04\x8d\x21\xbd\x6e\x49\xca\ \x0b\x31\xd1\xd6\xa8\x12\x54\x04\x17\x6d\x45\x70\xe3\xab\x61\x14\ \x50\x3c\x82\xdf\xae\x5f\x62\xe7\xa0\xd9\x55\xa6\x8a\xf8\x19\xad\ \xba\xe1\xda\x72\x2b\xc5\xdb\x1b\xc8\x4e\xe9\x82\xd2\xd9\xba\x40\ \x13\xa8\x80\x9c\x32\x6a\x9b\x63\x95\xc6\x96\x30\xaf\x54\x7c\x45\ \x69\xab\xac\xb3\x61\x2b\xe2\x9b\x05\x56\x99\xeb\x98\x8b\xc9\x8e\ \x23\xb3\x65\x29\x4f\xd3\xc6\xf3\x4b\x43\x98\x75\xe3\xec\x7c\xc0\ \x70\x10\x1a\x1a\x1a\x18\x37\x6e\x0c\x2b\x56\x2c\xe7\xda\x6b\xaf\ \xa2\x7c\x58\x86\xca\xe1\x15\x1c\x6d\xa8\xe3\x50\x7b\x07\x3d\x7d\ \x42\x49\x26\x1a\xd4\xf1\x6a\x42\x58\x8e\x58\xac\xd4\x0c\x61\xa4\ \x8c\xa4\xce\xad\xa5\x53\x9f\x88\x9e\x43\x29\x50\x4e\xd1\xe6\x87\ \xe6\xa7\x80\xeb\x39\xf0\x50\x5a\x93\xd7\x91\x86\xbf\x06\x6e\x71\ \x6e\x62\x50\xe5\x29\xaf\xaa\x61\x6c\x53\x05\xa9\xa4\x26\x3f\xe8\ \xf2\xfc\xf3\x2f\xd1\xda\x32\x83\x4c\x26\xe3\xd7\x52\x90\x28\x44\ \x69\x48\xf0\x20\x85\x2e\xe7\x22\x4c\x9e\x18\x25\xcc\x0a\x6b\x0c\ \x17\xc7\x24\x45\x19\x35\xbb\x56\x88\x55\xef\x3c\x5e\xa3\x30\x22\ \xbf\x54\x41\xb5\x0c\x31\x49\x03\x03\xe2\x99\x0b\x41\x17\xb4\x63\ \x28\x16\x52\xc7\x20\xb7\xb6\xb2\x5a\xa2\x70\x93\x21\x30\x57\xbc\ \xde\xb2\x79\x94\x05\xd7\x0a\x0b\x91\x99\x25\xb6\xc4\x0e\xfb\x8a\ \xf7\x5f\x5c\xd9\xdc\x72\xaa\xfb\x11\x32\x86\x13\xcd\x14\x1a\x8e\ \x07\x43\xc4\xb3\x4c\xc4\xa8\x1c\x2b\xc6\xce\xaf\x63\x5e\x7d\x39\ \x75\x41\xc2\x53\xfb\xf1\x3c\xbf\x08\x61\x14\xbc\x04\x7e\x15\x43\ \xc4\x54\x7c\x1f\x47\x2a\x9d\x62\xcc\xd8\xb1\x28\x25\x3c\xf7\xdc\ \x8b\x54\x0e\xaf\x26\xd7\x7b\x82\x29\x93\x1b\x49\x97\x94\xd2\xdd\ \x03\xd9\x9c\x42\x6b\x85\xab\x15\x2e\x0a\x8d\x42\xe3\xa0\x95\x03\ \x8e\x83\xf6\xfd\x39\x69\x27\x43\xad\x53\x87\x92\x04\x22\x09\x6a\ \x55\x2d\x23\x13\x8d\xa1\x4f\x28\xf8\xa3\x8d\xbf\xe3\x28\xb4\x04\ \xd7\x14\x5c\xed\xfd\xcc\xbb\xfe\xfd\xf2\x8a\x5c\x0e\x24\x99\x61\ \xdc\xb8\x46\x86\x97\x78\x39\x6f\x2f\xbf\xb2\x90\x83\xed\xed\xcc\ \x9e\x3d\xd3\xf3\xd9\x38\x4e\x98\x44\x69\xfa\x66\x6c\xb1\xdb\xc8\ \xdf\x15\xfa\x6b\x42\xfd\x44\x15\xfa\xdd\x22\xdf\x5f\xe0\x8f\x32\ \xfd\x3e\x31\x21\xa9\xf0\xfb\xb6\x70\xb0\x32\xae\x1b\x68\xd1\x58\ \xa2\x3b\x66\x22\xae\x1f\x71\x1f\x09\x19\x51\x44\x98\x2a\xc0\xad\ \xca\xd2\x41\x09\xf5\x50\x42\xed\x50\xc3\x2f\xa9\x8c\xe8\xfc\xd0\ \xff\x6a\x24\x7e\x9a\xfd\xa2\x8c\x36\x84\xc2\x40\x51\x76\x83\x32\ \xae\x1b\xfc\x3b\xf2\x87\x06\x5a\x27\x86\x6b\x42\x11\xfa\xe7\x94\ \xe1\xfb\xa5\x40\x7c\xd6\xe8\x2f\x15\xd3\xbb\x31\x05\x93\x90\x58\ \x82\x73\x94\x5d\x50\x20\x78\x64\x09\xd5\x9a\x7a\x35\x5e\x1b\x83\ \xb0\xc9\xc8\x57\x68\x27\x44\x2b\x4b\xc0\xf8\x74\xe4\xfd\xe2\xec\ \x4c\x2c\x37\x49\x42\x66\xcf\xfb\xcc\x98\xd1\x63\x38\x63\xca\x24\ \x96\x2e\x5d\xc6\x79\xe7\x9e\xcd\xcc\xd6\xe9\x64\x52\x30\x75\xda\ \x78\x36\xac\xff\x98\xae\x93\x50\x5e\x16\x15\x75\xd4\x2a\xa8\xb1\ \xae\xfd\x95\xef\x69\xa9\x00\x64\xdc\x52\x12\x78\xb2\x80\xb5\xce\ \x08\x12\x4e\x26\xa4\xea\xe2\xf9\x71\x81\xdc\x7b\x58\xd8\x44\x7b\ \x7f\x5c\xd7\x3b\x01\x5d\x17\x2f\x06\x13\x87\xb1\xe3\x27\x32\xae\ \x21\x85\xa3\x35\x7b\xf7\xee\xe3\xc9\xa7\x9e\x61\xee\x9c\x59\x54\ \x56\x54\x58\x15\xc8\xa2\x02\x16\xda\x60\x47\xec\x90\xb0\x28\x8a\ \xc1\x94\x7a\x8f\xb1\x67\x26\x51\x48\x14\x67\xa8\x8c\x78\xd4\xb0\ \x0b\x45\x2c\xe3\xcd\xac\xd0\x13\x55\xe2\xb1\x21\x2c\xb1\xe0\xeb\ \x1d\x3b\x76\xd0\xde\x7e\xc8\x8a\x2c\x1a\xdb\xdc\xcc\xc8\xa6\x26\ \xcb\x6a\x31\xff\x16\x30\x8d\x51\x55\x21\x13\x6e\x45\xe5\x98\xa3\ \xed\x39\xa8\xa4\x5a\x04\xda\x69\xb3\x56\xa0\x2a\x30\x54\xc5\xb7\ \x7d\xa2\x7a\x1b\xba\xc0\x57\x16\x15\xf8\x0b\x8a\x61\x1a\xb1\xc2\ \x66\xbb\x25\x76\x66\x18\xbf\x37\xed\xad\x82\xda\x7e\x10\xc9\xb7\ \x9b\x91\x58\x22\x05\x2a\xfc\x76\xd9\x60\x31\xca\x78\x4b\xe8\x2a\ \x89\xd0\xb4\x14\x02\x9a\xb0\x8a\xd6\xbf\x85\x5c\x29\x82\xcb\x35\ \x51\xa1\x95\xe0\x23\xc3\xca\x86\x31\x71\xe2\x44\x76\xef\xde\xcb\ \x6f\x7f\xf7\x07\x7e\x76\xef\x4f\xd1\xee\x49\x9a\x1b\x6a\xe9\xee\ \x6d\x66\xfb\xd6\x9d\xa8\x5e\x87\x92\x12\x7f\xf1\xf9\x73\x5b\x10\ \xf2\x9e\x40\xaf\x47\xb2\x08\xd4\xaa\x5a\xb6\xe6\x77\x20\x0a\xe6\ \x26\x67\xf9\xb0\x48\xac\x0a\x3d\x18\x0b\xcd\xd5\xe2\x97\x68\xf6\ \x17\x9c\x2b\xb8\xae\x26\x9f\x17\xb2\x39\xcd\x60\xd6\xa5\x61\x4c\ \x33\x53\x9b\x33\xa4\xfc\xb1\xfa\xcd\x6f\x1f\x64\xa0\xbf\x9f\xf3\ \xce\x3d\x2b\x3a\x31\xd0\x31\x88\x16\x73\xa6\x8a\x01\x2f\xc5\x73\ \x32\x6b\x4d\x01\x2b\x68\xf6\x55\xbc\x44\xf3\x07\xef\xbf\xcf\xc9\ \x93\x27\xed\xb4\x95\x86\x7a\x26\x4f\x9e\x5c\x20\xe6\x21\x71\x3a\ \x12\x4f\x90\x75\xeb\xd6\xad\x05\xe3\x75\xf6\xd9\xe7\xb0\x70\xe1\ \x22\x5e\x7c\xf1\x45\xeb\xfd\x3b\xef\xbc\x93\x9b\x6f\xbe\x99\xb8\ \x11\x6a\x8b\xee\x9a\x4f\x6b\x90\x0d\xd6\xa6\x42\xd1\x67\xb4\xe1\ \xa3\xa2\x50\x64\x44\x0c\xf8\x2d\x31\xc0\x2e\x56\xb4\xbf\xd6\x52\ \xb4\x28\x68\x61\x61\x65\x23\x58\x5a\xc7\xcb\x40\x47\xb6\x62\x70\ \x4d\x31\x2a\xd5\x16\xb5\xb8\xcc\x9b\x14\x09\x6c\x88\xa0\xb7\x8a\ \x28\x28\x29\x9e\x79\xa0\xcc\xf0\xb7\x53\xb0\x9d\xa7\x58\x78\x01\ \xfe\x35\x9d\x9b\x06\xed\xad\xfd\x89\x67\x3c\x77\xf3\xd8\x66\x66\ \xcc\x98\xc6\x8a\x95\xab\x78\xe0\x5f\xff\x37\xdf\xfd\x8f\xdf\x66\ \xf0\x64\x17\x33\x26\x54\x92\xcb\x35\xb3\x6f\xd7\x5e\x34\x90\x49\ \x79\xb2\xd6\x6e\x94\x3f\xe8\x6d\x0e\xfe\x46\x39\x55\xa6\xd1\xa3\ \x06\x98\x98\x68\x66\xa4\x1a\x49\xde\xae\xc8\xe6\x07\x57\xfb\x7f\ \x5c\x8f\x58\xc9\xbb\x82\xce\xfb\x27\x5c\x1e\x72\x39\x21\x97\x75\ \x71\x73\x42\xdd\xc8\x66\x5a\x27\x57\x50\xee\xc5\x3f\xf3\x87\x3f\ \x3e\xc2\xb2\x65\x2b\xb8\xf9\xa6\xcf\x93\xce\xa4\x43\xb2\x41\x9b\ \x13\x50\xc7\x2a\x02\xf9\x9d\x12\xd8\x1c\xe1\xce\x2f\x7e\x8c\x63\ \x90\x3e\xa4\xe3\xce\x57\x9b\x8c\x59\xb9\x72\x65\xc1\xe2\x18\x35\ \x6a\x14\x0f\x3e\xf8\x3b\x6b\xf4\x4d\xe1\x24\x6d\x54\x45\x7d\xfa\ \xe9\xa7\x79\xee\xb9\xe7\x0a\xf2\xcd\xe6\xcd\x9f\x3f\x44\x35\x1e\ \x43\xff\xc3\x87\x09\x41\x19\x61\x1d\x64\x8b\xeb\xa1\x73\xd3\x30\ \x38\xd8\xd0\x5f\x69\x5a\xc0\x62\xd4\xde\x0b\xaa\x4b\x89\xb1\x49\ \x69\x83\x95\x0d\x4a\x40\x1b\x74\xb4\x68\xbb\x0c\x9c\x36\x88\xbb\ \x90\xe8\xd1\xda\xae\x57\x68\xc4\x97\x62\x90\x6e\xa1\x8d\x2b\xb6\ \xfc\x82\xd6\x06\x32\x31\x5c\x04\x11\xc3\xac\xa3\x1a\xf7\xda\x64\ \x37\x7d\x06\x5f\xb4\x21\xfc\x15\xf6\x86\x1f\xaf\x69\x31\x50\x3e\ \xe1\xe6\xa9\x99\xdb\x71\xb7\x9f\x99\xd5\x54\x06\xe3\x2c\xc6\xf1\ \x4e\x41\x90\xae\x18\xf1\xa2\x53\xa7\x4d\xe3\xc4\x89\x13\xac\x58\ \xb1\x82\xfa\xfa\x06\x6e\xff\xfa\x57\xc9\xf6\x74\x33\x73\x52\x25\ \x89\x44\x82\x9d\x9f\xec\xc1\xcd\xe7\x49\x65\x14\xca\x27\x42\x82\ \x45\x87\x47\x6c\x52\x22\xa5\xcc\x73\xce\x47\x80\x5c\xde\x4b\x55\ \x71\x4d\xe0\xa2\xa3\x0c\x22\x13\x52\x7a\x8b\x4e\xc8\xe7\x34\xd9\ \x41\x97\x5c\x2e\x41\xfd\xe8\xd1\xcc\x98\x58\x4a\x95\x2f\x4d\xb9\ \x70\xd1\x6b\x3c\xf4\xf0\x23\xcc\x98\x36\x99\xe9\xd3\xa7\x59\x8c\ \x94\x98\x52\x05\x06\x23\x69\x96\x25\x33\x43\x94\xe2\xcc\x9f\x14\ \x18\xd9\x58\x7e\x1f\x10\xe6\xcf\x9f\x5f\xb0\xf0\xf6\xed\xdb\xc7\ \xae\xdd\x7b\x18\xe7\x6b\xcc\x14\xba\x71\x23\x08\xb6\x72\xe5\xca\ \x82\xb1\x9a\x37\x6f\xde\x90\x21\x5e\x51\xfd\x06\x7b\xe3\x0c\x4b\ \x88\x49\xb4\x39\x98\x8c\x61\xa1\xca\x56\x04\xa9\x2c\xf9\x7a\x1d\ \x83\xc9\x61\x0a\x93\x10\x95\x9c\x33\xd3\xa5\x8c\xa3\x25\x0e\x61\ \x31\x4f\x2c\x43\x2c\xdf\x84\xad\xda\x08\x70\x88\xa7\x67\x99\x01\ \xca\x06\x3e\x36\x8b\xb7\xda\x21\x8f\x12\x0b\x33\x33\xab\x01\x5b\ \x54\x4a\xe8\xa2\x89\xa4\xdd\x6d\xf6\x39\x2a\xfe\x19\x87\xe6\xa7\ \x2b\xe1\x2e\x62\x87\x14\x16\x8b\x9d\x93\x42\x5f\xd3\xf0\xca\x4a\ \xe6\xcc\x9d\x4b\x77\x77\x37\x4f\x3c\xf9\x14\xa5\xa5\xa5\xdc\x7c\ \xe3\xf5\x30\xd0\x43\xeb\x84\x61\x94\x94\x4e\x66\xc7\xc7\x7b\x18\ \xe8\xed\xc1\x49\x39\x38\x8e\xe0\x38\xde\xa9\x17\x66\xd0\x07\xe3\ \x28\x5e\xe8\x91\x6b\xba\xb6\xa2\x12\x7a\xde\x69\x17\x2c\xbc\xe0\ \xb4\xcb\x41\x6e\x30\x8f\xa4\xca\x68\x9e\x30\x86\xa9\x63\x1c\xca\ \x92\xde\x09\xfd\xd6\x5b\x4b\xb9\xff\xfe\x7f\xe5\xfc\x0b\xe6\x91\ \x76\x72\x1c\xdc\xbf\x97\x91\xa3\xc6\xc4\xb9\x3a\xbf\x9f\x54\x68\ \x7f\x06\xc5\x60\x43\x7a\x8d\x21\x10\x57\x3c\xac\x35\x4a\xdb\x0a\ \xdb\x3d\xb3\x6d\x26\x55\x55\x55\x05\x15\x61\x57\xac\x58\xce\xf8\ \x71\xe3\x6c\x2f\x7d\x2c\xc9\x75\xcb\x96\xcd\x1c\x39\x52\x18\x16\ \x36\xdf\x3f\xed\x86\x3c\xf1\x94\x2a\x74\x4c\x4b\xb1\xc0\x48\x31\ \x26\xb3\xb6\x9c\xf6\x96\x1b\xa5\xa0\x90\xb8\x89\xc6\x25\xee\xbe\ \xb3\xd3\x6d\x0a\x20\x6f\xec\x3c\x88\x99\x86\xf1\x30\x82\xc0\x71\ \x8d\x96\x22\x3e\xfe\xe8\xe4\x8b\xd7\xd8\x52\x46\x76\x88\x15\x58\ \x10\x8e\x8d\x32\x9e\x51\x88\xb0\x8d\xb6\xe7\x86\xc4\x93\x87\x25\ \xf2\x91\x4a\xcc\x08\xd5\xa7\xd6\x5c\x19\x52\x65\xcc\xca\xa0\x2d\ \x22\x04\xa3\xe3\x59\xd6\x7e\xdd\xbc\x11\x23\x46\x30\x67\xf6\x6c\ \xb2\xd9\x1c\x0f\x3d\xfc\x30\x83\xd9\x41\xfe\xe2\x2b\xb7\x22\xd9\ \x41\xa6\x36\xa5\x18\x5e\x36\x8e\xad\xdb\x8f\x71\xfc\xe8\x11\xf2\ \xd9\x3c\x89\x24\x9e\x1a\xb4\xe7\x35\xc0\xf5\xef\x1f\xee\x6a\x26\ \xb1\x63\xb8\x09\x02\x7b\x4e\x6b\x4d\x2e\xaf\xc9\x0d\xba\xb8\x38\ \x94\x0e\x1f\xc9\xc4\xf1\xd5\x8c\xad\xd5\x24\xfd\x2d\xf4\xd5\xd7\ \x5e\xe7\xe1\x87\x1f\xe1\xdc\x73\xcf\x64\xda\xd4\x69\xf4\xf7\x75\ \xb3\x66\xcd\x3b\x9c\x75\xd6\x99\x1c\x3c\x78\xc4\x3f\xd1\xb4\xbd\ \x8a\x82\x62\x1b\x41\x2a\x4d\x0c\x7a\x58\xb9\x83\x52\xe0\x6b\xb1\ \xfa\x5f\x29\xaf\x8f\x1c\x2d\x5c\x38\x6f\x1e\x2f\xc4\x6a\xc1\x2d\ \x5f\xb6\x9c\xaf\xfd\xc5\x7f\xb0\x63\x19\x43\x92\xc6\x9b\x70\xcb\ \x57\xac\x28\x18\xa7\xfa\xfa\x7a\x4f\xe6\x5d\x34\x37\xdd\x74\x13\ \x0b\xe6\xcf\x0f\xc9\x2f\x04\x1a\x9b\x1a\xfd\x84\x58\x1d\x86\x9d\ \x15\x58\x4d\x5a\x5b\xd9\x3c\x5e\x3f\xab\xa8\x0b\x0c\x77\x86\x19\ \x22\x46\xcc\xde\xb2\x23\x65\xc2\x5c\x23\xe3\xd4\x16\xdb\x6b\x60\ \x9e\xa4\x46\x7c\x63\x78\x82\x98\x30\xdb\x74\xa3\x19\x27\x53\x74\ \x12\x1a\xbe\xd6\x58\x0d\xf8\xc0\xd6\x52\x44\xd5\xa7\x42\x57\x82\ \x51\x13\x3e\x88\x72\x09\xc2\x03\x95\x91\xe9\x1e\xf5\x45\x14\x4c\ \x12\x7c\x25\x0c\x2a\x21\x22\xe5\xc2\x54\xa2\xd3\xb5\xf1\x3c\x71\ \x9f\xe2\xa1\xf5\x12\xf7\x77\x60\xa7\x61\x89\x16\x26\x4d\x9a\x4c\ \x32\x9d\x46\xad\x58\xc9\xc3\x0f\x3f\xca\xd1\x23\x47\xb9\xe3\xf6\ \xbf\xa0\xb6\xba\x9a\xa6\x72\xcd\xf0\x96\x6a\xf6\x1c\xa9\x64\xef\ \xde\xa3\xf4\x74\x75\x93\xef\x1f\xc4\x49\xf8\xf5\x0e\x24\x20\x60\ \xc4\x76\xda\x07\x8b\xcf\x15\x9f\x54\x01\x37\xef\xe2\xe6\x5d\xf2\ \xa4\xc9\x94\x95\xd3\xd8\x54\xc7\xd8\x7a\xa1\xba\xc4\x5b\x9c\xf9\ \x7c\x9e\xc7\xfe\xf4\x24\x8b\x5f\x5b\x48\xc3\x88\x5a\xb2\x83\x03\ \xf4\x9c\x3c\xce\x84\xf1\xe3\x18\x56\x3a\x8c\xa5\x4b\x97\x52\x55\ \x55\x43\x5d\x7d\x83\x0f\x1f\x74\x61\xb6\xa5\x88\x15\xf6\x67\xc3\ \xa8\x22\xea\xc3\xb6\x39\x1a\x7d\xce\xff\xc7\x45\x0b\x16\x14\x2c\ \xbc\x1d\x3b\x76\x70\xf0\xe0\x01\x46\x36\x8d\xb4\x9c\xde\x26\x61\ \xb0\x7c\xd9\xb2\x82\x51\x5a\xb0\x60\x41\x28\x49\x38\x7a\xf4\x28\ \x46\x8f\x1e\x3d\x84\xaf\x50\x0c\xd6\x91\x58\x1d\x73\x29\x7e\x08\ \x1a\x06\x9a\xe9\x54\x2f\x96\x29\x10\x40\x3c\xa5\xc4\xaa\x6f\x68\ \x3b\xca\xa3\x45\xac\xe2\x8d\x8c\xb5\xcb\x52\x30\x37\x67\x7e\x54\ \x3b\xd2\xf4\x88\xdb\x2c\x6b\x78\x70\xc5\x82\x0f\x2c\xd8\x6a\xc4\ \xa9\x5a\xd7\x92\x18\x91\x6d\x07\x3c\x04\x90\x5d\x99\xcc\xb7\x14\ \x2b\x5c\xa2\x87\xac\x99\xf0\xa9\x27\xde\xa9\xe3\xce\xe2\xe4\xa9\ \x5d\xf8\x5e\x10\xc6\x35\x8f\x43\x89\x90\xce\xa4\x59\xfc\xfa\x62\ \x76\xee\xda\xcd\xb7\xee\xb9\x8b\xd6\x96\xe9\x94\x38\x9a\x33\x1a\ \x1d\x1a\xaa\xea\x69\xef\xac\xe5\xd0\xe1\x1e\xba\x4e\x74\x91\x1d\ \xe8\xf5\xfc\x03\x41\xc9\x2b\x23\x60\x39\xd8\xc5\x5c\x2d\x21\x3c\ \x50\xc9\x72\x4a\x2b\x2b\xa8\xaf\x1d\x46\x43\x8d\xa2\xae\x2c\x3a\ \xe2\x0f\x1d\x3a\xc4\x2f\x7f\xf5\x00\xeb\xd6\xae\x65\x76\x5b\x0b\ \x99\x92\x34\x07\xf6\x1f\xc0\xcd\xe7\xe9\xea\xea\x66\xda\xb4\x69\ \x1c\x38\x70\x80\xb5\x6b\xdf\xe1\xee\xbb\xef\xe2\xc0\xc1\xc3\xa1\ \x04\x42\xfc\x88\x17\x33\x72\x82\xc8\x44\x21\xa6\x28\x4d\x41\xec\ \x60\xa1\x17\xba\xad\xad\xad\x28\xdc\x5c\xb6\x7c\x19\xb7\xdd\x7a\ \x5b\x01\x13\x8a\x08\xdb\xb7\x7f\x62\xc9\x9c\x07\xaf\x8b\x2e\xba\ \x28\x9c\xa4\xab\x56\xad\x61\xcb\x16\x5b\xf2\xee\xcc\x33\xcf\x0c\ \xab\x0a\x19\x85\x72\xa3\x84\x52\xed\xb2\x72\xe5\x4a\xb6\x6d\xdb\ \xc6\xce\x5d\x3b\xd9\xb5\x73\x17\x89\x44\x82\x89\x13\x27\x32\x61\ \xc2\x04\xce\x39\xe7\x1c\x9a\x7d\xdb\x53\x61\xcb\xdc\xa1\xe1\xd1\ \x47\x1f\xb5\xc4\x65\x93\x89\x04\x5f\xf9\xea\x57\x2d\xbb\x1f\xe0\ \xe9\x67\x9e\xb6\x6a\xbe\xcf\x9d\x3b\x97\xd6\x96\x16\x23\x06\x12\ \x76\xed\xd8\xc9\x5b\xb1\x52\xcc\x33\x66\xcc\xe0\xac\x33\xcf\x8a\ \xce\xd2\x90\x74\x56\x76\xdb\x77\xee\x64\xd7\xae\xa1\xdb\x1e\x87\ \x22\xc1\xf3\xaf\x5e\xb5\x9a\xcd\x43\xf4\xd9\xc9\x9e\x1e\xde\x59\ \xb3\x86\x77\xdf\x7d\x97\x0f\x3e\xf8\x00\xd7\x75\xf9\xd5\xaf\x7e\ \x45\x55\x55\x55\x81\x13\xdf\x36\x37\x0c\x79\xc4\xd3\x8e\xd5\x34\ \x0a\xc2\x13\xc6\x2f\x1a\xcc\x90\x0e\x90\x70\xdc\x4c\x30\x54\x3c\ \x34\x8c\x1b\xd7\x4c\x6d\x4d\x0d\xc3\x87\x57\xf2\xfe\x7b\x1f\xf1\ \x57\x3f\xf8\x31\xd7\x5c\x7d\x25\x37\xdf\xf4\x05\x1a\x1a\xea\x19\ \x9e\x11\x86\x37\x0a\xcd\x23\xca\xe9\xea\xab\xe0\x58\xb7\xe6\x78\ \x57\x1f\xbd\x27\x07\xc8\xe5\xb2\xe4\xf3\x79\x74\x60\xe4\x89\x42\ \x29\x07\x27\x95\xa0\xa4\x24\x4d\x65\x45\x29\xd5\xe5\x9a\xca\x52\ \x28\x4b\x46\xe9\x1d\xbd\xbd\x7d\xbc\xf8\xd2\x2b\x3c\xf3\xec\xf3\ \xec\xdd\xb7\x97\x59\xad\xd3\x99\x3c\x65\x12\x6d\x6d\xb3\x58\xbe\ \x7c\x05\x5b\xb7\x6e\x46\x44\xa8\xae\xae\x62\xc6\x8c\x19\x8c\x19\ \x3b\x86\x57\x17\xbd\xc6\x88\xfa\x11\x34\x34\x8e\x32\x6c\x57\x65\ \xc4\x2b\x06\x76\x8f\xb2\x38\x4b\x4b\x63\x33\x7e\xe8\xc5\x17\xa2\ \xdf\x37\x8e\x24\x98\xbf\x60\x3e\xcf\x3d\x6b\xb3\x93\xcb\x96\x2e\ \xe3\x2b\xb7\x7d\x25\x1e\x69\x85\xd6\xb0\x7c\x79\x61\x59\xe4\x86\ \x86\x06\xa6\x4d\x9f\x16\x0e\xd3\x9a\x35\xab\x79\xf6\xd9\x67\xad\ \xcf\x94\x94\x94\xd0\xda\xda\x62\xc4\xb9\xe8\x30\x82\x65\xff\xc1\ \x83\xfc\x8f\xbf\xff\x29\x1f\x7c\xf0\x61\xc1\xb5\x03\x85\xaf\xdf\ \xfc\xe6\x37\x7c\xe3\x1b\xdf\xe0\x96\x2f\xde\x62\x9c\x2a\x51\xd4\ \xca\xea\xd5\xab\xf9\xf0\x43\xfb\xfb\x97\x5d\x76\x19\x0d\x8d\x8d\ \x21\xbc\x1e\x1c\x18\xe0\xbe\xfb\xee\xf3\x14\xe5\xfc\x57\x7b\x7b\ \x3b\xad\xad\x33\xa3\x1a\x7b\xc0\x9b\x6f\x2d\xe1\x0f\x7f\xf8\xbd\ \x75\xad\x1f\xff\xe8\xc7\x46\x80\x40\x04\x65\x0f\x1c\x3c\xc8\xdf\ \xff\xf4\xa7\x05\xf7\x2e\xda\xf6\x5b\xbe\x68\x41\x08\x09\x63\x7d\ \x35\xab\x8b\xf4\x59\x69\x69\x09\xe3\xc7\x8f\xe3\x3b\x7f\xf9\x97\ \x05\x4a\x67\xb9\x7c\x2e\x22\x51\xd0\x96\x7c\x7b\x98\xb2\x16\xf3\ \xe3\x9e\x9e\xa0\xad\x2a\x0e\x47\x34\x76\xfd\xe7\x78\xca\x86\x55\ \xce\xd1\x7f\xd0\x8a\xca\x0a\x16\xcc\x5f\x40\x53\x63\x13\xef\xbc\ \xf3\x2e\xcf\x3c\xfb\x1c\x6b\xde\x59\xcb\xa5\x97\x5c\xc4\x95\x57\ \x5c\x4e\x63\x63\x03\x69\xa5\xa9\x1b\xa6\xa9\x1b\x06\x6e\x63\x29\ \x03\xb9\x52\x06\xb2\x30\x90\xd3\xb8\xae\xef\x5b\x12\x48\x26\x84\ \x74\x02\x32\x49\x2f\x8f\xdc\x24\x5d\x7a\x7a\x7a\x78\xe3\xcd\xb7\ \x58\xb4\x68\x31\x1b\x36\x6e\xa4\xba\xaa\x92\x2f\xdd\x7c\x03\x73\ \xe6\xce\x41\x89\xa2\xac\xac\x8c\x29\x53\x26\x93\xcb\x65\xd9\xbe\ \x7d\x3b\x88\x70\xf8\xf0\x51\xda\x66\xb5\x92\x4a\x27\xd8\xb8\x69\ \x23\x53\xa7\x4e\x65\xc7\xce\xdd\x54\x56\x54\x92\x48\x26\x28\x20\ \xa8\xcc\x8e\x34\x6a\x5f\xc7\x28\xb9\xd0\x91\xae\x0b\x78\x4a\xaf\ \xe3\x2e\xbe\xe8\xe2\x82\x85\xb7\x79\xf3\x66\x0e\x1f\x39\xec\x55\ \xc4\x31\x5d\x83\xa2\x59\xba\x74\xe9\x10\xa7\x9d\xe2\x54\x49\x28\ \x81\x8c\xbc\x60\x43\xbe\x37\xdf\x7a\x8b\x9f\xfe\xf4\xa7\xf4\xf7\ \xf7\x9f\x12\x0e\xe5\x72\x39\xee\xbb\xef\x3e\xd6\xae\x5d\xcb\xbd\ \xf7\xde\x4b\xc2\x49\x44\xe1\xfc\xca\x3b\xbd\xe3\x93\x7f\xd3\xe6\ \xcd\x34\x8d\x1c\x19\xf6\xdd\xd6\x2d\x5b\xac\x45\x07\xb0\x71\xe3\ \x46\x1f\x55\x45\xad\xde\xb8\x69\x63\xc1\xfd\x5b\x67\xb6\x86\x4e\ \xe8\x80\x4d\x7d\xf3\xad\x37\x4f\xbb\xed\xff\x70\xef\x3f\x90\x4c\ \x24\x7c\x3b\xd7\x50\x3e\x2d\x42\x48\xe5\x72\x79\x7e\xf4\xa3\x1f\ \x17\x2c\xba\xc0\x2e\x8c\x18\x7f\x89\x57\x8e\xb4\xc2\xe8\xe4\x53\ \x34\x6d\x4f\x21\xef\x67\xef\xba\x76\x3d\xd4\x58\xa0\x6b\xcc\xcf\ \x12\x87\xa5\x25\xa5\x25\xcc\x6c\x9b\xc9\xa8\x51\xa3\xd8\xb8\x71\ \x13\xeb\xde\x7b\x8f\x87\xfe\xf8\x08\x2f\xbc\xf0\x32\x73\xe6\xce\ \xe6\xc2\x0b\xce\x67\xd2\xc4\x09\xd4\xd7\x8f\x40\x29\x45\x89\x03\ \xa5\x09\x29\x88\xf6\x0e\xe9\x5e\x9f\x26\xec\xec\x3c\xce\x8e\x1d\ \xbb\x78\x7b\xd5\x2a\xd6\xae\x7d\x97\x1d\x3b\x77\x52\x92\x49\x71\ \xe1\x05\x67\x33\xef\xc2\x0b\xa9\xa8\xa8\x08\x37\x81\x23\x47\x8f\ \x30\x62\xc4\x08\x9a\x9a\x9a\x50\x4a\xb1\x6d\xdb\x36\x1c\xa5\x38\ \xb0\xff\x20\x6d\x33\xdb\x48\x24\x52\xfc\xfe\x0f\x7f\xe4\xc4\x89\ \x2e\x86\x0d\x1b\xc6\xa4\x49\x93\x98\x3d\x6b\x76\xd8\x01\x5a\x4c\ \x96\x4b\xc5\x88\x0a\x43\x3f\xd8\xc0\x1d\xca\x50\x61\x36\x10\x08\ \xb3\x66\xcd\x2a\x0e\x37\x97\x2d\xe3\x96\x2f\x7e\xd1\xd0\x1b\x81\ \xfd\xfb\xf6\x17\x9d\x04\x97\x5c\x72\x49\x98\xf5\x3d\x64\xa1\x9a\ \x40\x39\xd9\x20\x21\x8f\x1d\xef\xe4\xde\x7b\xef\x2d\x3a\x71\xcb\ \xca\xca\x18\x1c\x1c\x2c\x50\xb3\x7e\xe7\x9d\x77\x78\xea\xa9\xa7\ \xb8\xf5\xb6\xdb\x42\xf4\xa3\x81\x99\x33\x67\x16\x5c\x63\xe3\xc6\ \x8d\x5c\x76\xd9\x65\xe1\x26\xb3\x31\xa6\xf8\x0c\xb0\x77\xef\x5e\ \xba\xba\xba\xc2\x8a\x49\x5a\xbb\x6c\xda\x68\x2f\xbc\xda\xda\x5a\ \x46\xf9\xaa\x6b\xc1\xdc\xea\xec\x3c\xfe\x6f\x6a\xfb\xd3\x4f\x3d\ \xcd\xad\xb7\xdd\x6a\xf9\x59\x8b\x64\x7f\x01\xf0\xc8\x23\x8f\x0c\ \x5d\x87\x4f\x11\x96\x66\x46\xb4\xa5\xf5\x62\x25\x6b\x49\x11\xeb\ \xe3\xb3\x46\xae\x84\x69\x30\xa6\xd9\x6b\x86\xb5\x63\x44\x28\x87\ \x0e\x45\x09\x85\x8a\x24\xbe\xea\xb5\xa6\xae\xb6\x8e\xf9\xf3\xe7\ \x73\xc6\xd4\x33\xd8\xb8\x61\x03\x9b\xb7\x6c\xe5\xad\x37\x97\xf0\ \xfa\xeb\x6f\x50\x5f\xdf\xc0\x84\xf1\xcd\x34\x8f\x6d\x66\xe4\xa8\ \x26\xea\x47\x8c\xa0\xb2\xb2\x82\x44\x22\x01\x22\xe4\xf3\x79\x4e\ \x9e\xec\xe1\xe8\x91\x23\xec\xdb\x7f\x80\xdd\xbb\xf7\xb0\x63\xc7\ \x4e\x0e\xb6\x1f\xa4\xb7\xa7\x8f\xba\xda\x2a\x2e\x9e\x7f\x3e\xb3\ \xe6\xcc\xa6\xb1\xb1\x31\x0a\x88\x35\x4e\xdf\x5c\x2e\x47\x3a\x9d\ \x66\xf2\xe4\xc9\x68\xad\xf9\xf8\xe3\x8f\x49\xa6\x52\x2c\x7e\xfd\ \x75\xb6\x6e\xfd\x98\x0b\x2e\xb8\x80\xaf\x7d\xed\x06\xde\x7b\xef\ \x3d\x96\x2e\x5d\xca\xc9\x93\x27\x99\x37\x6f\xbe\x15\xb6\x15\x68\ \x45\x06\x92\x79\x91\xff\x48\x85\xcc\xae\x4d\x44\x68\xdf\xe1\x1b\ \xe5\xb2\x24\x24\xc1\x45\x17\x5d\xc4\x33\xcf\x3c\x63\xf5\xfb\x92\ \x25\x4b\xf8\xd2\x2d\xb7\x18\x79\x6a\xc2\x92\x25\x4b\x4f\x09\x33\ \xb5\x36\x0b\x65\x14\x5a\xe6\x2a\x34\x98\xbd\xd5\xff\xab\xfb\x7e\ \x55\x10\x3d\x33\x7e\xc2\x04\xbe\xfa\x95\xaf\xb0\x60\xc1\x02\x7a\ \xfb\xfa\x78\xfa\xa9\xa7\x78\xe4\x91\x47\x2c\xfb\xed\xc1\x07\x1f\ \xe4\xea\xab\xae\xa2\xaa\xaa\x3a\xdc\x41\x5a\x5a\x5a\x51\x4a\x59\ \xc5\x46\x36\x6e\xdc\x68\xf9\x0e\x37\x6e\xdc\x50\x74\xe2\x6d\xda\ \xb4\x91\xf3\xce\xbb\x00\x11\xcd\xf6\x4f\x76\xd3\xdb\xdb\x6b\xfd\ \x7e\xe6\xcc\x99\xbe\xc9\xa3\xc3\x8a\x4c\xbf\xfa\xd5\x7d\x43\xb6\ \xfd\xa2\x05\x17\xd1\xd3\xdb\xc3\x33\xcf\x3c\xc3\x43\x0f\x3d\x64\ \x2d\x40\xaf\xed\x57\x33\xbc\xaa\x2a\x3a\x3e\xa4\xf8\x71\x14\x2c\ \x3a\xc7\xf1\x6a\x14\x8e\x1b\x37\x8e\x8e\x8e\x0e\xff\x64\xf7\xdd\ \x33\xda\x8c\x5e\x31\x58\x53\xb1\x83\xaf\xd5\x29\xc2\xed\x4f\xa1\ \xb9\x62\x62\x7a\x65\x69\x4b\x06\xf5\xd0\xe3\x32\x6d\xb6\x16\x63\ \x14\xaf\x66\x4e\x7e\x41\xd3\x58\xdf\x40\x63\x43\x03\xe7\xfb\xb7\ \x3b\x24\x00\x00\x1a\x30\x49\x44\x41\x54\x9e\x7b\x2e\x3b\x77\xee\ \x64\xfb\xf6\xed\xec\xdb\x7f\x80\x75\xeb\xde\x65\xe5\xdb\xab\xfc\ \x9d\xda\x21\xe1\x78\x7f\x50\x8a\x7c\x3e\x47\x76\x30\x4b\x5e\xe7\ \x71\xf3\x2e\x89\x44\x82\x11\xb5\x35\xb4\x4c\x3b\x83\x49\x93\x27\ \x32\x75\xea\x54\xbb\x88\xa3\x14\xe8\x21\x93\xcb\xe7\xe9\xea\xea\ \xa2\xa9\xa9\x89\xd1\xa3\x47\x93\x4c\x26\x59\xb6\x6c\x19\xcf\x3d\ \xf7\x1c\x25\x25\x25\x5c\x72\xc9\x25\x94\x97\x97\x33\x67\xce\x1c\ \xb2\xd9\x2c\x2b\x57\xae\x24\x9f\xcf\x73\xc9\x25\x17\x47\x81\x4e\ \xa6\x1f\x49\xd9\xe1\x4d\xb6\x93\xda\x76\x06\x9b\x99\xd5\x88\x77\ \x62\xc5\x17\xde\xfa\xf5\xeb\x39\xd6\xd9\x49\x4d\x4d\x4d\xd8\xff\ \x4b\x96\x2e\x29\x18\x9f\x8b\x2f\xbe\x38\x92\x6c\x17\x3d\xa4\x1d\ \xe1\xc9\xbc\x47\x2a\x97\xbb\xf7\xec\xe6\x95\x57\x5e\x29\xf8\xdc\ \x8f\x7e\xf0\x43\x66\xb4\x78\x24\x4c\xa6\xa4\x84\xbb\xee\xbe\x9b\ \xfd\xfb\xf7\xf3\xea\xab\xaf\x5a\x13\xf2\x91\x47\x1f\xe5\x2f\xbf\ \xf3\x9d\x30\x0a\xb2\xbc\xcc\x43\x06\x66\x18\xdb\xb6\x6d\xdb\xc8\ \x66\x73\xa4\xd2\x29\x04\x8a\x96\x19\x03\xd8\xb0\x61\x23\xe7\x9f\ \x7f\x21\x22\xc2\x86\x22\x8b\x73\xd6\xac\x59\xfe\x66\xe7\xb5\x7e\ \xf7\x9e\x3d\xc5\xdb\xfe\xc3\x1f\xf8\x04\x92\x90\x29\xc9\x70\xd7\ \x5d\x77\xb1\x6f\xdf\xbe\x22\x6d\x7f\x84\xef\x7c\xe7\x3b\x58\xc4\ \xf5\x10\xaf\xba\xba\x3a\x7e\xf6\xb3\x9f\x71\xc6\x19\x53\xc2\xfb\ \x77\x77\x77\x93\x4e\xa5\x23\x3d\x22\x23\xc6\xd3\x4a\x99\x8a\x05\ \x06\x9c\x66\xac\xa6\x58\x47\x7c\xe4\x17\x8c\x02\x66\x8a\xc9\x3d\ \x8a\x2e\xe6\x3d\xa6\x30\xd2\xce\xf7\x87\x95\x95\x97\xd1\xd2\xd2\ \x4a\x4b\x4b\x2b\x7d\x7d\xbd\x74\x76\x1e\xa7\xa3\xe3\x28\x1d\xc7\ \x3a\xe8\x3a\xd1\xc5\xf1\xe3\x27\x18\xc8\x0e\x82\x16\x52\xa9\x14\ \x65\xc3\x4a\xa9\xa9\xae\xa6\xaa\xa6\x8a\xda\x9a\x5a\x6a\x6a\x6a\ \xc9\x64\xd2\xa7\xc8\xb3\xb1\x69\x62\xe5\x1b\xbd\x79\x37\x4f\x49\ \x49\x09\x23\x46\x8c\xc0\x75\x5d\x9a\x9b\x9b\xd9\xbd\x7b\x37\x0f\ \x3e\xf8\x20\x15\x15\x15\x9c\x75\xd6\x59\xcc\x99\x33\x87\x81\x81\ \x01\x56\xaf\x5e\x8d\x52\x8a\x8b\x2f\xbe\x18\x53\x72\x2f\x14\x84\ \xd5\x91\xf3\x58\x9b\xdb\x91\xd2\xf1\x38\x61\x8b\xfd\x9a\x3d\x7b\ \x36\xd5\xd5\xd5\x1c\x3b\x76\xcc\xb0\x55\x35\xcb\x96\x2d\xe3\x0b\ \x5f\xf8\x02\xe0\xd5\xfc\xde\xb4\x69\x53\xc1\xd3\x5d\x76\xf9\xe5\ \xe1\x18\x05\x31\xa3\x45\x1d\xe8\xfe\x26\x1a\xdc\xf7\xe3\x8f\xb7\ \x15\x7c\x66\xda\xb4\x69\xb4\xcc\x6c\xb1\x61\x98\x08\x97\x5c\x72\ \xa9\x35\x79\x01\xb6\x6e\xdd\x16\x56\x52\x0d\x48\xa5\x99\x33\x67\ \x5a\x0b\x2f\x97\xcb\xf1\xf1\x27\xdb\x98\x31\xa3\x85\xf6\xf6\x83\ \x74\x74\x74\x44\x36\x5b\x6b\x2b\xeb\xd7\xaf\xf7\x17\xde\x06\x94\ \xe3\xa1\xa4\x62\x8b\xb3\xad\x6d\x96\x95\x4b\xb7\x6d\xa8\xb6\xb7\ \xb4\x5a\xf3\x4f\x03\x97\x16\x6d\xfb\xd6\x28\x4b\x23\x0c\x04\x2f\ \xbe\x2c\xfe\xf6\xbf\xfc\x17\xa6\x4e\x9d\x6a\xbd\x57\x51\x51\x19\ \x37\xf6\x43\x45\xe9\x18\xb0\x2a\x48\x5b\x3b\xcd\x90\x31\x23\xeb\ \xdc\x88\x56\xf7\x22\x3a\x94\x91\x02\x2c\xb1\x9c\xc4\x68\x32\x12\ \xcf\xfb\xd2\x86\xa0\x8c\x8e\x1c\xad\x1a\x28\x2d\x2d\x65\x58\x69\ \x29\x23\x47\x8d\xb4\xe0\x6d\x14\xcb\xab\xed\x6c\xe2\x98\x06\x44\ \xb8\x09\x85\x29\x84\x06\x14\xf4\xa1\x45\xb0\x79\xb8\x79\x97\x9e\ \xde\x5e\x8e\x1c\x39\x42\x73\x73\x33\x5a\x6b\x12\x89\x04\xdb\xb6\ \x6d\xe3\xa7\x3f\xfd\x29\xdf\xff\xfe\xf7\x69\x6d\x6d\x65\xce\x9c\ \x39\xe4\xf3\x79\x96\x2e\x5d\x4a\x2e\x97\xe3\xca\x2b\xae\xf0\x7d\ \x3b\xa6\xb0\x8f\x9f\x95\xac\x6c\xa7\x2c\x46\xac\xab\x69\xfb\x05\ \x7e\x23\x49\x28\x2e\xbe\xe8\x62\x9e\x7a\xfa\x29\xab\xef\xdf\x7c\ \xf3\x4d\x6e\xbc\xe9\x46\x44\x0b\x4b\x8b\x9c\x76\x8d\x8d\x8d\x4c\ \x9f\x3e\xdd\x90\xd8\xf7\x54\xac\x65\x08\xa5\xdd\x00\x1a\x29\xd1\ \xec\xde\xbd\xa7\xe0\x23\x03\xfd\x03\xfc\xe4\xc7\x3f\x09\x75\x54\ \x83\xde\x1c\xcc\x16\x56\x2d\xda\xb3\x77\x4f\xe8\x37\x0c\xdc\x58\ \xb3\x67\xcd\xe2\x89\x27\x9e\x28\x38\xcd\x5a\x5a\x67\xb2\x61\xc3\ \x46\x83\x2d\x2c\xe5\xf3\xd7\x5f\x1f\x2e\xbc\x8d\x1b\x37\xa2\xfd\ \x22\x35\x1f\x7d\xf4\x51\x81\xbd\x36\x69\xe2\x84\x90\xc8\x40\xc3\ \x9e\xa1\xda\xfe\x93\x1f\x47\x8e\x6d\x3f\x5e\x72\x70\xb0\x50\xa0\ \x69\xef\x9e\xbd\x61\xdb\xc5\x0c\x83\x8a\xbd\x26\x4f\x9e\xcc\x59\ \x67\x9d\x15\x15\xd5\x0c\x16\x69\xa8\x3c\x60\x9b\x50\x9a\x58\x98\ \x9d\xd6\x46\x12\x39\xa7\x79\xe2\x85\xde\x7e\x3b\x8e\xd1\x96\x1e\ \x2f\x94\x3a\x8b\xa7\xcf\x68\xd3\xd1\x1e\x52\xad\x12\x93\xd0\x96\ \x50\x79\xcb\x8a\xd9\xb3\xe0\x22\x16\x83\xc7\x10\xbb\xbc\xf8\x79\ \x21\x12\x67\x99\xc4\x48\xe9\xf0\xef\xe2\xe6\xf3\xe4\xf3\x79\xca\ \xcb\xcb\x19\x3b\x76\x2c\xf9\x7c\x9e\x5c\x2e\xc7\xce\x9d\x3b\xf9\ \xf9\xcf\x7f\xce\x77\xbe\xf3\x1d\x66\xcd\x9a\x45\x5b\x5b\x1b\xfd\ \xfd\xfd\x2c\x5d\xba\x14\xa5\x14\x57\x5c\x71\x85\x91\x4d\x12\xc4\ \x37\x16\xa9\x60\x21\x56\x8e\x49\x14\x28\x2c\x11\x1b\x76\xd9\xe5\ \x97\x15\x2c\xbc\xf7\xde\x7b\x8f\xee\xae\x6e\x2a\x2b\x2b\x79\xf3\ \xcd\xb7\x0a\xc6\xe6\xd2\x4b\x2f\x0d\x15\x02\xc4\x8a\x4b\x94\x53\ \xc6\x6a\x82\xb0\x67\x4f\xe1\xe4\xdd\xbe\x63\x3b\xdb\x77\x6c\xe7\ \xb3\xbc\x0e\x1f\x3a\xc4\xe0\xc0\x60\x04\xe9\xc5\x3b\x99\x0a\x61\ \xe4\x06\x94\xd8\x27\xd9\xb4\x69\xd3\x98\x35\x3b\xfa\x6c\x5f\x5f\ \x1f\x3b\xb6\xef\xa4\xa1\xb1\x81\xdd\xbb\x77\x17\xd8\x77\x4e\x22\ \x61\x1d\x25\xff\xa7\x6d\x3f\x74\xf8\x10\x03\x03\x83\x94\x04\x81\ \xf1\x43\xb0\x9a\x53\xa6\x4c\xf1\x73\x20\xe3\xd1\xaa\xc4\x32\xfa\ \x23\xd1\x2a\xfb\x33\x71\x71\x5c\x3d\x14\x4f\x33\x54\x70\x6d\x20\ \xec\xe9\xf8\xff\x76\xec\xe4\x4a\x65\x24\x21\x1a\x85\xd9\xcd\x44\ \x49\xc7\x10\x75\x0d\x13\x06\x95\x20\xfe\xb5\xec\x24\x42\xfb\xda\ \x4a\x39\xa1\xb8\xab\xa3\x8a\x14\x7e\x57\x76\x25\x4e\x65\x24\x9f\ \x4a\xec\x9a\x96\xf8\xa8\xf1\x9d\xc6\xc6\x46\x5c\xd7\xa5\xb4\xb4\ \x94\x71\xe3\xc6\x31\x79\xf2\x64\xc6\x8f\x1f\xcf\xe1\xc3\x87\xf9\ \xc5\x2f\x7e\xc1\x9a\x35\x6b\xc8\x66\xb3\xcc\x9a\x35\x8b\x39\x73\ \xe6\xb0\x78\xf1\x62\x5e\x7e\xf9\x65\x23\x81\xd4\x2f\x27\x56\x34\ \x39\xd3\x89\x92\x45\x83\x36\x39\xca\xef\x13\xaf\x1d\x73\x7c\xb8\ \x69\xbe\xf2\xf9\x3c\xcb\x96\x2d\xa3\xb3\xb3\x93\x0f\x3e\xf8\xa0\ \x38\xcc\x0c\x13\x47\x0d\xd1\x5c\x29\x5e\x7f\xdb\xec\x2b\xd3\x89\ \xfd\x6f\x7d\x1d\x3d\xda\x11\x25\x97\x8a\x50\x37\x62\x04\xa3\x46\ \x8d\xb2\x17\xde\x47\x1f\x21\x22\xd6\x49\xd6\xda\xda\xca\x98\x31\ \x63\x19\x3e\x7c\x78\xf8\xde\x47\x1b\x3e\x62\xe3\x86\xe2\xf6\x5d\ \xd4\x9f\xde\x3c\xfc\xbf\xd1\xf6\x63\x47\x8f\x86\x73\x2f\x18\xab\ \x62\x88\xc2\x14\xc0\x0d\x13\x96\x1d\xbb\x0a\xb0\x39\xcf\x94\x95\ \x44\x6b\x8a\x0f\x7b\x63\x7e\x5a\x36\x9e\x29\x97\xad\xac\xe4\x32\ \xc3\x7f\x21\x3a\x8c\xe0\x0f\x0a\x7a\x44\x02\x2f\xb6\x44\x41\xa4\ \x06\x12\xab\xa2\x23\x91\xcc\x9a\x18\xf9\xfb\xda\xf0\x0a\x4a\xa8\ \xe5\xe1\xcb\xdb\x59\xea\x6d\x36\x24\xf6\xa0\xb2\xb6\xed\x3c\x23\ \xb6\xd2\x84\x05\xe3\x9a\x9b\x69\x3f\x74\x88\x83\x07\x0e\x90\x4e\ \xa7\x19\x3d\x7a\x74\x58\x88\x65\xf7\xee\xdd\xfc\xfa\xd7\xbf\xe6\ \xae\xbb\xee\xa2\xa5\xa5\x85\x96\x96\x16\xfa\xfa\xfa\x58\xbc\x78\ \x31\x8e\xa3\xb8\xe6\x9a\x6b\x0a\x35\x57\x4c\x7a\x39\xd4\xed\xc0\ \x48\x6d\x88\x7c\x92\x00\x8e\x72\xb8\xe4\xd2\x4b\x79\x32\x06\xd5\ \xde\x78\xe3\x0d\xaf\x96\x44\x6c\xb7\x6c\x6c\x6c\xa4\x65\xc6\x74\ \xa3\x66\xba\x8a\x12\x34\x8b\x5a\xba\x41\x11\x16\x4f\xb7\x66\xf4\ \xe8\xd1\xac\x5a\xb5\xaa\x80\x21\xad\xaa\xaa\xfa\xcc\x93\x37\x93\ \x49\x45\xf6\xa5\xff\xde\xec\xd9\xb3\xd9\xb7\x6f\x5f\xf8\x99\x83\ \xed\xed\x1c\x6c\x3f\xc8\x96\x2d\x5b\xc2\xf7\x5a\x5a\x5a\x51\x22\ \xb4\xb6\xb6\xb2\xcc\x0f\x7f\x5b\xff\xd1\x47\x1c\x3d\x5a\x18\xf8\ \x3d\x7b\xf6\x9c\x30\x63\x3e\xe0\x07\xff\x6f\xb4\x3d\x95\x4e\x47\ \xf1\x95\x43\x64\x0d\x94\x96\x96\xfa\x1b\x99\x9f\x0e\x14\x64\xbc\ \x86\x1b\x99\x21\x6a\xa4\xb0\x0b\x9b\xd8\xb2\xb3\x56\xe0\xf8\x69\ \xd8\x78\x26\x62\x92\x21\xfc\x1e\x51\xae\x59\x14\x50\x2c\x26\xb0\ \xf2\xec\x41\x1d\x73\x2e\x9a\x47\xb3\x15\x1f\x67\x40\x52\x4b\x28\ \x32\x12\x99\x34\x73\x9c\xa2\x28\x82\x38\xbb\x67\xff\x0c\x33\x99\ \x4d\xdb\x11\x48\x24\x93\x5c\x78\xc1\x05\x2c\x5d\xba\x94\xfd\xfb\ \xf7\x53\x5a\x5a\xca\x98\x31\x63\xc8\xe7\xf3\x38\x8e\xc3\x8e\x1d\ \x3b\xb8\xef\xbe\xfb\xb8\xf3\xce\x3b\x99\x3a\x75\x2a\x2d\x2d\x2d\ \xe4\xf3\x79\x5e\x7a\xe9\x65\x72\xb9\x3c\x9f\xff\xfc\xe7\x0b\x22\ \x77\xac\xa7\x94\x42\x1d\x95\x78\x4c\xe7\x15\x97\x5f\x5e\xb0\xf0\ \x56\xaf\x5e\x4d\x77\x77\x77\xc1\xb8\x5c\x7e\xf9\xe5\xbe\xbc\xb9\ \xc9\xa6\x9a\x59\xdc\x45\xb2\x13\x24\x4a\x6d\x19\x37\x6e\x5c\x51\ \x82\xe2\x17\xbf\xf8\x39\x85\xd2\xb1\x9f\xf2\x32\x82\x2a\x66\xcd\ \x9e\xcd\x0b\x2f\xd8\x95\x5c\x9f\x7e\xea\x69\x72\xb9\x9c\x01\x1f\ \x5b\x11\xa5\xac\x85\xf7\xd1\xfa\xf5\x1c\x8d\x65\x5c\xa4\x52\x29\ \x66\xb4\xcc\x08\xab\x1d\x05\x1b\xda\xb8\xe6\xa1\xda\xfe\x8b\xa2\ \xed\x1e\xea\x19\x8a\x89\x34\xc5\x1f\x2b\x70\xee\x47\x2c\x7d\xb1\ \x39\x5f\xa4\x14\xb6\xe5\x76\x93\x02\x51\xdd\x4f\x87\x9a\xca\x38\ \x3e\x55\xa1\x16\x85\xc4\xb4\x3f\x44\x1c\xff\x7d\x27\xa6\xc3\x6f\ \x1f\xd3\x61\x7d\x00\x55\xfc\x5a\x01\x1c\x0b\xef\x67\x6a\x7f\x58\ \x30\xd1\x89\xb4\x30\xa4\x88\xf6\x46\xac\x4e\x81\x63\x69\x81\x98\ \xb5\x02\xbc\x7b\x5c\x38\x6f\x5e\x08\x3b\x53\xa9\x14\x23\x47\x8e\ \xa4\xb9\xb9\x99\xd1\xa3\x47\xd3\xd5\xd5\xc5\xef\x7e\xf7\x3b\x3e\ \xfc\xf0\x43\x5c\xd7\x65\xca\x94\x29\xb4\xb5\xb5\xb1\x70\xe1\xc2\ \x58\x9b\x62\xf5\x01\x94\x58\xd5\x4e\xcd\x7a\x01\x66\x7f\xcc\x99\ \x33\xc7\x73\x1f\xc4\xa2\x2e\x8a\x85\x43\x5d\x7e\xc5\xe5\xfe\xb3\ \x48\x21\xe4\x2f\x7e\xe4\x59\xda\x28\xcd\x45\x26\xef\x92\x25\x4b\ \x38\x74\xe8\xb0\xa1\xab\x22\x06\x84\x8d\x9e\xa7\x7f\xa0\x9f\xc3\ \x87\x0f\x1b\x35\x01\xa2\xcf\xce\x9d\x33\xa7\xe0\xba\x4f\x3d\x15\ \xd9\xae\xa3\x46\x8d\xa2\xa6\xa6\x16\x11\x61\x66\x5b\x5b\x44\xd6\ \xec\xd9\x53\xf0\x9c\x33\xa6\x4f\x27\x9d\x4a\x59\x26\x81\x52\x42\ \xf3\xb8\xe2\x6d\x6f\x6f\x6f\xb7\xda\x1e\xf5\x4d\x34\x3f\x82\xb6\ \x2b\xa3\x3e\x45\xa0\x19\x54\xcc\xf3\x19\xcc\x5b\x27\xa6\x21\x63\ \xc2\xf6\x48\x33\xc7\x36\x31\x54\x4c\xa3\x46\xd4\x69\x14\x2d\xf1\ \xd8\x46\x43\x9c\x07\xbb\x60\x47\x20\xbe\x83\xb1\x30\x14\x12\x96\ \x25\x0e\xaa\x7c\x86\xa5\x78\xc5\x28\x3e\xe1\x95\xf5\xb0\x0a\x68\ \x28\xb3\xec\x73\xb8\x53\x1b\x36\x8c\x32\x84\x77\x82\x62\x21\x86\ \x4d\x19\x16\xfa\x90\xa0\xcc\x2e\x86\x28\x93\xf8\x99\xee\x91\x48\ \x91\x40\x68\x23\x29\x84\xa4\xe3\x41\xbe\x91\x23\x47\xa2\xb5\x26\ \x93\xc9\x84\x8b\x6f\xcc\x98\x31\x74\x76\x76\xf2\xfb\xdf\xff\x9e\ \x0f\x3e\xf8\x80\x6c\x36\xcb\xc4\x89\x13\x3d\x07\xaf\x8a\x36\x18\ \x15\xdb\xa4\x54\xd0\x0e\x31\x4b\x31\xfb\x7d\x44\xd4\xb7\x09\xc7\ \xe1\xb2\xcb\x2e\xfb\x54\x98\xd4\xd4\xd4\x44\xeb\x8c\x96\x28\x7a\ \x22\xe8\x0b\xbc\x8c\xfe\xa1\x26\x91\x18\x6d\x6b\x9b\x35\xb3\x60\ \x91\xbb\xae\xcb\x6f\x7f\xfb\x5b\x72\xb9\xac\x5f\xf8\x43\x59\xa2\ \x4e\xdd\xdd\x5d\xdc\x7f\xff\x03\x5c\x79\xc5\x95\xbc\xbd\xf2\x6d\ \x6b\x92\x05\xc2\x49\x63\x9b\x9b\xa9\xa9\xb6\xaf\x6b\x9e\xd8\xad\ \xad\x33\xfd\xbe\x50\xb4\x98\xa7\x19\x14\x44\xa1\xcc\x9e\x33\x27\ \x2c\x5c\x22\x61\xc9\x64\x35\x64\xdb\x7f\xf7\xbb\xdf\x91\xcd\x66\ \x8d\x05\x10\xd9\xd4\x5d\x5d\x5d\x3c\xf0\x80\xdf\xf6\xb7\x57\x46\ \xe5\x92\x83\x39\x34\x04\xbf\x51\x58\xa2\xd9\x38\x28\xb0\x0b\xbe\ \x28\x89\x16\x6b\x50\xea\x39\x6c\xbf\x2f\x18\x76\x7a\x36\x9e\xd9\ \x90\x98\x0c\xb8\x14\xad\x45\x26\x43\xc6\xad\x61\x42\x23\x6d\xfd\ \xd3\xfe\x7b\x20\x16\x64\x22\xb2\xb8\x72\xb3\x8d\xed\x0c\x86\xc9\ \x84\x5e\x91\xdc\x9d\x32\x3c\xfb\xa6\x93\xdb\x16\xd7\xf1\xbe\x75\ \xe9\xa5\x9e\xff\x67\xd7\xae\x5d\xa4\x52\x29\x9a\x9a\x9a\x42\xb6\ \xf3\xc0\x81\x03\x3c\xfe\xf8\xe3\xdc\x70\xc3\x0d\x4c\x9c\x38\xd1\ \x0b\x3d\xb3\x3a\x35\xca\xcd\x36\x63\x34\x45\x0a\xa2\x35\x0b\x34\ \x38\xaf\xb8\xe2\x0a\xfe\xf4\xa7\x3f\x9d\x72\xe1\x5d\x71\xc5\x15\ \x06\xdb\x66\x06\x5f\x33\x24\x30\x94\x98\x50\x52\x79\x59\x39\x7f\ \xf5\x57\x7f\xc5\xf7\xbf\xff\x7d\xeb\x73\x4f\x3c\xf1\x04\x2f\xbd\ \xf4\x12\xf3\xe7\xcf\x67\xc1\xfc\x05\xf4\x0f\xf4\xb3\x63\xc7\x0e\ \x76\xee\xdc\xc9\xda\xb5\x6b\xe9\xeb\xeb\x0b\x1b\xac\xcc\x08\x01\ \xc3\xac\x98\x3d\x67\x36\x8b\x17\x2f\x2e\xda\x8e\xb6\xb6\x99\xfe\ \xc9\x01\x65\xa5\x65\x05\x4e\x77\xf3\x35\x77\xee\x5c\xcb\xd4\x09\ \x9e\xae\xac\xac\x8c\xbf\xfa\xcf\x7f\xc5\xf7\x7f\x30\x44\xdb\xe7\ \xcd\x67\xc1\x45\x0b\xe8\xef\x1f\xa2\xed\x46\x3d\xf2\xa1\xca\x65\ \x47\xcf\xa8\x62\xd3\x56\x62\x3f\x4d\x47\xb9\x69\x52\x68\x43\x63\ \x54\x4e\x79\x9f\xa1\x8b\x96\x58\x1e\x40\xb1\x4b\x09\xc7\x1c\x87\ \xa6\xad\x17\xf9\xdd\x8c\x84\x9e\xb0\x54\x2d\xb1\xe4\x60\xb1\xbe\ \x43\x11\xad\x46\x29\x82\xdd\xc3\xeb\x89\x91\x2c\x8a\x11\xd8\x6d\ \x26\xcf\x9a\x31\xa7\x81\xda\x15\xb6\xa4\x4f\xd0\x93\xa9\x54\x8a\ \x6b\xae\xbd\x86\x17\x9f\x7f\x91\xed\x3b\xb6\x87\x27\x9f\xeb\xba\ \x88\x08\xfb\xf6\xed\xe3\xc9\x27\x9f\xe4\x73\x9f\xfb\x1c\x63\xc7\ \x8e\x8d\xe4\xdb\x8d\x48\x1d\x8b\x3e\x0a\x7d\x9f\x43\xb9\x53\xbd\ \xef\xcf\x9d\x7b\x26\xb5\xb5\xb5\x1c\x3d\x7a\x74\xc8\x85\x77\xe5\ \x15\x57\x14\xba\x4f\x24\x2a\x2e\x73\x6a\xcd\x95\x48\xb8\xe8\xba\ \x6b\xaf\xe3\x99\x67\x9e\x61\xcd\x9a\x35\xd6\x67\x7b\x7b\x7b\x59\ \xb8\x70\x21\x0b\x17\x2e\x3c\x85\x59\x67\x5f\xcf\x4c\x5f\x9a\x3d\ \xfb\x14\x0b\x6f\xe6\x4c\xcb\x19\xde\xd6\xd6\x56\x74\xe1\x89\x08\ \xb3\x66\xcd\x8e\xf4\x39\xcd\xc5\x80\x70\xdd\x75\xd7\xf1\xcc\xb3\ \x43\xb4\x7d\xd1\x42\x16\x2e\xfa\xf4\xb6\x5b\x71\x96\x22\x43\x32\ \xfa\x1a\x5d\x2c\x24\x83\x22\x22\xa8\x61\x1e\xaa\x9d\x0a\x2c\xa7\ \x8c\xd7\x2c\xae\xab\x49\x0c\x1e\x2a\xc2\x7a\x6e\x91\x66\x62\xcc\ \x26\x50\x81\x76\x61\x00\x43\x23\x98\xf5\xff\xb7\x77\xf5\x3c\x72\ \x1d\x47\xb0\x6b\x28\x7e\x00\xa4\x0c\x5b\x80\x79\x07\x10\x20\x08\ \x30\xf0\x5d\x24\xcb\x04\x73\x27\x16\x44\xd8\x8e\xe8\xc0\x8a\x14\ \x10\xf6\x2f\xd0\x2f\x10\x1c\x28\x93\x52\x67\xca\x18\x29\x52\xa4\ \xdf\x21\x33\xa2\x65\x39\x12\xa0\xc0\x67\x80\xc0\x05\xa4\x75\x68\ \x07\xfb\x66\xba\xaa\xa7\xe7\x78\x27\x08\x8a\x76\x23\xf2\x6e\x77\ \xef\x7d\xcc\xbc\xa9\xa9\xae\xae\xea\x79\x69\x8d\x72\xe1\xac\x7b\ \x14\xb2\x77\x67\x0b\x68\xd4\xe1\x9b\xb5\xc0\xcd\xe1\xcb\x88\x2d\ \xb7\x2c\xf6\x22\x46\xdf\x03\x6b\x7d\x97\xac\x10\x0f\x94\xa5\x36\ \x72\xff\x6c\xf8\x39\xee\x10\xf6\x15\xfb\xfd\x1f\xff\x60\xf7\xee\ \xdd\xb3\xb3\xb3\x33\xbb\x7a\xf5\xaa\x1d\x1c\x1c\xd8\x9d\x3b\x77\ \xec\xf0\xf0\xd0\x4e\x4f\x4f\xed\x8b\x2f\xbe\xb0\xe7\xcf\x9f\x53\ \x2e\x1a\xef\xf3\xda\x5c\x6e\x69\x26\xfb\xdb\x36\xae\xc5\xee\x0e\ \xbc\xf1\xc6\x15\x7b\xf7\x77\xef\x9e\x0f\x33\xdf\x7e\x3b\x7c\x28\ \x3b\x6c\x86\x09\xb5\x5d\x8b\xa4\xfb\x35\x0d\xaf\xcd\x4f\x3f\xf9\ \x64\x10\x43\x97\x79\xf5\xec\xc1\xb1\x8f\xb2\xf0\x37\x7d\xf8\xf0\ \x61\xf9\x99\xeb\xd7\xaf\xdb\xd1\xf1\x51\xec\x7b\x1a\xec\xd7\xef\ \xbc\x53\xbe\xf7\xe8\xe8\xc8\x7e\xf6\xe6\x9b\x74\xdd\xf8\x5c\x77\ \xd0\xed\x93\x4f\x7f\xe8\xb1\xcf\x19\x85\xa8\x95\xe5\x94\x87\x18\ \x5b\x09\x23\xd8\xd9\xe8\xd8\xfa\xbd\xdf\xf9\xd0\x82\xc6\xb2\x45\ \xbe\xe1\xc5\xc9\x95\x46\x64\x0a\x1b\xb1\x26\x22\x81\x6a\x54\x0d\ \xb1\x2f\x8c\xf0\x46\x4b\xfb\xb2\x64\xb4\x2a\x86\xa8\x36\xd5\xd9\ \xc4\x8c\x34\x11\x17\x8d\xf7\x97\xad\x4d\x84\x0d\x3f\x18\x84\xe0\ \x40\x3c\x58\xa6\x50\xc9\xed\xef\x5d\xbb\x7a\xd5\x1e\x3f\x7e\x6c\ \xf7\xef\xdf\x1f\x84\x0b\x4f\xbe\x17\x2f\x5e\xd8\x97\x5f\x7e\x29\ \x4f\xd1\x96\x42\x17\x1b\x05\x55\xf2\xa6\x9b\x89\x16\xa3\xfa\xe2\ \x7b\x8f\xde\x5b\xaf\x76\x8f\x1e\x8d\x01\xc1\xc7\xc9\xa1\x8f\xe7\ \x3d\xe9\x9b\x98\xf1\xc2\x7e\xfe\xd6\x5b\xf6\xf1\xc7\x1f\xdb\x67\ \x9f\x7d\xb6\x2b\x18\x9f\xf3\xf9\xbb\x77\xef\xda\x93\x27\x4f\xec\ \xe9\xd3\xa7\xf6\xf8\xf1\xe3\x11\x18\xc9\x04\x0b\x00\x3b\x3e\x3e\ \xb2\x9b\x37\x6f\x96\xcc\xe3\xb5\x6b\xd7\xc7\x1e\x1b\x80\xfd\x66\ \x31\xf1\x1e\x3c\x78\xb0\xdb\x83\xcb\x43\xbe\xc9\x80\x7e\xeb\x17\ \x3f\xf4\xd8\xff\x44\x7b\xf0\x6e\xc0\x5b\x8b\x0d\xa7\x87\x28\x05\ \x90\x8e\x71\x6b\x4a\xd4\x35\xe2\x3c\x1a\x1b\xe9\xae\x8c\xa8\x3e\ \xfc\xfb\x87\x13\x06\xfa\xcb\x6f\xff\x5a\x01\x3c\x81\x88\xf1\x9f\ \x70\xa9\x62\x7f\x17\x59\x7a\xa1\x19\x71\xea\xb7\xdd\x3d\x2a\xd4\ \x93\x11\xa0\xc8\xdb\x72\xc9\xb7\x62\xb3\xd8\xcb\x0f\xd3\xe6\x31\ \xf2\xd1\xe8\x1b\xbc\x56\x78\x8e\x7f\xff\xef\xfb\xef\xed\xf3\xcf\ \x3f\xb7\x67\xcf\x9e\xd9\xd9\xd9\x99\x9d\x9e\x9e\xda\x77\xdf\x7d\ \x67\xdf\x7e\xfb\xad\x9d\x9c\x9c\xd8\x3f\xbe\xfa\x6a\x4a\x1e\x1e\ \x7f\xd6\xf5\xaa\x85\xf5\x1b\xc1\x5f\xb7\x3a\xf9\xa7\x0a\x14\x49\ \xbe\x37\x96\xba\xd4\x43\x25\x11\xb2\x3a\x14\x9a\x41\x24\x8d\x2d\ \xdc\xec\xe5\xab\x57\xf6\xcd\x37\xff\xb6\xaf\xbf\xfe\xa7\x9d\xfc\ \xf7\xc4\x6e\xff\xf2\xb6\x1d\x1c\x1c\xd8\xe1\xe1\xa1\x1d\x1c\x1e\ \x88\x8f\x8c\x6b\xe8\x5c\xd2\xe2\x7a\xaa\x69\x86\x7f\xca\xf0\x33\ \x81\x42\x6f\xee\x56\x4f\xd6\x42\x72\x9e\x45\x03\x96\x01\x66\x2f\ \x5f\xbe\xda\x09\xed\xff\xf5\xb5\x9d\xfc\xe7\xc4\x6e\xdf\xa6\x63\ \x3f\x38\xd4\xef\x9a\x74\xbc\x91\x40\x13\x41\x23\x7c\x59\x29\x90\ \x45\xfa\xbb\x72\xcc\x76\x1a\x00\x23\xc2\x79\xf7\x9e\x8f\x9e\x7e\ \x74\xd1\x3d\x9e\x91\xb9\xc5\xae\x1a\x07\x73\xd1\x3e\xf6\x3d\x96\ \xa1\x49\xee\xd8\xf8\xb9\xf5\x0c\x34\x92\x49\x21\x55\xd2\xc0\x62\ \x55\x68\x54\x52\x2f\x3e\xa6\x2c\x6c\x96\x5c\x85\xc3\xb4\x27\x75\ \xb8\x5e\x54\xe7\xd0\xc4\xe1\x42\xec\x24\x04\x37\x1a\xac\x91\x79\ \x7d\xf5\xda\x35\x7b\xff\xcf\xef\x53\xbb\x87\x99\xda\x29\xba\x16\ \x4b\x69\xd0\x7b\x0b\x1b\xbc\xde\xcf\xd8\xe0\xe4\xe3\xe1\xa4\x8a\ \x53\xd3\xde\x4e\xfe\xb8\x19\xe5\xb3\x85\x58\x61\xec\x66\x9b\x8b\ \x95\x83\xb5\xc8\x2e\x18\x42\x77\xf6\xb8\xec\x77\x93\x7d\x1c\x00\ \xbb\x71\xfd\x86\x1d\x1d\xff\x6a\x07\x09\x53\xf8\x15\x77\x7f\x23\ \xd9\xff\x8d\xac\xc0\xf4\x8c\x66\x11\x39\x79\x56\x8f\xc1\x88\xec\ \x43\x81\x18\xfc\x3c\x01\x9b\x17\xe5\x4f\x57\xcb\xc3\x1b\x37\x6e\ \xd8\xd1\xf1\x91\x1d\x1f\x1f\x19\xa7\x20\xb1\xe5\x9e\x0f\xa7\xb1\ \xee\xbf\xd9\x46\x7d\x38\x74\xf4\x88\x9c\xf5\xec\xbf\xc3\x6e\xd3\ \xbd\xdc\xbc\x7d\xd6\xe1\x9b\x07\x4b\xe5\x9e\xbd\xac\xd3\x5f\xc4\ \xfa\x01\x12\x18\xd1\x57\xb8\xe8\xe4\xad\x18\x4a\x14\x9f\x4f\x0e\ \xd9\xa6\x6e\x4f\x31\x55\x88\x2d\x03\x33\x8f\x55\x9b\xc5\x1c\x2e\ \xa1\x57\xc7\xd4\x46\x5b\xda\x27\x34\x3c\xd1\x73\x51\xd4\x84\xb4\ \x2b\xd8\x48\x9b\x0b\xa9\x0b\xbd\x1e\xb2\x8d\x17\xd2\x45\xcb\xc7\ \xc1\xbd\xfc\x62\x98\x6a\xe9\x7c\x91\xde\x63\x29\xd5\x69\x66\x99\ \x51\x9d\x90\x15\xa6\x4d\xd3\x6f\xf3\x43\x2f\xff\x9d\xb8\x57\x64\ \xa8\x9e\xdc\xb8\x79\x6c\x38\xe5\xe5\x99\x24\x8e\xa0\x72\xad\xb6\ \xec\xae\x3d\x51\x7b\x69\x82\x62\x62\xc6\x55\xd4\x80\x9a\x91\x87\ \x3a\x6d\xca\x58\x26\x25\x46\xfe\x4e\x2b\xae\x9a\xe1\xb2\xf6\x7e\ \x80\x08\xbd\x04\x2e\x80\xf3\x43\x5d\x0c\x6b\x98\xb6\xec\x4f\x72\ \x61\x36\x73\x96\x1c\x3d\x01\x1d\x29\x83\x8e\x26\x3b\x27\xb2\x72\ \x16\x5b\x87\x8f\x02\x51\xa8\xed\x43\xd8\x44\x8e\x74\x72\x2f\xd9\ \x45\xcb\xcc\xad\x40\x68\xb5\xc2\x5b\xf0\xad\xf1\x9b\x4c\x69\xb5\ \x14\xfb\xc3\x93\xd4\x93\x35\x5e\x86\x6c\x50\x04\x0d\xb5\x80\x22\ \xbc\x96\x2c\xe0\x55\x1c\x44\x50\x57\x8f\x79\x58\x17\x12\xac\x8a\ \x58\xe9\xd1\x08\x26\xb1\x57\x02\xc1\x32\xec\x1c\xdf\x41\x9d\x22\ \xf9\xbc\x1d\xf3\xcf\xd9\xd9\xce\x7d\x3e\xd3\x29\xbd\xd3\xc9\x76\ \x30\x7e\x2f\x1e\x98\x5d\xfa\xb5\xad\x78\xc3\xf1\xd9\x97\x08\xd9\ \x08\x13\x09\x34\xee\xc5\xf0\x91\x9d\xa8\xa4\x78\xc4\x3c\x67\x26\ \xff\xe2\x75\xbc\x26\x65\xa2\x58\xdb\x90\x8d\x94\xc8\xb0\x94\x57\ \xab\xdc\xb6\xd3\xe8\x89\xe1\xea\x95\x8c\x14\x9e\x81\xb0\xf7\xb6\ \x32\x3b\x04\x72\xfd\x03\xc2\x18\xf5\x94\xf5\x09\x1b\x70\xc3\x5c\ \x43\x26\xdc\x3d\xd5\x24\x37\xed\x23\xc9\x7d\x38\xfa\x62\x97\x99\ \xdd\x26\x31\xd2\x38\x13\xd7\xe0\x8f\xec\x11\x39\xba\x2a\xd2\xfd\ \xc6\x16\x46\x11\x4e\xe8\x5b\x3d\xd0\xe3\xf3\x46\x2b\x8d\x53\xac\ \xf1\xc8\xb4\x73\x1f\x3a\x59\x07\x7b\x3d\x3a\x2d\x2e\xbc\x3a\x7a\ \x58\xf4\x0b\x12\x68\xd2\xc2\xd8\x24\x63\x8f\x00\xbe\x47\x3d\xcf\ \xd9\xc1\x79\x83\xb0\x4e\xf9\x75\x8d\xed\xee\xb3\x19\x6e\x6f\x93\ \x72\x0e\x7e\xf1\xc8\xcb\x30\x0e\x34\x49\x66\xb9\x0b\x0b\x3e\x6f\ \xbe\xfd\xcd\xe8\xfe\x1e\xea\x11\xa7\xba\x6a\xcb\xb3\xcc\x15\xa9\ \x38\xcb\x10\x77\x02\xe1\x3e\x59\x1b\xf2\xd6\x82\x6d\x07\x4d\x82\ \x2b\x2f\x65\x76\x14\x9d\x24\x6d\x55\x63\x2c\xec\xca\x13\xcc\x2b\ \xc0\x21\x67\xe2\xe5\x03\x9b\xa1\x90\x4f\xc5\x49\x97\x47\x40\x86\ \x30\x05\x7c\x82\x62\x30\x09\x85\xc4\x9c\x02\x07\x2c\xa0\x56\x05\ \xef\xd2\x51\x38\x24\x9f\xc6\x6c\x8a\x72\x44\xfd\x69\x64\xe4\x9c\ \x82\x31\x27\x07\xb3\x7c\xbd\x2c\x85\x68\x42\xdf\xeb\x11\x32\xc3\ \x93\xd0\x4a\xfd\xe1\x7a\xbb\x50\xc8\x34\xcb\xfb\xc8\xe6\xbf\xf9\ \x4d\x13\x28\x17\xc8\x8d\x69\xd0\x9a\x2d\xb6\x18\xa8\xe1\xa5\x8c\ \xc8\xa2\x80\x8d\x9c\x54\x84\x5a\x7b\x8a\xe5\xbd\xb0\x52\x6f\x5b\ \x8a\x41\xce\x2b\xd2\xaf\xc9\x95\x2b\xb2\xb9\x0f\xa7\xe0\x70\x56\ \x66\xdf\xc4\xc2\x52\x92\xe0\x86\x6e\xce\xd9\x43\x43\x53\xb5\x63\ \x25\x0a\x58\x9b\x36\xe4\x16\xb0\xd3\x32\x5b\x56\xf0\x62\xdd\xef\ \xa4\x0f\x40\x6f\x18\xab\xc3\x94\xf8\x98\x57\xa2\xd4\x47\xe1\x85\ \x45\xbb\xa5\xf8\x32\x86\xb1\xdc\xa5\xdd\x1b\x4c\x3d\xb9\x20\x3b\ \xbb\x0e\xbb\x09\xec\x1a\x85\x79\x92\xbb\x47\x68\x26\x03\xb0\x04\ \xd8\x40\x79\xe5\xfd\x29\x4e\x54\x6a\x47\x14\x05\x35\x3a\xae\x57\ \x85\xa0\x7b\x24\xf2\x08\xf9\x48\x37\x3d\x88\x3d\xba\xc7\x03\xfa\ \xb9\xec\x13\xd9\x30\x29\x99\x88\xc6\x9d\x23\x77\xea\xe8\x94\x71\ \x49\x30\x12\xc7\x68\x8f\x08\x39\xb7\x3c\x06\x9d\x91\x60\x58\xaf\ \x9b\x27\x36\x9a\xb6\x43\x89\x34\x76\xda\xda\x18\x89\x26\xe0\x3a\ \x07\xe6\x63\xb6\xcb\xad\x78\x26\x6d\x3c\x14\xac\xd4\xf7\x78\xcd\ \xa4\x1c\x30\xed\xcd\xb7\xa6\x02\xfe\x26\x83\x15\xdd\xb9\x5d\xde\ \xe5\x06\x82\xa5\xec\x24\x2d\xb6\x32\x64\x3c\xa9\x11\xc3\xb1\x99\ \x8f\x54\x1f\x0d\x91\x1f\x0a\x06\x62\x61\xdd\xf2\x05\x94\x66\x9f\ \x78\x4e\xfb\x0e\xc6\xc8\xb9\x12\x9c\x6c\xd4\x77\x34\x6c\xc0\x1b\ \x61\x90\xbe\x87\xe5\x0c\xb8\xee\xa9\x0c\x0f\x55\x05\xe7\x10\x52\ \xdc\x13\x06\x51\xc4\xfb\x39\x1b\x8d\xb8\x01\x37\x93\x82\xc7\xba\ \x2b\x5a\x88\x23\x38\xbf\xdd\x3b\x21\x22\xd9\xde\x85\x45\xfd\xe0\ \x42\x68\x2f\x3d\x06\x7b\x4b\x7e\xa0\xb4\x7a\xb4\x28\x2d\x8c\x8e\ \x7c\x80\x60\x9f\xc9\xde\xb4\x9b\x66\xed\xf2\xd6\xdb\xd8\xf6\x45\ \x4e\x7a\x4c\xd8\xd6\xb1\x6a\x6f\x60\x09\xfa\x92\x8e\xdd\x8c\x3d\ \x52\xdb\xc8\xad\x8b\x98\xe5\xfe\x00\x34\xf4\xbd\xac\xd1\x39\x6a\ \x97\xc9\x20\x98\xfa\x98\x1d\x13\x90\x32\x9e\x88\x1b\xc4\x65\xed\ \xfd\xea\x25\x18\x35\xe6\x9c\x58\x39\x5b\x1a\xca\x54\x7c\x54\x05\ \x39\x6b\xf2\x03\xd3\xef\x57\x1c\x9c\x9d\xc7\xd7\x41\x90\x6c\x09\ \xe5\x0a\xb4\xb3\x64\xb0\x90\x76\xd8\x58\x5c\x1b\x3d\x78\x4d\x12\ \xb2\x12\xc5\xa0\x66\xce\x12\x0b\x97\x99\x54\x9c\x7b\x75\xe6\x16\ \xad\xea\xc2\x4f\xba\x5c\xac\xee\xdb\x8c\x16\xe7\x43\x2b\xee\x47\ \x75\x53\xd2\x36\x06\xc5\x50\x63\x67\x04\x5b\xc0\x5b\x14\xf7\x52\ \x1f\x1c\xc5\x78\x81\xcd\xf7\x2e\x43\x20\xac\xb6\x1f\x56\x5a\xdb\ \xdb\x65\xed\xfd\x32\xab\x69\x14\x1c\x38\xa0\x9a\xac\xf3\x51\xb0\ \x6a\x59\x83\xc9\xc5\x54\xd8\xa4\xd9\x54\x31\xa5\xa5\x3a\x92\x82\ \x49\x23\x28\x31\xe8\x6d\xf7\x09\x12\xcc\x79\xdb\x73\xf1\x7c\x10\ \x01\x09\xb2\x15\x68\x79\x08\xb8\x3d\x31\x81\x9a\x8b\x18\x14\xa4\ \x97\xec\x67\x0d\x7d\x2c\xb3\x8f\x9e\xe1\x89\x44\xdc\x8b\x1e\x70\ \x82\x68\x3d\x54\x84\x0b\xb8\xb4\xb7\x63\x9d\xeb\xa8\xd1\x0a\xcb\ \x57\xe1\xe9\xa5\xcc\x54\x2e\xe9\x38\x2b\x62\x58\xa5\xc8\x6c\x9c\ \x57\xe7\x24\x22\xd8\x56\x31\x77\x5b\x3c\x93\x23\x24\x84\xfc\x76\ \x5c\xca\x18\xb3\xbf\x65\xfc\x9a\x04\x08\x9c\xf7\x48\x7b\x85\x4c\ \xc8\x4a\x33\xf6\x54\xe1\x4f\x90\x3c\x6b\x95\x67\x7d\xc8\xc5\x27\ \x9e\xb5\x36\x3c\x01\x77\x03\x01\x23\xc9\x35\x43\x3b\x7d\xd8\x93\ \x52\xc4\x52\xc1\x71\x2b\x88\x3a\xba\x33\x96\x26\xc2\x00\x54\xea\ \x72\x5d\xd2\x8d\xc3\x02\x27\xa8\xda\xa8\xe3\xdd\x0b\x32\x87\x18\ \x3f\x4d\x77\x1b\x17\xab\xe7\xae\xb9\x6b\x6c\x32\xa8\x38\xee\xd8\ \xe0\x2b\x75\x95\x4b\xd3\x23\xcf\xeb\xd6\xbb\x92\xd9\x6f\x9b\xde\ \xef\x4d\x08\x9f\xbe\xd7\x1d\x5d\xd7\x04\x7b\x63\xaf\xc4\xcc\x26\ \xa2\xd8\x1f\x54\xb4\xc6\x89\x35\x0d\x7e\xf4\x8d\x4d\xe6\xc6\xe6\ \x5d\xf7\xc6\x56\x48\x6e\x54\xfc\x36\x11\x69\x4c\xb3\x6f\x40\x77\ \x82\x0d\x3b\xb8\x8d\x91\xa1\x37\xc6\x6b\xe3\x9a\xed\x76\xbd\xd1\ \x4a\x0f\x1a\xb3\x60\x44\x91\xae\x5b\x24\xbb\xb6\x80\x70\xb4\x6f\ \x05\x65\xf3\x31\x85\x62\xd8\x01\x56\x89\x30\x01\xc5\x6f\xf2\xf8\ \xe2\x52\x54\xdf\x72\x90\x2b\x38\x12\x71\xc7\x0c\xf3\xec\x2e\x3d\ \xc2\x69\x2f\xb7\xe2\xf1\xb2\x8b\x6a\xf5\x5c\x63\xbe\xda\x4e\x5c\ \xf2\xbb\xeb\xc2\x33\x90\x58\xca\x05\x83\x85\xba\xaa\x3a\x17\x51\ \x27\xa8\x79\x3e\x54\x06\xd6\x8c\x63\x66\xed\xd4\x37\x5b\xbf\xab\ \xea\xd4\x41\x6e\x8f\x2a\x60\xb6\x55\xb0\x17\x0b\x78\x98\x3b\xa0\ \xd9\xc7\x13\xe7\xdc\x93\x5c\xdf\x4d\xfb\x73\x2c\x44\x11\xaf\x03\ \xb0\xd5\xb1\x82\xec\x2e\xb0\xa0\x71\xeb\xd4\xa2\x75\x61\xbf\xbe\ \xdd\xab\x2d\x40\xf5\x8d\xab\x22\x37\xce\x29\xc8\x67\xa6\x15\xe5\ \x35\xc5\x05\x20\xe6\xeb\xa1\x26\x6b\x09\x59\x57\x39\x4a\x1e\x9c\ \x01\x5e\xe1\x12\x68\x26\xf6\xa8\xd3\x24\xd7\x2d\x66\xd4\xa4\x50\ \x33\xc5\x08\x06\x5b\x97\xb4\x7c\xca\x78\xe6\x30\x61\x4f\xd5\x64\ \x2d\x70\x87\x1a\xc7\xc4\x23\x93\xe1\xf3\x78\x06\xc3\x94\x65\x94\ \x82\xb4\x2f\x78\x51\x6e\xa3\xea\x81\x86\x95\x5e\x93\x06\xab\x93\ \x9a\x14\x25\xb2\x8b\x3a\x9e\x27\x81\x40\x62\x8d\x17\xf4\x5c\xb4\ \x53\x35\x17\xb6\x18\x0c\xfb\x12\xcc\xaa\x74\x9e\x36\x87\x4f\x2b\ \xb6\x1d\x45\x78\x1d\x9d\x72\xdc\x9e\x14\x9a\x24\xa2\x88\x95\xd1\ \xe4\x7b\x06\x8c\x76\xa3\xfb\xe3\xd3\xf0\x33\x81\xdf\x96\xb6\x27\ \x5c\x84\xb4\x54\x94\xb4\xa9\xf5\x6d\x92\x01\xa4\xda\xb1\xb3\xfe\ \xd4\x82\x74\xb9\x14\xd4\xc4\x66\xe6\x32\x04\xcf\x2d\x60\x1a\xa2\ \xa6\xc8\x55\x91\x58\x8e\xd9\xdb\x12\x53\x8a\x1e\xc1\x89\xcc\x1f\ \x46\x86\x74\xa7\xbd\x9b\xb7\x62\x5f\xd1\x24\xb5\xb4\x5f\xc8\xbe\ \x52\x3b\xe9\x04\x91\x2f\xe6\x40\x83\x10\x26\x6e\x78\x64\xf2\x64\ \x21\xdd\x58\xe3\xd2\x89\x63\x82\xa0\x4e\xda\xd6\x51\x80\xef\x02\ \x84\xad\xbf\x6b\x68\x07\xc7\x67\xa8\xe9\x98\x64\x10\xbb\xdf\xa3\ \xb8\xb6\x33\x83\xdc\x26\xd1\x6f\x53\xcf\x8f\xe1\xe6\x1d\x01\x0e\ \x01\xef\x08\x72\xca\xe2\x87\x61\x5d\x38\xb6\x0f\x18\x95\xf3\xaa\ \x6d\x52\x1a\x7e\x3d\x09\xd4\x2d\xe7\xab\xbb\x87\x48\x63\x9b\x3d\ \xc3\x1a\xbf\x0b\x32\xc6\xc4\xd9\x98\x46\x27\xbf\x9d\xcd\xdb\x94\ \x03\x6e\xd1\xdf\x97\x7b\xed\xa0\xd0\xb0\x6d\x06\x46\x60\xea\xbd\ \x3b\x1d\x37\x28\x74\x6d\x90\xe7\x87\xb8\x82\xd3\xc3\xd3\x24\x41\ \x19\xb1\x45\x31\x27\x0d\xe7\x45\xa1\xe6\xa4\x10\x49\x29\x91\x55\ \x13\x7a\xc5\x68\x95\xda\x4a\x25\x54\x2a\xc6\xeb\x75\x9e\x9d\xb9\ \x23\x5d\xfe\xf6\x14\x3b\x5c\xc3\x29\x14\x14\x1c\x2a\xfd\x67\x7a\ \xc8\x69\x4e\x78\x2e\x3e\x43\x6a\x5f\x66\x15\x8c\x2d\x18\x5c\xd4\ \xac\xec\x04\xb4\x50\xc1\x2d\xac\xee\x44\xae\x8a\x2b\x6c\xe2\x87\ \x88\x15\xa1\xa3\x98\x67\x57\xc5\xdc\xe1\x1c\x06\xd5\x38\xd2\x98\ \x56\x1d\xcb\x95\xbb\x24\x77\xe3\xe4\x58\x85\x79\x4d\x10\xc7\x52\ \x53\xcc\x43\x0c\x58\x43\xd2\x62\x3f\x85\xc5\x78\x59\x32\xe2\x2b\ \xc6\xf6\xb2\x05\xf4\xde\xa6\x3f\xb6\xb7\x02\xc1\x9c\xec\xf2\x28\ \x2e\x97\x0a\xc7\xdd\xfe\x6c\xd4\x7c\x8c\x23\xa1\xa9\x6e\xd7\x57\ \xd2\xac\xb3\xa3\x27\xa1\xa4\x15\x0d\xa8\xe3\x0a\x00\x08\x7f\x01\ \xa6\x8e\xd3\x02\x5b\xb8\x35\x65\x66\xac\x50\x14\x3c\xd1\x19\x5d\ \x5a\x09\x25\xc8\xde\x33\x13\xba\x1d\xcf\x88\x6c\xe6\x15\x94\x3b\ \xd5\x21\x70\x92\xdb\xa6\x94\x4d\x65\x82\xca\x0a\xbd\x68\xa2\x1d\ \x93\x6e\x31\x8a\xdb\x75\x65\x9c\x61\x91\x72\xc9\x5c\xf8\xc6\x0c\ \x5b\x73\xfb\x11\x14\x5d\x8a\x84\xce\x1b\x91\x4b\xb3\x7e\x16\x4e\ \xba\xdf\x94\x35\xa1\x47\x4d\x2e\xcd\xa9\x40\xdd\x57\x68\x16\x23\ \xf4\x73\xc3\xa4\xfb\x9c\xf8\xe4\xa4\x4c\x36\x39\xe7\xf1\x6f\xea\ \x52\xe8\xe3\x5b\x04\x19\x5a\xc1\x64\x8a\xe7\xa2\xca\x15\xe8\x13\ \x9d\xdb\x6e\xac\xfb\xa2\x84\xf3\xa5\x73\xf4\xac\x57\xb2\xa1\x14\ \x5b\x8b\xb0\xec\x93\xba\x8d\xdc\x17\x52\xaf\x23\x2e\x3a\x07\x64\ \x9a\x73\xc1\x72\x77\x34\x83\x05\x23\x86\xcf\x1b\x39\x3e\xa7\x62\ \xfb\x28\x7a\xf7\x68\xde\x54\x90\x0c\x08\xdb\x0f\xa9\x89\x18\x3b\ \x4f\x6c\x86\x55\xe8\xba\xcb\xc4\xa6\x8e\x30\x43\xb2\x82\xef\x16\ \x8e\x09\x5b\x86\x52\x64\xa8\x86\xda\xc8\x81\x88\xcd\x51\x53\xf5\ \x04\x41\xeb\x0e\xbf\x7a\xd1\xda\xa1\x42\x6b\x78\x52\xd2\x18\xfb\ \x48\x06\xb7\x88\x4e\xed\xb5\x2a\x46\x39\x26\x44\xa3\x87\xa6\x91\ \xb5\x23\xa0\x53\x4b\xa7\x37\x06\x0b\xce\xea\x98\x71\x7b\xa8\x85\ \x09\x94\x7b\xe0\xae\xf1\x1c\x8c\x24\x40\xcc\x2f\xdf\xdf\xd0\x4e\ \xb3\xb8\xbf\x91\x5d\xfb\x16\xaf\x36\x72\x29\xa0\xc6\x48\x02\xe9\ \x77\xff\x6f\x93\xd9\x6b\xb3\x3e\x1a\x57\xb4\xe6\xd2\xc2\x5d\x8b\ \xcd\xc8\x28\x4a\x4e\xa2\x17\x1f\x0a\xbc\x62\x56\xfa\x3e\xb6\x41\ \x0f\x2f\xdb\x80\xad\x4d\x05\xb9\x0c\x50\x96\xc5\x6c\x23\x5a\x1d\ \x59\xbf\x98\xe0\x20\x89\xa1\x97\xcc\x62\x51\xac\xce\xd8\x63\xfe\ \xde\x05\xf4\xb3\xdc\x96\x82\xba\x90\xdf\x4c\x5a\x89\x56\xfa\xc7\ \x5a\xb2\x98\x18\x46\x9f\x0b\xde\xc1\x9e\xaf\x2d\xf9\x51\x56\xf5\ \x51\x16\xf3\x5e\x0f\xbb\x58\x0b\x95\x78\x4b\x09\x74\xf4\x89\x89\ \xce\x91\x5a\xa5\x5e\x35\xc5\x0d\xbc\x16\xbe\xa3\x3e\x2f\x24\x24\ \x87\x05\xcd\x0b\x14\xf7\x5f\x60\x6d\x8d\xa0\x96\x13\xef\xf9\xf3\ \xe7\xf6\xc1\xdf\x3e\xb0\xfd\x6b\xff\xda\xbf\x7e\xbc\xd7\xad\x5b\ \xb7\xa6\x9d\xaf\x4c\xba\xfd\x6b\xff\xda\xbf\x7e\xfc\x57\x0e\xd4\ \x6c\xfb\x49\xb7\x7f\xed\x5f\x3f\xfd\xe4\x6b\xfb\x49\xb7\x7f\xed\ \x5f\x3f\xfd\xe4\xfb\x3f\xd9\x29\x2a\xc7\x62\x4b\x0e\x55\x00\x00\ \x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = "\ \x00\x06\ \x07\xa7\x28\x98\ \x00\x73\ \x00\x70\x00\x6c\x00\x61\x00\x73\x00\x68\ \x00\x09\ \x02\x89\x1c\xd7\ \x00\x73\ \x00\x70\x00\x6c\x00\x61\x00\x73\x00\x68\x00\x69\x00\x6d\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() spykeviewer-0.4.4/spykeviewer/ui/0000755000175000017500000000000012650522331015213 5ustar robrobspykeviewer-0.4.4/spykeviewer/ui/main_window.py0000755000175000017500000016531712650522331020120 0ustar robrobimport os import sys import json import re import traceback import logging import webbrowser import copy import pickle import platform import subprocess import time from PyQt4.QtGui import (QMainWindow, QMessageBox, QApplication, QFileDialog, QInputDialog, QLineEdit, QMenu, QDrag, QPainter, QPen, QPalette, QDesktopServices, QFont, QPixmap, QFileSystemModel, QHeaderView, QActionGroup, QDockWidget) from PyQt4.QtCore import (Qt, pyqtSignature, SIGNAL, QMimeData, QTimer, QSettings, QCoreApplication, QUrl) from spyderlib.widgets.internalshell import InternalShell try: # Support for spyder < 3 from spyderlib.widgets.externalshell.namespacebrowser import \ NamespaceBrowser except ImportError: from spyderlib.widgets.variableexplorer.namespacebrowser import \ NamespaceBrowser from spyderlib.widgets.sourcecode.codeeditor import CodeEditor from spyderlib.utils.misc import get_error_match import spykeutils from spykeutils.plugin.data_provider import DataProvider from spykeutils.plugin.analysis_plugin import AnalysisPlugin from spykeutils.progress_indicator import CancelException from spykeutils import SpykeException from spykeutils.plot.helper import ProgressIndicatorDialog from .. import api from main_ui import Ui_MainWindow from settings import SettingsWindow from filter_dock import FilterDock from filter_dialog import FilterDialog from filter_group_dialog import FilterGroupDialog from plugin_editor_dock import PluginEditorDock import ipython_connection as ipy from plugin_model import PluginModel from remote_thread import RemoteThread logger = logging.getLogger('spykeviewer') # Monkeypatch variable editor to report error in message box try: # spyder < 3 from spyderlib.widgets.dicteditor import DictDelegate except ImportError: from spyderlib.widgets.variableexplorer.collectionseditor import \ CollectionsDelegate as DictDelegate _orig_createEditor = DictDelegate.createEditor def _patched_createEditor(*args, **kwargs): try: return _orig_createEditor(*args, **kwargs) except Exception: QMessageBox.critical(None, 'Edit item', 'Could not create editor for selected data!') DictDelegate.createEditor = _patched_createEditor #noinspection PyCallByClass,PyTypeChecker,PyArgumentList class MainWindow(QMainWindow, Ui_MainWindow): """ The main window of Spyke Viewer. """ def __init__(self, parent=None, splash=None): QMainWindow.__init__(self, parent) api.window = self self.splash = splash self.update_splash_screen('Creating user interface....') QCoreApplication.setOrganizationName('SpykeUtils') QCoreApplication.setApplicationName('Spyke Viewer') self.data_path = QDesktopServices.storageLocation( QDesktopServices.DataLocation) self.startup_script = os.path.join(self.data_path, 'startup.py') self.setupUi(self) self.dir = os.getcwd() # Threads providing output from remotely started plugins self.process_threads = {} self.remote_process_counter = 0 QTimer.singleShot(1000, self.clean_finished_process_threads) # Lazy load mode menu self.load_actions = QActionGroup(self) self.load_actions.setExclusive(True) self.actionFull_Load.setActionGroup(self.load_actions) self.actionLazy_Load.setActionGroup(self.load_actions) self.actionCached_Lazy_Load.setActionGroup(self.load_actions) # Cascading mode menu self.cascade_actions = QActionGroup(self) self.cascade_actions.setExclusive(True) self.actionFull.setActionGroup(self.cascade_actions) self.actionLazy.setActionGroup(self.cascade_actions) # Python console self.console = None self.progress = ProgressIndicatorDialog(self) self.provider_factory = DataProvider self.selections = [] self.provider = None self.plugin_paths = [] self.init_python() # IPython menu option self.ipy_kernel = None if ipy.ipython_available: self.ipyDock = QDockWidget() self.ipyDock.setObjectName('ipythonDock') self.ipyDock.setWindowTitle('IPython') self.addDockWidget(Qt.BottomDockWidgetArea, self.ipyDock) self.ipyDock.setVisible(False) self.ipyDock.visibilityChanged.connect(self.on_ipyDock_visibilityChanged) # Drag and Drop for selections menu self.menuSelections.setAcceptDrops(True) self.menuSelections.paintEvent =\ self.on_menuSelections_paint self.menuSelections.mousePressEvent =\ self.on_menuSelections_mousePressed self.menuSelections.mouseMoveEvent =\ self.on_menuSelections_mouseMoved self.menuSelections.dragEnterEvent =\ self.on_menuSelections_dragEnter self.menuSelections.dragMoveEvent =\ self.on_menuSelections_dragMoved self.menuSelections.dropEvent =\ self.on_menuSelections_drop self.seldrag_start_pos = None self.seldrag_selection = None self.seldrag_target = None self.seldrag_target_upper = False # Filters settings = QSettings() if not settings.contains('filterPath'): data_path = QDesktopServices.storageLocation( QDesktopServices.DataLocation) self.filter_path = os.path.join(data_path, 'filters') else: self.filter_path = settings.value('filterPath') filter_types = self.get_filter_types() self.filterDock = FilterDock(self.filter_path, filter_types, menu=self.menuFilter, parent=self) self.filterDock.setObjectName('filterDock') self.filterDock.current_filter_changed.connect( self.on_current_filter_changed) self.filterDock.filters_changed.connect( self.on_filters_changed) self.addDockWidget(Qt.RightDockWidgetArea, self.filterDock) self.show_filter_exceptions = True # Plugins self.menuPluginsContext = QMenu(self) self.menuPluginsContext.addAction(self.actionRunPlugin) self.menuPluginsContext.addAction(self.actionRemotePlugin) self.menuPluginsContext.addAction(self.actionConfigurePlugin) self.menuPluginsContext.addAction(self.actionEditPlugin) self.menuPluginsContext.addAction(self.actionShowPluginFolder) # Plugin Editor self.pluginEditorDock = PluginEditorDock() self.pluginEditorDock.setObjectName('editorDock') self.addDockWidget(Qt.RightDockWidgetArea, self.pluginEditorDock) self.pluginEditorDock.setVisible(False) self.pluginEditorDock.plugin_saved.connect(self.plugin_saved) self.pluginEditorDock.file_available.connect(self.on_file_available) self.consoleDock.edit_script = lambda (path): \ self.pluginEditorDock.add_file(path) def p(x): match = get_error_match(unicode(x)) if match: fname, lnb = match.groups() self.pluginEditorDock.show_position(fname, int(lnb)) self.connect(self.console, SIGNAL("go_to_error(QString)"), p) # File navigation self.file_system_model = QFileSystemModel() self.file_system_model.setRootPath('') self.fileTreeView.setModel(self.file_system_model) self.fileTreeView.setCurrentIndex( self.file_system_model.index(self.dir)) self.fileTreeView.expand(self.file_system_model.index(self.dir)) self.fileTreeView.setColumnHidden(1, True) self.fileTreeView.setColumnHidden(2, True) self.fileTreeView.setColumnHidden(3, True) self.fileTreeView.header().setResizeMode(QHeaderView.ResizeToContents) # Docks self.setCentralWidget(None) # Finish initialization if we are not a subclass if type(self) is MainWindow: self.finish_initialization() ##### Startup ######################################################## def update_splash_screen(self, message): if not self.splash: return self.splash.showMessage(message, Qt.AlignCenter | Qt.AlignBottom) self.splash.show() QCoreApplication.processEvents() def finish_initialization(self): """ This should to be called at the end of the initialization phase of the program (e.g. at the end of the ``__init__()`` method of a domain-specific subclass). """ self.update_view_menu() self.update_splash_screen('Restoring saved state...') self.restore_state() self.update_splash_screen('Running startup script...') self.run_startup_script() self.set_config_options() if api.config.load_mode == 1: self.actionLazy_Load.trigger() elif api.config.load_mode == 2: self.actionCached_Lazy_Load.trigger() else: self.actionFull_Load.trigger() if api.config.lazy_cascading: self.actionLazy.trigger() else: self.actionFull.trigger() self.update_splash_screen('Loading plugins...') self.reload_plugins() self.load_plugin_configs() if api.config.load_selection_on_start: self.update_splash_screen('Loading previous selection...') self.load_current_selection() def get_filter_types(self): """ Return a list of filter type tuples as required by :class:`filter_dock.FilterDock. Override in domain-specific subclass. """ return [] def update_view_menu(self): """ Recreate the "View" menu. """ if hasattr(self, 'menuView'): a = self.menuView.menuAction() self.mainMenu.removeAction(a) self.menuView.clear() self.menuView = self.createPopupMenu() self.menuView.setTitle('&View') self.mainMenu.insertMenu(self.menuHelp.menuAction(), self.menuView) def set_default_plugin_path(self): """ Set the default plugin path (contains the standard plugins after installation). """ if hasattr(sys, 'frozen'): module_path = os.path.dirname(sys.executable) else: file_path = os.path.abspath(os.path.dirname(__file__)) module_path = os.path.dirname(file_path) plugin_path = os.path.join(module_path, 'plugins') if os.path.isdir(plugin_path): self.plugin_paths.append(plugin_path) else: logger.warning('Plugin path "%s" does not exist, no plugin ' 'path set!' % plugin_path) def restore_state(self): """ Restore previous state of the GUI and settings from saved configuration. """ settings = QSettings() if not settings.contains('windowGeometry') or \ not settings.contains('windowState'): self.set_initial_layout() else: self.restoreGeometry(settings.value('windowGeometry')) self.restoreState(settings.value('windowState')) if not settings.contains('pluginPaths'): self.set_default_plugin_path() else: paths = settings.value('pluginPaths') self.plugin_paths = [] if paths is not None: for p in paths: if not os.path.isdir(p): logger.warning('Plugin path "%s" does not exist, ' 'removing from configuration...' % p) else: self.plugin_paths.append(p) if not self.plugin_paths: logger.warning('No plugin paths set! Setting default path...') self.set_default_plugin_path() if not settings.contains('selectionPath'): self.selection_path = os.path.join(self.data_path, 'selections') else: self.selection_path = settings.value('selectionPath') if not settings.contains('dataPath'): AnalysisPlugin.data_dir = os.path.join(self.data_path, 'data') else: AnalysisPlugin.data_dir = settings.value('dataPath') if not settings.contains('remoteScript') or not os.path.isfile( settings.value('remoteScript')): if settings.contains('remoteScript'): logger.warning('Remote script not found! Reverting to ' 'default location...') if hasattr(sys, 'frozen'): path = os.path.dirname(sys.executable) else: path = os.path.dirname(spykeutils.__file__) path = os.path.join(os.path.abspath(path), 'plugin') self.remote_script = os.path.join(path, 'startplugin.py') else: self.remote_script = settings.value('remoteScript') if self.plugin_paths: self.pluginEditorDock.set_default_path(self.plugin_paths[-1]) def set_initial_layout(self): """ Set an initial layout for the docks (when no previous configuration could be loaded). """ self.filesDock.setMinimumSize(100, 100) self.resize(800, 750) self.removeDockWidget(self.filesDock) self.removeDockWidget(self.filterDock) self.removeDockWidget(self.pluginDock) self.addDockWidget(Qt.RightDockWidgetArea, self.filesDock) self.addDockWidget(Qt.RightDockWidgetArea, self.filterDock) self.addDockWidget(Qt.RightDockWidgetArea, self.pluginDock) self.tabifyDockWidget(self.filterDock, self.pluginDock) self.filesDock.setVisible(True) self.filterDock.setVisible(True) self.pluginDock.setVisible(True) self.consoleDock.setVisible(False) self.variableExplorerDock.setVisible(False) self.historyDock.setVisible(False) self.tabifyDockWidget(self.consoleDock, self.variableExplorerDock) self.tabifyDockWidget(self.variableExplorerDock, self.historyDock) def run_startup_script(self): """ Run the startup script that can be used for configuration. """ if not os.path.isfile(self.startup_script): content = ('# Startup script for Spyke Viewer\n' 'import spykeviewer.api as spyke') try: path = os.path.dirname(self.startup_script) if not os.path.isdir(path): os.makedirs(path) with open(self.startup_script, 'w') as f: f.write(content) except: logger.warning('Could not create startup script ' + self.startup_script + ':\n' + traceback.format_exc() + '\n') return try: with open(self.startup_script, 'r') as f: # We turn all encodings to UTF-8, so remove encoding # comments manually lines = f.readlines() if lines: if re.findall('coding[:=]\s*([-\w.]+)', lines[0]): lines.pop(0) elif re.findall('coding[:=]\s*([-\w.]+)', lines[1]): lines.pop(1) source = ''.join(lines).decode('utf-8') code = compile(source, self.startup_script, 'exec') exec(code, {}) except Exception: logger.warning('Error during execution of startup script ' + self.startup_script + ':\n' + traceback.format_exc() + '\n') def set_config_options(self): self.console.set_codecompletion_enter( api.config.codecomplete_console_enter) self.pluginEditorDock.enter_completion = \ api.config.codecomplete_editor_enter ##### Interactive Python ############################################# def get_console_objects(self): """ Return a dictionary of objects that should be included in the console on startup. These objects will also not be displayed in variable explorer. Override this function in domain-specific subclasses, e.g. for imports. """ import numpy import scipy import matplotlib.pyplot as plt import guiqwt.pyplot as guiplt plt.ion() guiplt.ion() return {'np': numpy, 'sp': scipy, 'plt': plt, 'guiplt': guiplt, 'spyke': api} def init_python(self): """ Initialize the Python docks: console, history and variable explorer. """ class StreamDuplicator(): def __init__(self, out_list): self.outs = out_list def write(self, s): for o in self.outs: o.write(s) def flush(self): for o in self.outs: if hasattr(o, 'flush'): o.flush() def set_parent(self, _): # Called when connecting IPython 0.13 pass # Fixing bugs in the internal shell class FixedInternalShell(InternalShell): def __init__(self, *args, **kwargs): super(FixedInternalShell, self).__init__(*args, **kwargs) # Do not try to show a completion list when completions is None def show_completion_list(self, completions, completion_text="", automatic=True): if completions is None: return super(FixedInternalShell, self).show_completion_list( completions, completion_text, automatic) # Do not get dir() for non-text objects def get_dir(self, objtxt): if not isinstance(objtxt, (str, unicode)): return return super(FixedInternalShell, self).get_dir(objtxt) # Fix exception when using non-ascii characters def run_command(self, cmd, history=True, new_prompt=True): """Run command in interpreter""" if not cmd: cmd = '' else: if history: self.add_to_history(cmd) cmd_line = cmd + '\n' self.interpreter.stdin_write.write(cmd_line.encode('utf-8')) if not self.multithreaded: self.interpreter.run_line() self.emit(SIGNAL("refresh()")) # Console msg = ('current and selections can be used to access selected data' '\n\nModules imported at startup: ') ns = self.get_console_objects() excludes = ['execfile', 'guiplt', 'help', 'raw_input', 'runfile'] first_item = True for n, o in ns.iteritems(): if type(o) == type(sys): if not first_item: msg += ', ' first_item = False msg += o.__name__ if n != o.__name__: msg += ' as ' + n excludes.append(n) ns['current'] = self.provider ns['selections'] = self.selections font = QFont("Monospace") font.setStyleHint(font.TypeWriter, font.PreferDefault) if not platform.system() == 'Darwin': font.setPointSize(9) self.console = FixedInternalShell( self.consoleDock, namespace=ns, multithreaded=False, message=msg, max_line_count=10000, font=font) #self.console.clear_terminal() self.console.set_codecompletion_auto(True) self.console.set_calltips(True) try: self.console.setup_calltips(size=600, font=font) except AttributeError: # Not needed for spyderlib >= 2.3.0 pass self.console.setup_completion(size=(370, 240), font=font) self.consoleDock.setWidget(self.console) # Variable browser self.browser = NamespaceBrowser(self.variableExplorerDock) self.browser.set_shellwidget(self.console) setup_args = dict( check_all=True, exclude_private=True, exclude_uppercase=False, exclude_capitalized=False, exclude_unsupported=False, truncate=False, minmax=False, remote_editing=False, autorefresh=False, excluded_names=excludes) # spyder < 2.3.8 if 'collvalue' in self.browser.setup.__code__.co_varnames: setup_args['collvalue'] = False setup_args['inplace'] = False self.browser.setup(**setup_args) self.variableExplorerDock.setWidget(self.browser) # History self.history = CodeEditor(self.historyDock) self.history.setup_editor(linenumbers=False, language='py', scrollflagarea=False) self.history.setReadOnly(True) self.history.set_text('\n'.join(self.console.history)) self.history.set_cursor_position('eof') self.historyDock.setWidget(self.history) self.console.connect(self.console, SIGNAL("refresh()"), self._append_python_history) # Duplicate stdout and stderr for console # Not using previous stdout, only stderr. Using StreamDuplicator # because spyder stream does not have flush() method... sys.stdout = StreamDuplicator([sys.stdout]) sys.stderr = StreamDuplicator([sys.stderr, sys.__stderr__]) # Set root logging handler to print all log warnings in console ch = logging.StreamHandler() ch.setLevel(logging.WARNING) root_logger = logging.getLogger() root_logger.addHandler(ch) def _append_python_history(self): self.browser.refresh_table() try: self.history.append('\n' + self.console.history[-1]) except IndexError: pass # Empty history, not a problem self.history.set_cursor_position('eof') def on_ipyDock_visibilityChanged(self, visible): if visible and not self.ipyDock.widget(): self.create_ipython_kernel() widget = self.ipy_kernel.get_widget() self.ipyDock.setWidget(widget) def create_ipython_kernel(self): """ Create a new IPython kernel. Does nothing if a kernel already exists. """ if not ipy.ipython_available or self.ipy_kernel: return self.ipy_kernel = ipy.IPythonConnection() self.ipy_kernel.push({'current': self.provider, 'selections': self.selections}) def on_variableExplorerDock_visibilityChanged(self, visible): if visible: self.browser.refresh_table() def on_historyDock_visibilityChanged(self, visible): if visible: self.history.set_cursor_position('eof') ##### Selections ##################################################### def on_menuSelections_mousePressed(self, event): if event.button() == Qt.LeftButton: action = self.menuSelections.actionAt(event.pos()) if action: selection = action.data() if selection: self.seldrag_start_pos = event.pos() self.seldrag_selection = selection else: self.seldrag_start_pos = None self.seldrag_selection = None self.seldrag_target = None QMenu.mousePressEvent(self.menuSelections, event) def on_menuSelections_mouseMoved(self, event): if event.buttons() & Qt.LeftButton and self.seldrag_start_pos: if ((event.pos() - self.seldrag_start_pos).manhattanLength() >= QApplication.startDragDistance()): drag = QDrag(self.menuSelections) data = QMimeData() data.setText(self.seldrag_selection.name) drag.setMimeData(data) drag.exec_() self.seldrag_start_pos = None self.seldrag_selection = None self.seldrag_target = None QMenu.mouseMoveEvent(self.menuSelections, event) def on_menuSelections_paint(self, event): QMenu.paintEvent(self.menuSelections, event) if self.seldrag_target: # Paint line where selection will be dropped p = QPainter() color = QPalette().color(self.menuSelections.foregroundRole()) pen = QPen(color, 2, Qt.SolidLine) p.begin(self.menuSelections) p.setPen(pen) rect = self.menuSelections.actionGeometry(self.seldrag_target) if self.seldrag_target_upper: p.drawLine(rect.topLeft(), rect.topRight()) else: p.drawLine(rect.bottomLeft(), rect.bottomRight()) p.end() def _menuSelections_pos_is_drop_target(self, pos): """ Return if selection can be dropped at this position and prepare information needed for drawing and dropping """ action = self.menuSelections.actionAt(pos) if not action or not action.data(): self.seldrag_target = None return False self.seldrag_target = action rect = self.menuSelections.actionGeometry(action) if pos.y() < rect.top() + rect.height() / 2: self.seldrag_target_upper = True else: self.seldrag_target_upper = False return True def on_menuSelections_dragEnter(self, event): event.setDropAction(Qt.MoveAction) if self._menuSelections_pos_is_drop_target(event.pos()): event.accept() else: event.ignore() QMenu.dragEnterEvent(self.menuSelections, event) def on_menuSelections_dragMoved(self, event): event.setDropAction(Qt.MoveAction) if self._menuSelections_pos_is_drop_target(event.pos()): event.accept() self.menuSelections.update() else: event.ignore() QMenu.dragMoveEvent(self.menuSelections, event) def on_menuSelections_drop(self, event): source = self.seldrag_selection target = self.seldrag_target.data() if source != target: self.selections.remove(source) target_index = self.selections.index(target) if not self.seldrag_target_upper: target_index += 1 self.selections.insert(target_index, source) self.populate_selection_menu() QMenu.dropEvent(self.menuSelections, event) def populate_selection_menu(self): self.menuSelections.clear() a = self.menuSelections.addAction('New') a.triggered.connect(self.on_selection_new) a = self.menuSelections.addAction('Clear') a.triggered.connect(self.on_selection_clear) self.menuSelections.addSeparator() for i, s in enumerate(self.selections): m = self.menuSelections.addMenu(s.name) m.menuAction().setData(s) a = m.addAction('Load') self.connect(a, SIGNAL('triggered()'), lambda sel=s: self.on_selection_load(sel)) a = m.addAction('Save') self.connect(a, SIGNAL('triggered()'), lambda sel=s: self.on_selection_save(sel)) a = m.addAction('Rename') self.connect(a, SIGNAL('triggered()'), lambda sel=s: self.on_selection_rename(sel)) a = m.addAction('Remove') self.connect(a, SIGNAL('triggered()'), lambda sel=s: self.on_selection_remove(sel)) def on_selection_load(self, selection): self.set_current_selection(selection.data_dict()) def on_selection_save(self, selection): i = self.selections.index(selection) self.selections[i] = self.provider_factory( self.selections[i].name, self) self.populate_selection_menu() def on_selection_clear(self): if QMessageBox.question( self, 'Please confirm', 'Do you really want to remove all selections?', QMessageBox.Yes | QMessageBox.No) == QMessageBox.No: return del self.selections[:] self.populate_selection_menu() def on_selection_rename(self, selection): (name, ok) = QInputDialog.getText( self, 'Edit selection name', 'New name:', QLineEdit.Normal, selection.name) if ok and name: selection.name = name self.populate_selection_menu() def on_selection_remove(self, selection): if QMessageBox.question( self, 'Please confirm', 'Do you really want to remove the selection "%s"?' % selection.name, QMessageBox.Yes | QMessageBox.No) == QMessageBox.No: return self.selections.remove(selection) self.populate_selection_menu() def on_selection_new(self): self.selections.append(self.provider_factory( 'Selection %d' % (len(self.selections) + 1), self)) self.populate_selection_menu() def serialize_selections(self): sl = list() # Selection list, current selection as first item sl.append(self.provider_factory('__current__', self).data_dict()) for s in self.selections: sl.append(s.data_dict()) return json.dumps(sl, sort_keys=True, indent=2) def save_selections_to_file(self, filename): f = open(filename, 'w') f.write(self.serialize_selections()) f.close() def load_selections_from_file(self, filename): try: f = open(filename, 'r') p = json.load(f) f.close() for s in p: if not s: continue if s['name'] == '__current__': self.set_current_selection(s) else: self.add_selection(s) except Exception, e: QMessageBox.critical(self, 'Error loading selection', str(e).decode('utf8')) logger.warning('Error loading selection:\n' + traceback.format_exc() + '\n') finally: self.progress.done() self.populate_selection_menu() def load_current_selection(self): """ Load the displayed (current) selection from a file. """ current_selection = os.path.join( self.selection_path, '.current.sel') if os.path.isfile(current_selection): self.load_selections_from_file(current_selection) else: self.populate_selection_menu() @pyqtSignature("") def on_actionSave_selection_triggered(self): d = QFileDialog(self, 'Choose where to save selection', self.selection_path) d.setAcceptMode(QFileDialog.AcceptSave) d.setNameFilter("Selection files (*.sel)") d.setDefaultSuffix('sel') if d.exec_(): filename = str(d.selectedFiles()[0]) else: return self.save_selections_to_file(filename) @pyqtSignature("") def on_actionLoad_selection_triggered(self): d = QFileDialog(self, 'Choose selection file', self.selection_path) d.setAcceptMode(QFileDialog.AcceptOpen) d.setFileMode(QFileDialog.ExistingFile) d.setNameFilter("Selection files (*.sel)") if d.exec_(): filename = unicode(d.selectedFiles()[0]) else: return self.load_selections_from_file(filename) def set_current_selection(self, data): """ Set the current selection based on a dictionary of selection data. Override in domain-specific subclasses. """ raise NotImplementedError('No selection model defined!') def add_selection(self, data): """ Add a selection based on a dictionary of selection data. Override in domain-specific subclasses. """ raise NotImplementedError('No selection model defined!') ##### Filters ######################################################## def on_current_filter_changed(self): enabled = self.filterDock.current_is_data_item() self.actionEditFilter.setEnabled(enabled) self.actionDeleteFilter.setEnabled(enabled) self.actionCopyFilter.setEnabled(enabled) def on_filters_changed(self, filter_type): self.filter_populate_function[filter_type]() def editFilter(self, copy_item): top = self.filterDock.current_filter_type() group = self.filterDock.current_filter_group() name = self.filterDock.current_name() item = self.filterDock.current_item() group_filters = None if not self.filterDock.is_current_group(): dialog = FilterDialog( self.filterDock.filter_group_dict(), top, group, name, item.code, item.combined, item.on_exception, self) else: group_filters = self.filterDock.group_filters(top, name) group = None dialog = FilterGroupDialog(top, name, item.exclusive, self) while dialog.exec_(): if copy_item and name == dialog.name(): QMessageBox.critical( self, 'Error saving', 'Please select a different name for the copied element') continue try: if not copy_item and name != dialog.name(): self.filterDock.delete_item(top, name, group) if not self.filterDock.is_current_group(): self.filterDock.add_filter( dialog.name(), dialog.group(), dialog.type(), dialog.code(), dialog.on_exception(), dialog.combined(), overwrite=True) else: self.filterDock.add_filter_group( dialog.name(), dialog.type(), dialog.exclusive(), copy.deepcopy(group_filters), overwrite=True) break except ValueError as e: QMessageBox.critical(self, 'Error saving', str(e)) def get_active_filters(self, filter_type): """ Return a list of active filters for the selected filter type """ return self.filterDock.get_active_filters(filter_type) def is_filtered(self, item, filters): """ Return if one of the filter functions in the given list applies to the given item. Combined filters are ignored. """ for f, n in filters: if f.combined or not f.active: continue try: if not f.function()(item): return True except Exception, e: if self.show_filter_exceptions: sys.stderr.write( 'Exception in filter ' + n + ':\n' + str(e) + '\n') if not f.on_exception: return True return False def filter_list(self, items, filters): """ Return a filtered list of the given list with the given filter functions. Only combined filters are used. """ if not items: return items item_type = type(items[0]) for f, n in filters: if not f.combined or not f.active: continue try: items = [i for i in f.function()(items) if isinstance(i, item_type)] except Exception, e: if self.show_filter_exceptions: sys.stderr.write( 'Exception in filter ' + n + ':\n' + str(e) + '\n') if not f.on_exception: return [] return items def refresh_filters(self): """ Refresh the list of possible filters. Call if filters are changed programmatically. """ self.filterDock.populate_filter_tree() @pyqtSignature("") def on_actionNewFilterGroup_triggered(self): top = self.filterDock.current_filter_type() dialog = FilterGroupDialog(top, parent=self) while dialog.exec_(): try: self.filterDock.add_filter_group(dialog.name(), dialog.type(), dialog.exclusive()) break except ValueError as e: QMessageBox.critical(self, 'Error creating group', str(e)) @pyqtSignature("") def on_actionNewFilter_triggered(self): top = self.filterDock.current_filter_type() group = self.filterDock.current_filter_group() dialog = FilterDialog(self.filterDock.filter_group_dict(), type=top, group=group, parent=self) while dialog.exec_(): try: self.filterDock.add_filter(dialog.name(), dialog.group(), dialog.type(), dialog.code(), dialog.on_exception(), dialog.combined()) break except ValueError as e: QMessageBox.critical(self, 'Error creating filter', str(e)) @pyqtSignature("") def on_actionDeleteFilter_triggered(self): self.filterDock.delete_current_filter() @pyqtSignature("") def on_actionEditFilter_triggered(self): self.editFilter(False) @pyqtSignature("") def on_actionCopyFilter_triggered(self): self.editFilter(True) ##### Plugins ######################################################## def get_plugin_configs(self): """ Return dictionary indexed by (name,path) tuples with configuration dictionaries for all plugins. """ indices = self.plugin_model.get_all_indices() c = {} for idx in indices: path = self.plugin_model.data( idx, self.plugin_model.FilePathRole) plug = self.plugin_model.data(idx, self.plugin_model.DataRole) if plug: c[(plug.get_name(), path)] = plug.get_parameters() return c def set_plugin_configs(self, configs): """ Takes a dictionary indexed by plugin name with configuration dictionaries for plugins and sets configurations of plugins. """ indices = self.plugin_model.get_all_indices() d = {} for idx in indices: path = self.plugin_model.data( idx, self.plugin_model.FilePathRole) plug = self.plugin_model.data(idx, self.plugin_model.DataRole) if plug: d[(plug.get_name(), path)] = plug for n, c in configs.iteritems(): if n in d: d[n].set_parameters(c) def reload_plugins(self, keep_configs=True): """ Reloads all plugins. :param bool keep_configs: If ``True``, try to restore all plugin configuration parameters after reloading. Default: ``True`` """ old_closed = self._get_closed_folders() old_path = None old_configs = {} if hasattr(self, 'plugin_model'): if keep_configs: old_configs = self.get_plugin_configs() item = self.pluginsTreeView.currentIndex() if item: old_path = self.plugin_model.data( item, self.plugin_model.FilePathRole) try: self.plugin_model = PluginModel() for p in self.plugin_paths: self.plugin_model.add_path(p) except Exception, e: QMessageBox.critical(self, 'Error loading plugins', str(e)) return self.pluginsTreeView.setModel(self.plugin_model) selected_index = None if old_path: indices = self.plugin_model.get_indices_for_path(old_path) if indices: selected_index = indices[0] self.pluginsTreeView.setCurrentIndex(selected_index) self.pluginsTreeView.expandAll() self.pluginsTreeView.selectionModel().currentChanged.connect( self.selected_plugin_changed) self.selected_plugin_changed(selected_index) self.set_plugin_configs(old_configs) self.restore_closed_plugin_folders(old_closed) def _equal_path(self, index, path): path_list = list(reversed(path.split('/'))) while index.row() >= 0: if not path_list or index.data() != path_list.pop(0): return False index = index.parent() return True def restore_closed_plugin_folders(self, paths): if paths is not None: folders = self.plugin_model.get_all_folders() for p in paths: for f in folders: if self._equal_path(f, p): self.pluginsTreeView.setExpanded(f, False) break def load_plugin_configs(self, closed_folders=None): # Restore closed plugin folders paths = closed_folders if paths is None: settings = QSettings() if settings.contains('closedPluginFolders'): paths = settings.value('closedPluginFolders') self.restore_closed_plugin_folders(paths) # Restore plugin configurations configs_path = os.path.join(self.data_path, 'plugin_configs.p') if os.path.isfile(configs_path): with open(configs_path, 'r') as f: try: configs = pickle.load(f) self.set_plugin_configs(configs) except: pass # It does not matter if we can't load plugin configs def selected_plugin_changed(self, current): enabled = True if not current: enabled = False elif not self.plugin_model.data(current, Qt.UserRole): enabled = False self.actionRunPlugin.setEnabled(enabled) self.actionEditPlugin.setEnabled(enabled) self.actionConfigurePlugin.setEnabled(enabled) self.actionRemotePlugin.setEnabled(enabled) self.actionShowPluginFolder.setEnabled(enabled) @pyqtSignature("") def on_actionRunPlugin_triggered(self): plugin = self._save_plugin_before_run() if not plugin: return self._run_plugin(plugin) def _save_plugin_before_run(self): ana = self.current_plugin() if not ana: return None if api.config.save_plugin_before_starting: e = self.pluginEditorDock.get_editor(ana.source_file) if self.pluginEditorDock.file_was_changed(e): if not self.pluginEditorDock.save_file(e): return None ana = self.current_plugin() if not ana: return None return ana def _run_plugin(self, plugin, current=None, selections=None, finish_progress=True): if current is None: current = self.provider if selections is None: selections = self.selections try: return plugin.start(current, selections) except SpykeException, err: QMessageBox.critical(self, 'Error executing plugin', str(err)) except CancelException: return None except Exception, e: # Only print stack trace from plugin on tb = sys.exc_info()[2] while not ('self' in tb.tb_frame.f_locals and tb.tb_frame.f_locals['self'] == plugin): if tb.tb_next is not None: tb = tb.tb_next else: break traceback.print_exception(type(e), e, tb) return None finally: if finish_progress: self.progress.done() @pyqtSignature("") def on_actionEditPlugin_triggered(self): item = self.pluginsTreeView.currentIndex() path = '' if item: path = self.plugin_model.data( item, self.plugin_model.FilePathRole) if not path and self.plugin_paths: path = self.plugin_paths[0] self.pluginEditorDock.add_file(path) @pyqtSignature("") def on_actionLoad_Python_File_triggered(self): path = '' if self.plugin_paths: path = self.plugin_paths[-1] d = QFileDialog(self, 'Choose file to edit', path) d.setAcceptMode(QFileDialog.AcceptOpen) d.setFileMode(QFileDialog.ExistingFiles) d.setNameFilter("Python files (*.py)") if not d.exec_(): return for p in d.selectedFiles(): self.pluginEditorDock.add_file(unicode(p)) @pyqtSignature("") def on_actionConfigurePlugin_triggered(self): ana = self.current_plugin() if not ana: return ana.configure() @pyqtSignature("") def on_actionRefreshPlugins_triggered(self): self.reload_plugins() @pyqtSignature("") def on_actionNewPlugin_triggered(self): self.pluginEditorDock.new_file() @pyqtSignature("") def on_actionSavePlugin_triggered(self): self.pluginEditorDock.save_current() @pyqtSignature("") def on_actionSavePluginAs_triggered(self): self.pluginEditorDock.save_current(True) @pyqtSignature("") def on_actionShowPluginFolder_triggered(self): QDesktopServices.openUrl(QUrl.fromLocalFile( os.path.dirname(self.current_plugin_path()))) @pyqtSignature("") def on_actionRemotePlugin_triggered(self): plugin = self._save_plugin_before_run() if not plugin: return self._execute_remote_plugin(plugin) def send_plugin_info(self, name, path, selections, config, io_files): """ Send information to start a plugin to the configured remote script. :param str name: Name of the plugin class :param str path: Path of the plugin file :param str selections: Serialized selections to use :param str config: Pickled plugin configuration :param list io_files: List of paths to required IO plugins. """ # Save files to circumvent length limit for command line selection_path = os.path.join( self.selection_path, '.temp_%f_.sel' % time.time()) with open(selection_path, 'w') as f: f.write(selections) params = ['python', self.remote_script, name, path, selection_path, '-cf', '-sf', '-c', config, '-dd', AnalysisPlugin.data_dir] if io_files: params.append('-io') params.extend(io_files) params.extend(api.config.remote_script_parameters) p = subprocess.Popen( params, stdout=subprocess.PIPE, stderr=subprocess.PIPE) std = RemoteThread(p, self.remote_process_counter, False, self) err = RemoteThread(p, self.remote_process_counter, True, self) self.connect(std, SIGNAL("output(int, QString)"), self.output_std) self.connect(err, SIGNAL("output(int, QString)"), self.output_err) self.connect(err, SIGNAL("execution_complete(int)"), self.remote_plugin_done) std.start() err.start() self.process_threads[self.remote_process_counter] = (std, err, p) print '[#%d started]' % self.remote_process_counter self.remote_process_counter += 1 def output_std(self, id_, line): print '[#%d]' % id_, line def output_err(self, id_, line): sys.stderr.write(line + '\n') def remote_plugin_done(self, id_): print '[#%d done]' % id_ def clean_finished_process_threads(self): """ Periodically checks if threads for remote plugin output are still running, removes them otherwise. """ for k in self.process_threads.keys(): t = self.process_threads[k] if not t[0].isRunning() and not t[1].isRunning(): t[2].wait() del self.process_threads[k] QTimer.singleShot(1000, self.clean_finished_process_threads) @pyqtSignature("") def on_actionEdit_Startup_Script_triggered(self): self.pluginEditorDock.add_file(self.startup_script) @pyqtSignature("") def on_actionRestorePluginConfigurations_triggered(self): self.reload_plugins(False) def on_pluginsTreeView_doubleClicked(self, index): self.on_actionRunPlugin_triggered() def on_pluginsTreeView_customContextMenuRequested(self, pos): self.menuPluginsContext.popup(self.pluginsTreeView.mapToGlobal(pos)) def plugin_saved(self, path): if path == self.startup_script: return plugin_path = os.path.normpath(os.path.realpath(path)) in_dirs = False for p in self.plugin_paths: directory = os.path.normpath(os.path.realpath(p)) if os.path.commonprefix([plugin_path, directory]) == directory: in_dirs = True break if in_dirs: self.reload_plugins() elif api.config.ask_plugin_path: if QMessageBox.question(self, 'Warning', 'The file "%s"' % plugin_path + ' is not in the currently valid plugin ' 'directories. Do you want to open the ' 'directory' 'settings now?', QMessageBox.Yes | QMessageBox.No) == \ QMessageBox.No: return self.on_actionSettings_triggered() def current_plugin(self): """ Return the currently selected plugin object """ item = self.pluginsTreeView.currentIndex() if not item: return None return self.plugin_model.data(item, self.plugin_model.DataRole) def current_plugin_path(self): """ Return the path of the file from which the currently selected plugin has been loaded. """ item = self.pluginsTreeView.currentIndex() if not item: return None return self.plugin_model.data(item, self.plugin_model.FilePathRole) def get_plugin(self, name): """ Get plugin with the given name. Raises a SpykeException if multiple plugins with this name exist. Returns None if no such plugin exists. """ plugins = self.plugin_model.get_plugins_for_name(name) if not plugins: return None if len(plugins) > 1: raise SpykeException('Multiple plugins named "%s" exist!' % name) return plugins[0] def start_plugin(self, name, current=None, selections=None, finish_progress=True): """ Start first plugin with given name and return result of start() method. Raises a SpykeException if not exactly one plugins with this name exist. :param str name: Name of the plugin (as specified by the get_name() method in the plugin. :param current: A DataProvider to use as current selection. If ``None``, the regular current selection from the GUI is used. Default: ``None`` :param list selections: A list of DataProvider objects to use as selections. If ``None``, the regular selections from the GUI are used. Default: ``None`` :param bool finish_progress: If ``True``, progress indicators are closed automatically after the plugin finishes. """ plugins = self.plugin_model.get_plugins_for_name(name) if not plugins: raise SpykeException('No plugin named "%s" exists!' % name) if len(plugins) > 1: raise SpykeException('Multiple plugins named "%s" exist!' % name) if api.config.save_plugin_before_starting: e = self.pluginEditorDock.get_editor(plugins[0].source_file) if self.pluginEditorDock.file_was_changed(e): if not self.pluginEditorDock.save_file(e): return plugins = self.plugin_model.get_plugins_for_name(name) if not plugins: return None if len(plugins) > 1: raise SpykeException( 'Multiple plugins named "%s" exist!' % name) return self._run_plugin(plugins[0], current, selections, finish_progress) def start_plugin_remote(self, plugin, current=None, selections=None): """ Start given plugin (or plugin with given name) remotely. Does not return any value. Raises a SpykeException if not exactly one plugins with this name exist. """ if not isinstance(plugin, AnalysisPlugin): plugins = self.plugin_model.get_plugins_for_name(plugin) if not plugins: raise SpykeException('No plugin named "%s" exists!' % plugin) if len(plugins) > 1: raise SpykeException( 'Multiple plugins named "%s" exist!' % plugin) plugin = plugins[0] self._execute_remote_plugin(plugin, current, selections) def on_file_available(self, available): """ Callback when availability of a file for a plugin changes. """ self.actionSavePlugin.setEnabled(available) self.actionSavePluginAs.setEnabled(available) ##### General housekeeping ########################################### @pyqtSignature("") def on_actionSettings_triggered(self): settings = SettingsWindow(self.selection_path, self.filter_path, AnalysisPlugin.data_dir, self.remote_script, self.plugin_paths, self) if settings.exec_() == settings.Accepted: try: self.clean_temporary_selection_files(self.selection_path) except: pass # Does not matter if e.g. old directory does not exist self.selection_path = settings.selection_path() self.filter_path = settings.filter_path() self.remote_script = settings.remote_script() AnalysisPlugin.data_dir = settings.data_path() self.plugin_paths = settings.plugin_paths() if self.plugin_paths: self.pluginEditorDock.set_default_path(self.plugin_paths[-1]) self.reload_plugins() @pyqtSignature("") def on_actionExit_triggered(self): self.close() @pyqtSignature("") def on_actionAbout_triggered(self): from .. import __version__ about = QMessageBox(self) about.setWindowTitle(u'About Spyke Viewer') about.setTextFormat(Qt.RichText) about.setIconPixmap(QPixmap(':/Application/Main')) about.setText( u'Version ' + __version__ + u'

Spyke Viewer is an application for navigating, ' u'analyzing and visualizing electrophysiological datasets.
' u'
' u'www.ni.tu-berlin.de/software/spykeviewer' u'

Copyright 2012, 2013 \xa9 Robert Pr\xf6pper
' u'Neural Information Processing Group
' u'TU Berlin, Germany

' u'If you use Spyke Viewer in work that leads to a scientific ' u'publication, please cite:
' u'Pr\xf6pper, R. and Obermayer, K. (2013). Spyke Viewer: a ' u'flexible and extensible platform for electrophysiological data ' u'analysis.
' u'Front. Neuroinform. 7:26. doi: 10.3389/fninf.2013.00026' u'

Licensed under the terms of the BSD license.
' u'Icons from the Crystal Project (\xa9 2006-2007 Everaldo Coelho)') about.show() @pyqtSignature("") def on_actionDocumentation_triggered(self): webbrowser.open('http://spyke-viewer.readthedocs.org') @pyqtSignature("") def on_actionSpyke_Repository_triggered(self): webbrowser.open('http://spyke-viewer.g-node.org') def _get_closed_folders(self): if not hasattr(self, 'plugin_model'): return [] folders = self.plugin_model.get_all_folders() paths = [] for f in folders: if self.pluginsTreeView.isExpanded(f): continue path = [f.data()] p = f.parent() while p.row() >= 0: path.append(p.data()) p = p.parent() paths.append('/'.join(reversed(path))) return paths def clean_temporary_selection_files(self, path): """ Remove temporary .temp_..._.sel files from a directory. These files are written when executing plugins remotely. """ for f in os.listdir(path): if f.startswith('.temp_') and f.endswith('_.sel'): os.remove(os.path.join(path, f)) def closeEvent(self, event): """ Saves filters, plugin configs and GUI state. """ if not self.pluginEditorDock.close_all(): event.ignore() return # Ensure that selection folder exists if not os.path.exists(self.selection_path): try: os.makedirs(self.selection_path) except OSError: QMessageBox.critical( self, 'Error', 'Could not create selection directory!') self.save_selections_to_file( os.path.join(self.selection_path, '.current.sel')) self.clean_temporary_selection_files(self.selection_path) # Ensure that filters folder exists if not os.path.exists(self.filter_path): try: os.makedirs(self.filter_path) except OSError: QMessageBox.critical(self, 'Error', 'Could not create filter directory!') self.filterDock.save() # Save GUI configuration (docks and toolbars) settings = QSettings() settings.setValue('windowGeometry', self.saveGeometry()) settings.setValue('windowState', self.saveState()) # Save further configurations settings.setValue('pluginPaths', self.plugin_paths) settings.setValue('selectionPath', self.selection_path) settings.setValue('filterPath', self.filter_path) settings.setValue('remoteScript', self.remote_script) settings.setValue('dataPath', AnalysisPlugin.data_dir) # Save plugin configurations configs = self.get_plugin_configs() configs_path = os.path.join(self.data_path, 'plugin_configs.p') with open(configs_path, 'w') as f: pickle.dump(configs, f) # Save closed plugin folders settings.setValue('closedPluginFolders', self._get_closed_folders()) super(MainWindow, self).closeEvent(event) # Prevent lingering threads self.fileTreeView.setModel(None) del self.file_system_model self.pluginsTreeView.setModel(None) del self.plugin_model spykeviewer-0.4.4/spykeviewer/ui/filter_dock.py0000644000175000017500000005270112650522331020057 0ustar robrobimport os from PyQt4 import QtGui, QtCore from PyQt4.QtGui import (QDockWidget, QMessageBox, QAbstractItemView, QTreeWidget, QApplication, QStyle, QTreeWidgetItem) from PyQt4.QtCore import Qt, pyqtSignal from ..plugin_framework.filter_manager import FilterManager from checkable_item_delegate import CheckableItemDelegate class FilterDock(QDockWidget): """ Dock with filter tree. It manages filters of different types. They are displayed in a tree view and can be moved using drag and drop (only possible within the same filter type). The dock also takes care of storing and restoring the filters from disk. This dock has two signals: * ``current_filter_changed()``: Emitted when the currently selected item in the tree view changes. * ``filters_changed(str)``: Emitted whenever an action causes the list of filtered items to (potentially) change. """ FilterTreeRoleTop = 0 FilterTreeRoleGroup = 1 FilterTreeRoleFilter = 2 current_filter_changed = pyqtSignal() filters_changed = pyqtSignal(str) def __init__(self, filter_path, type_list, menu=None, title='Filter', parent=None): """ Create a new filter dock. :param str filter_path: Folder in the filesystem where filters are saved and loaded. :param list type_list: A list of (str, str) tuples. Each tuple describes one filter type. The first element is the name of the filter type. It will be displayed and used as parameter in the filters_changed callback. The second element is the filename that will be used to save and load the filters of this type. :param :class:`PyQt4.QtGui.QMenu` menu: A menu that will be displayed as context when the tree view is right-clicked. :param str title: The title of the dock. :param :class:`PyQt4.QtGui.QWidget` parent: The parent of this dock. """ QDockWidget.__init__(self, title, parent) self.setupUi() self.filter_path = filter_path self.menuFilter = menu self.filter_managers = {} self.type_list = type_list self.reload_filters(filter_path) self.filterTreeWidget.dragMoveEvent = self._filter_drag_move self.filterTreeWidget.dropEvent = self._filter_drag_end self.filterTreeWidget.keyReleaseEvent = self._filter_key_released self.filterTreeWidget.mouseReleaseEvent = \ self._filter_mouse_released self.filterTreeWidget.setItemDelegate( CheckableItemDelegate(self.filterTreeWidget)) self.filterTreeWidget.currentItemChanged.connect( self._current_filter_changed) self.filterTreeWidget.customContextMenuRequested.connect( self._context_menu) def reload_filters(self, filter_path=None): """ Reload filters from disk. :param str filter_path: Folder in the filesystem where filters are saved and loaded. If ``None``, previous filter path is used. Default: ``None`` """ if filter_path: self.filter_path = filter_path for t in self.type_list: self.filter_managers[t[0]] = FilterManager( t[1], os.path.join(filter_path, t[1] + '.py')) self.populate_filter_tree() def get_active_filters(self, filter_type): """ Return currently active filters for a filter type. """ return self.filter_managers[filter_type].get_active_filters() # Method injection to handle the actual "drop" of Drag and Drop def _filter_drag_end(self, event): source = self.filterTreeWidget.currentItem() source_name = source.text(0) target = self.filterTreeWidget.itemAt(event.pos()) source_top, source_group = self._get_filter_item_coords(source) parent = target.parent() if parent: if parent.parent(): target_top = parent.parent().text(0) target_group = parent.text(0) else: target_top = parent.text(0) if target.data(1, Qt.UserRole) == \ self.FilterTreeRoleGroup: target_group = target.text(0) else: target_group = None else: target_top = target.text(0) target_group = None # Find drop position target_index = self.filterTreeWidget.indexAt(event.pos()) target_height = self.filterTreeWidget.rowHeight(target_index) pos = event.pos() pos.setY((pos.y() - target_height / 2)) item_above_target = self.filterTreeWidget.itemAt(pos) above_target = item_above_target.text(0) if item_above_target \ else None item = self.filter_managers[source_top].get_item(source_name, source_group) try: self.filter_managers[source_top].remove_item(source_name, source_group) if target_group: self.filter_managers[target_top].add_item(item, source_name, target_group) else: self.filter_managers[target_top].add_item(item, source_name) except ValueError as e: QMessageBox.critical(self, 'Error moving item', str(e)) return self.filter_managers[target_top].move_item(source_name, above_target, target_group) self.populate_filter_tree() self.filters_changed.emit(source_top) # Method injection into the filter tree (to enable custom drag and drop # behavior) def _filter_drag_move(self, event): QAbstractItemView.dragMoveEvent(self.filterTreeWidget, event) source = self.filterTreeWidget.currentItem() target = self.filterTreeWidget.itemAt(event.pos()) if not target: event.ignore() return source_top = source.parent() if source_top.parent(): source_top = source_top.parent() target_top = target if target_top.parent(): target_top = target_top.parent() if target_top.parent(): target_top = target_top.parent() # Drag and Drop is only allowed for the same filter type if source_top != target_top: event.ignore() return # Groups can only be dragged to top level if source.data(1, Qt.UserRole) == self.FilterTreeRoleGroup: if target.data(1, Qt.UserRole) == \ self.FilterTreeRoleGroup: event.ignore() return if target.parent() != target_top and target != target_top: event.ignore() return # This strange hack prevents from dragging to root level if source_top == target: pos = event.pos() pos.setY(pos.y() - 2) higher_target = self.filterTreeWidget.itemAt(pos) if target != higher_target: event.ignore() # Method injection into the filter tree # (to enable custom checkable behavior) def _filter_key_released(self, event): index = self.filterTreeWidget.currentIndex() if index.data(CheckableItemDelegate.CheckTypeRole) and \ event.key() == Qt.Key_Space: self._switch_check_state(index) event.accept() # Hack to repaint the whole current item: self.filterTreeWidget.currentItem().setExpanded(False) elif event.key() == Qt.Key_Delete: self.delete_current_filter() else: QTreeWidget.keyReleaseEvent(self.filterTreeWidget, event) # Method injection into the filter tree # (to enable custom checkable behavior) def _filter_mouse_released(self, event): index = self.filterTreeWidget.indexAt(event.pos()) if index.data(CheckableItemDelegate.CheckTypeRole) and \ event.button() == Qt.LeftButton: style = QApplication.instance().style() radio_button_width = style.pixelMetric( QStyle.PM_ExclusiveIndicatorWidth) spacing = style.pixelMetric(QStyle.PM_RadioButtonLabelSpacing) item = self.filterTreeWidget.itemFromIndex(index) ind = 1 while item.parent(): ind += 1 item = item.parent() indent = ind * self.filterTreeWidget.indentation() if indent < event.x() < indent + radio_button_width + spacing: self._switch_check_state(index) event.accept() # Hack to repaint the whole current item: self.filterTreeWidget.currentItem().setExpanded(False) return QTreeWidget.mouseReleaseEvent(self.filterTreeWidget, event) def _get_filter_item_coords(self, item): parent = item.parent() if parent.parent(): top = parent.parent().text(0) group = parent.text(0) else: top = parent.text(0) group = None return top, group def _switch_check_state(self, index): item = self.filterTreeWidget.itemFromIndex(index) top, group = self._get_filter_item_coords(item) if index.data(CheckableItemDelegate.CheckTypeRole) == \ CheckableItemDelegate.CheckBoxCheckType: item.setData(0, CheckableItemDelegate.CheckedRole, not index.data(CheckableItemDelegate.CheckedRole)) f = self.filter_managers[top].get_item(item.text(0), group) f.active = item.data(0, CheckableItemDelegate.CheckedRole) else: parent = item.parent() if not parent: siblings = (self.filterTreeWidget.topLevelItem(x) for x in xrange(self.filterTreeWidget.topLevelItemCount())) else: siblings = (parent.child(x) for x in xrange(parent.childCount())) for s in siblings: s.setData(0, CheckableItemDelegate.CheckedRole, s == item) f = self.filter_managers[top].get_item(s.text(0), group) f.active = (s == item) self.filters_changed.emit(top) def current_filter_type(self): """ Return the name of the currently selected filter group or filter. If nothing is selected, None is returned. """ item = self.filterTreeWidget.currentItem() top = None if item: while item.parent(): item = item.parent() top = item.text(0) return top def current_filter_group(self): """ Return the name of the currently selected filter group. If a from inside a group is selected, the name of that group is returned. If a group or no item is selected, None is returned. """ item = self.filterTreeWidget.currentItem() group = None if item: parent = item.parent() if parent: if parent.parent(): group = parent.text(0) elif item.data(1, Qt.UserRole) == self.FilterTreeRoleGroup: group = item.text(0) return group def current_name(self): """ Return name of currently selected item. """ item = self.filterTreeWidget.currentItem() return item.text(0) def is_current_group(self): """ Return if the currently selected item is a filter group. """ item = self.filterTreeWidget.currentItem() return item.data(1, Qt.UserRole) == self.FilterTreeRoleGroup def current_item(self): """ Returns the current filter or filter group. """ item = self.filterTreeWidget.currentItem() top = self.current_filter_type() group = None if item: parent = item.parent() if parent: if parent.parent(): group = parent.text(0) return self.filter_managers[top].get_item(item.text(0), group) def group_filters(self, filter_type, group_name): """ Returns a list of all filters for a given filter group. :param str filter_type: Type of the filter group. :param str group_name: Name of the group. :returns: list """ return self.filter_managers[filter_type].get_group_filters(group_name) def filter_group_dict(self): """ Return a dictionary with filter groups for each filter type. """ d = {} for n, m in self.filter_managers.iteritems(): d[n] = m.list_group_names() return d def delete_item(self, filter_type, name, group): """ Removes a filter or a filter group. :param str name: Name of the item to be removed. :param str group: Name of the group to which the item belongs. If this is None, a top level item will be removed. Default: None """ self.filter_managers[filter_type].remove_item(name, group) def delete_current_filter(self): """ Removes the current filter. Checks with the user if he really wants to remove the filter. """ item = self.filterTreeWidget.currentItem() if not item: return if not item.parent(): return if QMessageBox.question(self, 'Please confirm', 'Do you really want to delete "%s"?' % item.text(0), QMessageBox.Yes | QMessageBox.No) == QMessageBox.No: return parent = item.parent() if parent.parent(): top = parent.parent().text(0) group = parent.text(0) else: top = parent.text(0) group = None try: self.filter_managers[top].remove_item(item.text(0), group) except StandardError as e: QMessageBox.critical(self, 'Error removing filter', str(e)) else: self.populate_filter_tree() self.filters_changed.emit(top) def add_filter(self, name, group, filter_type, code, on_exception, combined, overwrite=False): """ Add a new filter. :param str name: Name of the new filter. :param str group: Name of the group that the new filter belongs to. If this is None, the filter will not belong to any group (root level). Default: None :param str filter_type: The type of the new filter :param list code: List of lines of code in the filter function. :param bool on_exception: Should the filter return True on an exception? Default: ``True`` :param bool overwrite: If ``True``, an existing filter with the same name will be overwritten. If ``False`` and a filter with the same name exists, a value error is raised. Default: ``False`` """ self.filter_managers[filter_type].add_filter( name, code, on_exception=on_exception, group_name=group, combined=combined, overwrite=overwrite) self.populate_filter_tree() self.filters_changed.emit(filter_type) def add_filter_group(self, name, filter_type, exclusive, filters=None, overwrite=False): """ Add a new filter group. :param str name: The name of the new filter group. :param str filter_type: The name of the type the filter group belongs to. :param bool exclusive: Determines if the new group is exclusive, i.e. only one of its items can be active at the same time. :param list filters: A list of filter objects that the new filter group will contain. Default: None :param bool overwrite: If ``True``, an existing group with the same name will be overwritten. If ``False`` and a group with the same name exists, a value error is raised. Default : ``False`` """ self.filter_managers[filter_type].add_group( name, exclusive, group_filters=filters, overwrite=overwrite) self.populate_filter_tree() self.filters_changed.emit(filter_type) def save(self): """ Save all filters. """ for m in self.filter_managers.itervalues(): m.save() def populate_filter_tree(self): """ Populates the filter tree widget from the filter data. Called automatically from other methods when necessary. """ self.filterTreeWidget.clear() for name, manager in sorted(self.filter_managers.items()): top = QTreeWidgetItem(self.filterTreeWidget) top.setText(0, name) top.setFlags(Qt.ItemIsEnabled | Qt.ItemIsDropEnabled) top.setData(1, Qt.UserRole, self.FilterTreeRoleTop) top.setTextColor(0, Qt.gray) top.setChildIndicatorPolicy(QTreeWidgetItem.ShowIndicator) self.filterTreeWidget.addTopLevelItem(top) if manager.list_items(): top.setExpanded(True) for i in manager.list_items(): if isinstance(i[1], manager.FilterGroup): group = QTreeWidgetItem(top) group.setText(0, i[0]) group.setData(1, Qt.UserRole, self.FilterTreeRoleGroup) group.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable | Qt.ItemIsDropEnabled | Qt.ItemIsDragEnabled) group.setChildIndicatorPolicy( QTreeWidgetItem.ShowIndicator) if i[1].list_items(): group.setExpanded(True) top.addChild(group) for f in i[1].list_items(): item = QTreeWidgetItem(group) item.setText(0, f[0]) if f[1].active: item.setData(0, CheckableItemDelegate.CheckedRole, True) else: item.setData(0, CheckableItemDelegate.CheckedRole, False) if i[1].exclusive: item.setData(0, CheckableItemDelegate.CheckTypeRole, CheckableItemDelegate.RadioCheckType) else: item.setData(0, CheckableItemDelegate.CheckTypeRole, CheckableItemDelegate.CheckBoxCheckType) item.setData(1, Qt.UserRole, self.FilterTreeRoleFilter) item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable | Qt.ItemIsDragEnabled) group.addChild(item) else: item = QTreeWidgetItem(top) item.setText(0, i[0]) if i[1].active: item.setData(0, CheckableItemDelegate.CheckedRole, True) else: item.setData(0, CheckableItemDelegate.CheckedRole, False) item.setData(0, CheckableItemDelegate.CheckTypeRole, CheckableItemDelegate.CheckBoxCheckType) item.setData(1, Qt.UserRole, self.FilterTreeRoleFilter) item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable | Qt.ItemIsDragEnabled) top.addChild(item) def current_is_data_item(self): """ Returns if the currently selected item is a filter or a filter group. """ current = self.filterTreeWidget.currentItem() return current is not None and \ current.data(1, Qt.UserRole) != self.FilterTreeRoleTop def _current_filter_changed(self, current): self.current_filter_changed.emit() def _context_menu(self, pos): if self.menuFilter: self.menuFilter.popup(self.filterTreeWidget.mapToGlobal(pos)) def setupUi(self): self.filterTreeWidget = QtGui.QTreeWidget(self) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(3) sizePolicy.setHeightForWidth( self.filterTreeWidget.sizePolicy().hasHeightForWidth()) self.filterTreeWidget.setSizePolicy(sizePolicy) self.filterTreeWidget.setContextMenuPolicy( QtCore.Qt.CustomContextMenu) self.filterTreeWidget.setDragEnabled(True) self.filterTreeWidget.setDragDropMode( QtGui.QAbstractItemView.InternalMove) self.filterTreeWidget.setDefaultDropAction(QtCore.Qt.MoveAction) self.filterTreeWidget.setAlternatingRowColors(False) self.filterTreeWidget.setUniformRowHeights(False) self.filterTreeWidget.setObjectName("filterTreeWidget") self.filterTreeWidget.header().setVisible(False) self.setWidget(self.filterTreeWidget)spykeviewer-0.4.4/spykeviewer/ui/settings.ui0000644000175000017500000001176512650522331017424 0ustar robrob Settings 0 0 647 438 Settings QGroupBox { border: 1px solid gray; border-radius: 5px; margin-top: 1ex; /* leave space at the top for the title */ } QGroupBox::title { subcontrol-origin: margin; subcontrol-position: top left; /* position at the top center */ padding: 0 2px; left: 10px; } Plugin paths Add Remove Qt::Horizontal QDialogButtonBox::Cancel|QDialogButtonBox::Ok Filter path true Change Selection path true Change Data path true Change Remote script true Change buttonBox accepted() Settings accept() 248 254 157 274 buttonBox rejected() Settings reject() 316 260 286 274 spykeviewer-0.4.4/spykeviewer/ui/settings_ui.py0000644000175000017500000001627012650522331020130 0ustar robrob# -*- coding: utf-8 -*- # Form implementation generated from reading ui file '/home/rob/Spyke/viewer/spykeviewer/ui/settings.ui' # # Created: Wed Oct 16 10:24:01 2013 # by: PyQt4 UI code generator 4.9.3 # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: _fromUtf8 = lambda s: s class Ui_Settings(object): def setupUi(self, Settings): Settings.setObjectName(_fromUtf8("Settings")) Settings.resize(647, 438) Settings.setStyleSheet(_fromUtf8("QGroupBox {\n" " border: 1px solid gray;\n" " border-radius: 5px;\n" " margin-top: 1ex; /* leave space at the top for the title */\n" "}\n" "QGroupBox::title {\n" " subcontrol-origin: margin;\n" " subcontrol-position: top left; /* position at the top center */\n" " padding: 0 2px;\n" " left: 10px;\n" "}")) self.gridLayout_2 = QtGui.QGridLayout(Settings) self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2")) self.groupBox = QtGui.QGroupBox(Settings) self.groupBox.setObjectName(_fromUtf8("groupBox")) self.gridLayout = QtGui.QGridLayout(self.groupBox) self.gridLayout.setObjectName(_fromUtf8("gridLayout")) self.pathListWidget = QtGui.QListWidget(self.groupBox) self.pathListWidget.setObjectName(_fromUtf8("pathListWidget")) self.gridLayout.addWidget(self.pathListWidget, 0, 0, 1, 2) self.addPathButton = QtGui.QPushButton(self.groupBox) self.addPathButton.setObjectName(_fromUtf8("addPathButton")) self.gridLayout.addWidget(self.addPathButton, 1, 0, 1, 1) self.removePathButton = QtGui.QPushButton(self.groupBox) self.removePathButton.setObjectName(_fromUtf8("removePathButton")) self.gridLayout.addWidget(self.removePathButton, 1, 1, 1, 1) self.gridLayout_2.addWidget(self.groupBox, 4, 0, 1, 1) self.buttonBox = QtGui.QDialogButtonBox(Settings) self.buttonBox.setOrientation(QtCore.Qt.Horizontal) self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok) self.buttonBox.setObjectName(_fromUtf8("buttonBox")) self.gridLayout_2.addWidget(self.buttonBox, 5, 0, 1, 1) self.groupBox_2 = QtGui.QGroupBox(Settings) self.groupBox_2.setObjectName(_fromUtf8("groupBox_2")) self.horizontalLayout_2 = QtGui.QHBoxLayout(self.groupBox_2) self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2")) self.filterPath = QtGui.QLineEdit(self.groupBox_2) self.filterPath.setReadOnly(True) self.filterPath.setObjectName(_fromUtf8("filterPath")) self.horizontalLayout_2.addWidget(self.filterPath) self.changeFilterPathButton = QtGui.QPushButton(self.groupBox_2) self.changeFilterPathButton.setObjectName(_fromUtf8("changeFilterPathButton")) self.horizontalLayout_2.addWidget(self.changeFilterPathButton) self.gridLayout_2.addWidget(self.groupBox_2, 1, 0, 1, 1) self.groupBox_3 = QtGui.QGroupBox(Settings) self.groupBox_3.setObjectName(_fromUtf8("groupBox_3")) self.horizontalLayout = QtGui.QHBoxLayout(self.groupBox_3) self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout")) self.selectionPath = QtGui.QLineEdit(self.groupBox_3) self.selectionPath.setReadOnly(True) self.selectionPath.setObjectName(_fromUtf8("selectionPath")) self.horizontalLayout.addWidget(self.selectionPath) self.changeSelectionPathButton = QtGui.QPushButton(self.groupBox_3) self.changeSelectionPathButton.setObjectName(_fromUtf8("changeSelectionPathButton")) self.horizontalLayout.addWidget(self.changeSelectionPathButton) self.gridLayout_2.addWidget(self.groupBox_3, 0, 0, 1, 1) self.groupBox_4 = QtGui.QGroupBox(Settings) self.groupBox_4.setObjectName(_fromUtf8("groupBox_4")) self.horizontalLayout_3 = QtGui.QHBoxLayout(self.groupBox_4) self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3")) self.dataPath = QtGui.QLineEdit(self.groupBox_4) self.dataPath.setReadOnly(True) self.dataPath.setObjectName(_fromUtf8("dataPath")) self.horizontalLayout_3.addWidget(self.dataPath) self.changeDataPathButton = QtGui.QPushButton(self.groupBox_4) self.changeDataPathButton.setObjectName(_fromUtf8("changeDataPathButton")) self.horizontalLayout_3.addWidget(self.changeDataPathButton) self.gridLayout_2.addWidget(self.groupBox_4, 2, 0, 1, 1) self.groupBox_5 = QtGui.QGroupBox(Settings) self.groupBox_5.setObjectName(_fromUtf8("groupBox_5")) self.horizontalLayout_4 = QtGui.QHBoxLayout(self.groupBox_5) self.horizontalLayout_4.setObjectName(_fromUtf8("horizontalLayout_4")) self.remoteScriptPath = QtGui.QLineEdit(self.groupBox_5) self.remoteScriptPath.setReadOnly(True) self.remoteScriptPath.setObjectName(_fromUtf8("remoteScriptPath")) self.horizontalLayout_4.addWidget(self.remoteScriptPath) self.changeRemoteScriptButton = QtGui.QPushButton(self.groupBox_5) self.changeRemoteScriptButton.setObjectName(_fromUtf8("changeRemoteScriptButton")) self.horizontalLayout_4.addWidget(self.changeRemoteScriptButton) self.gridLayout_2.addWidget(self.groupBox_5, 3, 0, 1, 1) self.retranslateUi(Settings) QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("accepted()")), Settings.accept) QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("rejected()")), Settings.reject) QtCore.QMetaObject.connectSlotsByName(Settings) def retranslateUi(self, Settings): Settings.setWindowTitle(QtGui.QApplication.translate("Settings", "Settings", None, QtGui.QApplication.UnicodeUTF8)) self.groupBox.setTitle(QtGui.QApplication.translate("Settings", "Plugin paths", None, QtGui.QApplication.UnicodeUTF8)) self.addPathButton.setText(QtGui.QApplication.translate("Settings", "Add", None, QtGui.QApplication.UnicodeUTF8)) self.removePathButton.setText(QtGui.QApplication.translate("Settings", "Remove", None, QtGui.QApplication.UnicodeUTF8)) self.groupBox_2.setTitle(QtGui.QApplication.translate("Settings", "Filter path", None, QtGui.QApplication.UnicodeUTF8)) self.changeFilterPathButton.setText(QtGui.QApplication.translate("Settings", "Change", None, QtGui.QApplication.UnicodeUTF8)) self.groupBox_3.setTitle(QtGui.QApplication.translate("Settings", "Selection path", None, QtGui.QApplication.UnicodeUTF8)) self.changeSelectionPathButton.setText(QtGui.QApplication.translate("Settings", "Change", None, QtGui.QApplication.UnicodeUTF8)) self.groupBox_4.setTitle(QtGui.QApplication.translate("Settings", "Data path", None, QtGui.QApplication.UnicodeUTF8)) self.changeDataPathButton.setText(QtGui.QApplication.translate("Settings", "Change", None, QtGui.QApplication.UnicodeUTF8)) self.groupBox_5.setTitle(QtGui.QApplication.translate("Settings", "Remote script", None, QtGui.QApplication.UnicodeUTF8)) self.changeRemoteScriptButton.setText(QtGui.QApplication.translate("Settings", "Change", None, QtGui.QApplication.UnicodeUTF8)) spykeviewer-0.4.4/spykeviewer/ui/checkable_item_delegate.py0000644000175000017500000000524012650522331022337 0ustar robrobfrom PyQt4.QtCore import Qt from PyQt4.QtGui import QStyledItemDelegate, QStyle, QApplication class CheckableItemDelegate(QStyledItemDelegate): """ A StyledItemDelegate for checkable items with support for both checkboxes and radio buttons. """ CheckTypeRole = Qt.UserRole + 102 CheckedRole = Qt.UserRole + 103 CheckBoxCheckType = 1 RadioCheckType = 2 def __init__(self, viewWidget): QStyledItemDelegate.__init__(self) self.viewWidget = viewWidget self.counter = 0 def paint(self, painter, option, index): #noinspection PyArgumentList style = QApplication.instance().style() if index.data(CheckableItemDelegate.CheckTypeRole): # Size and spacing in current style is_radio = index.data(CheckableItemDelegate.CheckTypeRole) == \ CheckableItemDelegate.RadioCheckType if is_radio: button_width = style.pixelMetric( QStyle.PM_ExclusiveIndicatorWidth, option) spacing = style.pixelMetric( QStyle.PM_RadioButtonLabelSpacing, option) else: button_width = style.pixelMetric( QStyle.PM_IndicatorWidth, option) spacing = style.pixelMetric( QStyle.PM_CheckBoxLabelSpacing, option) # Draw default appearance shifted to right myOption = option left = myOption.rect.left() myOption.rect.setLeft(left + spacing + button_width) QStyledItemDelegate.paint(self, painter, myOption, index) # Draw check button to open space (where expand indicator would be) myOption.rect.setLeft(left) myOption.rect.setWidth(button_width) if index.data(CheckableItemDelegate.CheckedRole): myOption.state |= QStyle.State_On else: myOption.state |= QStyle.State_Off if is_radio: style.drawPrimitive( QStyle.PE_IndicatorRadioButton, myOption, painter) else: style.drawPrimitive( QStyle.PE_IndicatorCheckBox, myOption, painter) else: QStyledItemDelegate.paint(self, painter, option, index) def sizeHint(self, option, index): s = QStyledItemDelegate.sizeHint(self, option, index) radio_height = QApplication.style().pixelMetric( QStyle.PM_ExclusiveIndicatorHeight, option) check_height = QApplication.style().pixelMetric( QStyle.PM_IndicatorHeight, option) s.setHeight(max(s.height(), radio_height, check_height)) return s spykeviewer-0.4.4/spykeviewer/ui/neo_navigation.ui0000644000175000017500000000745512650522331020565 0ustar robrob neoNavigationDock 0 0 352 559 Navigation Blocks: Qt::CustomContextMenu QAbstractItemView::NoEditTriggers QAbstractItemView::ExtendedSelection Channel Groups: Qt::CustomContextMenu QAbstractItemView::NoEditTriggers QAbstractItemView::ExtendedSelection Channels: Qt::CustomContextMenu QAbstractItemView::NoEditTriggers QAbstractItemView::ExtendedSelection Segments: Qt::CustomContextMenu QAbstractItemView::NoEditTriggers QAbstractItemView::ExtendedSelection Units: Qt::CustomContextMenu QAbstractItemView::NoEditTriggers QAbstractItemView::ExtendedSelection spykeviewer-0.4.4/spykeviewer/ui/filter_dialog.py0000644000175000017500000001643012650522331020375 0ustar robrobfrom PyQt4.QtGui import (QDialog, QLabel, QComboBox, QDialogButtonBox, QGridLayout, QLineEdit, QMessageBox, QCheckBox, QFont) from PyQt4.QtCore import Qt, SIGNAL from spyderlib.widgets.sourcecode.codeeditor import CodeEditor class FilterDialog(QDialog): """ A dialog for editing filters """ solo_signatures = ['def filter(block):', 'def filter(segment):', 'def filter(rcg):', 'def filter(rc):', 'def filter(unit):'] combi_signatures = ['def filter(blocks):', 'def filter(segments):', 'def filter(rcgs):', 'def filter(rcs):', 'def filter(units):'] def __init__(self, groups, type=None, group=None, name=None, code=None, combined=False, on_exception=False, parent=None): QDialog.__init__(self, parent) self.setupUi() self.groups = groups if type: index = self.filterTypeComboBox.findText(type) if index >= 0: self.filterTypeComboBox.setCurrentIndex(index) self.populate_groups() if group: index = self.filterGroupComboBox.findText(group) if index >= 0: self.filterGroupComboBox.setCurrentIndex(index) if name: self.nameLineEdit.setText(name) if code: self.editor.set_text('\n'.join(code)) if name and code and type: self.filterTypeComboBox.setEnabled(False) self.combinedCheckBox.setChecked(combined) self.onExceptionCheckBox.setChecked(on_exception) def populate_groups(self): self.filterGroupComboBox.clear() self.filterGroupComboBox.addItem('') for g in sorted(self.groups[self.filterTypeComboBox.currentText()]): self.filterGroupComboBox.addItem(g) def setupUi(self): self.setWindowTitle('Edit filter') #self.resize(400, 300) self.signatureLabel = QLabel(self) self.signatureLabel.setText('def filter(block):') font = QFont('Some font that does not exist') font.setStyleHint(font.TypeWriter, font.PreferDefault) self.editor = CodeEditor(self) self.editor.setup_editor( linenumbers=False, language='py', scrollflagarea=False, codecompletion_enter=True, font=font, highlight_current_line=False, occurence_highlighting=False) self.editor.setCursor(Qt.IBeamCursor) self.editor.horizontalScrollBar().setCursor(Qt.ArrowCursor) self.editor.verticalScrollBar().setCursor(Qt.ArrowCursor) self.editor.set_text('return True') self.onExceptionCheckBox = QCheckBox(self) self.onExceptionCheckBox.setText('True on exception') self.onExceptionCheckBox.setToolTip('Determines if the filter will ' 'admit items if there is an ' 'exception during its execution') self.combinedCheckBox = QCheckBox(self) self.combinedCheckBox.setText('Combined filter') self.combinedCheckBox.setToolTip('Determines if the filter operates ' 'on single items (return True or ' 'False) or lists of items (return a ' 'list of items to be admitted)') self.filterTypeComboBox = QComboBox(self) self.filterTypeComboBox.addItem('Block') self.filterTypeComboBox.addItem('Segment') self.filterTypeComboBox.addItem('Recording Channel Group') self.filterTypeComboBox.addItem('Recording Channel') self.filterTypeComboBox.addItem('Unit') self.filterGroupComboBox = QComboBox(self) self.nameLineEdit = QLineEdit() self.dialogButtonBox = QDialogButtonBox(self) self.dialogButtonBox.setAutoFillBackground(False) self.dialogButtonBox.setOrientation(Qt.Horizontal) self.dialogButtonBox.setStandardButtons( QDialogButtonBox.Cancel | QDialogButtonBox.Ok) self.dialogButtonBox.setCenterButtons(True) gridLayout = QGridLayout(self) gridLayout.addWidget(self.signatureLabel, 0, 0, 1, 4) gridLayout.addWidget(self.editor, 1, 0, 1, 4) gridLayout.addWidget(self.onExceptionCheckBox, 2, 2, 1, 1) gridLayout.addWidget(self.combinedCheckBox, 2, 3, 1, 1) gridLayout.addWidget(QLabel('Type:', self), 2, 0) gridLayout.addWidget(self.filterTypeComboBox, 2, 1) gridLayout.addWidget(QLabel('Group:', self), 3, 0) gridLayout.addWidget(self.filterGroupComboBox, 3, 1, 1, 3) gridLayout.addWidget(QLabel('Name:', self), 4, 0) gridLayout.addWidget(self.nameLineEdit, 4, 1, 1, 3) gridLayout.addWidget(self.dialogButtonBox, 5, 0, 1, 4) self.connect(self.dialogButtonBox, SIGNAL('accepted()'), self.accept) self.connect(self.dialogButtonBox, SIGNAL('rejected()'), self.reject) self.combinedCheckBox.stateChanged.connect( self.combined_state_changed) self.connect(self.filterTypeComboBox, SIGNAL('currentIndexChanged(int)'), self.on_filterTypeComboBox_currentIndexChanged) def name(self): return self.nameLineEdit.text() def code(self): return [self.editor.get_text_line(l) for l in xrange( self.editor.get_line_count())] def type(self): return self.filterTypeComboBox.currentText() def combined(self): return self.combinedCheckBox.isChecked() def group(self): if self.filterGroupComboBox.currentText() == '': return None return self.filterGroupComboBox.currentText() def on_exception(self): return self.onExceptionCheckBox.isChecked() def combined_state_changed(self): self.set_signature() def code_errors(self): code = self.signatureLabel.text() + '\n\t' code += '\n\t'.join(self.code()) try: compile(code, '', 'exec') except SyntaxError as e: return e.msg + ' (Line %d)' % (e.lineno - 1) return None def set_signature(self): if self.combinedCheckBox.isChecked(): self.signatureLabel.setText( self.combi_signatures[ self.filterTypeComboBox.currentIndex()]) else: self.signatureLabel.setText( self.solo_signatures[ self.filterTypeComboBox.currentIndex()]) def on_filterTypeComboBox_currentIndexChanged(self, index): self.set_signature() self.populate_groups() #noinspection PyCallByClass,PyTypeChecker,PyArgumentList def accept(self): if len(self.nameLineEdit.text()) < 1: QMessageBox.critical(self, 'Error saving filter', 'Please provide a name for the filter.') return if '"' in self.nameLineEdit.text(): QMessageBox.critical(self, 'Error saving filter', 'You cannot use " in the name of a filter.') return err = self.code_errors() if err: QMessageBox.critical(self, 'Error saving filter', 'Compile error:\n' + err) return QDialog.accept(self)spykeviewer-0.4.4/spykeviewer/ui/plugin_model.py0000644000175000017500000001145012650522331020244 0ustar robrobfrom PyQt4.QtCore import Qt from PyQt4.QtCore import QAbstractItemModel, QModelIndex from spykeviewer.plugin_framework.plugin_manager import PluginManager #noinspection PyMethodOverriding class PluginModel(PluginManager, QAbstractItemModel): """ Implements a Qt-Model for the PluginManager for use in e.g. QTreeView """ DataRole = Qt.UserRole FilePathRole = Qt.UserRole + 1 def __init__(self, parent=None): PluginManager.__init__(self) QAbstractItemModel.__init__(self, parent) def columnCount(self, parent): return 1 def data(self, index, role): if not index.isValid(): return None item = index.internalPointer() if role == Qt.DisplayRole: if index.column() > 0: return None return item.name.decode('utf-8') if role == PluginModel.DataRole: return item.data if role == PluginModel.FilePathRole: return item.path return None def flags(self, index): if not index.isValid(): return Qt.NoItemFlags if not index.internalPointer().data: return Qt.NoItemFlags return Qt.ItemIsEnabled | Qt.ItemIsSelectable def headerData(self, section, orientation, role): if orientation == Qt.Horizontal and role == Qt.DisplayRole and \ section == 0: return self.root.name return None def index(self, row, column, parent): if not self.hasIndex(row, column, parent): return QModelIndex() if not parent.isValid(): parent_node = self.root else: parent_node = parent.internalPointer() child_node = parent_node.child(row) if child_node: return self.createIndex(row, column, child_node) else: return QModelIndex() def parent(self, index): if not index.isValid(): return QModelIndex() child_node = index.internalPointer() parent_node = child_node.parent if parent_node == self.root: return QModelIndex() return self.createIndex(parent_node.row(), 0, parent_node) def rowCount(self, parent): if parent.column() > 0: return 0 if not parent.isValid(): parent_node = self.root else: parent_node = parent.internalPointer() return parent_node.childCount() def get_indices_for_path(self, path, parent=None): indices = [] if parent is None: parent = self.root for i in xrange(parent.childCount()): c = parent.child(i) indices.extend(self.get_indices_for_path(path, c)) if c.path == path: indices.append(self.createIndex(i, 0, c)) return indices def get_indices_for_name(self, name, parent=None): indices = [] if parent is None: parent = self.root for i in xrange(parent.childCount()): c = parent.child(i) indices.extend(self.get_indices_for_name(name, c)) if c.name == name: indices.append(self.createIndex(i, 0, c)) return indices def get_all_indices(self, parent=None): indices = [] if parent is None: parent = self.root for i in xrange(parent.childCount()): c = parent.child(i) indices.extend(self.get_all_indices(c)) indices.append(self.createIndex(i, 0, c)) return indices def get_all_folders(self, parent=None): indices = [] if parent is None: parent = self.root for i in xrange(parent.childCount()): c = parent.child(i) if c.childCount(): indices.extend(self.get_all_folders(c)) indices.append(self.createIndex(i, 0, c)) return indices def get_plugins_for_name(self, name): """ Return list of plugins with given name """ indices = self.get_indices_for_name(name) plugins = [] for idx in indices: p = self.data(idx, self.DataRole) if p: plugins.append(p) return plugins def get_plugins_for_path(self, name): """ Return list of plugins in given path """ indices = self.get_indices_for_path(name) plugins = [] for idx in indices: p = self.data(idx, self.DataRole) if p: plugins.append(p) return plugins def get_all_plugins(self): """ Return all plugins in this model """ indices = self.get_all_indices() plugins = [] for idx in indices: p = self.data(idx, self.DataRole) if p: plugins.append(p) return plugins spykeviewer-0.4.4/spykeviewer/ui/plugin_editor_dock.py0000644000175000017500000003661712650522331021446 0ustar robrobimport os import re from PyQt4.QtGui import (QDockWidget, QWidget, QFileDialog, QGridLayout, QMessageBox, QFont, QTabWidget, QTextCursor, QDesktopServices) from PyQt4.QtCore import Qt, pyqtSignal, SIGNAL from spyderlib.widgets.sourcecode import codeeditor from spyderlib.widgets.editor import ThreadManager try: # Spyder < 2.2.0 from spyderlib.utils.module_completion import moduleCompletion \ as module_completion except ImportError: # Spyder >= 2.2.0beta3 try: from spyderlib.utils.module_completion import module_completion except ImportError: # Spyder >= 2.3.0 try: from spyderlib.utils.introspection.module_completion import \ module_completion except ImportError: # Spyder >= 2.3.2 from spyderlib.utils.introspection import module_completion try: from spyderlib.utils.dochelpers import getsignaturesfromtext except ImportError: # Spyder >= 2.3.0 from spyderlib.utils.dochelpers import getsignaturefromtext as \ getsignaturesfromtext from spyderlib.widgets.findreplace import FindReplace class PluginEditorDock(QDockWidget): """ A dock for editing plugins. """ template_code = \ """from spykeutils.plugin import analysis_plugin, gui_data class SamplePlugin(analysis_plugin.AnalysisPlugin): def get_name(self): return 'New plugin' def start(self, current, selections): print 'Plugin started.' """ plugin_saved = pyqtSignal(str) file_available = pyqtSignal(bool) def __init__(self, title='Plugin Editor', default_path=None, parent=None): QDockWidget.__init__(self, title, parent) self.setupUi() self.thread_manager = ThreadManager(self) try: self.rope_project = codeeditor.get_rope_project() except (IOError, AttributeError): # Might happen when frozen self.rope_project = None data_path = QDesktopServices.storageLocation( QDesktopServices.DataLocation) self.default_path = default_path or os.getcwd() self.rope_temp_path = os.path.join(data_path, '.temp') self.tabs.currentChanged.connect(self._tab_changed) self.enter_completion = True def _tab_changed(self, tab): self.file_available.emit(tab != -1) def set_default_path(self, path): self.default_path = path def populate_groups(self): self.filterGroupComboBox.clear() self.filterGroupComboBox.addItem('') for g in sorted(self.groups[self.filterTypeComboBox.currentText()]): self.filterGroupComboBox.addItem(g) def setupUi(self): self.tabs = QTabWidget() self.tabs.setTabsClosable(True) self.tabs.tabCloseRequested.connect(self.close_file) self.tabs.currentChanged.connect(self._current_editor_changed) self.tabs.setMovable(True) self.tabs.setDocumentMode(True) self.find_widget = FindReplace(self, enable_replace=True) self.find_widget.hide() self.content_widget = QWidget() layout = QGridLayout(self.content_widget) layout.addWidget(self.tabs) layout.addWidget(self.find_widget) self.setWidget(self.content_widget) self.setAcceptDrops(True) def dragEnterEvent(self, event): if event.mimeData().hasUrls(): for url in event.mimeData().urls(): p = url.toString() if p.startswith('file://') and p.endswith('.py'): event.acceptProposedAction() return def dropEvent(self, event): for url in event.mimeData().urls(): p = url.toString() if p.startswith('file://') and p.endswith('.py'): self.add_file(p[7:]) event.acceptProposedAction() def _setup_editor(self): font = QFont('Some font that does not exist') font.setStyleHint(font.TypeWriter, font.PreferDefault) editor = codeeditor.CodeEditor(self) try: editor.setup_editor( linenumbers=True, language='py', scrollflagarea=False, codecompletion_enter=self.enter_completion, tab_mode=False, edge_line=False, font=font, codecompletion_auto=True, go_to_definition=True, codecompletion_single=True, calltips=True) except TypeError: # codecompletion_single is gone in 2.3.0 editor.setup_editor( linenumbers=True, language='py', scrollflagarea=False, codecompletion_enter=self.enter_completion, tab_mode=False, edge_line=False, font=font, codecompletion_auto=True, go_to_definition=True, calltips=True) editor.setCursor(Qt.IBeamCursor) editor.horizontalScrollBar().setCursor(Qt.ArrowCursor) editor.verticalScrollBar().setCursor(Qt.ArrowCursor) return editor def _trigger_code_completion(self, automatic): editor = self.tabs.currentWidget() source_code = unicode(editor.toPlainText()) offset = editor.get_position('cursor') text = editor.get_text('sol', 'cursor') if text.startswith('import '): comp_list = module_completion(text) words = text.split(' ') if ',' in words[-1]: words = words[-1].split(',') if comp_list: editor.show_completion_list(comp_list, completion_text=words[-1], automatic=automatic) return elif text.startswith('from '): comp_list = module_completion(text) words = text.split(' ') if '(' in words[-1]: words = words[:-2] + words[-1].split('(') if ',' in words[-1]: words = words[:-2] + words[-1].split(',') editor.show_completion_list(comp_list, completion_text=words[-1], automatic=automatic) return elif self.rope_project: textlist = self.rope_project.get_completion_list( source_code, offset, editor.file_name or self.rope_temp_path) if textlist: completion_text = re.split(r"[^a-zA-Z0-9_]", text)[-1] if text.lstrip().startswith('#') and text.endswith('.'): return else: editor.show_completion_list(textlist, completion_text, automatic) return def _trigger_calltip(self, position, auto=True): if not self.rope_project: return editor = self.tabs.currentWidget() source_code = unicode(editor.toPlainText()) offset = position textlist = self.rope_project.get_calltip_text( source_code, offset, editor.file_name or self.rope_temp_path) if not textlist: return obj_fullname = '' signatures = [] cts, doc_text = textlist cts = cts.replace('.__init__', '') parpos = cts.find('(') if parpos: obj_fullname = cts[:parpos] obj_name = obj_fullname.split('.')[-1] cts = cts.replace(obj_fullname, obj_name) signatures = [cts] if '()' in cts: # Either inspected object has no argument, or it's # a builtin or an extension -- in this last case # the following attempt may succeed: signatures = getsignaturesfromtext(doc_text, obj_name) if not obj_fullname: obj_fullname = codeeditor.get_primary_at(source_code, offset) if obj_fullname and not obj_fullname.startswith('self.') and doc_text: if signatures: signature = signatures[0] module = obj_fullname.split('.')[0] note = '\n Function of %s module\n\n' % module text = signature + note + doc_text else: text = doc_text editor.show_calltip(obj_fullname, text, at_position=position) def _go_to_definition(self, position): if not self.rope_project: return editor = self.tabs.currentWidget() source_code = unicode(editor.toPlainText()) offset = position fname, lineno = self.rope_project.get_definition_location( source_code, offset, editor.file_name or self.rope_temp_path) self.show_position(fname, lineno) def show_position(self, file_name, line): if not file_name or file_name == '': return if not self.add_file(file_name): return if line is None: return editor = self.tabs.currentWidget() cursor = editor.textCursor() cursor.setPosition(0, QTextCursor.MoveAnchor) cursor.movePosition(QTextCursor.Down, QTextCursor.MoveAnchor, line - 1) editor.setTextCursor(cursor) editor.raise_() editor.setFocus() self.raise_() def _finalize_new_editor(self, editor, tab_name): editor.file_was_changed = False editor.textChanged.connect(lambda: self._file_changed(editor)) self.connect(editor, SIGNAL('trigger_code_completion(bool)'), self._trigger_code_completion) self.connect(editor, SIGNAL('trigger_calltip(int)'), self._trigger_calltip) self.connect(editor, SIGNAL("go_to_definition(int)"), self._go_to_definition) self.tabs.addTab(editor, tab_name) self.tabs.setCurrentWidget(editor) self.setVisible(True) self.raise_() def new_file(self): editor = self._setup_editor() editor.file_name = None editor.set_text(self.template_code) self._finalize_new_editor(editor, '*New Plugin') def add_file(self, file_name): if file_name and not file_name.endswith('py'): QMessageBox.warning(self, 'Cannot load file', 'Only Python files are supported for editing') return False for i in xrange(self.tabs.count()): if file_name == self.tabs.widget(i).file_name: self.tabs.setCurrentIndex(i) self.raise_() return True editor = self._setup_editor() editor.file_name = file_name editor.set_text_from_file(file_name, 'python') # Remove extra newline text = editor.toPlainText() if text.endswith('\n'): editor.setPlainText(text[:-1]) tab_name = os.path.split(file_name.decode('utf-8'))[1] self._finalize_new_editor(editor, tab_name) return True def close_file(self, tab_index): if self.tabs.widget(tab_index).file_was_changed and \ self.tabs.widget(tab_index).file_name: fname = os.path.split(self.tabs.widget(tab_index).file_name)[1] if not fname: fname = 'New Plugin' ans = QMessageBox.question( self, 'File was changed', 'Do you want to save "%s" before closing?' % fname, QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel) if ans == QMessageBox.Yes: return self.save_file(self.tabs.widget(tab_index), False) elif ans == QMessageBox.Cancel: return False self.tabs.removeTab(tab_index) return True def closeEvent(self, event): if not self.close_all(): event.ignore() else: event.accept() def close_all(self): while self.tabs.count(): if not self.close_file(0): return False return True def get_editor(self, file_name): """ Get editor object for a file name. Returns None if no editor for the given file name exists. """ for i in xrange(self.tabs.count()): if file_name == self.tabs.widget(i).file_name: return self.tabs.widget(i) return None def file_was_changed(self, editor): """ Returns if the file for an editor object has been changed. """ if not editor: return False return editor.file_was_changed def _file_changed(self, editor): editor.file_was_changed = True if not editor.file_name: fname = 'New Plugin' else: fname = os.path.split(editor.file_name)[1] text = '*' + fname self.tabs.setTabText(self.tabs.indexOf(editor), text) def code(self, editor=None): """ Returns code for an editor object as a list of strings (one for each line). """ if editor is None: editor = self.tabs.currentWidget() return [editor.get_text_line(l) for l in xrange(editor.get_line_count())] def code_has_errors(self, editor=None): """ Returns if the code from an editor object can be compiled. """ code = '\n'.join(self.code(editor)).encode('UTF-8') try: compile(code, '', 'exec') except SyntaxError as e: return e.msg + ' (Line %d)' % (e.lineno) return None def save_file(self, editor, force_dialog=False): """ Save the file from an editor object. :param editor: The editor for which the while should be saved. :param bool force_dialog: If True, a "Save as..." dialog will be shown even if a file name is associated with the editor. """ if not editor: return if force_dialog or not editor.file_name: d = QFileDialog( self, 'Choose where to save file', self.tabs.currentWidget().file_name or self.default_path) d.setAcceptMode(QFileDialog.AcceptSave) d.setNameFilter("Python files (*.py)") d.setDefaultSuffix('py') if d.exec_(): file_name = unicode(d.selectedFiles()[0]) else: return False else: file_name = editor.file_name err = self.code_has_errors(editor) if err: if QMessageBox.warning( self, 'Error saving "%s"' % editor.file_name, 'Compile error:\n' + err + '\n\nIf this file contains ' 'a plugin, it will disappear from the plugin list.\n' 'Save anyway?', QMessageBox.Yes | QMessageBox.No) == QMessageBox.No: return False try: f = open(file_name, 'w') f.write('\n'.join(self.code(editor)).encode('UTF-8')) f.close() except IOError, e: QMessageBox.critical( self, 'Error saving "%s"' % editor.file_name, str(e)) return False editor.file_name = file_name editor.file_was_changed = False fname = os.path.split(editor.file_name)[1] self.tabs.setTabText(self.tabs.indexOf(editor), fname) self.plugin_saved.emit(editor.file_name) return True def save_current(self, force_dialog=False): editor = self.tabs.currentWidget() self.save_file(editor, force_dialog) def _current_editor_changed(self, index): editor = self.tabs.widget(index) self.find_widget.set_editor(editor) spykeviewer-0.4.4/spykeviewer/ui/filter_group_dialog.py0000644000175000017500000000537212650522331021614 0ustar robrobfrom PyQt4.QtGui import (QDialog, QLabel, QComboBox, QDialogButtonBox, QGridLayout, QLineEdit, QMessageBox, QCheckBox) from PyQt4.QtCore import Qt, SIGNAL class FilterGroupDialog(QDialog): """ A dialog for editing filters """ def __init__(self, type=None, name=None, exclusive=False, parent=None): QDialog.__init__(self, parent) self.setupUi() if type: index = self.filterTypeComboBox.findText(type) if index >= 0: self.filterTypeComboBox.setCurrentIndex(index) if name: self.nameLineEdit.setText(name) self.filterTypeComboBox.setEnabled(False) self.exclusiveCheckBox.setChecked(exclusive) def setupUi(self): self.setWindowTitle('Edit filter group') self.filterTypeComboBox = QComboBox(self) self.filterTypeComboBox.addItem('Block') self.filterTypeComboBox.addItem('Segment') self.filterTypeComboBox.addItem('Recording Channel Group') self.filterTypeComboBox.addItem('Recording Channel') self.filterTypeComboBox.addItem('Unit') self.nameLineEdit = QLineEdit() self.dialogButtonBox = QDialogButtonBox(self) self.dialogButtonBox.setAutoFillBackground(False) self.dialogButtonBox.setOrientation(Qt.Horizontal) self.dialogButtonBox.setStandardButtons(QDialogButtonBox.Cancel|QDialogButtonBox.Ok) self.dialogButtonBox.setCenterButtons(True) self.exclusiveCheckBox = QCheckBox(self) self.exclusiveCheckBox.setText('Only one filter can be active') self.exclusiveCheckBox.setToolTip('Determines if exactly one or an arbitrary number of filters in this group can be active at once') gridLayout = QGridLayout(self) gridLayout.addWidget(QLabel('Type:', self), 0, 0) gridLayout.addWidget(self.filterTypeComboBox, 0, 1) gridLayout.addWidget(QLabel('Name:', self), 1, 0) gridLayout.addWidget(self.nameLineEdit, 1, 1) gridLayout.addWidget(self.exclusiveCheckBox, 2, 0, 1, 2) gridLayout.addWidget(self.dialogButtonBox, 3, 0, 1, 2) self.connect(self.dialogButtonBox, SIGNAL('accepted()'), self.accept) self.connect(self.dialogButtonBox, SIGNAL('rejected()'), self.reject) def name(self): return self.nameLineEdit.text() def type(self): return self.filterTypeComboBox.currentText() def exclusive(self): return self.exclusiveCheckBox.isChecked() #noinspection PyCallByClass,PyTypeChecker,PyArgumentList def accept(self): if len(self.nameLineEdit.text()) < 1: QMessageBox.critical(self, 'Error saving filter group', 'Please provide a name for the group.') return QDialog.accept(self) spykeviewer-0.4.4/spykeviewer/ui/remote_thread.py0000644000175000017500000000177412650522331020420 0ustar robrobfrom PyQt4.QtCore import SIGNAL, QThread class RemoteThread(QThread): """ A thread to catch either stdout or stderr of a remote process. Emits a signal ``output(id, message)`` whenever the remote process writes an output line and ``execution_complete(id)`` when the process exits. """ def __init__(self, process, id_code, err, parent=None): QThread.__init__(self, parent) self.id = id_code self.err = err self.process = process def run(self): if self.err: it = iter(self.process.stderr.readline, b'') for line in it: self.emit(SIGNAL('output(int, QString)'), self.id, line.rstrip().decode('ascii')) else: it = iter(self.process.stdout.readline, b'') for line in it: self.emit(SIGNAL('output(int, QString)'), self.id, line.rstrip().decode('ascii')) self.emit(SIGNAL('execution_complete(int)'), self.id)spykeviewer-0.4.4/spykeviewer/ui/neo_navigation_ui.py0000644000175000017500000001266312650522331021272 0ustar robrob# -*- coding: utf-8 -*- # Form implementation generated from reading ui file '.\neo_navigation.ui' # # Created: Mon Sep 09 17:08:01 2013 # by: PyQt4 UI code generator 4.9.6 # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: def _fromUtf8(s): return s try: _encoding = QtGui.QApplication.UnicodeUTF8 def _translate(context, text, disambig): return QtGui.QApplication.translate(context, text, disambig, _encoding) except AttributeError: def _translate(context, text, disambig): return QtGui.QApplication.translate(context, text, disambig) class Ui_neoNavigationDock(object): def setupUi(self, neoNavigationDock): neoNavigationDock.setObjectName(_fromUtf8("neoNavigationDock")) neoNavigationDock.resize(352, 559) self.dockWidgetContents = QtGui.QWidget() self.dockWidgetContents.setObjectName(_fromUtf8("dockWidgetContents")) self.gridLayout = QtGui.QGridLayout(self.dockWidgetContents) self.gridLayout.setObjectName(_fromUtf8("gridLayout")) self.verticalLayout_31 = QtGui.QVBoxLayout() self.verticalLayout_31.setObjectName(_fromUtf8("verticalLayout_31")) self.blocksLabel = QtGui.QLabel(self.dockWidgetContents) self.blocksLabel.setObjectName(_fromUtf8("blocksLabel")) self.verticalLayout_31.addWidget(self.blocksLabel) self.neoBlockList = QtGui.QListView(self.dockWidgetContents) self.neoBlockList.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.neoBlockList.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers) self.neoBlockList.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection) self.neoBlockList.setObjectName(_fromUtf8("neoBlockList")) self.verticalLayout_31.addWidget(self.neoBlockList) self.channelGroupsLabel = QtGui.QLabel(self.dockWidgetContents) self.channelGroupsLabel.setObjectName(_fromUtf8("channelGroupsLabel")) self.verticalLayout_31.addWidget(self.channelGroupsLabel) self.neoChannelGroupList = QtGui.QListView(self.dockWidgetContents) self.neoChannelGroupList.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.neoChannelGroupList.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers) self.neoChannelGroupList.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection) self.neoChannelGroupList.setObjectName(_fromUtf8("neoChannelGroupList")) self.verticalLayout_31.addWidget(self.neoChannelGroupList) self.channelsLabel = QtGui.QLabel(self.dockWidgetContents) self.channelsLabel.setObjectName(_fromUtf8("channelsLabel")) self.verticalLayout_31.addWidget(self.channelsLabel) self.neoChannelList = QtGui.QListView(self.dockWidgetContents) self.neoChannelList.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.neoChannelList.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers) self.neoChannelList.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection) self.neoChannelList.setObjectName(_fromUtf8("neoChannelList")) self.verticalLayout_31.addWidget(self.neoChannelList) self.gridLayout.addLayout(self.verticalLayout_31, 0, 0, 1, 1) self.verticalLayout_29 = QtGui.QVBoxLayout() self.verticalLayout_29.setObjectName(_fromUtf8("verticalLayout_29")) self.segmentsLabel = QtGui.QLabel(self.dockWidgetContents) self.segmentsLabel.setObjectName(_fromUtf8("segmentsLabel")) self.verticalLayout_29.addWidget(self.segmentsLabel) self.neoSegmentList = QtGui.QListView(self.dockWidgetContents) self.neoSegmentList.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.neoSegmentList.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers) self.neoSegmentList.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection) self.neoSegmentList.setObjectName(_fromUtf8("neoSegmentList")) self.verticalLayout_29.addWidget(self.neoSegmentList) self.unitsLabel = QtGui.QLabel(self.dockWidgetContents) self.unitsLabel.setObjectName(_fromUtf8("unitsLabel")) self.verticalLayout_29.addWidget(self.unitsLabel) self.neoUnitList = QtGui.QListView(self.dockWidgetContents) self.neoUnitList.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.neoUnitList.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers) self.neoUnitList.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection) self.neoUnitList.setObjectName(_fromUtf8("neoUnitList")) self.verticalLayout_29.addWidget(self.neoUnitList) self.gridLayout.addLayout(self.verticalLayout_29, 0, 1, 1, 1) neoNavigationDock.setWidget(self.dockWidgetContents) self.retranslateUi(neoNavigationDock) QtCore.QMetaObject.connectSlotsByName(neoNavigationDock) def retranslateUi(self, neoNavigationDock): neoNavigationDock.setWindowTitle(_translate("neoNavigationDock", "Navigation", None)) self.blocksLabel.setText(_translate("neoNavigationDock", "Blocks:", None)) self.channelGroupsLabel.setText(_translate("neoNavigationDock", "Channel Groups:", None)) self.channelsLabel.setText(_translate("neoNavigationDock", "Channels:", None)) self.segmentsLabel.setText(_translate("neoNavigationDock", "Segments:", None)) self.unitsLabel.setText(_translate("neoNavigationDock", "Units:", None)) spykeviewer-0.4.4/spykeviewer/ui/ipython_connection.py0000644000175000017500000000712012650522331021476 0ustar robrobimport sys import logging ipython_available = False try: # Ipython 0.12, 0.13 import IPython from IPython.zmq.ipkernel import IPKernelApp from IPython.frontend.qt.kernelmanager import QtKernelManager from IPython.frontend.qt.console.rich_ipython_widget \ import RichIPythonWidget from IPython.lib.kernel import find_connection_file from PyQt4.QtCore import QTimer import atexit class LocalKernelApp(IPKernelApp): def initialize(self, argv=None): if argv is None: argv = [] super(LocalKernelApp, self).initialize(argv) self.kernel.eventloop = self.loop_qt4_nonblocking self.kernel.start() self.start() def loop_qt4_nonblocking(self, kernel): """ Non-blocking version of the ipython qt4 kernel loop """ kernel.timer = QTimer() kernel.timer.timeout.connect(kernel.do_one_iteration) kernel.timer.start(1000 * kernel._poll_interval) def push(self, d): for k, v in d.iteritems(): self.kernel.shell.user_ns[k] = v class IPythonConnection(): def __init__(self): self._stdout = sys.stdout self._stderr = sys.stderr self._dishook = sys.displayhook sys.stderr = sys.__stderr__ # Prevent message on kernel creation self.kernel_app = LocalKernelApp.instance() self.kernel_app.initialize() sys.stdout = self._stdout sys.stderr = self._stderr sys.displayhook = self._dishook def get_widget(self, droplist_completion=True): if IPython.__version__ < '0.13': completion = droplist_completion else: completion = 'droplist' if droplist_completion else 'plain' widget = RichIPythonWidget(gui_completion=completion) cf = find_connection_file(self.kernel_app.connection_file) km = QtKernelManager(connection_file=cf, config=widget.config) km.load_connection_file() km.start_channels() widget.kernel_manager = km atexit.register(km.cleanup_connection_file) sys.stdout = self._stdout sys.stderr = self._stderr sys.displayhook = self._dishook return widget def push(self, d): self.kernel_app.push(d) ipython_available = True except ImportError: try: # Ipython >= 1.0 from IPython.qt.inprocess import QtInProcessKernelManager from IPython.qt.console.rich_ipython_widget import RichIPythonWidget class IPythonConnection(): def __init__(self): self.kernel_manager = QtInProcessKernelManager() self.kernel_manager.start_kernel() self.kernel = self.kernel_manager.kernel self.kernel.gui = 'qt4' self.kernel_client = self.kernel_manager.client() self.kernel_client.start_channels() # Suppress debug messages self.kernel.log.setLevel(logging.WARNING) def get_widget(self, droplist_completion=True): completion = 'droplist' if droplist_completion else 'plain' widget = RichIPythonWidget(gui_completion=completion) widget.kernel_manager = self.kernel_manager widget.kernel_client = self.kernel_client return widget def push(self, d): self.kernel.shell.push(d) ipython_available = True except ImportError: pass spykeviewer-0.4.4/spykeviewer/ui/main_window_neo.py0000755000175000017500000005135412650522331020754 0ustar robrobimport os from collections import OrderedDict import logging import pickle import copy import json import neo from PyQt4.QtCore import (Qt, pyqtSignature, QThread) from PyQt4.QtGui import (QMessageBox, QApplication, QProgressDialog, QFileDialog) try: # Support for spyder < 3 from spyderlib.widgets.dicteditor import DictEditor except ImportError: from spyderlib.widgets.variableexplorer.collectionseditor import \ CollectionsEditor as DictEditor from spykeutils import SpykeException from spykeutils.progress_indicator import ignores_cancel from spykeutils.plugin.data_provider_neo import NeoDataProvider from spykeutils.plugin.data_provider_stored import NeoStoredProvider from spykeutils.plugin import io_plugin from .main_window import MainWindow from ..plugin_framework.data_provider_viewer import NeoViewerProvider from .neo_navigation import NeoNavigationDock from .dir_files_dialog import DirFilesDialog from . import io_settings from .. import api logger = logging.getLogger('spykeviewer') #noinspection PyCallByClass,PyTypeChecker,PyArgumentList class MainWindowNeo(MainWindow): """ Implements Neo functionality in the main window. """ def __init__(self, parent=None, splash=None): super(MainWindowNeo, self).__init__(parent, splash) self.block_ids = {} self.block_names = OrderedDict() # Just for the display order self.block_files = {} self.block_index = 0 self.was_empty = True self.channel_group_names = {} self.io_write_params = {} # Neo navigation nav = NeoNavigationDock(self) self.neoNavigationDock = nav self.neoNavigationDock.setObjectName('neoNavigationDock') self.addDockWidget(Qt.LeftDockWidgetArea, self.neoNavigationDock) self.neoNavigationDock.setVisible(True) self.neoNavigationDock.object_removed.connect(self.refresh_neo_view) # Initialize filters self.filter_populate_function = \ {'Block': nav.populate_neo_block_list, 'Recording Channel': nav.populate_neo_channel_list, 'Recording Channel Group': nav.populate_neo_channel_group_list, 'Segment': nav.populate_neo_segment_list, 'Unit': nav.populate_neo_unit_list} self.activate_neo_mode() self.finish_initialization() def get_filter_types(self): """ Return a list of filter type tuples as required by :class:`filter_dock.FilterDock. Includes filters from Neo. """ l = super(MainWindowNeo, self).get_filter_types() l.extend([('Block', 'block'), ('Segment', 'segment'), ('Recording Channel Group', 'rcg'), ('Recording Channel', 'rc'), ('Unit', 'unit')]) return l def get_console_objects(self): """ Return a dictionary of objects that should be included in the console on startup. These objects will also not be displayed in variable explorer. Overriden for Neo imports. """ d = super(MainWindowNeo, self).get_console_objects() import quantities import neo import spykeutils d['pq'] = quantities d['neo'] = neo d['spykeutils'] = spykeutils return d def set_initial_layout(self): self.neoNavigationDock.setVisible(True) super(MainWindowNeo, self).set_initial_layout() def set_current_selection(self, data): if data['type'] == 'Neo': self.set_neo_selection(data) else: raise NotImplementedError( 'This version of Spyke Viewer only supports Neo selections!') def add_selection(self, data): if data['type'] == 'Neo': self.add_neo_selection(data) else: raise NotImplementedError( 'This version of Spyke Viewer only supports Neo selections!') def activate_neo_mode(self): self.provider = NeoViewerProvider(self) self.provider_factory = NeoStoredProvider.from_current_selection self.console.interpreter.locals['current'] = self.provider if self.ipy_kernel: self.ipy_kernel.push({'current': self.provider}) def reload_plugins(self, keep_configs=True): super(MainWindowNeo, self).reload_plugins(keep_configs) self.reload_neo_io_plugins() def reload_neo_io_plugins(self): # Clean previous plugins neo.io.iolist = [io for io in neo.io.iolist if not hasattr(io, '_is_spyke_plugin')] for pp in self.plugin_paths: for f in os.listdir(pp): p = os.path.join(pp, f) if os.path.isdir(p): continue if not p.lower().endswith('io.py'): continue try: io_plugin.load_from_file(p) except SpykeException, e: logger.warning(str(e)) # Populate IO list self.neoIOComboBox.clear() iolabels = [] for io in neo.io.iolist: if io.name: iolabels.append((io.name, io)) else: iolabels.append((io.__name__, io)) iolabels.sort(key=lambda x: x[0].lower()) self.neoIOComboBox.addItem('By extension') self.neoIOComboBox.setItemData(0, None) self.neoIOComboBox.addItems([l[0] for l in iolabels]) for i, l in enumerate(iolabels): self.neoIOComboBox.setItemData(i + 1, l[1]) # Delete stale IO configs for p in self.io_write_params.keys(): if p not in neo.io.iolist: del self.io_write_params[p] for p in NeoDataProvider.io_params.keys(): if p not in neo.io.iolist: del NeoDataProvider.io_params[p] def get_letter_id(self, id_, small=False): """ Return a name consisting of letters given an integer """ return self.neoNavigationDock.get_letter_id(id_, small) class LoadWorker(QThread): def __init__(self, paths): QThread.__init__(self) self.paths = paths self.blocks = [] self.error = None def run(self): try: self.blocks = NeoDataProvider.get_blocks(self.paths[0]) except Exception as e: self.error = e raise def load_files(self, file_paths): self.progress.begin('Loading data files...') self.progress.set_ticks(len(file_paths)) self.load_worker = self.LoadWorker(file_paths) self.load_progress = QProgressDialog(self.progress) self.load_progress.setWindowTitle('Loading File') self.load_progress.setLabelText(file_paths[0]) self.load_progress.setMaximum(0) self.load_progress.setCancelButton(None) self.load_worker.finished.connect(self.load_file_callback) self.load_worker.terminated.connect(self.load_file_callback) self.load_progress.show() self.load_worker.start() def edit_annotations(self, data): """ Edit annotations of a Neo object. """ editor = DictEditor(self) title = 'Edit annotations' if data.name: title += ' for %s' % data.name editor.setup(data.annotations, title) editor.accepted.connect( lambda: self._editor_ok(data, editor)) editor.show() editor.raise_() editor.activateWindow() def _editor_ok(self, data, editor): data.annotations = editor.get_value() @ignores_cancel def load_file_callback(self): if not self.load_worker: self.progress.done() return # Load worker thread finished blocks = self.load_worker.blocks if blocks is None: QMessageBox.critical( self, 'File could not be loaded', 'Could not read "%s": No suitable IO found.' % self.load_worker.paths[0]) logger.error('Could not read "%s": No suitable IO found.' % self.load_worker.paths[0]) self.progress.done() self.load_progress.reset() self.raise_() return if self.load_worker.error: QMessageBox.critical( self, 'File could not be loaded', 'While loading "%s", the following error occured:' '\n\n%s\n%s\n\nSee the console for more details.' % ( self.load_worker.paths[0], type(self.load_worker.error).__name__, str(self.load_worker.error))) self.progress.done() self.load_progress.reset() self.raise_() return for block in blocks: name = block.name if not name or name == 'One segment only': name = os.path.splitext(os.path.basename( self.load_worker.paths[0]))[0] name += ' (%s)' % self.get_letter_id(self.block_index) self.block_names[block] = name self.block_ids[block] = self.get_letter_id(self.block_index) self.block_files[block] = self.load_worker.paths[0] self.block_index += 1 self.load_progress.reset() self.progress.step() # Create new load worker thread paths = self.load_worker.paths[1:] if not paths: self.progress.done() if not self.was_empty: self.refresh_neo_view() else: self.neoNavigationDock.populate_neo_block_list() self.was_empty = False self.load_worker = None return self.load_worker = self.LoadWorker(paths) self.load_progress.setLabelText(paths[0]) self.load_progress.show() self.load_worker.finished.connect(self.load_file_callback) self.load_worker.terminated.connect(self.load_file_callback) self.load_worker.start() @ignores_cancel def on_loadFilesButton_pressed(self): if not self.block_index: self.was_empty = True indices = self.fileTreeView.selectedIndexes() fs_model = self.file_system_model self.load_files([fs_model.filePath(idx) for idx in indices]) def on_fileTreeView_doubleClicked(self, index): if not self.fileTreeView.model().isDir(index): self.on_loadFilesButton_pressed() def refresh_neo_view(self): self.set_current_selection(self.provider.data_dict()) def neo_blocks(self): return self.neoNavigationDock.blocks() def all_neo_blocks(self): return self.block_names.keys() def neo_block_file_names(self): """ Return a dictionary of filenames, indexed by blocks """ return self.block_files def neo_segments(self): return self.neoNavigationDock.segments() def neo_channel_groups(self): return self.neoNavigationDock.recording_channel_groups() def neo_units(self): return self.neoNavigationDock.units() def neo_channels(self): return self.neoNavigationDock.recording_channels() @pyqtSignature("") def on_actionClearCache_triggered(self): if QMessageBox.question( self, 'Please confirm', 'Do you really want to unload all data?', QMessageBox.Yes | QMessageBox.No) == QMessageBox.No: return NeoDataProvider.clear() self.neoNavigationDock.clear() self.block_ids.clear() self.block_files.clear() self.block_names.clear() self.block_index = 0 self.neoNavigationDock.populate_neo_block_list() def add_neo_selection(self, data): """ Adds a new neo selection provider with the given data """ self.selections.append(NeoStoredProvider(data, self.progress)) def set_neo_selection(self, data): """ Sets the current selection according to the given provider data """ self.progress.begin('Loading selection data...') self.progress.set_ticks(len(data['blocks'])) # Load blocks which are not currently displayed for b in data['blocks']: # File already loaded? if unicode(b[1]) in self.block_files.values(): self.progress.step() continue QApplication.setOverrideCursor(Qt.WaitCursor) try: cl = None rp = None if len(b) > 2: cl = NeoDataProvider.find_io_class(b[2]) if len(b) > 3: rp = b[3] blocks = NeoDataProvider.get_blocks( b[1], force_io=cl, read_params=rp) finally: QApplication.restoreOverrideCursor() if not blocks: logger.error('Could not read file "%s"' % b[1]) self.progress.step() continue for block in blocks: name = block.name if not name or name == 'One segment only': name = os.path.basename(b[1]) name += ' (%s)' % self.get_letter_id(self.block_index) self.block_names[block] = name self.block_ids[block] = self.get_letter_id(self.block_index) self.block_files[block] = b[1] self.block_index += 1 self.progress.step() self.progress.done() self.neoNavigationDock.set_selection(data) class SaveWorker(QThread): def __init__(self, file_name, blocks, io, params): QThread.__init__(self) self.file_name = file_name self.blocks = blocks self.io = io(filename=file_name) self.params = params self.terminated.connect(self.cleanup) self.finished.connect(self.cleanup) def run(self): if hasattr(self.io, 'write_all_blocks'): self.io.write(self.blocks, **self.params) else: if neo.Block not in self.io.writeable_objects: logger.warning('%s does not support writing blocks.' % (self.io.name or type(self.io).__name__)) if not len(self.blocks[0].segments) == 1: logger.warning('Please select a single block with a' 'single Segment.\nAborting...') else: logger.warning( 'Writing only first segment of first file...') self.io.write(self.blocks[0], **self.params) else: if len(self.blocks) > 1: logger.warning( '%s does not support writing multiple blocks.\n' 'Writing only first block...') self.io.write(self.blocks[0], **self.params) def cleanup(self): if self.io: if hasattr(self.io, 'close'): self.io.close() self.io = None def _save_blocks(self, blocks, file_name, io): if not blocks: QMessageBox.warning(self, 'Cannot save data', 'No data to save found!') self.progress.done() return self.progress.set_ticks(0) self.progress.setWindowTitle('Writing data...') self.progress.set_status('') if not os.path.splitext(file_name)[1]: # No previous file extension if len(io.extensions) == 1: # Unambiguous extension for this io file_name += '.' + io.extensions[0] self.worker = self.SaveWorker(file_name, blocks, io, self.io_write_params.get(io, {})) self.worker.finished.connect(self.progress.done) self.progress.canceled.connect(self.worker.terminate) self.worker.start() @pyqtSignature("") def on_actionLoad_Data_triggered(self): d = DirFilesDialog(self, 'Choose files or folders to load') if not d.exec_(): return self.load_files(d.selectedFiles()) @pyqtSignature("") def on_actionSave_Data_triggered(self): path, io = self._save_data_dialog('Choose where to save data') if path is None: return self.progress.begin('Collecting data to save...') blocks = self.all_neo_blocks() self._save_blocks(blocks, path, io) @pyqtSignature("") def on_actionSave_Selected_Data_triggered(self): path, io = self._save_data_dialog( 'Choose where to save selected data') if path is None: return self.progress.begin('Collecting data to save...') blocks = self.provider.selection_blocks() self._save_blocks(blocks, path, io) def _get_writeable_formats(self): """ Return a list of name filters for save dialog and a dictionary that maps name filters to IO classes. """ filters = [] d = {} for io in neo.io.iolist: if not io.is_writable: continue filters.append('%s (%s)' % ( io.name or io.__name__, ' '.join(['*.' + ext for ext in io.extensions]))) d[filters[-1]] = io return filters, d def _save_data_dialog(self, title): """ Create a save dialog for data. Return the filename and selected IO if the user wants to save, (None, None) if the dialog was canceled. :param str title: Dialog title """ dialog = QFileDialog(self, title) dialog.setAcceptMode(QFileDialog.AcceptSave) name_filters, io_mapping = self._get_writeable_formats() dialog.setNameFilters(name_filters) dialog.setConfirmOverwrite(True) if not dialog.exec_(): return None, None return unicode(dialog.selectedFiles()[0]), \ io_mapping[dialog.selectedNameFilter()] @pyqtSignature("") def on_actionFull_Load_triggered(self): NeoDataProvider.data_lazy_mode = 0 @pyqtSignature("") def on_actionLazy_Load_triggered(self): NeoDataProvider.data_lazy_mode = 1 @pyqtSignature("") def on_actionCached_Lazy_Load_triggered(self): NeoDataProvider.data_lazy_mode = 2 @pyqtSignature("") def on_actionFull_triggered(self): NeoDataProvider.cascade_lazy = False @pyqtSignature("") def on_actionLazy_triggered(self): NeoDataProvider.cascade_lazy = True @pyqtSignature("int") def on_neoIOComboBox_currentIndexChanged(self, index): if index > 0: NeoDataProvider.forced_io = self.neoIOComboBox.itemData(index) self.configureIOButton.setEnabled( io_settings.has_ui_params(NeoDataProvider.forced_io)) else: NeoDataProvider.forced_io = None self.configureIOButton.setEnabled(False) @pyqtSignature("") def on_configureIOButton_pressed(self): io = NeoDataProvider.forced_io d = io_settings.ParamDialog( io, NeoDataProvider.io_params.get(io, {}), self.io_write_params.get(io, {}), self) if d.exec_(): NeoDataProvider.io_params[io] = d.get_read_params() self.io_write_params[io] = d.get_write_params() def _execute_remote_plugin(self, plugin, current=None, selections=None): sl = list() if current is None: sl.append(self.provider_factory('__current__', self).data_dict()) else: d = copy.copy(current.data_dict()) d['name'] = '__current__' sl.append(d) if selections is None: selections = self.selections for s in selections: sl.append(s.data_dict()) io_plugin_files = [] transform_path = getattr(api.config, 'remote_path_transform', lambda x: x) for s in sl: if s['type'] != 'Neo': continue for b in s['blocks']: if len(b) > 2: io = NeoDataProvider.find_io_class(b[2]) if io is None: raise NameError('Error executing remote plugin: ' '%s is not a known IO class!' % b[2]) if getattr(io, '_is_spyke_plugin', False): io_plugin_files.append(io._python_file) b[1] = transform_path(b[1]) selections = json.dumps(sl, sort_keys=True, indent=2) config = pickle.dumps(plugin.get_parameters()) name = type(plugin).__name__ path = plugin.source_file self.send_plugin_info(name, path, selections, config, io_plugin_files) def closeEvent(self, event): super(MainWindowNeo, self).closeEvent(event) NeoDataProvider.clear() spykeviewer-0.4.4/spykeviewer/ui/main.ui0000644000175000017500000005070612650522331016506 0ustar robrob MainWindow 0 0 819 867 0 0 790 580 Spyke Viewer :/Application/Main:/Application/Main false QGroupBox { border: 1px solid gray; border-radius: 5px; margin-top: 1ex; /* leave space at the top for the title */ } QGroupBox::title { subcontrol-origin: margin; subcontrol-position: top left; /* position at the top center */ padding: 0 2px; left: 10px; } QTabWidget::Rounded QMainWindow::AllowNestedDocks|QMainWindow::AllowTabbedDocks|QMainWindow::AnimatedDocks 4 0 0 819 25 &File Data Read Mode Cascade Mode &Help &Selections &Plugins &Filter Console 8 Variable Explorer 8 Command History 8 Plugins 4 Qt::CustomContextMenu true true false 0 Files 2 QFormLayout::AllNonFixedFieldsGrow Format: QAbstractItemView::ExtendedSelection true true false false false Load Configure Selected IO Filter Toolbar TopToolBarArea false Plugin Toolbar TopToolBarArea false &Exit QAction::QuitRole false &Save Selection Set... &Load Selection Set... :/Application/Info:/Application/Info &About Switch Modes false &New &Clear Data true Save Selected Data &as... Settings... &Clear :/Plugins/New:/Plugins/New &New Plugin Create a new plugin false :/Plugins/Edit:/Plugins/Edit &Edit Plugin Edit selected plugin Ctrl+E :/Plugins/Reload:/Plugins/Reload &Refresh Plugins Refresh all plugins Ctrl+R false :/Plugins/Save:/Plugins/Save &Save Plugin Save current file Ctrl+S false :/Plugins/Config:/Plugins/Config &Configure Plugin Configure selected plugin F6 false :/Plugins/Run:/Plugins/Run Run &Plugin Run selected plugin F5 false :/Plugins/Remote:/Plugins/Remote Start with Remote Script Start selected plugin with Remote Script F9 :/Filter/New Filter:/Filter/New Filter &New Filter Create a new filter false :/Filter/Copy Filter:/Filter/Copy Filter &Copy Duplicate selected filter or group false :/Filter/Edit Filter:/Filter/Edit Filter &Edit Edit selected filter or filter group false :/Filter/Remove Filter:/Filter/Remove Filter &Delete Delete selected filter or filter group :/Filter/New Filter Group:/Filter/New Filter Group New Filter &Group Create a new filter group false :/Plugins/Save As:/Plugins/Save As Save Plugin &as... Save current file as... :/Application/Help:/Application/Help &Documentation Open documentation website (requires Internet access) Save All &Data as... false :/Plugins/Show Folder:/Plugins/Show Folder &Open containing folder... Open folder that contains selected plugin Edit Startup Script :/Plugins/Restore Config:/Plugins/Restore Config Restore Plugin configurations Restore Plugin configurations to their default values Load &Python File... true true Full Load true Lazy Load Load Data... :/Application/Repository:/Application/Repository Spyke Repository true Cached Lazy Load true true Regular true Lazy spykeviewer-0.4.4/spykeviewer/ui/io_settings.py0000644000175000017500000002013312650522331020113 0ustar robrobfrom PyQt4.QtCore import SIGNAL, SLOT from PyQt4.QtGui import QVBoxLayout, QDialog, QDialogButtonBox, QMessageBox from guidata.dataset.datatypes import DataSet from guidata.dataset.dataitems import (FloatItem, IntItem, BoolItem, ChoiceItem, StringItem) from guidata.dataset.qtwidgets import DataSetEditGroupBox, DataSetEditLayout from guidata.dataset.qtitemwidgets import LineEditWidget class IntOrNoneItem(IntItem): """ Like the normal guidata IntItem, but allows empty input that is interpreted as None. """ def check_value(self, value): #raise Exception if value is None: return True return super(IntOrNoneItem, self).check_value(value) def from_string(self, value): if value == 'None' or value == '': # None is allowed return None ret = super(IntOrNoneItem, self).from_string(value) if ret is None: # But None from super is an error return 'Error' return ret class FloatOrNoneItem(FloatItem): """ Like the normal guidata FloatItem, but allows empty input that is interpreted as None. """ def check_value(self, value): #raise Exception if value is None: return True return super(FloatOrNoneItem, self).check_value(value) def from_string(self, value): if value == 'None' or value == '': # None is allowed return None ret = super(FloatOrNoneItem, self).from_string(value) if ret is None: # But None from super is an error return 'Error' return ret DataSetEditLayout.register(IntOrNoneItem, LineEditWidget) DataSetEditLayout.register(FloatOrNoneItem, LineEditWidget) def valid_params(params): if not params: return False if not params.values()[0]: return False return True def has_ui_params(io): if valid_params(io.read_params): return True return valid_params(io.write_params) class ParamDialog(QDialog): """ A Dialog with read and write option for a Neo IO. """ def __init__(self, io, params_read, params_write, parent): super(ParamDialog, self).__init__(parent) self.setWindowTitle('Options for %s' % (io.name or io.__name__)) self.io = io self.setModal(True) self.mainLayout = QVBoxLayout() self.setLayout(self.mainLayout) buttons = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel) self.connect(buttons, SIGNAL("accepted()"), SLOT("accept()")) self.connect(buttons, SIGNAL("rejected()"), SLOT("reject()")) self.read_params_edit = None self.read_params = params_read if valid_params(io.read_params): params = self.neo_to_guidata(io.read_params.values()[0], self.read_params) self.read_params_edit = DataSetEditGroupBox( "Read", params, show_button=False) self.mainLayout.addWidget(self.read_params_edit) self.write_params_edit = None self.write_params = params_write if valid_params(io.write_params): params = self.neo_to_guidata(io.write_params.values()[0], self.write_params) self.write_params_edit = DataSetEditGroupBox( "Write", params, show_button=False) self.mainLayout.addWidget(self.write_params_edit) self.mainLayout.addWidget(buttons) def neo_to_guidata(self, paramlist, param_dict): """ Take a list of parameter description in Neo format and return a respective guidata DataSet. :param list paramlist: List of (name, parameters) tuples that describe load or save parameters Neo style. :param dict param_dict: Dictionary with default values. Is modified to include new default values when the respective parameter is not present. """ # Normal widgets guidata_types = { bool: BoolItem, float: FloatItem, int: IntItem, str: StringItem, unicode: StringItem } # Widgets where parameter can be None guidata_types_with_none = { bool: BoolItem, float: FloatOrNoneItem, int: IntOrNoneItem, str: StringItem, unicode: StringItem } # Build up parameter items dictionary items = {} for name, params in paramlist: if 'label' in params: label = params['label'] else: label = name if name in param_dict: default = param_dict[name] else: if 'value' in params: default = params['value'] else: default = None if 'type' in params: if default is None: classitem = guidata_types_with_none[params['type']] else: classitem = guidata_types[params['type']] else: if default is None: classitem = guidata_types_with_none[type(default)] else: classitem = guidata_types[type(default)] if 'possible' in params: possible = params['possible'][:] for i, p in enumerate(possible): if possible[i] == ' ': possible[i] = 'Space' elif possible[i] == '\t': possible[i] = 'Tab' def_choice = 0 if name in param_dict and name in params['possible']: def_choice = params['possible'].index(param_dict[name]) elif default in params['possible']: def_choice = params['possible'].index(default) items[name] = ChoiceItem(label, possible, default=def_choice) else: items[name] = classitem(label, default=default) if name not in param_dict: param_dict[name] = default guidata_class = type('Parameters', (DataSet,), items) return guidata_class def accept(self): """ Validate inputs """ ok = True if self.read_params_edit: if self.read_params_edit.edit.check_all_values(): self.read_params_edit.edit.accept_changes() else: ok = False if self.write_params_edit: if self.write_params_edit.edit.check_all_values(): self.write_params_edit.edit.accept_changes() else: ok = False if not ok: QMessageBox.warning(self, 'Invalid parameters', "Some required entries are incorrect.\n", "Please check highlighted fields.") else: QDialog.accept(self) def _get_choice_value(self, name, value, params): """ Make sure that a parameter value is the actual value, not an index into the choises for parameters with a list of possible values. """ for n, d in params.values()[0]: if name != n: continue if not 'possible' in d: return value return d['possible'][value] # Should not happen, just return original value return value def get_read_params(self): """ Return a dictionary of read parameter values suitable for passing to Neo IO read function. """ d = {} for name in self.read_params.iterkeys(): d[name] = self._get_choice_value( name, getattr(self.read_params_edit.dataset, name), self.io.read_params) return d def get_write_params(self): """ Return a dictionary of write parameter values suitable for passing to Neo IO write function. """ d = {} for name in self.write_params.iterkeys(): d[name] = self._get_choice_value( name, getattr(self.write_params_edit.dataset, name,), self.io.write_params) return dspykeviewer-0.4.4/spykeviewer/ui/main_ui.py0000644000175000017500000007661012650522331017220 0ustar robrob# -*- coding: utf-8 -*- # Form implementation generated from reading ui file '/home/rob/Spyke/viewer/spykeviewer/ui/main.ui' # # Created: Mon Nov 4 17:46:37 2013 # by: PyQt4 UI code generator 4.9.3 # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: _fromUtf8 = lambda s: s class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName(_fromUtf8("MainWindow")) MainWindow.resize(819, 867) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth()) MainWindow.setSizePolicy(sizePolicy) MainWindow.setMinimumSize(QtCore.QSize(790, 580)) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/Application/Main")), QtGui.QIcon.Normal, QtGui.QIcon.Off) MainWindow.setWindowIcon(icon) MainWindow.setAutoFillBackground(False) MainWindow.setStyleSheet(_fromUtf8("QGroupBox {\n" " border: 1px solid gray;\n" " border-radius: 5px;\n" " margin-top: 1ex; /* leave space at the top for the title */\n" "}\n" "QGroupBox::title {\n" " subcontrol-origin: margin;\n" " subcontrol-position: top left; /* position at the top center */\n" " padding: 0 2px;\n" " left: 10px;\n" "}")) MainWindow.setTabShape(QtGui.QTabWidget.Rounded) MainWindow.setDockOptions(QtGui.QMainWindow.AllowNestedDocks|QtGui.QMainWindow.AllowTabbedDocks|QtGui.QMainWindow.AnimatedDocks) self.centralWidget = QtGui.QWidget(MainWindow) self.centralWidget.setObjectName(_fromUtf8("centralWidget")) self.horizontalLayout_2 = QtGui.QHBoxLayout(self.centralWidget) self.horizontalLayout_2.setMargin(4) self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2")) MainWindow.setCentralWidget(self.centralWidget) self.mainMenu = QtGui.QMenuBar(MainWindow) self.mainMenu.setGeometry(QtCore.QRect(0, 0, 819, 25)) self.mainMenu.setObjectName(_fromUtf8("mainMenu")) self.menuFile = QtGui.QMenu(self.mainMenu) self.menuFile.setObjectName(_fromUtf8("menuFile")) self.menuRead_Mode = QtGui.QMenu(self.menuFile) self.menuRead_Mode.setObjectName(_fromUtf8("menuRead_Mode")) self.menuCascade_Mode = QtGui.QMenu(self.menuFile) self.menuCascade_Mode.setObjectName(_fromUtf8("menuCascade_Mode")) self.menuHelp = QtGui.QMenu(self.mainMenu) self.menuHelp.setObjectName(_fromUtf8("menuHelp")) self.menuSelections = QtGui.QMenu(self.mainMenu) self.menuSelections.setObjectName(_fromUtf8("menuSelections")) self.menuPlugins = QtGui.QMenu(self.mainMenu) self.menuPlugins.setObjectName(_fromUtf8("menuPlugins")) self.menuFilter = QtGui.QMenu(self.mainMenu) self.menuFilter.setObjectName(_fromUtf8("menuFilter")) MainWindow.setMenuBar(self.mainMenu) self.consoleDock = QtGui.QDockWidget(MainWindow) self.consoleDock.setObjectName(_fromUtf8("consoleDock")) self.dockWidgetContents = QtGui.QWidget() self.dockWidgetContents.setObjectName(_fromUtf8("dockWidgetContents")) self.verticalLayout_19 = QtGui.QVBoxLayout(self.dockWidgetContents) self.verticalLayout_19.setObjectName(_fromUtf8("verticalLayout_19")) self.consoleDock.setWidget(self.dockWidgetContents) MainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(8), self.consoleDock) self.variableExplorerDock = QtGui.QDockWidget(MainWindow) self.variableExplorerDock.setObjectName(_fromUtf8("variableExplorerDock")) self.dockWidgetContents_2 = QtGui.QWidget() self.dockWidgetContents_2.setObjectName(_fromUtf8("dockWidgetContents_2")) self.variableExplorerDock.setWidget(self.dockWidgetContents_2) MainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(8), self.variableExplorerDock) self.historyDock = QtGui.QDockWidget(MainWindow) self.historyDock.setObjectName(_fromUtf8("historyDock")) self.dockWidgetContents_3 = QtGui.QWidget() self.dockWidgetContents_3.setObjectName(_fromUtf8("dockWidgetContents_3")) self.historyDock.setWidget(self.dockWidgetContents_3) MainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(8), self.historyDock) self.pluginDock = QtGui.QDockWidget(MainWindow) self.pluginDock.setObjectName(_fromUtf8("pluginDock")) self.dockWidgetContents_6 = QtGui.QWidget() self.dockWidgetContents_6.setObjectName(_fromUtf8("dockWidgetContents_6")) self.gridLayout_11 = QtGui.QGridLayout(self.dockWidgetContents_6) self.gridLayout_11.setObjectName(_fromUtf8("gridLayout_11")) self.pluginsTreeView = QtGui.QTreeView(self.dockWidgetContents_6) self.pluginsTreeView.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.pluginsTreeView.setUniformRowHeights(True) self.pluginsTreeView.setHeaderHidden(True) self.pluginsTreeView.setObjectName(_fromUtf8("pluginsTreeView")) self.pluginsTreeView.header().setVisible(False) self.pluginsTreeView.header().setDefaultSectionSize(0) self.gridLayout_11.addWidget(self.pluginsTreeView, 0, 0, 1, 2) self.pluginDock.setWidget(self.dockWidgetContents_6) MainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(4), self.pluginDock) self.filesDock = QtGui.QDockWidget(MainWindow) self.filesDock.setObjectName(_fromUtf8("filesDock")) self.dockWidgetContents_8 = QtGui.QWidget() self.dockWidgetContents_8.setObjectName(_fromUtf8("dockWidgetContents_8")) self.gridLayout_6 = QtGui.QGridLayout(self.dockWidgetContents_8) self.gridLayout_6.setObjectName(_fromUtf8("gridLayout_6")) self.formLayout = QtGui.QFormLayout() self.formLayout.setFieldGrowthPolicy(QtGui.QFormLayout.AllNonFixedFieldsGrow) self.formLayout.setObjectName(_fromUtf8("formLayout")) self.label = QtGui.QLabel(self.dockWidgetContents_8) self.label.setObjectName(_fromUtf8("label")) self.formLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.label) self.neoIOComboBox = QtGui.QComboBox(self.dockWidgetContents_8) self.neoIOComboBox.setObjectName(_fromUtf8("neoIOComboBox")) self.formLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.neoIOComboBox) self.gridLayout_6.addLayout(self.formLayout, 1, 0, 1, 1) self.fileTreeView = QtGui.QTreeView(self.dockWidgetContents_8) self.fileTreeView.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection) self.fileTreeView.setUniformRowHeights(True) self.fileTreeView.setHeaderHidden(True) self.fileTreeView.setObjectName(_fromUtf8("fileTreeView")) self.fileTreeView.header().setVisible(False) self.fileTreeView.header().setCascadingSectionResizes(False) self.fileTreeView.header().setStretchLastSection(False) self.gridLayout_6.addWidget(self.fileTreeView, 0, 0, 1, 1) self.loadFilesButton = QtGui.QPushButton(self.dockWidgetContents_8) self.loadFilesButton.setObjectName(_fromUtf8("loadFilesButton")) self.gridLayout_6.addWidget(self.loadFilesButton, 5, 0, 1, 1) self.configureIOButton = QtGui.QPushButton(self.dockWidgetContents_8) self.configureIOButton.setObjectName(_fromUtf8("configureIOButton")) self.gridLayout_6.addWidget(self.configureIOButton, 2, 0, 1, 1) self.filesDock.setWidget(self.dockWidgetContents_8) MainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(2), self.filesDock) self.filterToolbar = QtGui.QToolBar(MainWindow) self.filterToolbar.setObjectName(_fromUtf8("filterToolbar")) MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.filterToolbar) self.pluginToolBar = QtGui.QToolBar(MainWindow) self.pluginToolBar.setObjectName(_fromUtf8("pluginToolBar")) MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.pluginToolBar) self.actionExit = QtGui.QAction(MainWindow) self.actionExit.setMenuRole(QtGui.QAction.QuitRole) self.actionExit.setIconVisibleInMenu(False) self.actionExit.setObjectName(_fromUtf8("actionExit")) self.actionSave_selection = QtGui.QAction(MainWindow) self.actionSave_selection.setObjectName(_fromUtf8("actionSave_selection")) self.actionLoad_selection = QtGui.QAction(MainWindow) self.actionLoad_selection.setObjectName(_fromUtf8("actionLoad_selection")) self.actionAbout = QtGui.QAction(MainWindow) icon1 = QtGui.QIcon() icon1.addPixmap(QtGui.QPixmap(_fromUtf8(":/Application/Info")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionAbout.setIcon(icon1) self.actionAbout.setObjectName(_fromUtf8("actionAbout")) self.actionSwitch_Modes = QtGui.QAction(MainWindow) self.actionSwitch_Modes.setVisible(False) self.actionSwitch_Modes.setObjectName(_fromUtf8("actionSwitch_Modes")) self.actionNewSelection = QtGui.QAction(MainWindow) self.actionNewSelection.setObjectName(_fromUtf8("actionNewSelection")) self.actionClearCache = QtGui.QAction(MainWindow) self.actionClearCache.setVisible(True) self.actionClearCache.setObjectName(_fromUtf8("actionClearCache")) self.actionSave_Selected_Data = QtGui.QAction(MainWindow) self.actionSave_Selected_Data.setObjectName(_fromUtf8("actionSave_Selected_Data")) self.actionSettings = QtGui.QAction(MainWindow) self.actionSettings.setObjectName(_fromUtf8("actionSettings")) self.actionClearSelections = QtGui.QAction(MainWindow) self.actionClearSelections.setObjectName(_fromUtf8("actionClearSelections")) self.actionNewPlugin = QtGui.QAction(MainWindow) icon2 = QtGui.QIcon() icon2.addPixmap(QtGui.QPixmap(_fromUtf8(":/Plugins/New")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionNewPlugin.setIcon(icon2) self.actionNewPlugin.setObjectName(_fromUtf8("actionNewPlugin")) self.actionEditPlugin = QtGui.QAction(MainWindow) self.actionEditPlugin.setEnabled(False) icon3 = QtGui.QIcon() icon3.addPixmap(QtGui.QPixmap(_fromUtf8(":/Plugins/Edit")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionEditPlugin.setIcon(icon3) self.actionEditPlugin.setObjectName(_fromUtf8("actionEditPlugin")) self.actionRefreshPlugins = QtGui.QAction(MainWindow) icon4 = QtGui.QIcon() icon4.addPixmap(QtGui.QPixmap(_fromUtf8(":/Plugins/Reload")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionRefreshPlugins.setIcon(icon4) self.actionRefreshPlugins.setObjectName(_fromUtf8("actionRefreshPlugins")) self.actionSavePlugin = QtGui.QAction(MainWindow) self.actionSavePlugin.setEnabled(False) icon5 = QtGui.QIcon() icon5.addPixmap(QtGui.QPixmap(_fromUtf8(":/Plugins/Save")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionSavePlugin.setIcon(icon5) self.actionSavePlugin.setObjectName(_fromUtf8("actionSavePlugin")) self.actionConfigurePlugin = QtGui.QAction(MainWindow) self.actionConfigurePlugin.setEnabled(False) icon6 = QtGui.QIcon() icon6.addPixmap(QtGui.QPixmap(_fromUtf8(":/Plugins/Config")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionConfigurePlugin.setIcon(icon6) self.actionConfigurePlugin.setObjectName(_fromUtf8("actionConfigurePlugin")) self.actionRunPlugin = QtGui.QAction(MainWindow) self.actionRunPlugin.setEnabled(False) icon7 = QtGui.QIcon() icon7.addPixmap(QtGui.QPixmap(_fromUtf8(":/Plugins/Run")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionRunPlugin.setIcon(icon7) self.actionRunPlugin.setObjectName(_fromUtf8("actionRunPlugin")) self.actionRemotePlugin = QtGui.QAction(MainWindow) self.actionRemotePlugin.setEnabled(False) icon8 = QtGui.QIcon() icon8.addPixmap(QtGui.QPixmap(_fromUtf8(":/Plugins/Remote")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionRemotePlugin.setIcon(icon8) self.actionRemotePlugin.setObjectName(_fromUtf8("actionRemotePlugin")) self.actionNewFilter = QtGui.QAction(MainWindow) icon9 = QtGui.QIcon() icon9.addPixmap(QtGui.QPixmap(_fromUtf8(":/Filter/New Filter")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionNewFilter.setIcon(icon9) self.actionNewFilter.setObjectName(_fromUtf8("actionNewFilter")) self.actionCopyFilter = QtGui.QAction(MainWindow) self.actionCopyFilter.setEnabled(False) icon10 = QtGui.QIcon() icon10.addPixmap(QtGui.QPixmap(_fromUtf8(":/Filter/Copy Filter")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionCopyFilter.setIcon(icon10) self.actionCopyFilter.setObjectName(_fromUtf8("actionCopyFilter")) self.actionEditFilter = QtGui.QAction(MainWindow) self.actionEditFilter.setEnabled(False) icon11 = QtGui.QIcon() icon11.addPixmap(QtGui.QPixmap(_fromUtf8(":/Filter/Edit Filter")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionEditFilter.setIcon(icon11) self.actionEditFilter.setObjectName(_fromUtf8("actionEditFilter")) self.actionDeleteFilter = QtGui.QAction(MainWindow) self.actionDeleteFilter.setEnabled(False) icon12 = QtGui.QIcon() icon12.addPixmap(QtGui.QPixmap(_fromUtf8(":/Filter/Remove Filter")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionDeleteFilter.setIcon(icon12) self.actionDeleteFilter.setObjectName(_fromUtf8("actionDeleteFilter")) self.actionNewFilterGroup = QtGui.QAction(MainWindow) icon13 = QtGui.QIcon() icon13.addPixmap(QtGui.QPixmap(_fromUtf8(":/Filter/New Filter Group")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionNewFilterGroup.setIcon(icon13) self.actionNewFilterGroup.setObjectName(_fromUtf8("actionNewFilterGroup")) self.actionSavePluginAs = QtGui.QAction(MainWindow) self.actionSavePluginAs.setEnabled(False) icon14 = QtGui.QIcon() icon14.addPixmap(QtGui.QPixmap(_fromUtf8(":/Plugins/Save As")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionSavePluginAs.setIcon(icon14) self.actionSavePluginAs.setObjectName(_fromUtf8("actionSavePluginAs")) self.actionDocumentation = QtGui.QAction(MainWindow) icon15 = QtGui.QIcon() icon15.addPixmap(QtGui.QPixmap(_fromUtf8(":/Application/Help")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionDocumentation.setIcon(icon15) self.actionDocumentation.setObjectName(_fromUtf8("actionDocumentation")) self.actionSave_Data = QtGui.QAction(MainWindow) self.actionSave_Data.setObjectName(_fromUtf8("actionSave_Data")) self.actionShowPluginFolder = QtGui.QAction(MainWindow) self.actionShowPluginFolder.setEnabled(False) icon16 = QtGui.QIcon() icon16.addPixmap(QtGui.QPixmap(_fromUtf8(":/Plugins/Show Folder")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionShowPluginFolder.setIcon(icon16) self.actionShowPluginFolder.setObjectName(_fromUtf8("actionShowPluginFolder")) self.actionEdit_Startup_Script = QtGui.QAction(MainWindow) self.actionEdit_Startup_Script.setObjectName(_fromUtf8("actionEdit_Startup_Script")) self.actionRestorePluginConfigurations = QtGui.QAction(MainWindow) icon17 = QtGui.QIcon() icon17.addPixmap(QtGui.QPixmap(_fromUtf8(":/Plugins/Restore Config")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionRestorePluginConfigurations.setIcon(icon17) self.actionRestorePluginConfigurations.setObjectName(_fromUtf8("actionRestorePluginConfigurations")) self.actionLoad_Python_File = QtGui.QAction(MainWindow) self.actionLoad_Python_File.setObjectName(_fromUtf8("actionLoad_Python_File")) self.actionFull_Load = QtGui.QAction(MainWindow) self.actionFull_Load.setCheckable(True) self.actionFull_Load.setChecked(True) self.actionFull_Load.setObjectName(_fromUtf8("actionFull_Load")) self.actionLazy_Load = QtGui.QAction(MainWindow) self.actionLazy_Load.setCheckable(True) self.actionLazy_Load.setObjectName(_fromUtf8("actionLazy_Load")) self.actionLoad_Data = QtGui.QAction(MainWindow) self.actionLoad_Data.setObjectName(_fromUtf8("actionLoad_Data")) self.actionSpyke_Repository = QtGui.QAction(MainWindow) icon18 = QtGui.QIcon() icon18.addPixmap(QtGui.QPixmap(_fromUtf8(":/Application/Repository")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionSpyke_Repository.setIcon(icon18) self.actionSpyke_Repository.setObjectName(_fromUtf8("actionSpyke_Repository")) self.actionCached_Lazy_Load = QtGui.QAction(MainWindow) self.actionCached_Lazy_Load.setCheckable(True) self.actionCached_Lazy_Load.setObjectName(_fromUtf8("actionCached_Lazy_Load")) self.actionFull = QtGui.QAction(MainWindow) self.actionFull.setCheckable(True) self.actionFull.setChecked(True) self.actionFull.setObjectName(_fromUtf8("actionFull")) self.actionLazy = QtGui.QAction(MainWindow) self.actionLazy.setCheckable(True) self.actionLazy.setObjectName(_fromUtf8("actionLazy")) self.menuRead_Mode.addAction(self.actionFull_Load) self.menuRead_Mode.addAction(self.actionLazy_Load) self.menuRead_Mode.addAction(self.actionCached_Lazy_Load) self.menuCascade_Mode.addAction(self.actionFull) self.menuCascade_Mode.addAction(self.actionLazy) self.menuFile.addAction(self.actionLoad_Data) self.menuFile.addAction(self.menuRead_Mode.menuAction()) self.menuFile.addAction(self.menuCascade_Mode.menuAction()) self.menuFile.addAction(self.actionClearCache) self.menuFile.addAction(self.actionSave_Data) self.menuFile.addAction(self.actionSave_Selected_Data) self.menuFile.addAction(self.actionSwitch_Modes) self.menuFile.addSeparator() self.menuFile.addAction(self.actionSave_selection) self.menuFile.addAction(self.actionLoad_selection) self.menuFile.addSeparator() self.menuFile.addAction(self.actionLoad_Python_File) self.menuFile.addAction(self.actionEdit_Startup_Script) self.menuFile.addAction(self.actionSettings) self.menuFile.addAction(self.actionExit) self.menuHelp.addAction(self.actionDocumentation) self.menuHelp.addAction(self.actionSpyke_Repository) self.menuHelp.addAction(self.actionAbout) self.menuSelections.addAction(self.actionNewSelection) self.menuSelections.addAction(self.actionClearSelections) self.menuSelections.addSeparator() self.menuPlugins.addAction(self.actionRunPlugin) self.menuPlugins.addAction(self.actionRemotePlugin) self.menuPlugins.addAction(self.actionConfigurePlugin) self.menuPlugins.addSeparator() self.menuPlugins.addAction(self.actionRefreshPlugins) self.menuPlugins.addAction(self.actionRestorePluginConfigurations) self.menuPlugins.addSeparator() self.menuPlugins.addAction(self.actionNewPlugin) self.menuPlugins.addAction(self.actionEditPlugin) self.menuPlugins.addAction(self.actionSavePlugin) self.menuPlugins.addAction(self.actionSavePluginAs) self.menuPlugins.addAction(self.actionShowPluginFolder) self.menuFilter.addAction(self.actionNewFilter) self.menuFilter.addAction(self.actionNewFilterGroup) self.menuFilter.addAction(self.actionCopyFilter) self.menuFilter.addAction(self.actionEditFilter) self.menuFilter.addAction(self.actionDeleteFilter) self.mainMenu.addAction(self.menuFile.menuAction()) self.mainMenu.addAction(self.menuSelections.menuAction()) self.mainMenu.addAction(self.menuFilter.menuAction()) self.mainMenu.addAction(self.menuPlugins.menuAction()) self.mainMenu.addAction(self.menuHelp.menuAction()) self.filterToolbar.addAction(self.actionNewFilter) self.filterToolbar.addAction(self.actionNewFilterGroup) self.filterToolbar.addAction(self.actionCopyFilter) self.filterToolbar.addAction(self.actionEditFilter) self.filterToolbar.addAction(self.actionDeleteFilter) self.pluginToolBar.addAction(self.actionNewPlugin) self.pluginToolBar.addAction(self.actionEditPlugin) self.pluginToolBar.addAction(self.actionSavePlugin) self.pluginToolBar.addAction(self.actionSavePluginAs) self.pluginToolBar.addAction(self.actionRefreshPlugins) self.pluginToolBar.addAction(self.actionConfigurePlugin) self.pluginToolBar.addAction(self.actionRunPlugin) self.pluginToolBar.addAction(self.actionRemotePlugin) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "Spyke Viewer", None, QtGui.QApplication.UnicodeUTF8)) self.menuFile.setTitle(QtGui.QApplication.translate("MainWindow", "&File", None, QtGui.QApplication.UnicodeUTF8)) self.menuRead_Mode.setTitle(QtGui.QApplication.translate("MainWindow", "Data Read Mode", None, QtGui.QApplication.UnicodeUTF8)) self.menuCascade_Mode.setTitle(QtGui.QApplication.translate("MainWindow", "Cascade Mode", None, QtGui.QApplication.UnicodeUTF8)) self.menuHelp.setTitle(QtGui.QApplication.translate("MainWindow", "&Help", None, QtGui.QApplication.UnicodeUTF8)) self.menuSelections.setTitle(QtGui.QApplication.translate("MainWindow", "&Selections", None, QtGui.QApplication.UnicodeUTF8)) self.menuPlugins.setTitle(QtGui.QApplication.translate("MainWindow", "&Plugins", None, QtGui.QApplication.UnicodeUTF8)) self.menuFilter.setTitle(QtGui.QApplication.translate("MainWindow", "&Filter", None, QtGui.QApplication.UnicodeUTF8)) self.consoleDock.setWindowTitle(QtGui.QApplication.translate("MainWindow", "Console", None, QtGui.QApplication.UnicodeUTF8)) self.variableExplorerDock.setWindowTitle(QtGui.QApplication.translate("MainWindow", "Variable Explorer", None, QtGui.QApplication.UnicodeUTF8)) self.historyDock.setWindowTitle(QtGui.QApplication.translate("MainWindow", "Command History", None, QtGui.QApplication.UnicodeUTF8)) self.pluginDock.setWindowTitle(QtGui.QApplication.translate("MainWindow", "Plugins", None, QtGui.QApplication.UnicodeUTF8)) self.filesDock.setWindowTitle(QtGui.QApplication.translate("MainWindow", "Files", None, QtGui.QApplication.UnicodeUTF8)) self.label.setText(QtGui.QApplication.translate("MainWindow", "Format:", None, QtGui.QApplication.UnicodeUTF8)) self.loadFilesButton.setText(QtGui.QApplication.translate("MainWindow", "Load", None, QtGui.QApplication.UnicodeUTF8)) self.configureIOButton.setText(QtGui.QApplication.translate("MainWindow", "Configure Selected IO", None, QtGui.QApplication.UnicodeUTF8)) self.filterToolbar.setWindowTitle(QtGui.QApplication.translate("MainWindow", "Filter Toolbar", None, QtGui.QApplication.UnicodeUTF8)) self.pluginToolBar.setWindowTitle(QtGui.QApplication.translate("MainWindow", "Plugin Toolbar", None, QtGui.QApplication.UnicodeUTF8)) self.actionExit.setText(QtGui.QApplication.translate("MainWindow", "&Exit", None, QtGui.QApplication.UnicodeUTF8)) self.actionSave_selection.setText(QtGui.QApplication.translate("MainWindow", "&Save Selection Set...", None, QtGui.QApplication.UnicodeUTF8)) self.actionLoad_selection.setText(QtGui.QApplication.translate("MainWindow", "&Load Selection Set...", None, QtGui.QApplication.UnicodeUTF8)) self.actionAbout.setText(QtGui.QApplication.translate("MainWindow", "&About", None, QtGui.QApplication.UnicodeUTF8)) self.actionSwitch_Modes.setText(QtGui.QApplication.translate("MainWindow", "Switch Modes", None, QtGui.QApplication.UnicodeUTF8)) self.actionNewSelection.setText(QtGui.QApplication.translate("MainWindow", "&New", None, QtGui.QApplication.UnicodeUTF8)) self.actionClearCache.setText(QtGui.QApplication.translate("MainWindow", "&Clear Data", None, QtGui.QApplication.UnicodeUTF8)) self.actionSave_Selected_Data.setText(QtGui.QApplication.translate("MainWindow", "Save Selected Data &as...", None, QtGui.QApplication.UnicodeUTF8)) self.actionSettings.setText(QtGui.QApplication.translate("MainWindow", "Settings...", None, QtGui.QApplication.UnicodeUTF8)) self.actionClearSelections.setText(QtGui.QApplication.translate("MainWindow", "&Clear", None, QtGui.QApplication.UnicodeUTF8)) self.actionNewPlugin.setText(QtGui.QApplication.translate("MainWindow", "&New Plugin", None, QtGui.QApplication.UnicodeUTF8)) self.actionNewPlugin.setToolTip(QtGui.QApplication.translate("MainWindow", "Create a new plugin", None, QtGui.QApplication.UnicodeUTF8)) self.actionEditPlugin.setText(QtGui.QApplication.translate("MainWindow", "&Edit Plugin", None, QtGui.QApplication.UnicodeUTF8)) self.actionEditPlugin.setToolTip(QtGui.QApplication.translate("MainWindow", "Edit selected plugin", None, QtGui.QApplication.UnicodeUTF8)) self.actionEditPlugin.setShortcut(QtGui.QApplication.translate("MainWindow", "Ctrl+E", None, QtGui.QApplication.UnicodeUTF8)) self.actionRefreshPlugins.setText(QtGui.QApplication.translate("MainWindow", "&Refresh Plugins", None, QtGui.QApplication.UnicodeUTF8)) self.actionRefreshPlugins.setToolTip(QtGui.QApplication.translate("MainWindow", "Refresh all plugins", None, QtGui.QApplication.UnicodeUTF8)) self.actionRefreshPlugins.setShortcut(QtGui.QApplication.translate("MainWindow", "Ctrl+R", None, QtGui.QApplication.UnicodeUTF8)) self.actionSavePlugin.setText(QtGui.QApplication.translate("MainWindow", "&Save Plugin", None, QtGui.QApplication.UnicodeUTF8)) self.actionSavePlugin.setToolTip(QtGui.QApplication.translate("MainWindow", "Save current file", None, QtGui.QApplication.UnicodeUTF8)) self.actionSavePlugin.setShortcut(QtGui.QApplication.translate("MainWindow", "Ctrl+S", None, QtGui.QApplication.UnicodeUTF8)) self.actionConfigurePlugin.setText(QtGui.QApplication.translate("MainWindow", "&Configure Plugin", None, QtGui.QApplication.UnicodeUTF8)) self.actionConfigurePlugin.setToolTip(QtGui.QApplication.translate("MainWindow", "Configure selected plugin", None, QtGui.QApplication.UnicodeUTF8)) self.actionConfigurePlugin.setShortcut(QtGui.QApplication.translate("MainWindow", "F6", None, QtGui.QApplication.UnicodeUTF8)) self.actionRunPlugin.setText(QtGui.QApplication.translate("MainWindow", "Run &Plugin", None, QtGui.QApplication.UnicodeUTF8)) self.actionRunPlugin.setToolTip(QtGui.QApplication.translate("MainWindow", "Run selected plugin", None, QtGui.QApplication.UnicodeUTF8)) self.actionRunPlugin.setShortcut(QtGui.QApplication.translate("MainWindow", "F5", None, QtGui.QApplication.UnicodeUTF8)) self.actionRemotePlugin.setText(QtGui.QApplication.translate("MainWindow", "Start with Remote Script", None, QtGui.QApplication.UnicodeUTF8)) self.actionRemotePlugin.setToolTip(QtGui.QApplication.translate("MainWindow", "Start selected plugin with Remote Script", None, QtGui.QApplication.UnicodeUTF8)) self.actionRemotePlugin.setShortcut(QtGui.QApplication.translate("MainWindow", "F9", None, QtGui.QApplication.UnicodeUTF8)) self.actionNewFilter.setText(QtGui.QApplication.translate("MainWindow", "&New Filter", None, QtGui.QApplication.UnicodeUTF8)) self.actionNewFilter.setToolTip(QtGui.QApplication.translate("MainWindow", "Create a new filter", None, QtGui.QApplication.UnicodeUTF8)) self.actionCopyFilter.setText(QtGui.QApplication.translate("MainWindow", "&Copy", None, QtGui.QApplication.UnicodeUTF8)) self.actionCopyFilter.setToolTip(QtGui.QApplication.translate("MainWindow", "Duplicate selected filter or group", None, QtGui.QApplication.UnicodeUTF8)) self.actionEditFilter.setText(QtGui.QApplication.translate("MainWindow", "&Edit", None, QtGui.QApplication.UnicodeUTF8)) self.actionEditFilter.setToolTip(QtGui.QApplication.translate("MainWindow", "Edit selected filter or filter group", None, QtGui.QApplication.UnicodeUTF8)) self.actionDeleteFilter.setText(QtGui.QApplication.translate("MainWindow", "&Delete", None, QtGui.QApplication.UnicodeUTF8)) self.actionDeleteFilter.setToolTip(QtGui.QApplication.translate("MainWindow", "Delete selected filter or filter group", None, QtGui.QApplication.UnicodeUTF8)) self.actionNewFilterGroup.setText(QtGui.QApplication.translate("MainWindow", "New Filter &Group", None, QtGui.QApplication.UnicodeUTF8)) self.actionNewFilterGroup.setToolTip(QtGui.QApplication.translate("MainWindow", "Create a new filter group", None, QtGui.QApplication.UnicodeUTF8)) self.actionSavePluginAs.setText(QtGui.QApplication.translate("MainWindow", "Save Plugin &as...", None, QtGui.QApplication.UnicodeUTF8)) self.actionSavePluginAs.setToolTip(QtGui.QApplication.translate("MainWindow", "Save current file as...", None, QtGui.QApplication.UnicodeUTF8)) self.actionDocumentation.setText(QtGui.QApplication.translate("MainWindow", "&Documentation", None, QtGui.QApplication.UnicodeUTF8)) self.actionDocumentation.setToolTip(QtGui.QApplication.translate("MainWindow", "Open documentation website\n" "(requires Internet access)", None, QtGui.QApplication.UnicodeUTF8)) self.actionSave_Data.setText(QtGui.QApplication.translate("MainWindow", "Save All &Data as...", None, QtGui.QApplication.UnicodeUTF8)) self.actionShowPluginFolder.setText(QtGui.QApplication.translate("MainWindow", "&Open containing folder...", None, QtGui.QApplication.UnicodeUTF8)) self.actionShowPluginFolder.setToolTip(QtGui.QApplication.translate("MainWindow", "Open folder that contains selected plugin", None, QtGui.QApplication.UnicodeUTF8)) self.actionEdit_Startup_Script.setText(QtGui.QApplication.translate("MainWindow", "Edit Startup Script", None, QtGui.QApplication.UnicodeUTF8)) self.actionRestorePluginConfigurations.setText(QtGui.QApplication.translate("MainWindow", "Restore Plugin configurations", None, QtGui.QApplication.UnicodeUTF8)) self.actionRestorePluginConfigurations.setToolTip(QtGui.QApplication.translate("MainWindow", "Restore Plugin configurations to their default values", None, QtGui.QApplication.UnicodeUTF8)) self.actionLoad_Python_File.setText(QtGui.QApplication.translate("MainWindow", "Load &Python File...", None, QtGui.QApplication.UnicodeUTF8)) self.actionFull_Load.setText(QtGui.QApplication.translate("MainWindow", "Full Load", None, QtGui.QApplication.UnicodeUTF8)) self.actionLazy_Load.setText(QtGui.QApplication.translate("MainWindow", "Lazy Load", None, QtGui.QApplication.UnicodeUTF8)) self.actionLoad_Data.setText(QtGui.QApplication.translate("MainWindow", "Load Data...", None, QtGui.QApplication.UnicodeUTF8)) self.actionSpyke_Repository.setText(QtGui.QApplication.translate("MainWindow", "Spyke Repository", None, QtGui.QApplication.UnicodeUTF8)) self.actionCached_Lazy_Load.setText(QtGui.QApplication.translate("MainWindow", "Cached Lazy Load", None, QtGui.QApplication.UnicodeUTF8)) self.actionFull.setText(QtGui.QApplication.translate("MainWindow", "Regular", None, QtGui.QApplication.UnicodeUTF8)) self.actionLazy.setText(QtGui.QApplication.translate("MainWindow", "Lazy", None, QtGui.QApplication.UnicodeUTF8)) import icons_rc spykeviewer-0.4.4/spykeviewer/ui/dir_files_dialog.py0000644000175000017500000000511712650522331021050 0ustar robrobfrom PyQt4.QtCore import QEvent from PyQt4.QtGui import (QFileDialog, QListView, QPushButton, QDialog, QTreeView) class DirFilesDialog(QFileDialog): """ A file dialog that allows to choose multiple files and folders. """ def __init__(self, parent=None, caption='', directory='', filter=''): super(DirFilesDialog, self).__init__(parent, caption, directory, filter) self.setOption(QFileDialog.DontUseNativeDialog, True) self.setAcceptMode(QFileDialog.AcceptOpen) self.setFileMode(QFileDialog.Directory) self.setNameFilter('All files or folders (*)') self.setNameFilterDetailsVisible(False) self.list_view = self.findChild(QListView, 'listView') if self.list_view: self.list_view.setSelectionMode(QListView.ExtendedSelection) sel_model = self.list_view.selectionModel() sel_model.selectionChanged.connect(self.enable_update) self.tree_view = self.findChild(QTreeView, 'listView') if self.tree_view: self.tree_view.setSelectionMode(QTreeView.ExtendedSelection) sel_model = self.tree_view.selectionModel() sel_model.selectionChanged.connect(self.enable_update) for b in self.findChildren(QPushButton): if 'choose' in b.text().lower(): self.button = b b.installEventFilter(self) b.clicked.disconnect() b.clicked.connect(self.choose_clicked) b.setEnabled(False) break def eventFilter(self, watched, event): if event.type() == QEvent.EnabledChange: if not watched.isEnabled(): if self.list_view: if self.list_view.selectionModel().selectedIndexes(): watched.setEnabled(True) elif self.tree_view: if self.tree_view.selectionModel().selectedIndexes(): watched.setEnabled(True) return super(QFileDialog, self).eventFilter(watched, event) def enable_update(self): if self.list_view: if self.list_view.selectionModel().selectedIndexes(): self.button.setEnabled(True) else: self.button.setEnabled(False) elif self.tree_view: if self.tree_view.selectionModel().selectedIndexes(): self.button.setEnabled(True) else: self.button.setEnabled(False) def choose_clicked(self): self.done(QDialog.Accepted)spykeviewer-0.4.4/spykeviewer/ui/icons_rc.py0000644000175000017500000041373512650522331017401 0ustar robrob# -*- coding: utf-8 -*- # Resource object code # # Created: Mi. Jun 19 11:08:33 2013 # by: The Resource Compiler for PyQt (Qt v4.8.2) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x05\xff\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x05\xc6\x49\x44\x41\x54\x48\x89\x8d\x55\x5b\x6c\x54\x55\ \x14\x5d\xe7\x31\x77\xee\x3c\xee\x6d\x4b\x47\x87\xe9\x43\x5a\x79\ \x04\xda\xd2\x42\xa9\x94\xd8\x26\xf5\x17\x13\x3e\x04\x2a\x02\x15\ \x8d\x18\x2c\x34\x8a\x7e\xf1\x03\x8a\x91\x44\x6a\xd3\x50\xfc\xe0\ \x47\x12\x41\x4c\x79\x7d\x40\x1b\xa8\xb1\x60\x8c\x90\xf0\x88\xb5\ \xd4\x04\x95\xf2\x68\x29\xd2\x0e\x33\x1d\xec\x0c\x74\x1e\x77\xee\ \xbd\xe7\xf8\xd1\xd2\x4c\x79\x88\x3b\x39\x1f\xfb\x63\xad\x7d\xf6\ \x3e\x7b\xad\x43\xa4\x94\x78\x5e\x34\x34\x34\x38\x37\x6c\xd8\xf0\ \xf3\xc0\xc0\x40\x3e\xa5\x14\xb9\xb9\xb9\xb7\x57\xad\x5a\x55\xf7\ \x5c\x20\x00\x48\x29\x9f\x7b\x14\xc5\x51\xfc\xed\x81\x83\xd6\x58\ \x34\x26\x13\xc9\x94\xfc\x66\xff\x7e\x03\xc0\x0b\xff\x07\xcb\x76\ \xee\xdc\x39\xad\x60\x73\x73\xf3\x8c\xce\xce\xce\xee\xa1\x3b\x77\ \x7e\xad\xac\xac\x0c\xb7\xb5\xed\xa9\xaa\xa8\x58\xd4\xba\xfc\xf5\ \xe5\x73\x15\x45\x21\x42\x48\xf8\xfd\x7e\xaa\x79\xbd\x73\xaf\x5e\ \xbd\xfa\xc7\xb2\x65\xcb\xc2\xad\xad\xad\x4b\x3b\x3a\x3a\x0e\xf7\ \xf5\xf5\x1d\xa9\xa9\xa9\xb1\x32\xf9\x48\xe6\x88\x76\xef\xfe\x92\ \x11\x42\x6f\xae\x6b\x78\xbb\x28\x14\x0c\x86\xcf\x9f\x3f\x97\x2a\ \x2e\x7e\xb9\xe0\xd5\x9a\x1a\x9a\x4e\x1b\x60\x8c\xc3\xe1\xe0\x70\ \x38\x1c\xf0\x78\x3c\xe8\xee\xee\xb6\x21\xe5\xaf\xfe\x99\x33\xe7\ \x94\x95\x95\xf9\xda\xf6\xec\xb9\xb1\x6d\xdb\xb6\x79\xcf\x2c\xd0\ \xda\xda\x7a\x67\x55\xfd\x9b\x85\xf1\x78\x1c\x8a\xa2\x80\x73\x8e\ \x54\x2a\x05\x00\xf0\xb8\x5d\xe0\xdc\x01\xee\xe0\x70\x70\x0e\x42\ \x08\x18\x63\xe0\x9c\x43\x08\x01\xd3\x34\xa1\xaa\x2a\x5a\x5a\x5a\ \x06\x76\x6c\xdf\x3e\xfb\x11\x27\x9d\xaa\x44\x88\x2b\x91\x4c\xaa\ \x42\x08\x10\x42\x60\x9a\x26\x92\xc9\x24\x84\x10\x10\xb6\x8d\xa1\ \xa1\x3b\x08\x8e\x8c\x60\xf8\xef\xbb\x18\x18\x18\x84\x61\x18\xb0\ \x2c\x0b\x86\x61\xc0\x34\x4d\x48\x09\xd8\x96\x0d\xcb\x34\x5d\x84\ \x10\xf6\xd4\x0e\x54\x55\x5d\x7f\xea\xf4\xe9\x03\xb3\x8a\x8a\xb9\ \x69\x9a\x10\x42\x60\xec\xfe\x7d\x94\x96\x96\xc2\xe5\x52\xa1\x28\ \x0a\x28\xa5\xb0\x85\x80\x14\x02\xd7\xfa\xaf\xa3\xb0\xb0\x60\x72\ \x11\x14\xfc\xf6\x5b\x8f\xf9\x5a\xdd\x6b\x2b\x84\x10\x3f\x3e\xe2\ \xe4\x99\xf3\xaa\xaa\xaa\x2a\x99\x55\x54\xcc\x2d\xcb\x82\x10\x02\ \xb1\x68\x14\x15\x15\xe5\xb8\x17\x0a\x83\x10\xc0\x34\x2d\xe8\xba\ \x06\x5d\xd7\x20\x25\x30\x6f\xde\x5c\xdc\xbe\x7d\x1b\x3e\x5f\x2e\ \x52\xa9\x14\xe6\xcc\x99\xeb\x28\x2f\x2f\xaf\x00\x30\x55\x80\x66\ \x16\x58\x5d\x5f\xbf\x5e\x51\x94\xa9\x15\x2b\x2b\x2b\xc5\x58\x34\ \x06\xc6\x28\x14\xc5\x09\xcb\x32\xed\x74\x3a\x2d\x14\xc5\x09\x29\ \x25\xe2\xf1\x38\x0a\x0b\x0a\x90\x4a\x19\x48\xa7\x4d\x78\x3c\x1e\ \xac\x59\xb3\xe6\xfd\x69\x8f\xbc\x65\xcb\x96\xbc\xac\xac\xac\xc3\ \x96\x65\xe5\xac\x79\x6b\x6d\x89\xc7\xe3\x61\x96\x35\xb1\x69\x1e\ \x8f\x67\xe2\x16\x94\xe2\xf3\x9d\x9f\xfd\xd1\xde\xde\xde\xee\x70\ \x38\x3c\x8d\x8d\x9b\x1b\x76\x7c\xba\xe3\x25\xc3\x30\x60\x18\x06\ \x1e\x3e\x1c\x87\xdb\xed\x82\x94\x12\xd1\x68\xcc\x3e\x7a\xe4\xf0\ \x5f\xa6\x69\x8e\x9e\x3c\x79\x72\x23\x09\x04\x02\xf5\xa7\x4e\x77\ \x1d\x09\x04\xf2\x68\xec\x41\x0c\xb6\x6d\xc3\xb2\x2c\xfc\x73\xff\ \x3e\xfc\x7e\x3f\xbc\x5e\x2f\x7e\xe8\xea\x0a\x35\x36\x7e\x50\x22\ \xa5\xfc\x67\x72\x21\xaa\xda\xda\xf6\x9e\x7b\x63\xe5\x4a\x57\x3c\ \x1e\x47\x30\x38\x82\x40\x20\x6f\x42\x58\x8c\x21\x27\x27\x07\x83\ \x83\x83\xd6\xfa\x75\x6b\x3f\xa4\x00\x94\x44\x22\x81\x68\x2c\x0a\ \xdb\xb6\x41\x08\x81\x10\x02\x00\x30\xfe\x70\x1c\x86\x61\x60\x68\ \x68\xe8\xe6\x23\x72\x00\x90\x52\xf6\xb8\xdc\xae\xd1\x58\x2c\x86\ \xb4\x61\x80\x52\x06\x5b\x08\x50\x4a\x26\x70\xf1\x38\x52\xa9\x24\ \x91\x52\x32\x0a\xc0\xd6\xbc\x1a\x72\xb2\xb3\xc1\x28\x85\x14\x02\ \x94\x10\x28\x8a\x82\x82\xc2\x7c\x68\x9a\x86\xd2\xb2\xd2\xd9\x78\ \x2c\x28\xa1\x2f\xe8\x59\x3a\xb2\xb2\xb3\x41\xc8\x04\xb1\x90\x00\ \xe7\x1c\xbe\xdc\x5c\xe8\x9a\x2e\x01\x80\x46\x22\x91\xbe\x8e\x8e\ \x13\xfd\xdf\x1f\xfa\x6e\x78\x6c\x6c\xcc\xe6\x9c\x63\xd2\xd0\xa0\ \xaa\x2a\x28\x25\xd0\xf5\xac\x99\xd5\xd5\xd5\x53\x0a\xad\xae\xae\ \x9e\x97\x5f\x50\xe0\x22\x20\xe0\x9c\x23\xd7\xe7\x9b\x12\x5e\x28\ \x1c\xb2\x3f\xf9\x78\xeb\xcd\x73\xe7\x7e\xb9\x35\x3c\x3c\xdc\x4b\ \xa4\x94\x20\x84\x70\x00\xf8\x62\xd7\xae\x81\xa6\xa6\xa6\xc2\x68\ \x34\x8a\x64\x32\x05\xbf\xff\x45\x10\x42\x60\x59\x16\x7a\x7a\x7a\ \x60\xa4\x0c\x70\xce\xc0\x18\xc7\xc2\xf2\x72\x38\x15\x05\x86\x99\ \x46\x34\x1a\x03\x63\x0c\xba\xae\xe3\xeb\xbd\x6d\xb7\xbe\x6a\x6e\ \x9e\x43\x08\x71\x4a\x29\x0d\x3a\x39\x53\x4b\x4a\x69\x7d\x77\xf0\ \xe0\xf1\x58\x2c\x06\x4d\xd3\xa0\x6b\x1a\x86\xef\x0e\x83\x73\x0e\ \xc6\x18\x16\x2e\x2c\x47\x5e\x7e\x3e\x5e\x9a\x55\x84\x05\x25\x25\ \x20\x00\x2c\xcb\xc2\xe0\xc0\x20\x18\x63\xa0\x8c\x21\x1c\xba\x87\ \x63\x47\x8f\xb6\x4f\x72\x1a\x4f\xe8\x60\x64\x64\xe4\xc4\x68\x38\ \x6c\x39\x9d\x2a\x14\xa7\x82\x9c\x19\x33\xd0\x7f\xad\x1f\x89\x44\ \x12\xb6\x6d\x43\xd7\x75\xb8\x54\x15\xb6\x6d\x23\x91\x4c\xa2\xff\ \xc6\x0d\xe4\xfa\x7c\x00\x00\x46\x29\x46\x47\x47\xd3\xf7\x82\xc1\ \xce\x69\x3a\xc8\xb4\x8a\x33\x67\xcf\x86\xea\xea\xea\x5e\x8c\xc7\ \xe3\x10\x52\xc0\x4c\x5b\x18\x1f\x1f\x47\x32\x99\xc4\xef\x7d\x7d\ \xb0\xa5\x04\x21\x00\x25\x04\x8b\x16\x2f\x06\xa5\x53\x96\x03\x29\ \x25\x34\x4d\xc3\xe5\x8b\x17\x47\xea\xeb\x57\xe7\x3f\xa1\x64\x42\ \x08\xef\xea\xea\x4a\x00\x00\xe3\x0c\x6e\x97\x1b\x9a\xa6\xc1\xeb\ \xf5\x80\x31\x86\xc5\x95\x95\xa8\x7a\xe5\x15\x2c\x59\x52\x85\xca\ \xca\x25\x60\x94\x41\x55\x55\xe8\xba\x06\x97\xcb\x05\xc6\x18\x20\ \x25\xce\x9c\xe9\x4e\x3c\xb3\x03\x42\xc8\x82\xcd\x9b\x37\x77\xed\ \xdb\xb7\xaf\xa8\xa5\xa5\x25\x12\x89\x44\x1e\xd4\xd5\xd5\x15\xce\ \x9f\xbf\xc0\x91\x36\x4d\xd8\x93\xfa\xe0\x93\x36\xdd\xdb\xdb\x6b\ \x5c\xba\x78\x61\x28\x2f\x2f\xcf\xf7\xee\x7b\x1b\x67\x7c\xb2\xf5\ \xa3\x5b\x87\x0e\x1d\x5a\x21\xa5\xfc\x6b\x5a\x6b\x99\x87\x52\xba\ \xb4\xb6\xb6\xf6\xbc\xd3\xe9\x5c\x0d\x20\x1b\x40\x63\x53\x53\xd3\ \x95\xde\x2b\x57\xc4\x9f\xd7\xfa\xe5\xb5\xfe\xeb\xf2\xd2\xa5\xcb\ \xf6\xa6\x4d\x9b\x2e\x03\x78\x07\x80\xd7\xed\x76\x6f\xac\xad\xad\ \x3d\x0f\xa0\xf2\x71\xbe\xa7\xfe\xa3\x00\x58\x66\xee\x74\x3a\xcb\ \x2e\x5c\xbc\x64\x06\x43\x61\x19\x1a\x8d\xc8\xb3\x67\x7f\x4a\x11\ \x42\x0a\x1f\xc3\xf0\xa7\x71\x4d\xb3\xeb\x8c\xae\xec\xcc\xdc\x30\ \x8c\xd0\xf1\x63\x47\xaf\x07\x83\x41\x0e\x80\x04\x02\x81\x84\x94\ \x32\xf2\x18\x66\xda\x5f\xfc\xd4\x37\xf8\xaf\x20\x84\xcc\x04\xe0\ \x9a\x4c\x93\x52\xca\x7b\xff\x07\xf7\x2f\xa7\x85\x20\x10\x58\x5e\ \x02\x72\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x06\x77\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x06\x3e\x49\x44\x41\x54\x48\x89\x85\x96\x59\x6c\x5c\x57\ \x1d\xc6\x7f\xe7\xae\x73\xe7\xce\x78\x89\x67\x3c\x9e\x71\x6c\xc7\ \xce\xe2\xb6\x4e\x49\xe4\xb4\x10\x09\xa8\x68\x69\x9a\x40\x02\x2f\ \xe4\x05\x84\x58\xa4\xbe\xf0\xc2\xf6\x00\x7d\x40\x42\x02\x81\x10\ \x8b\x10\x52\x84\xc2\x5b\x01\xa1\x14\x84\x8a\x58\x4a\x09\x8b\x9a\ \x96\xad\x69\x48\x88\xb2\xd4\xa4\x71\x12\x8f\x63\x7b\x3c\x1e\x8f\ \x3d\xcb\xbd\x73\xf7\x7b\x78\xc2\x4d\x64\x45\x9c\xb7\xff\xcb\xf7\ \xd3\xf7\x3f\x3a\xdf\x77\x84\x94\x92\x07\x1d\x27\xc2\xfa\xd0\x0f\ \x6e\x1e\xb9\x3a\x37\x7f\xcc\x4a\xbb\x8f\x25\xb1\x37\xa2\x90\x08\ \x2f\x4a\x1a\x4e\x28\x2e\x87\x89\xfe\x47\x88\x5e\x96\xbf\x7e\xb6\ \xfd\x20\x0d\xf1\x20\xc0\x6f\xae\xf7\x3e\xfa\xf3\x73\xf3\x5f\xc5\ \x59\x9d\xde\x39\x20\xc8\x99\x3a\x49\x1a\xb3\x5c\x6f\xd1\x72\x53\ \x9a\xa1\x81\x9b\x9a\x6c\x76\xbb\x4b\xb7\x16\x16\xbf\x95\x06\xed\ \xd3\xf2\xdc\xd7\x93\xff\x0b\xf8\xda\x6b\xa1\xd5\xdd\x6c\x9d\xae\ \xdd\x7a\xeb\x13\x4f\xec\xc9\xf2\xe4\xec\x04\xe3\xa5\x01\xa2\x54\ \xb2\xda\x09\x78\xab\xe6\xb3\xe1\x2b\x34\x36\x3d\xae\x55\x37\xa8\ \xaf\xae\x53\xaf\xdd\x65\xee\xce\xed\xb3\xee\x66\xe3\xe3\xf2\xfc\ \xa9\xf5\x7b\xf5\xb4\x7b\x87\x03\xa7\x3a\x86\x9e\x26\xbf\x78\xd8\ \xbf\x72\xe2\xa9\xe9\x2c\xef\x7f\xd7\x6e\x2a\xc5\x3e\xa4\x94\x08\ \xa9\x90\x31\x6d\x2c\x5b\xc7\x8c\x3d\x2a\x83\x06\x41\x9c\xc3\x71\ \x7b\x8c\xc9\x21\xb2\xd2\x3d\xfa\x46\x6b\xf5\x65\x71\xf0\x53\xc7\ \xe4\xe5\xe7\x9b\xff\xd3\x54\xee\xa3\xc9\xf4\xdb\xe3\x79\xf5\xc4\ \x4e\x3b\xa0\x3c\x32\x4c\x7f\x9f\x8d\x22\x04\xa9\x84\x04\x41\x2b\ \x84\xb6\x2b\xd0\x49\x19\x2f\x64\x78\x62\x7a\x07\xef\x98\x2c\xe0\ \x27\x60\x99\x59\xa6\x27\xca\x8f\xa9\xb1\xfb\xa3\x7b\x35\xb7\x00\ \x93\x5f\xb9\xfe\x54\xec\xf8\x9f\x2b\x17\xfb\xd8\xfb\xf0\x0c\xa1\ \xb0\xa9\xae\x87\x6c\x3a\x11\x5e\xa4\xe0\x85\x50\x6f\xc3\x5a\x17\ \x4c\x53\x67\x62\xc8\x64\x74\xd0\xa4\xbc\x23\x43\x20\x0d\xda\xbd\ \x80\x7c\x36\x4b\xa5\xd0\xff\x11\x31\xf5\xcc\x27\xb7\x01\xa2\xc6\ \xd2\x17\x33\xce\x02\xd9\x2c\x04\xf9\x5d\x2c\xbb\x39\xce\xdf\xec\ \x72\xa3\x91\xd2\x70\x61\xa1\x05\xaf\xdf\x86\xa5\x4e\x8a\xae\x09\ \xd6\x9d\x98\xb5\x4e\x84\x4c\x24\x1d\x3f\x62\xb5\x1b\x22\x54\x85\ \xd1\x4a\x89\x8c\x65\x7e\x5e\xec\x3d\xaa\x6c\xdd\xc1\x3b\xbf\x71\ \x75\x8f\x74\x1b\x4f\xd7\xda\x37\xf9\xcf\xd8\x28\xf6\x43\x63\x64\ \x95\x3c\x71\x68\xb1\xe2\xa8\x14\xf3\x92\x7a\x57\xe0\x27\xb0\xbf\ \x0c\xff\xae\xf6\x40\x26\x90\x46\x2c\xac\x75\x50\x55\x81\x95\x35\ \x81\x10\x55\xd3\x18\x29\x15\x0f\x2e\xac\x34\xde\x0b\xbc\xaa\x01\ \xcc\x2f\x36\xde\x83\xd3\x36\x4d\x2d\x62\x69\xf1\x16\x7d\x76\x8e\ \xf2\x80\x85\x9d\x31\xf1\xa5\x20\x15\x92\x7c\x16\x66\x27\x52\x7e\ \xf2\xb7\x26\xcd\x96\x83\xeb\x39\xc8\x34\xa2\x92\x83\xa1\xac\x82\ \xaf\x4b\xbc\x20\x46\x4d\x52\x76\x8e\x14\x58\xa8\x35\x9f\xdc\x02\ \x84\xae\xbb\x5f\x49\x02\x54\x19\xd3\xea\xba\xcc\x2d\xae\xd3\x68\ \x66\xd8\x33\x5e\x60\x78\xd0\x22\x44\xb0\x77\x50\xf2\xdb\x9a\xc7\ \xa6\xe3\xb1\xd6\xec\xe2\x38\x2e\x41\x14\x62\x0e\x09\xc6\xfa\x52\ \xc6\x8b\x79\x2c\xa9\xa0\xc5\x19\x96\x97\x97\x40\x88\x7d\x5b\x2b\ \x8a\xa3\x60\x48\x09\x23\x54\x2d\xc2\xef\x76\x68\x9b\xeb\xf8\x3d\ \x0b\x57\x98\xec\x2c\xa8\x88\x44\xc5\xf1\x53\x6c\x11\x92\x51\x23\ \x7a\x7e\x8f\x5e\xcf\xc3\xf5\x3c\x56\x64\xc4\x64\x7f\x96\xa3\x8f\ \x4f\x32\xa0\x4b\xfe\x7e\xe1\x0a\xf3\x61\x82\xa6\x19\x03\x5b\x80\ \x28\x0a\x23\x2d\x89\x88\x64\x84\x96\x86\x04\xb1\x87\xa2\xc4\xe4\ \x94\x36\x25\xd3\xe0\xa5\x6b\x31\xa3\x7d\x2a\x33\x65\x03\x55\xc4\ \x68\x9a\xc0\x4f\x63\x0c\xc5\x47\x23\xe6\x7d\x8f\xee\xa5\x94\x53\ \xd9\xd8\xd8\xc0\x0f\x7c\x12\x09\xa9\x6a\xc6\x5b\x80\xd4\xed\x54\ \xe3\x54\x41\xc8\x90\xd4\xef\x60\x09\x9f\x91\x3e\x8b\x23\xd3\x16\ \xdf\xf9\x43\x15\x3d\x4e\x98\x2a\x65\xf8\xd2\xb1\x51\x4e\xce\x0e\ \x71\xad\xa8\x73\xee\x6a\x80\x1e\x45\x9c\x38\x58\xe2\xdc\x85\x39\ \x44\xe2\x62\xc9\x80\xc5\x95\x35\xba\x6e\x40\xaa\x18\x2b\x5b\x80\ \x99\xa9\xbe\x37\xe6\xae\xaf\x92\xb5\x0d\x1e\x2a\x65\x98\x1a\xcf\ \xf0\xf8\x23\x05\x7e\xf8\x6a\x95\xdb\xf5\x80\x9c\xef\x51\xb1\x4b\ \x04\x91\xe4\xe4\xa1\x61\x0e\x8d\xd9\x0c\x67\x02\x9c\x8e\xc9\xef\ \xce\x5d\xa4\x5e\xaf\xa1\x27\x1e\x5a\xe2\x93\x20\x69\xb9\x09\x28\ \xfa\xc5\xad\x77\xf0\xd7\xef\x9e\xfc\x67\xb9\x90\xa9\x4e\x94\x06\ \x78\x66\x76\x82\x0f\x1c\x28\x71\xb3\x5a\xc7\xef\x6c\xa2\x45\x3e\ \x83\x59\xd8\x5f\xd1\x28\xe5\x04\xb6\xa1\x90\x51\x63\x88\x5c\xce\ \x5f\x9a\x63\xa9\xba\x40\xb3\xbe\x42\xa7\xd5\x64\xa3\xe3\xd0\xf3\ \x63\x3a\x7e\xea\x08\xa1\xfc\x69\xcb\xc1\xa0\x6d\x38\x9f\x3e\x7e\ \xe8\xcc\xbf\xae\xdf\x79\xee\xf8\xe1\x47\x70\xbd\x1e\xfb\x47\x74\ \xa2\x9e\x60\xbd\x07\x51\x90\x20\xfc\x4d\x2e\xcc\x29\xd4\xd7\x73\ \xc4\x51\x44\xd8\xd9\x40\x78\x4d\xd4\x60\x83\xbc\x16\x93\xa4\x02\ \xa1\xe9\x38\xa1\xc0\x57\x72\x2f\xca\xd7\xbf\xbf\x70\x5f\xd8\x3d\ \xfb\xe1\xc3\xa7\xde\x9c\x5f\xf8\xd8\x2f\xff\xfc\x8f\xf1\x24\x4a\ \xc8\x68\x0a\x03\x69\x82\x1b\x44\x98\x6a\x0e\x9d\x88\x3b\x77\x57\ \x58\xaa\x26\xec\x1e\x2f\xa2\xcb\x80\xbc\x1e\xb3\xa7\x3c\x40\x9c\ \x42\x75\xdd\xc5\x0d\xc1\xc5\x6a\xb1\xeb\xc8\x37\xb7\xa5\xe9\x44\ \x31\xbf\x6c\x57\x66\xbe\xfc\xd3\x17\x7f\xfc\x33\x12\x4f\xd9\x5d\ \x1e\x62\xa2\x32\x4c\x3e\x3f\x48\xff\x50\x81\x9d\xc5\x21\x0c\x55\ \xa1\xbc\xc3\xe6\xf2\xdc\x02\x96\x96\x63\xf7\xd8\x18\xf3\x49\x82\ \xef\xfb\xe4\xb3\x92\x9a\x1b\x12\x15\x0f\x3d\x27\x5f\xf8\xe0\x8d\ \x6d\x59\x94\xfb\xc2\x15\xed\x6c\x6d\xe8\xec\xc6\xd0\xbb\xbf\xb7\ \xb2\xbc\xca\xfc\x8d\x39\x6e\x2f\xae\x51\x6f\x29\x74\x9d\x0c\xa6\ \x59\x64\xb8\x38\x81\xd4\x87\x29\x94\x67\xf0\x44\x05\xbb\xb0\x0f\ \x2b\x3f\xc1\xa6\x2b\xa9\x3b\x09\xa1\x35\xf9\x3c\x83\x7b\xcf\x88\ \xcf\x5c\x56\xb6\x39\x70\xfd\x44\xba\x7e\xcf\x60\x64\xf6\x2f\x1c\ \x34\xf6\xad\xdf\xf8\xd5\x71\xb5\xba\xa6\xf5\x92\x29\x5a\xa9\x8d\ \xa7\xf5\x33\xb0\xa3\x1f\xdd\x84\x30\xc8\xd3\x69\xeb\x78\x1d\x8f\ \xd5\x0e\xdc\xed\xd9\xb2\x61\x4c\xbe\xc2\xe0\xf4\x19\xb2\xa6\x71\ \x6f\x09\xbc\x5d\x38\x8a\x90\x80\x8f\x8c\x5b\x54\x1e\x7d\x2d\x1a\ \x98\xd0\x97\x97\x2e\xce\xb6\xd6\xea\x45\xbb\x7d\x51\x5d\xaa\x79\ \x18\xd9\x61\x62\x09\x9a\xa5\x92\xc4\xeb\xf8\x7e\x2d\x5d\xed\x19\ \x4d\x3f\x7b\xf8\x12\x66\xee\xf7\x64\x8c\x06\xaa\x0c\xd1\xdf\xae\ \xc9\xfb\x2a\x53\x7c\xf6\x92\x41\xa2\x14\x81\x69\x84\x72\x80\x54\ \x99\x21\x70\x76\xe1\x6e\x96\xe8\x75\xfa\x4c\x55\x18\x71\x22\x48\ \xcd\x6c\x28\x8c\x4c\x47\xd1\xed\x7a\xa2\xa8\xb7\xa4\x50\xae\xa1\ \xc8\xcb\x18\xca\x4d\x12\xb5\x29\x4f\x1f\x88\xb6\x3b\x00\xa8\x16\ \x22\xc6\xd6\x9a\xa0\xbc\x89\x46\x9b\x24\xad\x62\x65\x46\x31\x47\ \x0b\x0c\x56\xf2\x01\xd2\x44\x20\x41\xfa\x12\xd1\x91\x82\x86\x54\ \xc4\x0a\x0a\x55\xd2\xa4\x86\x2a\x5b\xbc\x32\x1e\xdf\x2b\xb9\xad\ \xf4\xc5\xd3\x9b\x42\xec\xab\xab\xb2\x1a\x18\x58\xbe\x8d\xae\xda\ \xe8\x8a\x25\x14\xc5\x20\x15\x1a\x02\x29\x45\x1a\x93\xa4\x01\x51\ \xea\x11\xc5\x3d\x91\xc8\x9e\xcc\xf4\x05\xf2\x85\xfd\xdb\x7e\x15\ \xff\x05\x67\x00\x22\x69\xa7\xb6\x84\xd9\x00\x00\x00\x00\x49\x45\ \x4e\x44\xae\x42\x60\x82\ \x00\x00\x05\x5c\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x06\x62\x4b\x47\x44\x00\x00\x00\x00\x00\x00\xf9\x43\ \xbb\x7f\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x00\x48\x00\x00\ \x00\x48\x00\x46\xc9\x6b\x3e\x00\x00\x00\x09\x76\x70\x41\x67\x00\ \x00\x00\x18\x00\x00\x00\x18\x00\x78\x4c\xa5\xa6\x00\x00\x03\x8d\ \x49\x44\x41\x54\x48\xc7\xa5\x96\xdd\x6b\x5c\x55\x14\xc5\x7f\xe7\ \xce\xbd\x93\x99\x49\x9b\xda\x6a\xad\x58\x69\x6b\x4a\xa6\x26\xd6\ \xfa\x01\x69\x91\x82\xf8\xe6\x5f\x60\x21\x4f\x3e\x54\x5f\xa4\xe0\ \x43\xf1\x0f\x28\xf8\xd2\x57\x21\x20\x08\x0a\x05\x7d\xac\xf8\xa4\ \x20\x14\xc4\x22\x41\xe8\x53\x8b\x29\x93\xd8\xd6\xf4\x6b\x62\x63\ \x3b\x93\x4c\xe6\xe3\x9e\xb3\xf7\xf6\x61\x66\xda\x99\x64\xea\x0c\ \xf4\xc0\xe1\x5e\x0e\x97\xb5\xf6\x5e\x6b\xed\xc3\x75\x66\xc6\xb3\ \xac\xcb\x97\x2f\xc7\x49\x92\x8c\x3b\xe7\xc6\x9d\x73\xfb\x77\xee\ \xd8\x51\x74\x51\xe6\x68\x8b\xe4\x8d\xa5\x1b\x37\x2e\xc5\x23\x82\ \xbc\x90\xcb\xe5\x5e\xc9\xe5\x72\xcf\x45\x51\xb4\x27\x8a\xa2\xc3\ \xf9\x7c\x7e\xa6\x50\x28\x1c\x39\x76\xec\xcd\xbd\xd9\x6c\xb2\x33\ \x1b\x67\x26\xbc\xba\x7c\x3d\x40\x6a\x8e\x24\xe3\x28\x57\x37\xee\ \x0d\x25\x98\x9b\x9b\x7b\x6b\x7e\x7e\xfe\xe7\xdd\xbb\x77\xef\x73\ \xce\x0d\xfc\x46\xcd\x78\x54\x17\x5a\x0a\xd9\x24\xc3\x58\xc6\xe1\ \x43\x40\xd5\x5c\x34\x8c\xa0\x5e\xaf\x1f\x9e\x98\x98\x78\x0c\x3e\ \x48\xd2\x72\xa5\xc9\x7a\x80\x38\x1b\xa3\x38\x52\x81\x20\x20\x0a\ \x43\x09\x44\xc4\x54\xb5\x0f\xdc\xcc\x30\x33\x54\x95\xb4\x59\xe7\ \x61\xb5\x46\x3e\xc9\x90\x0a\x78\x85\xa0\x90\x6a\xfb\x7d\x28\x41\ \x17\x6c\xd0\x6a\x36\x1a\xd4\xeb\x0d\xfe\x29\xdf\x47\x14\xbc\xb4\ \x77\xbb\x03\x23\x18\x0c\xf5\xa0\x5b\xfd\xa0\x15\x44\x9e\x14\x42\ \x1b\x38\x72\xed\xa2\x44\x20\x84\x11\x09\x86\x47\xd9\x50\xb3\xb6\ \x24\x0e\x54\x04\x55\x45\x4c\x47\x27\xe8\x95\x6a\x6b\x9a\x0c\x10\ \x35\x44\x0c\x01\x24\x84\x8e\x7f\x36\x9c\x60\x50\xf5\x5b\xcd\x36\ \xb3\x8e\x07\x86\x4a\xc0\xcc\x70\x40\xc3\x8f\xd0\x41\x2f\x88\x99\ \xf1\xd4\x59\x50\xa5\x95\x0a\xaa\x42\xc6\x41\x33\x18\x95\x86\x0c\ \x27\x90\x1e\x23\xb7\x76\xf4\x98\x18\x08\xa2\xb4\x52\x8f\x03\x88\ \xe0\x51\x5d\x69\xb4\x46\x23\xd8\x36\x07\x5b\xbb\x50\x55\xbc\x17\ \x52\xaf\x64\x22\x68\x7a\x63\xad\xe6\x11\x1d\x41\xa2\x93\x27\x4f\ \x16\xe2\x38\xde\x56\x79\xf7\x29\x12\x08\x3e\xc5\xab\xe1\x45\x51\ \x85\xd5\x5a\x20\xf5\x8a\xaa\xfe\xff\xa0\x7d\x72\xfa\xf4\xbb\xe7\ \xce\x9d\xbb\x10\xc7\x71\x5f\x9a\xba\xe0\xde\x7b\x1a\xad\x94\x99\ \x57\x5f\x66\x69\x69\x99\x3d\xf9\x0c\xf7\xab\x29\xd5\xba\xc7\x54\ \x50\x19\x20\xd1\x74\xb1\x18\x01\x99\xc5\x52\xc9\x6f\xac\xaf\xbf\ \x38\x36\x36\x16\x79\xef\xfb\xe4\x90\x4e\xce\x93\x24\x21\x4d\x53\ \x12\x84\x44\x1b\x3c\xa8\x79\x2a\x75\x4f\x04\x04\x0c\x91\x1e\x89\ \xa6\x8b\xc5\x2c\x90\xa3\x3d\x7c\xc9\xe4\xc1\x83\x72\xfc\xc4\x89\ \x9d\xaa\x4a\x08\xe1\xf1\xdd\xd3\x2b\x55\x1c\xc7\x44\x51\x84\x8a\ \xe0\xc5\xb0\x20\x98\x28\x01\xeb\xf8\xd7\xef\x81\x01\x05\x60\x02\ \xc8\x00\xde\xcc\xc6\xbd\xf7\x84\xce\xe0\x0c\x4a\xd2\x93\x33\x50\ \xb5\xf6\xf5\x61\x86\x73\x60\xbd\x1e\x2c\x96\x4a\x1e\x78\x00\xa4\ \x1d\x92\x5d\x66\x56\xd8\x3a\x07\x5b\xc1\xfb\xce\xcd\x88\x4c\x89\ \x30\x9a\x2d\x61\xa3\xe1\xa5\xcf\x83\xc5\x52\x49\xa6\x8b\xc5\x87\ \xc0\xa1\x76\x9a\x29\x74\x63\x39\x28\x45\x38\x47\x3e\x9f\xc7\x59\ \x82\x73\x4e\xd7\xeb\xbe\x7a\xed\x4e\x6d\x65\x6d\x53\x1e\xde\xab\ \xa4\x7f\xb4\xc2\xf3\xdf\x0f\x8a\x69\x0a\x34\x80\x7d\x51\x14\xe5\ \x73\xb9\x1c\xde\xfb\x6d\x95\x97\xcb\x65\x54\xf5\xd6\xb5\xab\x57\ \x7f\xfa\xed\xd2\x2f\x0b\x57\xaa\xbb\x26\x3f\x98\x3b\xf3\xf6\xa5\ \xeb\xb5\x65\x70\x77\x92\x6c\xf2\xed\xcd\xf3\xb3\x95\x6d\x31\x5d\ \x2c\x95\x9a\xc0\x95\x38\x8e\xff\xba\xbd\xb2\x72\xeb\x87\x8b\x17\ \x7f\x15\x55\x59\x5d\x5d\xd5\xbb\x77\xef\xae\x2e\x2f\x2f\xff\xb8\ \xb0\xb0\xf0\xd9\x81\x03\x07\x8e\xff\xbb\xb6\x76\xe4\xc3\x53\xa7\ \x3e\xfd\xf2\xab\xaf\x2f\xac\xdc\x5e\xf9\xbb\x29\x99\x82\xdb\xb8\ \x7f\xbb\xf0\xfb\x17\xdf\xdc\x3c\x3f\x5b\xd9\xa6\x61\xef\x7e\x6d\ \x6a\xca\x4d\x4d\x4e\x16\x5e\xda\xbb\x37\xfa\xfc\xec\xd9\xf7\x37\ \x37\x37\x5f\xaf\x54\x2a\x85\xa7\x7d\x7f\xe8\xbd\xb9\x8f\xf7\x7f\ \xf4\xdd\x99\xe2\xd1\xd9\xb1\xbe\xbb\xeb\x59\x7f\x5b\xba\x6b\xe6\ \xe8\x3b\xe3\x16\x9a\xe9\xe2\xf5\x3f\x7d\xef\xf9\x7f\xa2\xf9\xa9\ \x63\x02\x48\xc8\x7a\x00\x00\x00\x25\x74\x45\x58\x74\x63\x72\x65\ \x61\x74\x65\x2d\x64\x61\x74\x65\x00\x32\x30\x30\x39\x2d\x31\x31\ \x2d\x32\x38\x54\x31\x37\x3a\x31\x38\x3a\x32\x38\x2d\x30\x37\x3a\ \x30\x30\x31\x91\xb2\x2c\x00\x00\x00\x25\x74\x45\x58\x74\x64\x61\ \x74\x65\x3a\x63\x72\x65\x61\x74\x65\x00\x32\x30\x31\x30\x2d\x30\ \x32\x2d\x32\x30\x54\x32\x33\x3a\x32\x36\x3a\x31\x35\x2d\x30\x37\ \x3a\x30\x30\x06\x3b\x5c\x81\x00\x00\x00\x25\x74\x45\x58\x74\x64\ \x61\x74\x65\x3a\x6d\x6f\x64\x69\x66\x79\x00\x32\x30\x31\x30\x2d\ \x30\x31\x2d\x31\x31\x54\x30\x38\x3a\x34\x35\x3a\x31\x37\x2d\x30\ \x37\x3a\x30\x30\xbb\x78\xb3\xe6\x00\x00\x00\x35\x74\x45\x58\x74\ \x4c\x69\x63\x65\x6e\x73\x65\x00\x68\x74\x74\x70\x3a\x2f\x2f\x63\ \x72\x65\x61\x74\x69\x76\x65\x63\x6f\x6d\x6d\x6f\x6e\x73\x2e\x6f\ \x72\x67\x2f\x6c\x69\x63\x65\x6e\x73\x65\x73\x2f\x4c\x47\x50\x4c\ \x2f\x32\x2e\x31\x2f\x3b\xc1\xb4\x18\x00\x00\x00\x25\x74\x45\x58\ \x74\x6d\x6f\x64\x69\x66\x79\x2d\x64\x61\x74\x65\x00\x32\x30\x30\ \x39\x2d\x31\x31\x2d\x32\x38\x54\x31\x34\x3a\x33\x32\x3a\x31\x36\ \x2d\x30\x37\x3a\x30\x30\x42\x14\xfd\x60\x00\x00\x00\x16\x74\x45\ \x58\x74\x53\x6f\x75\x72\x63\x65\x00\x43\x72\x79\x73\x74\x61\x6c\ \x20\x50\x72\x6f\x6a\x65\x63\x74\xeb\xe3\xe4\x8b\x00\x00\x00\x27\ \x74\x45\x58\x74\x53\x6f\x75\x72\x63\x65\x5f\x55\x52\x4c\x00\x68\ \x74\x74\x70\x3a\x2f\x2f\x65\x76\x65\x72\x61\x6c\x64\x6f\x2e\x63\ \x6f\x6d\x2f\x63\x72\x79\x73\x74\x61\x6c\x2f\xa5\x91\x93\x5b\x00\ \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x06\x1e\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x05\xe5\x49\x44\x41\x54\x48\x89\x7d\x95\x79\x8c\x95\x57\ \x15\xc0\x7f\xf7\x7e\xcb\xdb\xbe\xb7\xcd\xbc\x59\x58\x86\x61\x86\ \xad\x2d\x2a\xce\xa0\x6c\xda\x04\x83\xad\x42\x2a\x89\x10\xb1\xfe\ \xa3\xd5\xd4\xa4\x88\xb5\x49\xa3\x12\x2d\x18\x4b\x6c\x35\x06\xd2\ \x58\x11\x15\x35\x6d\x43\x34\x25\x25\x69\x4c\x4d\x69\x49\x6a\xec\ \x46\x29\x52\x53\x36\xa1\xc8\xd0\xb0\x0c\x8f\x99\x79\xef\xcd\x9b\ \xb7\xbf\xf7\x2d\xc7\x3f\x1e\xd0\xb4\x50\x4e\x72\x92\x7b\x73\xef\ \x3d\xbf\x73\xce\x3d\xf7\x5c\x25\x22\xdc\x4a\x94\x52\x29\x12\x2c\ \x0a\x65\xd4\xfc\xb0\x63\x65\x24\x90\xa0\x51\x76\xc7\x5b\x39\x4e\ \x51\xe5\xb8\x88\x54\x6f\x75\xde\xfc\x58\xc3\x21\xb5\xb0\x77\x79\ \x7c\xd3\xea\x1d\x4b\xef\xb9\x63\xf9\xed\x7d\xbd\x7d\xbd\x44\x62\ \x51\x44\xa0\x5a\x2a\x33\x7a\x6e\x54\x8e\xbf\x76\x62\x24\x3d\x1c\ \xde\x57\x3c\xda\xfc\x83\xf8\x72\xfe\xa6\x76\x3e\x1a\x81\x52\xca\ \x4e\x7e\xca\xfe\xc9\xca\x47\x86\x7f\xbc\x64\xed\xb2\x68\x3a\xdc\ \x03\x18\x04\x08\x82\x00\x0a\x03\x85\x46\x13\xe0\x72\x65\xf2\x22\ \xaf\xef\x79\xad\x70\x70\xfb\xc9\xad\x8d\x0b\xc1\xae\x5b\x02\x94\ \x52\x89\xd9\xeb\x53\x7b\xee\x7a\x62\xc5\xda\xae\xbe\x3e\x9a\x04\ \x04\x12\xb4\xd7\x00\x85\xc6\x17\x8f\xba\x5b\x27\x64\x85\xb0\xb4\ \x8d\x89\x81\x01\xbc\xff\x9f\xd3\x1c\xd8\xf4\xd6\xee\xfc\xa1\xe6\ \x26\x11\xf1\x6e\x00\x28\xa5\xec\xd9\x5f\x4b\x3f\xb7\xea\x77\x4b\ \xd6\xea\x44\x9c\x56\xc3\x43\xa1\x40\x81\x52\x0a\x00\x0f\x8f\xf0\ \x39\x87\x2d\x73\x1e\x27\x1f\x1e\x63\x47\x7d\x1b\x36\x21\x04\x08\ \x45\x2d\xa6\xce\x64\x39\xf0\xed\xb7\x7f\x9f\x3f\xd4\xf8\xde\x0d\ \x77\xd0\xf9\x99\xc8\xd6\xc5\x8f\xce\x5b\x5b\xf4\x5c\xdc\xcb\x13\ \x68\xad\xaf\x81\x01\xd0\x5a\x33\xe9\x16\x58\x5a\xfa\x02\xb3\x9c\ \x7e\x9a\xad\x3a\xf9\x42\x9e\xa8\x8e\x21\x22\x48\x41\xb0\xbb\x43\ \x7c\xf6\xf1\xf9\x1b\x23\x7d\xc6\xbb\xf5\x8b\xfe\xee\xeb\x00\xc3\ \xd1\x43\x2b\xfe\xd8\xff\xf0\x94\xd9\xa0\x3e\x5a\x43\x6b\x8d\x52\ \xea\x03\xd5\x8a\xaa\x5b\x21\x39\xd9\xc9\xf0\xb4\xc5\x20\xf0\xfc\ \xd8\x5e\x8a\x93\x45\x1a\xaa\xc9\xb5\x2c\x04\x05\x21\x3c\xcb\x64\ \xee\xfd\x99\xad\xca\x54\x2f\x88\x27\x59\x13\x60\xfa\x4a\x67\x93\ \x7f\x5b\x2b\x7a\xe1\xdc\x18\x0a\x8d\xa1\x35\xfa\xaa\x2a\xad\x68\ \xb9\x2d\x86\x9b\x4b\xf9\xf5\xd2\x9d\x4c\xcf\x4c\x47\x10\x4e\x16\ \x8e\x31\x3e\x31\x4e\xc4\x88\x62\x28\x83\x20\x08\x08\x44\x60\x52\ \x88\xde\x69\xcc\x4c\x2e\xb4\xee\x03\x7e\x69\x2a\x5b\x75\x2f\x7c\ \x2c\xb5\xfa\x42\x76\x8c\x5a\x0e\x4c\xdb\xc0\x30\x34\xda\x30\xda\ \x10\x53\xe1\x4e\xf9\x3c\xb0\xec\x21\x8e\x8f\x1f\xa5\x33\xd9\x49\ \xc8\x0a\x71\x1b\x9f\x24\x54\x73\xe8\x1d\xec\x66\xd7\xe9\x27\x08\ \xa9\x30\xbe\xef\xe3\x7b\x01\xe1\x24\x24\x97\x9b\x1b\x94\x56\xdb\ \x8d\xc8\x0c\xeb\xce\x8e\x35\xe6\xc6\x89\x91\x06\x7e\x51\xf0\xeb\ \x3e\x6e\xcd\xc3\x6d\xb8\xb4\xea\x2d\x5a\xf5\x16\x15\xaf\x45\xb1\ \x92\x63\xfd\xdc\xaf\xd3\x93\xea\x01\xa0\xcf\xec\x27\xe7\x8e\xf3\ \xec\x99\x3d\x4c\x14\x0a\x78\x15\x17\x77\xca\xc3\x2b\xfa\xb4\xf2\ \x3e\x4e\xdc\xea\x28\x1d\xf1\xf7\x99\xd1\x99\xe6\x02\xcf\xf3\xf1\ \x2e\xb5\x6f\x44\x87\x01\x1b\xb0\x40\x2c\xc0\x10\x0c\x0b\x5e\x18\ \x7d\x91\x9f\x0e\x6d\x03\xe0\xd5\x8b\xaf\xf0\xc8\xab\x0f\xf3\x4e\ \xf6\x04\xe2\x05\x84\x04\xc4\x05\x69\x81\x34\xc1\xf3\x40\xa6\x89\ \x6d\x67\x8c\x01\xd3\x4a\x1a\x5d\x5e\xce\x27\xc8\x83\x4e\x82\xe8\ \x76\xcd\x8b\x00\x01\x28\x13\xaa\x65\xf8\xe1\xa2\x87\xf8\xf4\xec\ \x21\x00\xfe\x7e\xea\x79\xde\x3c\x71\x8c\x98\x03\x3a\x80\xc0\x03\ \xdc\x36\x84\x66\x1b\x14\x78\x82\xe1\xa8\x1e\x53\x99\xe0\x67\xc1\ \x3d\x0a\x46\x06\x74\x06\x54\x12\xb4\x03\x2a\x02\xae\x0d\x5d\x41\ \x92\x8d\x9f\xff\xfe\xf5\x07\xb9\xfd\xee\x27\x31\x03\x83\xdf\xbc\ \xfe\x24\x96\x80\xf2\xda\x9e\x4b\x1d\xa4\x04\x7e\x11\x24\xda\x76\ \xce\x74\x1b\xc1\x44\x3c\x6d\xa0\x6c\x90\x0a\x04\x3e\x50\x82\x20\ \x02\xae\xd9\x9e\x7f\x65\xd5\x2a\x06\xa7\x0d\x72\x79\x72\x94\x43\ \x67\x0f\xd2\x1d\xef\xe1\xb1\x55\xdb\x49\x7a\x29\xb6\xec\xd9\x46\ \x44\xda\xc6\x83\x2a\x48\x19\x68\x80\x9e\xa7\xf1\x03\x7f\xcc\xac\ \xe5\xdd\xf7\x7a\xe2\x51\xac\x0c\x78\x0d\x50\x31\x70\x35\x04\x02\ \xcb\xe6\x0d\xb3\x6c\xc1\x0a\xb6\x6c\xf8\x39\x63\x53\x57\xd8\xf0\ \xdb\x75\xbc\xf9\xdf\xc3\xe0\xc2\xdf\x1e\xfc\x2b\x03\xc9\x39\x50\ \x07\x31\x00\x01\x65\x80\x84\xc0\x8c\x83\x11\xd3\xcd\x56\x39\x78\ \xdf\xac\xe5\xdd\x77\x94\x67\x8c\xc6\xe6\xa8\x19\xa5\x11\xa1\xa9\ \x60\xf3\xbd\x3f\x62\xf5\x92\x35\xc4\x22\x51\x26\x1b\x05\x9e\x39\ \xfc\x67\x76\xfd\x73\x27\x23\xb9\x4b\x44\xbb\xa0\x56\x02\x3f\xf0\ \x99\x68\x8e\x43\x04\x94\xd5\xce\x3d\x06\x28\x81\xe8\x2c\x8d\x57\ \x95\x93\x5e\x3d\x78\xcf\x94\xf3\x32\xd1\xff\x9d\xd4\x8b\x9d\x8b\ \x22\xdf\x2d\x8d\xd7\x70\x2c\x9b\x2f\x0e\xdd\xc5\xce\x7f\xed\x60\ \xff\xc9\xfd\x54\x3d\x1f\x34\xd8\x11\x70\xd2\x1f\x74\xc9\x83\xff\ \x7b\x83\x81\xd9\x83\x60\x83\x0a\x01\x1a\x04\xd0\x1a\x52\xf3\x6c\ \x26\xdf\xf0\x9f\x93\x4b\xe2\x69\x80\xcb\x47\x2a\xbb\x62\xd1\x48\ \x35\x71\x3b\xd8\x31\x8b\x5f\xbd\xf4\x0b\xf6\xbd\xfb\x0f\x7c\xdb\ \x27\x96\x06\xa7\x03\xec\x18\x10\xbe\xaa\x11\x98\x74\xf3\x7c\x73\ \xf9\xb7\xb8\xef\xee\x6f\x20\xe1\x76\x6a\xb0\x21\xb1\x40\x63\xf8\ \xd6\xc5\xc2\x48\xf3\xe9\x0f\x75\xd3\xde\x7b\x9d\x47\x67\xac\x37\ \x7f\x36\x72\x78\x8a\x4a\x01\xc2\xc9\xab\x9e\x59\x57\x43\xbf\x36\ \xa6\x5d\x8e\xb6\x6f\xd3\x1f\x1f\x20\x65\xa7\xf9\xf7\xd9\xb7\xf1\ \xab\x42\x28\x01\x33\xe7\x3b\x9c\xdf\xdb\xba\xbf\x74\xa0\xf9\x97\ \x0f\xb7\xeb\x3b\x94\x35\x78\x4f\x6a\x6f\xf2\x73\xfe\x57\xcf\x1f\ \x2b\xd3\x28\x83\x0e\xb5\x4b\x55\xa7\x15\x76\xc2\xc2\x0a\xb5\x09\ \x5e\xcb\xa3\x51\x6e\xd1\x98\x10\x82\x1a\x84\x02\x08\xc5\x61\xfa\ \x9c\x18\x13\x2f\x07\x3b\xaf\x3c\x55\x7b\xf0\xe6\x1f\xce\x22\xe5\ \x0c\xac\x49\x3d\x93\x59\x29\xeb\xb2\xa3\x53\x94\x72\xa0\xd2\x9a\ \x44\xc6\x21\xee\xc4\x09\x85\xc3\x28\xa0\xd9\x6a\x51\xa9\x94\x29\ \x15\xca\xf8\x05\x9f\x44\x5a\x91\x49\xc5\xc9\xbe\xec\xed\x1a\x7b\ \xab\xf6\x03\x39\x26\xfe\x4d\x01\x00\x6a\xb1\xb2\x32\x43\xb1\xcd\ \xfd\x5f\x0e\x6f\xf6\x7b\xeb\x8e\x6f\x58\xc4\xcc\x4e\x9c\x68\x8a\ \x48\x24\x8a\x52\x8a\x46\xb3\x41\xb5\x56\xa4\xea\xe6\x91\x46\x03\ \xef\x9c\x3d\x7e\xe1\xa5\xfa\x96\xd2\xde\xc6\x9f\xf8\x88\xdc\x00\ \xb8\x26\xe6\x97\xcc\x05\x3d\xc3\xd1\x07\xa6\x0d\x47\xd7\x75\xcf\ \x4d\xcf\xea\xe8\xea\xc0\x71\x12\x28\xa0\x5c\x2e\x93\xbb\x92\x0b\ \xb2\xa7\x0b\x67\xb3\x47\xaa\xcf\xe6\x4e\xd4\x77\x07\xaf\x04\xa3\ \x37\xb3\xf3\xb1\x80\xeb\x1b\x56\xab\x84\xd5\x61\x7c\x22\xd2\x69\ \xce\xb5\xa2\x46\x8f\x88\xf8\xad\x8a\x9f\xad\x17\xdc\x33\x7e\x51\ \x4e\xc9\x7e\xa9\xdd\xea\xfc\xff\x01\x5c\xbf\xb2\x3e\xdb\x55\x2a\ \x23\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x06\x40\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x06\x62\x4b\x47\x44\x00\x00\x00\x00\x00\x00\xf9\x43\ \xbb\x7f\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd6\x00\x00\ \x0d\xd6\x01\x90\x6f\x79\x9c\x00\x00\x00\x09\x76\x70\x41\x67\x00\ \x00\x00\x18\x00\x00\x00\x18\x00\x78\x4c\xa5\xa6\x00\x00\x04\xba\ \x49\x44\x41\x54\x48\xc7\xb5\x95\x4b\x6c\x94\x55\x14\xc7\xff\xf7\ \x7e\x8f\xf9\xe6\xd1\xe9\x94\x67\xb1\x16\xb0\x50\xc2\x4b\x2c\x14\ \x52\x6b\x29\x3e\x16\x88\x71\xa7\x46\x13\xa2\x09\x22\x25\x28\x0b\ \x13\x5d\x90\x60\x22\x22\x89\x0b\x23\x0b\x59\x10\xc5\x47\x88\xd1\ \x44\x45\x37\xc6\x20\x68\x31\x8a\xd0\x54\x2a\xa5\x16\xdb\x69\x29\ \xb4\xa5\xef\xd2\xa1\x9d\x4e\x67\xbe\xc7\x7d\xba\xc0\x20\xaf\x42\ \x8a\xf1\x24\x77\x73\xff\xff\x9c\x5f\xce\x3d\xf7\x9e\x0b\xfc\xcf\ \x41\x6e\xab\x96\xd5\x00\xbe\xeb\x20\x14\x52\x20\x84\xa1\xe9\x93\ \x29\x03\x8c\xc9\x84\x68\xc5\xcb\x88\x98\x88\xcf\x9e\x5f\xf4\xa6\ \xd0\x48\x9b\xa6\xd1\x2f\x7a\x4f\x4d\x19\x40\x6f\xb5\x69\x97\xbd\ \x84\xdc\xf9\xae\xc8\xb2\x07\xcb\xde\xaa\xa8\x2e\xdf\x16\x8f\x47\ \x43\xb1\xbc\xe8\x5d\x1d\x91\x79\x53\x49\x4b\x5f\x00\x4b\x76\x38\ \x2b\x37\x3d\xfd\xc6\xfd\x95\xab\xb6\x8b\x80\x49\x2d\x04\x88\xbe\ \xab\xfc\xd7\xf7\x80\x2c\xda\x08\x7d\xae\xdd\x5e\xf6\xe2\xc6\x1d\ \x0f\xad\xaf\xda\x99\x28\x2a\x74\xc6\x06\x2e\xf1\xba\xda\x93\x07\ \x35\xa1\x9d\x5a\x2b\xaa\xb8\x14\x22\x08\x26\x02\xcf\x1f\x4a\xa7\ \x46\xdb\x73\xdd\x17\x3b\x31\xb3\xc4\x47\xd3\xbe\x3b\x00\x4a\x9e\ \x03\x3a\x9b\xcc\xd2\xe7\x37\xbf\xf6\xf0\x13\xd5\xbb\x66\xce\x2f\ \x8e\x04\x4a\x83\x4b\x85\x6c\xd6\x45\xc0\x04\x18\xe3\xe0\x3e\x03\ \xf7\x7c\x70\xd7\xe3\x6c\x3c\x73\x79\x7c\x78\xa4\x7e\xe0\x62\xdf\ \x81\x4b\xc7\xeb\x7f\xc2\xec\x59\x02\x5d\x87\x6e\xd1\xe4\xb9\xcf\ \x00\xdd\xc7\x8d\xb9\xcf\xd6\x6c\x7f\x64\xc3\xda\xdd\xc5\x0b\xe7\ \x47\x05\xa5\x50\x86\x09\x69\x98\x80\x6d\x43\x5b\x16\xb4\x61\x42\ \x52\x03\x82\x1a\x60\xc4\x30\x84\x69\xc7\xec\x68\x6c\x71\x22\x1e\ \x7b\x92\x4c\x4b\xa8\x4c\x53\xf2\x14\x4a\xab\x15\x52\xcd\xd7\x00\ \xca\xb7\x02\x6d\x8d\x74\xce\x53\x9b\xb6\x3c\xf6\x78\xd5\x3b\x73\ \x17\x95\xc4\xd3\x8a\x60\x54\x12\x8c\x2a\x82\xb4\x22\xc8\x49\x0d\ \x26\x35\xa4\x54\x50\x4a\x41\x08\x09\xc1\x25\x18\x13\x70\x7d\x0e\ \x4e\x0c\x27\x1e\x8b\x54\xf0\xa8\x73\x7e\xe1\x8a\x25\x2d\xc3\x62\ \x0e\x30\x7c\xe6\x4a\x93\x4d\xc7\x81\x58\xb3\xae\xe2\xbe\xe5\x8b\ \xde\x1e\x8b\xcf\xcc\x6f\xe9\x1e\x47\xd6\x30\xc1\xed\x10\xe0\x38\ \x80\x61\x00\x5c\x81\xf8\x0c\x16\x0b\x10\x95\x1c\x51\xa5\x40\x00\ \x68\x00\x1a\x04\x1e\x97\x90\x96\x93\x37\xe3\x9e\xc2\x6d\xcd\x47\ \x7f\xfd\x01\x33\xa6\x65\xae\x56\x40\x8a\x56\x43\xbb\xae\x67\xc5\ \xe3\x8b\x27\xc2\x79\xcb\x53\xc4\x22\x9c\x1a\xd0\x96\x05\x58\x26\ \x40\x29\xb4\x94\x90\x5c\xc0\x0f\x38\x26\x5c\x86\xf1\x6c\x00\xc1\ \x38\x0c\xa5\x20\x39\x87\x60\x02\xbe\x50\x70\x4c\x12\x77\x7d\xef\ \x30\x35\xcd\x41\xd1\xf3\xfb\x15\x80\xee\x6b\x40\xa8\xb4\xda\x4b\ \x9d\xbb\x50\x97\x1f\x0b\x2f\xc8\x9b\x35\x63\x49\x60\x85\x40\x28\ \x05\x08\xa0\x95\x02\x84\x84\xe6\x02\xe0\x1c\x9a\x73\x48\xc6\x91\ \x73\x03\x04\x3e\x83\xa1\x24\x14\x17\xe0\x42\xc2\xa6\x30\x45\x26\ \x73\xc4\x09\x87\xda\x73\x1d\xbf\xfd\xfb\xd0\x82\x93\x75\x88\xcc\ \x29\x1c\xea\xaa\x6b\x78\x95\x25\x5b\x8f\xe6\x73\x0f\x9a\x73\x28\ \x9f\x81\x04\x0c\x86\xe0\x30\xa4\x00\x91\x0a\xfa\x9f\x05\xa9\xe0\ \xfa\x1c\x63\xd9\x00\x5c\x28\x28\x0d\x28\xad\x09\xa5\x84\x5a\xa6\ \x71\xc3\x2d\xc2\x20\x78\x97\x87\xbc\xd5\xe5\x99\x54\xb2\xa3\x3e\ \x11\x0d\x95\x39\xd3\x0b\xe6\xf9\x8a\x60\x1a\xcb\x29\xbb\xa7\x7b\ \x38\x94\x49\x8f\x3b\x5e\x56\x3a\x92\x5b\x54\x2b\xca\x99\x84\x62\ \x0c\x32\x60\x90\x42\x82\x12\x02\x47\x0b\xd7\xbb\x9c\xfa\x88\x73\ \xd1\xe3\x5e\x38\x79\x2d\x00\x00\x86\x10\x74\x64\x90\xa8\xae\x1a\ \x4d\xfd\xd5\xd6\x90\x88\x3a\x6b\xec\x82\x44\x11\x19\x1b\xf3\xfb\ \x8f\xd6\x6e\xeb\x6f\x6c\xde\xe3\xf6\xf5\x7d\xa3\x52\x23\xbf\x84\ \x03\xd7\x8b\x3a\xd6\x02\x5f\xc2\x96\x8c\x43\x49\x09\x4a\x09\xa2\ \x2a\xe8\x1e\xed\xe9\xdd\x97\xf3\x79\x46\xf6\x35\xdc\x08\xb8\x02\ \xf1\x92\x63\x98\xbd\x61\xfd\xc8\xa5\xa6\xb3\x8d\x05\x51\xa7\x32\ \xcf\xb1\xa6\x8f\xf7\x0f\x7c\x60\x47\xc2\x7f\xa6\x6b\xf7\x0e\x7a\ \xc6\xbc\x96\x91\x23\x87\xbf\x8f\xdf\x5b\x64\x3b\xb1\xd8\x3a\x8f\ \x49\x02\x00\x21\x83\x20\xec\x67\x0f\xf7\x7e\x77\xe0\x73\x39\x6b\ \xa1\xc6\x60\xe3\x24\xc3\x4e\x35\xa2\xff\x8b\x2f\x51\xfc\x68\xd5\ \xe9\xc1\x33\xcd\xaf\x5c\x4e\xb6\xb5\x07\x8c\x93\xc0\x67\x00\x00\ \xd1\xf2\x19\x9c\xca\x6a\x9e\xea\x1b\x38\x64\x05\x6e\xca\x20\x04\ \x20\x04\x11\x48\x97\x4f\x64\xbe\x2d\xdf\xb2\x43\xc2\xe7\x93\x0f\ \x3b\x00\x80\x7b\x02\xc9\xf7\x43\xb0\xd2\xb5\x27\x46\x57\xd6\x6c\ \x85\x41\x87\xae\x95\x7d\xc6\xa1\x0c\xe2\x6b\xa5\x39\x08\x10\xa2\ \x04\x0e\x77\x7f\xee\x39\x7f\xe1\xd8\x50\x38\x06\xb4\x1e\xbc\x03\ \x00\x00\xc6\x8f\x81\x13\x02\x00\x37\x7d\x02\x4e\xd8\x81\x6d\xd0\ \x02\x50\x1a\x81\x06\x0a\x08\x1f\x96\xe9\xd1\xf7\x96\x56\xae\xc9\ \xd6\xef\xff\xf0\x3a\x2f\xc5\x5d\x44\x61\x51\x21\xc2\xb1\xe8\x32\ \x65\x58\xf9\x09\x43\xf9\x21\x37\xf3\x6e\xf2\xeb\x5d\xc7\x5b\x4e\ \x35\x01\x38\xfb\x1f\x01\xab\x6a\xd0\xfd\xd5\x4e\x9a\x97\xc8\x5f\ \x1b\xb3\xa9\x8e\x78\xe3\xfb\x86\xda\xda\xf6\x17\xaf\x7f\x5d\x4f\ \xfc\xf1\xf1\x4d\xf6\xa9\x03\x08\x01\x56\x6c\x9e\x6b\x42\x3d\x60\ \x4c\x8c\xed\x19\x68\x6d\xdd\xed\x14\x14\xf8\xbd\x3f\xee\xbd\xb5\ \x7d\xca\x80\xf2\xad\x20\x04\x25\xe1\x90\x5d\xea\xf0\xdc\x31\x4f\ \x12\xe1\x9d\xfe\x74\x52\xbb\x39\x85\xd4\x57\x43\x6b\x74\xba\x3e\ \xeb\x74\x61\x01\xa7\x0f\xdc\xd6\xfb\x37\x7e\xea\x6b\x03\xad\x34\ \x4a\xa0\x00\x00\x00\x25\x74\x45\x58\x74\x64\x61\x74\x65\x3a\x63\ \x72\x65\x61\x74\x65\x00\x32\x30\x31\x30\x2d\x30\x35\x2d\x32\x34\ \x54\x30\x37\x3a\x34\x32\x3a\x32\x33\x2d\x30\x36\x3a\x30\x30\x0d\ \x5e\x0a\xf3\x00\x00\x00\x25\x74\x45\x58\x74\x64\x61\x74\x65\x3a\ \x6d\x6f\x64\x69\x66\x79\x00\x32\x30\x31\x30\x2d\x30\x35\x2d\x32\ \x34\x54\x30\x37\x3a\x34\x32\x3a\x32\x33\x2d\x30\x36\x3a\x30\x30\ \x7c\x03\xb2\x4f\x00\x00\x00\x35\x74\x45\x58\x74\x4c\x69\x63\x65\ \x6e\x73\x65\x00\x68\x74\x74\x70\x3a\x2f\x2f\x63\x72\x65\x61\x74\ \x69\x76\x65\x63\x6f\x6d\x6d\x6f\x6e\x73\x2e\x6f\x72\x67\x2f\x6c\ \x69\x63\x65\x6e\x73\x65\x73\x2f\x4c\x47\x50\x4c\x2f\x32\x2e\x31\ \x2f\x3b\xc1\xb4\x18\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ \x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x00\x0f\x74\x45\ \x58\x74\x53\x6f\x75\x72\x63\x65\x00\x6e\x75\x6f\x76\x65\x58\x54\ \x32\xea\x20\x36\xdc\x00\x00\x00\x22\x74\x45\x58\x74\x53\x6f\x75\ \x72\x63\x65\x5f\x55\x52\x4c\x00\x68\x74\x74\x70\x3a\x2f\x2f\x6e\ \x75\x6f\x76\x65\x78\x74\x2e\x70\x77\x73\x70\x2e\x6e\x65\x74\x91\ \x89\xc7\x2d\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x05\x6b\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x05\x32\x49\x44\x41\x54\x48\x89\xa5\xd5\x5b\x6c\x5c\x47\ \x19\xc0\xf1\xff\x9c\xeb\xde\xec\xf5\xda\xeb\x6b\xb0\x1d\x27\xa5\ \x8d\x63\x50\x31\x91\x45\x23\x20\x28\x08\xa5\x11\x94\xaa\x37\xd2\ \x42\x2b\x55\x0a\xbc\xa5\x2f\xb4\x7d\xa0\x42\x44\xa8\x6a\xe1\x21\ \xea\x03\x12\x3c\x80\x40\x15\x42\x24\x24\x44\x75\x89\xa0\x6a\x00\ \xb5\xe1\xa1\x22\x6a\x8c\xa2\x16\x17\xc7\x6a\x4b\xa8\x5d\xaf\xed\ \xc4\xde\x5d\x9f\xdd\xb3\x7b\x2e\x73\xe1\x21\xe0\x44\x90\x80\x94\ \x7c\xd2\x68\x5e\xbe\x99\xdf\x8c\xe6\x9b\x19\x8c\x31\xdc\x6c\xfb\ \xec\xa7\x3e\x71\xe4\xa3\xdb\xc6\x0e\xfe\xaf\x1c\x8b\x5b\x88\xc9\ \x3b\x86\x07\x5f\x3e\xfe\xe2\xcf\xb6\xf5\x75\x1e\xb8\x51\xce\x2d\ \x01\x79\xb9\xae\x77\xde\x56\xe6\xe8\x8f\x9e\x3f\xba\x73\xac\x70\ \x5d\xe4\xd6\x00\xd5\xa0\x35\xfb\x06\x93\x83\xae\xfd\xc3\x6f\x7e\ \xfd\xe8\x8e\xa7\x4b\x0f\x03\x4c\x7c\x77\x54\x6c\x7d\xaa\x57\x00\ \x08\x63\x0c\x07\xf6\xdc\xf6\xf9\x5d\x77\x4e\x3c\x20\xc2\x15\x91\ \xf7\x85\xc9\x39\x86\x8c\x6b\xf0\x1d\x83\x6b\x69\x6c\x81\x2d\xd0\ \x96\x31\x1a\xa5\x0c\x89\x34\x84\x91\x4c\x47\x6f\xff\xe4\x97\xb6\ \x97\x8b\x5b\xa3\x28\x22\xe3\xd8\x9c\x9b\xab\xa8\x43\xef\xfe\xf1\ \x6b\x95\xe9\xf8\xc4\xbf\x17\xe1\x00\xf4\xe5\xcd\x97\x1f\xbb\x7b\ \xea\xd0\x50\xa7\x8b\xd4\x11\x96\x23\xb1\x9d\x14\xec\x14\x2c\x7d\ \x65\xa3\x46\x81\x6c\x41\x14\xa2\xdb\x31\xed\x96\xa2\xd5\xa8\x52\ \xbf\xf4\x0f\x1a\x8d\x94\xe5\x30\x65\xc8\xc2\x3e\x9c\xd9\x7a\x74\ \xe2\xab\x65\xf1\xce\xb1\xb5\xe3\x9b\x40\x87\x1d\x89\x60\x61\x16\ \x4b\xb7\x11\x6e\x42\x36\x9f\xe2\xfb\x09\xbe\x27\x11\x5e\x07\x38\ \x85\x2b\x88\x8a\x21\x5a\x47\x84\x6b\x78\x61\x9d\xb4\x19\xe3\x36\ \x0d\x22\x50\xb4\x6a\x8a\x4a\x43\xd1\x87\xb1\x1f\x09\x4a\xc7\xee\ \xfa\x62\xcf\xc8\xd9\x57\xd6\x8f\x38\x00\x05\x3b\xa1\xb9\xfa\x3e\ \x96\x5c\xc3\x72\x12\x62\x3b\x66\xa8\x04\xa2\x38\x00\xc5\x3e\x70\ \x7b\xc1\xed\x04\x61\x81\x17\x21\xdc\xcb\xb8\xd6\x07\x74\xc5\x73\ \x08\x59\xa5\x91\x42\x2a\x61\x35\x84\xa4\x9d\xe1\xbd\x61\x7b\x3a\ \x98\xd0\xbf\xdd\xdc\x41\xce\x96\xb4\x83\x0a\x39\x5d\x41\x00\xc5\ \xfe\x41\xaa\xb5\x62\x50\x72\xb3\x55\x4f\xa4\x16\xc4\xe0\xc7\x20\ \x6c\x8c\x92\xa8\xc4\x23\x4a\x7b\x4c\x6a\x4d\xf5\x97\xba\xde\xca\ \xf4\xb7\x57\x58\xb7\x21\x2f\x32\xfc\x69\xab\x77\xfc\xcd\x3d\xea\ \xd1\xc5\x83\x6b\x6a\x13\x28\x78\x06\x61\x1b\x6c\x1b\xba\x5d\x28\ \x75\x77\xb3\x32\xbf\xf0\x84\x77\x38\xf8\x45\xe5\x05\xcf\x1d\x7a\ \x37\xf5\xb0\x1c\xb0\x40\x48\x49\x9a\x42\xe1\xfb\x26\x5c\x79\x6e\ \xfc\x38\x77\xec\x3e\x50\x96\xaf\x31\x42\xca\xd9\xf1\xc1\x53\xa7\ \x6f\xbf\x78\xb0\xbb\xed\xfb\xe3\xbf\x1e\x32\x73\x5f\xa9\xb4\x1d\ \x80\xac\x27\x02\xdb\x16\x1b\x9e\xa0\x5d\xcc\xb9\xb8\x85\xde\xfc\ \x70\xc7\x85\x0a\xc0\xa1\xfd\x9f\x1e\x9a\x9e\x78\xfd\x83\x6b\xcb\ \x33\xfb\xaf\xbe\x5c\xce\x46\xf4\x4f\xa2\x36\x56\x79\x7b\xdc\x3b\ \xf3\xe6\x94\xf3\xac\x3e\x7f\x71\x87\xd5\x26\x63\x30\x2b\xc0\xdf\ \xaf\x00\x0e\x0b\x96\xc5\x79\xdf\x22\xf1\xb2\x45\xc8\x0d\xf9\xe7\ \x07\xba\x6b\x47\xfe\xf6\xd0\x0f\x06\x9b\x5b\xc6\x81\x7d\xd7\xbb\ \x07\x4e\x69\x8b\xa0\x30\xca\x8c\xd5\xfe\xc3\xcc\xbe\xa9\x13\xba\ \x3e\xbb\x4b\x28\xed\x80\xf0\xb4\xd6\x6f\x6f\x02\xae\xcd\xb2\x80\ \x59\x17\x52\xe1\x17\x35\x7e\x57\x7a\x62\xe7\xc8\x77\x76\xef\xdc\ \x73\xdf\xfa\xda\xe2\x2b\x37\xba\x68\xad\xd5\xc8\xcf\xac\xfc\xe4\ \xd4\x6f\x3e\xd6\x7c\x32\x15\xea\xb9\xb8\xdd\xc6\x28\x8c\x51\x26\ \x27\xb5\x8e\x80\xd7\x1c\x00\x47\xb0\xa6\x35\xf3\x96\x21\x41\xb8\ \xf1\x0b\xde\xc5\xc7\xe7\x77\x0c\xec\xcd\xb0\xc0\x72\x5c\x31\x37\ \x02\xec\xa4\xf2\xcc\x9f\x73\xab\x8b\x67\x87\xb7\xef\x98\x0c\x82\ \xfd\x61\x18\x26\x2a\x06\x13\xd3\x61\x30\x0b\x9b\x87\x8c\xa0\xaa\ \x24\xf3\xc2\xd0\x7a\xd6\xaa\x3f\x7d\xcc\x7d\x6f\xef\x68\xd0\xc3\ \x52\x71\x91\xb5\xf5\xcb\xfe\xe4\x85\x6d\x76\xae\x2b\x5f\xf0\x3c\ \x17\xc7\xb1\x49\x6d\x0b\x65\x8c\x18\xde\xe3\x55\x96\x4c\xbf\x4e\ \xe6\xc3\xe1\x64\x22\xee\xda\xd8\x08\x50\x2d\x30\x4d\xc0\xd0\xb1\ \x09\x78\xb0\x1c\x27\x2a\xfa\x96\xce\x7c\xef\x97\x49\xed\xbe\xce\ \x6a\x9d\xbc\x67\x70\x7c\x87\x61\x33\xf0\xb9\xde\xb1\xf2\x87\xa5\ \xae\x32\x45\xd1\x85\x67\xf9\x28\x24\x4d\xd3\x64\xbd\xaf\x8e\xd7\ \xda\x30\xb2\xd6\x2a\x34\xc3\x80\x6a\xb5\x86\xae\x03\x35\xd0\x8e\ \xb9\xfa\x54\x5c\x08\x92\xf2\x4c\x77\xff\xe1\x73\xa5\x2d\x8f\x8d\ \x04\x35\xac\x00\x54\xc6\xa6\x4a\x40\xd2\x2b\xdd\x42\x21\x3f\x10\ \x38\x0d\x3c\xd7\xc7\x12\x02\x89\xa4\xa5\x42\x9a\x51\x93\x46\xd2\ \xa4\x31\x10\x52\x5f\x6c\x50\x5d\x69\x20\x96\x01\x69\x30\x0e\x57\ \x81\x93\xcb\xd6\x5e\xd9\xdb\x73\x60\xac\xdc\x43\x1c\x96\x48\xeb\ \x29\xa9\x97\x20\x4d\x42\x35\x69\x72\xb9\xba\x8e\xca\xa4\xc8\x4c\ \x82\xf2\x52\x52\x91\xa2\xb4\x24\x89\x24\x71\x98\x90\xd4\x34\x49\ \x1d\xf4\x2a\x98\xcb\x60\x3a\x0d\x26\xbe\x06\x38\x73\xa6\xf1\xe2\ \x37\xee\xed\x5f\x9e\xb3\xcd\x4b\x85\x8f\x74\x66\x69\x24\x20\xc1\ \xc4\x02\xa7\x94\xc1\x93\x19\xb4\x91\x18\x21\xd1\x42\x22\xad\x14\ \x45\x4a\x2c\x52\x62\x3b\x21\x72\x13\x62\x57\xa3\x0a\x06\x35\xa0\ \xc9\x89\x3c\xd1\x52\xfb\x2a\x00\xf0\xd3\x53\xab\xaf\x3e\x74\x97\ \xfb\xc0\xca\x67\x76\xbf\x94\x1d\xf0\xb3\xaa\xa5\x10\x91\xa0\x18\ \x77\xac\x2e\xa4\xef\x9f\x34\x59\x6d\x5b\xfe\x95\x11\xc6\x32\x18\ \x0c\x48\x83\x93\xd8\x64\x5b\x3e\x6e\x53\xc7\xba\x69\x8c\x6a\x6a\ \xdc\xc4\x75\x9c\xc8\xfd\xfd\x26\xf0\xfc\x17\x0a\xc2\xcd\x97\x39\ \x79\x36\x7d\xf5\xdb\xf7\x66\xef\x7f\x43\xec\x9a\xf6\xfa\xfd\x2c\ \x11\xbc\x73\x7e\x76\xe6\xc3\x1f\x5f\x7a\xe2\x46\xa5\xfa\xff\x42\ \x18\xf3\xdf\x65\x3e\xf6\x71\xff\xee\xa1\x7d\x53\xd3\xd9\x51\x2f\ \x3b\xf7\x97\xd9\xdf\x2d\xfd\xfc\xd2\x3d\x37\x0b\x5c\xf7\xcb\xbc\ \xf8\xd7\xf8\xf4\xb9\x5f\xcd\xdc\xaf\x2e\x49\xac\xd8\xb1\x6f\x76\ \x72\xb8\xe6\x0c\xfe\x33\x92\xa5\xe8\x74\xf7\x70\xe9\xc1\xd1\xed\ \x23\xfb\x6f\x05\xf8\x27\x44\x53\xb3\x67\x2d\xb3\xe4\xeb\x00\x00\ \x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x02\xde\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x02\xa5\x49\x44\x41\x54\x48\x89\xb5\x95\xcf\x4f\x13\x41\ \x14\xc7\xbf\xf3\xa3\xa5\x29\xf5\x20\xc5\x0b\xe8\x7f\x21\x21\x41\ \xe2\x01\xf5\x66\x13\xce\xc6\x0b\x7a\xf2\xb6\x8d\x0d\x5e\xbc\x78\ \x33\xe0\x81\x03\xfa\x07\xa8\x27\xff\x00\xdb\x68\x40\x6b\xca\x5d\ \x49\x53\xba\x5b\x0f\x34\xa9\x2d\x50\x8d\x89\x25\x05\xda\x9d\x19\ \x0f\x74\xd6\xd9\x30\x5d\x30\xe2\x4b\x26\x99\xd9\xbc\xf7\xfd\xbc\ \x79\xf3\x66\x96\x5c\x9b\x99\xc1\xec\xec\x75\xa4\xd3\x69\x74\x0f\ \x0f\xa0\xa4\x84\xf0\x05\x00\x05\xa1\x24\x62\x8c\x43\x42\x81\xd3\ \x18\x7e\xfe\x68\xa3\xf8\xa9\x88\xcf\x9b\x9b\x18\x19\x19\xc1\xd1\ \xd1\x11\x08\x21\x88\x32\x2e\x85\x80\x10\x02\xbe\xef\xc3\xef\xf7\ \x31\x35\x75\x55\x45\x05\xcc\xdd\xba\x19\x29\xa8\x6d\x7e\x7e\x9e\ \x00\x00\xd7\x1f\x94\x52\xd0\xca\x99\x4c\x06\xfd\x7e\x3f\xc8\x8e\ \x10\x12\x1a\xda\xa4\x94\xc1\x10\x83\x44\x13\x89\x04\xf2\xf9\xfc\ \x9f\x1d\xd8\xe8\x84\x10\x50\x4a\x23\xc5\x01\x80\x31\x06\x4a\x29\ \x94\x52\xa0\x94\x82\x52\x8a\x58\x2c\x16\xf2\xb1\x02\x00\x40\x08\ \x71\x42\xd8\x9c\xeb\x04\x6c\x49\x9d\x09\x00\x1c\x97\xcd\x14\xd0\ \x6b\x3d\x8f\x02\x9e\x0a\xd0\x02\x26\xc4\xe6\x43\x29\xb5\x96\x4f\ \x9b\x1d\x3b\x08\x96\x52\x06\x73\x13\x64\xae\xb5\xcf\xb0\x5d\x44\ \x02\xb4\x80\x16\xd4\xa3\xd7\xeb\x61\x6f\x6f\x0f\x42\x08\x6b\x02\ \x67\x06\xd8\xb2\xee\x74\x3a\x58\x5d\x5d\xc5\xfa\xda\x5a\x50\xc2\ \x7f\x02\xe8\x3e\x57\x4a\xa1\x58\x2c\x82\x31\x86\x1b\x73\x73\xb8\ \x9d\xc9\x84\x7c\xcc\x92\x9a\xf1\x56\x80\x79\x79\xf4\xbc\x5a\xad\ \x62\x74\x34\x85\x8d\xd2\x06\xf2\x85\x02\xe2\xf1\xf8\x09\x1f\x13\ \xa0\xcd\xda\x45\x9a\xae\x4b\xe0\xba\x1e\x0e\x0e\x0f\xf1\xad\xd1\ \x84\xeb\x6e\x21\x97\x7b\x18\x24\x72\xea\x5b\x14\x05\x00\x80\x9a\ \x57\x43\x67\x7f\x1f\xad\x56\x0b\xae\x5b\x45\x36\x9b\x0d\x7c\xcc\ \xfb\x30\xec\x0c\x22\x2f\x9a\xeb\x7a\xf8\xb5\xdf\xc1\x4e\x73\x17\ \xb5\x5a\x15\x8e\xe3\x80\x73\x1e\x00\x80\xe3\x4b\xa7\x77\x62\xdb\ \x4d\xf8\x0c\x06\x41\x4a\x29\x54\x2a\x15\xa4\x52\x17\xd0\xde\xfd\ \x0e\xcf\xdb\x82\xe3\x38\x60\x8c\x9d\x68\x59\x65\xc4\xd8\x76\x11\ \x02\xc8\x81\x43\xb9\x5c\xc6\xc5\xf4\x38\x9a\xad\x1d\x94\xcb\x5f\ \xe0\x38\x4e\x70\x89\x6c\xa2\xe6\xda\x0a\x50\x0a\x90\x52\x41\x08\ \x1f\xed\x76\x1b\xc9\x64\x0a\xcd\x46\x03\xef\xdf\xbd\x45\x36\x9b\ \x0d\xf5\x7b\x14\xc4\x06\xe0\xda\x49\x4a\x01\x4a\xe8\xdd\xe9\xe9\ \x19\x34\x1a\x0d\x14\x0a\x79\xe4\x72\xb9\x50\xe6\xda\x6c\x0f\xdf\ \x30\xe3\x84\x50\x50\x4a\xa0\x94\xba\xbf\xb0\x70\xef\xf9\x76\x7d\ \x1b\x1f\x3f\xac\x63\x71\x71\x31\x38\x50\xdb\x93\x7d\x96\x27\x1c\ \x00\x78\x22\x91\x88\x03\x78\x74\xe5\xf2\xc4\x93\x7a\xbd\x2e\x5e\ \xbf\x7a\x89\x95\x95\x15\xbf\xdb\xed\xa2\xd7\xeb\x0d\x15\x34\x3b\ \xc6\xf2\x53\x0a\xba\x93\x7f\xf5\xbc\x67\x31\xce\x1f\x5c\x1a\x1f\ \x23\x4f\x97\x96\xde\x2c\x2f\x2f\xdf\x29\x95\x4a\x91\xed\xfb\x57\ \x46\x08\x49\x72\xc6\x1f\xa7\xc7\xd2\x2f\x00\xb0\x73\x13\x36\x2d\ \xce\x38\x26\x27\x26\xff\x8b\xf6\x6f\x11\xca\xe6\x64\xa6\xc5\xbd\ \x1b\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x04\xf0\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x04\xb7\x49\x44\x41\x54\x48\x89\x95\x94\xcb\x4f\x5d\x55\ \x14\x87\xbf\xbd\xf7\x7d\x96\x4b\x69\x2f\xb4\x02\x9a\x18\x5b\x12\ \x12\x1b\xeb\xab\x2d\x55\xa9\x80\x8a\xf8\x4a\xd4\xd4\x91\xaf\x81\ \x29\x35\xce\xfc\x3f\x1c\x39\x68\xb4\x75\x60\xe2\xc0\x99\xd1\x48\ \xd5\x38\xb0\xb3\xc6\x47\x14\x85\x5e\xac\x36\xb1\xa5\x85\x02\xa5\ \x4f\xe3\x0d\x97\x73\xf6\x5e\x7b\x39\x38\x17\x04\x52\xa3\x3d\xc9\ \x3a\x83\xb3\xf7\x59\xbf\xfd\xad\xdf\x5a\xdb\xa8\x2a\x00\x3d\x3d\ \xbd\xad\x4b\x8d\xa5\xaf\xdb\xb6\xb4\xf7\xec\xb8\xeb\x4e\xff\xd8\ \x63\x83\x09\x28\xcd\xe5\xff\xfd\x58\xeb\x58\xbc\x7c\xa9\x63\xec\ \xf3\xaf\xea\xce\xd9\xcf\xcc\x8a\xc0\xf6\xed\xdd\x55\x0c\x3f\xb4\ \x54\x36\xef\xdc\xda\xd6\xc2\xf8\xf8\x4f\xb7\x96\x79\xcd\xb3\x6f\ \x5f\x1f\x1d\x5d\x3b\xd8\x54\x2e\x93\x5b\xf9\x28\x1a\xc9\x59\xc7\ \x9e\x7d\x8f\xf0\xc7\x99\x09\x42\x84\x28\x01\xbd\x45\x84\x62\x21\ \x0f\x80\x46\x25\xaa\xfe\x23\x80\x46\x54\x0d\x37\x6e\xfc\x09\xaa\ \xf8\x20\xa8\xc8\x2d\x0b\x58\x97\x43\x01\x91\x40\x14\x59\x23\x80\ \x41\x15\x62\x8c\x28\x90\xa4\x81\x28\xfe\x96\x3d\x50\xe3\x40\x15\ \x11\x41\xd6\x09\xa8\xa2\x64\x0b\x28\xf8\x20\x44\x89\xff\x8b\x40\ \x44\x48\xd3\x94\x72\xb9\x8c\x71\xa1\x49\xb0\x41\x40\x9b\x2f\x91\ \x80\xa2\x24\xa9\x47\x42\xfa\x9f\x04\x17\xce\x4f\x73\xba\xf6\x0b\ \xad\x6d\xed\x3c\xdc\x7f\x00\xc5\xac\x12\x84\x10\xb0\xff\x08\x28\ \x68\x44\x82\x00\xe0\x7d\x20\x88\xfc\x6b\xd4\xeb\x75\x4e\x7c\xfd\ \x05\x8f\x3e\xbc\x97\xd6\xcd\x9b\xe9\xbd\x7b\x17\x41\x24\xf3\x0e\ \x08\x21\x20\x61\x2d\x41\x54\xd4\x9a\x8c\x40\x21\xf5\x01\x09\xe1\ \xa6\x04\x21\x78\x16\xe6\x66\xe8\xed\xed\xe5\xd4\xc4\x24\x0b\x8b\ \xd7\xb9\xf7\xc1\x16\x92\x24\x00\x0e\x14\xa2\x08\x22\x61\xad\xc9\ \xa0\xaa\x84\x20\x80\x92\xfa\x40\xbc\x89\x40\xf0\x9e\x2b\x8b\x73\ \x18\x4d\x39\x7b\x76\x96\xc9\x5a\x8d\x17\x0e\xbe\x8c\xf7\x01\x00\ \x63\x5d\xe6\x65\x08\x1b\x4a\xa4\x8a\xaa\xae\x9e\xfa\xcc\xef\xbf\ \x51\x28\x96\xc8\x17\x8b\xcd\x28\x60\x8c\xe1\xda\x95\x05\x90\x84\ \xf9\xf9\x05\xe6\x17\xaf\x30\xfc\xcc\xf3\x6c\x69\xaf\xae\xee\x3b\ \x73\xe6\xb7\xac\xc4\x21\x10\x82\xb0\x3a\xc9\x6d\x6d\xd5\x2a\xc6\ \xfc\xb0\xa3\x67\xd7\xce\xc5\x85\x69\xb6\x6d\xeb\xc0\x60\x32\x75\ \x03\x85\x42\x81\xbe\xbe\x3e\x06\x87\x86\x98\x39\x7f\x81\xb1\xb1\ \x31\xe6\xe7\xe7\x28\x14\x8b\x6b\x4a\x90\xed\xbd\x7a\xf5\x1a\xd5\ \x8e\x3b\xc8\xe7\x0b\x1b\xbb\x28\x6b\xd5\x6a\xc7\xed\x34\x12\x8f\ \xb5\x16\x91\x48\xb9\x5c\xa2\x6f\xff\x43\x0c\x0d\x1c\xe0\xdc\xf4\ \x34\xc7\xc7\xbe\x64\x6e\xfe\x1a\xb9\x7c\x2b\x69\xd0\x6c\x76\x54\ \xc9\x39\x47\x8c\x91\x2d\xd5\x2e\x8c\x01\x11\xbf\x46\xa0\x49\x12\ \x82\x07\xa0\x58\x2c\xe0\x9c\x43\xfc\x12\x03\xfd\x7b\x18\x7c\xb4\ \x9f\xe9\xe9\x69\xbe\x38\x7e\x9c\xd9\xd9\x8b\x14\x8a\x05\x50\xc1\ \x28\x38\x03\x12\x05\x97\x6b\x45\x43\x24\x4d\x13\x5c\x2e\x8f\x73\ \x76\x83\x80\xa1\x39\x68\x4a\x00\xda\x5b\xb7\xf2\xd2\x8b\x07\x79\ \xfc\x89\x61\xc6\xc7\x7f\xe2\xfa\xf5\x6b\x8c\x1e\x3e\x44\xcf\xce\ \x1d\xa4\x69\x8a\x31\x59\x09\x9d\x73\x9c\x3c\x79\x92\x8f\x3e\xfe\ \x84\xb0\x1c\x32\x81\x10\x28\x96\x4a\x1b\xba\x28\x2a\xc1\x67\x04\ \xa5\x52\x91\xfd\x7d\x7b\x78\x72\xe4\x69\x6a\xb5\x53\x1c\xfd\xe0\ \x43\xce\x9d\x9b\xe1\xb9\x67\x47\xd8\xd2\xd6\x4a\xa3\xb1\xbc\x2a\ \x60\xad\xa5\xab\xbb\xbb\xe9\x97\xc1\x59\x97\x0d\x9a\x0f\x1b\x08\ \x54\x11\x09\x94\x8a\x25\x06\x0e\x3c\xc2\xeb\xaf\xbd\xca\xe9\x5f\ \xa7\x38\x71\xe2\x1b\x66\x66\x2e\x52\x2c\x15\x89\x51\x58\x5e\x5e\ \x26\x4d\xd3\xd5\xff\x8c\x31\x34\x96\x1a\x04\xef\x09\xde\x23\x22\ \xc4\x18\xd7\x7b\xb0\x62\xb0\x73\x39\x06\x06\xfb\x19\x1d\x7d\x83\ \xda\xa9\x53\xfc\xf8\xe3\xf7\x94\x4a\x65\x8c\xb1\x48\x08\x78\xef\ \x49\x53\xcf\xf2\xf2\xf2\xaa\x6f\xce\x39\xd2\x34\xcd\xa6\x3f\x04\ \x62\x14\xac\xb5\x18\x63\xd7\x5f\x15\x95\x4a\xc5\x8d\x0c\x0f\xf1\ \xd6\x9b\xa3\x4c\x4e\x4c\x70\xf4\xd8\x31\x3a\x3b\x3b\x69\x69\x69\ \xc1\x7b\x9f\x25\x4f\x12\x1a\x8d\x25\x92\x24\x21\x4d\x53\xd2\x34\ \x25\x49\x92\xec\xd4\x22\x84\x90\x11\xa8\x66\xdd\xb5\x4a\xf0\xd4\ \xc8\xc8\xd6\xae\xee\xae\xea\xe8\xe1\x43\x4c\x4e\x4e\xf2\xde\xfb\ \xc7\x98\x9d\x9d\xa7\xa5\x52\xe1\xca\xd5\xeb\x68\x8c\x44\x8d\x04\ \x09\x24\x49\x42\x92\xa4\xeb\x09\xbc\xcf\x92\x87\x00\x28\xbe\x39\ \xb8\x39\x80\xa3\xc7\x3e\xa8\x3e\x70\xff\x7d\xef\x0e\x8f\x8c\x54\ \xa6\x6a\x35\x8e\x1c\x39\xc2\xe4\xc4\x14\x9b\x5a\x36\xa5\xbb\xef\ \xb9\x27\x7f\xef\xee\xdd\xe6\xc9\xe1\x27\x50\x94\x7c\x2e\x4f\x3e\ \x9f\x5b\x77\x8d\x1b\x63\x58\xbc\x7c\x99\x7a\xbd\xce\xd2\xd2\x12\ \xce\x59\x62\x54\xac\x35\x98\xa1\x81\xc1\x7d\x7b\xf6\xee\x7d\xb7\ \xa3\xbd\xba\xdf\x5a\x27\x9f\x7c\xfa\xe9\xe5\x5a\xad\x76\xd1\xfb\ \x74\x5b\xa5\x52\x39\x7f\x5b\xe7\x6d\xdd\xce\x3a\x63\xad\x35\x26\ \x6b\x1b\xd3\x4c\x6a\x9a\x26\xeb\x8a\xd9\x67\xcf\x9e\x2b\x66\x57\ \x4e\x54\x55\x55\x11\x99\xc8\x4d\xfc\x3c\xbe\xab\xfe\xe7\x8d\xfd\ \xfd\x03\x03\x4c\x4d\x9d\x1e\xfb\xee\xbb\x6f\xdf\xf6\xde\x5f\x88\ \x31\x96\x9d\xb5\xad\x0a\x9b\xac\xb5\x15\x63\x4c\xc5\x18\x53\x01\ \xca\x40\x11\x70\x4d\x00\x01\x12\x55\x6d\x18\x63\x1a\xc0\x5f\xaa\ \xf1\x2f\x91\x58\x17\x91\x1b\x06\xc8\x5b\x63\x5e\xe9\xdc\xbe\xfd\ \xc1\xb9\x4b\x97\xde\x51\xd5\x0b\xcd\x53\x3a\x20\x77\x93\x70\x80\ \x5d\x21\x69\xde\x32\xb1\x29\x14\x36\xc6\xdf\xb8\xfc\xfe\xd4\x40\ \xe3\x70\xe9\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x02\xbb\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ \x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ \x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\ \x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdc\x09\x14\ \x11\x14\x33\xf7\xd9\xab\x49\x00\x00\x02\x3b\x49\x44\x41\x54\x48\ \xc7\xb5\x56\xcf\x6b\x13\x41\x14\xfe\xe6\xed\xce\x26\xd1\xc6\x86\ \x2a\xc5\xe6\xa0\x82\x68\x0b\x1e\x3c\x49\xa9\xb7\xa2\xd7\x10\x69\ \x11\xbc\x09\x7a\xf0\x90\x8b\x27\xfd\x0b\xc4\x6b\x2f\xa2\x9e\xfa\ \x2f\x98\x8b\xc1\x5f\xb4\xe4\xe0\x41\x2f\x82\x21\x68\x49\xf0\xd0\ \x83\x9a\xb6\xa6\xd1\xb8\x6d\x76\x3b\x33\x1e\x64\xc2\x64\x3b\xc9\ \x6e\xa5\x3e\x18\x78\x6f\x76\xe6\x7d\xf3\xbe\xf7\xde\xcc\x02\xff\ \x59\x58\x74\xa2\x5c\x2e\xab\xc3\x70\x5c\x2c\x16\x19\x00\xb8\xb6\ \x8f\x85\x42\x01\x61\x18\x82\xb1\xbf\xf8\x8c\xb1\x81\xa1\x45\x4a\ \xd9\x1f\x42\x08\x08\x21\x90\x4e\xa7\x51\xa9\x54\xfa\x6b\xac\x00\ \x8c\x31\x10\xd1\x48\xe7\x00\xe0\x38\x0e\x88\x08\x4a\x29\x10\x11\ \x88\x08\x9c\xf3\x81\x35\xee\xb0\x10\x85\x10\xfb\x1c\x9b\xba\x3e\ \x80\xed\x50\x89\x00\x00\x40\x29\x35\xe0\x40\xdb\x5a\x1f\x05\x18\ \x0b\xa0\x1d\x98\x20\xb6\x35\x44\x64\xa5\x4f\x0b\x8d\xda\x2c\xa5\ \xec\xeb\x26\x90\x69\xeb\x35\xc3\xa2\x88\x8d\x40\x4a\xb9\xef\x74\ \x36\xba\xb4\x7e\x20\x00\x73\x53\x94\x2a\x1b\x7d\xff\x04\x10\x4d\ \xa6\x6d\xce\x8c\x36\x4a\x93\x15\x40\x37\x4f\xb4\x34\xa3\x65\x6b\ \xeb\x95\x44\x00\x3a\x89\xc3\xb8\xd6\xb6\x2d\x3f\x89\x28\x32\xab\ \x24\x0e\x24\xae\x9c\x13\x35\x9a\xad\x52\x4c\xfb\xf5\x87\x37\x28\ \x7f\x7c\x06\x92\x2e\x16\x2f\x2d\x1c\x0e\x45\xa6\xf4\xa8\x87\x63\ \xf3\x1c\xde\xf7\x0c\x02\x19\xc4\x37\x9a\x06\x30\x2b\x69\x94\x9e\ \xe2\x1e\xb2\xf9\xa3\xf8\x35\xd1\x01\x77\xf9\xc1\x72\x60\xbb\x69\ \x95\x52\x58\xa9\xaf\x22\xe4\x01\xc6\x90\x45\x63\xab\x81\xe0\x7c\ \x0f\x6d\x6a\xa1\xb6\x5e\x83\xfa\x21\xb1\xf8\xf0\x7a\x69\xab\xb3\ \xd9\x76\xe3\x7a\x60\x58\x72\x9f\xbe\x7f\x8c\xb5\xf9\x77\x98\x3b\ \x37\x87\x49\xe4\xb1\xd6\xf9\x84\xee\xe7\x1d\xec\x7a\xaf\x90\x9d\ \x19\xc3\x89\xd3\x99\xa5\xee\x5b\xde\xb4\x02\x44\x2f\x30\x9b\x2e\ \x7c\x85\xaf\x2f\x7e\xe2\x79\xe3\x25\x82\x9c\x80\xf7\x85\x90\x1f\ \x9f\x42\x66\xfa\x08\x32\x69\x8e\xa0\x1b\x20\xf4\x42\x3b\x45\xbe\ \xef\xef\xf9\xbe\x6f\x7d\x6c\xb4\x7e\x7b\xf6\x16\x5b\x50\xd7\x98\ \xe3\x12\x6a\xdf\xea\x6c\x79\xe7\x09\xdb\xbe\xb8\x81\x1b\xcd\x3b\ \xca\xdd\xe0\x6c\xa5\xb5\x7a\x77\x6f\x53\xda\x29\xaa\x56\xab\x6e\ \xdc\x9b\x9b\x42\x0a\x27\x31\x05\x00\x98\xf8\xdd\x42\xea\x0c\x43\ \xee\xd4\x38\xa8\x4e\x6c\x26\x37\x8d\xfb\x37\xef\x3d\x3a\xb4\x3f\ \x87\xd9\x07\x97\x4b\xc7\xcb\xe9\xf0\xc2\xfa\x64\x78\x75\xe9\x4a\ \x29\x71\xa3\x25\x15\x67\xdb\x69\xe7\x6b\x67\x1b\x5e\x93\x63\xb7\ \x15\xb6\xcd\x6f\x7f\x00\xd4\x61\x49\xb9\xc4\x8c\xe3\x5e\x00\x00\ \x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x03\xca\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x03\x91\x49\x44\x41\x54\x48\x89\x9d\x94\xcb\x8b\x1c\x55\ \x14\xc6\x7f\xe7\xde\xee\xa9\x9e\xa4\xc7\xc4\x71\x42\x9c\x18\x08\ \x9a\xe0\x22\x92\xb8\x91\xb8\x90\x40\x0c\x3e\x30\x88\x82\xf8\x57\ \xb8\x77\xe9\xca\xbd\x0b\x77\x6e\x44\x5c\x88\x0b\x05\xd1\x85\xf8\ \x07\x64\x23\x24\x10\x57\xc9\x80\x11\x97\x26\x8c\x46\x32\x74\x3d\ \xee\x79\xb8\xa8\xea\x4e\xf7\x44\x17\xed\xa5\x6e\xdd\x7a\x9d\xf3\ \xdd\xaf\xce\xf7\x1d\x39\x7b\xf6\xf9\xad\x59\x3d\xfb\xe9\xd8\xf1\ \xa7\xce\x3d\xf7\xec\x99\x72\xf5\xea\x95\x16\x82\x08\xd6\x1a\x29\ \x65\xee\xdd\xff\x63\xe7\x87\xef\x7f\x3c\xc8\x39\x7d\xf7\xcb\xad\ \x1b\x1f\x00\xc8\x89\x13\xbb\xdb\x08\x3f\x1f\x9d\x3e\x71\xf6\xc9\ \x63\x47\xb9\x79\xf3\xc6\x7a\x99\x97\xc6\xa5\x4b\x2f\xb3\xb3\xfb\ \x1c\x47\x36\x37\xf9\xe6\xeb\xcf\x05\x60\x64\xe1\x8c\x52\xe6\xa5\ \x4b\xaf\xf0\xeb\xde\x2d\xd4\xc1\x4d\x89\x35\x29\x54\x1b\x63\x00\ \xc2\x03\x5f\x8a\x1d\x11\x4e\x84\xf0\xe0\xc1\xdf\x10\x41\x51\x23\ \xcc\xd6\x06\x48\x79\x44\x00\x66\x8a\x9b\x2d\x01\x20\x44\x80\xbb\ \x13\x40\xdb\x29\x6e\x65\xed\x1a\x84\x64\x88\xc0\xcc\xb0\x15\x80\ \x08\x82\xfe\x05\x01\x45\x0d\x37\x5f\x9b\x81\x64\x1d\x18\x1c\x02\ \x08\x80\xe8\xa9\x05\x41\xdb\x15\x4c\xbb\xf5\x19\x20\x0b\x06\xaa\ \xba\x0c\x10\x48\x38\xa6\x3d\x6a\x29\x8a\xbb\xad\x2f\x53\x35\x02\ \x50\xd5\x45\xae\x1e\xc0\x83\x48\xd2\x33\x08\xe8\x8a\x62\xaa\x6b\ \x03\x40\x86\x00\x37\xc3\x6c\x89\x01\x40\x44\xa0\x6a\x40\xd0\x15\ \xc5\xff\x07\x80\xa4\xdc\xd7\x52\xf5\xd0\x2f\x1a\x32\xcd\x77\xbd\ \x77\xe7\x36\xe7\xcf\xbf\xb0\xa4\xe5\x98\x1f\xab\x09\x57\x4f\xec\ \xed\xdd\x06\xa0\xa8\x32\xd2\xc7\x54\x04\x92\x84\xfd\x7b\xfb\x7c\ \xfc\xd1\x87\xc8\x10\x34\x5f\xfa\xcb\xa5\x1b\x62\x15\x30\xfa\x6f\ \xf7\xf7\xff\x64\x7b\xe7\xf4\xbf\xa9\xa8\x97\xea\xf6\xce\x33\xd4\ \x6d\x21\xa5\x84\x99\x93\x92\x90\x52\x42\x24\x0d\x6b\x9f\xcc\xa3\ \x97\xb1\x7b\xbf\x8e\x72\xc6\xdd\x39\xbe\xbd\x8b\x08\x98\x95\xc7\ \x7f\x91\x6a\xff\xb0\xaa\x36\xc8\x39\x33\x3b\xf8\x8b\x2c\x99\x9c\ \x32\x20\x8f\x5a\xc0\x9c\x5c\x40\x16\x30\x37\xf2\x68\x8b\x50\xa7\ \xeb\x5a\xf2\x68\x4c\xce\xe9\x10\x80\x30\x18\x2d\x50\x60\xab\x9a\ \xf2\xee\x3b\xd7\xb8\x72\xe5\x55\x36\x26\x13\x88\xa0\xaa\x2a\x36\ \x27\x15\x5d\xd7\x21\xd2\xa3\xe4\x9c\xb9\x7e\xfd\x3a\x5f\x7e\xf5\ \x2d\xda\x68\x0f\xa0\x4a\x35\x99\x2c\xd5\x80\xbe\x41\x69\x79\x44\ \x4b\x4d\xb9\x7c\xf9\x32\xb7\xef\xec\xf1\xc9\xa7\x9f\x11\x1e\xbc\ \xf5\xe6\x55\xde\x7f\xef\x6d\xea\xba\x59\x00\xa4\x94\xd8\x3d\x75\ \x6a\xa0\x24\xe4\x94\x7b\xa3\x95\xc3\x2a\x8a\xe8\xb5\x1b\x42\x10\ \x68\x51\x9a\xa6\x41\x55\x19\xa5\x44\xa4\xc0\xdd\x68\x9a\x86\xae\ \xeb\xfa\xba\x46\x20\x22\xd4\xb3\x1a\x2d\x05\x2d\x05\x33\xc3\xdd\ \x57\x6b\x30\x2f\x70\x29\x8a\xf4\x6e\x47\xb5\x30\x9b\xcd\xa8\xeb\ \x7a\x30\x60\x50\x4a\xa1\xeb\x0a\x4d\xd3\x2c\xfa\x54\xce\x99\xae\ \xeb\x28\xa5\xd7\xbe\xbb\x2d\x44\xb1\xa4\xa2\x20\x06\x06\xc2\xdc\ \x74\x85\x52\x0a\x6d\xdb\x52\x4a\x21\x22\xe8\xda\x96\xba\x9e\xd1\ \xb6\xdd\x22\xb8\x57\x9b\xe1\x66\xa8\x96\x05\x2b\x77\x5f\x02\xf0\ \x20\x22\xc2\x06\xf7\x45\x80\xa9\xd1\xcc\x93\xbb\xe3\xe1\xa8\x29\ \x6d\xdb\xd2\xb6\xdd\x2a\x83\x52\x50\x2d\xf4\xf1\x41\x89\x58\xe9\ \xc4\xa3\xb6\x9d\x3d\x14\x91\xbd\xb6\xad\xcf\xb9\x47\xdf\xaa\xbd\ \x74\x17\x2f\x5c\x18\xbf\x78\xf1\xa2\xbc\xf1\xfa\x6b\x04\xc1\x78\ \x34\x66\x3c\x1e\xad\x04\x8b\x08\xf7\xee\xdf\xe7\xe0\xe0\x80\xd9\ \x6c\x46\xce\x09\xf7\x20\xa5\x47\xa6\x14\x20\x01\x67\x36\x36\x36\ \xbe\x98\x4c\x36\x47\x6d\xdb\x9c\x9e\x4e\xa7\xbf\x9f\x7c\xfa\xe4\ \xa9\x9c\xb2\xa4\x94\x44\x7a\xd9\xc8\x90\x54\x86\x22\xc7\xbc\xd8\ \x77\xef\xfe\x56\x45\x04\x11\x1e\x11\x11\x66\x76\xab\x69\x9a\x6b\ \xbd\x5f\x96\x76\xa4\xaa\xe2\xee\x9b\x39\xa5\xad\x80\x23\x29\xa5\ \xa9\x88\x4c\x45\x64\x0a\x6c\x02\x15\x90\x87\xcf\x0d\x68\x23\xa2\ \x16\x91\x1a\x78\x18\xe1\x0f\xcd\xfc\xc0\xcc\x1e\x54\x55\xd5\x3d\ \x06\x30\xec\x32\x0f\xfe\x38\x3c\xf3\xc0\x76\xce\x3f\x00\x1f\x80\ \xf4\x3f\x26\xff\x00\xbd\xc3\xa8\x16\x2a\xc1\xd3\xa3\x00\x00\x00\ \x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x04\x4f\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ \x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ \x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\ \x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdc\x09\x14\ \x11\x19\x29\xbf\x15\x2c\x7e\x00\x00\x03\xcf\x49\x44\x41\x54\x48\ \xc7\xd5\x54\x6d\x68\x5b\x55\x18\x7e\xce\xbd\x37\x1f\x6b\xbe\xba\ \x36\x4b\xb5\xb4\x74\xab\x62\xed\xdc\x04\x6d\x31\x28\x85\x76\x1d\ \x6c\x43\x37\xea\x0f\x11\xac\xae\x85\x09\x43\x41\x5d\xc2\x42\xad\ \x22\xe8\x7e\x08\xb2\x2a\xd6\x51\xdd\xef\x6e\x13\x51\x1a\x70\x52\ \x9a\xb2\xb1\x6a\xa1\x13\x24\x0e\x95\x85\xe4\x26\x69\xb7\x26\x4b\ \x93\xb6\xc9\x3e\x6e\x73\x9b\x34\xad\xf7\x1e\xff\x78\xaf\xb9\x69\ \x9a\x4d\xf0\x8f\x2f\x1c\xee\x39\x87\x73\x9f\xe7\x3d\xef\xf3\xbc\ \x87\x8c\x8e\x7a\x0d\x97\x26\x26\x9e\x78\xb8\xb1\xe1\x64\x6b\x4b\ \x4b\x87\xd1\x68\xd8\xc6\xb2\x2c\x59\x2b\xac\xa3\x50\xc8\xdf\x9a\ \xbb\x19\xff\x61\x79\x21\xf1\xfd\xe3\xbb\xf7\x86\x07\xdf\x7f\x2b\ \x8f\x7f\x19\xe4\xdc\xa8\xf7\x6c\xd3\xce\xc6\xa3\x84\x61\x4d\x2b\ \x2b\xab\xb0\xd9\xcc\x58\x2b\x14\x70\xe7\xb6\x00\x8b\xc5\x08\x42\ \x18\x18\xf4\x3a\x84\x82\x01\x34\x34\x3a\x1e\x18\xb8\xa7\xa7\x87\ \x00\x00\x97\xb9\x23\x34\x1f\x7c\xfe\x80\x29\x78\xfd\x77\x1a\x8f\ \x45\x89\xd5\x6a\x42\x3e\x9f\x43\x26\x73\x0f\x75\x75\xb5\xd8\xb3\ \xa7\x0d\xc2\x3d\x01\xbf\xfc\xec\xc7\x1b\xe7\xcf\x82\x10\xa2\x82\ \xc8\xb2\xac\x0e\x49\x92\x20\x49\x12\x8c\x46\x23\x7c\x3e\x9f\x7a\ \x86\xbb\x31\x37\x6b\xbb\x79\xe3\x16\xba\xf6\x75\xe0\x19\x67\x3b\ \xa2\xb3\x71\x3c\x54\xe7\xc0\x0e\x47\x35\xc2\x7c\x0c\xf1\x78\x02\ \x9f\x7f\x76\x06\x6f\xbf\x73\x0c\x0c\xc3\x68\xb2\x64\x59\x16\x0c\ \xc3\x80\x52\x0a\x86\x61\xc0\x30\x0c\x74\x3a\x9d\xe6\x0c\xf3\xc8\ \xa3\xbb\x86\xbe\xfd\xc6\x3b\x91\x4c\x0a\x44\x5c\x15\xa9\xff\xd7\ \xdf\x70\x3d\xc0\x23\x93\xc9\x62\x69\xf9\x36\xbc\xde\x71\x1c\x38\ \xd4\x85\x83\x87\xf6\x43\x92\x24\x35\xe3\x4d\xb5\x26\x64\x53\x02\ \x00\xc0\xf4\x1f\xeb\xa7\x42\x76\x65\x71\x6c\xec\x22\xad\xae\xb6\ \x13\x86\x10\x88\xe2\x2a\xee\xde\x5d\x45\x62\x61\x09\x1c\x4b\xd1\ \xd7\xf7\x32\x00\x80\x52\x0a\x4a\xa9\x3a\x57\x80\x15\xf0\xb2\x04\ \xe3\x17\x27\xfa\xb7\xd7\x58\xc6\x63\xf3\xf1\xce\xc5\xd4\x32\x5a\ \x5b\x5b\x90\xcd\x0a\x00\x28\x22\x7c\x08\xc7\x8f\xbf\x0a\xab\xd5\ \xa2\x82\x17\x0f\xe5\x26\x95\x08\xb8\xbe\xa3\x2f\xf6\x00\x40\x77\ \xe7\x4b\xe4\xda\xb5\xc0\x17\xed\x6d\x4f\x9d\x08\x05\x79\xf8\xfd\ \x7e\x38\x9d\x4f\xa2\x75\xf7\x63\x9a\x6c\x4b\xb3\x97\x65\x59\x05\ \x2e\x4b\xa0\x4c\xa6\xa6\xc7\x68\x7d\x43\xfd\xc7\x3a\x1d\x7b\xa2\ \x69\x67\x33\xf8\x50\x00\x87\x5f\xe8\x84\x2c\xcb\x1a\xe7\x00\xc0\ \xc6\xc6\x06\x04\x41\x80\xdd\x6e\x07\xcb\xb2\x9b\x12\xd0\x94\xa8\ \x78\x71\xe1\xeb\x33\xe9\x58\x7c\x0e\x14\xc0\xae\xe6\x26\xe8\xf5\ \xff\x38\x42\x29\x4b\x36\x9b\xc5\xc8\xc8\x08\xa6\xae\x5c\x01\x21\ \x44\x53\xb2\x72\xb1\xe9\x4e\x46\x83\x11\x36\x9b\x15\x06\xc3\x36\ \xb5\xce\xb2\x2c\x83\x52\x8a\xe9\xe9\x69\xb0\x2c\x8b\xfd\xdd\xdd\ \x38\x7c\xe4\x88\x46\x8b\x62\x4d\x2a\x12\x58\x6d\x26\xe4\xf2\x79\ \x38\x1c\x35\x1a\x5b\xf2\x3c\x0f\x93\xc9\x8c\xab\x33\x57\xe1\x9b\ \x9c\x84\x5e\xaf\x57\x1b\xac\xb8\xe1\xb6\xd4\x40\x09\x83\x9e\xa0\ \xe3\xd9\xbd\x10\x45\x51\x2d\x4d\x38\x1c\x41\x7e\x6d\x0d\x0b\x89\ \x24\xc2\xe1\x10\x3c\x9e\x93\x6a\x27\x97\xab\x7b\x45\x82\x52\xbf\ \x47\x23\x51\x64\x45\x11\xa9\x54\x0a\xe1\x30\x0f\xb7\xdb\xad\x9e\ \x51\x34\x50\xbe\x0f\x4c\xa0\x44\x38\x1c\xc1\x8a\x98\xc5\x62\x72\ \x09\xd1\x28\x0f\x97\xcb\x05\x8e\xe3\xca\x5a\x55\x69\xb8\xfb\x6a\ \xa0\xfc\x1c\x0c\x06\x61\x36\x5b\x90\x5e\xca\x20\x12\x09\xc1\xe5\ \x72\xa9\x96\x2c\x1d\xa5\xb7\xbe\x2f\x41\x20\x10\xc0\xf6\x5a\x3b\ \x92\xa9\x45\x04\x02\x7f\xc0\xe5\x72\xa9\x4d\x54\x0e\xb4\xf4\xf9\ \xa8\x48\x90\x4e\xa7\x51\x55\x65\x46\x32\x91\xc0\xe5\x4b\x13\x70\ \xbb\xdd\x1a\xbf\x57\x22\x29\x47\xa0\xd1\x60\x70\xf0\xbd\xd7\x9c\ \xce\xe7\x90\x48\x24\x30\x39\xe9\x83\xc7\xe3\xd1\x64\x5e\xfc\x72\ \x16\x6b\xb0\x95\xc0\x1a\x82\x8f\x3e\x3c\xf5\xfa\x2b\xbd\xbd\x5f\ \xce\xc7\xe6\xf1\xd3\x8f\x53\x18\x18\x18\x50\x05\x2d\x16\x50\x99\ \x97\xae\xb7\x7c\x8b\xba\xbb\xf6\xe9\x9f\x6e\x6b\x7f\xb7\xb1\xa1\ \xfe\x54\x2c\x16\x93\x2e\x9c\x3f\x87\xe1\xe1\xe1\x3f\x73\xb9\x1c\ \xd6\xd7\xd7\xb7\x04\x2c\x76\x4c\xf1\xde\xdf\xfb\x6a\xe2\xdc\x6c\ \x24\xf2\xa9\x8e\xe3\xde\xdc\x61\xaf\x21\x9f\x9c\x3e\xfd\xdd\xd0\ \xd0\x50\xef\xcc\xcc\x0c\x87\xff\x2a\x08\x21\x55\x1c\xcb\x7d\x50\ \x5b\x53\xfb\x15\x00\x16\xff\xb7\xf8\x0b\x5c\x7f\x25\x61\x68\x07\ \x46\x1b\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x06\x35\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ \x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ \x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\ \x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdc\x09\x14\ \x11\x13\x07\x99\x2c\xc9\x3b\x00\x00\x05\xb5\x49\x44\x41\x54\x48\ \xc7\x85\x94\x5b\x6c\x5c\xd5\x15\x86\xff\xbd\xcf\x39\x73\xe6\x62\ \xcf\x8c\x1d\x5f\x12\xe7\x62\x7b\x92\x8c\x33\x76\xb8\x14\x22\x4a\ \x70\x62\x12\x02\x22\xe1\xa1\x79\xea\x03\x15\xd4\x84\xd0\x56\x22\ \x15\x3c\x18\x84\x40\xe2\xa1\x42\x15\x52\x6f\x5c\x84\x78\x44\x40\ \x2f\x28\x22\x0e\x4d\x09\x8e\x08\x22\x02\x6a\xa8\xd3\xc4\x2d\xd4\ \x21\xc6\x97\x38\x19\x27\xc4\x63\x7b\x6c\xcf\xd5\x33\xe7\xec\xbd\ \xd7\xee\xc3\xc4\x83\x27\x4e\xe9\x92\x96\xf4\xe9\x68\xed\xb5\xd6\ \xbf\xd7\xda\x87\xbd\xf5\x56\xaf\x7d\xb2\xaf\xaf\x63\xcd\xfa\x75\ \x3d\xb1\xb6\xb6\x1d\x5e\xaf\xed\x33\x0c\x83\x15\x1d\x17\x8e\x53\ \xb8\x7c\xe1\xe2\xe4\xdf\x66\xbe\xbd\xf2\xd7\x2d\xed\x37\x8d\x3c\ \xf3\xec\xa1\x02\x00\xf4\xf7\xf7\x9b\x96\x65\x05\x18\x63\x01\xc6\ \xd8\xda\xea\xaa\xaa\x28\xe3\xc6\x56\x07\xd6\x4d\x63\x13\x13\xa7\ \xb6\x46\xd6\xff\xc1\x81\x85\xb1\x89\x09\x98\x0c\x78\xf9\xe7\x8f\ \xff\xe2\x61\xc6\x8d\x40\x26\x93\x47\x28\x54\x85\xa2\xe3\x60\x7e\ \x2e\x8d\x86\xd5\x0d\x75\x1b\x5a\x5a\x7f\xe0\xb5\x3d\xcf\x0d\x9f\ \x3f\xff\x75\x3c\x1e\xff\xd2\xef\xf7\xb7\xdd\x7c\xf3\x2d\xf5\x1e\ \x8f\x55\xed\x31\x8d\xa0\x20\xe6\x5b\x94\x80\xab\x19\x2c\x83\x21\ \x91\xce\x5e\x0d\xaf\xdb\xb8\xc4\xe0\xc9\xf9\x74\x64\x4b\x7b\x2c\ \xa0\xc4\xa2\x9e\x8c\x8f\x21\x7e\x69\x14\x97\x26\x86\x31\x71\xe1\ \x3c\x12\x53\x71\xac\xaa\xad\x85\x14\xca\x1a\xf8\x7c\xe0\xd6\xe6\ \xe6\xe6\x47\xea\xeb\xeb\xb7\x07\x83\xd5\x9b\x3c\xb6\xdd\xb8\xe0\ \x30\xdf\x9c\x03\x28\x6e\xc0\xf6\x18\x50\x9a\x40\xa4\xd9\x32\x86\ \x39\x71\x61\x3c\x74\x71\xe2\x32\x76\xed\xde\x81\x3b\x7e\xb8\x0d\ \x63\xe3\x93\x58\xdd\xd8\x80\xfa\x86\x30\x46\xbe\x89\x63\x72\xf2\ \x0a\x5e\xfa\xfd\xab\x78\xe2\xc9\x83\x58\x6e\x89\x54\x11\x0e\xb7\ \x10\xf0\x9a\x20\x0d\xb8\x0a\x50\x0a\x50\x54\xc9\x7c\xe3\xa6\xd6\ \xdf\x1e\x7e\xa7\xb7\xef\xea\xd5\x34\xcb\xe5\x73\xfa\xcc\xd9\x7f\ \x63\xe8\xdc\x37\x48\x26\xb3\x98\x9e\x99\x43\x6f\xef\x71\xdc\xbf\ \x6f\x37\xf6\x3d\x70\x1f\xb4\xd6\x20\x22\xb8\xc5\x45\xcc\xa7\x73\ \xf0\x59\x06\x5c\x05\x08\x02\x24\x01\x2e\xad\x64\xde\xfd\x68\xb7\ \x4e\x67\x33\x89\x23\x47\x8e\xe9\x70\xb8\x8e\x71\xc6\x74\x2e\x97\ \xc7\xc2\x42\x1e\x57\xbe\x9d\x86\x69\x68\x1c\x38\xf0\x60\xb9\xf3\ \x62\xa1\x80\xc5\xc5\x02\x66\x12\x53\x50\x04\x08\x55\x72\x57\x01\ \x52\x69\x48\x5d\xc9\xfc\xf8\xb1\xbe\xee\x9a\xda\xea\xe3\xf1\x4b\ \x93\x77\x27\xa6\x66\x10\x8b\xb5\xb1\x6c\x36\xad\x01\x8d\xb1\x91\ \x61\x3c\x7e\xa8\x1b\xa1\x50\xb0\x5c\x40\x2a\x55\x66\x0d\x94\x15\ \xb8\x4a\x97\x12\xcb\x4a\xe6\x0f\x3f\xb4\x7f\xff\xef\x7e\xf3\xfc\ \x7b\x5f\xfe\xeb\xab\xfe\xc1\xc1\x73\xaf\xac\x6b\xda\x00\xe1\x0a\ \x76\xe6\xcc\x19\x74\x76\xde\x8e\x8e\x8e\x2d\xb8\xb1\x69\x90\xd6\ \x10\x54\x72\x57\x2a\x08\x22\x28\x4d\x15\xcc\x97\xc2\x3f\xfe\xe4\ \x5d\x7d\xb4\xf7\xd8\xaf\xff\x33\xf4\xf5\x70\x73\x4b\x04\xe9\xd4\ \x1c\xba\xba\xee\x84\xd6\x1a\x5a\xeb\x1b\xa4\x07\x14\x69\x28\x45\ \x10\x92\xe0\x0a\x09\xa9\x34\x94\xd2\x15\xcc\x97\x1f\xfa\xe3\x9f\ \x5e\x99\x1d\x38\xfd\xcf\xf7\x35\xa0\x23\x1b\x5b\x60\xdb\x9e\xef\ \x12\x5e\x2b\xb4\xdc\x4b\x33\xd0\x70\x5c\x01\xa1\x34\xa4\xd2\x28\ \x08\xaa\x60\xf3\xfa\xce\x56\xd5\x86\xc3\xa1\x50\x10\xb9\x8c\x2a\ \x27\x62\x8c\xdd\xf0\x92\x88\x08\x8e\xab\x40\xa4\x60\x30\xa0\x28\ \x35\x52\x05\x05\xa5\xa8\xcc\xfc\xfa\x43\x35\x75\xab\x3e\x9f\x9b\ \x9f\x4f\x37\xae\xae\xfb\xde\xee\x35\x00\xa9\x08\x8e\x2b\x20\x25\ \x41\x29\xc2\xc2\xa2\x42\xc1\x51\x15\xbc\x42\x41\xf7\x43\xfb\xdf\ \xde\xb9\x73\x67\xf6\xc4\x89\x13\x47\x97\x92\x03\x58\xa1\x82\x88\ \x20\x84\x82\x2b\x08\x06\x07\x8a\x42\x23\x99\x13\x50\x44\xc8\x39\ \xaa\xcc\xe6\x8d\xa4\x77\x76\x76\xfa\x4d\xd3\xac\x18\xee\x12\x6b\ \xad\xa1\x94\x84\x14\x6e\x69\x83\x14\x81\x08\x98\xce\x49\xb8\x82\ \x40\x44\x48\x64\x44\x99\x57\x14\xf8\xd9\xc1\x83\xdb\x5f\x7b\xfd\ \xf5\xb7\x0d\xc3\x00\x11\x95\xbf\x33\xc6\xa0\xb5\x86\x10\x02\x45\ \xc7\x45\x7b\x6b\x13\x06\xc6\xc6\xb1\xa1\xb9\x15\x7d\x83\x1f\x61\ \x74\xa6\x0f\x5c\x99\xf0\x88\x75\x1b\xeb\xd7\x6f\x02\x67\x00\xa9\ \x6b\x33\x88\x45\xa3\x3c\x16\x8d\x5a\x00\x90\xcd\x64\x1a\x6c\xdb\ \xe6\xcb\xbb\x27\x22\xb8\xae\x0b\xc7\x71\x60\x59\x16\x38\x37\xe0\ \x35\x34\x2c\x2a\x60\x36\x27\x90\xd7\x05\xac\xdf\x6b\xa3\x75\x5b\ \x15\x0c\x93\x6c\xad\x08\x52\x96\x66\xc1\x63\xd1\x68\x10\x40\x18\ \x40\x6d\xa4\xb9\xb9\x0e\x8c\x55\x13\x11\xa4\x94\x10\x42\xc0\x71\ \x1c\xb8\xae\x0b\xa5\x4a\x5b\x65\x9a\x26\x38\xe7\x20\x5d\x5a\x51\ \x21\x15\x0c\x6e\xa1\x6a\x4d\x15\x32\xb5\x69\x68\x18\x52\xaa\x52\ \x72\xa5\x4a\x57\xe4\x07\x10\x04\x60\x00\x10\x5a\xeb\x80\x10\x02\ \x52\xca\xca\x87\x75\xdd\x63\xeb\x1f\xff\x02\x23\x99\x24\x02\x32\ \x89\xa2\x13\x87\x8d\x22\x52\x7c\x16\x4a\xd9\x4d\xa7\x07\x9f\x7a\ \x0c\x9c\xd9\x73\xe9\xe4\x82\x09\x60\x16\x80\x17\x40\x23\x00\xa9\ \xb5\xf6\xff\xaf\xd7\xbb\xbc\xd8\x9b\x43\x6f\x62\xec\x9e\xb3\xb8\ \x73\xf3\x5d\x68\xc0\x1a\x0c\xa5\x47\x90\x1b\x29\xa0\xa6\xdd\x89\ \x54\xd7\x56\xbd\xe6\x5b\xf4\x1b\xb9\x2f\xac\x0b\xe6\xf0\xe8\xa8\ \x8a\x45\xa3\xf3\x00\x5a\x00\xf0\x6b\x8a\xca\x43\x5d\xa1\x80\x31\ \xf8\x7c\x3e\xe8\x02\xc3\xd4\x87\x59\x7c\x30\x7e\x12\x6e\x58\x6a\ \xef\x45\x8e\xa6\xd0\x1a\xd8\x6d\xb6\xf6\x05\x2c\x64\x33\x12\xc2\ \x23\xca\x5b\xe4\x02\x28\x00\x68\xe4\x9c\xfb\xbc\x5e\x2f\x84\x10\ \x2b\x54\x24\x12\x09\x10\xd1\xa5\x73\x43\x43\x27\x3c\x53\x06\x6b\ \x33\xef\xd9\xb0\xa9\x66\xe7\xda\xa1\x73\x83\x9e\x2b\x35\x1f\xb4\ \xcd\xdf\x3a\x4d\x4d\x27\x63\x87\x33\x45\xfe\x89\x64\xc2\x96\x49\ \x5a\x30\x01\x60\x78\x74\xb4\x18\x8b\x46\x07\x4d\xd3\x6c\xbb\x3c\ \x39\xd9\xf0\xde\xd1\xa3\x9f\xee\xde\xb3\x67\xc7\xcc\xf4\x34\x93\ \x52\xce\x16\x0a\x85\x81\x64\x32\x79\xaa\xab\xab\xeb\x1f\x83\x67\ \xcf\x7e\x15\x0c\x85\xdc\xc3\x2f\x1e\x41\xf4\xbe\xee\x03\x7b\x3b\ \x7f\xfa\x93\xf3\x23\x57\x93\x9e\x6d\x3a\x12\x6e\x09\x81\x3e\xa3\ \x53\x23\x47\xc4\x1b\xa3\xa7\xfb\x56\xfe\x06\xb6\x6c\xde\xcc\x36\ \x47\x22\xfe\xd5\xf5\xf5\xfc\xe9\x9e\x9e\x5d\xf9\x7c\xbe\x23\x95\ \x4a\xf9\x9f\xee\xe9\x41\x3e\x9f\x47\x2a\x95\xaa\x88\x6f\xe9\x7a\ \xf0\xb1\xb5\xdd\x7f\xfe\xe5\x1d\xbf\xda\xfe\xe4\xaa\x63\x5e\xd1\ \x71\xb9\x41\xdc\xfb\xf2\x9e\x43\xcb\x63\xd8\xf7\x0d\xf3\xff\x59\ \xfb\xd6\xdb\x02\x5a\x16\xdd\xda\x1f\xd5\xfd\x38\x1b\x9e\x7f\xde\ \xe3\xb3\xe0\x9b\x09\xbe\xf0\xf7\x17\x3f\xfd\xcb\x52\xcc\x7f\x01\ \x6c\x42\xab\xe5\xca\x5a\xa1\xde\x00\x00\x00\x00\x49\x45\x4e\x44\ \xae\x42\x60\x82\ \x00\x00\x04\x68\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ \x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ \x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\ \x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdc\x09\x14\ \x11\x0a\x0b\x0b\x9a\x2c\x08\x00\x00\x03\xe8\x49\x44\x41\x54\x48\ \xc7\xa5\x96\x4d\x6f\x1b\x55\x14\x86\xdf\x7b\xaf\x8d\x9d\x38\xae\ \x1d\x37\x6d\xa1\xb1\x49\x54\x22\x25\x81\x96\x0d\x25\x69\x51\x05\ \x54\x50\x55\x61\x93\x4a\xac\x00\x75\x41\x37\x88\x35\x0b\x7e\x41\ \x60\x85\x8a\xfa\x0b\xa8\xc4\x8e\x86\x28\x80\xba\x60\xd3\x48\xac\ \x20\x48\xe4\xab\x6d\x6a\x7b\xc6\x33\xe3\x38\x8e\xed\xd8\xb1\x87\ \xb1\xe3\xb1\x67\xee\x61\x61\xc7\x75\x8a\x10\x71\x7a\xa4\x77\x33\ \xd2\x3d\xef\x39\xe7\xb9\x1f\xc3\x00\xe0\xee\xdd\x79\xdf\xaf\xf7\ \xef\xbf\xf6\x52\x2c\xfa\xc5\xe4\xf8\xf8\x15\xbf\xdf\xd7\x27\x84\ \x60\xb5\xfd\xba\xa7\x56\xb3\xac\xa4\xaa\xae\x98\xe5\xc2\xaa\xd7\ \x2b\x76\x5c\xe9\x36\x89\x24\x5c\xd7\x85\xeb\x4a\x00\x84\x67\x83\ \x73\xce\x2d\xcb\xb2\x16\x17\x17\xbf\x67\x5f\xcd\x7d\xeb\x8f\x46\ \x63\xb7\x47\x46\x63\x37\x19\x17\x01\xd3\xac\x22\x14\x1a\x40\xdd\ \xb6\x51\x2a\x56\x10\x0c\xfa\xc1\x18\x47\x7f\x9f\x0f\x7b\xa5\x22\ \x66\x6f\xcc\xe0\x28\xb1\xb4\xb4\x54\x9e\x99\xf9\xe0\x14\x7f\xf0\ \xe0\x37\xbe\x5b\xaa\x9c\x9b\x78\x75\x32\xe0\x36\x6b\x64\xe8\x09\ \xe8\x5a\x1c\x9a\xfa\x18\xaa\xf2\x08\x3b\x59\x1d\x27\x23\x11\x34\ \x6c\x07\x3f\xfe\xb0\x80\x5a\x6d\xff\x7f\xe5\x38\x2e\x6c\xdb\x66\ \x04\x62\x9e\xf1\x89\xb1\x68\x22\xfe\x64\x28\xa5\xa6\xf1\xee\xd5\ \x2b\x98\x9a\xbe\x88\x44\xd2\xc0\x8b\x67\x4e\xe3\xd4\xe9\x30\x9e\ \x6c\xea\x30\x8c\x2d\xdc\xfe\xe6\x0e\x3e\xfb\xfc\x26\x8e\x1e\x0c\ \x0c\x20\x5e\xdc\x33\x3f\x9d\x9d\xbd\x76\x76\x75\x65\x05\xdb\xdb\ \x15\x66\x55\x2d\x2c\xff\xf9\x17\xd6\x37\x36\xb1\xbb\xfb\x37\x72\ \xf9\x22\xe6\xe7\x7f\xc1\xfb\xd7\xde\xc6\xf5\xeb\xef\xa1\xd7\xe0\ \xa1\x13\xe1\xd1\x91\xd1\x51\xe9\xf5\x7a\x70\xef\xde\x22\xc2\xe1\ \x21\x70\xc6\x60\x59\x55\x94\x4a\x16\xb6\x32\x39\x08\x2e\xf1\xf1\ \x27\x1f\x82\x88\x8e\xae\x36\x7c\xcf\xc9\x48\xf8\xeb\xe5\x3f\x56\ \xae\x5e\x7c\xf3\x02\x04\x17\xd8\xc9\xe6\x31\x39\x39\x8e\x64\x52\ \x01\x63\x40\x7c\xf3\x31\x6e\xdd\xfa\x08\xc1\x60\x10\x52\xd2\x91\ \xaa\x96\x92\x40\xb2\xdd\xc1\xdc\xdc\x97\x6b\x6b\x6b\xbf\x7f\x77\ \xe1\xfc\x04\x46\x46\x86\x51\x28\xec\x22\x7a\xf6\x65\x34\x1b\x4d\ \x2c\x2f\x2f\x63\x7a\xea\x75\x8c\x4f\xbc\x02\x22\xd9\xb3\x00\x80\ \x03\x80\xa2\x24\xe3\x07\xee\xc3\xc3\x43\x48\x2a\x0a\x46\x46\xcf\ \x21\x6d\xa4\x70\xf9\xad\x37\x8e\x95\x9c\xa8\x3d\x22\x00\x30\x0c\ \x23\x55\xaf\xdb\x20\x00\x81\x40\x3f\xaa\x35\x13\xfe\xbe\x20\x06\ \x07\x43\xf0\x7a\xbd\x70\x1c\xa7\x27\xb0\xad\x51\xd2\xd3\x0e\x32\ \x99\x4c\xba\x5c\x2e\xd7\x19\x00\x22\x82\x47\x70\x84\x42\x27\xe0\ \xef\xeb\xeb\x0d\xec\x21\xe1\xa9\x41\x2e\x97\xdb\xd6\x75\x7d\x4b\ \x08\x01\x22\x42\x34\x36\x0c\xcb\xb2\x10\x0e\x9f\x80\x24\x3a\xb6\ \x3a\x06\x44\x54\x53\x14\x25\xc5\x85\x80\x94\x12\xb1\xe8\x19\x8c\ \xc4\x22\x88\x44\x06\x20\xa5\x3c\x96\xa8\xdb\xa0\x05\x5a\x49\x72\ \xc6\x40\x1d\x77\x7a\x8e\xf1\x10\xd0\x0d\x19\x00\x56\x57\x57\xd6\ \x5c\xd7\x85\x24\x02\x97\x84\x03\x4e\x9d\x05\x3d\x42\xee\x1c\xb4\ \x83\x8f\xaa\xaa\xc6\x6b\xb5\x1a\x40\x04\x82\x04\xc9\x76\x35\x52\ \x82\xa4\xec\xc9\x80\xa4\xdb\x81\xdc\x31\xc8\x66\xb3\x86\x69\x9a\ \xf5\xc0\xc0\x80\x5f\x76\xb5\xda\x0d\xec\xc8\x1d\x74\x75\xdd\x61\ \x50\x2a\x95\xf2\xf9\x42\x61\x97\x73\x0e\x92\x04\x40\x42\xd2\x73\ \x72\xe8\x36\x68\x34\x1a\xa6\xa1\xeb\xba\xe0\x1c\x44\x12\x52\xa2\ \x03\xea\xbf\x2e\x63\x06\x06\xc6\x5a\x6a\xbf\x64\x10\x42\xb4\xc5\ \x01\x80\xf1\xee\x45\x0f\x1f\x6e\x3c\xe2\x9c\x77\x2a\x6f\x36\x9b\ \x60\x00\x04\xe7\xff\x12\x63\x00\x18\x81\xb5\x13\xfb\x7c\x2f\x80\ \xa4\xeb\x36\x1b\x8d\x66\xc3\xae\xcb\x52\xb1\x64\x03\x20\x4f\xb7\ \x81\xa2\xa8\x71\x02\x20\xa5\x84\xcf\xd7\xba\x22\x16\x16\x16\x5a\ \xc9\xc0\xc0\x85\x80\x47\x08\x70\xde\xaa\xcb\x95\x12\x76\xbd\x8e\ \x72\xa5\xe2\x38\x8e\x53\xf9\xf9\xa7\xc5\x3b\x5e\xaf\xb7\x56\xad\ \x56\xb7\x38\xe7\x0d\xdb\xb6\xdd\x43\x06\xc9\x64\x62\xb3\xd9\x68\ \x40\x70\x81\xfe\x40\x10\x53\x53\xd3\xb8\x74\xe9\x32\x1c\xd7\xc1\ \xfe\xfe\x3e\xf6\x4a\x7b\xcd\x94\x96\xda\x56\x55\x55\xd3\x75\x2d\ \x65\xe8\x86\xa2\x69\x9a\x92\x4e\x1b\x49\xd3\x34\xd3\x52\xca\xdc\ \xb3\x7f\x01\x87\x0c\x54\x55\x4d\xe4\xf3\x05\xdb\x71\x1d\xca\x66\ \xb3\x3b\x9a\xa6\xe9\x1b\xeb\xeb\x9b\x29\x2d\x95\x30\x0c\x43\xd9\ \xce\x64\xf4\x62\xb1\xb8\x45\x44\x25\x00\x6e\xcf\xcf\x9b\xc7\xe3\ \xf1\x8d\x8d\x8d\xbd\x33\x38\x38\x78\x9e\x73\x1e\xe9\xde\x04\xc7\ \x8d\x7f\x00\xae\x78\x85\xc4\xff\x99\x5a\x29\x00\x00\x00\x00\x49\ \x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x04\xe7\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ \x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ \x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\x01\ \x42\x28\x9b\x78\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdc\x09\x14\ \x11\x0b\x26\x57\x5e\x41\x3c\x00\x00\x04\x67\x49\x44\x41\x54\x48\ \xc7\x95\x54\x6b\x4c\x5b\x65\x18\x7e\xbe\xef\x14\xce\x29\xb4\x05\ \xe4\xde\x71\x2b\x05\xb9\xd5\x18\x75\x9b\x31\xb0\xb8\x39\x27\x2a\ \x31\x2e\x9a\x28\x44\x1c\xd9\x16\x13\xe3\xbf\xe9\x0f\x7e\x6a\xe2\ \x70\x89\xc6\xcc\x99\xa8\x71\xfe\x5a\xcc\x5c\xcc\x86\x66\x1b\xc1\ \xf0\x63\x01\x22\x57\xd1\xcd\x80\x0c\x58\x91\x6b\x81\x16\x68\x4f\ \x4f\xef\xb4\x3d\xfd\xfc\x01\xd4\xd3\x96\x32\xfd\x92\x2f\xdf\x25\ \xe7\x3c\xcf\xfb\x3c\xe7\x39\x2f\x01\x80\x2b\x57\x3a\xf9\xdb\x3f\ \xff\xf4\x78\xb1\xa1\xec\x83\xba\x9a\xda\x67\x04\x81\x57\x73\x1c\ \x47\x02\x5b\x41\x04\x02\x3e\xcb\x8c\x79\xae\x7b\xde\x3c\xdd\xb5\ \x61\x5f\x37\x0f\x0d\xf7\xfb\xb1\xff\x60\x00\x82\x00\x42\x00\x40\ \x3e\xe9\xf8\x42\x28\x2a\x2a\xbe\x58\x5c\x72\xa0\x8d\x53\xa5\xa8\ \x5d\x2e\x2f\x32\x32\x34\x08\x6c\x6d\xc1\x61\x97\xa0\xd5\x0a\x20\ \x84\x42\xe0\x53\xe5\xe9\xfb\x93\x0b\x4f\x1e\x34\xf5\x25\x85\x26\ \x04\xa1\x50\x28\xd0\xde\xde\x7e\x79\x70\x60\x60\x1c\x00\x54\xbd\ \xbd\xbf\xd2\x97\x9a\x9a\xca\x1b\x5f\x7e\x41\x7d\x7f\xe2\x4f\x2c\ \x2d\x9a\xa1\xd3\xa5\xc3\xef\xf7\x61\x73\xd3\x89\xfc\xfc\x6c\x98\ \x4c\x4f\x41\x72\x4a\xdc\xd0\xe0\x88\xb1\xf5\xd4\x1b\x46\x10\x02\ \xa2\x00\x8d\x6e\x01\x84\xc3\x61\x7f\x4e\x76\xf6\x2d\x00\xdb\x04\ \xb5\x75\xd5\x07\xe6\xfe\x9e\xcd\x98\x9f\x5b\xc6\xb3\x47\xeb\x71\ \xf8\xe9\x83\x30\xcf\x2e\xa1\x20\x3f\x0f\xb9\x79\x99\x98\x99\x5e\ \xc4\xd2\x92\x05\x17\x3f\xff\x12\x67\xdf\x69\x81\x2c\xcb\x20\x84\ \x44\x81\x49\x8c\x00\x82\x48\x24\x12\xda\xb1\x09\x00\x40\x25\xb7\ \xaf\xd9\x58\x61\xf8\xec\xea\xf7\xd7\x7e\x5b\x5b\x73\xc1\xe3\xf5\ \x60\xec\xf7\x7b\x98\xf8\x6b\x1a\x9b\x9b\x6e\xd8\xd6\xed\xe8\xec\ \xec\xc2\xb1\xe3\xf5\x68\x7c\xf1\x38\x28\xa5\x20\x94\x82\xc6\x4d\ \x6e\x67\x25\x84\xc4\xb8\x46\xd3\xd4\xe9\x55\x6d\x67\xda\x98\xcb\ \xe3\x12\x6f\xdc\xb8\x89\xcc\xcc\x1c\x50\x42\xe0\xf1\x78\x21\x8a\ \x5e\x58\x56\x6c\xe0\x68\x04\xad\x6f\xbd\x0e\x4a\xc8\xbf\xa0\xca\ \xfd\x0e\x29\x21\x24\x91\x20\x2b\x53\xfb\x69\xd7\xcd\xee\xb6\x54\ \x1e\x23\x47\x8e\x3c\xe1\xb5\xae\xad\xa3\xa6\xa6\x0a\x6e\xb7\x04\ \x80\xe1\xc1\xf4\x14\xce\x9c\x6d\x46\x66\x56\x66\x14\x84\x12\xb2\ \xad\x62\x77\x55\x12\xc5\x13\x74\x74\xb4\x8f\x9f\x7a\xfb\xe4\xab\ \xeb\xd6\x85\xc1\x92\x12\xbd\x6c\xb5\xd9\x50\xa4\x2f\x41\x28\x18\ \xc2\xd8\xd8\x18\x0e\x1d\x32\xa1\xb6\xae\x2a\x0a\x4c\xf7\xb0\x67\ \x5f\x82\x98\x03\xa5\xd0\x17\x66\xc3\x3c\x3b\x8b\xd2\xb2\x72\x38\ \x45\x3b\x1a\x1a\x0e\x27\x54\x1a\x55\xa1\x4c\x93\xe2\x43\x2b\x49\ \x68\x7c\x8e\x75\x3a\x0d\xbc\x3e\x09\x0c\x80\xb1\xa2\x0c\x82\xc0\ \xc7\x02\x2a\x00\x48\xdc\x5d\x7c\xf5\x00\xa0\x8a\xc1\xdf\x79\x29\ \x45\xa5\x42\x46\x86\x0e\x1e\x77\x64\x1b\x3c\x4e\x7a\xb2\xfd\x5e\ \xe7\x04\x05\x84\x10\x94\x94\x16\xc1\xe7\xf7\xa1\xb0\x30\x37\x06\ \x7c\xaf\xea\xf7\x52\xf2\x50\x05\x65\xa5\x7a\x18\x0c\x34\x6a\x8b\ \xb2\xb2\xff\x53\x7d\x02\x81\xb2\x9a\xfd\xc0\x63\x56\xc6\x62\xda\ \x05\x08\x01\x63\x6c\x6f\x8b\x76\x5b\x40\x32\x1b\x94\xcf\x80\x31\ \x38\x86\x87\x30\xff\xed\xd7\xf0\x2e\x2c\x80\xed\xf4\x87\xb0\x24\ \xa5\xbe\x26\x6e\xbe\xdb\x7f\xac\xe1\xf4\x45\x20\x35\x51\xc1\x1e\ \x51\x8b\xb7\x80\x00\xb0\xf5\xde\x81\x74\xfd\x07\xa8\xd5\x69\x58\ \x5c\xb1\x20\xab\xb9\x15\x9c\x46\x03\xfb\xf5\x6b\x42\xfd\x63\xd5\ \x27\x65\xff\x56\x43\xe5\xdc\x5c\x96\x2a\x29\x48\x9c\xd7\xca\x7b\ \xc6\x18\xac\x83\x03\x48\xf5\x3a\x41\x54\x6a\xb0\x55\x0b\xee\x7e\ \x73\x09\x8c\x17\x50\xe4\xd8\x80\x36\x2d\x8b\x06\xd3\x68\x1e\xd5\ \x69\x1b\x55\xf1\x29\x4a\x46\xa2\x3c\x33\xc6\xa0\x6b\x7a\x05\x8e\ \x1f\x45\xf8\xcc\x33\x50\x41\x80\x8e\x13\x11\xe1\x08\xa8\x9c\x02\ \xbb\x7f\x2d\xb2\xb9\xb2\xdc\xef\x58\xdf\xf8\x90\x26\x53\xb0\x5f\ \x32\xc2\xe1\x30\xb8\xfc\x02\x18\xdf\x7b\x1f\x72\xb9\x11\x5e\x69\ \x15\x29\x4b\x36\x08\xab\x22\x02\x21\x89\x2d\x2f\x3d\x18\x99\xff\ \x63\xe2\x5c\xab\xcd\x31\x92\x10\xd3\x87\x0d\xc6\x18\xc2\xe1\x30\ \x42\xc1\x20\x38\xad\x0e\x2c\x4d\x83\x88\x68\x47\x64\x6e\x03\x61\ \xaf\x1f\x29\x86\x6c\xf8\x08\x75\x6e\x04\x42\xce\x84\x14\x29\xe3\ \x95\x4c\x19\x63\x0c\xb2\x2c\x23\xe0\x74\x62\xf2\xbb\xaf\x40\x7f\ \xb9\x85\x1c\xf3\x2a\xe4\x2c\x0d\xb6\x2a\xf4\xc8\x5e\x73\x93\x8a\ \x08\x7d\xde\x58\x53\x76\xfe\x42\x41\x7e\xb9\x4a\x01\x40\x38\x8e\ \x4b\xe1\x38\x2e\xe9\x1f\xbb\xdb\x10\x29\xe5\xb0\x72\xa7\x07\x79\ \x3d\xdd\x28\x99\x5e\xc4\x72\x6e\x2e\x7a\x34\xea\x61\x49\x8e\x88\ \x6f\x16\xe9\x4f\x98\x2c\x6b\xa9\xe9\x95\x86\x16\x54\xea\xf9\x28\ \x81\xd5\x6a\xdd\x18\x1d\x1d\xbd\xca\xf3\xbc\xb0\x5f\xa2\x22\x8c\ \xc1\x1f\xd8\xc2\xd4\xdd\x7b\xbc\xce\x1f\x3c\x6a\x7f\xb4\x32\xb7\ \x5f\x96\xfb\xc6\x2d\xab\xe7\x3c\xa2\x24\xf6\x99\x6a\x3e\x7e\xa4\ \xba\xb2\x85\x50\xea\x0f\x4a\x2e\x8b\xd2\x76\x61\x67\xfe\xd7\xa1\ \xba\x54\x55\xde\x06\x9e\x3f\x31\x69\xb1\x7e\x74\xd9\x21\x8e\x00\ \xc0\x69\xad\xd6\xf0\x9c\xa9\xe6\x02\x75\xb9\x57\xc6\x26\xa7\xce\ \xff\x03\x89\xf8\xb0\x39\x0e\x96\x4d\xd6\x00\x00\x00\x00\x49\x45\ \x4e\x44\xae\x42\x60\x82\ \x00\x00\x04\x38\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ \x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ \x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\ \x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdc\x09\x14\ \x11\x15\x13\xd5\xac\xba\xc0\x00\x00\x03\xb8\x49\x44\x41\x54\x48\ \xc7\xad\x55\x6d\x68\x5b\x55\x18\x7e\xce\xb9\x1f\xb9\x31\xcd\x87\ \xdd\x4c\xd7\xd0\xda\xae\xd3\xa5\xdd\x87\x22\x9b\x86\x4a\xa1\xab\ \x93\x6d\xa8\xd0\xb1\xa9\x08\xb2\x16\x2a\x4c\xa1\xea\x04\x41\xc5\ \xff\xc3\x1f\x22\xce\x81\x54\x7f\x49\xfd\x40\x84\x06\x56\x29\x29\ \xce\x8f\xcd\xfe\x18\x6c\x71\x38\x68\x48\xd3\x2e\x59\x6d\xda\x6d\ \x6d\x9a\x36\xbd\xc9\x4d\xd2\x24\xbd\xf7\xf8\xeb\xc6\x9b\x34\x49\ \x3b\xf0\x85\x03\xef\xfb\xde\x7b\x9f\xe7\x3d\xcf\xfb\x9e\x73\xc9\ \xf0\xb0\xd7\x74\xd9\xe7\xdb\xdf\xd8\xdc\xf4\x7e\x87\xdb\xdd\x25\ \x49\x26\x33\xc7\x71\x64\x3d\x97\x47\x2e\x97\x9d\x8f\xcc\x46\x7f\ \x8e\xdd\x5d\xb8\xd4\xbe\xef\xe0\xf4\x47\x1f\xbf\x9d\xc5\x03\x1a\ \xf9\x76\xd8\x3b\xd4\xd2\xda\x7c\x86\x50\xce\x92\x4c\xa6\x61\xb7\ \xd7\x61\x3d\x97\xc3\xea\x8a\x0c\xab\x55\x02\x21\x14\x26\x51\xc0\ \x54\x30\x80\xa6\x66\xe7\xb6\x81\x7b\x7b\x7b\x09\x00\xf0\xf1\x55\ \xb9\xed\xf8\x0b\xc7\x2c\xc1\xc9\x5b\x2c\x3a\x77\x9b\xd8\x6c\x16\ \x64\xb3\x19\xc4\xe3\x6b\x68\x68\xd8\x81\x03\x07\x0e\x41\x5e\x93\ \x71\xfd\x9a\x1f\x6f\x7d\x37\x04\x42\x48\x11\x44\xd3\xb4\xe2\x52\ \x55\x15\xaa\xaa\x42\x92\x24\x8c\x8f\x8f\x17\xdf\xe1\xef\x44\xc2\ \xf6\xd9\x3b\xf3\x38\xd2\xd3\x85\x67\x3c\x87\x71\x3b\x1c\xc5\xae\ \x06\x27\x1e\x71\x3a\x30\x1d\x9a\x43\x34\xba\x80\xcf\x3f\xbb\x88\ \x77\xde\x1d\x00\xa5\xb4\xa4\x4a\x8e\xe3\x40\x29\x05\x63\x0c\x94\ \x52\x50\x4a\x21\x08\x42\xc9\x3b\x74\xcf\x63\xbb\x3f\xfd\xe9\x47\ \xaf\xef\xde\x3d\x99\x28\x69\x85\xf9\xff\xfa\x1b\x93\x81\x10\xe2\ \xf1\x14\x96\x62\x2b\xf0\x7a\xc7\x70\xec\xc4\x11\x1c\x3f\x71\x14\ \xaa\xaa\x16\x2b\xde\xa4\x35\x21\x9b\x0a\x00\x00\xda\x3f\xd0\xcf\ \xe4\x54\x72\x71\x64\x64\x94\x39\x1c\x3b\x09\x25\x04\x8a\x92\x46\ \x22\x91\xc6\xc2\xdd\x25\xf0\x1c\x43\x5f\xdf\xab\x00\x00\xc6\x18\ \x18\x63\x45\x5f\x07\xd6\xc1\x2b\x12\x8c\x8d\xfa\xfa\x1f\xae\xb7\ \x8e\xcd\xfd\x13\xed\x5e\xbc\x1f\x43\x47\x87\x1b\xa9\x94\x0c\x80\ \x61\x26\x34\x85\xb3\x67\x5f\x87\xcd\x66\x2d\x82\x1b\x97\xbe\x93\ \x5a\x04\x7c\xdf\x99\x93\xbd\x00\xf0\x5c\xf7\xcb\xe4\xe6\xcd\xc0\ \x17\x87\x0f\x3d\x75\x6e\x2a\x18\x82\xdf\xef\x87\xc7\xf3\x04\x3a\ \xf6\xed\x2d\xa9\xb6\xbc\x7a\x4d\xd3\x8a\xc0\x15\x09\x74\xe7\x8f\ \x3f\x47\x98\xab\xc9\x75\x5e\x10\xb8\x73\x2d\xad\x6d\x08\x4d\x05\ \xf0\xd2\x8b\xdd\xd0\x34\xad\x64\x72\x74\x60\x23\x49\x79\x01\x25\ \x12\x19\x83\xef\x7f\xb8\xb8\x3c\x17\x8d\x80\x01\xd8\xdd\xd6\x02\ \x51\xfc\x6f\x22\xca\xe5\xa9\x96\xab\xba\x03\xdd\x24\x93\x04\xbb\ \xdd\x86\xa4\xbc\x51\xfc\x50\x6f\xa4\x91\xcc\x98\xd3\x63\xa3\x5c\ \x55\x09\x6c\x76\x0b\x32\xd9\x2c\x9c\xce\x7a\xa8\xaa\x5a\x02\xa4\ \xfb\x7a\xac\x83\x19\xf3\x5b\x12\x98\x44\x82\xae\xce\x83\x50\x14\ \x65\x53\x43\x8d\x32\xe8\x15\x57\xd2\xbd\x26\x41\xf9\xbc\x57\x6b\ \xa8\x31\x2e\xcf\x6f\x49\x60\x24\xaa\x36\x29\xc6\xf8\xb7\x5b\xbf\ \x63\x74\xf2\x12\xa8\xc6\xe3\xf4\xd3\xa7\xb6\xbf\x83\x5a\xd5\x1b\ \x2d\x47\x73\xb0\xf5\x08\x10\x97\xcc\xc8\x6b\xf9\xea\x63\x5a\x69\ \x24\x2b\x5d\x11\xe5\xbe\x49\x10\x61\x75\x59\x90\xaa\x97\x21\xf0\ \xc2\x83\xf5\xa0\xd2\xa5\xc6\x18\xc3\x95\xe0\x55\x14\x84\x3c\xea\ \x60\x45\x78\x25\x8c\xfc\xde\x1c\x12\x34\x86\xc0\x7c\x00\x6c\x55\ \xc3\xe9\x4f\x5e\x19\x5c\x91\xe3\x09\xbe\x96\xf6\xb5\x9a\xfb\xb5\ \x7f\x08\x33\x3d\x37\xd0\xf9\x78\x27\x9c\x70\x61\x46\x0e\x41\x99\ \xce\x62\x5d\xfc\x15\xd6\xf6\x3a\xec\x6c\x31\x5f\x50\xae\x09\x91\ \x8a\x04\x94\xd2\x8a\xf3\x6f\xf4\xd5\x0c\xc3\xfd\x5f\x92\xf0\x85\ \x2f\x23\xef\x50\x21\xce\x52\xb8\xec\x8d\x30\xbb\x1f\x82\x59\x12\ \x90\x57\xf2\x28\x88\x85\xca\x12\x65\x32\x99\x8d\x4c\x26\x53\x72\ \x80\xca\x09\xde\xf0\x0c\x90\x53\xec\x24\xe1\x78\x8a\xc0\x62\x90\ \x7c\x93\xfd\x8a\xac\x3d\xb9\x8c\xd7\x22\x6f\x32\x7e\x59\x20\x57\ \x62\x57\xdf\xdb\x88\x6b\x95\x25\x9a\x98\x98\xe0\xb7\xfa\xe7\x9a\ \x60\xc2\x2e\x34\x02\x00\xea\xd3\x31\x98\x5a\x09\x1c\x8f\xda\x41\ \x83\x94\xb4\x3b\xdc\xf8\xb0\xff\x83\x2f\xf1\x7f\x99\xe7\xfc\xb3\ \x83\x3b\x46\xa5\xc2\xfe\x79\x67\xe1\xf9\x0b\x47\x07\xb7\x7d\xd0\ \xb6\x6b\xdc\x1a\x97\x70\x05\xf6\x84\xc5\x88\x80\xf5\x58\x21\x61\ \x7c\xf6\x2f\xba\x39\xfa\x1f\x59\xc6\x15\xc2\x00\x00\x00\x00\x49\ \x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x1f\xdd\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ \x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ \x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ \x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\ \x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdc\x09\x19\ \x0f\x31\x0d\x3a\x99\x30\xa2\x00\x00\x00\x08\x74\x45\x58\x74\x43\ \x6f\x6d\x6d\x65\x6e\x74\x00\xf6\xcc\x96\xbf\x00\x00\x1f\x49\x49\ \x44\x41\x54\x78\xda\xdd\x7b\x69\x78\x5c\xc5\x95\xf6\x7b\xaa\xea\ \xf6\xaa\x6e\xed\x6a\xad\xb6\x6c\x79\x95\x2d\x4b\xb6\xf1\x06\x36\ \xd8\x06\x6f\x30\x01\x0c\x84\x78\x60\x08\x24\x2c\x61\xc9\x24\x84\ \x84\x90\x99\x04\x42\x12\x32\x99\x21\x10\x18\xb6\x61\x4b\x02\x04\ \x08\x5b\xb0\xc1\x36\x78\xc3\xfb\x22\xbc\x80\x77\x63\x2d\xd6\x62\ \xed\xbb\xba\xa5\xee\xbe\x7d\xef\xad\xf3\xfd\x68\x89\xe1\xcb\x97\ \xcc\x17\x0c\x49\x26\x39\xcf\xf3\x3e\x55\xb7\x54\xba\x7d\xcf\x5b\ \xa7\x4e\x9d\x3a\x75\x2f\xe1\x33\xc8\xf7\xfe\xe5\x1e\xfa\xf7\x9f\ \xfd\x98\x87\xaf\x8b\x47\x8f\xcf\xbf\xf2\xca\x2b\xa7\x8e\x1e\x55\ \x3c\x25\x33\x33\x63\x52\x5a\x5a\x5a\x9e\xdb\xe5\xca\x96\x4a\x78\ \x08\xc4\x09\x2b\x41\xa6\x99\xe8\xef\xed\xed\xed\x6e\x6f\xef\xa8\ \x6f\x6a\x6a\x39\xb6\x6f\xff\xfe\xbd\x5b\x37\xaf\xaf\x02\xd0\x8b\ \xbf\x82\xd0\xe7\x70\x8f\xd4\xbb\xef\xbd\xef\x92\x59\x33\xa6\xff\ \x63\x71\xf1\xc8\x8a\xd4\x60\x30\x57\x08\x42\x3c\x16\x47\x2c\x16\ \x43\x3c\x16\x83\x65\x59\x60\xd6\x30\x5c\x2e\x78\x3d\x5e\x78\x3c\ \x1e\x78\x7d\x5e\x38\x9a\xd1\xdb\xdb\x87\xfa\xfa\x86\xba\xbd\xfb\ \xf7\xbf\xb7\x75\xeb\xf6\xd7\x76\xed\xd8\xbc\xf1\x6f\x82\x80\xb3\ \x66\xce\x2d\xbe\xfe\xfa\xeb\xbe\x36\x7d\xda\xd4\x9b\x46\x14\x15\ \x66\x58\x09\x13\x55\x27\x4f\xe2\xc8\xe1\xc3\xa8\xab\x6f\x68\x6d\ \x69\x6e\x6e\x3a\xdd\x74\xba\x3b\x1a\x8d\xf5\x31\xeb\x38\x18\x10\ \x52\x4a\xc3\x50\x29\x99\x99\x99\xe9\xa3\x46\x8d\x2a\x28\x2c\x2c\ \x2c\x2c\x2f\x2f\xf7\x4e\x2c\x2d\x45\x30\x35\x0d\xf5\x0d\x8d\xd8\ \xbd\x7b\xcf\xa1\x6d\xdb\xb6\x3f\xbd\xf2\xcd\xd7\x7e\x09\xc0\xfc\ \xdf\x48\x80\xeb\xfe\x07\x1e\xba\x73\xc9\xe2\x0b\xbe\x5d\x90\x9f\ \x97\xde\x58\x57\x8f\xad\xdb\xb6\x62\xcb\xd6\xad\xb5\x55\x27\xab\ \x36\x9e\x3a\x75\xea\x80\xe5\xd8\x0d\x00\x3a\x00\x44\x01\x24\x00\ \x30\x00\x0d\x40\x02\x70\x01\xf0\x00\x48\x03\x50\x90\x93\x9d\x3d\ \xa9\x64\x74\xc9\xbc\x85\x0b\x16\x94\x2f\x5a\xbc\x28\xad\xbc\xa2\ \x02\xcd\x2d\xad\x58\xb3\x76\xdd\xa1\x37\x57\xae\xfa\xc9\xde\xca\ \x1d\xbf\xc3\xff\x16\xb9\xe2\x8b\xff\x78\xce\xba\x75\x1b\x4f\x76\ \x77\x77\xf3\x87\x07\x3e\xe0\x7b\xbe\xff\x7d\x7b\x5a\x79\xc5\x3b\ \x00\xbe\x62\x00\x93\x00\x14\x01\xc8\x01\x90\x45\x44\x19\x52\xca\ \x54\x00\x29\xbf\x87\x20\x11\xa5\x03\xc8\x1c\xea\x5b\x08\x60\x2c\ \x80\x8b\xd3\xd3\xd2\x1e\xbe\xe1\xfa\xeb\x6b\x37\x6f\xda\xc4\xfd\ \xfd\xfd\xbc\x71\xe3\x7b\x7c\xdd\x57\x6f\x7a\x4d\x18\xfe\x3c\x00\ \xb8\x60\xd1\x85\xf4\x57\x53\xfe\xde\x1f\xfd\xf4\x3b\x1f\x7d\x54\ \x95\xe8\x68\x6b\xe7\x27\x1e\x7d\x8c\xcf\x9e\x3d\xa7\x72\x24\x70\ \xcb\x5e\xe0\xb9\xd5\xc0\x15\x86\x61\x64\x67\x00\x41\x00\xea\x93\ \x96\x75\xcf\xbd\x3f\xa5\x83\x47\xab\x45\xe5\x07\x27\xa8\xa9\xd3\ \xa4\xdf\xb3\x3e\x09\xc0\x4f\x44\x59\x6e\x97\x2b\x1f\x40\x31\x80\ \xc5\x59\x99\x99\x4f\x7e\xef\xae\xbb\x3a\xea\x4f\x9d\xe2\xd3\xa7\ \x9b\xf8\x87\x3f\xba\xef\x74\x6a\x5a\x68\xf6\x5f\x4b\x77\xf1\x9f\ \x8f\x3c\xfe\xd4\xe9\xd3\x4d\x7c\xe4\xf0\x21\xbe\xfe\xda\xeb\xc2\ \x5e\xb7\xe7\xee\xe5\x40\x79\x2b\x70\x3c\x0c\xf0\x20\x10\x63\x20\ \x1f\x00\x59\x96\x9d\xc2\xcc\x79\xcc\x3c\x96\x99\x27\x31\x73\xd9\ \x50\x39\x9e\x99\x4b\x98\xb9\x90\x99\xb3\x99\x39\x85\x99\x5d\xff\ \x4d\x87\x50\x44\xc2\x0f\x20\x6b\xc8\x92\x56\xcc\x9e\x39\x6b\xc3\ \xc6\xf5\xeb\x9d\xfe\xfe\x30\x3f\xf2\xe8\x13\xce\x9c\x73\xe6\x7f\ \xe5\x2f\xae\xfd\xe3\x4f\x3c\xfd\x6a\x6f\x6f\x1f\x6f\xde\xb4\x89\ \x2f\x5a\xba\xac\x56\x02\xcb\x01\xe4\x9c\x06\x3d\x1b\x03\x98\x01\ \x76\x88\x58\x4f\x9b\xf6\x1c\x33\xcf\x61\xe6\x45\xcc\xbc\x48\x6b\ \x3d\x5f\x6b\x7d\xb6\xd6\xfa\x2c\xad\x75\xb9\xd6\xba\x54\x6b\x3d\ \x4e\x6b\x3d\x5a\x6b\x3d\x42\x6b\x9d\xaf\xb5\xce\xd1\x5a\xa7\x31\ \xb3\xf7\x63\x07\xe3\xf2\x49\x22\x0a\xba\x92\x16\x71\x4e\x6e\x28\ \xf4\xcc\x2f\x9f\x79\xa6\x2f\x16\x8b\xf1\xd3\xcf\xfc\x8a\x4b\x27\ \x4d\xbd\xee\x2f\xa6\xfc\x2f\x1e\x7e\xe4\xf9\x8e\xce\x2e\x7e\x67\ \xf5\x1a\x9e\x3e\x75\xea\x16\x00\xd3\x42\x80\x7f\x84\xdf\x1f\x70\ \x00\x76\x00\xd6\x63\xc7\x5a\xbc\x6c\x19\xeb\x6f\x7c\x63\x0b\x33\ \x7f\x41\x6b\xbd\x88\x99\xcf\x63\xe6\x39\x5a\xeb\x19\x5a\xeb\x72\ \x66\x9e\xa4\xb5\x1e\xaf\xb5\x2e\xd1\x5a\x8f\x60\xe6\x7c\xad\x39\ \xc4\xac\xb3\x98\x39\x60\x3b\xda\xf5\xfb\xbf\x2d\xa5\x72\x11\x51\ \x10\xc0\x04\x00\x3f\xf8\xcf\x87\x1e\x6a\x1f\x1c\x1c\xe4\xc7\x1e\ \x7f\x92\x67\xce\x9e\xf7\x15\x00\x38\x6f\xfe\xe2\x3f\x9f\x4f\xf8\ \x97\x7f\xbd\xfb\xc7\xad\xad\x6d\xbc\x79\xd3\x26\x3e\x67\xf6\x9c\ \x5d\x00\xc6\xfb\xfd\xfe\x34\x00\x3e\x06\xae\xd2\xa9\xa9\xcc\x17\ \x5e\xd8\xad\x6f\xbf\xfd\x43\xbd\x7c\x39\xeb\x9b\x6e\x5a\xc7\xcc\ \x8b\xb5\xd6\xf3\x99\xf9\x1c\x66\x9e\xc9\xcc\xd3\xb4\xd6\x93\x99\ \x79\x82\xd6\x7a\x0c\x33\x17\x6b\xd6\x85\xac\x39\x8f\x59\x67\x6a\ \xad\x3d\xc3\xbf\xb7\xb1\x4e\x13\x00\xbc\xf9\x81\x45\x6b\x0e\xc7\ \x09\x00\x0a\x0a\x46\x08\xa5\x54\x2a\x80\x31\x86\x52\xf7\x3e\xf9\ \xf8\xe3\x6d\xb1\x68\x8c\xef\xfd\xd1\x4f\x9d\x60\x5a\x68\xd6\xe7\ \xa1\xa7\xfa\x43\x8d\x97\x7d\xf1\xaa\x8b\x57\xac\xf8\xd2\xdd\x9d\ \xed\xed\xf8\xe9\x7d\x3f\x3d\xb8\xab\x72\xcf\x8d\x00\xea\x07\x07\ \x07\x09\x40\x1c\x33\x67\x2e\xa3\x71\xe3\x80\x94\x94\x18\xfc\xfe\ \x93\x64\xdb\x15\x1c\x8f\xbb\x01\xd8\x44\xe4\x30\xb3\x03\xc0\x21\ \x22\x87\x88\x34\x33\x6b\x02\x1c\x06\x1c\x62\x68\x26\xc4\x4d\xa6\ \x7e\xaf\x20\x0d\x00\x07\xc3\x9a\x1c\x9b\xb0\xa7\x4d\x93\x69\x12\ \x22\xe1\xe4\x73\x34\x37\x37\x6a\x00\xfd\x81\x40\xd0\x8c\x44\xc2\ \xbf\xbd\xf9\xb6\xdb\x10\xca\xcb\xfb\xe6\x2d\x37\xdf\x90\xd6\xd4\ \xdc\xfc\xfa\x3b\xef\xac\x9b\xd5\xd2\x74\xaa\xf5\x33\x39\xb8\x3f\ \xd0\x96\x75\xdd\x97\xff\xe9\x91\xbc\x50\x0e\x1e\x7b\xec\xb1\xbe\ \xf7\xb6\x6e\xb9\x5d\x4a\xd9\x38\xe4\xb5\xe3\xcc\x5c\x86\x85\x0b\ \xcb\x98\x19\x50\xaa\x01\x89\x04\xb1\x6d\x03\x8e\xe3\x00\xb0\x87\ \x95\x1f\x06\x33\x3b\x20\x72\x00\x68\x02\x18\xa0\x01\x41\xd4\x3b\ \xac\x3c\x00\x54\x04\x05\x4f\xcf\x20\x9e\x93\x2b\x78\xfe\x48\xe2\ \x2f\x94\x19\xfc\xc9\x07\x8a\x44\xc2\x71\x97\xa1\x4e\x03\x78\xfb\ \x8e\x3b\xee\x78\xa3\xbb\xb3\xd3\xbe\xe1\xab\xd7\x15\x95\x96\x4e\ \xfc\xc5\x67\xf6\xf0\x1f\x2f\x73\xf7\xfd\x3b\x01\xc0\x0f\x7f\x74\ \xdf\x03\x67\xcf\x99\x35\xf2\xd5\x57\x7e\x8b\x17\x7e\xf3\xc2\x5d\ \x00\x76\x3a\x8e\xc3\x43\xca\x4f\x42\x6b\xeb\x62\xee\xec\x2c\x86\ \x69\x02\xff\xf0\x0f\xaf\x53\x4a\x4a\x27\x6c\x1b\x64\x59\x72\x58\ \x69\x4a\x2a\x9c\xac\x27\x03\x20\x0d\x40\x6b\xa0\x9f\x04\x85\x6b\ \xb4\xa6\x56\xd6\xd4\xc4\x9a\x1a\x58\x53\x1d\x6b\xaa\x76\x34\x1d\ \x37\x35\x1d\x8a\x68\xda\xd7\xad\x69\x47\xb3\xa6\x4d\x35\x9a\x5e\ \xdf\x9b\x5c\x3a\x6f\xf8\xd7\x17\x63\x86\xcb\x73\xbc\xae\xbe\xfe\ \xf5\x1f\xdc\x7d\xf7\x86\x49\x93\x26\x60\xd9\xd2\xc5\x2b\xc6\x4d\ \x2c\x5f\xfe\xf9\x10\xf0\x83\xef\x71\x6e\x41\xf1\x8c\x45\x17\x9c\ \x7f\x6d\x53\x63\x23\x5e\x79\xe5\x95\xdf\xc5\x4d\x73\x95\x94\x2e\ \x2f\x80\xa8\xed\xf0\x28\x00\x73\x78\xed\xda\x52\x1a\x1c\x48\x85\ \x52\x7d\x3c\x73\xe6\x69\xce\xca\x6a\x83\xd6\x40\x3c\xee\x03\xc0\ \x44\xa4\x87\x22\x3f\x66\x66\x66\x22\x26\x80\x34\x51\xb8\x85\x79\ \xb0\x43\x6b\x19\x04\x84\x60\x08\x05\x08\xc5\x10\x12\x10\x8a\x20\ \x0c\x05\xa1\x0c\x08\xc3\x80\x70\x19\x10\x2e\x17\x44\x20\xd5\x25\ \x7e\xb7\xcf\x91\x57\xdd\xf2\x25\x71\xe7\x43\x87\x2c\xc3\x30\x8e\ \xbf\xb9\x72\xe5\xda\xb7\x57\xbd\xd5\x74\xc5\xe5\xcb\x31\xb9\x74\ \xe2\x3d\x00\x8c\xcf\x65\x0a\xdc\x7a\xf3\xd7\xee\x9d\x30\x7e\x1c\ \x7e\xf7\xc6\x1b\x3d\x07\xf6\xec\x79\x50\x19\x29\x31\xc7\x77\x96\ \xd3\xd4\xc3\x01\xc9\xce\x7c\x66\x66\x1c\x38\x30\x9f\x1d\x0d\xe4\ \xe6\xee\xa2\xf4\xf4\x38\x88\x2c\x38\x0e\xb8\xb7\x77\x0a\xbf\xf8\ \x62\xd1\xf0\x68\x83\x48\x13\xc0\x94\x6c\x08\x77\x00\x03\x7e\x22\ \xb9\xb5\x6d\x93\x52\x48\x2a\x2f\x19\xc2\x00\x84\xc1\x10\x06\x41\ \x18\x22\xa9\xb4\xcb\x0d\xe1\xf6\x40\xb8\xbd\x10\x1e\x0f\x0b\x5f\ \x0a\x89\xe6\x7a\x5b\x5c\x7b\xeb\x38\x5a\xf1\xf5\x17\xda\x01\x54\ \xfe\xdb\xbf\xfd\x6c\x9d\xdb\x65\xf0\xd2\xa5\x8b\x2b\xa6\xcd\x38\ \xfb\xda\xcf\x4c\x40\x5e\xfe\xc8\x59\xe7\x9e\x3b\x77\x71\x63\x7d\ \x1d\x36\x6f\xd9\xf2\x7a\x1c\x38\x16\x0c\x4d\x93\xdf\xbd\xff\x37\ \xba\x33\x06\x9b\xb5\xee\x26\x22\x86\x69\x7a\x60\xdb\x80\xdf\xdf\ \xcd\xcc\x1a\x3e\xdf\x20\x31\x03\xb6\xed\xa1\x86\x86\x74\x1e\x12\ \x70\x72\x1a\x33\x73\x6c\x90\x39\xd2\x39\xd0\x60\x28\x66\xb9\x24\ \xf7\x02\x92\x44\x52\x02\x52\x12\x49\x31\x54\x4a\x40\x2a\x90\x34\ \x08\xd2\x30\x48\x1a\x06\xa4\xcb\x20\xe9\x72\x41\xba\xdd\x24\xbd\ \x3e\x25\x8f\x7d\x08\x35\x6f\xc9\x0a\x09\x4f\xc9\xa9\x63\x27\x8e\ \xef\xdf\xb0\x61\xfd\x89\xf3\x17\xce\x47\x51\x61\xe1\xad\x9f\x99\ \x80\x65\x17\x2e\xbd\x75\xec\xd8\x12\xb5\x63\xf3\x96\xde\x3b\xf7\ \xec\x9e\x13\x01\xf5\xd7\xf4\x1c\xba\x7b\x74\xc5\x68\x54\x6e\xad\ \xd3\xcd\x35\xed\xbb\x18\xdc\x45\xf1\x78\x08\xcc\xa0\x69\xd3\x0e\ \x10\x91\xc6\xd5\x57\x1f\x67\x8f\xa7\x1a\xcc\xe0\x81\x01\x0f\x11\ \x69\x22\x62\x10\x31\x13\xd9\x26\x51\x3f\x01\xa2\x24\xe2\x92\x63\ \xd7\x4c\xfc\x72\xee\xaa\x82\xc8\x84\x35\xa5\x5f\x12\x80\xe8\x8e\ \xb5\x4b\x09\x08\xc5\x2c\x14\xff\x77\x69\x10\x0b\xc3\x05\x61\xb8\ \x58\xb8\x5c\x10\xfe\x70\xab\x0c\x84\xdb\x24\x6b\x16\xc1\x20\x44\ \x63\xac\x26\x0a\xe0\xf0\xa3\x8f\x3e\xb6\x37\x23\x3d\x1d\x53\xa7\ \x96\x4f\x1d\x3d\xa6\xf4\xfc\xcf\x42\x40\xc6\xd4\x8a\xf2\xa5\x70\ \x1c\x98\x6f\xbf\xed\xaf\x00\xa6\xb0\xe1\x81\x9f\xf8\x8e\xeb\x9f\ \xbe\xe1\xd6\xfc\xa9\xc5\x72\xb7\x2a\x8c\xc6\xef\xb8\xb3\x1d\xd1\ \x41\x49\x00\xf3\xf2\xe5\xd5\x00\x34\xa4\xd4\x10\x62\x00\xcc\x18\ \xf2\xf6\x60\x80\x89\x99\x75\x7b\xfb\x80\xaa\xa8\x28\x77\xdf\x72\ \x4b\x08\xb9\xb9\x22\xae\x63\x5f\x97\x24\x55\xc4\x8a\xfc\xfa\x87\ \x47\xee\xcd\x08\x79\x43\x42\x12\x49\x31\x04\x39\x0c\x90\x94\x82\ \xa4\x52\x24\x95\x41\x92\xf3\xf3\x04\xe7\xe7\x0a\xb7\x9b\xa4\x6d\ \x6b\x69\x00\xf2\x9c\x45\x5f\x69\xdb\xb7\x7f\xff\xd1\xe3\xc7\x8f\ \x76\xcc\x9a\x35\x13\xa1\x50\xce\xf2\x33\x26\x20\x14\x2a\x58\x5a\ \x51\x5e\x9e\x53\x5d\x5d\x8d\x9c\x43\x47\x5c\x01\xe9\x06\x84\x3a\ \x2c\x72\x43\x50\x5e\xf7\xcf\x96\xb4\xed\x98\x2e\x5c\x10\xf4\xda\ \x6b\x13\xf5\x87\x87\xc0\xb6\x3d\x40\x00\xd8\xb2\x98\x88\x34\x29\ \x15\x21\x66\xa0\xb3\x33\x0b\x00\x63\x60\x40\xf0\x25\x97\x2c\xa0\ \x09\x13\xde\x13\x75\x75\x3b\xe5\x2b\xaf\xd4\xfd\xd7\xd7\x46\x3d\ \x0a\xa0\x4c\x92\x80\x14\x82\x5e\xaa\x7f\xe9\x59\xc1\x2c\x89\x59\ \x0a\x66\x29\x3f\x51\x66\x5d\x76\xd9\xd8\xbc\x05\x0b\xa6\x65\x3e\ \xf8\xef\xe9\x59\x2f\xff\x32\x30\x6d\x62\xf6\x3b\x73\xa7\x66\xd4\ \x2c\x5c\x54\xf4\x63\xb7\x87\x64\xe5\xe6\x5e\xd7\xfd\xcf\xfc\xaa\ \x07\x50\x75\xeb\xd7\x6f\xfc\x68\xd2\xc4\x09\x28\x28\xc8\x5f\x32\ \xa5\x62\x66\xea\x19\x11\x30\xa5\xbc\x7c\x61\x61\x61\x21\xaa\xab\ \x6a\x3a\xf3\xa3\x31\xcd\x5e\xff\xda\x7b\x1f\x6d\x3d\x97\xc6\x8e\ \x69\x81\x6d\xb9\xdd\x7b\xf7\xdc\xba\x30\x0f\x21\xe1\xd8\x93\x74\ \x5f\x2f\x74\x75\xf5\xe9\xa1\xa0\x07\x43\x9e\x3e\x0e\x00\xa8\xa9\ \x59\xc4\xf7\xdf\x3f\x81\x2e\xb8\xe0\x49\x54\x56\x3e\x41\x44\x93\ \x90\x1c\x4f\xec\x19\xe1\x5c\x2b\x20\x20\x21\x07\x04\x49\xd3\x62\ \x67\xc9\xd7\x9f\x5b\xb0\xc8\x37\x6a\xd4\x8f\xfd\x79\x79\xab\x03\ \xf9\xf9\x6f\xa4\x7c\xe1\x0b\x65\x19\x85\x85\xcf\x1a\xdb\xb6\xed\ \x76\x1f\x3a\xbc\x35\xfd\xc1\x07\xb7\x67\xff\xdb\x4f\xfe\x95\xb4\ \x9e\x0b\xa2\x1c\x15\x8b\xde\xbe\xe8\xaa\xf2\x2f\x46\x54\xba\x70\ \x05\xa1\xcb\x66\xfd\x43\xe7\xc1\x43\x47\x1a\xbd\x1e\x37\x46\x8c\ \x18\x51\xc2\xe0\xf1\x67\x42\x40\xea\xb8\x71\x63\xcf\xf2\x79\xdd\ \xa8\xab\xaf\xaf\xb9\xba\xf0\xac\x8a\xbb\xbe\xb5\xe6\x2b\x17\xce\ \xf1\xfb\xe9\xea\xab\x5e\x40\x22\x01\x1c\x3d\xf2\xa5\x0c\x17\x4f\ \x11\x59\x99\x93\x60\x18\xd0\xa6\xb9\x3e\x0a\xd4\xb2\x94\x16\x01\ \xc0\x65\x97\x3d\xcf\x5a\x03\xfd\xfd\x73\xf0\xf2\xcb\xaf\xe8\xce\ \xce\x39\x60\xb6\xe1\xf7\xef\x71\x2a\xca\x57\x20\x10\x58\xb3\xbd\ \xdc\x03\x25\x14\x66\xd5\x53\x22\x27\xa6\x5a\x95\x50\x28\x38\x70\ \xea\x35\x8a\x46\xff\x99\xb4\x9e\x0b\xc7\x39\x5f\xed\xdd\xbb\x9d\ \x2c\xeb\x72\x92\xd2\xcd\x4a\x02\x82\x46\x8a\x58\xf4\x36\x28\x09\ \x18\x46\x1f\x2b\xa5\x3d\x3d\x6d\x4f\x9f\x7d\xff\xf5\x13\x3e\x3a\ \x0a\xd7\xe5\xff\x78\x5b\x67\x67\x4f\xb8\x39\x1c\x09\xf7\x8f\x29\ \x19\x4d\x86\x32\xce\x3a\x13\x02\x8a\x0a\x0a\x0a\x0a\xe2\xf1\x38\ \xfa\xfa\x23\x4d\x65\x63\xa6\x24\x82\xee\xa0\x18\xe1\x8d\xa4\x89\ \x7f\xba\xfa\x23\x06\x0d\x70\xc2\x02\x7e\xfe\xe0\x85\xb2\xb4\x74\ \x24\x79\x7d\x70\x46\x8d\xda\x17\x06\x06\x4c\xa0\x09\x96\xc5\x74\ \xed\xb5\xf5\x18\x39\xf2\x37\x24\x04\x88\x99\x01\x1c\xd0\xe7\x9d\ \x77\xb1\xd5\xd8\x78\xb9\x7e\x6f\xf3\xf6\x59\xbf\x1a\xb3\x55\x92\ \x84\x24\x89\x37\x7e\x11\xcd\x38\xeb\x94\x53\x2c\x49\x02\x4a\x81\ \xdd\xee\x5a\x6b\x4c\xc9\xb7\xd8\xe3\x39\xce\x52\x82\xfd\xfe\xdd\ \xd6\xec\xd9\x97\x47\xbf\xf9\xcd\xa9\xec\x4f\xd9\xca\x52\x82\xa5\ \x44\x64\xf6\xdc\x6b\x1c\x9f\x7f\x07\x0b\x89\xec\xa3\xbb\xbe\x16\ \x1d\x84\x31\xed\xec\x0b\x62\x19\xfe\xb4\x48\x4f\x77\x77\x5f\x5e\ \x6e\x2e\x3c\x1e\xf7\xe4\x33\xd9\x0b\x14\x17\x16\x14\xa4\xc6\x62\ \x51\x98\x96\xee\x2c\x2c\x3f\x2f\xee\x09\x15\x8a\x40\x56\x20\x05\ \x60\xa2\x92\x92\x0d\x7c\xe8\xd0\x65\xbc\x7f\xdf\x15\xd0\x5a\x8a\ \x71\x63\x41\x93\x27\x47\x88\x48\x0d\x02\x31\x18\x46\x8b\x1b\xc8\ \xa4\xd7\x5f\x7f\x0c\xc0\x7f\x6a\x20\x6a\x11\x85\x87\x13\x1e\x14\ \x8b\x51\x5f\xa2\x6f\x89\x24\x89\xa2\x6e\x0e\x7b\xb5\x0a\x8e\x6b\ \x23\xde\x3a\x45\xd2\xdb\xe7\xf8\x9a\xbe\xff\xf0\xd1\xf9\x51\x3b\ \x4a\xfe\x95\x6b\x37\xa0\xaf\x4f\x99\x37\xde\xd8\xe3\x30\xc3\x22\ \x82\x9d\x99\x79\xbb\xf7\x97\xbf\x5c\x61\x8e\x2e\xd9\xdb\xf0\xf4\ \x2b\x07\x8b\xae\xb9\xf2\x51\xff\xde\x3d\xe7\xa9\xd8\xc0\xb5\x97\ \x7c\x73\x66\x73\xfc\xf2\x2b\x56\xde\xd6\xdb\xf9\xb5\xc1\x8f\x4e\ \x7a\xb2\x46\x95\xc0\xe3\xf1\x8c\x06\x80\x0b\x16\x5f\x44\x9b\x36\ \xac\xe5\x3f\xc9\x02\x48\xa8\x5c\xaf\xcf\x6b\x24\x12\x96\x36\x5c\ \xbe\x78\x7e\xd1\x58\xf8\xfc\x5e\xe5\x75\xc1\x07\x40\xf3\x98\xb1\ \x27\x88\x19\x94\x48\x04\x11\x8f\x07\xc8\xe3\xd1\xae\x59\xb3\x72\ \xfd\xcc\x7e\x62\x56\x09\xc0\x89\x03\xdd\x0c\x58\x88\xc5\x94\x0e\ \x87\x35\x62\x31\x83\x92\xe4\x2a\x78\x3c\x52\x90\x48\x57\x24\x91\ \x55\x52\x71\x97\xb3\x62\xc5\x92\xc5\xd9\x0b\xae\x54\x24\x39\xec\ \x17\x85\x2f\xd6\xbf\x1c\xf2\x29\x9f\x74\xae\xb8\x22\x6a\xdf\x78\ \x63\x18\xb1\x98\x01\x22\x25\x98\x55\xec\xe6\x9b\xfb\x5b\xf7\xed\ \x7d\xaa\xed\xc5\x57\x3e\x14\xf1\x98\x51\xfd\xd4\x6b\x07\x22\xa5\ \xe5\x5f\x67\x69\xc0\xdb\xdf\xf9\xbd\xdc\xe7\x1e\xdb\x97\xe7\xf6\ \x14\x39\x91\x08\x82\xc1\x00\x5c\x86\x91\x05\x00\x7f\xaa\xf2\x00\ \x20\xfc\xfe\x94\x0c\xb7\xc7\x0d\xcb\x4a\x58\xfe\x94\x54\x27\x27\ \x54\x40\x6e\x97\x52\x00\xdc\x00\x69\x9c\x3b\xef\x24\xbb\xdd\x6d\ \xd0\x5a\x42\x6b\x62\xad\x41\x86\xe1\x4a\x01\x0a\xfc\x44\x01\x10\ \x49\x87\x19\x71\xa2\xb0\xe3\xf3\x0d\x38\xa9\xa9\x0e\x79\x3c\x12\ \x80\x24\x40\x82\x48\x0a\x08\x8f\x24\x89\x14\x23\x25\xa1\x7f\xfe\ \xf3\xda\x13\xd7\x5c\x70\x5a\x92\x24\x09\x09\x43\x18\x12\x43\xfd\ \x00\x48\xf2\x7a\xc5\xf0\x35\x01\x92\x40\x12\x04\x09\x9f\x57\x10\ \x41\x1e\x7e\x7a\xcd\xba\x78\x76\xde\x33\x90\x52\x68\x12\x50\xc5\ \xa3\x3f\x88\xe7\xe6\x55\x19\x86\x01\xa5\x54\xfa\x1f\xdb\xe1\xfe\ \x51\x02\xbc\x1e\xaf\x4f\x90\x80\x20\x61\x07\x52\xd3\xd8\xe7\xf7\ \x2b\xa9\x48\x32\x43\x00\xac\x29\x3f\x3f\x86\x50\xe8\x03\x00\x20\ \x22\xc0\x30\xfa\xb9\xa0\xa0\x17\x80\x70\x33\x67\xf9\x92\x49\x4e\ \xa5\x01\x99\x60\xb6\x98\x59\x82\x48\x31\xb3\x02\xb3\xba\xeb\xd0\ \x0f\xa6\x3b\xec\x4c\x36\x84\x91\x28\x0b\x96\xb6\x82\x59\x5d\x3d\ \xe2\xca\x3e\x45\x0a\x52\x28\x3c\x55\xfb\xec\xb7\x31\xd4\xf7\xff\ \x01\x92\xa0\xa1\x92\x29\x59\xee\x78\x6e\xd7\x83\x6d\x65\xe7\xdd\ \xd4\xba\x70\xf9\xa5\x9d\xb7\x7d\xf7\x79\x77\x30\x35\x9e\x8c\x43\ \x20\xfe\xc8\x0e\xf7\x8f\x13\x10\x37\xe3\xda\xb2\x2c\x28\xc3\x50\ \x01\xbf\xdf\xe7\xf3\xba\xdd\x04\x92\x5a\x83\x00\xd2\xcc\xcc\x08\ \x85\x1a\x58\xeb\x64\x02\xcc\xe5\x6a\xc7\x9c\x39\x5d\x4c\x04\x10\ \x91\x02\x82\x5e\x20\x4d\x02\x2e\x10\x19\x20\x52\x00\x14\x11\x29\ \x26\x52\x8d\xd1\xa6\xc9\x52\x28\xa4\xbb\xd2\x77\x7d\x67\xc2\xed\ \x8d\x18\x6a\xcf\xf3\xe6\xbd\xaa\x84\x42\xbf\x15\xbe\xf2\x81\x93\ \x0f\x97\x82\x48\x0d\xff\xed\xe3\x3a\xfe\x1b\x60\x52\xc4\xa4\x78\ \x08\x3b\xbe\xfd\xec\xee\xa3\xdf\x7a\xa8\x26\x3d\xdd\xef\x0e\x04\ \x03\x86\xed\x38\x70\x6c\x3d\x14\x87\x7d\x0a\x02\x22\x91\xb0\x19\ \x8d\x46\xe1\x76\xbb\x95\xcf\xef\x4d\xf1\xb8\x84\x1f\x80\xd2\x8c\ \x8f\x77\x75\x58\xb6\x6c\xef\xc7\xff\xe1\xf5\xf6\x12\x11\xc0\x4c\ \x00\x88\x93\x94\xbb\xdd\x40\x0a\x31\x4b\x06\x04\x03\x32\xa1\x13\ \x0a\x80\xec\xb7\xc2\xe3\x25\x49\xb8\x85\x3b\x3a\x94\x05\x96\x04\ \xc8\x2f\x16\x2e\x7f\x49\x92\xd4\x12\x12\x9b\xda\x37\xdf\x00\x40\ \x0e\xd8\x51\x63\xb8\x0f\x0f\x01\x0c\xc9\x0c\xa9\x87\xc0\x1a\x52\ \x6b\x48\xcd\x10\x92\xe0\xf7\x79\xa5\x37\x18\x08\x7a\x07\x06\x06\ \x61\xd9\x76\x04\x80\xf5\xe9\x96\x41\x76\x22\x9d\x1d\x9d\x09\xb7\ \xdb\x2d\x03\x7e\x4f\xba\xc7\x48\x64\x82\x21\x5b\xa2\x5d\xb2\x35\ \xd6\xe6\x21\xc7\x26\x9a\x32\xa5\x17\x86\xd1\xc7\x00\xa0\xb5\x4a\ \xce\x06\xa2\xe4\x66\x97\x09\xcc\x82\x01\xba\xe7\xe8\x4f\xce\xb9\ \xff\xc4\x03\xd3\x19\x50\x86\x70\x49\x02\x54\x9f\xd5\xbf\x58\x91\ \x44\x40\xa5\xf4\xf2\xb0\x63\x04\xd4\x0d\x25\x5f\x69\x2e\xf2\x16\ \xbe\xa6\x84\x44\xd8\x0a\x5f\xf8\x6e\xcb\xfa\x3c\xbf\xf2\x89\x84\ \xb6\x0c\x06\x94\x06\xd4\xc7\xa5\x4e\x42\x6b\x28\xcd\xc9\xd2\xb1\ \x21\x7c\x6e\x64\xb8\x15\x05\x52\xd3\x82\xc1\xae\xae\x2e\x24\x12\ \x66\xd7\x99\xc4\x01\x7d\xcd\xcd\x2d\x51\xb7\xcb\x0d\xbf\xcf\x9d\ \xe9\xf7\x20\x77\xad\x73\x5f\xf9\x2d\x87\x6f\xfe\xd5\x8f\x4f\xdc\ \xff\x6d\x28\x83\x99\x19\x34\x66\xcc\x46\x10\x01\x25\x25\x7b\x99\ \x99\x38\x69\x01\x82\x89\xc4\xc3\xd5\x4f\x4e\xff\xf2\xde\x9b\x6f\ \x7e\xaf\x63\xeb\x13\x6b\x5a\xde\xfd\xf5\x4d\xfb\x6e\xbb\x86\x87\ \x14\x20\x20\x4d\x91\xc2\xe4\xd4\xd2\x03\x34\xd4\x36\x8c\x37\xe7\ \xbe\xf2\x50\x9a\x2b\xfd\x80\x24\x85\x87\xab\x1e\x79\xec\xb1\xaa\ \x27\xca\xa5\x30\x24\x03\x2a\xe1\x58\x86\x06\x14\x0f\x29\xac\x9d\ \x21\xc5\x1d\x28\xc7\x86\x32\x13\x40\xc0\x87\x5c\xb7\x81\xa0\xdf\ \xe7\x0b\xb6\x77\x74\xc2\xb2\xac\x16\x00\x58\xbc\xf4\x62\xfa\x34\ \x71\x40\x77\x55\x75\x55\xa7\xed\x38\x69\xc1\x80\x37\xcf\x92\x5d\ \xa5\xb5\xb4\xe5\xf6\x80\xe9\x51\xdd\x89\x9e\x9c\x98\x13\x93\xef\ \xb4\x6e\x1a\xdb\x7c\x63\xc9\xa9\x11\xfe\xf9\xdf\xbc\x24\x6f\x59\ \x8d\xd6\x8e\x14\x52\x61\x73\xc7\xf6\x9c\x87\xab\x9f\xf8\x69\xd4\ \x8e\x16\xc5\xb5\x05\x83\x92\x79\x89\xaa\x48\xcd\xed\x0d\x03\x8d\ \xab\x7b\x12\x3d\x2e\x45\x49\xa7\x7c\xef\xa4\xef\xef\x1d\xb4\x63\ \x2e\xaf\xf4\x68\x1e\x0a\x12\x18\xc0\xda\x79\x2b\xbf\xb1\x6c\xdb\ \x25\xaf\x98\xda\x1c\xb3\xaa\xe9\xad\x5f\x55\x76\xbf\xbf\xea\xca\ \xe2\xab\x7e\x33\x3f\x77\x71\x9b\x05\xc6\xb3\x55\x8f\x97\x1b\xda\ \x1f\xbf\x28\xf3\xba\x93\xb6\x0d\x24\x2c\x8b\x12\x96\xa1\x05\xc1\ \x9d\x96\x82\x22\xb7\xa4\x4c\x29\x65\x6a\x4d\x4d\x2d\x00\x1c\x06\ \x80\x0d\xeb\xde\xe6\x4f\x43\x40\x4f\x5d\x5d\x5d\x6b\x67\x77\xcf\ \xd8\xf4\xd4\x40\xc6\x56\xb3\xf2\x8b\x19\xae\x0c\x15\xb6\x22\x30\ \x1d\x1b\x37\x1f\xb8\xe3\xc1\x88\x1d\x29\xd2\xac\xa1\xa1\xd1\x15\ \xef\xbc\xe7\x86\x51\x5f\x3e\xd0\x14\x6d\xf6\x3f\x5a\xfd\xd4\xcf\ \x12\x3a\x51\x20\x85\x32\x15\x98\x97\xe5\x2e\xba\x7b\x7d\xeb\x86\ \xff\x00\x58\xac\x69\x7b\x77\xb2\x0b\x86\xad\x84\x01\x49\x22\xaa\ \x89\x0c\x45\x8a\x40\xc4\x60\x86\x4e\xfa\x11\x30\x11\x2a\xd2\xcb\ \x5f\x39\xd0\xfb\xe1\x9d\x0c\x46\xa7\xd9\x7d\xe9\x93\x55\x4f\xcc\ \x7f\xbd\xf1\xf5\x5d\x83\x76\x34\xd4\x67\x86\xcf\xd2\x9a\x11\x8d\ \x39\xff\xbc\x34\x78\xfd\x11\x76\x5c\xe8\x8c\x76\xd1\xa0\xaf\xb1\ \x28\xc5\x35\x2d\xd7\xad\x8c\xcc\x48\x24\xea\x6b\x3c\x7d\x1a\x86\ \x61\x1c\x3c\x93\x48\xb0\xad\xb6\xb6\xe6\xf8\x91\x23\x47\xcf\x9d\ \x3f\x6f\x4e\x5a\x7a\x47\x53\xfa\xc4\xd4\x71\x83\x75\xed\xe6\x33\ \x83\x66\xcb\xed\x2e\x11\x2d\x22\x12\xf0\x49\x6f\x73\xd4\x89\x16\ \xbc\xdd\xb2\xfe\x5e\x25\xdc\xdf\xdf\xd8\xb1\x65\x85\xc5\x76\x01\ \x91\xc4\x35\x23\x56\x7c\xe7\xe2\x11\x97\x9f\x20\x00\x5b\xda\xb7\ \xc6\x35\x3b\xbe\x83\xbd\x87\xcf\x4f\x35\x82\xad\x4a\x48\x10\xc8\ \x85\xa4\xd9\x93\x1e\xf2\xd2\xc3\x43\x94\xd0\x36\xfd\x64\xca\x8f\ \xd7\x3b\x44\xeb\x6f\xd9\x7b\xcb\x1d\xcd\xf1\x96\x0b\x19\x48\xeb\ \x34\x3b\x2f\x62\x06\x04\x24\x88\x80\xed\x5d\xef\xfc\x07\xc7\x7d\ \xdf\xdd\xd6\xbb\xfa\x8e\xde\x78\xff\xe8\x69\xe9\x53\x74\xa7\x93\ \x71\x30\xc7\x5f\xe8\x3f\x70\xe0\x30\xda\xda\xda\x9b\x53\xd3\x52\ \x0f\x9e\x89\x0f\x18\x18\x1c\x08\x9f\x78\x7f\xef\x3e\xd3\xe3\xf3\ \x51\x91\x4c\xef\xbf\xb6\xf8\x9a\x03\xd7\xf8\x1e\x58\xe5\xb1\xf3\ \xdf\x65\x22\xcc\xcb\x39\xf7\xa1\x67\x67\x3d\xfd\x8d\xa0\x91\x76\ \x1c\x82\xc4\x1b\xcd\x6f\xff\xac\x3f\x11\x2e\x67\x22\x4c\x49\x2d\ \x7b\x7e\x79\xd1\x65\xa7\x4c\x6d\x1b\x9a\x59\x65\xb9\xb3\x0e\x4a\ \xa1\xe0\x95\x5e\x33\x62\x0f\x14\x4b\x52\x08\xa8\xc0\x69\xcd\xac\ \x78\x28\x3e\x18\x2e\x35\x91\x12\x24\xa5\xc9\x8e\xa1\x99\xd5\x23\ \x33\xff\xeb\x91\x8b\xf2\x2f\xfe\x97\x5c\x6f\xfe\xb6\x7c\x6f\xd1\ \x86\x31\x29\xa5\x2f\xce\xcb\x5a\x72\xaf\x9b\x7c\x1d\x00\xf9\xb6\ \xf5\xbf\xf9\xb0\xe5\x58\xa3\x05\x04\x66\x64\x4d\x15\x2d\x66\xed\ \x34\x13\xf6\xc8\xfd\x07\x3e\x40\x2c\x16\xff\x60\xf5\xaa\x37\x3a\ \x3e\xb5\x05\xe4\xe5\x17\x86\x5b\x5b\x9a\x8e\xee\xde\xbd\xfb\x44\ \x43\x43\x53\x45\x49\x66\x21\x79\x52\xf2\xfd\xbe\x12\x4c\x49\x7c\ \xf4\xc0\xc3\x17\xcd\xe0\x5f\x65\xa6\x93\x88\x33\x8b\x8b\x0a\x2e\ \x79\x6e\x55\xf3\xca\x5b\x23\x56\xa4\xd8\xab\xbc\xad\xd3\x32\xa6\ \xfe\xf6\xb6\xb1\xb7\x6e\xb7\x99\x95\x33\x74\x44\x36\xd2\x5f\x7c\ \xac\xdf\xea\x3f\xbb\x2d\xde\x7e\x3e\x83\xa5\x41\x0a\x97\x15\x2e\ \x7f\x9c\x01\x43\x92\x44\x72\xa5\xe6\xe4\x79\x39\x27\xd7\x5a\x22\ \x39\x9c\x43\xc7\xd5\x63\xbe\x7a\xf4\x4a\xfe\xea\xd1\x84\x05\x98\ \x26\x10\x8f\x01\xf5\xfd\x8d\xbb\x1a\x13\x75\xcb\xa1\x49\x69\x47\ \xf7\x5c\x9b\x75\xd7\xcb\x17\x15\x95\x7c\xc1\xa2\xae\x91\xe1\xae\ \xb0\x7b\xdf\xfe\xfd\x70\xb4\xf3\xdb\x33\x49\x88\xc8\x81\x48\x98\ \x01\xb8\x62\xd1\xf8\x88\xc2\xa2\x11\xd3\xe7\x9e\x73\xb6\x3b\x1e\ \xeb\xb7\xd3\x32\x03\xde\x93\x0d\xd6\xe1\xa8\xc9\x94\x97\x2d\x0c\ \xd3\xd1\x62\x54\x60\x6c\xdf\xd2\xc2\x8b\x36\x9a\xda\xac\xb9\x61\ \xec\xd7\x5e\x9a\x9b\x73\x5e\x9d\xa5\x6d\xc1\x24\x05\x0b\x41\x00\ \x44\x73\xf4\xb4\xaf\x76\xa0\x76\x3e\x83\xbd\x00\x3c\x02\x02\xe3\ \x53\x27\x6c\x2f\x4d\x2d\xed\xd6\x44\x82\x01\xa1\x89\x84\x1e\x5a\ \x41\x34\x20\x1c\x90\x70\x08\xc2\x21\x12\x16\x20\xe2\xb6\x96\x66\ \x42\x4b\xc7\x92\x22\x1e\x87\x28\x73\x2d\x3c\x7c\xa0\x7f\xc7\xb8\ \x98\x15\x0f\x8d\xd3\x17\x3c\x78\x53\xd9\xf2\x09\xa5\xa1\x14\x4f\ \xd0\x08\x04\xb6\xbe\xb7\xdd\xf5\xde\xe6\xad\x9d\x83\x83\x83\x5f\ \x6f\x6f\x6d\x4e\x7c\x6a\x02\x86\xcf\x1e\x4c\x33\x96\x96\x48\xd8\ \xe5\xe7\x9e\x77\x6e\xba\xc7\x25\x8d\xb4\xd4\x40\x86\xcb\x2d\xa3\ \x87\x4e\x8a\xea\x40\x0a\x79\x7c\x1e\xa2\x84\x4d\xc2\x61\xd0\x84\ \xd4\xb2\x76\x97\xf2\x69\x0d\x08\x16\x92\x34\x41\x38\x60\x01\x86\ \xcc\xf2\xe4\x0c\xbc\xdf\xb5\x67\xb6\x66\x0e\x48\x92\x10\x24\x31\ \x21\x75\xe2\x8e\x71\xc1\x09\xdd\xc3\xc1\x8d\x03\x48\x0d\x48\x4d\ \x90\xf6\xd0\xb5\x4d\x90\x36\x43\x5a\x0e\xa4\x93\x20\x61\x25\x84\ \x30\xe3\x90\xf1\x18\x64\x3c\x4e\x62\x32\x2e\xdc\x35\x66\xe0\xb2\ \x17\x96\x8c\x9e\x36\xb1\x74\x04\x9d\xef\x33\xc8\x48\x44\xad\xcc\ \x5f\x3c\xf4\x08\xf5\xf5\xf7\x3f\xfc\xfe\x9e\xed\xeb\x96\x5e\x78\ \x09\xd5\x54\x9f\x3c\xa3\x9c\x60\x02\xc0\xb1\x43\x87\x0f\x6d\x59\ \xb5\x6a\x35\x02\xc1\x34\x5f\x22\xd2\xed\x19\x5b\x48\x97\x17\xe6\ \xd2\xc8\x63\xd5\xb0\xfa\xc2\x90\x31\x13\x32\x16\x83\x8a\xc5\x49\ \x9a\x26\x94\x69\x41\x99\x9a\x55\x82\x59\x59\x0c\x65\x11\x54\xa6\ \x37\x64\x05\x5c\x69\xad\x62\x28\xa2\xf5\x1b\x81\xd6\x73\x73\xe6\ \xd7\x39\x80\x72\x00\x65\x7f\xa2\xb4\x01\x65\xd3\x10\x18\x2a\x61\ \x43\x25\x4c\x28\x33\x31\x04\x13\xca\x8c\x43\x99\x31\x18\x7d\x61\ \x5b\xfb\xbd\xce\xc8\x31\x05\x74\x79\x7a\xf2\x2c\x39\x7b\xcd\xda\ \x77\x44\x5d\x7d\x43\x6f\x20\x25\xe5\x19\x00\x58\xf7\xce\x5b\x7c\ \x46\x29\x31\x00\x50\x86\xaa\xea\xef\xed\xda\xb4\x6a\xd5\x5b\xb5\ \x1f\x7c\x70\x10\x42\xc8\x74\x2f\xe2\xf9\x33\x27\xe2\xbb\x60\x4e\ \x39\x56\x4d\x3c\x30\x00\x39\x18\x25\x39\x18\x65\x35\x18\x83\x8a\ \xc6\xa0\x62\x71\xa8\xb8\x09\x95\xb0\xe1\x4a\x30\xb9\x12\x4c\x2e\ \xb7\xf2\x27\x94\x74\x41\x09\x17\x52\x5d\x19\x6d\x3e\x57\x3a\x2c\ \x90\xcb\x02\xb9\x12\x20\x57\x82\xc8\x65\xd1\x50\x9d\xc9\x65\x3a\ \xe4\x32\xe3\x49\xc4\x87\x10\x8b\x92\x2b\x16\x23\x57\x2c\x4a\x46\ \x38\x4c\x04\x47\xa5\x4c\x9b\xa0\xee\x1c\x91\xc5\xb9\x00\xd2\xeb\ \xeb\x1b\x7c\xaf\xbf\xf1\x26\x62\xf1\xd8\xcf\xd7\xac\x7e\xb3\xe1\ \x4c\xd3\xe2\xc3\x53\x00\x5a\x6b\x13\x80\x1d\x09\x47\x02\xd1\x58\ \x62\xe6\xc2\x85\x0b\x04\x3b\x36\x32\xd3\xbd\xe9\x6e\x1f\x8d\x38\ \x52\xcd\x3b\x1c\x87\x94\xc7\xc5\xca\x76\x88\x1c\x0d\xa1\x87\x60\ \x6b\x12\xcc\x48\x82\x20\xaa\xc3\xc7\xf3\xba\xcc\xae\x89\x24\x08\ \x0b\xf2\x96\xbc\x50\x14\x18\xd5\x9b\x9c\xe3\x10\x9a\x20\x1c\x86\ \xb0\x19\xc2\xd6\x10\xb6\x05\x61\x25\x92\x48\x58\x10\x89\x38\x44\ \xc2\x84\x88\xc7\x48\xc4\xa3\x90\x91\x08\xd0\xdd\x8b\xc4\xb4\x52\ \xdc\x31\x69\x04\x4f\xf4\x2a\x1a\x7e\x4f\x89\x8e\x1d\x3d\x56\xfb\ \xfe\x9e\xed\x5f\x06\x60\x7f\x66\x02\x86\xa4\x2b\x91\x88\xcb\x8e\ \x8e\x8e\x54\x12\x72\xfc\x9c\xb3\xe7\x80\x2d\x93\x72\xb2\x3c\x79\ \x7e\x1f\x15\xd5\x34\x62\x7f\xcc\x24\x56\x12\xd2\x71\x88\xec\x21\ \x68\x0d\x62\x4d\xe4\x68\x22\xad\x89\xd2\x5d\xd9\x9d\x5d\x66\x87\ \x9c\x99\x39\x6f\xe5\xdc\x9c\x45\x55\x09\xad\x85\x66\x41\xb6\x4e\ \xf6\xb7\xec\x21\x24\x92\x48\x58\x44\x71\x93\x28\x11\x27\x8a\xc7\ \x89\x62\x51\xa2\xe8\x20\x28\x12\x81\x13\x1d\x04\x57\x8c\xc7\x3f\ \x4f\x19\x85\x19\xa9\x6e\x02\x00\xf1\xfc\x0b\x2f\xd1\xca\x95\x6f\ \x41\x10\x6e\x6a\x6c\xac\x3f\xf2\x59\xce\x06\xe5\x1f\x68\xeb\x1e\ \x18\x88\x38\xbd\x7d\xe1\x89\x1e\x8f\x2f\xeb\xac\x19\xd3\x61\xc7\ \xa3\x08\x65\xba\x0b\xbd\x7e\x4c\xa8\x3d\xcd\xfb\x23\x83\x14\x95\ \x92\x95\xe3\x10\x39\x0e\x27\x77\xca\x3a\x79\xfa\xa9\x35\xe0\x17\ \x69\xf1\x8a\xd4\xd9\x47\x0b\xbd\xa3\xbb\x12\xb6\x43\x70\x64\xf2\ \x00\xd9\x06\x6c\x2b\x09\x2b\x91\x44\x22\x01\x98\xf1\xe4\x92\x67\ \xc6\x81\x78\x8c\x28\x16\x65\xee\xed\xa3\x78\x34\x0a\xdf\xd4\x09\ \xf8\x4e\xd9\x28\xae\xc8\xf0\x26\xc3\xfb\x77\xd7\x6d\xe0\x27\x9f\ \x7a\x86\x72\xb2\x32\x8e\xac\x7b\x77\xcd\x37\x3e\xeb\xe9\xf0\x1f\ \x22\x20\x06\xa0\xab\xa3\xbd\x2d\xd1\xd2\xd6\x31\x31\x25\x25\x90\ \x5a\x36\xb9\x94\x61\x27\x28\x94\xe9\xca\x4a\x4b\xa5\x05\x03\x51\ \x3e\xd5\xd4\x46\x8d\xcc\x70\x69\x4d\xe4\x38\x04\xc7\x21\xb2\xed\ \xe4\x08\x3b\xf6\x50\xdd\x22\xd2\xb6\xc0\x70\xdd\x4a\x10\x25\x4c\ \xa2\x44\x82\xc8\x34\x93\xf5\x78\x8c\xc8\x8c\x13\xc5\x62\x84\x78\ \x94\x68\x70\x00\xdc\xd9\x85\x48\x9a\x1f\x65\xd3\x26\xd2\x3d\x65\ \xc5\xc8\x1f\x1a\x79\xde\xbc\x65\x1b\x1e\x7f\xfc\xbf\x30\x73\xd6\ \x1c\x2a\xcc\xcb\x0a\x5d\x76\xe9\xc5\xe3\xde\x79\x77\xfd\x9b\x9f\ \x37\x01\x00\x10\x01\x38\xda\xd5\xd9\x39\xd8\xd6\xd1\x39\x45\x28\ \xc3\x57\x51\x51\x0e\xc9\x9a\xb3\x53\xa5\x2b\x3d\x8d\xe6\x29\x83\ \x33\xda\x3a\xe9\x78\x6f\x18\x03\x9a\x99\x98\x49\x68\x1b\xa4\x1d\ \xc0\xb2\x19\x8e\x43\xb0\x2d\x86\x6d\x11\x2c\x8b\x61\x25\x92\x65\ \x22\x41\x48\x98\x8c\x84\x49\x88\x9b\x0c\x33\x4e\x88\x47\x99\x07\ \x06\xc8\xea\xea\xe1\x98\x19\x27\x4f\x49\x21\xae\x2d\x1f\x4b\xd7\ \x8e\xcf\x67\x97\x57\x11\x03\xa0\x75\xeb\x37\xd2\xf3\xcf\xbf\x80\ \xe9\xd3\xcb\x51\x5e\x36\x09\xc1\xa0\x9f\x8f\x1e\x3d\x36\x65\xe5\ \x9b\xaf\x8f\x7a\xe0\xc1\x87\x56\x7d\xde\x04\x00\x40\xbb\xd6\x4e\ \x67\x7b\x5b\x6b\xb8\xbe\xa1\x69\x5c\x24\x32\x10\x2c\x2d\x9d\x00\ \xbf\xc7\x83\x80\xdb\xa1\x50\x86\x1c\x9d\x99\xce\x8b\x94\x02\x22\ \xfd\xd4\xd7\xd3\x87\x2e\xc7\x01\x6c\x0b\xca\xb2\x88\x12\x09\xc0\ \x4a\x50\xd2\xc4\x13\x94\x34\xf1\x18\x21\x1e\x07\xe2\x71\x42\x2c\ \x0a\x8a\xc7\x08\x03\x03\x30\x7b\x7a\x28\x0a\xcd\xb9\x85\xd9\xb4\ \x70\xca\x58\x7c\x6b\x72\x31\xc6\x15\xa6\x01\x92\x88\x1d\xc7\xc1\ \x4b\x2f\xbf\x8a\xb7\x56\xfd\x0e\xa1\x9c\x4c\x32\x0c\x83\x02\x29\ \x5e\x94\x8c\x1e\x45\x39\x39\x21\xda\xb7\x7f\x7f\xc5\x15\x97\x5d\ \x36\x71\xd5\x5b\x6f\xbf\xf1\xb9\xbd\x22\xf3\x09\x39\x91\x48\x98\ \x6f\x1c\x39\x7c\x60\x50\x6b\xe7\xd6\xba\xfa\x86\x31\xb7\xde\x7c\ \x23\xca\xa7\x4c\x66\x9f\x02\xc6\x87\xc8\x13\x4a\xc5\x8a\x8e\x3c\ \x7c\xa1\xb5\x9b\x8f\xb5\x76\xd1\xee\xee\x3e\x1c\xb7\x35\xe2\x20\ \xb0\x94\xac\xa5\x24\xa6\xe4\x20\x82\x99\x91\x9c\x32\x2c\xb4\x26\ \x92\x04\x4f\x5a\x80\xa7\x8d\x1f\x45\x67\xe7\x67\xd0\xa4\x50\x3a\ \xfb\xb3\x53\x08\x94\x4c\x34\x51\x5b\x5b\x3b\x3d\xf6\xc4\x53\xd8\ \xbf\x6f\x1f\xa6\x55\x94\xc1\xe3\x75\x73\x4b\x73\x0b\xb4\xe3\x20\ \x1c\x8e\x60\x52\x69\x29\xb7\xb4\xb4\xf0\xb1\xe3\xc7\xbf\xd4\xd9\ \xde\x64\x66\x87\x0a\x3f\xf5\x31\xf9\x9f\x9a\x38\x48\x07\x70\x61\ \x7e\x41\xf1\x55\x93\xcb\xca\x96\x5e\x74\xe1\x52\x71\xe5\x17\x2f\ \xe7\xdc\xdc\xd0\xd0\x3d\x34\xe2\x0e\x21\x1c\x23\xf4\x44\x18\xfd\ \x51\xd4\x46\x06\xe9\x94\x99\x40\x57\xc2\x46\x44\x6b\x24\x92\x49\ \x55\xb8\x0c\x89\x80\xcb\x8d\xac\x14\x0f\x8f\x0e\xfa\xa9\x24\x23\ \xc0\x48\xf5\x01\x29\xc6\xc7\x8f\xc3\xd1\x68\x0c\x6f\xaf\x5e\x4b\ \x6f\xae\x7c\x0b\xb5\xa7\x6a\x07\xd8\xb1\x5e\xbb\xed\xd6\x9b\x2f\ \x9e\x3e\x7d\x7a\xd6\x8e\x1d\x3b\xf9\xe4\xc9\x13\x94\x93\x9d\x8d\ \x89\x13\xc7\x73\x51\x61\x21\xfa\xc3\x61\xaa\xa9\xae\x85\xcf\xef\ \x7d\xf5\xab\xd7\xdf\xb4\xe2\xf3\xb4\x80\x61\xe9\x05\xb0\xb2\xa5\ \xb9\xbe\x3e\x1e\x8f\x9e\x6c\x6d\x6d\x59\xfe\xfe\xde\x7d\xc5\x17\ \x9c\xbf\x00\x4b\x97\x2c\x46\x5e\x5e\x2e\x3c\x12\xec\x49\x01\x72\ \x52\x08\x0e\x50\x62\xda\x28\x31\x2d\xc0\xb4\x19\x5a\x27\xd3\x1f\ \x82\x00\x43\x11\xdc\x0a\xf0\x18\x04\x45\xe0\x4f\x8e\xc1\xc0\xc0\ \x20\xbd\xb7\x79\x0b\xad\x5b\xb7\x11\x47\x8f\x1d\x43\x38\xdc\xf7\ \x7e\x6d\xf5\xc9\x1f\x0e\x0e\x0e\xac\x2f\x2b\x2b\x9b\x1b\x08\x04\ \x36\x8c\x1f\x3f\xce\x6b\xdb\x16\xd7\xd6\xd6\x02\x44\xe8\xe8\xe8\ \xc2\xd4\xa9\x53\xd8\xe5\x56\xdc\xd0\xd8\xf8\xa5\x53\x35\x1f\xc5\ \x66\x9f\xb3\xe0\x07\x1d\xed\xad\x1d\x7f\x4a\x7e\xf0\x4c\xde\xb3\ \xcb\x05\x30\x2b\x2b\x27\xf7\x8a\xfc\xbc\xc2\xb9\xa3\x47\x8f\x2e\ \x9e\x7e\xd6\x34\xcc\x9b\x7b\x0e\xc6\x8d\x1d\xc3\xa1\x50\x0e\x84\ \x10\xbf\x7f\xff\x4f\x26\x81\xf0\xc9\x7a\x6f\x6f\x1f\x4e\x9d\xaa\ \xc7\xae\xdd\xbb\x69\xdf\xbe\x03\xa8\x3d\x75\xca\x09\xf7\xf7\x55\ \xb5\xb6\x36\x3d\xde\xd3\xdd\xf5\xf2\x27\xbf\x23\xd8\xb7\x6f\xdf\ \x4c\xc3\x30\xb6\x4a\x29\xbd\xef\xbd\xf7\x1e\x57\x55\x55\x51\x7e\ \x5e\x2e\xc6\x8d\x1b\xcb\xa3\x8a\x47\xe2\xc8\xd1\x63\x74\xec\xf8\ \x09\xf4\xf7\x87\x61\x9a\xe6\x91\xd6\xd6\xd6\x5f\x6c\xda\xb4\xe9\ \xb9\x3f\xd7\xf7\x02\x45\x00\x66\xe7\xe6\x15\x2c\x09\xa6\x66\xcc\ \x0c\x85\x72\x26\xe6\xe5\xe5\xab\x92\xd1\xc5\x28\x1e\x59\x8c\x82\ \xc2\x7c\x84\x72\x72\x90\x9a\x1a\x84\x52\x0a\x20\x82\xe3\x38\x18\ \x18\x18\x44\x57\x67\x27\x9a\x9a\x5b\xd0\xd0\xd0\x88\x53\xa7\xea\ \xd0\xda\xd6\x8a\x9e\xee\xde\xfe\xe8\x60\xe4\x60\x4f\x4f\xd7\x1b\ \xed\xed\xad\xab\x01\xfc\x5f\xe1\xed\x87\x1f\x7e\x28\xa6\x4e\x9d\ \xaa\xab\xaa\xaa\xce\x75\x1c\x67\x5d\x5d\x5d\x9d\xf7\xe4\xc9\x93\ \x5c\x5d\x5d\x8d\x91\x23\x47\xa0\xa6\xa6\x1a\x27\x4f\x56\xd3\xdc\ \xb9\x73\x79\xd9\xb2\x65\xfa\x83\x0f\x3e\x90\x3b\x77\xee\x44\x7b\ \x7b\xfb\x9d\xdb\xb7\x6f\x7f\xe0\xcf\xf9\xc1\x44\x00\x40\x29\x80\ \xb2\x8c\xac\x9c\xa9\xa9\xc1\xf4\x69\x5e\x9f\x2f\x94\x12\x48\x49\ \x77\xbb\xdc\x1e\x97\xe1\x52\x86\xa1\x04\x09\x21\x6c\xdb\xd6\x09\ \xd3\xd4\x96\x63\xd9\xb1\x68\x7c\xd0\x34\xe3\x3d\xb1\x68\xf4\xe8\ \x40\xa4\x7f\x7f\x67\x67\xfb\x4e\x00\xfb\x87\x5e\xb1\xff\x1f\xa5\ \xb2\xb2\x72\x86\xd7\xeb\xdd\x26\x84\xf0\x6e\xdb\xb6\x8d\xb7\x6f\ \xdf\x4e\xab\x56\xad\x82\xd7\xeb\xe5\x3b\xee\xb8\x83\x2e\xbd\xf4\ \x52\x8e\x44\x22\xa8\xac\xac\xa4\x5d\xbb\x76\xa1\xb7\xb7\xf7\xee\ \xad\x5b\xb7\xde\xf7\x59\x7c\xc0\xff\x24\x11\x00\xef\x03\x78\xbf\ \xa7\xab\xc3\xdf\xd3\xd5\x91\x0d\x20\x37\x25\x10\x1c\x61\x28\x95\ \x03\x12\x39\x86\xcb\x08\x28\x65\x48\xdb\xb2\x07\x1c\xdb\xea\x26\ \x81\xb6\x81\xc1\xe8\xe9\x78\x74\xb0\x09\x40\xeb\x50\xf0\xf5\x27\ \xc9\xa1\x43\x87\x44\x79\x79\xf9\xbe\xea\xea\xea\x25\xcc\xbc\x2e\ \x27\x27\xc7\xa7\xb5\xe6\xe2\xe2\x62\x6a\x68\x68\xc0\xaf\x7f\xfd\ \x6b\x04\x83\x41\xcc\x9c\x39\x13\xd3\xa7\x4f\x67\xd3\x34\xa9\xb2\ \xb2\xf2\x27\xb3\x67\xcf\x8e\x57\x56\x56\x3e\xf0\xe7\xb0\x80\xbf\ \x9a\xd4\xd5\xd5\xcd\x5e\xbb\x76\xed\xb6\xfa\xfa\x7a\x57\x5d\x5d\ \x1d\x4e\x9c\x38\xc1\x55\x55\x55\x94\x9e\x9e\xce\x77\xdd\x75\x17\ \x4d\x99\x32\x85\xb5\xd6\xd8\xbb\x77\x2f\xed\xde\xbd\x1b\x7d\x7d\ \x7d\x77\x57\x56\x56\xde\xf7\xa7\x06\x42\x9f\x9b\x18\x86\x8b\x5c\ \x2e\x17\xd9\xb6\xfd\xb9\xdd\xf3\xd8\xb1\x63\x34\x6e\xdc\xb8\xa6\ \x19\x33\x66\x9c\xef\xf1\x78\x8a\x3d\x1e\x0f\x0b\x21\x60\xdb\x36\ \xb5\xb5\xb5\xe1\xd0\xa1\x43\x54\x54\x54\x84\xdc\xdc\x5c\xe4\xe4\ \xe4\xc0\x71\x1c\xea\xec\xec\x5c\x18\x0c\x06\x07\xdb\xda\xda\x76\ \xff\x45\x09\xd0\xda\xc1\xe7\xa9\x3c\x00\x3c\xf1\xc4\x13\x00\x80\ \x05\x0b\x16\xa4\x32\xf3\x32\xa5\x14\xf9\xfd\x7e\x1a\x7a\x6d\x07\ \xa7\x4f\x9f\xa6\x83\x07\x0f\xa2\xa0\xa0\x80\xb2\xb2\xb2\x90\x9b\ \x9b\x0b\x00\xd4\xdd\xdd\xbd\x38\x3d\x3d\xdd\x69\x6b\x6b\xdb\xfe\ \x17\x23\xe0\xcf\x29\xe7\x9f\x7f\xfe\x11\xc7\x71\x66\x38\x8e\x53\ \x22\xa5\x64\xb7\xdb\x8d\x4f\x5a\xc2\xf1\xe3\xc7\x29\x3f\x3f\x1f\ \x39\x39\x39\xc8\xca\xca\x82\x6d\xdb\xd4\xdd\xdd\xbd\xd0\xef\xf7\ \x0f\x74\x75\x75\xed\xf9\x9b\x27\x60\xcb\x96\x2d\xd6\xb6\x6d\xdb\ \x5e\x9c\x37\x6f\xde\x39\x8e\xe3\x94\x28\xa5\xe0\xf3\xf9\x68\x38\ \x16\x69\x6e\x6e\xa6\xc3\x87\x0f\x23\x37\x37\x97\x32\x32\x32\x90\ \x9d\x9d\x0d\x00\xd4\xd3\xd3\xb3\x38\x25\x25\x25\xf1\x37\x4f\xc0\ \xb0\xcc\x9d\x3b\xf7\x75\x00\xb3\x6c\xdb\x2e\x11\x42\xe0\x93\x3e\ \xa1\xb3\xb3\x13\x27\x4e\x9c\xa0\x50\x28\x84\xac\xac\x2c\xa4\xa5\ \xa5\x41\x4a\x49\xbd\xbd\xbd\x0b\xff\x6e\x08\xd8\xb9\x73\xa7\xbd\ \x73\xe7\xce\x17\x37\x6c\xd8\x70\xf6\xd0\x74\x20\xaf\xd7\xfb\xf1\ \x2a\xd7\xd6\xd6\x46\x27\x4e\x9c\x40\x76\x76\x36\xa5\xa5\xa5\x21\ \x23\x23\x03\x86\x61\x90\xc0\xdf\x91\x10\x11\xa7\xa4\xa4\x5c\x4a\ \x44\x9b\x98\x19\x2e\x97\x0b\xf9\xf9\xf9\x5c\x58\x58\x88\x82\x82\ \x02\x0c\x0c\x0c\xe0\xd5\x57\x5f\xc5\xf1\xe3\xc7\x61\x59\x16\xe5\ \xe7\xe7\xb3\xc4\xdf\x99\x6c\xdb\xb6\xcd\x7a\xfa\xe9\xa7\x5f\x3a\ \x70\xe0\xc0\xd9\xb6\x6d\x7f\x6c\x09\xc3\xab\x43\x47\x47\x07\xd5\ \xd4\xd4\x20\x23\x23\x83\x02\x81\x00\x04\xfe\x0e\xa5\xbc\xbc\x5c\ \x67\x64\x64\x5c\x4a\x44\x1b\x1c\xc7\x81\x61\x18\x08\x85\x42\x5c\ \x50\x50\x80\xdc\xdc\x5c\x0c\x0e\x0e\x62\xf5\xea\xd5\xa8\xae\xae\ \xfe\xdb\x8e\x04\xff\x7f\xf2\xfe\xfb\xef\x8b\xa7\x9e\x7a\xea\x5d\ \xd3\x34\x17\x3b\x8e\x83\x78\x3c\x8e\xe6\xe6\x66\xb4\xb4\xb4\x70\ \x4b\x4b\x0b\x05\x83\x41\x16\x7f\xcf\x04\xcc\x9a\x35\x4b\x67\x66\ \x66\x2e\x57\x4a\xbd\xc3\xcc\x50\x4a\x71\x56\x56\x16\x42\xa1\x10\ \x42\xa1\x10\x62\xb1\x18\xfe\x0f\xc8\x02\xa9\x53\xd8\x3e\xc3\xb8\ \x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x05\xd2\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x05\x99\x49\x44\x41\x54\x48\x89\x8d\x95\x5b\x6c\x1c\xd5\ \x19\xc7\x7f\xe7\xcc\xcc\xce\xce\xce\x7a\xbd\x8e\xbd\x6e\x7c\x8b\ \x13\x27\x76\xb0\x21\xe4\x52\x02\x54\x55\x6f\x54\x7d\x42\x6a\x14\ \x54\x01\x0a\xd0\x36\x55\x68\x91\xa8\xaa\xd2\x87\x2a\x6d\x55\x94\ \x52\x5a\x10\x52\x51\x0b\x15\x0f\x41\x45\x40\xd5\x02\x45\xa9\x0a\ \xbc\xf4\xa5\xaa\x54\x4a\x1b\x21\x51\x07\x95\xe0\x4b\x6a\x67\x37\ \xce\x3a\xbe\x7b\x6d\xaf\x77\xe7\x7a\x4e\x1f\xc6\xb1\x63\x8a\xa3\ \x8e\xf4\xd7\x39\x33\xf3\x7d\xff\xdf\x77\x66\x74\xbe\x23\xb4\xd6\ \x5c\xef\xb2\xc4\xbd\x36\xa4\x06\x52\xe9\x4c\x7f\xca\x75\x5a\x11\ \x42\x06\xab\xf5\xd9\xa0\x5e\x1b\x02\xff\x7c\xa8\x5f\xad\x5f\x2f\ \x5f\x6c\x05\x48\x89\x63\x1d\xf9\xce\xae\x13\xfb\xef\x38\x7c\xf4\ \xd6\x5b\xfb\xfa\x77\xed\x2a\xa4\x72\x39\x17\x21\x60\x79\xb9\x46\ \xb1\x38\x1b\xbd\x7b\x76\x74\x74\xf0\xaf\xef\xbd\xb1\x38\x51\x3c\ \x1d\xea\xdf\x17\xff\x6f\x40\x2e\xff\xf0\x83\x5f\x78\xe0\xcb\xa7\ \xee\xfa\xca\xa7\xdb\x7b\x3b\xb3\x58\x02\x54\x04\x57\x43\x85\x00\ \xc3\x84\x50\xc1\xd8\xe4\x2a\x67\xce\xfc\x63\xf6\x2f\x2f\xbf\xf9\ \x78\x50\x99\x7b\xd6\xd3\xaf\xe8\x2d\x01\x69\x71\xaf\xb5\xad\x77\ \xef\xd3\x5f\xfb\xd1\x89\x6f\x7f\xe6\x50\x17\xca\x83\x20\xdc\x08\ \x8e\x62\xd0\x80\x65\x24\x10\x01\xa4\x2c\x90\x29\x78\xfb\x5f\x13\ \xbc\xf8\xe4\x0b\x2f\xce\x8f\x0c\x3d\xe4\xe9\x57\xfd\x8f\x05\x74\ \xf4\x3d\xfa\xab\xe3\x3f\x7d\xe4\x3b\x37\xb4\x37\x51\x5d\x49\x9e\ \x49\x91\x8c\x4a\x43\x77\x2b\xd8\x16\x14\xa7\x13\x98\x10\xc9\xaa\ \x84\x80\x4c\x06\x46\xca\x8b\xfc\xe6\xd4\x33\x2f\x2f\x8c\x0e\x1f\ \xaf\xeb\x57\xd4\x26\x40\xbe\xe9\xe1\xaf\xde\xfd\xf8\xc9\x97\xfa\ \x76\x74\x51\x5d\x52\x08\x29\xd6\xcd\xc3\x18\x3e\xbf\x4f\x70\xc7\ \xfe\xe4\x7e\xa4\x0c\xaf\xbf\xbd\x56\x21\x1a\x0d\x68\x05\x8e\x2b\ \x18\x29\x5d\xe6\xf5\x9f\x3c\xf5\x48\x65\xfe\x99\x5f\x02\x98\x00\ \x8e\x38\x56\xb8\xed\x1b\xf7\xff\xbc\xa5\xb9\x95\xd2\xc5\x79\x90\ \x02\x21\xd6\x84\x20\xd6\x82\xde\xf6\x2c\x20\x01\xe8\x6d\x83\x30\ \xa8\x52\xa9\xaa\xb5\x22\x34\x5a\x6b\xf4\x22\x34\x37\xb5\xb0\xff\ \xc8\x9d\x8f\x3a\xe2\xbe\x37\xea\xfa\x77\x17\x4d\x80\xc6\xce\xae\ \xe3\xdd\x07\xf6\x77\x4c\x5c\x98\x20\x0c\x22\xa4\x21\x91\x32\x91\ \x10\x82\x20\xd4\xbc\x37\xac\xe8\x2a\xe4\x01\x18\x2a\xd6\xb9\x74\ \x79\x1e\x7d\xd5\x78\x4d\x4a\x29\xe4\x82\xa4\xb3\x7f\x6f\xd3\xc8\ \x8e\x9d\xdf\x04\x7e\x20\xd2\xdc\x63\x0d\xdc\x75\xf4\x9f\x3b\x0e\ \x1c\xfa\x64\x65\x62\x12\xc3\x34\x90\x52\x62\x18\xc6\x3a\x40\x08\ \x81\x46\xf0\xa9\x9b\x72\x34\x64\x4c\xfe\xfe\xfe\x12\x35\x3f\x46\ \x0a\x36\x99\x2b\xa5\x88\xa3\x08\x27\x9f\xa3\xf4\xc1\x87\x63\x17\ \xde\x7a\xf3\x80\x69\x1a\x4e\x8f\xdd\xda\x36\x70\x69\xac\x44\xbd\ \xb2\x80\x65\x59\x9b\x00\x52\x4a\x40\x90\xb2\x0c\xde\x19\xac\x02\ \xe0\xfb\x11\x35\x3f\x42\xc0\x26\x73\xa5\x14\x51\x14\x21\x2b\x15\ \xac\x96\xc2\x2e\xd3\xce\xde\x60\x5a\x8d\xd9\xbe\xc8\x4c\x3b\xb3\ \xd3\x93\xc4\xf5\x15\xac\x94\xb5\xc9\x5c\x4a\x49\xdd\x57\xfc\xf0\ \xc1\x83\xdc\x7f\xe7\x1e\x04\xf0\xfe\xe8\x02\x27\x4e\xfd\x8d\x58\ \x69\x04\xd7\x54\x1f\xc7\xc4\x71\x8c\xd2\x9a\xc6\xf6\x4e\x69\xe5\ \xb3\x7b\x4c\xb3\xc1\x6d\xf5\xaa\xb3\x2c\x4f\x0d\x21\xad\x1c\x91\ \xca\x61\x18\x0a\xc3\x90\x18\x52\x20\xa4\xc0\xf3\x62\x5a\x9b\x6c\ \x32\x69\x13\x80\xed\x2d\x69\xe2\x28\xc0\xf3\x23\x84\x60\x0d\xa0\ \x89\x95\x22\x8e\x13\x39\x91\xc6\xc8\x38\x6d\xa6\x30\x4d\x1d\xaf\ \xce\x53\x2d\xbe\x85\x12\x69\xcc\x86\x1e\xcc\x4c\x01\xd3\xce\x63\ \xd9\x59\x0c\x2b\x8d\x17\x68\x7c\x7f\x63\xc7\x05\x81\xa2\x56\xf7\ \xf0\xfd\x08\x50\xa8\x38\x26\x8e\x02\xc2\xa0\x4a\xe4\x55\x88\x6a\ \x33\x38\xae\x8f\x36\x4d\xcc\x28\x8e\x66\x0c\x3b\x87\x99\x29\xe0\ \x2f\xcf\x10\xae\x14\x09\x6b\xd3\x20\xb3\x60\xb9\x08\x33\x0b\xbe\ \xa4\x5e\xbb\x7d\x1d\x10\x47\x01\xb3\x93\xe3\x04\x5e\x1d\x08\xd1\ \x51\x0d\x15\xad\x40\xb8\x0c\x41\x05\x94\x87\xe4\x20\x4a\xeb\x2b\ \x66\x10\xf8\xc3\x86\xed\xae\xa6\xf3\xbb\x5c\xbf\x56\x03\xab\x01\ \xa4\x0d\xc2\x06\x24\x3a\x0e\x20\x50\x68\xb5\xb1\x02\xad\x63\x42\ \xaf\x42\xec\x79\x20\x62\xd0\x7e\xd2\xac\x84\x01\x46\x1a\xcb\x6d\ \xc1\x6e\x6c\x8f\x17\xc2\xa9\x0b\x32\x08\xfd\x8b\x91\x5f\x3b\xdf\ \xd8\x7d\x00\x4c\x17\x64\x1a\x0c\x37\x99\x1b\x2e\x98\xd9\x64\x14\ \xe6\x35\x1d\x4c\x22\x0c\x07\xcc\x4c\xa2\xf5\xb8\x0c\x48\x87\xec\ \xf6\x7e\x54\xcc\x78\xe8\xd7\x87\xa5\x3f\xf3\x5c\x3c\x3b\x3e\xfa\ \x5a\x73\xcf\x3e\xec\xfc\x4e\x20\x05\xd2\x49\x64\x38\x20\x33\x6b\ \xe0\x6b\x00\xc8\xc4\x54\xba\xc9\x7b\x63\x2d\x5e\xa4\x11\x76\x13\ \xdb\x7a\x6f\x61\x65\x6e\xfa\x0f\xf5\x2b\xcf\xae\x4a\x80\xca\xd4\ \xd4\x4b\x1a\xbf\xb4\xfd\xa6\x2f\x26\x9f\x48\xa4\x92\x24\x23\x03\ \xa6\x03\x66\x0a\x43\x1a\x1b\xf6\x52\x20\x4c\x0b\x4c\x7b\xc3\x5c\ \xda\x20\x52\x6c\xeb\x39\x4c\xca\x6d\x98\x5d\x9a\x2a\x9f\xe6\x6a\ \x73\xf1\xc6\x7e\x31\x5f\x3a\xf7\xee\xc9\xb6\x81\x7e\x5a\xf6\xdc\ \x9e\x00\xb0\x10\x46\x2a\xd9\x68\x42\x12\x84\x6a\x1d\xa0\x94\x4e\ \x52\xa5\x4c\x40\xd2\x06\x6d\x92\xdd\xde\x47\xdb\xcd\x87\x99\xfe\ \xcf\x87\x3f\xae\x8f\x3c\x75\xe9\x7f\xdb\xf5\xd1\xe7\x9f\xe8\xda\ \xf7\xb9\x93\x63\x67\x07\x99\x2f\x8d\xa0\xb5\xc2\x4a\xa5\x70\xdd\ \x2c\x03\x7d\x1d\x1c\x1a\x68\x47\x48\x41\xb1\xbc\xc8\xd9\xc1\x12\ \xd5\x95\x65\x3c\xcf\x43\x6b\x4d\x43\x73\x1b\xdd\xb7\x1c\x64\xa1\ \x7c\xfe\x74\xf9\xcc\xd7\xbf\xb5\xfe\xbb\x3e\x7a\xa2\x75\xdc\xf3\ \xc2\x13\x5d\x37\x7e\xf6\xe4\xdc\x85\x2b\xcc\x8c\xfe\x1b\xc7\x12\ \xb4\xb6\x16\x70\x1b\x1a\xb1\x2c\x07\x29\x25\x51\xe4\xe3\xd5\xab\ \xcc\xcf\xcd\x51\x59\x5e\x25\xdb\xbe\x93\xc2\xde\x6e\xa6\x4b\xe7\ \x9e\x9b\x19\x1a\xfe\x6e\x74\xee\x67\xe1\x96\x00\x80\xa6\x23\xbf\ \x3e\xd6\x7d\xf3\x6d\x8f\x65\xad\xe6\xdd\x19\xcf\xa3\xc1\x50\xe4\ \x5d\x17\xd7\x75\x31\xa4\xc4\xf3\x3d\x96\xaa\xab\x2c\xf9\x11\x4b\ \x86\x49\x25\xa8\x5c\x2e\x8f\x0e\x3e\xb6\xf8\xc7\x87\x9e\xff\xa8\ \xd7\x96\x87\xbe\xf1\xa5\x27\x0b\xcd\x3b\x3a\xef\x6b\xef\xde\x7d\ \xac\xbb\xbd\xf3\xc6\xb6\x5c\x2e\xd3\x9a\x73\x30\x04\xcc\xae\xf8\ \x94\x2b\x4b\xf5\xe2\x64\x79\xa4\x3c\x31\xfe\xda\xc2\xc4\xc4\x6f\ \xa3\x3f\x7f\xbf\xfc\x71\x3e\x5b\x02\xd6\x03\x8e\x3c\x6d\x8a\xac\ \xb3\xdb\x72\xdd\x1e\x2b\x6d\x7f\x02\x21\x44\xe8\xf9\xd3\xe1\xea\ \xea\xb8\xae\xd6\xc6\xf4\x9f\xbe\x17\x5e\x2f\xff\xbf\x98\x6a\x9d\ \xc8\xca\xd8\x53\x00\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ \x82\ \x00\x00\x08\x10\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x06\x62\x4b\x47\x44\x00\x00\x00\x00\x00\x00\xf9\x43\ \xbb\x7f\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x00\x48\x00\x00\ \x00\x48\x00\x46\xc9\x6b\x3e\x00\x00\x00\x09\x76\x70\x41\x67\x00\ \x00\x00\x18\x00\x00\x00\x18\x00\x78\x4c\xa5\xa6\x00\x00\x06\x41\ \x49\x44\x41\x54\x48\xc7\x6d\x95\x5b\x6c\x5c\x47\x19\xc7\x7f\x33\ \xe7\xec\x9e\xb3\xbb\xdd\xe3\xcb\x5e\xec\xc4\x5e\xa7\x76\x42\x2f\ \x89\x41\xb9\x92\x92\xb4\x69\x14\x05\x25\xa1\x69\xea\x42\x49\x89\ \x08\x08\x0a\x12\xaa\x10\xe1\x0d\xc2\x0b\x12\xea\x23\xbc\x51\x51\ \x44\x1e\x68\x23\x28\x05\x5e\x80\xe2\xa4\x26\x6e\x50\x1a\x27\x69\ \x1c\x42\x2a\xdc\x2a\x17\x3b\xe9\xc6\x89\xbd\x5e\x5f\xb2\x6b\xef\ \xc5\xbb\x7b\xce\x99\xe1\x61\xd7\x4e\x28\x1d\x69\xe6\x61\xf4\xe9\ \xff\x9b\xf9\x7f\x33\xdf\x27\xb4\xd6\xdc\xcb\xe5\x28\x15\x4b\x68\ \xad\xc9\x4c\x65\x70\xa2\x0e\xae\xeb\x12\x0e\x87\x5b\x6b\xb5\xda\ \x13\x4a\xe9\xcf\x06\x02\x81\xc7\x4c\x53\xb6\x21\x84\x50\xbe\xca\ \xbb\xae\x3b\xea\xf9\xde\x47\xc1\xa0\xfd\x7e\xad\xba\x78\x5b\x21\ \x98\x5f\x58\x20\x99\x48\xa2\x7d\x45\x34\xea\x90\x4a\xad\xc0\xe4\ \xd3\xc7\x13\xc0\xf7\x80\xfd\xed\xed\x6d\x71\xc7\x71\x30\x0c\xe3\ \x7f\x02\x94\x52\x94\x4a\x45\x72\xb9\xfc\x62\xad\xba\x78\x06\xf8\ \x35\xf0\xd7\x4f\x0a\x7d\x12\x10\x01\x7e\x5e\xa9\x56\x5e\x5e\xd3\ \xd3\x43\x38\x12\xc1\xf7\x7c\x5c\xd7\x65\xb1\x56\x03\xa5\xea\x51\ \x12\x4c\x24\x96\x1d\x22\xd5\xe9\x84\xda\xdb\x6b\x7b\xd3\xe9\xf4\ \xde\x79\x18\x04\x5e\x06\xc6\x3e\x0d\xd0\x3a\x3a\x3a\x7a\xc2\x69\ \x72\xb6\xa6\x52\x29\x72\x0b\x05\xee\xe5\xf3\x08\x0d\x5a\x00\x68\ \x84\x96\xf7\xa3\x05\x68\x34\x42\x08\x04\x82\x58\x2c\x86\x61\x98\ \xbb\xaf\xdd\xb8\x71\xbe\xe7\xe1\x9e\x7d\xc0\xe5\x07\x01\x62\xec\ \xe6\xd8\x6f\xab\xb5\xca\xd6\x68\x34\xc5\xc4\xc4\x44\x7d\x53\x83\ \x16\x02\x21\xea\x8a\xc2\x00\x54\xfd\x06\x28\xd0\xba\x0e\xd6\x08\ \x64\x1e\x02\xc1\x00\x89\x58\x2c\x31\x3a\x76\xe3\x2f\x1b\x37\x6c\ \xde\x08\xcc\x08\xad\x35\x3f\xfa\xf1\xd1\x5d\x9b\x36\x6d\x7a\xb7\ \x6b\xd5\x2a\x3c\xd7\xad\xbb\x20\xea\x8b\xd4\x26\x5a\x68\x84\x14\ \x9f\x9a\x2c\xad\x34\x42\x2b\xb4\xd0\x80\x20\x14\x0a\x73\x3b\x9d\ \xe6\xea\xb5\xab\x3f\xfd\xc9\xd1\xa3\xaf\x98\x00\x53\x99\xcc\x97\ \x43\xe1\x10\x85\x42\x01\xdf\x75\xd1\x52\x22\x05\x48\x69\x22\x05\ \x75\x1b\x84\x00\x69\x80\xbe\x6f\x11\xca\x47\x6b\x8d\xd6\x1a\xa5\ \x41\x0b\x45\xa5\x5a\x25\xea\x38\xb8\xae\xdb\x07\xd4\x01\x89\x44\ \xa2\xa5\x54\x2c\xa1\x7c\x85\xeb\xba\x48\x21\x91\xa6\x44\x4a\x89\ \x10\x06\xd2\x14\x48\x6d\x20\x84\xae\x0b\xd7\x9d\xa9\x0b\x0b\x8d\ \xf2\x34\x1a\x1f\xed\x81\x6b\x9a\x78\xbe\x8b\xe3\x38\xce\x72\x0e\ \xb2\xd3\xd9\xa9\xb9\x7b\x73\x38\x4d\x2d\x28\xdf\xc3\x30\x4c\x4c\ \xd3\x40\x4a\x89\x94\x06\xd2\x15\x48\x21\xff\xcf\x26\xad\x34\x4a\ \x2b\x94\xd2\x28\xe5\xa3\xb4\x22\x88\xc5\xf4\xd4\x14\xb3\xb3\xb3\ \xb3\x8d\x07\x07\x52\xc8\x40\xaa\xb3\x8b\x74\xfa\x16\x00\x55\xb7\ \x4a\xb5\x56\xc3\xf5\x3c\x94\xe7\xe2\x79\x1e\x9e\x76\xf1\x5c\x0f\ \xcf\x6f\x4c\xb7\xb1\xe7\x79\x78\x9e\x8b\xe7\xfb\x28\x05\xb3\x33\ \x33\x18\x42\xd0\xdc\xdc\x62\x2c\x03\x9a\x9a\x9a\x92\x2b\x56\x76\ \x20\x81\x42\xb1\x48\x53\xb4\x85\x90\x6d\x63\xdb\x01\x4c\xcb\x22\ \x18\xb4\x08\x06\x42\x04\x2d\x0b\xcb\x0a\x61\x59\x21\x82\x21\x1b\ \x2b\x10\xc2\xb2\x2c\x6c\xdb\x26\xfa\x50\x94\xa0\x69\x30\x7e\xfb\ \x36\x6b\x7b\x7b\x09\x47\x22\xb1\x65\x8b\x4a\xa5\xe2\xdc\xc5\xe1\ \x61\x1e\x7f\x6c\x1d\x77\xc6\x3f\x26\x9b\x9d\xa4\xab\xeb\x61\x2c\ \x3b\x58\x7f\x25\x12\x04\x02\xb9\x94\xec\xa5\x1c\x08\x81\x61\x18\ \x08\x29\xc8\x4c\x4c\x90\xbe\x9d\x66\xf3\xa6\xcd\xfc\xe7\xc3\x0f\ \x99\x9d\x99\xc9\x2f\x03\x2a\xd5\x9a\xf7\xc8\x9a\xd5\x9c\x18\x18\ \xe0\x0b\x9b\xb7\x52\x2c\xe5\xb8\x9b\x1e\x23\x18\x89\x12\x8f\xc5\ \x70\x1c\x07\x3b\x1c\xc6\x30\x4c\x8c\xc6\x5f\xab\xd5\x3c\x8a\xc5\ \x02\x73\x53\x73\xcc\xdd\xcb\x22\x85\xa4\xc9\x69\xe1\xea\xf5\x51\ \x92\x6d\x71\xec\x90\xed\x2f\x03\x9a\x9b\x9b\xdb\x56\x75\x77\xb3\ \xaa\xb3\x83\x33\xe7\xde\xa3\x5a\x71\x59\xfb\xf8\x23\x3c\xba\x36\ \x45\xb9\x58\xe6\xa3\x91\x11\x0c\x53\x12\x89\x44\x30\x84\xa4\x5c\ \x59\xa4\x5c\x5e\x24\x91\x4c\xd2\x16\x4b\xb0\x50\xc8\x33\x34\x74\ \x9e\x70\xe4\x21\x5a\x5b\x1c\x9e\xfa\x4a\x1f\xa7\x06\x07\xef\x5b\ \xa4\x95\x5f\x18\x1a\x3a\xc7\x86\xf5\xeb\xe9\xec\x68\xe7\xcc\xd0\ \x05\xde\x19\xf8\x07\x53\xd9\x69\x9e\xf9\xd2\x33\x7c\xfd\xf0\x0e\ \xee\xe5\xf3\x14\xe6\x17\xf0\x7d\x45\x38\x1c\x26\x99\x8c\x31\x71\ \xf7\x2e\x03\x83\xa7\x39\x37\x34\x44\x73\x4b\x33\x1b\x37\xf4\xf2\ \xb9\x75\xbd\x0c\x9d\xbf\x40\xb9\x54\x2c\x2f\x03\xc6\xc7\xef\x4c\ \x1e\x7c\xf1\x6b\xf4\x9f\x1c\xe0\x8b\xbb\x76\x71\xe8\xe0\x57\xc9\ \x66\xb3\x9c\xbf\xf0\x3e\x6f\xfd\xe9\x4d\xce\x9e\x5d\x89\x65\x85\ \x29\x2e\x96\x31\x05\x04\x6d\x1b\x69\x40\x66\x32\x0b\x28\x9e\xef\ \xdb\xcf\xea\xd5\x9f\x61\x7a\x66\x96\x33\x17\x86\xe9\x58\xd1\xc6\ \xc2\xfc\xfc\xd4\x32\xe0\xca\x95\x7f\x5f\x6f\x69\x69\xa5\xa3\xa3\ \x8d\xbf\xf5\xff\x9d\x4a\xb9\xc2\xbe\x7d\x7b\xf8\xe1\x91\x23\x64\ \x32\x19\x26\x27\x27\xc9\xcf\xe7\x68\xaa\x84\x41\x40\xc0\x0c\xd0\ \xe4\x38\x6c\xdd\xb0\x91\x8e\xae\x14\x93\x99\x2c\xc7\x8f\xff\x0e\ \x69\x06\x88\xb7\x36\x71\xe8\xe0\x0b\x1c\x3b\x76\xec\xda\x32\xa0\ \xb7\xb7\x77\xe4\x57\xaf\xbd\x76\xf7\xc8\xf7\x7f\xd0\xd9\x9e\xfc\ \x80\x53\xa7\x4e\xf3\xcb\x57\x5f\x65\xc7\xce\x9d\xbc\xf0\x7c\x1f\ \x7b\xf6\xec\x25\x37\xbf\xc0\x62\xb9\x00\x4a\x60\x04\x4d\xe2\xb1\ \x38\x33\x33\x59\x06\x06\x06\xe9\x3f\x71\x12\xdb\x0a\xb2\x7b\xf7\ \x4e\x9e\xdc\xf6\x24\x6f\xbe\xf5\x47\x57\xc2\x7b\xf5\x82\xa9\x35\ \xa3\xa3\xa3\x6d\xaf\xbf\xf1\xc6\xb7\x6b\x35\xff\x95\xbe\x03\x7d\ \x66\x24\x6a\x71\xe5\xca\x15\x2e\x5e\xbc\x84\x34\x4d\x52\x1d\x1d\ \x58\xb6\x4d\xa9\x54\xae\x17\xb4\xb0\x8d\x21\x04\x99\x4c\x86\x62\ \xa9\xc4\xa3\x6b\xd6\xb0\x6d\xfb\x76\x4a\xe5\x12\x97\x2f\x7f\x40\ \x3a\x7d\xeb\x0f\xdf\xfc\xc6\xe1\x9f\x6d\xd9\xb2\xe5\xba\x68\x14\ \xab\x96\x42\xa1\xd0\xfd\x9b\x63\xc7\xbe\x3b\x76\x2b\xfd\x1d\x29\ \x8c\xe0\xe1\x43\x2f\xd2\xd9\xd9\xce\x9d\x89\x49\xc6\xc7\xc7\xc9\ \xe5\xf2\x54\xab\x35\x10\x0a\x2b\x68\x13\x8d\x46\xe9\x58\xb1\x92\ \xf6\x95\xed\x28\x4f\xf1\xfa\xf1\xdf\x33\x33\x37\xab\x53\x2b\xdb\ \xdf\x7d\xe9\xa5\x6f\xfd\xa2\xbb\xbb\x67\x44\x08\x31\x29\x94\x52\ \x02\x08\x02\x71\xd7\x75\x57\x0f\x0e\x0e\xee\x7f\xbb\xbf\xff\xd0\ \xe8\x8d\x9b\x1d\x4f\x3f\xbd\x43\x1c\x38\xf0\x2c\xdd\xdd\xdd\x2c\ \x2e\x56\x50\xca\xaf\xb7\x4b\x0d\xd1\x70\x88\xe9\x99\x39\x4e\xff\ \xf3\x34\xfd\x27\xdf\x21\x60\xca\x62\xdf\xb3\xfb\xdf\x3e\xf0\xdc\ \x73\x7f\x8e\x46\xa3\x23\xc0\x14\x50\x16\xaa\xde\x06\x05\x60\x01\ \xad\xc0\xaa\x62\xb1\xb8\xfe\xd2\xa5\xe1\xa7\x86\x2f\xfe\xeb\xf3\ \x55\xaf\xda\x99\x4c\x24\x83\x81\x80\x2d\x8a\xe5\x45\x40\x63\x87\ \x2c\x0c\xd0\xb3\x33\xb3\x9e\xef\x7b\x73\xeb\xd6\xad\x1d\xd9\xbe\ \x7d\xdb\xd9\x44\x22\x39\x0c\xdc\x04\xb2\x40\x19\xf0\x97\x00\x4b\ \x90\x40\xa3\x2f\x27\x80\x4e\x60\x75\x2e\x97\xeb\x99\x9e\x9e\xee\ \x2a\x16\x8b\x09\xd7\x75\xc3\x5a\x6b\x11\x08\x04\x2a\xa1\x50\x28\ \x1f\x8f\xc7\x27\xe2\xf1\xf8\xc7\x86\x61\xdc\x04\xd2\x0d\xe1\x05\ \xa0\xda\xe8\x7d\x3c\x08\x78\x10\x64\x36\x6c\x0b\x37\x80\x11\x20\ \xd4\x38\x80\x00\xbc\x86\x48\xe9\x81\x59\x05\xdc\x25\xe1\xa5\xf1\ \x5f\x0f\xac\xd1\x7f\xa6\xa3\x79\x12\x00\x00\x00\x25\x74\x45\x58\ \x74\x63\x72\x65\x61\x74\x65\x2d\x64\x61\x74\x65\x00\x32\x30\x30\ \x39\x2d\x31\x31\x2d\x32\x38\x54\x31\x37\x3a\x31\x38\x3a\x32\x38\ \x2d\x30\x37\x3a\x30\x30\x31\x91\xb2\x2c\x00\x00\x00\x25\x74\x45\ \x58\x74\x64\x61\x74\x65\x3a\x63\x72\x65\x61\x74\x65\x00\x32\x30\ \x31\x30\x2d\x30\x31\x2d\x31\x31\x54\x30\x38\x3a\x34\x35\x3a\x31\ \x36\x2d\x30\x37\x3a\x30\x30\x6c\x52\x00\xee\x00\x00\x00\x25\x74\ \x45\x58\x74\x64\x61\x74\x65\x3a\x6d\x6f\x64\x69\x66\x79\x00\x32\ \x30\x31\x30\x2d\x30\x31\x2d\x31\x31\x54\x30\x38\x3a\x34\x35\x3a\ \x31\x36\x2d\x30\x37\x3a\x30\x30\x1d\x0f\xb8\x52\x00\x00\x00\x35\ \x74\x45\x58\x74\x4c\x69\x63\x65\x6e\x73\x65\x00\x68\x74\x74\x70\ \x3a\x2f\x2f\x63\x72\x65\x61\x74\x69\x76\x65\x63\x6f\x6d\x6d\x6f\ \x6e\x73\x2e\x6f\x72\x67\x2f\x6c\x69\x63\x65\x6e\x73\x65\x73\x2f\ \x4c\x47\x50\x4c\x2f\x32\x2e\x31\x2f\x3b\xc1\xb4\x18\x00\x00\x00\ \x25\x74\x45\x58\x74\x6d\x6f\x64\x69\x66\x79\x2d\x64\x61\x74\x65\ \x00\x32\x30\x30\x39\x2d\x31\x31\x2d\x32\x38\x54\x31\x34\x3a\x33\ \x32\x3a\x31\x34\x2d\x30\x37\x3a\x30\x30\xd5\x8b\xec\x49\x00\x00\ \x00\x16\x74\x45\x58\x74\x53\x6f\x75\x72\x63\x65\x00\x43\x72\x79\ \x73\x74\x61\x6c\x20\x50\x72\x6f\x6a\x65\x63\x74\xeb\xe3\xe4\x8b\ \x00\x00\x00\x27\x74\x45\x58\x74\x53\x6f\x75\x72\x63\x65\x5f\x55\ \x52\x4c\x00\x68\x74\x74\x70\x3a\x2f\x2f\x65\x76\x65\x72\x61\x6c\ \x64\x6f\x2e\x63\x6f\x6d\x2f\x63\x72\x79\x73\x74\x61\x6c\x2f\xa5\ \x91\x93\x5b\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x06\x10\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x05\xd7\x49\x44\x41\x54\x48\x89\x95\x95\x7b\x6c\x53\x55\ \x1c\xc7\xbf\xf7\xb6\xdd\xed\xbd\xb7\x5d\xf7\xe8\xb6\x96\x4d\xbb\ \x17\x43\xe6\xd8\x3a\x90\x6d\x56\x07\xc2\x00\x65\x31\x99\x46\x1e\ \x4e\x62\x14\x88\x46\x14\xe3\x73\x1a\xf0\x11\x1f\xf1\x1f\x1f\x51\ \x82\x4a\x88\xa8\x18\x45\x91\x44\x94\x69\x18\x51\xc1\x0d\x07\xc8\ \x6b\xb8\x6e\x0c\x36\xba\x51\xb6\x76\x5b\xb7\x6e\xeb\x7a\xfb\x6e\ \x6f\x7f\xfe\x41\x40\x90\xca\xf4\x97\x9c\xbf\xce\xf9\x7d\xbe\xe7\ \x77\xce\xef\x7c\x0f\x88\x08\xff\x75\x94\x01\x4c\xe5\xdc\xfb\x0c\ \x96\x9a\x75\x45\x0b\xee\x7d\xd1\x44\x44\xb8\xb3\xe1\x7b\xe6\x7a\ \x39\x0c\x11\xe1\x7a\xb1\xd2\x98\x51\x3c\xa7\xfc\xe6\x85\xb3\x66\ \xe6\x56\x79\xb9\xf4\x1c\xa1\xa4\x52\x08\x48\x13\xc3\xda\x1b\x0b\ \x6f\xfd\xfd\xc0\xe1\xcf\x7f\x6b\x3d\xf3\x1e\x67\x2c\x9c\x6c\xd9\ \xfd\x46\x28\x21\xe0\xdf\x94\x1f\x36\x19\xaa\x0e\x6d\x58\xf3\x6b\ \xf4\xe7\x6d\x71\x6a\xfb\x8e\xe8\xc4\xb7\xd4\xbb\xef\x1b\x8a\x07\ \xbd\x74\x29\x26\x25\x1f\xed\xfd\xec\x93\x43\x0f\x55\x54\xd7\x97\ \x70\x5a\x75\x22\x8e\x32\x91\xe8\xe6\x3b\xca\x5e\xde\xba\x71\xd9\ \xeb\x49\x3a\x8e\xc5\xf9\x63\xc0\x99\x18\x20\x13\x64\xc5\x34\x30\ \x0b\xea\x2e\xaf\x4b\xd6\x88\x58\x6a\xd6\x5b\xaa\x57\xcd\xb8\x75\ \x8b\x5e\xf5\x1e\x80\x86\x7f\xb2\xae\x39\xa2\x1d\x77\xcf\xdd\xbc\ \xaa\xf6\xa6\xf5\x18\xe9\x03\x9c\x23\xa0\x18\x10\x55\x89\x08\x33\ \x49\xb0\xe9\xcd\x30\x3e\xf1\x2a\x94\xbc\x06\xa2\x28\x82\xa7\x28\ \xf0\xd2\x22\x80\x97\x81\xec\x12\x7c\xda\x74\x6e\xcb\xda\x3d\x07\ \x1f\xbf\x92\xc7\x02\x40\xdd\x93\xdb\x18\x00\x78\xa7\x22\xff\xb9\ \x55\x8b\x4d\xeb\xe1\xe8\x06\x6c\x17\x10\xf1\x06\xe1\xf2\x01\x7d\ \x4e\x3f\xac\x67\x46\xd0\xde\x69\xa7\xc6\xc6\xbd\xb4\xbf\xf5\x08\ \x8e\xf7\xf4\xc1\xd1\xb4\x13\xd4\x7b\x06\x38\xef\x04\x06\x3a\xb1\ \x76\x71\xfe\xba\x37\x6f\x37\xbf\x70\x4d\x05\xb5\x8f\x7e\x74\x13\ \xd7\xfe\x43\xe9\x53\x4b\x0a\xb7\xcf\x0a\x59\xf9\x74\x67\x0f\x02\ \x71\x01\x83\x61\x01\xfd\xae\x00\xed\xb7\x8d\x74\x9c\x15\x4d\x43\ \x63\xe3\xee\xe3\x61\xbf\x67\x52\x93\x65\x28\x28\xac\x9e\x3f\x6f\ \x45\xcc\x5e\x3c\x93\x5c\xd0\x27\x85\xa0\x54\x32\x40\x61\x1e\x86\ \x99\x6c\xdf\xea\x0f\x9a\xe6\x34\x8d\x7b\x7a\x00\x40\x61\x0d\x97\ \xa4\x8e\x36\xef\x14\xea\x16\x95\xdd\xb7\x62\xe3\x2b\xb7\x0f\x30\ \x46\x38\x9c\x1e\x44\x86\x87\x71\x7a\xc0\x17\xdb\xda\x23\xfd\x60\ \xd5\x15\xed\x93\xc2\xe1\xed\xa1\x31\xe7\x0e\x22\x3a\x1a\x90\xa4\ \x16\xfb\xe9\x8e\x83\xbd\xf6\x61\x98\x34\xbc\x59\x9b\x2c\xb0\x22\ \x85\xc0\x84\x42\xd0\x18\x53\x92\x22\xd0\x0a\xe5\xf5\x6b\x1a\x2f\ \x77\xd1\xd3\x6b\x9e\x78\xe9\x5c\xaf\x5d\xbe\xd4\x1d\xa7\xce\x0d\ \xd0\x87\x0d\x1b\x69\xf9\x0c\x73\x73\x55\xc1\x9c\xd5\x96\x34\x43\ \x76\xa2\x0e\x29\x01\x8c\xf5\x5a\x6e\x6b\xdb\xe2\x02\xf2\xd5\xe7\ \x11\xd5\x1b\x89\x36\x54\x90\xed\xc5\x7b\xdd\xf3\xd4\xea\x2c\x22\ \x02\x7b\x0b\xa7\x11\xb3\x0b\x0a\x2a\xb2\x0c\x99\x2c\x00\xc4\x62\ \x31\x50\x44\xc2\x79\x22\x47\x77\xf7\x9f\xaf\x1f\xb1\x9d\xf8\xfc\ \xd0\xd8\x90\x33\x51\xb7\x75\x10\x0d\x75\x48\xe1\x4d\x7f\x0c\x4c\ \xf6\xf8\xe5\x24\x80\x00\x78\xbd\xc8\x49\xa6\xf4\x5c\x43\x7a\x39\ \x00\xb0\xaa\x8a\x65\x6a\x77\x57\xbb\x95\xe7\x79\x00\x40\x28\x4e\ \x18\xf5\x87\x71\xfe\x70\xeb\x61\x16\x68\x4b\xf8\x78\xae\xbc\x44\ \xa0\xbb\xcb\xed\x3b\x18\xf2\xfa\x20\x87\x82\x80\xd7\x03\x2e\xea\ \x43\x7e\x5e\x6e\x0d\x00\x28\xe5\xd1\x0b\xb2\x89\xf3\x24\x2b\xb7\ \xae\x05\xd4\x99\x90\xd3\x0a\x11\x1f\x27\xf8\x1d\x17\xba\x59\x40\ \x9a\x4a\xc0\x4a\x24\x2f\x37\xe5\xf4\x3a\x16\xad\x46\x86\x4e\x06\ \xef\x75\x00\x6a\x15\x92\x75\x43\x99\x65\x62\x46\x9a\x32\x38\x70\ \x5a\x8e\xe5\x15\x89\xb0\xb7\x03\xfd\x17\xc0\xfa\x81\xf4\x09\x1e\ \xa2\xdb\xc5\xb8\x2e\x16\x3d\x65\xc8\x19\xd3\x14\xd2\x1d\x2b\x10\ \x2f\x2d\x06\x54\x0a\x44\xe5\x38\xdc\x1d\xcf\x06\x58\x3a\x4a\x6c\ \x87\x7f\x44\xea\x1f\x72\x5b\xa1\xe4\x01\x8d\x0e\x2a\x9e\x87\x28\ \x72\xc8\xd3\xaa\x4b\x65\x80\xfb\x2f\x02\x86\xfc\x82\x92\x34\x4e\ \x81\x24\xe6\xe2\x7e\x42\x91\x28\x02\x32\xc3\x31\x14\x57\xb2\x00\ \x60\x1b\x18\x6c\x09\x86\x19\x80\xe3\x90\xc4\xc8\xd0\x08\x2c\x2a\ \xb3\xc4\x85\x22\xcb\xce\x9e\x0a\x5e\x91\xac\xaf\x9c\x5e\xb3\xf4\ \xae\xcc\x2c\x03\x54\xca\x8b\xce\xe3\xf5\x05\xa0\x16\x39\x4d\x5b\ \x70\x62\x94\x05\x00\xfb\xb8\xaf\xcb\x3a\x18\x3c\x09\x51\x00\xab\ \x62\x91\xaa\x8a\x60\x86\x51\xd0\xd4\xe5\xe8\xde\x29\x67\x18\x63\ \x22\xb0\xe5\x86\x99\xd3\xe7\xcf\xb4\x2c\xaf\x9f\x95\xf7\xa5\xf9\ \xf8\xee\x94\xe1\xd6\x66\x84\x25\x2f\x00\xe0\x58\x73\xb3\xed\xf8\ \xcf\x07\x76\x55\x9b\x97\xe8\x2f\x7b\xd1\xf3\xc5\x39\x8f\xbd\x7b\ \x4f\xfe\x16\x78\x46\x00\x8f\x04\x97\x2c\x60\x70\x34\x8a\xfd\xa3\ \xd4\xd6\xe8\x8e\x35\x48\xc3\x83\xbf\x9f\x22\x8a\x02\x80\x25\xb7\ \x74\xb6\x5e\xc5\xcc\x5d\x8a\xfe\x07\x6b\x0a\x75\xb7\x99\xb4\x51\ \xc4\xe2\x32\xba\x4c\xf3\x90\x61\x59\x82\xb7\x36\x7d\xf9\x82\xd5\ \x11\x68\x32\xac\xdc\x18\xb9\x2c\x60\x66\x58\xee\xfd\x65\xb3\x0f\ \x2c\x98\xae\xb4\xc0\xe5\x02\x05\xc2\x18\x0f\x10\xec\xb5\xcf\xa2\ \xd3\x30\x2b\xd6\x77\xe2\x68\xd7\x48\x7f\x7f\xbb\xaa\xb7\x5b\x2e\ \x8a\x4e\x56\x97\x31\x2e\xc3\x8d\xc6\x14\x31\x5d\x1d\x83\x06\x41\ \x40\xe0\x00\x43\x0e\xbe\xea\x4b\xee\xdc\xdc\xea\x78\x4d\x5b\xb6\ \xa0\x9d\x49\xcd\xee\xbd\xca\x4d\x6b\x53\xb5\x73\x3f\x7e\x60\xf6\ \xbe\xdc\x54\x39\x8d\x06\x9d\x60\xb2\x0a\x10\x78\x65\x0f\xc6\x3c\ \x3e\x4c\xfa\x7d\x08\x33\x0a\xc4\xf6\x6c\x47\x56\xeb\x0e\xa4\x88\ \x0a\x68\xd8\x28\x94\x88\x81\x78\x1e\x8c\x61\x1a\xba\xbd\x9a\xc9\ \x67\xbe\x68\xb9\x67\xef\xf8\x64\xf3\x25\xe6\x35\x76\x5d\x97\x91\ \x52\xf3\xf6\x23\xb5\x5f\xcf\xc8\x4f\xc9\x24\x4b\x3d\x98\xe2\xea\ \xab\xe6\x47\x1a\xb7\x43\x7b\x72\x0f\x78\x4e\x09\x62\x15\x20\x41\ \x00\x9b\x9a\x81\x8e\x73\x63\xee\x0d\x5b\x76\xaf\xf9\x69\x74\xfc\ \xc7\xab\x12\x12\x79\xcc\x7c\x5d\x6a\xe5\xae\x86\xf5\xa7\x3c\xee\ \x51\x22\x22\x92\xe5\x18\xc5\xe3\x71\x22\x22\x72\xb4\xfe\x42\xfe\ \xef\x37\x11\xfd\xb2\x8d\xa8\xf5\x1b\xf2\xef\xdd\x46\x3b\x1e\xb9\ \xbf\x79\x9e\xc0\x57\xfd\xaf\x3f\xb9\x3c\xf5\x86\xd2\xa2\x42\xd3\ \xc2\x65\x4f\xae\x5b\x67\xb9\x73\x49\x91\x5a\xc1\x40\x10\x45\x9c\ \x6d\xb3\x22\x17\x6e\x8c\xbb\x5c\xd2\x1f\x2d\x47\x4e\xfc\xd4\xb8\ \xef\xeb\x4e\xbb\xe3\xbb\x0e\xa2\x89\x44\x9c\xeb\x7e\xfa\xe5\x4a\ \x81\x53\xeb\x33\xcd\x05\x55\xb7\xad\x94\x7a\xcf\x76\xa9\x45\xad\ \x2e\x16\xf4\xc7\x23\x4e\x5b\xf7\x98\x47\x1a\xf0\xca\xb2\xad\x93\ \x28\xf8\xaf\x80\xa9\x04\xfe\x16\xe2\x92\x14\x62\x9a\x3e\x1e\x09\ \x85\xdb\x82\x13\x63\x53\x26\x5c\x11\x7f\x01\x11\x27\x49\x84\x4a\ \x59\x7f\x9a\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = "\ \x00\x0b\ \x0f\x08\x42\x1e\ \x00\x41\ \x00\x70\x00\x70\x00\x6c\x00\x69\x00\x63\x00\x61\x00\x74\x00\x69\x00\x6f\x00\x6e\ \x00\x06\ \x04\xd0\x3a\xc2\ \x00\x46\ \x00\x69\x00\x6c\x00\x74\x00\x65\x00\x72\ \x00\x07\ \x07\x3b\xe0\xf3\ \x00\x50\ \x00\x6c\x00\x75\x00\x67\x00\x69\x00\x6e\x00\x73\ \x00\x06\ \x04\xa6\x4c\xf7\ \x00\x43\ \x00\x6f\x00\x6e\x00\x66\x00\x69\x00\x67\ \x00\x06\ \x05\x8c\x46\xa5\ \x00\x52\ \x00\x65\x00\x6d\x00\x6f\x00\x74\x00\x65\ \x00\x0b\ \x04\x69\xc7\xe2\ \x00\x53\ \x00\x68\x00\x6f\x00\x77\x00\x20\x00\x46\x00\x6f\x00\x6c\x00\x64\x00\x65\x00\x72\ \x00\x03\ \x00\x00\x59\xbe\ \x00\x52\ \x00\x75\x00\x6e\ \x00\x0e\ \x0d\xf4\x8a\x37\ \x00\x52\ \x00\x65\x00\x73\x00\x74\x00\x6f\x00\x72\x00\x65\x00\x20\x00\x43\x00\x6f\x00\x6e\x00\x66\x00\x69\x00\x67\ \x00\x06\ \x05\x8c\x35\x74\ \x00\x52\ \x00\x65\x00\x6c\x00\x6f\x00\x61\x00\x64\ \x00\x04\ \x00\x04\xbb\x04\ \x00\x45\ \x00\x64\x00\x69\x00\x74\ \x00\x07\ \x09\x8c\x74\x23\ \x00\x53\ \x00\x61\x00\x76\x00\x65\x00\x20\x00\x41\x00\x73\ \x00\x03\ \x00\x00\x54\xc7\ \x00\x4e\ \x00\x65\x00\x77\ \x00\x04\ \x00\x05\x98\xc5\ \x00\x53\ \x00\x61\x00\x76\x00\x65\ \x00\x0b\ \x04\x5b\x5a\x02\ \x00\x45\ \x00\x64\x00\x69\x00\x74\x00\x20\x00\x46\x00\x69\x00\x6c\x00\x74\x00\x65\x00\x72\ \x00\x10\ \x0d\xc3\xd1\x00\ \x00\x4e\ \x00\x65\x00\x77\x00\x20\x00\x46\x00\x69\x00\x6c\x00\x74\x00\x65\x00\x72\x00\x20\x00\x47\x00\x72\x00\x6f\x00\x75\x00\x70\ \x00\x0b\ \x04\x5c\xf5\xa2\ \x00\x43\ \x00\x6f\x00\x70\x00\x79\x00\x20\x00\x46\x00\x69\x00\x6c\x00\x74\x00\x65\x00\x72\ \x00\x0d\ \x05\x48\xe3\x42\ \x00\x52\ \x00\x65\x00\x6d\x00\x6f\x00\x76\x00\x65\x00\x20\x00\x46\x00\x69\x00\x6c\x00\x74\x00\x65\x00\x72\ \x00\x0a\ \x04\xc6\xa3\xe2\ \x00\x4e\ \x00\x65\x00\x77\x00\x20\x00\x46\x00\x69\x00\x6c\x00\x74\x00\x65\x00\x72\ \x00\x04\ \x00\x05\x37\xfe\ \x00\x4d\ \x00\x61\x00\x69\x00\x6e\ \x00\x04\ \x00\x05\x04\xcf\ \x00\x49\ \x00\x6e\x00\x66\x00\x6f\ \x00\x0a\ \x06\xab\xae\x79\ \x00\x52\ \x00\x65\x00\x70\x00\x6f\x00\x73\x00\x69\x00\x74\x00\x6f\x00\x72\x00\x79\ \x00\x04\ \x00\x04\xec\x30\ \x00\x48\ \x00\x65\x00\x6c\x00\x70\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x01\ \x00\x00\x00\x1c\x00\x02\x00\x00\x00\x05\x00\x00\x00\x12\ \x00\x00\x00\x2e\x00\x02\x00\x00\x00\x0a\x00\x00\x00\x08\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x04\ \x00\x00\x01\xcc\x00\x00\x00\x00\x00\x01\x00\x00\x78\x00\ \x00\x00\x01\xa4\x00\x00\x00\x00\x00\x01\x00\x00\x6a\x16\ \x00\x00\x01\x96\x00\x00\x00\x00\x00\x01\x00\x00\x4a\x35\ \x00\x00\x01\xb2\x00\x00\x00\x00\x00\x01\x00\x00\x6f\xec\ \x00\x00\x00\xe4\x00\x00\x00\x00\x00\x01\x00\x00\x2b\x89\ \x00\x00\x00\x82\x00\x00\x00\x00\x00\x01\x00\x00\x11\xde\ \x00\x00\x00\xc2\x00\x00\x00\x00\x00\x01\x00\x00\x23\xb3\ \x00\x00\x00\xf0\x00\x00\x00\x00\x00\x01\x00\x00\x2e\x48\ \x00\x00\x00\x66\x00\x00\x00\x00\x00\x01\x00\x00\x0c\x7e\ \x00\x00\x00\x42\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\xb0\x00\x00\x00\x00\x00\x01\x00\x00\x1e\x44\ \x00\x00\x00\x54\x00\x00\x00\x00\x00\x01\x00\x00\x06\x03\ \x00\x00\x00\xd0\x00\x00\x00\x00\x00\x01\x00\x00\x26\x95\ \x00\x00\x00\x8e\x00\x00\x00\x00\x00\x01\x00\x00\x18\x00\ \x00\x00\x00\xfe\x00\x00\x00\x00\x00\x01\x00\x00\x32\x16\ \x00\x00\x01\x40\x00\x00\x00\x00\x00\x01\x00\x00\x3c\xa2\ \x00\x00\x01\x7c\x00\x00\x00\x00\x00\x01\x00\x00\x45\xf9\ \x00\x00\x01\x5c\x00\x00\x00\x00\x00\x01\x00\x00\x41\x0e\ \x00\x00\x01\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x36\x69\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() spykeviewer-0.4.4/spykeviewer/ui/settings.py0000644000175000017500000000621712650522331017433 0ustar robrobimport os import os.path as osp from PyQt4.QtGui import QDialog, QFileDialog from PyQt4.QtCore import Qt from settings_ui import Ui_Settings class SettingsWindow(QDialog, Ui_Settings): def __init__(self, selection_path, filter_path, data_path, remote_script, plugin_paths, parent=None): QDialog.__init__(self, parent) self.setupUi(self) self.selectionPath.setText(selection_path) self.filterPath.setText(filter_path) self.dataPath.setText(data_path) self.remoteScriptPath.setText(remote_script) for p in plugin_paths: self.pathListWidget.addItem(p) def selection_path(self): return self.selectionPath.text() def filter_path(self): return self.filterPath.text() def data_path(self): return self.dataPath.text() def remote_script(self): return self.remoteScriptPath.text() def plugin_paths(self): return [i.text() for i in self.pathListWidget.findItems('*', Qt.MatchWrap | Qt.MatchWildcard)] def _makeDirDialog(self, name): d = QFileDialog(self, name, os.getcwd()) d.setAcceptMode(QFileDialog.AcceptOpen) d.setFileMode(QFileDialog.Directory) d.setOption(QFileDialog.ShowDirsOnly, True) d.setNameFilter("Directories") return d def on_changeSelectionPathButton_pressed(self): d = self._makeDirDialog('Choose selection path') if d.exec_() == d.Accepted: filename = osp.realpath(unicode(d.selectedFiles()[0])) self.selectionPath.setText(osp.normpath(filename)) else: return def on_changeFilterPathButton_pressed(self): d = self._makeDirDialog('Choose filter path') if d.exec_() == d.Accepted: filename = osp.realpath(unicode(d.selectedFiles()[0])) self.filterPath.setText(osp.normpath(filename)) else: return def on_changeDataPathButton_pressed(self): d = self._makeDirDialog('Choose data path') if d.exec_() == d.Accepted: filename = osp.realpath(unicode(d.selectedFiles()[0])) self.dataPath.setText(osp.normpath(filename)) else: return def on_changeRemoteScriptButton_pressed(self): d = QFileDialog(self, 'Choose remote script', self.remote_script()) d.setAcceptMode(QFileDialog.AcceptOpen) d.setFileMode(QFileDialog.ExistingFile) if d.exec_() == d.Accepted: filename = osp.realpath(unicode(d.selectedFiles()[0])) self.remoteScriptPath.setText(osp.normpath(filename)) else: return def on_addPathButton_pressed(self): d = self._makeDirDialog('Choose plugin path') if d.exec_() == d.Accepted: filename = osp.realpath(unicode(d.selectedFiles()[0])) if filename not in self.plugin_paths(): self.pathListWidget.addItem(osp.normpath(filename)) else: return def on_removePathButton_pressed(self): if not self.pathListWidget.currentItem(): return self.pathListWidget.takeItem(self.pathListWidget.currentRow())spykeviewer-0.4.4/spykeviewer/ui/neo_navigation.py0000644000175000017500000005436112650522331020576 0ustar robrobfrom PyQt4.QtGui import (QDockWidget, QMenu, QAction, QMessageBox, QItemSelectionRange, QItemSelection, QStandardItemModel, QStandardItem, QItemSelectionModel) from PyQt4.QtCore import Qt, pyqtSignal from spyderlib.utils.qthelpers import get_icon import neo from spykeutils.plugin.data_provider_neo import NeoDataProvider import spykeutils.tools from neo_navigation_ui import Ui_neoNavigationDock from .. import api class NeoNavigationDock(QDockWidget, Ui_neoNavigationDock): """ Implements a navigation dock for Neo hierarchies. Tightly coupled with :class:`main_window_neo.MainWindowNeo`, the main reason for this class to exist is to keep the dock out of the general ui file. """ object_removed = pyqtSignal() # Signal to remove an object def __init__(self, parent): QDockWidget.__init__(self, parent) self.parent = parent self.setupUi(self) self.block_model = QStandardItemModel() self.segment_model = QStandardItemModel() self.channelgroup_model = QStandardItemModel() self.channel_model = QStandardItemModel() self.unit_model = QStandardItemModel() self.neoBlockList.setModel(self.block_model) self.neoSegmentList.setModel(self.segment_model) self.neoChannelGroupList.setModel(self.channelgroup_model) self.neoChannelList.setModel(self.channel_model) self.neoUnitList.setModel(self.unit_model) self.neoBlockList.doubleClicked.connect( lambda x: self._edit_item_annotations(x, self.block_model)) self.neoSegmentList.doubleClicked.connect( lambda x: self._edit_item_annotations(x, self.segment_model)) self.neoChannelGroupList.doubleClicked.connect( lambda x: self._edit_item_annotations(x, self.channelgroup_model)) self.neoChannelList.doubleClicked.connect( lambda x: self._edit_item_annotations(x, self.channel_model)) self.neoUnitList.doubleClicked.connect( lambda x: self._edit_item_annotations(x, self.unit_model)) self.neoBlockList.selectionModel().selectionChanged.connect( self.selected_blocks_changed) self.neoChannelGroupList.selectionModel().selectionChanged.connect( self.selected_channel_groups_changed) self.neoChannelList.selectionModel().selectionChanged.connect( self.selected_channels_changed) self.neoUnitList.selectionModel().selectionChanged.connect( self.selected_units_changed) self.neoSegmentList.selectionModel().selectionChanged.connect( self.selected_segments_changed) def clear(self): """ Clear all lists """ self.neoBlockList.clearSelection() self.block_model.clear() def get_letter_id(self, id_, small=False): """ Return a name consisting of letters given an integer """ if id_ < 0: return '' name = '' id_ += 1 if small: start = ord('a') else: start = ord('A') while id_ > 26: id_ -= 1 name += chr(start + (id_ % 26)) id_ /= 26 name += chr(start + id_ - 1) return name[::-1] def ensure_not_filtered(self, objects, all_objects, filters): """ Deactivates all filters that prevent the the given sequence of objects to be displayed. The passed filter tuple list is modified to only include valid filters. :param sequence objects: The objects that need to be visible. :param sequence all_objects: The whole object list to be filtered, including objects that are allowed to be hidden. :param sequence filters: A sequence of (Filter, name) tuples. """ objset = set(objects) if not objset.issubset( set(self.parent.filter_list(all_objects, filters))): i = 1 while i <= len(filters): test_filters = filters[:i] if objset.issubset(set(self.parent.filter_list( all_objects, test_filters))): i += 1 else: test_filters[-1][0].active = False filters.pop(i - 1) for o in objects: i = 0 while i < len(filters): if self.parent.is_filtered(o, [filters[i]]): filters[i][0].active = False filters.pop(i) else: i += 1 def filter_ordered(self, objects, filters): """ Filter a sequence of objects with a sequence of filters. Apply the filters in the order given by the sequence. Return the filtered list. """ for f in filters: if f[0].combined: objects = self.parent.filter_list(objects, [f]) else: objects = [o for o in objects if not self.parent.is_filtered(o, [f])] return objects def populate_neo_block_list(self): """ Fill the block list with appropriate entries. Qt.UserRole: The :class:`neo.Block` object """ self.block_model.clear() filters = self.parent.get_active_filters('Block') blocks = self.filter_ordered( self.parent.block_names.keys(), filters) for b in blocks: item = QStandardItem(self.parent.block_names[b]) item.setData(b, Qt.UserRole) self.block_model.appendRow(item) self.neoBlockList.setCurrentIndex(self.block_model.index(0, 0)) self.set_blocks_label() if not blocks: self.selected_blocks_changed() def populate_neo_segment_list(self): """ Fill the segment list with appropriate entries. Qt.UserRole: The :class:`neo.Segment` object """ self.segment_model.clear() segments = [] for b in self.blocks(): segments.extend(b.segments) filters = self.parent.get_active_filters('Segment') segments = self.filter_ordered(segments, filters) for i, s in enumerate(segments): if s.name: name = s.name + ' (%s-%i)' % \ (self.parent.block_ids[s.block], i) else: name = '%s-%i' % (self.parent.block_ids[s.block], i) new_item = QStandardItem(name) new_item.setData(s, Qt.UserRole) self.segment_model.appendRow(new_item) self.neoSegmentList.setCurrentIndex(self.segment_model.index(0, 0)) if api.config.autoselect_segments: self.neoSegmentList.selectAll() self.selected_segments_changed() def populate_neo_channel_group_list(self): """ Fill the channel group list with appropriate entries. Qt.UserRole: The :class:`neo.RecordingChannelGroup` object """ self.neoChannelGroupList.clearSelection() self.channelgroup_model.clear() self.parent.channel_group_names.clear() rcgs = [] for b in self.blocks(): rcgs.extend(b.recordingchannelgroups) filters = self.parent.get_active_filters( 'Recording Channel Group') rcgs = self.filter_ordered(rcgs, filters) for i, rcg in enumerate(rcgs): self.parent.channel_group_names[rcg] = '%s-%s' % ( self.parent.block_ids[rcg.block], self.get_letter_id(i, True)) if rcg.name: name = rcg.name + ' (%s)' % \ self.parent.channel_group_names[rcg] else: name = self.parent.channel_group_names[rcg] new_item = QStandardItem(name) new_item.setData(rcg, Qt.UserRole) self.channelgroup_model.appendRow(new_item) self.neoChannelGroupList.setCurrentIndex( self.channelgroup_model.index(0, 0)) if api.config.autoselect_channel_groups: self.neoChannelGroupList.selectAll() elif not rcgs: self.selected_channel_groups_changed() def populate_neo_channel_list(self): """ Fill the channel list with appropriate entries. Data slots: Qt.UserRole: The :class:`neo.RecordingChannel` Qt.UserRole+1: The channel index """ self.channel_model.clear() channels = set() rcs = [] rc_group_name = {} for rcg in self.recording_channel_groups(): for rc in rcg.recordingchannels: if not api.config.duplicate_channels and rc in channels: continue channels.add(rc) rcs.append(rc) rc_group_name[rc] = self.parent.channel_group_names[rcg] filters = self.parent.get_active_filters( 'Recording Channel') rcs = self.filter_ordered(rcs, filters) for rc in rcs: identifier = '%s.%d' % \ (rc_group_name[rc], rc.index) if rc.name: name = rc.name + ' (%s)' % identifier else: name = identifier new_item = QStandardItem(name) new_item.setData(rc, Qt.UserRole) new_item.setData(rc.index, Qt.UserRole + 1) self.channel_model.appendRow(new_item) if api.config.autoselect_channels: self.neoChannelList.selectAll() self.selected_channels_changed() def populate_neo_unit_list(self): """ Fill the unit list with appropriate entries. Qt.UserRole: The :class:`neo.Unit` object """ self.unit_model.clear() units = [] for rcg in self.recording_channel_groups(): units.extend(rcg.units) filters = self.parent.get_active_filters('Unit') units = self.filter_ordered(units, filters) for i, u in enumerate(units): if self.parent.is_filtered(u, filters): continue if u.name: name = u.name + ' (%s-%d)' % \ (self.parent.channel_group_names[rcg], i) else: name = '%s-%d' % (self.parent.channel_group_names[rcg], i) new_item = QStandardItem(name) new_item.setData(u, Qt.UserRole) self.unit_model.appendRow(new_item) if api.config.autoselect_units: self.neoUnitList.selectAll() self.selected_units_changed() def set_blocks_label(self): self.blocksLabel.setText( 'Blocks (%d/%d):' % (len(self.neoBlockList.selectedIndexes()), self.block_model.rowCount())) def set_channel_groups_label(self): self.channelGroupsLabel.setText( 'Channel Groups (%d/%d):' % ( len(self.neoChannelGroupList.selectedIndexes()), self.channelgroup_model.rowCount())) def selected_blocks_changed(self): self.set_blocks_label() self.populate_neo_channel_group_list() self.populate_neo_segment_list() def selected_channel_groups_changed(self): self.set_channel_groups_label() self.populate_neo_channel_list() self.populate_neo_unit_list() def selected_channels_changed(self): self.channelsLabel.setText( 'Channels (%d/%d):' % ( len(self.neoChannelList.selectedIndexes()), self.channel_model.rowCount())) def selected_units_changed(self): self.unitsLabel.setText( 'Units (%d/%d):' % ( len(self.neoUnitList.selectedIndexes()), self.unit_model.rowCount())) def selected_segments_changed(self): self.segmentsLabel.setText( 'Segments (%d/%d):' % ( len(self.neoSegmentList.selectedIndexes()), self.segment_model.rowCount())) def _edit_item_annotations(self, index, model): api.annotation_editor(model.data(index, Qt.UserRole)) def remove_selected(self, list_widget): """ Remove all selected objects from the given list widget. """ items = list_widget.selectedIndexes() if len(items) < 1: return model = list_widget.model() question = ('Do you really want to remove %d %s' % (len(items), type(model.data(items[0], Qt.UserRole)).__name__)) if len(items) > 1: question += 's' question += '?' if QMessageBox.question( self, 'Please confirm', question, QMessageBox.Yes | QMessageBox.No) == QMessageBox.No: return for i in list_widget.selectedIndexes(): data = model.data(i, Qt.UserRole) if isinstance(data, neo.Block): self.parent.block_names.pop(data) else: spykeutils.tools.remove_from_hierarchy(data) list_widget.selectionModel().select(i, QItemSelectionModel.Deselect) self.object_removed.emit() def _context_actions(self, list_widget): idx = list_widget.currentIndex() if not idx: return [] data = list_widget.model().data(idx, Qt.UserRole) edit_action = QAction(get_icon('edit.png'), 'Edit annotations...', self) edit_action.triggered.connect( lambda x: self._edit_item_annotations(idx, list_widget.model())) delete_name = 'Delete %s' % type(data).__name__ if len(list_widget.selectedIndexes()) > 1: delete_name += 's' delete_action = QAction(get_icon('editdelete.png'), delete_name, self) delete_action.triggered.connect( lambda x: self.remove_selected(list_widget)) return [edit_action, delete_action] def on_neoBlockList_customContextMenuRequested(self, pos): if not self.neoBlockList.selectedIndexes(): return context_menu = QMenu(self) context_menu.addActions(self._context_actions(self.neoBlockList)) context_menu.popup(self.neoBlockList.mapToGlobal(pos)) def on_neoSegmentList_customContextMenuRequested(self, pos): if not self.neoSegmentList.selectedIndexes(): return context_menu = QMenu(self) context_menu.addActions(self._context_actions(self.neoSegmentList)) context_menu.popup(self.neoSegmentList.mapToGlobal(pos)) def on_neoChannelGroupList_customContextMenuRequested(self, pos): if not self.neoChannelGroupList.selectedIndexes(): return context_menu = QMenu(self) context_menu.addActions(self._context_actions(self.neoChannelGroupList)) context_menu.popup(self.neoChannelGroupList.mapToGlobal(pos)) def on_neoChannelList_customContextMenuRequested(self, pos): if not self.neoChannelList.selectedIndexes(): return context_menu = QMenu(self) context_menu.addActions(self._context_actions(self.neoChannelList)) context_menu.popup(self.neoChannelList.mapToGlobal(pos)) def on_neoUnitList_customContextMenuRequested(self, pos): if not self.neoUnitList.selectedIndexes(): return context_menu = QMenu(self) context_menu.addActions(self._context_actions(self.neoUnitList)) context_menu.popup(self.neoUnitList.mapToGlobal(pos)) def blocks(self): """ Return selected :class:`neo.Block` objects. """ return [self.block_model.data(i, Qt.UserRole) for i in self.neoBlockList.selectedIndexes()] def segments(self): """ Return selected :class:`neo.Segment` objects. """ return [self.segment_model.data(i, Qt.UserRole) for i in self.neoSegmentList.selectedIndexes()] def recording_channel_groups(self): """ Return selected :class:`neo.RecordingChannelGroup` objects. """ return [self.channelgroup_model.data(i, Qt.UserRole) for i in self.neoChannelGroupList.selectedIndexes()] def recording_channels(self): """ Return selected :class:`neo.RecordingChannel` objects. """ return [self.channel_model.data(i, Qt.UserRole) for i in self.neoChannelList.selectedIndexes()] def units(self): """ Return selected :class:`neo.Unit` objects. """ return [self.unit_model.data(i, Qt.UserRole) for i in self.neoUnitList.selectedIndexes()] def set_selection(self, data): """ Set the selected data. """ block_list = [] for b in data['blocks']: cl = None rp = None if len(b) > 2: cl = NeoDataProvider.find_io_class(b[2]) if len(b) > 3: rp = b[3] loaded = NeoDataProvider.get_block( b[1], b[0], force_io=cl, read_params=rp) if loaded is None: raise IOError('One of the files contained in the ' 'selection could not be loaded!') block_list.append(loaded) block_set = set([(b[0], b[1]) for b in data['blocks']]) # Select blocks self.ensure_not_filtered(block_list, self.parent.block_names.keys(), self.parent.get_active_filters('Block')) self.populate_neo_block_list() selection = QItemSelection() for i in self.block_model.findItems( '*', Qt.MatchWrap | Qt.MatchWildcard): block = i.data(Qt.UserRole) t = (NeoDataProvider.block_indices[block], self.parent.block_files[block]) if t in block_set: selection.append(QItemSelectionRange( self.block_model.indexFromItem(i))) self.neoBlockList.selectionModel().select( selection, QItemSelectionModel.ClearAndSelect) # Select segments seg_list = [block_list[idx[1]].segments[idx[0]] for idx in data['segments']] all_segs = [] for b in self.blocks(): all_segs.extend(b.segments) self.ensure_not_filtered(seg_list, all_segs, self.parent.get_active_filters('Segment')) self.populate_neo_segment_list() selection = QItemSelection() for i in self.segment_model.findItems( '*', Qt.MatchWrap | Qt.MatchWildcard): segment = i.data(Qt.UserRole) if not segment.block in block_list: continue seg_idx = segment.block.segments.index(segment) block_idx = block_list.index(segment.block) if [seg_idx, block_idx] in data['segments']: selection.append(QItemSelectionRange( self.segment_model.indexFromItem(i))) self.neoSegmentList.selectionModel().select( selection, QItemSelectionModel.ClearAndSelect) # Select recording channel groups rcg_list = [block_list[rcg[1]].recordingchannelgroups[rcg[0]] for rcg in data['channel_groups']] all_rcgs = [] for b in self.blocks(): all_rcgs.extend(b.recordingchannelgroups) self.ensure_not_filtered( rcg_list, all_rcgs, self.parent.get_active_filters('Recording Channel Group')) self.populate_neo_channel_group_list() selection = QItemSelection() for i in self.channelgroup_model.findItems( '*', Qt.MatchWrap | Qt.MatchWildcard): rcg = i.data(Qt.UserRole) if not rcg.block in block_list: continue rcg_idx = rcg.block.recordingchannelgroups.index(rcg) block_idx = block_list.index(rcg.block) if [rcg_idx, block_idx] in data['channel_groups']: selection.append(QItemSelectionRange( self.channelgroup_model.indexFromItem(i))) self.neoChannelGroupList.selectionModel().select( selection, QItemSelectionModel.ClearAndSelect) # Select channels rc_list = [rcg_list[rc[1]].recordingchannels[rc[0]] for rc in data['channels']] all_rcs = [] for rcg in self.recording_channel_groups(): for rc in rcg.recordingchannels: if not api.config.duplicate_channels and rc in all_rcs: continue all_rcs.append(rc) self.ensure_not_filtered( rc_list, all_rcs, self.parent.get_active_filters('Recording Channel')) self.populate_neo_channel_list() selection = QItemSelection() rcg_set = set(rcg_list) for i in self.channel_model.findItems( '*', Qt.MatchWrap | Qt.MatchWildcard): channel = i.data(Qt.UserRole) if not set(channel.recordingchannelgroups).intersection(rcg_set): continue for rcg in channel.recordingchannelgroups: if [rcg.recordingchannels.index(channel), rcg_list.index(rcg)] in data['channels']: selection.append(QItemSelectionRange( self.channel_model.indexFromItem(i))) break self.neoChannelList.selectionModel().select( selection, QItemSelectionModel.ClearAndSelect) # Select units unit_list = [rcg_list[u[1]].units[u[0]] for u in data['units']] all_units = [] for rcg in self.recording_channel_groups(): all_units.extend(rcg.units) self.ensure_not_filtered( unit_list, all_units, self.parent.get_active_filters('Unit')) self.populate_neo_unit_list() selection = QItemSelection() for i in self.unit_model.findItems( '*', Qt.MatchWrap | Qt.MatchWildcard): unit = i.data(Qt.UserRole) if unit.recordingchannelgroup not in rcg_list: continue rcg_idx = rcg_list.index(unit.recordingchannelgroup) unit_idx = unit.recordingchannelgroup.units.index(unit) if [unit_idx, rcg_idx] in data['units']: selection.append(QItemSelectionRange( self.unit_model.indexFromItem(i))) self.neoUnitList.selectionModel().select( selection, QItemSelectionModel.ClearAndSelect) self.parent.refresh_filters()spykeviewer-0.4.4/spykeviewer/ui/__init__.py0000644000175000017500000000000012650522331017312 0ustar robrobspykeviewer-0.4.4/spykeviewer/start.py0000644000175000017500000000212312650522331016303 0ustar robrobimport sys import os import platform import locale # Hack to circumvent OS X locale bug if platform.system() == 'Darwin': if os.getenv('LC_CTYPE') == 'UTF-8': os.environ['LC_CTYPE'] = '' else: locale.setlocale(locale.LC_ALL, '') # Use new style API import sip sip.setapi('QString', 2) sip.setapi('QDate', 2) sip.setapi('QDateTime', 2) sip.setapi('QTextStream', 2) sip.setapi('QTime', 2) sip.setapi('QVariant', 2) sip.setapi('QUrl', 2) sip.setapi('QVariant', 2) from PyQt4 import QtGui from PyQt4.QtCore import Qt import api import splash_rc # The entry point for Spyke Viewer def main(): api.app = QtGui.QApplication(sys.argv) splash_pic = QtGui.QPixmap(':/splash/splashimg') splash = QtGui.QSplashScreen(splash_pic) splash.setMask(splash_pic.mask()) splash.showMessage('Starting application...', Qt.AlignCenter | Qt.AlignBottom) splash.show() splash.raise_() api.app.processEvents() from ui.main_window_neo import MainWindowNeo ui = MainWindowNeo(splash=splash) splash.finish(ui) ui.show() ui.raise_() sys.exit(api.app.exec_())spykeviewer-0.4.4/spykeviewer/plugins/0000755000175000017500000000000012650522331016257 5ustar robrobspykeviewer-0.4.4/spykeviewer/plugins/Raw Data/0000755000175000017500000000000012650522331017642 5ustar robrobspykeviewer-0.4.4/spykeviewer/plugins/Raw Data/spikes.py0000644000175000017500000001007712650522331021517 0ustar robrobfrom spykeutils.plugin import analysis_plugin, gui_data from spykeutils import plot from spykeutils.tools import extract_spikes import spykeutils.conversions as convert import quantities as pq extract_prop = gui_data.ValueProp(False) class SpikePlotPlugin(analysis_plugin.AnalysisPlugin): anti_aliased = gui_data.BoolItem('Antialiased lines (slow for ' 'large amounts of spikes)', default=True) _g = gui_data.BeginGroup('Include spikes from') spike_mode = gui_data.ChoiceItem('Spikes', ('Do not include', 'Regular', 'Emphasized'), default=1) inc_spikes = gui_data.BoolItem('Spike Trains') inc_extracted = gui_data.BoolItem( 'Extracted from signal').set_prop('display', store=extract_prop) length = gui_data.FloatItem( 'Spike length', unit='ms', default=1.0).set_prop( 'display', active=extract_prop) align = gui_data.FloatItem( 'Alignment offset', unit='ms', default=0.5).set_prop( 'display', active=extract_prop) _g_ = gui_data.EndGroup('Include spikes from') plot_type = gui_data.ChoiceItem('Plot type', ('One plot per channel', 'One plot per unit', 'Single plot')) split_type = gui_data.ChoiceItem('Split channels', ('Vertically', 'Horizontally')) layout = gui_data.ChoiceItem('Subplot layout', ('Linear', 'Square')) fade = gui_data.BoolItem('Fade earlier spikes') def get_name(self): return 'Spike Waveform Plot' def start(self, current, selections): current.progress.begin('Creating spike waveform plot') current.progress.set_status('Loading spikes') spikes = {} strong = {} if self.spike_mode == 1: spikes = current.spikes_by_unit() elif self.spike_mode == 2: strong = current.spikes_by_unit() spike_trains = None if self.inc_spikes: current.progress.set_status('Loading spike trains') spike_trains = current.spike_trains_by_unit_and_segment() for u, trains in spike_trains.iteritems(): s = [] for st in trains.values(): if st.waveforms is not None: s.extend(convert.spike_train_to_spikes(st)) if not s: continue spikes.setdefault(u, []).extend(s) if self.inc_extracted: current.progress.set_status('Extracting spikes from signals') signals = current.analog_signals_by_segment_and_channel( conversion_mode=3) if spike_trains is None: spike_trains = current.spike_trains_by_unit_and_segment() for u, trains in spike_trains.iteritems(): s = [] rcg = u.recordingchannelgroup for seg, train in trains.iteritems(): if seg not in signals: continue train_sigs = [] for rc in signals[seg]: if rcg in rc.recordingchannelgroups: train_sigs.append(signals[seg][rc]) if not train_sigs: continue s.extend(extract_spikes( train, train_sigs, self.length * pq.ms, self.align * pq.ms)) if not s: continue spikes.setdefault(u, []).extend(s) fade = 0.2 if self.fade else 1.0 plot.spikes(spikes, self.plot_type * 2 + self.split_type + 1, strong, anti_alias=self.anti_aliased, fade=fade, subplot_layout=self.layout, progress=current.progress)spykeviewer-0.4.4/spykeviewer/plugins/Raw Data/spectogram.py0000644000175000017500000000712312650522331022363 0ustar robrobfrom spykeutils.plugin import analysis_plugin, gui_data import scipy as sp import matplotlib.mlab as mlab from guiqwt.plot import BaseImageWidget from guiqwt.builder import make from spykeutils.plot.dialog import PlotDialog import spykeutils.plot.helper as helper from spykeutils import SpykeException import quantities as pq class SpectrogramPlugin(analysis_plugin.AnalysisPlugin): nfft_index = (32, 64, 128, 256, 512, 1024, 2048, 4096, 8192) nfft_names = (str(s) for s in nfft_index) interpolate = gui_data.BoolItem('Interpolate', default=True) show_color_bar = gui_data.BoolItem('Show color bar', default=False) fft_samples = gui_data.ChoiceItem('FFT samples', nfft_names, default=3) which_signals = gui_data.ChoiceItem('Included signals', ('AnalogSignal', 'AnalogSignalArray', 'Both'), default=2) def get_name(self): return 'Signal Spectogram' @helper.needs_qt def start(self, current, selections): current.progress.begin('Creating Spectogram') signals = current.analog_signals(self.which_signals + 1) if not signals: current.progress.done() raise SpykeException('No signals selected!') num_signals = len(signals) columns = int(round(sp.sqrt(num_signals))) current.progress.set_ticks(num_signals) samples = self.nfft_index[self.fft_samples] win = PlotDialog(toolbar=True, wintitle="Signal Spectogram (FFT window size %d)" % samples) for c in xrange(num_signals): pW = BaseImageWidget(win, yreverse=False, lock_aspect_ratio=False) plot = pW.plot s = signals[c] # Calculate spectrogram and create plot v = mlab.specgram(s, NFFT=samples, noverlap=samples/2, Fs=s.sampling_rate.rescale(pq.Hz)) interpolation = 'nearest' if self.interpolate: interpolation = 'linear' img = make.image(sp.log(v[0]), ydata=[v[1][0],v[1][-1]], xdata=[v[2][0] + s.t_start.rescale(pq.s), v[2][-1] + s.t_start.rescale(pq.s)], interpolation=interpolation) plot.add_item(img) # Labels etc. if not self.show_color_bar: plot.disable_unused_axes() title = '' if s.recordingchannel and s.recordingchannel.name: title = s.recordingchannel.name if s.segment and s.segment.name: if title: title += ' , ' title += s.segment.name plot.set_title(title) plot.set_axis_title(plot.Y_LEFT, 'Frequency') plot.set_axis_unit(plot.Y_LEFT, s.sampling_rate.dimensionality.string) plot.set_axis_title(plot.X_BOTTOM, 'Time') time_unit = (1 / s.sampling_rate).simplified plot.set_axis_unit(plot.X_BOTTOM, time_unit.dimensionality.string) win.add_plot_widget(pW, c, column=c%columns) current.progress.step() current.progress.done() win.add_custom_image_tools() win.add_x_synchronization_option(True, range(num_signals)) win.add_y_synchronization_option(True, range(num_signals)) win.show() spykeviewer-0.4.4/spykeviewer/plugins/Raw Data/signal.py0000644000175000017500000001063412650522331021475 0ustar robrobfrom spykeutils.plugin import analysis_plugin, gui_data from spykeutils import SpykeException from spykeutils import plot from copy import copy spike_prop = gui_data.ValueProp(False) subplot_prop = gui_data.ValueProp(False) class SignalPlotPlugin(analysis_plugin.AnalysisPlugin): subplots = gui_data.BoolItem('Use subplots', default=True).set_prop( 'display', store=subplot_prop) subplot_titles = gui_data.BoolItem( 'Show subplot names', default=True).set_prop('display', active=subplot_prop) which_signals = gui_data.ChoiceItem('Included signals', ('AnalogSignal', 'AnalogSignalArray', 'Both'), default=2) show_events = gui_data.BoolItem('Show events', default=True) show_epochs = gui_data.BoolItem('Show epochs', default=True) multiple_plots = gui_data.BoolItem('One plot per segment', default=False) _g = gui_data.BeginGroup('Spikes') show_spikes = gui_data.BoolItem( 'Show spikes').set_prop('display', store=spike_prop) spike_form = gui_data.ChoiceItem('Display as', ('Waveforms', 'Lines')).set_prop('display', active=spike_prop) spike_mode = gui_data.ChoiceItem('Included data', ('Spikes', 'Spike Trains', 'Both'), default=2).set_prop('display', active=spike_prop) template_mode = gui_data.BoolItem( 'Use first spike as template').set_prop('display', active=spike_prop) _g_ = gui_data.EndGroup('Spikes') def get_name(self): return 'Signal Plot' def start(self, current, selections): current.progress.begin('Creating signal plot') signals = current.analog_signals_by_segment(self.which_signals + 1) if not signals: raise SpykeException('No signals selected!') # Load supplemental data events = None if self.show_events: current.progress.set_status('Loading events') events = current.events() epochs = None if self.show_epochs: current.progress.set_status('Loading epochs') epochs = current.epochs() spike_trains = None if self.show_spikes and self.spike_mode > 0: current.progress.set_status('Loading spike trains') spike_trains = current.spike_trains_by_segment() spikes = None if self.show_spikes and self.spike_mode != 1: current.progress.set_status('Loading spikes') spikes = current.spikes_by_segment() # Create plot segments = set(signals.keys()) for seg in segments: current.progress.begin('Creating signal plot...') current.progress.set_status('Constructing plot') seg_events = None if events and events.has_key(seg): seg_events = events[seg] seg_epochs = None if epochs and epochs.has_key(seg): seg_epochs = epochs[seg] seg_trains = [] if spike_trains and spike_trains.has_key(seg): seg_trains = spike_trains[seg] seg_spikes = [] if spikes and spikes.has_key(seg): seg_spikes = spikes[seg] # Prepare template spikes if self.spike_form == 0 and self.template_mode: template_spikes = {} for s in seg_spikes[:]: if s.unit not in template_spikes: template_spikes[s.unit] = s for ts in template_spikes.itervalues(): seg_spikes.remove(ts) for st in seg_trains[:]: if st.unit not in template_spikes: continue for t in st: s = copy(template_spikes[st.unit]) s.time = t seg_spikes.append(s) seg_trains.remove(st) plot.signals(signals[seg], events=seg_events, epochs=seg_epochs, spike_trains=seg_trains, spikes=seg_spikes, use_subplots=self.subplots, show_waveforms=(self.spike_form==0), subplot_names=self.subplot_titles, progress=current.progress) if not self.multiple_plots: break spykeviewer-0.4.4/spykeviewer/plugins/Spike Trains/0000755000175000017500000000000012650522331020553 5ustar robrobspykeviewer-0.4.4/spykeviewer/plugins/Spike Trains/sde.py0000644000175000017500000000747112650522331021711 0ustar robrobimport quantities as pq import neo from PyQt4.Qt import QMessageBox from spykeutils.plugin import analysis_plugin, gui_data from spykeutils import plot # Needed for activatable parameters stop_prop = gui_data.ValueProp(False) align_prop = gui_data.ValueProp(False) optimize_prop = gui_data.ValueProp(False) class SDEPlugin(analysis_plugin.AnalysisPlugin): # Configurable parameters kernel_size = gui_data.FloatItem('Kernel size', min=1.0, default=300.0, unit='ms') start_time = gui_data.FloatItem('Start time', default=0.0, unit='ms') stop_enabled = gui_data.BoolItem('Stop time enabled', default=False).set_prop('display', store=stop_prop) stop = gui_data.FloatItem('Time', default=10001.0, unit='ms').set_prop('display', active=stop_prop) align_enabled = gui_data.BoolItem('Alignment event enabled', default=False).set_prop('display', store=align_prop) align = gui_data.StringItem( 'Event label').set_prop('display', active=align_prop) data_source = gui_data.ChoiceItem('Data source', ('Units', 'Selections')) _g = gui_data.BeginGroup('Kernel width optimization') optimize_enabled = gui_data.BoolItem('Enabled', default=False).set_prop('display', store=optimize_prop) minimum_kernel = gui_data.FloatItem('Minimum kernel size', default=10.0, unit='ms', min=0.5).set_prop('display', active=optimize_prop) maximum_kernel = gui_data.FloatItem('Maximum kernel size', default=1000.0, unit='ms', min=1.0).set_prop('display', active=optimize_prop) optimize_steps = gui_data.IntItem('Kernel size steps', default=30, min=2).set_prop('display', active=optimize_prop) _g_ = gui_data.EndGroup('Kernel size optimization') def __init__(self): super(SDEPlugin, self).__init__() self.unit = pq.ms def get_name(self): return 'Spike Density Estimation' def start(self, current, selections): current.progress.begin('Creating spike density estimation') # Prepare quantities start = float(self.start_time) * self.unit stop = None if self.stop_enabled: stop = float(self.stop) * self.unit kernel_size = float(self.kernel_size) * self.unit optimize_steps = 0 if self.optimize_enabled: optimize_steps = self.optimize_steps minimum_kernel = self.minimum_kernel * self.unit maximum_kernel = self.maximum_kernel * self.unit # Load data events = None if self.data_source == 0: trains = current.spike_trains_by_unit() if self.align_enabled: events = current.labeled_events(self.align) else: # Prepare dictionaries for psth(): # One entry of spike trains for each selection, # an event for each segment occuring in any selection trains = {} if self.align_enabled: events = {} for s in selections: trains[neo.Unit(s.name)] = s.spike_trains() if self.align_enabled: events.update(s.labeled_events(self.align)) if events: for s in events: # Align on first event in each segment events[s] = events[s][0] plot.sde( trains, events, start, stop, kernel_size, optimize_steps, minimum_kernel, maximum_kernel, None, self.unit, current.progress) def configure(self): super(SDEPlugin, self).configure() while self.optimize_enabled and \ self.maximum_kernel <= self.minimum_kernel: QMessageBox.warning( None, 'Unable to set parameters', 'Maximum kernel size needs to be larger than ' 'minimum kernel size!') super(SDEPlugin, self).configure()spykeviewer-0.4.4/spykeviewer/plugins/Spike Trains/correlogram.py0000644000175000017500000000247312650522331023447 0ustar robrobimport quantities as pq import neo from spykeutils.plugin import analysis_plugin, gui_data from spykeutils import plot class CorrelogramPlugin(analysis_plugin.AnalysisPlugin): bin_size = gui_data.FloatItem('Bin size', 1.0, 0.001, 10000.0, unit='ms') cut_off = gui_data.FloatItem('Cut off', 50.0, 2.0, 10000.0, unit='ms') data_source = gui_data.ChoiceItem('Data source', ('Units', 'Selections')) count_per = gui_data.ChoiceItem('Counts per', ('Second', 'Segment')) border_correction = gui_data.BoolItem('Border correction', default=True) square = gui_data.BoolItem('Include mirrored plots') def get_name(self): return 'Correlogram' def start(self, current, selections): current.progress.begin('Creating correlogram') if self.data_source == 0: d = current.spike_trains_by_unit() else: # Prepare dictionary for cross_correlogram(): # One entry of spike trains for each selection d = {} for s in selections: d[neo.Unit(s.name)] = s.spike_trains() plot.cross_correlogram( d, self.bin_size * pq.ms, self.cut_off * pq.ms, border_correction=self.border_correction, per_second=self.count_per == 0, square=self.square, progress=current.progress) spykeviewer-0.4.4/spykeviewer/plugins/Spike Trains/raster_plot.py0000644000175000017500000000342112650522331023463 0ustar robrobimport quantities as pq from spykeutils.plugin import analysis_plugin, gui_data from spykeutils import plot class RasterPlotPlugin(analysis_plugin.AnalysisPlugin): domain = gui_data.ChoiceItem('Domain', ('Units', 'Segments')) show_lines = gui_data.BoolItem('Show lines', default=True) show_events = gui_data.BoolItem('Show events', default=True) show_epochs = gui_data.BoolItem('Show epochs', default=True) def get_name(self): return 'Raster Plot' def start(self, current, selections): current.progress.begin('Creating raster plot') if self.domain == 0: # Units d = current.spike_trains_by_unit() else: # Segments d = current.spike_trains_by_segment() # Only show first spike train for each index for k in d.keys(): if d[k]: d[k] = d[k][0] else: d.pop(k) events = None if self.show_events: if self.domain == 0: # Only events for displayed segment ev = current.events() if ev: events = ev.values()[0] else: # Events for all segments events = [e for seg_events in current.events().values() for e in seg_events] epochs = None if self.show_epochs: if self.domain == 0: # Only epochs for displayed segment ep = current.epochs() if ep: epochs = ep.values()[0] else: # Epochs for all segments epochs = [e for seg_epochs in current.epochs().values() for e in seg_epochs] current.progress.done() plot.raster(d, pq.ms, self.show_lines, events, epochs)spykeviewer-0.4.4/spykeviewer/plugins/Spike Trains/psth.py0000644000175000017500000000474012650522331022110 0ustar robrobimport quantities as pq import neo from spykeutils.plugin import analysis_plugin, gui_data from spykeutils import plot # Needed for activatable parameters stop_prop = gui_data.ValueProp(False) align_prop = gui_data.ValueProp(False) optimize_prop = gui_data.ValueProp(False) class PSTHPlugin(analysis_plugin.AnalysisPlugin): # Configurable parameters bin_size = gui_data.FloatItem('Bin size', min=1.0, default=500.0, unit='ms') start_time = gui_data.FloatItem('Start time', default=0.0, unit='ms') stop_enabled = gui_data.BoolItem('Stop time enabled', default=False).set_prop('display', store=stop_prop) stop = gui_data.FloatItem('Time', default=10001.0, unit='ms').set_prop('display', active=stop_prop) align_enabled = gui_data.BoolItem('Alignment event enabled', default=False).set_prop('display', store=align_prop) align = gui_data.StringItem( 'Event label').set_prop('display', active=align_prop) diagram_type = gui_data.ChoiceItem('Type', ('Bar', 'Line')) data_source = gui_data.ChoiceItem('Data source', ('Units', 'Selections')) def get_name(self): return 'Peristimulus Time Histogram' def start(self, current, selections): # Prepare quantities start = float(self.start_time) * pq.ms stop = None if self.stop_enabled: stop = float(self.stop) * pq.ms bin_size = float(self.bin_size) * pq.ms # Load data current.progress.begin('Creating PSTH') events = None if self.data_source == 0: trains = current.spike_trains_by_unit() if self.align_enabled: events = current.labeled_events(self.align) else: # Prepare dictionaries for psth(): # One entry of spike trains for each selection, # an event for each segment occuring in any selection trains = {} if self.align_enabled: events = {} for s in selections: trains[neo.Unit(s.name)] = s.spike_trains() if self.align_enabled: events.update(s.labeled_events(self.align)) if events: for s in events: # Align on first event in each segment events[s] = events[s][0] plot.psth( trains, events, start, stop, bin_size, rate_correction=True, time_unit=pq.ms, bar_plot=self.diagram_type == 0, progress=current.progress)spykeviewer-0.4.4/spykeviewer/plugins/Spike Trains/interspike_intervals.py0000644000175000017500000000221112650522331025365 0ustar robrobimport quantities as pq import neo from spykeutils.plugin import analysis_plugin, gui_data from spykeutils import plot class ISIPlugin(analysis_plugin.AnalysisPlugin): bin_size = gui_data.FloatItem('Bin size', 1.0, 0.1, 10000.0, unit='ms') cut_off = gui_data.FloatItem('Cut off', 50.0, 2.0, 10000.0, unit='ms') diagram_type = gui_data.ChoiceItem('Type', ('Bar', 'Line')) data_source = gui_data.ChoiceItem('Data source', ('Units', 'Selections')) def get_name(self): return 'Interspike Interval Histogram' def start(self, current, selections): current.progress.begin('Creating Interspike Interval Histogram') if self.data_source == 0: d = current.spike_trains_by_unit() else: # Prepare dictionary for isi(): # One entry of spike trains for each selection d = {} for s in selections: d[neo.Unit(s.name)] = s.spike_trains() current.progress.done() plot.isi( d, self.bin_size * pq.ms, self.cut_off * pq.ms, self.diagram_type == 0, time_unit=pq.ms) spykeviewer-0.4.4/spykeviewer/plugin_framework/0000755000175000017500000000000012650522331020151 5ustar robrobspykeviewer-0.4.4/spykeviewer/plugin_framework/plugin_manager.py0000644000175000017500000001240712650522331023517 0ustar robrobimport os import sys import inspect import traceback import logging import re from spykeutils.plugin.analysis_plugin import AnalysisPlugin logger = logging.getLogger('spykeviewer') def _compare_nodes(x, y): """ Directory Nodes should come first, then sort alphabetically. """ ret = int(isinstance(y, PluginManager.DirNode)) - \ int(isinstance(x, PluginManager.DirNode)) return ret or (1 - 2 * int(x.name < y.name)) class PluginManager: """ Manages plugins loaded from a directory. """ class Node: def __init__(self, parent, data, path, name): self.parent = parent self.data = data self.name = name self.path = path def childCount(self): return 0 def row(self): if self.parent: return self.parent.children.index(self) return 0 class DirNode(Node): def __init__(self, parent, data, path=''): """ Recursively walk down the tree, loading all legal plugin classes along the way. """ PluginManager.Node.__init__(self, parent, data, path, '') self.children = [] if path: self.addPath(path) def child(self, row): """ Return child at given position. """ return self.children[row] def childCount(self): """ Return number of children. """ return len(self.children) def get_dir_child(self, path): """ Return child node with given directory name. """ for n in self.children: if os.path.split(n.path)[1] == os.path.split(path)[1] and \ isinstance(n, PluginManager.DirNode): return n return None def addPath(self, path): """ Add a new path. """ if not path: return self.name = os.path.split(path)[1] for f in os.listdir(path): # Don't include hidden directories if f.startswith('.'): continue p = os.path.join(path.decode('utf-8'), f).encode('utf-8') if os.path.isdir(p): new_node = self.get_dir_child(p) if new_node: new_node.addPath(p) else: new_node = PluginManager.DirNode(self, None, p) if new_node.childCount(): self.children.append(new_node) else: if not f.endswith('.py'): continue # Found a Python file, execute it and look for plugins exc_globals = {} try: # We turn all encodings to UTF-8, so remove encoding # comments manually f = open(p, 'r') lines = f.readlines() if not lines: continue if re.findall('coding[:=]\s*([-\w.]+)', lines[0]): lines.pop(0) elif re.findall('coding[:=]\s*([-\w.]+)', lines[1]): lines.pop(1) source = ''.join(lines).decode('utf-8') code = compile(source, p, 'exec') sys.path.insert(0, path) exec(code, exc_globals) except Exception: logger.warning('Error during execution of ' + 'potential plugin file ' + p + ':\n' + traceback.format_exc() + '\n') finally: if sys.path[0] == path: sys.path.pop(0) for cl in exc_globals.values(): if not inspect.isclass(cl): continue # Should be a subclass of AnalysisPlugin... if not issubclass(cl, AnalysisPlugin): continue # ...but should not be AnalysisPlugin (can happen # when directly imported) if cl == AnalysisPlugin: continue # Plugin class found, add it to tree try: instance = cl() instance.source_file = p except Exception: etype, evalue, etb = sys.exc_info() evalue = etype('Exception while creating %s: %s' % (cl.__name__, evalue)) raise etype, evalue, etb self.children.append(PluginManager.Node( self, instance, p, instance.get_name())) self.children.sort(cmp=_compare_nodes) def __init__(self): self.root = self.DirNode(None, None) def add_path(self, path): """ Add a new path to the manager. """ self.root.addPath(path)spykeviewer-0.4.4/spykeviewer/plugin_framework/filter_manager.py0000644000175000017500000003754412650522331023517 0ustar robrobimport re import codecs from collections import OrderedDict def _move_ordered_dict_item(o_dict, item_key, new_position): """ Move an item in an ordered dictionary to a new position :param OrderedDict o_dict: The dictionary on which the move takes place :param key item_key: The key of the item to move. If the key does not exist in the dictionary, this function will do nothing. :param key new_position: The item to move will be inserted after the item with this key. If this key does not exist in the dictionary, the item will be moved to the first position. """ # Bad performance, use only on small dictionaries # and/or non time-critical places if not o_dict or not item_key in o_dict: return item = o_dict[item_key] items = o_dict.items() in_there = new_position in o_dict o_dict.clear() if not in_there: o_dict[item_key] = item for i in items: if i[0] != item_key: o_dict[i[0]] = i[1] if i[0] == new_position: o_dict[item_key] = item class FilterManager: """ Manage custom filters for object selection. """ class Filter: """ Represents a single filter. """ def __init__(self, code, parent, active=True, combined=False, on_exception=True): """ Creates a new filter. :param str code: List of lines of code in the filter function. :param bool active: Is the filter active? :param bool combined : When True, the filter gets a list of items and returns a filtered list. Otherwise, the filter gets a single item and returns ``True`` or ``False``. :param bool on_exception: Should the filter return ``True`` on an exception? """ self.code = code self.active = active self.combined = combined self.on_exception = on_exception self._parent = parent def function(self): return self._parent._get_filter_function(self) class FilterGroup: """ Represents a filter group. """ def __init__(self, exclusive=False): self.filters = OrderedDict() self.exclusive = exclusive def list_items(self): """ Returns a list of (name, filter) tuples. """ return self.filters.items() def move_filter(self, item, new_pos): """ Move an item to a new position. :param str item: The key of the item to move. If the key does not exist, this method will do nothing. :param str new_pos: The item to move will be inserted after the item with this key. If this key does not exist, the item will be moved to the first position. """ _move_ordered_dict_item(self.filters, item, new_pos) def __init__(self, parameter_list, filename): """ Constructs filter object with a given method parameter list (given as string) and filename. """ self.signature = parameter_list self.filename = filename self.filters = OrderedDict() self.currently_loading = False try: self.load() except IOError: pass def _load_filter_group(self, s, group): # Work regular expression magic to extract method names and code s = s.replace(' ', '\t') nl = '(?:\n|\r|\r\n)' # Different possibilities for newline it = re.finditer('^def filter\\(%s(?Ps?)\\)' ':(?P\s*#.*)?%s\t"""(?P[^"]*)"""' '%s(?P(?:\t.*%s)*)' % (self.signature, nl, nl, nl), s, re.M) for i in it: name = i.group('name') # Remove starting tabs body = [x[1:] for x in re.split(nl, i.group('body'))] if body[-1] == '': body = body[:-1] flag_string = i.group('flags') active = False on_exception = False combined = (i.group('plural') == 's') if flag_string: flags = flag_string.strip()[1:].split(',') for f in flags: f = f.strip() if f == 'ACTIVE': active = True elif f == 'EXCEPTION_TRUE': on_exception = True self.add_filter(name, body, active, combined, on_exception, group) def load(self): """ Clears all filters and reloads them from file. """ self.currently_loading = True f = codecs.open(self.filename, 'r', 'utf-8') s = f.read() # Search for groups and load filters for each group start = 0 end = 0 while end >= 0: group_pos = s.find('#GROUP ', start) if group_pos >= 0: self._load_filter_group(s[start:group_pos], None) lines = s[group_pos:].splitlines() group = lines[0][7:] self.add_group(group, lines[1].strip() == '#EXCLUSIVE') end = s.find('#ENDGROUP', group_pos) if end >= 0: self._load_filter_group(s[group_pos:end], group) else: self._load_filter_group(s[group_pos:], group) start = end else: end = group_pos if start >= 0: self._load_filter_group(s[start:], None) f.close() self.currently_loading = False def _write_filter(self, file, name, flt): plural = '' if flt.combined: plural = 's' file.write('\ndef filter(%s%s):' % (self.signature, plural)) if flt.active or flt.on_exception: file.write(' #') if flt.active: file.write('ACTIVE') if flt.on_exception: file.write(',') if flt.on_exception: file.write('EXCEPTION_TRUE') file.write('\n') file.write('\t"""%s"""\n' % name) for l in flt.code: file.write('\t%s\n' % l) def save(self): """ Saves all filters to file. """ f = codecs.open(self.filename, 'w', 'utf-8') f.write('# Filter file. All functions need to have the same parameter list.\n') f.write('# All code outside of functions (e.g. imports) will be ignored!\n') f.write('# When editing this file manually, use tab indentation or indent by 4 spaces,\n') f.write('# otherwise the filter functions will not be recognized!\n') for n, i in self.filters.iteritems(): if isinstance(i, self.FilterGroup): f.write('\n#GROUP %s\n' % n) if i.exclusive: f.write('#EXCLUSIVE\n') for fn, flt in i.filters.iteritems(): self._write_filter(f, fn, flt) f.write('#ENDGROUP\n') else: self._write_filter(f, n, i) f.close() def add_item(self, item, name, group_name=None, overwrite=False): """ Adds an existing item (Filter or FilterGroup). :param str name: Name of the new filter. :param item: The item to add. :type item: :class:`Filter` or :class:`FilterGroup` :param str group_name: Name of the group that the new filter belongs to. If this is None, the filter will not belong to any groop (root level) Default: None :param bool overwrite: If ``True``, an existing item with the same name will be overwritten. If ``False`` and an item with the same name exists, a value error is raised. Default: ``False`` """ if not group_name: if name in self.filters: if not overwrite: raise ValueError('A filter or filter group named "%s" already exists!' % str(name)) prev = self.filters[name] if isinstance(prev, FilterManager.FilterGroup) \ and isinstance(item, FilterManager.Filter): raise ValueError('A filter group named "%s" already exists!' % str(name)) if isinstance(prev, FilterManager.Filter) \ and isinstance(item, FilterManager.FilterGroup): raise ValueError('A filter named "%s" already exists!' % str(name)) self.filters[name] = item else: if not group_name in self.filters: raise ValueError('No filter group named "%s" exists!' % str(group_name)) g = self.filters[group_name] if not overwrite and name in g.filters: raise ValueError('A filter named "%s" already exists in group "%s"!' % (str(name), str(group_name))) if g.exclusive and not self.currently_loading: if any(f.active for f in g.filters.itervalues()): item.active = False elif all(not f.active for f in g.filters.itervalues()): item.active = True g.filters[name] = item def add_group(self, name, exclusive, group_filters=None, overwrite=False): """ Adds a filter group. :param str name: The name of the new filter group. :param bool exclusive: Determines if the new group is exclusive, i.e. only one of its items can be active at the same time. :param bool overwrite: If ``True``, an existing group with the same name will be overwritten. If ``False`` and a group with the same name exists, a value error is raised. Default: False """ if name in self.filters: prev = self.filters[name] if isinstance(prev, FilterManager.Filter): raise ValueError('A filter with this name already exists!') if not overwrite: raise ValueError('A filter group with this name already exists!') g = self.FilterGroup(exclusive) if group_filters: if exclusive: for f in group_filters.itervalues(): f.active = False group_filters.values()[0].active = True g.filters = group_filters else: g.filters = OrderedDict() self.filters[name] = g def add_filter(self, name, code, active=True, combined=False, on_exception=True, group_name=None, overwrite=False): """ Adds a filter. :param str name: Name of the new filter. :param list code: List of lines of code in the filter function. :param bool active: Is the filter active? Default: ``True`` :param bool on_exception: Should the filter return True on an exception? Default: ``True`` :param str group_name: Name of the group that the new filter belongs to. If this is None, the filter will not belong to any group (root level). Default: None :param bool overwrite: If ``True``, an existing filter with the same name will be overwritten. If ``False`` and a filter with the same name exists, a value error is raised. Default: ``False`` """ self.add_item(self.Filter(code, self, active, combined, on_exception), name, group_name, overwrite) def get_item(self, name, group=None): """ Returns a filter or filter group object. :param str name : Name of the selected filter or filter group. :param str group: Name of the group to which the filter belongs. Only valid for filter objects, not for filter groups. If this is None, a top level item is used. Default: None :returns: :class:`Filter` or :class:`FilterGroup` """ if not group: if not name in self.filters: raise KeyError('No item named "%s" exists!' % str(name)) return self.filters[name] else: if not group in self.filters: raise KeyError('No group named "%s" exists!' % str(group)) g = self.filters[group] if not isinstance(g, self.FilterGroup): raise TypeError('Item "%s" is not a filter group!' % str(group)) if not name in g.filters: raise KeyError('No item named "%s" exists!' % str(name)) return g.filters[name] def get_group_filters(self, group): """ Returns a list of all filters for a given filter group. :param str group: Name of the group. :returns: list """ if not group in self.filters: raise KeyError('No item named "%s" exists!' % str(group)) g = self.filters[group] if not isinstance(g, self.FilterGroup): raise TypeError('Item "%s" is not a filter group!' % str(group)) return g.filters def _get_filter_function(self, filter): local = {} plural = '' if filter.combined: plural = 's' s = 'def fun(%s%s):\n\t' % (self.signature, plural) s += '\n\t'.join(filter.code) exec(s, {}, local) return local['fun'] def list_items(self): """ Returns a list of (name, :class:`Filter` or :class:`FilterGroup`) tuples. """ return self.filters.items() def move_item(self, item, new_pos, group_name=None): """ Move an item to a new position. :param key item: The key of the item to move. If the key does not exist, this method will do nothing. :param key new_pos: The item to move will be inserted after the item with this key. If this key does not exist, the item will be moved to the first position. """ if not group_name: _move_ordered_dict_item(self.filters, item, new_pos) else: self.filters[group_name].move_filter(item, new_pos) def get_active_filters(self): """ Returns a list of tuples with all active filters contained in this manager and their names. """ ret = [] for i_name, i in self.filters.iteritems(): if isinstance(i, self.FilterGroup): for f_name, f in i.filters.iteritems(): if f.active: ret.append((f, f_name)) else: if i.active: ret.append((i, i_name)) return ret def list_group_names(self): """ Returns a list of names of filter groups. """ names = [] for n, i in self.filters.iteritems(): if isinstance(i, self.FilterGroup): names.append(n) return names def remove_item(self, item, group=None): """ Removes an item from the filter tree. :param str item: Name of the item to be removed. :param str group: Name of the group to which the item belongs. If this is None, a top level item will be removed. Default: None """ if not group: if not item in self.filters: raise KeyError('No item named "%s" exists!' % str(item)) self.filters.pop(item) else: if not group in self.filters: raise KeyError('No group named "%s" exists!' % str(group)) g = self.filters[group] if not isinstance(g, self.FilterGroup): raise TypeError('Item "%s" is not a filter group!' % str(group)) if not item in g.filters: raise KeyError('No item named "%s" exists!' % str(item)) g.filters.pop(item) def group_exclusive(self, name): """ Returns if a group is exclusvie. """ if not name in self.filters or not isinstance(self.filters[name], self.FilterGroup): return False return self.filters[name].exclusivespykeviewer-0.4.4/spykeviewer/plugin_framework/data_provider_viewer.py0000644000175000017500000000243212650522331024730 0ustar robrobfrom spykeutils.plugin.data_provider_neo import NeoDataProvider class NeoViewerProvider(NeoDataProvider): def __init__(self, viewer, name='__current__'): super(NeoViewerProvider, self).__init__(name, viewer.progress) self.viewer = viewer def blocks(self): """ Return a list of selected Block objects. """ return self.viewer.neo_blocks() def segments(self): """ Return a list of selected Segment objects. """ return self.viewer.neo_segments() def recording_channel_groups(self): """ Return a list of selected """ return self.viewer.neo_channel_groups() def recording_channels(self): """ Return a list of selected recording channel indices. """ return self.viewer.neo_channels() def units(self): """ Return a list of selected Unit objects. """ return self.viewer.neo_units() def data_dict(self): """ Return a dictionary with all information to serialize the object. """ data = NeoViewerProvider._get_data_from_viewer(self.viewer) data['name'] = self.name return data def refresh_view(self): """ Refresh associated views of the data. """ self.viewer.refresh_neo_view()spykeviewer-0.4.4/spykeviewer/plugin_framework/__init__.py0000644000175000017500000000000012650522331022250 0ustar robrobspykeviewer-0.4.4/spykeviewer/__init__.py0000644000175000017500000000010212650522331016700 0ustar robrob__version__ = '0.4.4' import matplotlib matplotlib.use('Qt4Agg') spykeviewer-0.4.4/doc/0000755000175000017500000000000012650522331012766 5ustar robrobspykeviewer-0.4.4/doc/make.bat0000644000175000017500000001002612650522331014372 0ustar robrob@ECHO OFF REM Command file for Sphinx documentation if "%SPHINXBUILD%" == "" ( set SPHINXBUILD=sphinx-build ) set BUILDDIR=build set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% source if NOT "%PAPER%" == "" ( set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% ) if "%1" == "" goto help if "%1" == "help" ( :help echo.Please use `make ^` where ^ is one of echo. html to make standalone HTML files echo. dirhtml to make HTML files named index.html in directories echo. singlehtml to make a single large HTML file echo. pickle to make pickle files echo. json to make JSON files echo. htmlhelp to make HTML files and a HTML help project echo. qthelp to make HTML files and a qthelp project echo. devhelp to make HTML files and a Devhelp project echo. epub to make an epub echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter echo. text to make text files echo. man to make manual pages echo. changes to make an overview over all changed/added/deprecated items echo. linkcheck to check all external links for integrity echo. doctest to run all doctests embedded in the documentation if enabled goto end ) if "%1" == "clean" ( for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i del /q /s %BUILDDIR%\* goto end ) if "%1" == "html" ( %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html echo. echo.Build finished. The HTML pages are in %BUILDDIR%/html. goto end ) if "%1" == "dirhtml" ( %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml echo. echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. goto end ) if "%1" == "singlehtml" ( %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml echo. echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. goto end ) if "%1" == "pickle" ( %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle echo. echo.Build finished; now you can process the pickle files. goto end ) if "%1" == "json" ( %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json echo. echo.Build finished; now you can process the JSON files. goto end ) if "%1" == "htmlhelp" ( %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp echo. echo.Build finished; now you can run HTML Help Workshop with the ^ .hhp project file in %BUILDDIR%/htmlhelp. goto end ) if "%1" == "qthelp" ( %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp echo. echo.Build finished; now you can run "qcollectiongenerator" with the ^ .qhcp project file in %BUILDDIR%/qthelp, like this: echo.^> qcollectiongenerator %BUILDDIR%\qthelp\spykeutils.qhcp echo.To view the help file: echo.^> assistant -collectionFile %BUILDDIR%\qthelp\spykeutils.ghc goto end ) if "%1" == "devhelp" ( %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp echo. echo.Build finished. goto end ) if "%1" == "epub" ( %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub echo. echo.Build finished. The epub file is in %BUILDDIR%/epub. goto end ) if "%1" == "latex" ( %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex echo. echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. goto end ) if "%1" == "text" ( %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text echo. echo.Build finished. The text files are in %BUILDDIR%/text. goto end ) if "%1" == "man" ( %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man echo. echo.Build finished. The manual pages are in %BUILDDIR%/man. goto end ) if "%1" == "changes" ( %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes echo. echo.The overview file is in %BUILDDIR%/changes. goto end ) if "%1" == "linkcheck" ( %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck echo. echo.Link check complete; look for any errors in the above output ^ or in %BUILDDIR%/linkcheck/output.txt. goto end ) if "%1" == "doctest" ( %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest echo. echo.Testing of doctests in the sources finished, look at the ^ results in %BUILDDIR%/doctest/output.txt. goto end ) :end spykeviewer-0.4.4/doc/Makefile0000644000175000017500000001100212650522331014420 0ustar robrob# Makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build PAPER = BUILDDIR = build # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest help: @echo "Please use \`make ' where is one of" @echo " html to make standalone HTML files" @echo " dirhtml to make HTML files named index.html in directories" @echo " singlehtml to make a single large HTML file" @echo " pickle to make pickle files" @echo " json to make JSON files" @echo " htmlhelp to make HTML files and a HTML help project" @echo " qthelp to make HTML files and a qthelp project" @echo " devhelp to make HTML files and a Devhelp project" @echo " epub to make an epub" @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" @echo " latexpdf to make LaTeX files and run them through pdflatex" @echo " text to make text files" @echo " man to make manual pages" @echo " changes to make an overview of all changed/added/deprecated items" @echo " linkcheck to check all external links for integrity" @echo " doctest to run all doctests embedded in the documentation (if enabled)" clean: -rm -rf $(BUILDDIR)/* html: $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." dirhtml: $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." singlehtml: $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml @echo @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." pickle: $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle @echo @echo "Build finished; now you can process the pickle files." json: $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json @echo @echo "Build finished; now you can process the JSON files." htmlhelp: $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp @echo @echo "Build finished; now you can run HTML Help Workshop with the" \ ".hhp project file in $(BUILDDIR)/htmlhelp." qthelp: $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp @echo @echo "Build finished; now you can run "qcollectiongenerator" with the" \ ".qhcp project file in $(BUILDDIR)/qthelp, like this:" @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/spykeutils.qhcp" @echo "To view the help file:" @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/spykeutils.qhc" devhelp: $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp @echo @echo "Build finished." @echo "To view the help file:" @echo "# mkdir -p $$HOME/.local/share/devhelp/spykeutils" @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/spykeutils" @echo "# devhelp" epub: $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub @echo @echo "Build finished. The epub file is in $(BUILDDIR)/epub." latex: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." @echo "Run \`make' in that directory to run these through (pdf)latex" \ "(use \`make latexpdf' here to do that automatically)." latexpdf: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo "Running LaTeX files through pdflatex..." make -C $(BUILDDIR)/latex all-pdf @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." text: $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text @echo @echo "Build finished. The text files are in $(BUILDDIR)/text." man: $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man @echo @echo "Build finished. The manual pages are in $(BUILDDIR)/man." changes: $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes @echo @echo "The overview file is in $(BUILDDIR)/changes." linkcheck: $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck @echo @echo "Link check complete; look for any errors in the above output " \ "or in $(BUILDDIR)/linkcheck/output.txt." doctest: $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest @echo "Testing of doctests in the sources finished, look at the " \ "results in $(BUILDDIR)/doctest/output.txt." spykeviewer-0.4.4/doc/source/0000755000175000017500000000000012650522331014266 5ustar robrobspykeviewer-0.4.4/doc/source/img/0000755000175000017500000000000012650522331015042 5ustar robrobspykeviewer-0.4.4/doc/source/img/plugin-waveforms.png0000644000175000017500000012050212650522331021055 0ustar robrobPNG  IHDRl\bKGD pHYs+tIME  TtEXtCommentCreated with GIMPW IDATxwxևߙ95'' @QBScAEV@QJ"^/^,RDCgf?B ! `>y2LYڿY{=麮h94$$bAe @ 8躎먪/$i$InY4MӤI׬Vks#<"JN $\.>vAAAӲ7FPPPnٌ墰P@  8 >f~~v` 1h ^/vEI hO>,^^MȑL&N'FQ@ 3+}yoF@ QvfرcGlXZdb00Ȳ4j%l_3<ҍ.6_-[{!=Z Xx?Y+[pa}ڹ"~@2`GӦ β* ADؼհ?5w}N0_}| 6lc`%K7Rtp`$,.{`,q!E%xN]'lWD'$5pTsש>};6ޖοI 4R7ֲٛx%._תizy:FE`3(hy5c$?^` }xeUݎp` 2p0F{Ie c*2O?T^Ks殮 +0=]޹泮c0fЍ&ZCUӫy&ISrY4W63NMZ<1T]Q_`J7$mfo`͖<|l~ mmȪܽ;ٗOWCᱍiK)-;9SFVN(-fY͓G qReʃB }8.~®2Q2f5 @QG~UZryX\~aLD6Bm.ߏ4 w\)ZAޝ*AHJj#BMG֨9s`Heǟ9[RK{ٛk[ Ɨ)rKX#ӲU:|/_N'eQdL#Q+>/r v}* D7ʅ󑝝M\\\dGVVqqqg=#O>aI,r)p@`d(zUx$>rfNNxT;~cW" )nK> \5ai 2(Z"'vk>~jc3*G1)˯BHK J*ҊL ꧼ18⢂0n@p\F@/GYt o!tO扄=]dcـ30nJw˺ Z]~؝F10#<&®<'*Z֬Ϡȭl#S?ۺKΡqL X(ʕiNv90sQ AL$h◝߿ߏ%33M>sBb %*v]dEld'(Ev Z .Y\(DwHgZ0ji;io#drSM6x(-8=IlՉ>oO~)U.TخqU@|9?qTe[_s=\F#8yޜc߿?߁!*N71[ÑWy$r_)m$+WhBvf\ܶ3NTP¾}: ,>VBrJ@y&pW_ ڎf ,~cGezGR6z0Wnri%pWX4' Q]B1=fDwk耮iGSPfUX#jB:8<Ö+ YI]XXh$ ]x<K"¾P>fIi!19V||$T%v`=xU [5$@uR1EIhZ_ږoדUti)0lͧQnNZ0{EcԚ{ra2=U`$֮.0cQF`c z&3wr,}NT? 9:Rm)Ib{USd3s+E2m.SRP'uq89)¦n~r>JULv  o 1Zbh Ό, fp QRBCC꼢.ԋH f2T-a އN1㣡Vh0Өc/&p:d"m*ah[Yl!%oHE JP[_L Lҩ$*{qupN&>̄Uy?JELŮ@Yk hZci%48D풅.53nTNoO$hShfA;dB#Ŭ BBBvp?:u.J46-͊dD+׍RM+eך8䁐ѧL̈́pPXvDXl v|k& hBr *KFCY1)ϋUNis1c G)PnUw^ :>T_-9sP8!$2`.KDPLsJG>28dq(N6b %f(YFqQ9nML5׀@a %.&%9GLRrKTXBlqSs$%0UoL MNLXxzljpO  p/^,rrb_ %RRAtNq1)+e" U5q(@ -!@ [ B@ [ ` @@ ` l@ l@ -!@ 8?=lUUx<:/{#rgz@ >C<mE(vgPK,-¯ @Ԃ@ \vl/VW!I2HU #:ZRWU-yߑS@ ԑ?4E8ʢhG_͔E8"׀WyV+1tJ?Πǿtxv2!{fǝ+߰[Ulg41a7Od=ICoxta6?t6''Oyv3 ۗƬd$^O}v`HIR(al6O^y{l^)A}_@=̗~D֖׽qqb!aM{K!@:;<.m:-X迆)?_v_~b und9Tl|O 2s">؍s&zᦋC8/g8>DyGω`k~ ]C7C7ȡ9:Sw^v43] flb?9+tt\p26,XO՝nj}it梠j[0qCdsDvmF"M_ȊsG;'JH/ &>OGo]WJun;S^W\I 1m+{ul&JQʳ$?P )A/U{}ysJ;,ژI@h3~zĚjHqjkzKS0bFw`3y)YIr=<f3ڳα2gvJzb?[(Q Z&Mɂ1ذ'OLA; uioh_ǹ fLb;?O\A 2b~oؓ~ 1|rh\l|;wb{hi~iz1^ª#ͅo~#BwY %f{k_,mˀ UL Rz)-߁/6c~[;IƣU?U(^lO:כs@ #g_7}NstìVLJ5' ۘ6t*./Mf}||,U-&F?w;-%ǷWl/R č#fPs; yf0 ZlqS1$J<KqmfVɧ#p%!}7:(_0})^ȦS/è73ph/qMA4o*zFaz9^y{ȖHZ6箍d#ܿ5b>W݇=]Pp~ݼ6bNO-S֕^K[lqiL63 6Ν>': @tt4^s9n 'aB/ZXě74X߃UM̗ϯS5m8z&?sV\ʿn=of{1V۞c 7dS"|~4ӧ~KU ]x}u,I8reQ@w1՗qN ˦'#m0pɸRaq}<.>]+cڵRuq(n\GeJ(]B0ж]0[K@cztoNUA25 > dcMў[LdU)?Z+4nhF6$ am%N7t'$~Vm\"Eg0ruළ Nh:SS 40tFQ]GS->V@~۹c$F9^CmȒuJ㘛 O മ$8w$)gu5:4 xR{J}۴^[Ӿ[jWݱaaP^~Օ4mEl7)qs&%ETvn`wNGQ/Q}')sqR,.⣯'k`Vʁ(z:9>w_U)JȺ W*nj8Sxz;O$^ҟGB[5G>G}8x4b#0sS &fTϯ9k@l +zIh\s#tR6bT)d)n=N֛锇+c7"w` B7 XKb)n(M]JtnrͿR 0(BH1V%"+ ?J`:yk`|0.]FUHKmDTLQ k "6xȜ$CHչZ+nSvkK &[u% fT*Xc"VBBo:l F Sazpl@tz=Eݸa\V, $)D:Pk[$ٙ#ZWiڊϩb 4<9lOGS|}eVɏb'*J 2to?kB!02*`Lpx`5.I7vv60%:) js'Oh3N쀯 ~1uki11i8= uZڊ~ᝣDsW%TUM¹HJM )5&U*^8mJD/ w`[oUޙ]IEܧP=iڊ;Yatj~Χ)OsӬSZunJs_|C߶_n'KtJ;U7s޵RxGniuc#n>cn=\~#Ȑ Z"Μy"8ͱg`JvlA~]eIIFZG05g+OeaH0A-mNkAǓ6R)fW58F(֓0GoS0's=rEYgm?$.y9 ,hIH"i"s!\{ #c84}6O Jӫ⹛0iFQ Xcܻ8РhZ5ºw͌0j(W؃THv(^7s&kE> hwXndRN€b?ָK4. X~-^y? 'AKڶ npQkI?z6p⡵i fyt42B`mҗu/0xA\i4#HiclWSUSћ[㌜kS{>n2 ~%]e4]hfdIEӴWԷ/uѾU! @5Eyr|; sIyr.|;탦hs^t- SfGAk6Stt "#yf*dnvLb@c/sExyy1 \U,-W5- Hs^rY4K},LDNtR@ U-B@ [ ` @@ ` l@ l@ -!@ K'=}8eJ+zJO'=}$ Z_=Nzz:O(C?og@ 8/U=3k(*eA)$ ShH+<|gl-nD%?^5vNua/" +oj^]+գw2k4m3Xd؇c{?.‹&\|zh_3M*g*=C=l1'o:o={o^}#1W ooѭ·XL': 9cd"a #-Im۫7w.|VHOچ`ASx!(~8SF!jϤɛ' C޷9]wx6hނ ː7#|Gb~,CFl+m\oAr7bwWkv~]H_9~BG!^,"wKqIpe~7~\xj]%3=%yom]z%ԏ8y0v|Z1ofO&9e6KgŪ /M[oe) $hg&pՀĪl*}Wa~TXƔgn_]0ѭWA㮽HӖGr6?XڙKGyj<~t۶$kdo\+fؒ#E#'B ásyISRm=|_,%0~Y{!vz}W&³}CXL=O{d|>z\aO6rW.{r݇`&82F\1.bTyKt3arYd ]NY&{3)y}WFhgƾZ9sگ6Aù1_vPh,&] n0`t4Sݳ9Cgqя|~(:T? tƵ͡y1Ƭrq<|CA@쨔hLf >TEa^eN7eBzuӡqj9+h0ĤQVr(`o=4 QBб%`;fepk+7Ҩh^cHЄ 4zj۽yv`f|IQ(v-B+ZwQ_Y`s)Hp9Go%f6$PkՙZ%`Ed\*b.@l%+V"oJDe@WQQNmI1VmsS@+@f;сA^ ,J9C0PBC=u7lGi GrrqD\0sGL\ٿh>nit0xe^r~ϫ78[-OnqqW:gR==BdQ>ZaUuQ7@'==h1q8ʮ(+`׌k{37NQkhE_VH|4c6mz1;#Ogq$hFO=梻2ؘɢOvE.%c :MdFLgڂԸP%+uscQQK 6+̴t83Jol1 > /1U_Ӌz3ſw㺋MrAC%k;tmcj~8"L5ȃ17fAPy9rC{۱;tXFlD@ގ$TFqճ0⚖dȂyG밓VrqSe9 7_oCmˠ'c/ڃػ!FH S2o4K|z jykL{-ukĴcI`!A}D:u޻woQu}dZ_^}>Q6@pXtxwB DJD j`i-~D@ @ ` l@ l@ -!@F%PUUUEA%(ylAt:),,]tOD$f3`2 k~?r%,L~i]p0Ο {.((cǎDGG +dY&::SRRrv]q:DEE[=]'[P[4Y 2*[n;}ꅯu۳9w ]^@#H=𭿥`|zao\z{11j(jSUU)1qMO' 1s6DtRG'5\Lr_ >e9~Qhsʼyx<̛7L`%yu'T\ o9 ˬ%={"Dߙh3ڽ+^6zEPU+F˖-iӦ,[Qp'Ӛ(=&zӫ*q݈xyh=>)ȉ'aw3xs|7{L'=}]ƣmaPtrѰ*HE1ߙ$ݿ?|:f&ܒŦ;i$yl[ "\o_V_hm8cK-IsETi6&}[韨|؟}_f\ѥ+;xWG}D A|Gg\ Պf=CueR!L`7y}T kM凂S?4w&_$nb؁$[l~c o.0@ ,oegXGzjQ[Ztѫ;w}mVyLݓY?dK}&L;پrw6f,ݛY8'cB|oo~ZG% Yd ,_ ,YBqqq?(,|2}>K7JL ҷ 5K߈zKW\ZCv`Y~G^VZqlgO2W8! +bs Ԩ-Ϟń%8Uxj=Lx^F*xv4~*KaO肽^*3胻hfRyO^ѐ= Yt6 ј#nd못Gϋm?9{Ud0Ώ.1civwtA`Dt2_)89)?t K\gny3-)2)&aHXSV許kٷMI7su\sQgHBZ Ħ?ɰ;䉦5w0ˈ1 /p[dh;}%z[F>מּ5;Dny6#!\UBVHaZ4@׎~lJt+j:W+c/1UCUqQUU ݪ7FDѷD$L-s]}e~n(ֱP8 aFˏ#ڀl GǗ^cpCc mH>G~vfb`$"–eV+UMEՍaK8mOk퍸<'Á@/JVSAJ5 ~"*W5mKU5*vw^ 6&%W ^`{AGr26eqnO%AU;g/^W~M2f1qLܧg2 ͢7>gK]Wqf8u?y`ár%8 , 'Vg[&~p Iv_|9N~/eٛjatЄ9n|=|ڧdyu4MEh2eRSow7ֵ*Alw4QL^~Y*4TGv[b/3IC9^D+X%y yW`G=M< HiclW󰗸L.2$ڤ#'{%7m>$SͮDt]S"^]Ľ۹cη|<5{"ϦJK& *N7>CMf'}ŸRkizRщ@M.ӷo_~'ך]ϫc3O'sd\ 6myݥ<~5#5F]v~{5FP$IyAHRoYYFQ|nUp>GիWӷoS l}!^!؂zM@@|у U.>GSPU*( #GDQ**N~tb 5jv~Gkp\$&&j*Ω(RW18B޽{O$[FGGcXlf!V n|ޯ%[퐐 (@ -!@ [ B@ [ ` @@ Έaݺ1 С HfQ@dݺ v47nF:tDԢ@ GPoR"eetܙpjӹsgJίQ̹kRdH=G(1''O ?D}8򱛀v;fsisܱx^d|fs~,G7jU?5DHQc<^v~~YT7.2{7 >$HFfivC6KVOp0/"szΕZY-M͂u@%o(F|s3H _財;4١ `_P#M1 Na wߟ̽}ZeI4%pJ\twu Cd}RNϗy?@toog%m<@RlK1)*FɄɷiC_wU;l [mŨɽ6k6fR5z%ݼ6b(^,mǵY'"wWý!ye.NOB^bH`ȹ>Պf=CWw -% q'c5f2Emo Si4zOdqg1|j䱽7:4s odeܻij<ȲicxIHlu/_v_Č#7G2ɦD*4iO/,{hçZ־9̓$cy𭗸$L‘,H5Šh<t+^H< NqNsIമ$8w\CRH\2P旱Ť*>.E a-ut[Y8eLD35B@L: .|_?b_A`7bm(থ0vXƤg6 [#q'3nI 1,kvɤ~#b+vkhHyZp^,,cSfGdZB TMg/^W~M2R]? V֜Yl)*ݬ[Y/ux0&l@+2=g~&ojVlQlQd I@ "zDb/3IC9^D+X%y yW`G=MN%R)7M` 㞚Ct3C[Dau"2$3g4>1)ͰRHSN{Ɩ-qt֭N/ά\D˖yGUqٽ¥x"*`{ 5hzǴ_zӛ1MDbW+Hrш(<ݝ}w33;ӊ3sٴ]˷'#ʃ@ ̞=x nc޼yu/ - K:!9ѥSSNӫP,w-BX]eOCDAu@ l@ -!@ -B@ [ B@@ ` ԝ5V#=iJǎm@; !Uց$3x`dz_UU֭[ǪUةx΄D ILLnRaILL~y5/08䭪RȺq݈$yκgi=eR}KîjbNkǙ*r={HK8&݇nl;aH՞wo`x33uY/eugB؎kniHAT>2$ &锂 PZZ ~5aMAAf-ʠR~UU^%LT<lN^߳џ>F F{yF>xr ?ӆ=n>, ] ~<;z ^/#s Ly˜ IDAT '-fK~F&Z1O3ߋޜa}r1[Hc< p4ޟ++לwn!5-߿?ىU<{緌{KKo8^GF>zVEQ{- _Ŗ\k.jnC*̄#]ލg>Dxji4KKtBıc}4ĻxѾOqiӴ¤ᗍ";2_1/_Eߓiod}y(O^_Onw@vEjc=?0{w4_y{n07?0Oݱ;ّH +(Lnx#یQ@h_\~奧qs9 ٩p1!WF{t4)m=6$=4^az7^φo2",|e-ޠķ elt#o殗JyhjϞM(H[7"gd}7VO|}k<{D|̀0KVG?[4|G7uGt~yq>: 9,8d1=]x^g{w'ڗL|eJGI)qsxdv-(Mpas1#ov$2?Y?#."ꎇV]^I }y GOH~tlQaKv [6dUsY5c#Abh?zIOxSTOM="mG1& C-JI֍G6@ܒ7"d%Nd+of:fm)FeL 6=D.w1Vt%wsn$׫l'19-JF\ߓH!׌PdkkzI aS a_w]lGb(\k Τ<-S[ud(B%%Q/E:Qah/ pnȽ7|y$tjp)ͥ@ *p$0lp$eXƒ0寲&Qj}?hSzSƸoo1%͉߆lwu REO~_SX֣ðdOix5Gz*3= [ 498tQ~@Od%_/G > MؼgmD͹ٿ>sٽ1%dWq+7FvJbwM2WN>&0E&/[ÓisZ/ þ:FFN_;]ix/k,qcV[ޭ$40k|G|u|R&{3 4UY0>h-%X~0@p@ [ B@@ ` @@ l@ 7 ׋(h&QǸ߉,rђTk*yn7t:h $a6jO!؂:YExx8Vֽ.l6p:B&PXXHDD6MDPCe>nU:x<,Rʨ,׮ ydYaAFZk!؂ {c!dxYoQ L{ 6(ݝ̴=5pp4fm+tǘ59*%{͟$o;t:13DP=s <σY&.4ɀ5 ]ij~n/ Z pLfƎF |Fi(n~wMY-0wa]UÒi)w&ȍAzRe3T?+ Ӿ(eO,>~W L8υ}^[+ϲE6ňB0Nw:- ="l푈ַӒ|hlCNc,qՂ zmL%;t#2 u U$ǘ˞WEPPB"UUG6J=5 ~"3Be^XJJL yYǿH=~bv/ZW}z&HRVngNՀtK;'`7ZԒ[b:_"u&efy@P~K ՙ2` @G`F*GݚƢ9x˘1}5[d?kl!-ˉ?N+;ο,ai|Q-ƐրKHٓA=h%ޞCYG[$3fRvvl= K itt4p\IHdE#:P܀Q$@lcɛ`fK ڗؓ7m{5O&c?. ٱt 2,1j{JYJzd(/ߧ)` qk7 ,]?R` %U{Z:ah4gef4W #>Ȉ!(8lvd hl6͟K=uopgOQ2!FcHMyIXuzhZ6!{g6akOY FWCU)ڷgH+$#VD2֬çQk3"|lT? oFqǶa@!ͣ|KF11dQ$됼R% v얣Aқ)xՋ"HC[ѣo_ D!l?[ V6JbD;3BSpo&ey.N0޸}[4EVrVCt]NL1[?~6x:eӂD OFx2X2c>Iwv^Zy h=!gM[T 6%ϻYZZlFQsR!H^^^={l㫽EΡ̡nRs@7JΪIXfRg ,˨*ʔNs :^\(YEx50DӺgghmY Vuڗ:,&}{݆Ѡ(5Ex!uֺ",^*hXCPZZ݉WRl6N~}x1b.0ӹz>Ir` .mjng]_g.BݹcEàilAEb4/ .gʟi\Zk!؂ YQ b$G ` @@ l@ 1KDpAzQ咘wqYe^q-nbrssq:BuI0vQUV˧lA"<<*Vԩޅ ==͆_~/ [PQB"""l :,sav{ tiTUY\G  e[>Bus-`;`{YoQLKCT 4kӔ2w8wMꖇ}.zucQ+f_0#{Yz{S5 4;#c0I }!vu4Jh]Yҵ$δphbH3ڞI՚?cXsS57Yl] iЪ+X>bRgΚ֒IKٓ3K+׌h]у0 Nӻd6U=߄>mD40SU[ߥUTW.~E]ŸdZ.t,sُyY~jvj!u<[R9%_I?|*ػ$?IbW2A] V)ܽ6 ¢C8cJ'z0#-c0` @G`F*G3]e}4ɲK!!Ƕmd8tԋKGʖ%ؑ܂[jrЃd &C7F 6u0ENRpKzvǯd V.cUXzl7o;gw LĴNc@u̙b72OXu‚ߦc Җ`kz1^dtߙ%Y<xuD4LbP݋Yzȃ+/~,a 79F"U41sg4-m{ش'5:RhЩ]ِQ(ܹ%kwҐVZwSdd|B 'X"LL8F6*Eiٴ =dؙoIʽ 1)8ȹ؄ ]N굎$48w N̢5D[2H!PxICH4{Z' ֤+#Z&],/gFӲ)f9JaH (JcᢝwĨh_¦ (%bNjlNNf(4jF#*IʂAA?!m t֙`=cn!F ̠Rqid5^yh2ng)=;s2A׽ՇDTGAQ~\h w_̝; '^DAJJὯdPUHtD e;VO*y.`+̥PM(B|PRpR0Bm՞}ĨNydt)UO)^و8-&"lSf%i8VYKT@CIFMann GPQFx)jgT4=QYgЁ=~^f]wCEsY*$O^EaJۏޞp1>lڱ„VT#nh#d*uq&CRl {u2FHz^EECUT7k~M9OL%=#^T&^s;C64f?J НFZ6ŊaйMLE2Y26R=44YoDVQ;W6X1Ha=:h~i`cR6,cjz h֡ 墭xè;u!ÖFtx*PP<*̛=:FX*>G_y"JoS@ ;:E?:̶nTr~qe(hNv7Ʌh5uR\j-dRcޖ>9a7td/hE.ĩ PZBg5^G@l>Ķpf!=w"F!l![aPPa8(a kN8ؼKԖ@(\JLeK=d{1btX;iQûNZe M ˹aא3= "4#FM=;r آ1gn`k M󐓶.VLdk)(< zJҙMH8N0Fԗ.5 Je~O5U)9B*NB@؄}xbg~:]hH,:`C93-͝˾8XdIר:Mi U~h &.ReyT9i'PKqmcCわix5O.{.!kjd艈Ntebl؟(KiIVtFn\NrZ0N嫠baAkIPUV#:_JKKl8NsL$I:#-sֻu} v" ijBuKR׋h$62P{*rj]` .NgF-\@ -!@ [ B@ [ ` @@ ` l@ l@ -!@ -B@P  (0Py;!A5n999\Kb1A@$L&vՊh- Kqq1999tܙ`dYDUUbŊvLzE\MN b-8ȲLhh(:t ??Fa9Qr=p8 7V+^F8!؂KBUUΔE!A5D mvUev۵oO- `{<:OϮ lK.dk1oL+=r 677qƑ[m9TΊM;G4t(#>gK2r)zyxsFڽ)In1ݝ;+ Pļ1-<6zGur>kcz"6f%TqU<؍{_D[U5 ?0nX{Ҥ}LB<ӱm[zܿz/_?HR&6ǘ݉_- H;QpB+X@W2c4:7S<sx4Jm48:_uU e ΈҮ;c[MZYO_EbB,-/Y_z9:u*aaaԩSy8G}x9|!taQy}/c>|Xj2u hy:pL=#|=&#_?ޑ؞ 's_FI*V6 Ov'p˓Ww>7z(Οd_aq*WKF rl˗ٛ(J=7!d|m/ ({7=¢/l1B~GgeVu3k;^ysL㶒{N[_!DVxV^]$FGfjZt/Yc'NZU|>d/Kkmr>Xe끑1An-'mvO}#iK}n[Z|^f z+z;;Wt|/7pSH,{Q;?kP]!}[iJa&S/̆REa7h!_; ;בpl_r佽3ʘrc,?>({Po9=d4]ytv'zH iQEs,~۟dTS.c#v4ډ;m{x3 zm!ՖƲ1RIk(>>=VE;oylw]5 $D f4\ʽN|5[檧n}==o88jp0sL3g$ UUQHir{<نE]^/Fg 'H_LVr ihcuzύK(tV|L: ΃+^܇ pnȽ7|IEjp 9^uEe9+3`}dxQL1"d@̚X̠((*N\^WW`DIh"ϧĭ`r| 7 k. ;ÿ#t esY.EASVr;Iڇ㫊L+:|VFUAU(ϝ|aH6}[TRf/{'%opN+ HrMryp Koß6\))k`qH-aWu)SK|V`E(Ex}/Xөu7}>̢Vo ;">9nF$sbK:=P|;`]*,'!L㘶0ÏEubUQS(G+=d8z|8(*7MH3c'p|QP<]`7NX,pxWP=`Ww//VZ>)WqqN*nD(ۑ8^nMNj{鯟n@ #/[.ZQ4*Uc߹d%b]?~`#ҧObI͝ΒI8;ddK w& '͢}ٸ*iۊyפF {r@asR_[5F=}S˗|h%*hBlXlþ"K*jw%x{VN <ȯ>hR(jYL=zjhZG1̫̚g_SMS^_2ۍ;g_/PAJd} jrnr|ÄuAL{O)e}LG*6dz)9ȇvDDO8 ?uS'U(˃ЉC}?ՓOʴ^J R򞆂bm&5+xn m`T o;!̧ߌE-FZ3%p'ope{(Lc;2(EegeJD x kQQ(Q/Ч  <{/=?,x=ZPv,Kזn|zO 27]9e!qt$+OeY<_{'0?}>L]_cBdffsNb9q˟y x&??|Ek0裏86V L4f͚5{ x=l3fn:`zFj:S#=1ڋ^06~eؿ?͚5f`wɄ!Z y7ד_k+T54f"ZXhbsyK$,Xj%33{JZU/HzOܜ'}.JRylcK`⹗޽; ,wUzA9[ x VXX`˭ NYV^t)III'}Sx` .zV+AAA̟?>}uN63PUt㩑x>jFTt Eldt:𬉎N;:3bkpVٹsI???!AuPf3>>>u~#4,l6k S .8an@pA 0@ l@ -!@ bAj#:S/` . n7\.<]pΐ$ Ʉnjb4rB=^brrrܹ3u+@ʼndeeb v;~~~g& . ΦSN SdY&44:_(Mp8cVa \]s@PʢlJ"6vx~۵oO܀F?p#ɯa;ƼFg]zR^=?+ysJsvKkH1hOv<&2],..˸qͭtǣJ|hehUp LXˎ%n$]U)9eRn73f|}3c&;hapx崸wr*ncЇbHA)Sr2eI1OOz~_|3c:rUL3[$F@;BwC[rgȖ΁ÒIK 6/֊RE%+$֩ؽ9s搐9sNeWxs^b؞mƒ45!F[(M f`S*Y{W{ne͏\NR)$RʗL@2^(؍՜{8n9C/>bE~4gƝW e谱i* q^wċ|2.Ƴ ŔO-gNjŬnC34m;anA?^aBO豦 ͯown׼^*p#7_סkJw-G"}-;'䗏oQA/ˁ?'|̘_F}(",rB0. c{̝BL3}Ы:z'[~yDH[fS:[^|ϵMIY\n 3 rvng'Z%&\{ײ}~O<ܼ*= 2sT x焼m&] PLe[OQ!C@SюJ)G[-[YQP%2@aގ,\=,TaΧ?!׃}3j8*Q%4^JYxFCk]§SVqT=)H-8!zkt3ȲsUY*X=zh0l$sh{]`0k2~8}O1S37%hVJG!NSQ ?uS'UxaĄ[Aqd2tei9iWv<}շ=;esY}%"*Qu;l t}2J4hqw@BuX$%Ƽo3{A2M|=6]{'F C ׽.T Hen޼y2y^M.Zm'nz "/b=݄/?w`$ o~9- [A2{ySH@ ;<㟝MM6R) 0 _0 "XA)bCH("͆W HQ" BB nMNHB $y`n7_SD"ᐊP˘Oܿp&$Di?~Wfz ~c(̛7x/ZK,|• PAq}'~0Z貢N)Lbb"[n%&&Oppx<0([ Sv|9~M 6ɬZ Bjj*Æ ;géiZӫ^&V8/:ʁ U2&$׿OwӰפK :t(Ǐ`9,GlM X;uSrW ż?NPnʸ/s?vvqdwH$\zVEqocRt[qFU6zA'\r?y+`yZn#xs#>F%_umg'𿅳yL=*uM` Ao־-5L,/ .wqoo0=/byؾoMH,ab:ďۯgܗt7;J_ٹc#ow+ɖ<@7y_~udS_pT\'{KY7<_^V"##ŋgVX={Xx1-^Ȃmn)/rk|1y==2^XhN1sGߦ8~Z }- دK;R$tUߛ#0+:#ɺ[s.9nԡ]D1EsCۉ:3\_,66/,;bś,tD9=Ɠr5=RKHv얞 ~ֿ:pߦ:<؁f/֭puD><ݯ F1ڹSX=.T(cjO]w?Ev-ZIJeNn-nsMӊ)F@@|%=qדF1iB5—f{U΃{PB F|EXlu sX5@kK5sgڝ (z9z>SUkӁȯ[V6,៘<iDK?Nf'n6U thf{崯T M]%2Q5_UE4tł=5 fBu'Ɏ=Xt#OWaβ?9g璕ۘn$8ʊAUT\H  kHǻmt"̬y-Z NUP3x B_cE",yǖ$+`BŁL:8d2`-|"%2z؊CU_/:jhZA?M]P BÇ?c~hg} e/mpMhrߣ y_Bɠ ~{7}-ZL^ o`C[]SS4~[Oh9_ lَ؂DV|:#i^瞥|MWpzEVmkǫ9,͹ P: q0P-ĄAeҥ=pZ$f<>MC}<nk˲cSÛ+ m%MT7_ *ؗvFA jk:.'NGtyP5@N [ ѪWgpye+vb E $OٙGy5_/PSϸ/*vjX=l%0C0iAQ3 / @n ~[hq 8K s7<ǻ5@V}ާ.PBa=rF{^d@` g̡0AYLڏ.^!h7չkSVOE<1Wn8O+em>M> zMw珦hd vZ΁y P/wA[pU;5{=X^c-_H SB"~Jy:a3#U?47j\sS/FʝFsmffj:}xWTY,r,czRRRz(?<34 ,gw`vQd ðEV+ڵ$ B?~Wfz ~(̛7x/ZK,|ؗر&֌H^`yS &11['88^?< :^xӏjt62]B vt~,g̪UX,2lذs4M+vzr)Z}Q9)Suz+YE"[jŪUh۶9kM 5 e5[*op8;;,-\駟HNN> ۷ZxEJb!<<+WҮ];bbbJe1M.!FC,K5C`]q1 4HNNY;V^MZZ>%-Tzl6NX֮]Kvvvh,+٘Lr{_Eb/'fDγk׮ff+"͍" ZdSpyQ`BBB)+EvYscB @A[AAADAlAlAA[A$Jƍ8|hvEBBc0HRAR7A!)) 4McӦMlܸ-   degӲeKˆF˖-.Gty`ejjOdk;3ǬeyWRF/EAt}n=R/rz g, _8rN;za|zZ O}GUpGѺw/ eǏ~SŎ +@}0_T¦X4SwvZJXh3y4LL,j`T %#:wR hdӘL&LQ~NJW6Zڟv J:=:yNcxRoxQhz 1vѕ34o ۏVEہ~ɯ_o>Ίd}huFi ܆"#OkA=lW=:7Dd%D;IwP {U BlQ)F 0p#lrt$fٜQGo7^ןtrԂp-Q!5̑7p)8*7ۃipƏ?7DoS@ɦ 0[/ЪNku^5uhtkm܍h^g%d' & 09g\; ˙^}vQ&0i nי|[9e5I|d]`5*D|aSzua Z ˶Kٛ:}+ zI8<Wop풨]_\ tw664YWӑ-=#Gt' ۲д ӎlXȷ?y;4Ymf?;_XAb{oŶ){gJ5lr3V?~\FH 6ԂCCyDwk#&t![r}н}2M0etЖUжhY7Gjt\Ƅ^m6.6{}]4`0'ޚ׎3C5CQXTkڋ%>5cLJ > -I.i=nlrx]j=m8~|Ng?a_}4n>svP jG?ÂXs_d.r!ŝsv (mfuQ|N,F䗃xfq*[ 3p{.y>nZCz;hsWu:ҩAV\`+sy$|ćC)O u4]b:. \bUSqS%_Y+yh@<Au ԒGtlAcav.+n o8#s=Moez;&lCӁAgod'X)̠˕l<9J㍻:!8 Z#Uٵ͖uUX3/VPP!)|QbX#E7K:o)Ս(,rkuUi, Uh\Tqg Šyήc Cni_eu I[EDQUC l6*] ^Qj[7"%Trgp0UWN o'\\ed6{Q[(J>NS|83,wßZX05U d,ͳ cHu"3uXyW9 Z b1l]1Lh[Vd D؂9߰|owzY| ѽT]GWh;&˴*[5БAG |6-%C6 e#f䒛ES<8RU:mp*?(w>5*g3'W6wbםۭ7}{s<SVU|}ւ%U=e2! ?ĉ,,'#7i0|F9xX?W*Wxk덿nG b"b63cLZym}!,Y"Pq1nf(rl2GQl].PaC"ưKJD7o~JeG^C"hJ ͭ/ XfIu0Lb'*$f%-ׯu+[z/\kd^f|7ݧlcF|a W]0(Qد}WE`0o @[((dgg&"ϥ j2dfdaϑ!lm({v!R{D b!,,+WҮ];bbb.9ԅrdv/[rjOv_ұիWSV-Vy F|nH͚,:'?=E~FOv]ZNG7EJftڵkξhl`0`2L7L%-r(rBffw^JPbxwMx#.hklvGjxJe_EQ&$$rnIDATC֗"Bmݎnc$   - - ` "؂ "؂   - - ` "؂ VA7PIENDB`spykeviewer-0.4.4/doc/source/img/filterdock.png0000644000175000017500000004622512650522331017707 0ustar robrobPNG  IHDRCsRGBbKGD pHYs+tIME 5լtEXtCommentCreated with GIMPW IDATxwxeڇ9szzBz(1.* XP\~EYt]˪uUWյk/kWtH(wJ2g?RNs_׹ ̙yyg~yޙ7Jvv )fΜ9$ .D`Aئ[y嶧1<*:n e2-.3Yu {'~'5|3Iaӧ^L&b#g\|D:wIlr;xe?Sf2{'`40DԊ)UUPkw;>3&^ڪuܑǜ=FDZ#>b4a6k_& rM8Xpop=W_}=hW)y͔i@f<<2vnE6U!];qWCi9{LToa<(ɽO}Ea#?$/Ǽik?V_ITUpZh2\c9^\Z3~ӂt&`|?ѷՍrȜxj@I4uwKu zEA8͙KҦ=4֊K c @QA{8T+L+Q/F9 9; R`Sc43(:j@4A=pf@AE8>˥uj.ܨٱ-Kx/wҋUSk ˷_FK|Bg^W{Sݿu3i(F_3ĔHU87y')u ؛g1@]N;;w5;sG^ѹK J-CԂp~K;gANb iEFAD`AD`AAFAFAD`AD`AAFAFAOh%QʠAN|iA`[R" p # ъvYvm˦aZAuԉˀPjۨ4x|Z#x(#'qAھzY2lc&?X@ǃ('lV;̚/ccE*8zHJIzL:rT'0 EQt]o4iæ0UΞ 9}>)0u%( ǎ zQZ{ŀA1%(;RAqҞ#;Yt=y%U`KZ06,_ւ#T{&g.j7269.zmYfS~jj*gnuSW;FP]n sمPfmUq"v]P>PI9V\{WG_' *gn緽g~;uO0=/Lphw^@ cIaz'峽* 'hak-;1'AױcjqsE`N/t5̝Kǐʶ9F\jd {W %ߦPbOv>Iqs&WץZK$p6UCi:gh*RkjH5]. P8NZ\t/^]qp(;6BKG$ X(f^# XIbu>G\:VMiq)Bb2h|: n9-TU%..U͏,w6'#aCI3K|cCr(Œ@ =ś9/IU , '!yY4g> c3FNQґݦ ++IjN'ۍ=1e2PUJpp #[m~Μ96ZXV7AԂ  # # 2y4Mpp8$ZBUUl66 U3*AiAQQ!sޣU F1:u:#DD`9;bܱ0R{wu[>dJoD`Al7Di Y`Ĩ0,n^AR|$% Ms*EQ9${i8J6,E9Qvv7rxfP4ѝ᳢t+:Er[IX}yx]YeD`FJq!f^3~{ ٻC9Eo/R-A)(F*f\ngw_ w_DŌbtk?ee}8iLtr&-6rg۩[xho_FB+<Fѻs =F뗗SU˹`ynك ~& xbPR:Xyvjrw3_OЁړ֗Fzad=i2Tc F<yDDD,otkwt+(?~5s'x߾7~B߰~L? ~¹owϟfcK98k=$^z-ÂZ+_ͻsM\r]|\:(`:nÍy*S0q>?v[[><PAV[Iu)N>AXz2X :-Տ3h]!Kros J»s9?,̴69;]xuwݯw֍;ZͲۦ)z_gQ qʧ?z_a ]?Dk6:~׏~ҙU%5֠j 1uSXfB _jꛤavh|wSTcHЛ^!SfIhG|A[ǫ:hNWDf>2 &;pUѝ5˺OҠW ` f_wSp<~eywB21y޶) < :&Zގ"o_z_+ :UK%xFc l xY^UQ\h8 7ASpќ$pۃsۃ99ɱ$ќh@;g KKy%5y*+K(v:)^ OaU،Diaǚ2kg'܃UQe![svݵ;Xl2]_2y2]-@Qs^{It qF9,0n&5#)Xz[3׃H͈F7V*~nr;OxC2s}x{`J&QX 1ݸ}'%cjZ1p,mM8n+HJ {7gv,n=?5%ݯhTzmq~`Wh4hx)s\;ߞZ]CGػyGQ<;^KrgG\.; 'نfc|۔@/EGBXh8SF݈&WFWd6_b\P.0ak[%ӆ':̊n fIbۦH3AD`AAAFsSztrشiSAiu2`zɆjժ6dٷd1%=se_.F9 BM<,b1|=V嗌qNT<OCujYwl+,Duc^DΒ;T_:Uaz*f*ǩX%%7!r  x<P\FoY.aATlbB\g""'g)V"qZO2w!_ہe /5%#ޜBu9hxz!1jWNN][)0b`P1w";Jqx0V1k5[ 23=±(,`5l-8BL`B 킯ךG%tg0Mf ~9+…9'=YĢ/?G=t ոpY56vV6c?Uf\%N`zT@tg%nK~`V/ ɀס]9z4v_s2XxS֡)1oѬ-ְ2{/tt.xb[[h:n,gpzK/r˵< c& 7{cYr`"kvJ OZ_L2iTqa` (%$>=u9*7vCjn]*\x|#0m!wO%]}i½ p W&iƆZ0hYN 瀜M-^m,HCt66UնkpĥQZȞ'DlXUSZ\S53 Vo*¡i8YHBb` k BawW- 60u&N˚-pzTfȋI,R*Ϊf;j*q>֊g-70&/ӞF:uDVVVFE~TPtw7o8HQ0ZÏf#HAHϱCfaNjqR{)411Y47V=."-HPFdҟrOѱ6P dT2llQv#b̊uaeN,ǒҧVy΀E, G[vjch$r. ͧғ Y?e_YjTUd2aX꟦ءЫd'NdB7;b '+➼2Q DK=OP %pKpB*= &P %O& "0Ic u$WJ$x  # # ,*in֮]iiiXVAiu")+t`=GO^/U9ZCe8&ĥWR8v)E`ZS" LCqQ.q 3"6,XLiwѽ芡k=yOS]WYqp M9=3ʼ|;<_E١"r/:$_ t,ihкOގ*bOdh} #4:Awb?V6o}LT_PG0y@0jn1 J(raɰ  M׆FK*mP;4%Ajj 5?nX[GH^$l^BaFL@m5/J'ocD5]Orr~5P,č~ך_:ѽf_te8;`Qs[`N=m(bXs,QUVyƶ! OsۓW7i$٬Z.k'0؁ceњ~×=(\?>b' (ǦNtMV̫P+::#wWuϷ.uᕧY56[ISn8^ DwЩVV19'"0y6~(YuTk=yh\h'EytJO§Ѱx(&F )OMl^ OO1LJ49)"0{6m+f݈|O#s27v}Vgcq֗ id2,/iCILk^`呆R~xO:w?fRyQC|ju஗F1>:UKKTi1ܙUF+m fb|l Io)QAF2Gy_WIYq똞Ǧ0^Whk#xg|8i,C1w[#j2㉉k)[ödĆK95ΫMzc:[qOkYC_̲gUzH,~.6ڙ\^L ٴKvKkbVwKbO,JMз-lv홏y6=|3l.-Of?o).To|?7G~e\eYyΛ7&_5QF׏Q~;^@{+­$M'pm ,=ry,vQ;0;n6;ʁ/$ -ޡf $!ΒAݔzu 0yۺPŃ19݇)EdUy ]Xs?H+J/6!2l߀όkg^IGvQ⥢E#݈ܿkf>4hxOOSsJŷ'dxDϏ.A'OW[-Y4:y(/D?F{k5:VtwQDL!]8Z(4KxTs2[PsP2c)[ù|7c:68܆`pKz IDATVWsSX\:v9Dj*_c53o/-4@sƐESsqqSavL&U $i)UHݤ}+Odp:%gp N8}nɏ5O@0??>Դ[)m0W>wƴfSJ0]\M 'Lټ#5^C)-q6=g#xt㾾- $ ғT#p{jWd FAFAD`AD`A|Cf]uדKYy9^MLJfE/D`6i-̟?(SRjĄ xqt Ӂ3[Izz:l6ƚPz<É⧟ռtKND`$3s!DEEb`zvV+ -Y<:OY`| smSa&c" ݎdh4b41Lv!** 6{:7[u>4g#N'.0^l>SQTUl6C\\n=6^A@D`:S5XBHH{%x|֖A-=͠FUU%|TTTz QAFhEQa߾}xfUt]w^bcP rZJrnQRRҨ^^JJJ薔bh{u ӉKAs# sf06|rJJJ4LFu4M˗>?6 Eiklzr]d8tzuBƣǿ r][Y5z?qTT PZZʮ]ؿ?؞zi%$1D`:V&c4GXX(wiFk~|}XmvUB,m,T _RRIT_&)b0&I-HNJiPf 45 !AFAAN;2^ēWD`N' Ef^斎D`K9Q<\ҿ+q}0> IJA|aei] 9D%tE9LzvьKͼ4O^&y)O^oXW&JK.t҅܍GB8GA޶*5%dᾙpAe2+"0TO^A9J#ܐ@AD`A1@Ӵһ\hVص- Jm躎`o.Vo]ʝh/^ Id@DcZNZ/.dKBϘX5uZy|eR`px|}}EdeU߈v& q] cExLXo . mp79E;s2.nv/-y1&5v0 ~=w΄h'|LWA tlODb eBRt֐'zd(D?)nt|7q$9.B;f2z#| fPwB<ÄDp>N=9?>ࡱY^"9U64Lxr}3()(ūXpyU"y/ ˉE9ѽݠ![C׽xUw V?gOxZkPyUe(`;7->aU*DŽɏ:<87rI8WĻ X,"PXTDbP,]{Ez K2(,MDPfs[f]kZ3]>3t7Ș |86eDƅڨ,p!-|U֎{]57{WGB9/KxvɆ 13vN4bPPTUl^#m$5pk_n1 $2jeDx4˚Dv#K>5jPyAюRwT?e3aZOr&Zλ$y(2nDR{d<6} K.$:*F&; "0BEn%8\.ODF#fYAPU޾)`AAFAFӏ ]uדKYy9^MLJWb'm%'g '**䔔zKj xqt$"0B3[Izz:lp駹x5/ݒEdJ23N\\!!!@@@AAAGzz: 3⨪l׶>MtR:W+]ylظnc20FL&vbbbfÆ![;n%mIw]<y(0^lFUcEQPUٌqqq޳]۶1g1l8v1eسIbJBBBX, M!!!TVVfL[2YOpQmﯴ0lBW 9 DRk ( F#ucj87]y=CkJM>, d0+TTTz hT/SfvǬܾmwqnD`?E!66}zWu޽{A12{_& rïe7;믉%eQ^A<JrnQRR+C^JJJ薔bh[I+(vi8tNv)))AӴc2]4/_Nl6mVGԿ$[HGAwS½h@\A~ ۪Ȫ8!++( ]v~K#&:Ԏ- 7-AD`:T&c4GXX(wiFk~|}XmvUB,m,T _RRIT_&)b0&I-HNJiPf 45 !AFAAD`A8w9W4MvvMKK;L 0ʠAݽ"j* $= "0:Qx<57'0d7saAń=0i朹uSBK0i̩((f5', kùplz5G 8$EбI ziN`҂ ?3!I4X[UƬl)<@LtǢV.rH62)!bڧ -4:b[a%ȞٓpbRq.p57#t%@uSd۪0 KϘD;2y@9Id֬YԿٳ'pf,]-Ȱ`, J;y1KFtp ?Q]nG0ZZ7 oJC`G.9Ýy~!s H4*\mO`b? n */c 륬n.wE3.FԐat+I9-ٳEs'MAd/fË="i籭2d%ДP, }·3BM[<݂V:;I!TLtKr~leB|Ubl/DK$/A,Fkp4T'{B23$,#8E,sDH\9ztco1Xψ Uvdo3r`0c3ecuhrT ™(y%1D= KP%acYr`"k&W9zp n~z۟$%, $joN֬ˣp.MYV@O50$^Gi!{JASf^/U6EsjQ6 f|L.v!#Hs]jqEhE-H+(wzh#$';cW5cXÏf#HA1~t>YL8C{m(0$cxwA\E:Jvvv~`Ӊv7o0PUJpp;?|MvD&tKĂp2[m~Μ96ZX֚"x***V/׳?C".pHg,J7!CIۀA1:+Rc8#AD`AAts^ʕ(,ߪ;EF0p`_RCD`guO9˺u5$#R"ȑ2 DHH;BBB4hGLky0^W}nLsܾ?巣Rʄw9&t l# ٗvC_压Mtl2_p&{/ϑDҹ 3[\Aա?89,w- & 歋N5?ٶD?U %/db`XZ\1@?3wu~A+\tTk(m *tY>m&̓W56źd̤Jv'4q ]Mp؃b3~:@9?u +}Z0Z]s{s$$ep3Y,^ӆי׼#H2-eo+X ~l#ҲZ1󟼚xbbo Os= 30ޝc1_R}WIc/1w>Ӛ|{̪`C6\-oGd啍Eg'>rc(+ߞOGk۶87T?LN[l,I/϶Sb"0g1o O7>]#_x"ӵdg+;qV\|έfw}F& Q|_0+@%1︌.Pl]3<]R>oj8դؔ&Ku塾\;< [I\i3~m#PS.3i1l&)㫏rjm6"0i ָ1[q>w1{<A1cT(X|Mx*O]ެ}| }:b- mN?<ߎG~//[UB~2ۍʜ;y{k $.̯P+i 5 /aj[G|zȮTvCyh =1/ǍE[WSພXEAQt4)łE[Fyq%;5gS|8I%y櫹A,{.{kKĐ.DXT-?m]vsi/?rCF5Nʮjޏx˝<ҵ-DPO{Sp<~eywB21%ih2?㩿}ȒUWSc>zeC}Jٴ08ң7:mʢZXֹ{^OaD16]KLy+kUoYt>g4şW,+,-?t/7RՆ4Fޚ<~y%;/}'0Tl'sNU v}̽"51^ϼY52"UwM bq{N3q3 |2k)bبpLXV+\LR.E&q_tŒE15-^\8 VǸv"~z{%䢤7]FC]T)MƱw"m,$&2d"<ϫzmh7 ŰaZth"lV3#FD5D9|>751W=yF7o^Or45WXkqwV t}>j4C[}YQ(Kө _K#2V+tPD,N!~|k {$B+A^AD`AA4 Á@Zw?l6l6[; !pPTT(.hwQNNdd'|}AiF`|@q5^@l+xu`ˇL  $iUPX+( _Ce*#6ּ"7P UH~KS@=ɝddqgd/sW!<)!S(QyNa.*)Ϋd]d/-@EQkUڱ ̗q0&x,u:>H^x^TEw_ Ͽ?1'F5zc|PMNF?/#ظzyrw6<眷d0 ]qw_LNT(F^LGğxhz֙ިnA ԌHzǠP(F7Vk5q A1xZO^Ɨ2H-e; IDATO/+Nj|vϼ!SpF x5y“H5 <]Nυ|oA#a9G. I'kko k}qgC^*\V狫4_Tkǘv+º ʇΘ*0'oII ; ZG 뭟2= ,, AjOSjæ7oSRRb]ocIq9^6}{R՚ /zcO Y~ %RԽuѬypu?=p%rB@$HPT",RE+.*jtq㮂.x19\"$d2Gw |y=կ{^+:D3r)("[Or!1pْډPi1[f{.BX"^52e kOLL$;;D0z{0ƛii+ kx@B`(;;j'ɍUPG=Y[]~ "0 EQ@(\`UP\T)="6R]xҗVTyy-lf3,ݲ[cr&pzm|㮈( h}|*i曯^$%n}pxpkgضg!.\Q@b&{M;=xڑ_ӆ~UyK).I偝 yKwd뉌}{?ֶ1om>ˆ;غ6"4_D73r^u6 "0 ]AǍWwݹ-OJ|ԮGwnWw4ɫ;pDӥCk,x9[,=Pv}oPK0"‚Z5֞ڙNֽ͚b7u}!iit#ފ &aam܄wpgrE^Lm_# PZeQ&zKEkZ*U$&GYQ5cTaZxpe&Ӈ˃}h) Y Џo??0B^yib}?o͸}*Ӟ៓_9?@,ߙ=|}U]q `Ȭ,LU|xkn@7 JAAA s%%%,,CjKTU05ND:*:aԖ ,sr͓ k>g2~Ju+[8䐒˖-#@];şMII yZQLLڅ>p<2. HgKڤv +蠾_'WpI!AAFAFA1M#GNs/0' "  # # ͔xlIENDB`spykeviewer-0.4.4/doc/source/img/plugin-psth.png0000644000175000017500000004725112650522331020033 0ustar robrobPNG  IHDR gsRGBbKGD pHYs+tIME )#CmitEXtCommentCreated with GIMPW IDATxwxTU_wLʤ'; յm]Dw/vX#ғIL{$tҀp^ϓ灹9[(?ԥ\| Η$f͚!-HzzT7=F8bw)zK >rcȑGHRy(k.rF#\.kE ,\=zHG襗kӦM# b4E/ Vdf(G K.Ev8e]F(`0^`O>xGuU?ZV3M Awݕy>#ؐNNN jC4/~Y6":ҽ{-`.FUkX .O{ Dޚ9 Wu\j7B-bkUK͠=۶ ٍ/w,qm5Y!:vNZp-'@ΚrItKEU@'G{$9eTwec&!LˏܼNez#)]Idi!X+"/iLL|4bZn[_Y+Ujtjx@9?LMrhBC+>[KH P'{(vѫki쵷ٝ[7FC`LFqX*}HB٤EJJJo`NYi {\b҅ RՈpF)ط;jz=8qFsM[Q aN$)!ХiqeIdLG\ȪV.#*Kپf-fia<ؚ WCTqծ8Ct"qJfsXI5]Ƌ 6eO~9!M#+d 08!Q*!`Br\܌ l "U\C䠪*DQBD4rrrʢcQQQ$''7-QUj"$ fzL 6W);ؑQSG ޢ+0SWF"Y$}Cذ_AJ>)SхU簯{LKwF#b>[[ 2#dDy|ʯP;O1mQxV-M]>˭hIU[էiwgix\`ͥϱuʧֽ4jԷcֳ*'H~)zE[YQ867P0KW xhvV}x;/S 6uA6lt,ӡC|Hb!990N>d233QՊ&F(//o*TP} kGԞ]dǨ)>7k(ɜĀV +(UNqCQ}$=2ƈE^@[JYaBJ˫<ɒf [}zU 5nBK2[dCx}wӎ5/qqox8w5{ f۞<>IVBYX 3pl1'J#uCUU<$ycBUUii>$rsstGħ*&;_gČ *~Q*DIQx._9~Yգ_s]%.t`äfnʌQt 養>#ZPa`jڲDRQj'4Rj z>O y۾bĚVԌ-`^avPi[j묎8!ơ,ɥ( A"|7C=;Z^%2hX?d 9(a0X,hF  ??XdYn5Uh, ~Mltrn o jmbhV;V)PRa$&a"/䋯,Ir 8dlE$`dϙOG]D#UkM~iH淜 krI3R hEtbU^B 7*z[fJ٬q91l||JKKX,L&N'reRbbb~HVp8L8nr>ZmJ\W: :st&ήW\Dqy#.5ށƬ]=jqC4 ј^J\E{$,1i ;v@=gCݔytDX=.SیRS215ކLψy#ZΓL Owl8lr;'b7ջ>6֯#!  F)4`$qYN(II`䑱1XꫫĀ^Dܕ5}bZq:xjڤk@9s6iҤSֻdL8$ce7c4%sSZ%$IN.C8c"[b2I P^ZD2pCY_J9"3LI$BwLhRȄ(Ρ42K.!$[nB>K}1X$&'ڮ n_=-& TBvNPL-}ٜ78ډ؍Sl 6^ ӂcUL=G4Qfz"uS\&j}~TkqNV=?ُ b%1@&׫ޏ$6ʊAR ( Z2#p>>qenoo(r—EN1*=6[{)uW%ӡHRwoNsNJKK ZU|"##ի]t9}x!@g瓓öm=z4)))Mޥ@ hEQbvRRR17 ƌÐ!CDZDYx1;wn t;j&m-4foL( IXv ڔ#3 'Zjx뙳;pjI_;@7;ngnF0~8I~w䫽mF jFZZ+s沉iZrd),BQl}PK+dRRq+?ij.t=kw}_kE`zMs͜6 ]~-]3p ?BEy&08=!?39uD6k5o>m͈c~t:ﻘWWngKyzǫsg$ɘisP"CA:xg=82uL: *(*#Z2UY7^j ~ cLO.\vHה-l´5 J4J+ohc&T]zi_Z-cOĎ*Ƭ[fa> Y_`;oJ/aOv7!ٺqn|K3%٪ ABg0a2j^[_)L|V' v7}O\BZ'xsFj-ԒϛWxy`.RTl1nz3s?3#bJނ,XOpj& { 3'`:O3{M)5P.r u8m wzͺz{kg3^]P]e;m#x ˆ/o'cΑXWص}R.ÒedP4|F 5SBl~:'Mf7RSoږHF\>#HT #pms΀boF6a [bGױ _/?%$Ӝl^ GI\Vdg՗?Ƅ(w {;0Fte hf^պl?c}*f\ɋ[*F,f!Ze2ZYn5L/1f. yZC+Ǟ ]$+16ݑ ` mr%4y4nr[;^^vo&ԃÉ[˽P+ZȃɅW3a7(V>l0H,@@Q2(apZyg" '?>} %%>:@[Er$`ix c<ث:S$g^nNf6Γ"\Ϟx:֊~yY^ȑ)D;`n ,ۋ4YwG -{ 0%Ԑcx5}\`|_[7䆏L/Y*>Ŭ/{YyV|kdk4(zı y߻~=\x̚q[laĉʼnBf̛7S\\|.YD|Jߛ>eEBbĽ3.uŧf"4\ 2:5t&6kx^p28ɯbN%Ca%TV6֬OP; IFFyyy*dž ر#@?9#b@^Oll,v 6K@$a2HKK#** -L7UU 8P%>B;@pR  @ H  !@@Z`p8(ADA{.::ٻ j'Arrrعs'B*>Ջ.]j|N<mѣIIIo Z EQbvRRRvb3!C:DGGxb:wdAv,:CfQVV֬W$I.AvxUp:].^zAaA }-[p&q;s3mbi&@ epIL2~v5OGmi jFZ}Ԓ_]4MLk),BQ#5kyv2/%gM⮏2sD lN'Y5^y=Ϲ-fϫb׼4}?u]]H T W~NeN 9ឨ}&*gy|żr;+^ևӛcq:Ib w/Й' !)B~nz>^ֿ_B_1z6}זm%ۭ21떙0e%?#3 k1y]u3n}݃s--Y0},/Jߩwrߔ ^Ò_\AT+ohc&T]zi_^-cOĎ*vb)Ŭ~|1'InBu,n-fJ٢VCp孯&}+mx;omWFܭD ,c' Ϯ$:{`Y9뮇9 xzTnOb<']B_/9X>YM@`'qu(<>Y(xy|8lgnR../MFegXnf~8ox_O3;Uyrٖc C@y1n~3F8uxr36Ul'y/rb>AC/؁:WLj˰d|ˠDMn^zŀ$ na&;vKrq}oK^=X9~cϣӌ,vtF1rg]C& Zr;?ΰ/ sQ"2ww`1 n!~ÒAtpfbLiN6/_c$`n\3 y؛MiX–؃UWa_mp9ZZ\)íYV 5ƆV҉jƓġ\~P.G%P^x_H'PkoWsGA魌r#HpO#~F7K2q71*uE y:*`=u&A\7e;'d: oQ2(ap)jdGvGOP{ kM/";0 d{wQH3u3?幷pdr`7snycDsMU ъBL;߸z/e{QNltO'Dd'=/3# V!cx5}\`|_[7jM/%X8{澻͇eOwԟ Ggq/*] dGFp,/oV3&9L3>f5sGESꝥ5;"ui}`JoleBo*ɉ1M1PncѳﰾCܷ\z混e^ 8eb@hLx7K/媿W%VɌ|o^&_ƽK wG{b&Գ){-y(MIs";2]>_3ɗ\şAd/DΥl/o2w߼t'WN?Gd&4<;a[DƤh<%7 ?}O'AAf>k @$͜9SKOO=T4/[_yi$Zl3E:VoHe&NH\\A1o<ƏOqq d9f#Y{5};q󌋱5*_*tV[:SQNS7'*3VA[( AlZ)))!h3 l͚r:ddd'ɻ'%| @ B@@ $B @ $N{ZAD-ڵ! 83 IDATkTI@ y] $ *6mbM v@,GiYÇt_dᔖ=ū]߼=O&m̚q p}7C@\W>HdZL/}u_eO+m9Ư.: Ύ薻;SΩZ7$0꫑ zSa Ԡ~+T?2o`ɼuQwT ,ןx6z}Ppz"$ /_|kAo/B?~Wd̵wpӘۘu˿K1B: b*[EnK`-0L닅/w7%ĂdsWpW'bWdLͩ /Ҿ8jeiCۘuL: *(*#&@)eymV*)CzL?+rͭ<5I{kۿ0_rt$5& q )߅m9ҵ) s3[Vκ!&8|>hs"2xɧ~|1S{0_~K_fksqޛ<Ԍԑd~NOYWs{L}y&~«Ks+ egX0~#4ה<~ޜ̍ϼo<sy#{;O?byj |P.~g'sgȞWy>m{\|caA[ `hd0ԿlŇ/Mǵ/yu8-=gsk2t9|ƒj )| ?`SWv]})cL;b|1cDWFIpk xkd6;` OsyYj6VɈGbɔʰ!vrvWIiFtx:{ؘWH3A1Q6c%?Pz[~77t:Wq1Iġ\~P.G%P^x_H'PJYkWblc$ 2Dl%qzGo.~FYA|Ic6q$ڏtb L\M̼mՎurUzLԛVMh ,r+"%Xk!1eM;dvuֱɌ|enó=?3"?=5= \<?Lkl3dȴG@z-iF:g wpvsVnsxLM"& /}W<R{Ws/f<8|| &7g;qM N9s b1lٲ?ȨQ +?"W۵ֿY"WQ@pYdIx@zd]|]HGz# %X(,ra^E(#ڟUPZs_7Ũ d@@ $B @ $  @p]~(3tt$j'A)**iA IfI\\6ބϧZ͚4 KNNvÁt( $''cm)@em t;@UU0EtͰZBctIJKЦH,Ԏh$ɶ κئN,\"?)cElr)g!'^{q,~d dkBf~ }&DT:;XY=GwƢ; !L֕ݗG;Ӆ\z^qKX-ńL1 Α襖8p5ƳBw[HXg.aDBEvNF'EA5;qEa-T”؝u[9DOtޖ@g68`lpwcq˶?)r g;8P'Z*`MF*G+H&svU E73;y.Tٱj-y^}9oT?f -#(IsT (ydN'V'{/ݝ',3{XHRmenA: A&sO" XBvH V=X{38u7*`ЈD=P`}.b@M9Osް'\zEtog T i{۽5~jS#e'I2R ˍ_cn1dZ;45#0vz-#5xKG `M9C1ُz-A_//UG5%Aw:T^ݏgm7,X#*!RIT6y тA kTaÁтAj񖮏}] X&Ν:j'E*sM ɀ0v/dO߳rc C𔅰u8jL$K ]-z ЃiǤk񖮏@,Z}T7ZX)UԙAyv1&er0MP`jTY,i+@( 71^ud@N66Щg\ (ڵKF'KVnQ}ƌDZe VWe̎x >Zީ{RL"x>.&_و='8fo45M Y[Xz3uh z ĝ5kV8t bwÔɞN"7 4sL-==-Dگ5q=-hMD)|X,EOD ڜhO%KV2wŌ [X$tq],N,("X&-=KzVcɰ;qoA@ HЌA|Cm+>$5k!@D~?Bm^j"2@lPl6uDAiڑ04M :r0FI0ljgkI .B @ $  @ H  ӞyQ v&rr<)1Cd# jknIGzzz_WUM6v&;G@ `ͣÇt:t2|pJʚ_p`^w=svƿY3n} 9{VNDVNdddvzܹ tٓv!QW_x5gup%XM$ & N\D8{Fb61tTdME܅bD3Iܤ`zz&5E5yxͫ=~gr?q>Q:?^g{yo1z5?nl+n!LN]9h}#}oyiow!L5': k/?/痜*;..vjwa}N˾/a}{kaOΣ`̣dOL(gъdn|x1F˫qDC9G.ǿ%ڙL(WVegX0~#4הVlXgYVκ!&8|>hrםQk6Vo_s&t|P;O?byj |P {|2~y'wMy3<~f[ C= xb~,јG1ƹ+rPլX8Sz Ğ6Vky$#.M$S*Æّ8%;î1&F1S`݁1+$P5< Kq5I209ټ,cj%䢄 +F<;a~w1z5IiFtx:{ؘW%1f_}9b 3m J~סƵCo$ntmW}{yض=neptɌχ_KH:NSyx#zUek g\o%Ʀ;2˄\A;*ϐ F#f{h@${3or+ۇ1TyA6M|QЪhvd' MBdp8hB٬;@pR  @ H  !@@Z`툪o2 m,˧GmM0r9 A!Ifhl6ۑgτa< 6hA*yyyYMp8M~HXi;B FRRAHJJbС5k/,i6#!!#ކTr|m,G^J$HtEٷo_i Z=܃jUj]{&MbG"INuD^ͬD\ǹMN>|~'@~Y|-̺9{ Jo݆oFZ o~Ey|C z2!ҥKիK.eĴd{FF:$tFyՏH*?[_/oƬ=wp 7rKߒ8z(EyU+oɏQ&mՅ#zݹcLvPk;']tg7Mkw;)nzOx5^g~!őȇ~$kU͙J5EuUgȌ3@0_~K_fksqޛ<B,xV$`懟_>5FKĀ4Y`]GRyyF^k{%B0~J|sk}}&x?/f|߿ŋ :iKZ,<&v|׺wb6Z/&P%2O3aI p)\?;,߸%qƠi@wE;*3yAЈaWwڟ]."it7Wfx͗_~YDwg-I^r &ucgȿ-LkH3~@8Zś[pI&.&fޮ[P IDAT6CeI y:*`^5U]Ӫ!/h~o߽/0F?ֵx8Sޣ :E9.c1+!VmOi-[h*BU]PUFܹa*y3i[lcX9ύMEU54]Ml3҇/~븻9K1Gŧ~J}mt" [2ɡ ٴ5?LW\1.e` 1@ZF/‰9FJs)Ald0Zw[yP^1{ Xs"b?cdf+8bŃ 巯d\q`wΨs(t7-NJOx_F,Hϊq ?]:V5TMCGGCBMa4w-'@>,^nB\{O ӫ/!uK_97~8 XWC**H\E^_8D]c"@\RSSx<ߟ7bkwiWt(,[k.Tm Hb!))cǎt:q\cXU)g2s'HC7Uq@p? p-v\U*`^C֛o"gR0(iL&$4 2d$&&V~[:R0#88,BCC3)))dffR(BVV>5jNzz:8Nw+Z*SUEFFQQQfj(:D^^ PՊncXDp8L&fs[cXl(mjC"d۫֌,AH A ADA PO{ĺb-t vb( &f3uKd]bX[$4cz瓓CBBCzoÇuՊh1֗._Է'I9gd<@:žuNku]oE'ŋ$$$!Ёl0AtR%uQ#ݭM^ݺ4bY>2[!AAAA-"4M#/*N 8Nʺꬪj5n|| d2'K}ѧYBzN[)V]H5Fy].&M32G]+ZGxrj7/:iz7SeDi̜0>%$Њ|__~x/stʫ\4IC OʮTV]ʹݏ1??a3>7xnR _?E Py V~ZP9kcx2j}%,FM׽|R_ö {㎯=%8I/SOzly49/mMe4TozT>/Ykq<0K{D罜}),;θM;x&3ͳ@!<5Xɣ0mh :!A&~H eSr1is S65$kKTv4zs'p3%|2X6 "Ŝʻ V7JI1i*ϯ;]!?ɡs81~ͧ|Qϰ`h#ӴzWm-Hۗ)k:` 'Z,Mc=+hy,y/d#[_Od@}|sZ`M$ %5ֽkϐ/ &=kj:Zk+ϥ1mrucr۰Ki&qc1]Eܔ@ ADADAAAHAH A ADADAh; Bs}J'LIENDB`spykeviewer-0.4.4/doc/source/img/neo.png0000644000175000017500000015076612650522331016350 0ustar robrobPNG  IHDRXJ!sBIT|d pHYs E tEXtSoftwarewww.inkscape.org<tEXtTitleNeo Hierarchy[[;VtEXtAuthorRobert PröpperpCcItEXtCopyrightPublic Domain http://creativecommons.org/licenses/publicdomain/Y IDATxwX"C@T43G2SsVjef2헩e{XY*ȑ+w{oE!xQ+xy nι9a9"R 4J9Җep)TՓn`.RUy] ˖ƍ[AaED<"->yZeH1qqPNq"uI:Gyٙ`θyi<+8T\aDDqgUB@I::5iNp8LUnvYɬ{&XU ٞ`zGt̖g72X0 a*l3m;fҿ01|&q8-ꨪ3ۮn0 0t uCO̡f9$W7;VϿ_G):y00 H)p8Fg_fatuXFy֬;PtI 0 ?aYV=ꐌlPrU6|#pugqm0 0ۧzכ\J.F;¢$1~Le3||k!\]&YeYqkccȓe_Gfٮ8$F15X{roi1FJ\a97}q{TL ˗8op!<}[۶͞]G']{|skלfcXy#}>|?І[7ܛz~0=XY|򬚸x@yۣ<@7O=ǎz͇ܰI2Fܯxo\;)/Ϭaht3b#cY=i5O _|kqYR,NYaƵH9.r(ʛeo^y5X-֧Tbܕͧgvx97_2/I,;y;R_*3LI{w/w~|J S\{zi*6\jWCgrziBpswJklYu?Lre b|X4;ɲK@άcB"m;Ӓx=,w={.霛{OD3P8߼7vL{&,]2._r iFB؈XI9GË>;[goe_aD  ;0+ sY9wk;cL HvJ$XhY>-֧AL7!j/2&LVSKQKS",RglF-EvO޿b%X](Nn?;uߣ,xO~$֢M8 CwνA0n?` {/Te"r'ň~h=~4 $mb]X-_~Ӂ/%]SR׿˹ W*cf#7b/?{)[, KWNe=&ʤCk@HM[GlT,u;Mumzj'  עd^tOKRt2:cLm<`S!zO45RUǿ}YqAJ* wOwؗwxw/wjWvKՖ'?n۹.5iq#fؽU]O0 W\^j^>s +/njO4cfÛfTǦu͍" \>;-+HqL[%-A`$p>|țvUDPxxpdi,]߹80n"R腝XyؽU U5E&.&\v,pŮ=W;|#Z{xIUǤ>S"Kjr[M 02BD40SΪ:jɕS0m3V,3[sf;?3rI 0gDd+vreUuLO[zVU\MTUg :wߞ ݸ\ݪz(#0 øaH}>jPx+{2WYؤqrNr/$XaF&">"WD6}u@7G٪KذǬ=x+g/-8B3$XaF$"uD+ڪ @9ޫU5.BySDbcρgS'ZojXF7 akH^-"km@`+(PJUIUO|6\dɦ >+ul6LeaTϱ=,SCU[Ϫf~; 0۾6bY,%5 a")" `7"5O%U%U^4Cd _|_bYf͒Mh̓V襈8˲:jI 0%"Ec$#P{FmDUڲ ,{% WN9a*"RxT?[_ꆑrӃ{8kHjrXe"VU5;7=8dU= #3=X-Y "%HN`%25.t܆Gzc'VU`.v"Shc,H;_H^+L\DrX@Nl!"Mn'pLt`F0/J+7qMĤi  "\19a\Njjsr0I :8z:_ iha6@g-"kr%D!vR0f;30I #8uR8z9Dݦ.ٳ=Kg17 #kY.bfޚD){jrMH&%Wi_6tsuE+;Tuef\ojH/g ܫjޒZ]pk؄rKPܿ'( <ڝۙv%+n+ADdQj$X.b,z7*-njߩVThb`eip8~,PuI:\A#v;mvCDcW` FU#W\H&W? 9G\ǰE ͡[U7 -!TDdq!|3ul~U7=ҋwv1qlp86H{U&2`5@D rX-ؽ]Hmg2EDS`PJUt{tbr{aRM_g~MHUUuN%%(̔ F4bI& nہ_/|cI Pxq \ ]F"2jruHF6iT6?P"$-a,ø9®8Lރ6;8LadqLqg!٬KӖ)TLq`MLD#@7VU~:;gYZ8*,XfT)Urcsi`LUUU}NU #C %JZ;>p͍?^$XaEYx=yYKjW'$XaU:9Ҵ0\kVbz&2 0L78:6]W\"jag`aF敵*xw;\Bu+U!7ĆaDGU/]W,({Uy<==U +xTL u+Uw.ZLBD4 aZLD 쾳dTpuXYBU4nD NW(Pp XiW,my>6i 5l³tKq||<,K ,\Tv;R$XaZge 9B%x"4ל.tƭrX9~%q1qzC1W/{ بX%NQ5lsxᡇ,~ZqͣhXUdMoɛ?/zWʨ}x'YJ2eEŹ: #T܀N!"8׹(k<'Oq,|=GpI|6wo=;]g'/͆=6b(y_!2:_LY0MI铬ضҽ|={FNf6Z؟!m\G8r4?}{/qzϧǿ#gNovZ#YpI ȵo9ND:F^Nq5Y^̙gRurI/V|K!XzBCv<<بXãYZ|ϧhJMKpE-Z>v$|uYĀ(Uck3XZܽ_/喖tё#AD~.s5EQя瞜h+^{3~s/d˜u:@mSٺ-Ž$Pa~[Dێ&~MbŘ]ޘ0V_=Rᑑ y7ڴߖ/]&~괬[syPrU=ksPd~Ϯ~g^#㫗ktl,fw3j=[EU<>D|I ȵz/ʢOf4وd#,Pj?MlT,3^A/z$%\b)dwkmo֞փZaٹ`'-isj)FwAoi1sL^QTjZ#:P\!M]GiLKj9̨.|$8k|E^8 T(Z`~%ҩf LT7v8nӁ/aQqn /Kc?M@ڏeY݃|yUňjL6Tpy˲ET.U_-b|jAI7U;VgM8|aICy==>~\۲jV΄=$XaZ^}zwP~1"eR7Hq4Y8{e !׬94o63mn\ut/%'`OՠXE:m.ZIf']dSp.M[&%`,0r(Q^ߵ>'62)0ToU/"a)tW%9wo|0UIVQɿXnvyjS=)ڨظ"FE IDAT#>/^xnn: AB.` "\U:U,Qfuߋy_w`ҹJ%K|_ұ{wqzzfY*ƽ4wNqaf ^h{ߎ%.!>隆kQLYXƬw2wV2 aj4C Ib_J`;xBe ǥ8LR;<%rTJ#t,:,K/W܏A}F.'" `0޶(\!<˷nJ\ (!z]'^ yxU[˰Wy" ʟp:8ߖ/!Bז!ۡ3̒M(Sx-Vh1(Ym _ϞNLlʙO;?LÓ;ĘYaJ%khL?&>ɫq]Q]~]Ƙvc+Dz/y!a:Si_}qb뉤cSʏϦl3LH#W;1p&$88w4 ?Wyֲq=Sv(ZЏw4dxfw3e\}Y&͛M9D&*RgOOwtJRe(P;tn͐_ˁ>~]ݟ\B;iӃeFgs"7z¾z&-GPRty Gf儕xxt(cz[Ĕ'{2n'!>:i>׷}H~88)e%40+yϧ{eK|r;+K_8@ `7uW^Hܫ?Ơnrl ekVt]7o.) ho^ 5Wkws88{SoLqqک+ϒ8T ;#in'Y jn*"R:&"<}=;~x\׫|$ӻOOJQRQđ2pG7+UӮHK@- p_ }cxprIPB=ω'ШBj{qswHPN8ũ(^8NJâ9d/D@*6oqdb.PuT20+"8bo\wzopn9#9x$:Ћ,+Ih0`C(RH&-K`SÃy[ c U`Έ9M*|/UT{<}=ԴRcū)Y$%kLu+>>I##ƍMUCǖ9kVCfɜuYEYXűpZ0Zh1HJE?NLD I_ FUg ^Wpn)+TJ5 s֬DDTuI øuy l G뗗:,ք?gQIn5A/0sߖP0 #;{SYeJV$WFP'&>F"7ו͉x 0l14t_:#J7m|-IrG:?hU] 0lyዏuf^GUH:PTuK9`/P80y o &0 # jvR+uk\ bbxdX [Uwy` g/諜^aTeY#cbtxeiBgBiB?ub`7\B^aDTueY Cg5;:,#bbxWk= RէT5k:X9LUCE3`D!`° 0lgE0b/7}m]os֬d֙`VUu3 k|ti4aFQ"0r[p5kKŒ(Q0 Z B#"8 ڮgBpj]<"R.b5R<l8Q"PU?0 ;U=<-"mNkwn{͎ՔJH3XQU,I0nTu Ddq_A*D (.ǰT5zP=Ȳ :D E\-\a63"|'WƃW/Lq>󿋁|XA}z_6b\&/&!ȝ<գ0r晛w*M]Ӝ4""c/GUq$LTX:?k~gŜFy@~d40Yad| ø 4]x^T526)"Z! 'kad>l&4ڏW٪( ±:/"+Exg3 ð0tc`uؽ8U[]<f&PՃIV80GDJK{J2j5잾w@|+"q+3 a7,0T x?M܁WU"r?+UuH\p{Tu>]TxGDv+"R4;m `qCwzGTHf}Ue"TTuBswÁ6gXPUwձߧ? pRDfHM3[I øQ}4T׺PDW <`HU X,"ծr]®);""SD73OG|{UuvVg Erv`7`qn->H-HB+"e0+[ tu[*"q?@]YO[6s(#ea"ݱƍ$XaP(\U+O33 zya]$OΈiƍ$Xa0D$/v/Z/{k:k:b#5OD]O;7NݛxX\+Ǩ+ }"[D^5*iƍK𒪮O=?"8v7[D^:SDzcς\*"-T53 E)UMW~VQ재"R{^{"2qs+|$S"p { @`qCp&#O33+qx0S $%ECgM*e<kWx YL U8kN=b|Z[TDID`6qR jtV?$Xazκq}ygmPY~{xx=Mr}~CkU {V8zȣ53\/g7{1b=Z} 䇈j^U+b."RD>^3Z5hH(Tbq3jsa T9ٽȆ=Vէ"Dm`f2C頲KLD nnC|L< q xzf˳BM EH:DE-EF#O>LLD *˶a$r.O0f%W(Dff@<0TD4cIG5^mGUDcu":yfz2˹mW|!"bj^xӚYO߉c9 Lkzyh١DUYӅj̋|wOA:{+CVɲc"b=|6&40Vy^c0\ë /S~,Ҝiq1q ̀ ţj*"#pswÊ(U=Ij]u͞o,"5TuBc^h˲H`)!ZgN«9ƹCw!`rbMip8ftzP~b]q4o6oN xAa^ft}GӾMONn;IǷo(\pf-jA*BBlc;%"(;PUuf1 U퐶Y1omnïcȹn5aWa7\M x؜:A\scUݛ6r}0]DPոtܷϹ{[l'/r N8'=]ȟpc%"DdW^o#ߗwU*ntyAhyثn׎wE620LO_Oٯb~Ը=Zʞ%{R\ʞ%{8 j IuΊ8{!<(<Źa\ ą8H>ÑGHK9ſ?eqs`v/Sǐ`qxaNn?ZJ`bՓWsj)zO3-iس!'&.:ɋ.gBτzV\t'`] L1JDpqqZ{#=y1.b%Xv}zStX4VȆ#\g&zOMXb?L^w`c9@熝 c=r<ſoq!.&b%[˅ !R A{oǸn`u4 (Jg{وy"(ݦFUcUU-`9#"j_UPEL; EFDJm;In.E og`/Yf˖ʻK!PKS 9OY.@yb+ vSϋ3x&PD Jmh3v3bqq]zOM{_p9|}W4QaɿWOZ4D;ϴdU!,0q{s㛏3x!EQIE;L}Ң [B{QAT_t;nnI1,r{+gBNZl < :Df@!zc(r+""(<e4}<9 V~@rˬ-x &2DRy+SBajMK ^§-'kc]Tn^gg=˲/1yK*S'wAoT,tB \eɚ%9/0 q DE' ,U0$hEdfql1BC)]4@R=@;' ɽAJ@)ޏo|$hW*#2[R.!T:T6g[Jnh0UZRJ8?q>fWjV)VLM>*N)3 YK/3T ՛~Lc "ϋHF+#m{Og {Ėݮ(Bzl+< ^}q-vJj^_C"0GY\U^֝|O@c.M 9g͟AjRœ- @@*4tݧSP|&b~yqY*4QUBO_}-Oڵ}/m'rgvI]37G^ofȚ!x{R\H%U[V縞 ʐRCRWoܵPB 4F,x٦&ޙJS;p.UpO~o!_8v]^\.O #/^Ν{C0{JyLULcF8{V~׻s(!` /fƉȃ3 '1U]mvŮWzMD"U  <'" 9 +fJCX13b-Jo<އ|м3ih R#x.۹.ߜM1{6`bqrLDrw1r ϏSj1 xs~rUHsR5gJV 9a2>a+Ζ[m-5 kHp~}/ȢOQAtuY"/DvH[*6;{AU͚?7,Os8EQcO=&(Q:|`}i,4̚h炝yP=&ઃٻ,yKv2E}6a%ÞfZf33){>z(݉=C-[\p`s̶LFlOr댽jU \Ci'f"]fǸ~e!rǧ["|裇ؿb?|6۰]{ǻ4xaal?VZT:c;aO;Q6^ZtّƉm'(}[ir Ѭo|sƴCeWԏΣ:3c vA\LqQv/ObYE~~g;Lx"`;]?{^EwnwB Q@ҫA(,u IDAT`h6 (t.{w%N8KH v[¾ϓ'${freoT+B΢9{>H`َv.fTRԲCJ͔u֙@*;vgIO > ]<7䎓)B<k^5zw=.JTiSQq9‰'9Bѐ;9{, L2rQ}$=CDӀ/=dR> |I NF̤Kw>5in.)ρ"[U'?Og0iϯE&(Oʸֲ?o}jH:oihCl\珙 _|KSfqV/zDZ=ph!j>S,yQ8yJ\r-}kGG 9Kj`Uܪ!:(mkYJ*Elm*ÇβM\?5`RJl*ewd̙2 pxa?BE߿|?Tm>sz5)Gч"yoR}i79w'W* PIY7"nx,Đ do8+z,u1_OZ ^XG@S̮Vsb/Y\3 ow˜Bۏ?]zRټƓ׭~8._ʔOݖɓ=>uRaX@Dxe+YK5VCjE}Cw)*T/9LH/Uz.VqY EdKꂪ$" 1AX1s 8dYIi~4.z0K}UfHn+]LW ̮U@ r4Kq>!_r`~Y,JƳTRݣTuU> i>l4`RXP U "r4>Xh kPIX︈46KI|)o0"50VVv,&uE[S.X ߟ6`:YɲȔԡ|1<|֭uS, #diRU-I*5Zxcllu^ӵ0AD{׫䏈H2:Y; [BU1)k.[$-i"R;KZϩaE/S8U'Fc9&9:501Z^n0܃}'1n\>$[ܚ.mZ{aeTy fܒ j{td¢l;=:׼۽fPI/5^CIQaI>;X66@U/X-?cT Y&D$5FL4.ȅ˷c }Uc 7T;ny;KDSuI\sT<X)ûWO'3qx;I"=; W4 [GN1yW~@LYQsfߩUt35k-c&: ~.f |: W cew삥D&B0uZV/ +.tբVU" # 2YDBwMUZV Dn8ּ)Οz0Lͬd%w13;:׀S@(}5,޹u-9ímiSi[sר̈́E|˶n`ݱ0]# J8!2 6+C1ZڻzaU=<8"֍nLq;y UlurOAE.EUϩjkLmQ`Z6!F qdj\ 4&;_wOcDXE)kD <v-ynqTfTuc3ܥf{0ssÖPՋNu}ӽ펍9|5:O;/jB F;1(+E$%J`ꮶӐ̐-,ͪuucʟFYI;1¼?M1MaˍǑw|n Ӄ&0xUD^u–ؓwE+׏Şw]"2ՒwiT=]G_WWo3a wn+S&8Uk%U lk,}CԺ &]S]LNOVB1cet^'`3?k~+`E]W[0]C֘TTuֿ|ڱ^_Fn'4K1߳'K=XggFɛ$lQ/a "RFzd'+f8̎S''T'dNc:?%bx2c-.^?f':a f^b6LMG/"iTgi:UhpM C9ȕ5~{/p2Bq*wncg80U,BDc>PTmW~ }Tu''ɃyaO5D VՃE$+ T\vc>cV;{0hD$ FCS5} ּ̉Ko!"0T//L wq\} iɴ깂V3b,a#B pE|U=3:lla:J:h?-.lla[~y: r7N'+38I zeP69o\ ߌ/`\U7M1Vq "ŀ6@ȯTQ"ԌN cSk]ÞE%YSTVQvuF` _U՟\d"Cvj-oBLGh w5-XJП^zTNxsWe&"jEL|sJlI.]! v9PUD$LUTug\k䁈Lh P3^O@ZUW' LH_MUIH`, hn-hWa'ݕywhT-S0wgjrq8j_T9f\Kvp:UUG}Uݮ,/aXy3>~mw"@51#HT{";,PѴI""!nF-,쨆NI)3O!@2;wxUSLIK%:۩ε,/aXKCh @ (Kq踟UR^Ĥz8'%!"#1ݱn)&-7h_D10 ODr LQD^_gt9hzyETuUs}I{`TÀbӨ.:&4PDF[r;P xW+G1J,>rqUS k^Œ ^ֻKWD2iya4JUt1N^7F[obcO`{3GUϨjs7P3Zry]U iq'saُIUDя{ncXj?PXc""`_򚓱`}6oQ9pGDJK\g`;F$U3vfb 5h֊7wqђ6Lkɞ)3cyllPL[݉|VH`fW]Bt]a\Hmm`30x cjbDUa"ۤb.[ m*l@D[QpfOm|R ѬF-"llU<h&"OBwW0;DM1]VF IDATe 3=iN2@KȗK*j CEdJ,5jeŇ[ew֭T kCUMmG⋕S]UuU} iUO@`n#6"m]E9wJ, u*"RxDDZHF׼FmG*?{^JGܔhnX66 @UW` x1F$U~ʌj15nP`L75`s@c`f T>}a ":3&zTʶlRye'_Ndr%?bxٗ{""a .WLd&0YDX)Oh}민@L1,d]" SUWՉ".(YD@NWIi;~ϼkb=džah=frKW)_8#soޢ@܎s&^<X(@Ub MRKoSu@U7yЦM,"y,"M\PӖ2H:G073@N`~ R'8kXD[#<2QJ5;tTBȅ`$U(""RTUyۧ۱җ\@SU=5$"0s@1i-H̼GGQ i &H U].{I 'FW%w5H-RbwP.= ajX(xxdiSpҧ}T[!'oz^Dd$kwo%cFv My 56^X0;t 0b ACLlq,<.c@"UD>bI5poؔ!'Ss27G޽XgW;27G&u)5i+Xysн#סƋ{ޜǧ-_B-и6庵gӾ2v;dͮYN 3rLBãpmIdi( {% )LDƦui+Z:qm24CYl|14꼛<| 93"^Ž"RMD6a>x|JYDZ  jSٱ(\Z/ 8j=6>5` 𹈴㒤<)e})1EK(qNa¹w|m{+:r~_脙.XVp7G/ ۀ]gΏ5؄:g'om:m2}Ύȝ5;]??fObT.Q Ƹsp:9}>&~p \0CgLaݮ#OꃷxI a퐑d͘W0ekc5=v4j?΢L"͞<57MD:Dd&m<I#7ΪLZFtсz5^+Q'tZG?E<N{AUUm@)Lna+m7w|M^0y&͞/._Lhx8?N󭞠[Γ{Lb%<6s*UK.șnMZpʕ~75EҳE;BDC#_gtk3D: >ѩacy4w{˺;ٰw*um邅= Gr7bg 9#5۽iK~2ݟg\zz |\ATu=;Um|K,q P ;&Ⱥs{wPoO"^ֱ3w)G|ɐ.3W-q+R4g1WՕ/ݓgv%wwp.\1zl.ʴϾ6X$tF}9dEڌ_8ӭi8Vuvè"x[{LQ"&"ZF7pPʃ ^6&{SݩZ/zN 1c2Op{7YK6FMMmޚAcF1j,:4x<^o*2|4&.E1{ N@XDxNUfh׷9sRbx*B.]!j|spaď![;bJM&_`vr+Dik$ϋ[63."ropp DWRh1 MbxV{fŶ-T-U)|s ~7Klo ]'*3YZ+C8z Јp 3g?]zUJ4g^K'x}XSt |'uiR^d"̐.*UնN}vFӡ fM6#1@{"Hi`^Onv'3yW"Tt@O.ݦܖ"GZ?p`m^thMYT^Tu'3j+0Z`V u*>ī{PDja>$-:ՋZԝ[_:ڵpxLU/f8""avllM ΜϹx>mU9Lwx$)HøkR `90Òo8uI9 fHcUN+LD]ehxm\7hSrxVd[1iJ(ϯ{m#tYߊ_FPg|hrv#ިY<-"},qF`O=;xU,"o׀V]unBye={7PqވbPխxt`Ԏg[A:U5,cͮ,ٲ`^ml\$ 7[jѝT7wI, fmz`˩0m <囍{Q՟0u3L6X6Ǻ[+;U]sl7]H8 B66.JQc~T|pCIAU/." ?]UokyixUmL=qN\!iM,1~3m [( Q=b)U/xJ">+F 2'&=xEl܄5v0+{a%{`jb)}MWl̉೴| gxDDlo,3ȄJ2"&f0Ukz +m SPXg}፱B6AUc#Nie6mF}""lxJc]TyOuR"fxf<U׻^ٸU݈o =`:&E/w{rh 9rL}y=pܱq!ʈgP̅WUN<;q1VTK:V:m< DcmHDzz%70;9U1(@^O ~"5ZU WgVئeW 7~ U{>=H뇜NguU۹vecaDbYE1;>=T } VXQ&"c> fTy+k ȫ{]qcOL͵omp""#Ye#o%:Fo}NgEUukbcRQՃ"2("o&BmC Nv^ "|()"]n dyI*PxCD6WEFk{ UmlHWfZxeҤJr9s9R˾ūWؙrPC066c(,ߋD>X ϼC; WD F'LDZ ܺI;JuKtvm4C owۍçtc@ nəxuEE'}NaX66c:ĊW%"y1)ESD YV͂^x0uZaJ6)+iF "T5AX""c0_Ҙ3/O8 a۬m1v/͙gpp%vpۉ d,ykǮ٘sTvqh!u%fvãXpԌ|U]$".`Kx6k;=p/CvtQo9v3p?b \ePx!p3RS61>`Z]3c1/?糇>Sv16cxQoģzJ"S,o~cmLz{TcFl캃MS6χx o$~A:ۭ^yv@0#VY".&Oo>w΍;o^d¯[8w|MZLڼ 0]D{ILLFD2V/"E0cN2b)3r'Y8(q-\f;hY[/{}Tux-"OT4N&vmO|2rTk_?,D|(mqU(qݕ+ZRaY橛Q@_>ԱHL©ݧH6lòƏ+ᬟ:L2yXTiS `5@D bI;Y)@ZbIHu=L/!哬Jpj)8`^"C62cä lMx}ޏ"RxhyDJU[W1iǬ](D?6)d%{)ӠLTcF=;eX.wNVxx"5 'ctZn#NeXa]J-+{n_JŖ ķ&vZB/)w&*&Tn]Mly#)MY,'+GbEBPAiv1ymrMDh?4.RQ9'sg&mƴTlY}AwTɐfTf~i %j䎓z./x"Պv)5~(QG7e7siNcӘ!WD6+Nf]<3Ny9BX?a=ˇ/>#`0?qbGSY"^x$-1Ѭ@#U {nI0Hk1uߊ)c3U"!GB(U'g鰥|rJfHKJ84CE"Pxגo sDnw"2WU|MkԳz1]ADEz|k"B#xjtMy0A5)ķ&9OfzG*玜cpvCk{n>\!9]>otQ U-D]#VƼ7(`a7B80'k@V"#'lz9p% #uԴ * W\\8as}sUYy˘m6T+ž{zMZyy fm;Ȝ;3OnbՋ1t3ӦLǛ>FDė8|sfo"mvߐRQ";0@DhjBx>(MG- п Wfyp>G-}N=5ꃔ[2Yflf7z߹QHi~C'loBsEQkzcLI `Խְ>U~y29Of7YSZd]:}Fu "G]jFZsMGr#_!?V`1V깫~"w?)T?4 5 +`R{J"R(WlòQK,RvCĵx=f V/J`*DU}ptQVXA`B/X\[o@ԩ_5\rq[:/?aPg=ng۬m]\soپx;p#<|%MsLUUWoTFlketKIIƷ^K/_&nTyrS|^6K\i{- k:_DJ`'ƵI4>[EkǮec(hiŠEf%oeJǵ׸rpt*r_#GQ.;U S:OREu;rq~a`;4sfcK?#cJ0#v)_n'K,QtqAcJJDRruяCprt:r ïsb Bѻ`I Z#cǁօHV,"sgͻBN$Ȑ5_2Vզ밮6eRB?Ý#jIk~`|hNr#<!Xc!CxuwW$O@9H==vBDYZ։'H6%~BtxsϑD.~3aW0C99ɜ73Ej8@:F#4*o*J(B|"Ջ֗|>|Rpx7RG7PBppA=9t_\%s.wG9ARZ!u#gt+Muߪ}m9NI'y_|UMO" YUX_5M8(U%@;L(X`;0Ygy,tqj)GY|Yb#xkDh U}#b/vtUUVHYm'&zH+U:', +!辎K[u!F"gr`u??sh!q /AB8/%g`=T5q'}U{+Vr :X"X <шx$Y SI$FSUwq9"򜪦ȟݨNYWJ7wVre"mT7N` n8p;_[g^p̉lKy*6B~~ JRz6c"zF@w`7 m196B~iOJziʼ#"UuT_"" IfҫK+>>.rL)W:>Q+?z\ ]."3_ZKd{ ܱs}>,"@D9a-1 UUEߡ"2xRDXGHb8яzXb\,@Uh:,)w~S՛7b oa:9MI*-#u)U<\8 xJ60]DK`Y,@Db"9nQb>,$~UBUϩU}_U[j.L^;`4F;Fs1("DG'"5~Oڨ5ns=#"i]"_ˤc__\%wZ7{I߸[`Y,Tܔ}nvIly/@[ͿJUj=L̲@Lۧ 1ϵADƋHw)#"zQp$"5osʽ[5k[ep-ɂ5'{nKKΟu,x\ơBkF1Oii>oc_TխTuRJ|˘|Ìo|?Dd`G 0QPwD$Kd@ɢyyʞ’HI:%z>r Nq`,%pʸǴxFU07^ FTQOT,7L <q)/"Eu,g7qqj?ɖDJfȓ+[D::XK(0VUgU=x=AuU5'Ph ϵGD~DaIylG->i&uJwd%4[ޥE]FY,#"RsXco q`=ąRӛ2FYz]NwL|+`r*dɜt[^pLBdۭ4_NYQqSNWZɒ9}d$I] "xʛYIj V\4a:0LtRy:ϡYURնJpќ草΋@D1(IgȜ1ѓ].ן~QG6n=QyOx:Nn)%6mGsL=^N/|#4,)^)+_:X"")0OY//^ԃAUmC,T+Ft'u8${Tu &W-bF"@ZCV/, #gxpOY¡gRO&00=Y6&pYiva7P  ?e UqrZQqg:X˝3y y\,u!i%kTo̲sy"XD}i`9Uu0j.U ;>R?{ybo<0<c'-&"ز`N4W#{kqcoz^Od@V}ؽep'xKS/φ^ˣ5*B%9!"0:WK1'c/F]LĨ("31k/`| 5ӑo0rN(&@tij?'.n^V/cփLwq&9S:Jw=/\WǓ!]jZ5}ۮ#6-M{QxXS48Yvp;GU/arHRFj $[)zNUn]<ˁ:s~veVJ"',,oҥMEeJ[>֝5wsX@sdq~t ]P^ٜ2f‚A‡,ӑ1CWG-!oXbNL ={pȤD."qڔ\!dIU tDi_"R˦y灥""LaVUo84gO0k8m;ߵ"ݐ06n=Hcܕ;g:>Q+w)x.?;aԮ }7Of<ߵ)ٳe$_lX@e`D.qEl$>'"D$ I9&Z58/tiSѰv[ ki 9G^ C%)?L\'r5O'.d̄d̐ocrWu, "OauYZH&`'|wC[$є-IU VՁ %="\l}2x SI@D2gnkmj1jH'{O? Mp|3wc+/L!R ze_ H雂%$4V]FR@nȖvwL@UO͹b# T޶;"R#TRs 4o̗NUyssr{,Ii-kkU""/a[8=c;>XjC`yse劙WVܖ*pb|$XERKCjdb'NY@JLq\"rXwxi NqΒ*ND[bDU?>CN;2xADvVnJFtMm3%+VG׻9:XK,8b3Tu7lP՝rNN4-Q "ܛ-X6zTU42? |l޵q٧i~uD`ڗЬNXWm%YyXb)4~L2O{َXqU]qbD9)MG`9pɉ3%44K9q,R|U]6XbS]4g;UM{0$e¶Y` xU Wπ$~Ny)H1F SY 2=uWlx/ <<`ݎa,%&_cn$}=*!"8T5X_x h%4X8YbChϦmX}:XNMQI޶'1ۉ!es@`,o}fDUaV,>]lAH!ߺACe,`Y,T4Yކ\L4^`9!-pXe;,^D 0OfPD2z׺;GU`[`CFN;'q#,,>o~i󢪝T轌g,}df@[UebcbGoT:ӒP cHO^>E~"An6p}Kw}CP0 U{nf,}sznZtSb*L8E=hnW%0Đ7Wvv3y$ھ}n6 |lf5;-CiCu>Vc\`Yw^, |4MjTm`7/oILH0^D&߭LjrwF. ۭU:9t]2L_/Ӧ(=z" <H lj:{G{h?& {ϝ8^ML\D#H &ax|R?/0DDj5мqeV/Etd%*[va韛1o;(K`\."4q>e℈,yU5yD%&G.Z⌈D+yyQU}%i??tTU)|RB'ge$kE+H@`wvDdrp;N@cIqFDZa^r&ԼK@DZ`IĈHJLbUW "0pq ө| hV͎MID.*KN;2a,/a,!"oo^6LoZ&ˆp*QGc=1Iʼn*UDU8;6r{N]4?r_!" /sǨj?TDj5ŠZ U=tU޵T&"{U[nL͒aL}<G$+ lh \&|dU=,"RĻ݈S yHXnu," wr&I;!"DڒPUI~c."HZZ1<0KDJy$K:Xa@m`&@*i b-BUU9L `e1Q@+ 51tEHX,u,"u9͉/~${z-|cQ @MC/0]DHsU]t D$գdx%#"a:8 I}|i,X<1w@ LZFDD2y:a(009Zz޲˒%h2Ojr(V 2$(Ht[ |< '"0zR:XdG!캳I`|x dX- UݩM0/kV6`%&gl,:@]YdITX˒,vE %&/$p5VbSTgPd}i 8v`Y`Y!N9Ɉe=yQ zВHP+6њI(#"}#"YE5Y\E7eqJdD:=*"%4t[]$*T4>>Tu>+"K0] EE$Z[hqnSAi>1Q0mv"tۋK^ADzTSoۓHvPUR E%>_%J`M3ch=nqnILZӶZ  EH`20~kJ,"?aN{5拤m$jD$&Uը IDAT >TՐ[G0y.`>˱;dϖ]z)W˖lYғ"MāKW <{AlrW[ED.(#U _1@>a$D}SB~/ctޫf$$"RD&7eU%/qV՚Ѷ>L‡'[֐MP$ K8wWm9trۭUc,/aCD1﫫&ZDd&1 :aVUm?,Iqbce}Uuoڐ>2!"\" ܪ[6Bg#o e%QU~]>v"Ѕi [EhILJ/ݯΕfnifՃ$UuPӍ`p†H窉'w2jHg\%qDf *2W:Tp/u:_:X$~Pկm\zm1ɺVݒQճP>0D鄘_DJ\2'[hÊ 1%H& Nuʱ%$~ޜd#I1hv7:V²XUݬu*EdԜ"rB_i&~Ux>OMe""BҾ@KeI8%31\ک%/X`rP@lʒ Q1MGՀDddtߨt}}ZQJ 7E$J:Xʷ^$Tu5 qO8?m%YRL$3"RhٮEuX̒qphgҤN" eIr+@k`m{!<@ ">@`aKb@Uj3̒xofTױE0u*_=ס,IlY3Ldž.U %i܌6}lNb{2SSF, :p ZD8¥wPjק껲gZݟn@L" $!DQjnWlRDU/Ӏ&"R(E*+}Y"S+"<ͭZ5[-4SҴ~*E$u,IgM MU{٤LT䞴aKbDUj{LQ#`4)Vgw*Z+ k:X )1U]VO5\AU]Tarly IGۖKUKԭ^WcU*FJ Կ*#%q^yך$ 0E.ZbT5i>їytp$ rKLT & <y |Ed & LL l5NZ̸o#sƴɕ{=[FȢ7wopx}~s!W̷?93pԨ_$C5W)s?s&9gv;:XD#0 4W#^6)I"#WVW=k{?}."ՀvgtX冖t Ž=;W>|<֨" xi$=%Ӈi[עe{O/W:"ߝ|F|yMPyO/#%1F>U]mc(1"2pj؞+.j UU#g>e'f7cۮ#NKl9S:|/KdΔkw5#._eպ]/K>]jN>Ǒ6 `ȗ'+L~[(SMaTlu*S 'OcŚ=@lSE gγsq #U,֏T{ E*URd"w,G7?15@U705&2OU7{H% "%09YO+U,Jxߜҕ[ RŒՓ̙U 6~å!|41.7A!22ΦmhLs1l*#"gΡ1u#sv#xdˎ۸1~`p=_9x"|4y_:X G>!"T"!.*"-m3Ӫ%/&0=U !yX+喈H7oZW(?G?ǁçyo؛8hs]8v,M{%s1 ~cGD[S8yߏ} QUC|fV~{1c;}ULBYF)DŽ1̝:35o:F왙UF /f FKU=$"A- "޲K%";ɤ81_VMTWKL` @)<$V+ mŒXQooE$ &*K,?͂.zOF,9{ǚnʯ7ݢ*+-D6'W,E jT-ɦn:d,>,N$8IY֨c =mj䌑Vg8{>]mQ||\_L%V.]JXajZ9/׹0>^_I˽fUqR_|L$7=z@KY&J@TLzD<LIp T(qF-w\XѳO9@]5X|u31?T(~Y3pd`Զ;cdozEtit94@eȝ3 5ЉSgI}V4*+O_JpL[`sH"UILuZ`p 褷zTPu`un-t7<[,8aʽtaEWSjn%n2yHjd 6m?āç8r,uQf雎‡*t 5 Aᗉr`QKw'Oeb]7WB(]"s?;9|ԟ7!q6lrc͓f󳳪xØ䆪H=LVD%mK2`LެAE.]潏gą͝g.ɻ]1o<}4%e#4kXqș|KVf|fG^5uZ |lqjTw>||\ti_Ͼ^ĺ|%KCVg. I@`.(HxD0k˃ϩD/Dd r,N[)zmq[0U#bXWpH׾oybC|*{3͝1Cڨ^HlyS#6l=H(V8wr|0eJ:J2Ik1GOr9*+EHhm9 T즊;'o D˕AJ"ybl?CY\0g/rT N9G cÔ}@J|ݕ"E G;Ok,/u,!bꫀwUuiZ|70Kԑu,{i}gƼ\-"Ԙ2:@~ +B'1#.Ul[\._`URq[U㮌h9zݮ<l1ʾU xGUOy>KCDiM{KvӤ{w"^L&uޮV='U;ՒPU,>>sKD֪j4Ϋ=h%u}^!_۟ho9g'?|8 +#.WU7oeIZH L}[i  0c~h,Ɋ,T?԰)Ͻ;%FxXsǴF#"'nw+O8U" wK2߇$OžʒL*>yB?M^XWCi]sܪT54Q8X"A\Z]yO$dɆr/˗BUv|;YN@°1O;iF]n(·m% >Ux>odI亳uKD\|^q^9śOt_rݕUD|-"o<ҡ+_ZSBCֳn]κ9K$"Kd_iLz5Mx⽏g|_($V9=ֹu91_P)"{FD(_=CZs|SOy\߉HodI:Nj{ |um,b@m޼""dR3e&>>IBr7iөںkD$\ret퓢%8wi+T$-D\3=]jlIZ*}/K[~#XRu#Z?yr'"Z";::Wx@4M"$-Tu WzcSjlI;xg_ϗS~C?ݪw,)l۪43`+çx]UG"ED.].șFXe9 g:#t9oǼI_7l߼f%[7b錩 fK|5g.&"6`Xn\^4+k?yg!ݔK1w7.s龯a`˚$pQRNꓰPAhHGϒ=\wqrW{~5a7 JDx8vj4^ѻ+,ZO'RclXO "" 368w4'ao?M!,4_$9r˦X,$L2d$gD`mw<6[r)8\|HMS^#{g$5iA6OƸoU fTʘ+R,ƹv~k}pn~LXHmLjoe,".NWwoU4뀷4 vŅ]'qYyccbr2vi }nWr-EeR [ᏹ3b,ΝG]ԠC"WXuL੓|*St^&R )Ӥ1.D#.&S/Yݛ̒}DD8HX8¨{o|L|g CŢ~_kYФOW,F8kǽ|w\.>G@)T Ksv xFO%X(zv"٨c.]K֡C"<]0i̞ͱW2et\#X,U[]1eQK޾R!.wh~#g.X<[wl- +ٺX<[z,A<߰+C֍X(ݪaiQ]`Ѓt\=To1?"S֬{kןؿz|_ O E:Lþ=P(swDgTCŢ<]zviwl͜{oykvX5r[D(P$Jfjܨvs>П)#ߥˀb=%*Ve~QQO_ÕK9s_Owa1޽/tõd Ͽ7&f]ɔ͏Oo1{anӧQ#zwy:HSnr>П0=v[lY>|ˆ 9w4,]]?Ƈ?/aټf%hnp{6g^]~L{~?+/1u09<,̡n4x)V̝)z% FL_;b 8_|f1i4O &vsN3U |i{}g}6%k(Pϥ Ϙ%+my g*LMDD8EV\t) <ψ]ɑ-^IǗ`ЉӪGo&0\ Cٷu|7oFǗ۴ظrM?gON'?ſ+xdА+l^'gOGxɣ\% QUJu쟘3s^9߭ŀص_~5kY?Ř{X/bGfRqԚ6CFn] Pisjyig:w gϢn7M&odɞ]{7໯H) =OH ZxU pX<;t8y v64lu=7~S'tU}LjjE?ЬSw*kDxv荎[t|M,Lu(Pue^ϔR#$g-[̕Kn:-',*s""oQnè=f!sHf-8y 󅅄໯iܾ^5mIb%yă 7"]ƌTUU!skݞǎDEx}{XmX,O,bسiӧؿ} nh QǖY' Y\TmЄ?bܹ㎈5TאZkp>JqPNf);/mGq!0 +g 3#{wFC`*Y{zDf.JhH?|4{vq`.?GxNO>{2fbː~Bv@Yr>\ ʏȞ߶ LscA#Q^^cZ3vspvEsEs1ڒ$@u)_.ʡY6G&5RGE"9c++TVN(\$]SNX٪\'shvIxXaa-=TDEҤKϲ?I/WWf|[޽۷r2U\)_+ϦD1wj%KzX,'YF~#k\JoT@ԍܙQs1c'7^o'OPQ3~6O$*% 6YIj5T(p -D{Syom֍9~`6d7?cpnt.] c˅'cv1w&_7("BRexvp*iKn哂c^Ago8.-}zGȐ9 m{㫕˕'ֿWXpl>\scV{.Ѩ]>qLǟbׂ&^,%Nx+屻9lX>?=ut2y]x߾;ɂ/Z{wWUp`* *kK{nE 53j&M)}-0P2VKI4uE{-G^s9y<}vI>EBZ"sᓒ: W,!h DU9u0/O?wJTv•˗]=Evs,sP*Uv`Ǎ"oVѠw)ތ+nyrIIq6)qI/ƀ1߿sM[Lxd*yRS}1/Xܛ['$`ZΟ;CJB,_;͐exݤ\-;ͤSuKTj|(csX8tj|_N~_Σ5|:T|P̬U`]rJ݆)uibuφ%s_ϾՈUC ΙS'Y9}2-ׄ9-b֮aj y~ml Zw3imd!9. !c'2d:A 8T}Dڨqh66Ůi8OD~9\=ET* vvR>Ԥu[.Ş8j}K8qQKu࢔R7Kȁ-5p;RJnŊ+0 2wդu"#Hv]vEKf h4iݖ5\OA=IC3y+LK¯#ר ANV&V"Ƕ{i&C#8~p) qh(V֨g}ڮ\!dvZɿE:-: WpWk5i݆14#l ^NTǒ/;;Æ/ѡkY|(e+ ?5\,̩|=Zu(`Gc_*Vl~ݾ4`ocED35`^xo"m'xaWή|.9Ӊ83 p ݇ 7 cӲEMVNcu'vE W7b׮Lj\_M3!L6kXT_{ˢc:q*Nc\ l߲g[P>07;b~t&;hgk0D^ʁ]I슏18P<gcc˔|t!SvOcTt0}iآ5Ujߣ9Ǫ!9m6?|遯ks27ZEѪ4 v֯g_/V^-J&)vwDzyLc_~l ^^lدg_"YiZ (#KXcEe!D_`V&>s 0E}eXT!s>/ێ k >^Ws~]ΫM|% s@kݗ-:kj?ɳm_Lmu/{D`bO?17X ڼb[[tDYMqCٳmyh~VqgC`XYx9YtB]0nmcJJb,/D4Âq^IߟzCe8}{L/ .2sGŕHΝΠeeY3;_2v,=ڂ[OZj w`/2vJ)9o.uybAEyYe @9V)9'>6"O%)*~Ʃ++|mgۦƵB7}^6˳Aٴ_)]o)0w[xP{3>HȶS"g3Nٸ ë=MKM-LI͍~n 7-Z4ޛI)X,(,XB[Y*9(V{yXe9_,7o)Ͻ)V1ZaJ)v>\k- S?c:-afzy)2CuiGTq(JiYR&~-oҍF1E M*k)er_~)ʽ_y(kXĪO ń~DH]*̿pS]Z[oբ(eI"VEQ3V-(/kT$-5MBӎ52WēGœ[ CE1ZxB)-5aUQGF !vbgEef0=pn4/I]!,D\)`uwa%6-VЍF?R1RIQ՞",.F7?*vJݷi怔ݥw>Bx)o߀ A\*`?ٓTJ7k(ç\X`Z[hZ] gI5$+X8YTtwRʈq!DuLd:t̻fSJq)y$ MӎSJy~^Sa FV}k}󞑊r+?`)uHJ(\jEyx @: M"uեn=ۥhձ yO9w6$qQ$Fۮ$WiR *!D7!DIoZ]hܪ ÃJC) ϓˮIӯ]-ԀH`rSV ORJO +5\\S-Q3fc,K;MNv~1/WB  LRF^B "-0.nT"9`g+Vx3YsBaR&SjA5EQ,X&h܅K]w|<vAJof4wEQ u#em)6q.Ò,HujbSLT7~]r֛C0S/ G6>у;T\T[AUAOai\ATaǦٱ.{A ̺h|^iN;q;J0:Dq=(B/JG m+;vzHJd8,Od_Ƅc-kVS;1ծ,b9K$q &}~]>w?CGMO(@kJr5ϾRˊ'c;fQ"3bJ0)5۹q-%`#k,ƭ݇sNgsת-,[Шx&=)[FraĠXl6L!H s KqHMVҽs$!KEE5xZOj?6ȸ2w]CH[ۀ^bOF!e[$wǦ5P9K8 poLv=eHbRC5l+~'$z7ۅERDu!̑]ӧ#a ^  338t:] @M^Ե/vf{@ c;ySh(LsFmd'Jh}}GQ-µo3;2Qt:tDΟ[Q`rD D-#P&FY-(2rj+tH"BuGWdme\9k"Rarov[hZjBJ0Bӿw"NJYa1>}(qFzKNȟ~: ,W٠(* ס=Ҁo]ˆJ=tf\mgt<Mٓ[N@U xٷB("BGedDylڿoI&׭gTrjW.fhYYY(e@ QU1eddPRRRv;!G9|GɃ a'K1YH mr~)&GT 7Uf0}TΉķEiNKLF 2V+: 'V'*=*!!25~S&gac.[75˟AK\O~>vf5R_;hcvĕ@C\vkl^D.%Q30|,x4]r,XT}ߏKev0piY@CԐ?} _}w.yr7T@"b$õg%K֤8$aiV5ҍSpZ_y(![>1t* 49ٽ{wz*& D||< S׮]qbnPN=^]Ժ @ɦ^vo(<9S3dQ];84Y{-#NLB uEcKwcЋZZj Gn,=/3(Ź*6mGIe$#GNjھ%d)NJAwnr\G`b$4?.S2Gr^;Un96pe %LtO <ܦإtկYZ$HYv~?F[Y:$ _2Ի v| w#Tse^233x&JUgU)q=C\گl/Nc*CR:cplrLotS$*IhR?;B#)GFȥ6Zh<4uViBRp#Ck(C{\DZeH=Ҟ1۪fJdv_; 8,SPP^'$$UU|Vm05E0 $${i0B k[+Ɛz@t6g:ler7>NQJY}}ClZjb6|H!Ԉm|+˾ٍ^W:0F%b)n$1~CRF_! r W6oJe":. .]H|bD ^%W$ pR4-:HL6g^3z+C#g?ΌףٱE 9k[<1sXQڔJJJ h4j)))t6\u"χl&  ]ZRיܬK%=YxW^FK=ILϳ9og"}Ϥg\IBgψak]z̶;_;kZE?f)//rt:17LiΜ9ĉƜI-&U1@Q&YThB55tjU\JVF~Xح&: x=e Hu_U3FdJ ٵv> ~ʵ6Fwqw:1FT /'Xնoղ(&3F5D%RTxh70Fmр&'#oeP߬N:Bl& : . xQv"#±ux+NI[[n[ blh PEI 8blZYAV%44|sձrd[,YƄ=0Ż) :4i(3%tA7%eGrٙO^doQc*ISQ[8Ϟo.Gؾ xuvV4\SzH+$IFhK ry~AsnJLe s`0nP^ 3}3Ǔ`P?WBW~T9ynxz#CN%#'^/!x%(7œ2Vn7GRӈKUλ7E?< yfzOٓ|߹+TS],]9C˷19&@ BKn~NOfzVf72$3x&fE"L;?n0x<:/򟧯!VGwǫy<ż}p T2GV2A}^/;иPѧY.|<xㅧx%Uf ;RlғzdY#O-yǘi0Sfიl>>^]>ylZ+Ml?&q1 ϟuC-)%'C~S>T14&MĔK\7&$1Vv/IGre75%;`_xߓgr8rs!ĘLD՗xkEr}mJVR>N#{*c0va(fk&oƂ֘* P0W5ӂZCUЎrL-=aCph[Ӎ< !琇Q>k a9dHg~ kWBO(ZLG[_I(Sga,\2hFtz<] =5bGcDZu΂kHw)}g Cc?QWeEpVgOkH5U}VzxjzygW\;IÒgaC^B"-8<;)Wѓ3.7TŽ^Y%v#U%W/e+}O\͊*Q~ s%߇[;) }8vĎHl/P"'0=^̆a{-W[f kI)4&ȇ<0v ~Ly|#EЮI3g:~ׂćyfr (9,!L{YhH<[la„ DFF^-h,\cRTT.[L,{d1mDjr 9wZ\J@xLʝ"dahBÍ|XY@p*q_IfCt, a:U^Lqq0ݓbiэVSpRSS]( 999lܸ;5y"cjt:"""Zlܸ%$IF픕 aj ( V~'tv5|6x;cڅx4eRD;Rvbf{{1¤cFo}o>-z#t?n“؄7HѡrHwW4N4O_KnIݷ}o+ [9?2]kl}r'!M=_ 89S M_$^Y~cn*1?h ex1!^6-/> !yuSy Y=uLa㏧n-;nh s\Tc?1anc sO;¯fCSngeaw Հ\?ϫn!+ap?U݌H![dů!%4z#Fvey[ oȐh Dg[=hwz@B@f:1nhTM"ț9gǸxuy62ۻWV8//yQZ+Mli&7w r3YU a?;WBRJ,:=֦/;a)Ӈ4r a4RbirfJP3`5%+.ӈ)a8c;n6 ]9*YIGre75%;jd3-vӜ`Θ\禗yOY^]^Rzɥ9!8@iA-͡iA1iX;]ri.sj@DWV)&_!@L.J#J:LzhkuktPC?ﺮzg_Onyc6U*zYFB q^$%b]/4\?Ea<{@]FEa_4|yL~rk{ /XsxxZ'I*r`qgRX)Hwa5=9Gy4ֲm X/?x;Vzd93ƦVXk(rOsA3ְjk.fv#:=DJ m᫯ְ;}~YΘqo̵4,y6u!PV֓>l|%9!8?^7)liqu?Ag:ȯXǹh xf|䑃ԝ̛pțaz49Ŭ%vD,g{@6}ʼw/rЇ;` wM׎9k@u7Ȥ\Hʥ/݃ r#۹n3:1E߿2z|pn6"LҜ9sǟRl}N&>3SZ%?Ği/r[? M<Ö-[0aW = .dر5˖-;͖=9fHZw?NK*\;&CkjnlQbeI|%E ) Ȳ,Tq{;?IDATf3vO^^E7Z!LmDIMM%''GxNv(qF:veĚmNGDDV7@p$ Hbb"v2!LAEjү_?NЮ&"QԆPU]%S qkB@@ $B)x*׆eYk 7Zůaj#~\.b]"I& Áb`hB`E^^)))DEEIvG+)֭CUUl6:]3Nl”OJJ 111BFCLL Ei 1r{p\buSAEjmIHhC$9B0 'Bf͚Eaaqf?5q";[{>]t&N^3WӪ>3f=az/*6na Ϣz*0A &p#8w5Or,]$)D V'\dA˗˙6mND:GƠ!˙\Zʫ\9o+^6^y5ϚM\/@ 6?/ĔnT>}ĩ>$Vэї™>@.`9o`1`5*bgczr.w/xkq-|DGGItt4qqI]J5q`:-Cuͱ\<ɓS7>+g}x<+J8ճ/vwQ d)2sɗ3o&^W{w˓`WY)/2$,+zqabhږ'EŸ;"sC CnDBśF3V hp:l]TOIU#EDQUQeIF2_%?7y7RȲJ '5ڎH־L2/.p[LMWE{[~0tX,X88vaPrD&Pe~WD8x1tE}d\l?gW (B'cj dpt9Țu}4c<#p1:r!N"{Bοf&NTUScR9{$gWf1rFſ')^k/+Ȋ*x`t:]u>yd/>҇IGy:qNQsi֐5KG 7L#Y{j MJ}$h̘1@ px+zs6}-sgbc3$V+Gf$$$F^Zl&I)P/bw$!&Mʕ+1r=_k>i¤')ZP*$h^ӰaXr%#G[5uMFʡCp:boAeĉY')J$q!BCC[!6l&::+V0rHZ˄@p{Ze4V\Ibb"ES{fxHLL_~TxMv$Il6XV!LA0LX,#  ^j%,, Ij/!LmHv{9!鈘h$0 &@ I 0 ST KZV=I'B1~Eaa!>OLl$a2p8X, C.,* -.Wumj%>.#Q[ ajA\.yyyF#"cEQrrrXnbtں021$'Wէ?*uc;??bbb(5k40x`  т ryЩcg!J:uQs(`av%p .š( %'JKK0Tj)@Ua{w3h\ၚ\z?޺As>) NpkJrYʳOۃ yq`IfWF4|z: ARR7V!ssg~F 9q3?"FZɼ2gI0vgUaU̻n,}ܴ`=Eɷct(rX.] N[|f2Y7Y6Y9?yr\ 5 " D[xLGY2_3W.jNy6gz޿ ޻qVWv:_:~.eŊ9^S1h|Xp fϖtEOB%ʛۄ|~~uڅ3xB4crcnC,dOS*$;]LXGwLtP>{V╔v~ETw'/[z_r ߸_ҼHRAd썓dP$F 㓍.ꀴ ٓjE*0` !Yә}ӿp NZJtĴ//ņH"MGL`]FI*dmL&9@[UUj US;Z| %dSγfק;+ؕFdK/ . GAge}ڒ6*=؛Jnfrz_#ҀkRZ FsoEU'1HYe~GRL1QT|3?+oarIRBډ0N{6Lga&?o~ɛ})RjTP8:b-KKqt$2{QlZY%I:PNQS&f-iLp8'k=]BCp_ugjxKd:}VъPtOdIRO~kG"\vW&5Ex1t">V.diecjF"o\c\1^XBܬ /&u[%cOyxQt Qo[ܽ8hǤCx(|вɌxW>g>(?DNqr*Asxu7Wݫcӓ7}BQ(w</0e_8Wg)t?i7ET=N>NDJ8>EAVTT0Ɋ RqLկ<9L6b5.b~nXus9k{' fʝpN-k*N~<ˇַx\<Ύ9wL>@DT%@P S][[!FrL7=9sǏ FatMx^afb2X`w~{fϞMDxg=jLVXlNj8zj1wrAxr))) }ݺu`iՑezP0]><"wW~9';֘TaG1^S ;w@ pLwpI'wS;#I-O%jZt::A@$ҰZ Nj8  GT@#iؿ6[XV1DGGb FIBBXpZZ+W$11R!!!$u²e;v4.)M~$٠0sl6D~JKKDofnj{nXX^ɽU'M4v;{!2A[ a:VTT& B c7^j%,,GM[;ahk!L8vv0} !L@ I a!L@@ aB@@ aB@@ hbW@ h+U9q0mIENDB`spykeviewer-0.4.4/doc/source/img/initial-layout.png0000644000175000017500000017052712650522331020530 0ustar robrobPNG  IHDR j$bKGD pHYs+tIME6$kttEXtCommentCreated with GIMPW IDATxwxy}lǢ$EI(Q-q-ױ8'WYn'ȴlɑm5RER$:@(ef?.@DY u`yss7 v0 _PP vYX,@ bu0H$D"[,#IRH$$0 pTUH9@ @l"`?QU]$(u]555׼͆fttT@ @ Xx|Mت_~5k>׽D"aaR@ `(Buu5^/TU%cZE @ s)x+~׿d2)6 @ cZill rp8D@ sXdYf* @ 26w\UBz9 ,Er@RHmnspp,72֭uAKV8c$+1t|I WT4 p<xnl`}# f@%}D^iגYZHd&3T02 gtb&ᎅ 1@*5=yeQ!cy@ xY: @pɒ7;^MrQ%}!r=vhdrO@Jνl̑l~]Qn]v:m]( w1R병 @ d|_"23XU"eG3 Ɛ@ 0p`$u:I_NyCc!5gYȩ,F#>6HY=!6ϸlm,'{9m

ȱ$ Crtc<r͖|fk>ey2c>^bH PJYWj'd2Tp0I$: Y6IdY1GxPGY#*hEAU- <:X&fImߏituuQ]]tww#2TVV.Kk5U.|]!-O@+<ۙ Ù8=A.VP+2LӠU9I1{M(?>&Bю[~7NH;؞/9ʁ_?r*N-JGR/Et'(7LnZJm13;=pttINF 0?!|!Rɡ4힒?w;RdR(@!v{FvZz{{FbvNyy9Hd. k`_C}}zh ݽʊp$'f9a4 >"䨛r7]AF qpRS#5Ou\ac08S=3Ͱ9HzWę%|dYL*늱D\= Kbp,hx,l(ḯA@<*B'~ϴQrGс1"$I<--- a>rsj^0mݺuFTTTO$A$e/ ,|7W ;r'~d LNfHy]QQ$Vzfڇ\j\/6Gj?NG'GHۧb]-Y3|xV}V[Lhcph UBt"z A-L+\'M쑦 cܽ=Wl.+FhHR2I?eJ-LL5šeޚ g,e$GdpZ[ :`wueM)m ̗Mҟ'lŒ̚n81'TYKVɩVz_9F$>ӝ]V:G<ijSWkS"9>gJrr"6v6UW@VZiscL.枱p:ˋm۶-/GݳgÇxJiXVN'a!??tx倈(@pb$?کƪ Q ՈT6WLhV /a̐-Wny樃6+-HG\J2J(&{rS]cYPk:)NrQ£ĵH|#KeD7+dK6 DS]GAYRt ݵ{&3lY]!2::z^MLL`۱lVONNβ+N!6ʵk)ť&}lw K, `R&TDaRrS{r$ iض\ tqi'))ٸ퍕5&&PruY )-q]ǚ`0>gE>&ϓP62LPQQ!??P(D("//Myy+}+_1nVcEU+,Z@6\'u1?~RɖZ7P8cH_yk ϲ-Ax|^X/[; SL)g{")luɳ^[*b@ LiY-ۧ7pTF)`q@ 쑳hfv@b<8o Z\AcL " @ X"f@Тvwr!IBt`Ɉ(X@ @8 @ @8 @ @ @ @ @ @ @ @ @ @ @ @ Z$%>@/?Œ,}WL}/l\|{>̿T@ Jozc/2_|/u(v4H;x$T˛Sc'; * h{l58̝{=92DT-W}V3 LJFn^[k|i|$c W_bI6.N[^s#[Ovt>F`q_x%[2t{S> Zox-8|-/hDx*8}ox #g{C(ۮ*B=_ICS4bO}7ש~ EQ94p[~YP/g?e7SQN||)}{jr'p w {b']yWKF| ~r,?m#E}]Ț?} 5W?sw-sVq8pogj F#Vv${_] ls,PM|]_D}ğ>eW}]ka罏}Gy[tW%b^V&(^6j @ 8Mv'_=/s7y}}r =R^S;?yC'z-$2B׽A_HXF8uno+~Luo?y>s}>v~= ?nz~)~p<<\(Fߡq|wĖ|{ Iz|뗿vSC]Txj% _?zZ^8П;0?m7xSƝt}jKן?ȯ0[sюC,O}E;?%ݧK??|~}]\UDVʮ}t:GZa6~BeV(G$J3r=1FCl}uR0@b:~~e;Vbs@7;;+>UYa~j;*^"N>L(/g_vWSy|ݼΈ< 6d[P\5ƛp~lrӻ_|IvPPElv>-TJ HNjv7bma4 U!뢭gdn-EQgoxI}}3o l%Ɔ>{a|T)NvOMI>;wpfL91_ڂȋ{ݜE%Js8䒣.ONRKٮ 0܀&ϙH'2_|úo?ɉ||G[6ў2%s~W1?03Z/;I&_KE~!ۜbv&d[6`nӅEv,O9T1֨H@b#%yuΧ15@2ug3ϸOF|>ps9v2ʯ{ccq C#kgKٵW^c =HK n!~ F®u,#Bo`eeiU)g@-7ʮ}'~wO{ /Vىj1}<{t$_NK9m7T$F?QKLi?>H(i中(tN0)k+].G<_c[^T+UlpW KyWn_Kօ(zKS>I?%/MjhOkT@p94y>ׯ4!T+7s`GfV/ǾK@\lC|5UX%gu;~PTƑW[KYr{>=&r3]~rg7rv6wHqlOͷY^kiޱщX|_?Ӹ}|hGwR8wv>8~տLY=f* ;yKm#x6g?]UJ^a|-w԰~$?=uDos2!(x.O/W0>[\c\ABŎzMlRpa{܋"{ 'F%J'܀@  Wb)!,xx'Gx?HUM%%3Z1!ax#ͳ{ Sw6V @ ,[ϸvUrsٶl\=@} ad|;H{|< @p"` @ X%@ +@ @ @ @ 0z-5)WsjJ(Q9HK<aQ/qD- 6v@RMuhjj:]'D;"%euukinnd яgbXVlQy:jTDF@dhNss3HS׮]7{y-tuP.c )\Ԙ*k׮,(--S?74ehL0d@X!3u@S[r/LaNkBCC---ihnn`C.]2e/p%VӝK2Q; ~.iq{ֿ 7J"P|˷D[#ke[QDg +rIps].z$ECCpQkk+$Q__?u}q$]7˃jEe#[J /CQyr$s/ds(sc% @a?A~g 0<2fCeE!iX ͆fy7`eeHKR-3mI$H,x<\., f~l6EQeMtp86J HCFͥvYeIZ[[b+׫ϮodM5Ou]' 2>>nϼܼ R(###LNNAj#;;VP=QJ`kimm5iuzKK^l~N7lfr2&xHL">IyE mll\ Z=I=;p8lvl6BҐ '!nHXɦ+jt]gbbJII HA20 l6Vp8_8qbʮ%6>>~V[t]E߷`Y#X,ΰ)6 4OCzKYIɓ'3RY[f322R@("isϲm?_ЍiRq(۽?=\=7 0>>֭[QUCp8p:gPT\d:hq::;PUk.MK" ﬉%XgV{}}=mHH-X}i;'T+YY."0>EEylx9 ?<{gn~iiv IDAT~adlذh4 dee?8W\qŒ-+آlٳgϼUeSY,Ud2iH]]ݼ6ܹsAqZ5[/<a׸o>u l㱔<6ǩD"f/U> tXv-%|)[4x5ͲN0 ZZZٶr~?mx<mfdggsU{x饗D8ǓO>ڵk3b1:DUUd2i:Dł$I(† 'dϞ=P|\jN$@L'D[[۔jogM]mSL6_]| X {ؼyCã7㦛7\']kšs+hHƣCNlJ蠭Y顦>rsseB,8vX)uuu:ujA[֮]ƍg&544D]] TWWƍ%G34{&dQu 3Ť]Z#KxB?]Xt,"O!0Il U1(` @2t$t0 t 5l#DQ ?>c!ܜ2͛F\.֯_O<' bgh4J}}=]׉ٳ?i4MСCTWWKV"uV$---fE$z)sUƥBp3P^Ij+}%I h`u#UWWq y3$ 7E1x_kvЩ祖/ƖWZ8:YE"cQ'J tcekjts݋,f'e;v, ϝayyyra7-v!XN BvIˣ'HӴ%5r:p6Q.xTA+Sr9jإ:dUUi; 7R!G-IK: A2 z$F$D$H0JP"/Ó7ݸI$SIiu}:hͼbTfV /@AADh4:gH$dgg9S3x=evǏi&!.zJ8E1&I]]fzwL\W;u]JWjx&6f380LcZo +3`S[H//_|l3im>{[zNw):ݔ5Ei蚴XUUM__Ȳ|>ٱcv}Igb,˜ڵkFj*kEE%P\\ j(v֬YlRzJ`űI$ :&HcXҤFx\?QK~_5m7ib(a BTTTP\\lT;X,tvvveeEy444D,nm$I$ JKKu.茲 RSS;]G^! X._%v΃;::)d^OE*S&{9vL3#.~f.X^6_Wm>c=W]u96w$E7 kڔke 9]NFFt*++Ff=44Dww7fdeH-qLG~~ [%PpY.'Na>xdfYBEXN8Mrxu2.uJ}. gvq:;;xlrP;r҇lSb-o!X  j:U>Ev$Rr@I AHXR " ˒kU։LoQ YEXcn$C( &r(2Ȩ.ĭWw#,59cX  dpd2i.3v;6t*Trd+j:g?o0nł&É'̽)*@cV\|RO ip9%jjjXD%$ ɩv֮DMmj!`s +Nr󊩭fSgO}i:$4]K?\訪jVUX,jp,)x! TUell"sqx ^/;w<tQU!6/l.u`.$\/rB+Ûڟ%X)5M9CqxfLNN_mڴ噰f1E\+[n#yV''HN'=ū #A$6ٶd[bmb1FfAx @Kj8z$`h4A8rJd:r@ٽ{َǵQ*#T7>F~~Ë Kڥ+KI5ޝn^ ^0xYL$Z>ZH9ZEpRa|,u Eh 0V\`N8y;[]JمpȲLSSk֬\&;_QQX쬎JG/E,#gdy%X QRRddppмyY]G   nݺ{f۵`qQxVovo>$ƙ$:). CLU_@ ʖlKwTlHeNSSmf:tȌ̓TU+`xx/1"V 0tcɶmСC|RKR''p1! m#ˈK2 ⯳^SS3;]KBY^H3dts2 JJ 4 a0ƽN,z axbN|>fTP(dny<3 f ՁRJ祗^"pZN{)F 7`LbtăC&svW68@ríĺtcZX_ub؜anS(δҒ"0pxƒTzfR3K!+u\3Hi&sXGGYI9X4*4@ Bbd5tuuwuu!5tuuM [fS%\ɜk{g2$(b׆3- xBG!083 Ī|>Ӝh9ٶH/bP__?#eoo/D0?gHie$.f:ηcQur.x1r4g{7~LETԿpgζjR]]M]]ccc8qߏ(3v-crj-aY?u9C|xy,AzÝ b YQeKϮZM04bgx<3SuN9[^gSZV.Ib1~?6 ͆((bZ\veG/hd2I"fM;q(ŋ8W/r.sꢺSTWWu 0]]K8~ |J f7+ rG껦%I&$t0LO8π`@"XH/;5(2b1\wus ٿKZDZHT.ΞT^u -sfx%dZȲl.KwvXVS@Zv%Ijjj13ڐZz{eqecdWa(qNwul#1`L2@g(My%~EJ!,=]hmmEQ***p\$I\.^UU&'')d\.sT '4-567ŐeEQ|X~=LLLۋd޽(O 1f'gggS55Eػ@;]j(lذ:`Zͥ|$ o+?5jfc۶mG8f׮]gԮ)iqx1āy/P5GS#J`l3 _pg(oxY9GnNǎ+$˨, 55S3IsFyyY0ȑ#\}^3ߗǓj5S)bhQVV޽{]׹2t,X,V+n/<CۂAUi\ח:Ȱ'YZQ ga( Il6yHUKJ<NJU0L2"TlCr'32bHXkg:K\=ׇ122_&قmCIGlCGGXV=JCC҂baddP(H}}:@f+xe2 ZFFFxhhh`ӦM3fA>ҝew0M=sAhllngԮ.@8_棉ɒ$\foL7ET41nL $G(X~7:80 4dYfllBdY1TU5Ix̃W,FXTTL5 JPUh4ѣG9r~N,aXPerx<Xe ,]zFԃL:: Ω*0ӅRl56ԅ/15fE#ړI$I"Sf"bL0M#I E*qKߡd$ᝳ"aS碻x .93!s=D"(b1>liݎ$IQ_/-: V_VY,ozKO&sR>%S6/}q&ͤFؾ};ZĮ ȡڨTK'A+1I fGڐ%$IZ`4H $Pb'`iH*vot:zL&7_ɲL0bE68^/Hp8(TWWs:::NJ`MZ7#C*@VV"gH!_,\: kl$!-c|a$aCh0{c(߽$5EuY&1=ec{i'}>S؈2! yY({r@ NӴ%=YF|Sv*Ѩvּt>RNfii 쨫crrK,gՊb3A<gӦMd:JnICC !\lA8-R3"=Dee="l)casm{iYBJi7lUųM{MXkY^D"Apl Y ?>cZ{WRH #Īv?ÎD/BrRh)TJ9Ns V0D4n7yyجEӸ@zd0WBzK-y)}YVS45kְsNyPP۵f|$Ok -!E%*2j,蚎,qjR =GbNJzz!N}Q8eee,s)p8ڵyō[/駟G"0kZM'Fq~/'|dgn]P/s7B}e%; 飈=== M  ii/R6[|ݳJ"s|?Ė]XFcWgt.ZThf7{dpp0k m䱣R~2wx+9){VTJJ9rdF~nyD"$I2m|j3{wwP]9|0wu,W? [bp8Lss3}}}DQsw"`|bMM4668l]u`}xyncgj֭[gF7Jn$Xf̂hF__[nepp'|ZN+16ߺϩ PliTo0 ~FUe9~8=߰UUͽ8N]'Oe 2tҸ"ڹ{"HՊ4Io,3(N,vl!%^a1!t@RTTTc^3bjRHEY"#儆UKdWzOȬ^e-6 {zho>;2G-5Mp*m-5y;ILjPȩbm`-WU_ķl[NMM)\8`O$!H Iv<<.kK7O044Dmm-}}}lڴU(2򲹖uww388H<GUUv;Ŝ m۶-MXM/dHr > $111A~~>hF0Ix~U လ$z{>oZ.Cw:lV㜿IZ%h`e-XV4{Iid{ *^se{z仐fTUexxkRP0cƍ477* V_8W,ժ꽫2Pqa30F7nB |>[n5G c tcv璡:cqONvwQTǿ%F6*% (+zU@k~-XPP?X/Q DJ@: !m3? I *<>IfgnffgsΜ:3rpGD!!!*h֬ 66_z+lj'ڃ *艍+8OMa5fNI)^~=?og@D^9ԨD[PNf͚UHo %% ד\`C.D?3 "<[PRH6l`Æ `6_mPAWhW g@X,O>t ׀$''qSƍ0 HJJf OlPvwP|:"rP\CȾʋ$%'L*Y9=) 7`8 ɸ~πWB .rW jꝓt=ȷ}>< ERt 'BkOO0r7+g@t|}~ ֈW;w=T}BDDDDDdsh((\KyD:'e??lߞw~^ƞ2nt7yGq׵{گуy뙞߅^|~%_WI qgu>&LCc-"piCh٪u^g2]Alc yNޒn m("":Kb^{W=Q_wѸSVYoU^5+N;%Ge^YϬvۓi 3/ _sn6`y:<</Ȇ<4W|&qsѨ),Rv(Wa 3㙕?;"""bWv ~87\x'֏ Xxޫ8g` 9 F=E:ֈym'!\mӦ/tsYQ<Ƈ|9K̉cK<Vi O<ԗ3`k\)e/֚ ٸq t;%uoM';g9XUFII-যŠO|,Ff%l|UlWb}dx5ȁ"툖<Ǿtڐj?KG)|Ӷ17t~6&[|OaN"s;p8=DDؖ0?Ga@1\qyk*NlDH:thڊt:a3#JNzc<#b| ƝOgh;ȟmU+ZuO o[xx 2V,F 6g pmdڛ%2 "s|[mDx&.9:c +z<}N^Y"&5]csXV`t:#o^XɋOsS\ZMw5GWsۈ~D .礪Mnnn驩S+HDDģ6Gq̔issusx{WƴoPquWď>țEgwBp1.fgHӞ ^ N=q$sqh>Nhhl܋SO"c|äq3(;ёf>K~dasb_7CO~O^.!<i3OYz17}vW$9l̊⚧^cLoӗ$(ڞNq#-  駟ꝷk׮DFF֘Caa!Æ ^I=gj,zC9Q.̈N!$YŶ ٵP>ٯ?ɳf]`͗B8?Ռ 害Rwmϐq@LDDv@ @bbb_$2d| %X ν>)$yd?aWro#6tjPؔGZ1߲(alJHrl*bkKFACxb= Cw  Bl-CD<ځ`+<%2w1c=Ĉ`w[+0o?ko>͊Ⴥxd@h@/sW_Ri8gӀ]BJ^IxcZú6K?:9eyIwc)|ΤSCВS.9ch xi};@ҷXSdѾ`t; l[omqvP~7);糈y 9PڅKb֦X.#v^:"q4`_:"Xt( ηBʀP5|m۵֊*** [Vriqκ &`c3}![m]QCDDa&i38f1=Oӧ34깮m%NqO$Z\FѦ$7zlj|Om^>ΌL^|InV"ۜ׌NtR64t, T1D4Xq1$h" LG'Ɖ'YJM ;C(t'|G")^\M o1L $scX'wm\^xe[} 8,HɶR%Py#9ɪA 1;Ր8QxUm%[YtU|hK[OT9k%Syyߔ./{k#w",(`>4&:ؔk{>ր@1naJAѪ3XoUXm:!dwUf kTz3*^Ӳ-,;hoNpygbDD`۶H+˗sF&E~c!BE3cȈ$Y47;rAˋഥOp y!y IBs˹؁m <{%"/ߴ]kJlMk9ٸt -ZW5//(y+sP)1@p 6$m\$Ďu[;#Gsڰ2Z$.NbF4 :߶)ߗlܱo^vD5B'sIڮb]Ow&DIgdo2;tf CsDS5*> <4H\x װ}2V}'^CЮɻ+0Ʒ~9ےNm,lȑI4{+ѣɩޡC233Q21a[!BIi=.WxmW Ax< [ܐBBrjU~jk6*_o `6oU2HyX6f,Y_9€rsw<2`WgacIhI]\CDwdH^U&%~+89~p;(+ٛV- :>1?K(4X7U>.. +UįѢw{bÝ˳>̍kY,FIФdOwG,KG)|Ӷ17t~6nR?ůޒBBV +>~E־N =Ͻ/l;o [C]GCm}b˂/"LId|qnG-91[M\G0oV8 |q5/C:k|Y33^]LbQ~71L ]{/K;~t:dܹ=ȮUj, `J(W@})m4bO%?䗤386Q}DD~DEEt:z}3Vut6l y~w0v<;,"ht1gp<5fΟÈJ"{JCz#"xЃcF6b{Lzh >ILϳ8OA~O\J0bIq?;p\}t4/6vj[*F{{&pZ M9箛9>odžW'?lxn}M%68H>;GJSƒSx˘ݔ݇2:"Z]]Wm.PO:k^#.#ڗ2y/ATbK A-I3΢s Ÿn_O#шq|"h:v6K;cJ]c.Ns域,rw[}dƄP, ZVr}Yqg8uB?p,駴²$d+jA,{TcR;I3֯}'ڃ :D=_<_epwlƍAIϻ'W_ IDAT&k߼GKGx/X|x>,WL^%,z&yNks7p_ <3][ >r/'}6|^s۷ogٲek#k o9 e)ׄ,U4Dm~^XZPq=zDDDM:^zt:qݸn\.Ί!7GeEQ?sd{zf:Cvp⭌觾.:w1 =."k낵wDSg!K?s3. 29I->jԗo5mQc]|n,l&hM*"ΰa?k@MOg "":ǘ6<4lTDpzr 7Q ^A ;ϟqYbZǥw]Nȃp#kZF)GbC*&I-?~6o޼cW$ w;Q-@=M6~1wW6FDPr +ӹuiʡq׈޷>G[*ve˖A,fpudn]/̐I0Fl{@5Xy̟w"ZIDD|eVXAnn.iiiuQ$$$ @DDH"##2^/3yXOޟj@R-hֵ'B~bj#nEDDpB6oL6mС@M6_D+U9ۗh v;_DD> @gԩڷoۿ6~@ ŋ띷SN՘Caa!Æ q9s搕UcKFFv(S*>222*:Tm,Xڟ˗3pZ޻wo~YYY~sM4~S]P, \ m)"" ""E 41 FmCix<&ϸ [WQuU4 B~.s=|6W6n1i{U&S ^b9/"r ѣG3`ѣq:Q21 G,(W@i}$>9Xu}/M7dg݄X^-,"rR At @~;w^2 lll+e]em )pG,}o^НkƞKۏ!e{#kO4=1'mڸ"" ""r С^/LҲBBv2˛ZY&!+Xʢ'Qټk(;8U0@Q q 7N@QE]'O\|um_!el/L2a'$m~<RL,""""r0b_Ržሱ3lƏz 7yc/>6Ao6JDDDDD ;@\$%%1zMNNuaI4]bT -R31p;ҞMG nBlQ9ظni޼9@4u*7 Ӊ]]/̐I0Fl{@jp,~(9e9˗?Uyڙ%s68p^C ~J ]mZWmQ=׷o_ֵ[\.zZ"""""{'11D9 h$t˨DD0Pz*;;SSSٳV(~/wN:z׬ 6lX ̙CVVVe^/""""r8 RUMUٶ͂ իW2/_k޽{kL"==}MJc 7OGKDD@DDibFb6.W݇r4xm8NYve03h#~,˪ 2TYW. amU>.c}R~[B_Xuza-sqvzu/"Ƙ[tEjBJJz^s7B]RRRi*2ێEo_ǍAӱ#ǎ" "" "" ѣG3`ѣq:Ny3dbAA3?X/PBIY!e;()AH`|ǭsz뜑0_Ӯ7rsom%u׼Z24V}Lfm3H:?<7cgҥ|IjWKDEEQRRRkj@]DDt:dܹ̝;=1e4L?@)>ž (P\V@o;ES+ K[ׅaw{2|"FVQ8Zr8b|Ǫe}XyJ2X:]|}ɫ֦4nܘ\nn۾};7QLze0CXe[XI n[1m 5yib nVd\ G.d2 }Dݍ92Mńh ,"79#hݺ5N/baXņ 8餓@DD5uu2c6E(hrk}+~*bބn/>6Ahݔ>Ś( ,U.fQ:L~x>L0TLΛZq\='1M")XReTaa!]v%66ٳgn: V|ƍ,\FqqLkwT""rr\$%%1zMNNuaI4]*~#S.Dj󉈈@¡4jb۶q>a[ٰuU 4XLÀP(Sf41QLІAx܎p1c0iҤZkEv-+98 gڕllϜ ""n+"r,2`8Swg]|>_E0yKXWXʺK=o ~aEʊv(ZךG*?TBp=N#%9G iC6=K專e<~bG.(ogSxѣ0`g8zj?ocLL3H hJ()+l%e;(PR\yò59bƬMeh.~KEߐ5IN9u {,E7Q$33s0w\2338XI 0EvP+W@qYžSTOrKk_хX&}nc+[ۘ4q/v>6&\JoQ Y)=?DD""rС^/LҲBBv2l 2 Ym mf%c= OqD# O*f>k|,t=TapVIG۝L*>{bw?DD@DDSW'ɓ':_]lۢWHiY!ۋ7L,;vyبɀz3>蒍 Mń IM˨$jv{K3{'5V\D0&X""U>m_Ҋ&W> @GzGu<~'B@`ջ:L'?"p^C ~J či]DDDDDD\߾}ˣ[n#{bpHLLjD"DD䀠`_F5 """"" ""Wͭ1=55={j'xzԩSwɡaÆU`Μ9deeX "" ""pȨl.UTYm,X^z(c 8Fݻ7~,DKDD@DDibFb6.W݇r4x >G#?sS˷/'=Mԁplc٢-ĨxN'׏sU,Ʈ!Bmn! )Yokח'%M?P4/~w NOMxlmX9ua Y&OiY!!;e5I VԂX1*w[Mջ"B̿}- =HQR]'O\|um_!el/L2aPOq%4'isz4"r*9 b V ڹmEDg]y;amm_Do> @G'veFu)'粶ԂP)[}N֏yp$(_̰q߄,r}+9/a{HYDpr799a`W$ wYbT -R3R5tiO>";mܻ&ҏ}յtr:2ٯmo^։mjni޼9@4u*7 Ӊ]]/̐I0Fl{@un-tײ>1 qkӊ(ȁ'..z;zWeۦuFs}%//n]U^"11׫("" ""wILLԊ%"""""Հv^ۓ[(^&77Tz$"" ""P`0O?T]v%22 6lX ̙CVVVe^/""""r8 RUMUٶ͂ իW2/_k޽{kL"==}MJc 7OGKDD@DDibFb6.W݇r4x'!Or雿qW=2""#598N233zXI `cc[!,;Dȶ-;elP(H7eЫ85uϳEępҒ3'."^sToE8 vꝰv}Ƕm6Q/ط@@_#Xs{y;£X3yaOl/# \݋ EMpZg%7}DD`E̟?y7o^g+i Tx1jSKokFyH9~8gj,z9ȴi} IDATӆ[neUj###DRnFe6 ,W^5X|9>z1=++ݟ|?qgpLq]"cW2(ɴ29>yysܱ̜=:+a@:(Ci5 p>5a[ٰuU0 \XLÀP(Sf41QLO<݋~ 3yuwdv〄G8(3I&Z+(oY٧ i}nW>s߻J`Oq.k(nC?%"r,2`8Swg]|>_E0yKXWXʺK=o ~aEʊ|O}j )Gte_k~~kN@TўyXY ûwc35K__eyϑ .֑cG|F~r߿3AJJ*\Ew۱Dždߒq,ωG_c\i'GN=8Qm_0tRhULKF'ڃ ϟõdL:vڷ޿kE!W^}GQ&~lK6ɦ'@%!A,gg?<YNNCςA*ҷBz;; V$L$&"l۪q۶plˊTo[9-{;V]DDu'-""gr{p=KDDDDDQ9i,ʯXnY BDDrr ""B(\ PDDdaHNNz@DDdD"ͥ[nb+"";m7/L ޷H#6mk׮+|ȮÃiNΝϯQ]eDDj9q())!--M!""{DjeWDDD۶!""5:~(>@DDD[dA;~((kq)lsm\16om͛w{,K]DDR:]+ CwxKkM;DByOYY[:87~->dfh}ЃIL+H vq4""C[ށ.g͑Piz3=$ xq)Æ@CkߟSyYvHyf7o7|yGRR91 ""zzx\@?C8GhN!@RFw];9<}P} |67x:.`> oyqkB@ 3~r7_/s.m¶rta x`n\.@cu{z4#++'\+S[~Jr{^ >.r}vkf~noԩSTԩѣwO`)teг3|!#9bȔEMܛpD4%/1_Nd'?8ng_>*4ȧc-pbr*'?`L+Yc?a=@Lt[%;C`{P1| sesx[A9_An/7`{ϓanr6Mz[O_LWmw|gdU.Ey,#.^G&S(KF?#|v ^ ̣N׫SYxs'7L}XZ W1g}a)\WɭH[5[~8W<}@Dbyyy|,]K_#HG]DD=j0wT9Oyq&gc8k*^Ơ1w"zv\՗j\tpۃ^gr\#?.ѫo:XGLb[:t?doŠIvl.=3XPOd>+3shv0 uv^] DmC)OۏP dƫ_eG3)2@w| Npɾst8vjT4;5w/Sh7˛CܒdR.h@b.zǸ,=M:01m'Ȓ?au[_<8}ޟw*/H}C&{'VRvVKD(g}W'*_դ H vMy{`cHXXBt+'x%]wRbK f ɕ.71)1g >v S~~\Dnt(*mFj5nsE[vǀ|08"[X\~ݕd|>4Lx⭯Y!}NNb 7.cS4n: B|Cq.n}n9m(_7k*Ev;A .-,|T$havg/a3u[{N 4|Uުa&0ama1$DQQ^6* ~ "R x<wRgRRMS:/2|gdEW:퓼<+| ncaؤEMd*oq-,0bitzE]ėn$<LYs'p3PSxGYVÛe}?_?ZeXUTO!ǻkpll(mHv#޿˫qIuʟgY[7k(+L 15 Dzqp+,lVZ2|DDѫyhѬ-7=]93pW,W$JX\|_v8Sw[@B)`ŸՋ¶,Ĺ]7rOlp53}iv6'/籑y^dlZ\`qkQBj@z4h^?aҤI :T%.52j(zچ Xx1 "::zY\:eNJ""G|zp}_|m5Mw}-[RN~cǪDDs(: "fCrAxgݯDDG;w.\-[KDDj@*R,k&o~x@DD4qgwһZLjv\Dj˟}""r\.,ڡ g2QPTV-T带sm}_AH%I 0 Ϣ) 33r;ZV}7k&W2edߛ>Km 5]GTЪ7?׆Z?*FMY Al\D'գqdEaG6eai}O!΄HCKopxK!q^̺&*BhUm_Ϳ7O97'=S[J$,=k Ma4ψUo o[+w?_ٓcUrm {'6DݏŁ8{w¬:O:IN;.G~w/ꗇ22? '߀ʍ4or g'gWza0P+m`ނ|uJh4 ѩ^mfoh]GboA v~O&6RV׸r -Os ;ӈN$L$#zËEߙ1w5 lZBqtN5)\0m17hҿ'u:n&vT7Ql'ӡw;X\m*rInK|];@$|&`FHk@^̆D%ѨUZԍƬ;6m&l~_xӼ}kĹli}R6'53}!Lh^dNHYs3ky>OYiX!#U8fӾ1 .Vt 3~6iG[=94_07*ߵw1$eӿf~gKGaVl[E.^фoM/8!m…p5fA​\Ȫ3ShrRqPrXLS@zhPl&S-Re;8U^NHiXϏgĸk3'dcZ{zwLSySkt/:m{ߛHk)sO~*q[8%˙:m1zp|h¹tt/VH&v&,~Ö3>m=[)Voٕ؅'mRdz dŔ[pwtt~]C>]I)`G"D!im1t?fOJs D `!%xV;$)-ōq}Q4{1%X&< s7r\tx]N~MbWKyKx34Z,t˟^u!2} r"48vz^+b )f_YR`}vo|󌙱2<6FA,bX:_XLnDpEg5ci Ψ?s|I4 -N岞/pEێ_fwChS<'Ӌt5H-dHd;^)@BA"c7jY~ bMd$f 8NQ]?mxI.>۶qñ%LlJ7qH[+VE!۩\ƨ=ecc!bݭ-+XJud8JVh&#vi٭˗`ɬ%l 4o݌:~(^¸&OpԈ*l,%^zmaY.F=q لsX[ԈVPȡ}\ .?pHy+EEal\UqRCz,R1vZYY!"`lcD-d|"XI pM _+,gnfk3zoWb7u\3w4'յ^gVOTq?y\sdx>*3⥆7}}Fy8Oq?X,{dݦ pm= (+cO-ōS:~⽧Â}FWƳ odp겞o#6㥫X|aGwKc$GE6-dƀʏ2y4+>,& C=7N~XY>cr*α*_GV?]B^#~7K#'> |E}"7(haK FH=5}ѸRvEAӍ˨a8&l3aXDZ FpGyR5(tg߆{vP8a1؎@\JV4`+fd~f,a j$ƮPqp%!%SjI,M݈E$IUlޭ,l:~R~{]ʗuuC|ݫN"Υ>.WGzs.L7xxHpcqKmqHWb[\u27OaE$^ 8 .O-pXzoǙ7,WԎio d$1Y1'_LϞгm x+)Oz o#ʝ-еb,Ep7L w3ZZО_ose{.L3gK]7@:OcYx\6-㏕y$e%lg c2xcbY*?MRx"Szsu>ʥM|1>ܧQl 8{>=F?`xIOu@tmZ[,c甗It -8 /bo? dcKΤyRFt}ڴiLkaIj܆q1$ߙ;-=&f!nKx=D'wdk$ujE=i!$6Dt߁YÚbu pxź3zf@>K͘\ufrq'fR/ލ3X0zj~5ƀ&qPVԹ )ۦ@'.=1ßCMH[463:'syfޞ߲&1| KJ*_ee0Zq2003{:hGT|"Il4wlڬ߶Q{Yz6oZ'/vlsu'Рy{4*_IN;>N,MuILftl%m< iݥoOo%IRT{ zWKu)omrO Zvq.rUPx.}a| EON`.+0]>Ԅmڒ[~$m<\/=t1/nI'˩ ﴧziy.q}>&y}.(iѭo3q{8qs߸i;>cW^N 1.]ZQӧW ;z]ƽ7%Lf07qkN&O rxK8-$v -ϜLQˡdz%s~zLz]t?W^.r*.ARۙeYU;`USW'!(#̖K5hVAZu d?.ke6s:ADjCz9cH㧝19q^ 9A%,:Fm1 r@Dw_W94MBfAaa!^F ""rxXf `.kj::TN!R[UC8fڵ @DDv#66uֱr?v*T]>/Dס.~? ""{kYdffbA.#q k>@DDjR>ҩ;9ddҤI*5/Bq""""' V-56j(H-.X""""""""""">KD,DDr\\.C! QRRBnn.`PiZ0 |>~^D(**"77nݺHa67n_~!99@ ۽oBGM}`Y6mk׮+|Hb&tܙ-[`QDdٶMii)iii* ~?HDDD`s˲!""m5#Ԉ!A$QaH>֤>lnNWD㉯LD˅eY""r)|`<٧9g}#rtQ9CC@3`"?y }ZeՊc/zq+PY"،,Zǿ[Uyꂞ4ʡ]kxsv1:u rC!C>X9z>Jhܚon~4++2<7v&Χ.{u3v5BxP5ŭٷ8`ǣ_UgO;jcY4INnICz8q墌$6jS唗㇥ h<ѓ9_e@ }/>_marFDDDDj^]DDdi""RTV\Ill,.KDD`$''3n8Gff&i`B8>.ިpyt|FPH!;|/kY~ݯ JJJ0a5"&&FDD` ҠA~G WDw:w0M[IQ!B 0 Ӊ"&&p8B^a9I\\5zH BHBB * } 0*QQQQQjΜ9{*VZPDDD@DDC]DDDDDQ J%r;EDDD䈯Ȉȡ.X"""""rȨDDj%uQ9d8DDDuQ1KUrm {h.५y\ԫK#2 ~P_CD(FR!^;W_ߙĐ朡V6s W}} o<ُCE(""GftgerKv k(G*9xh~<;Pq ց|/"""WeU6j!k,]_~M؛p""NjzpVȵ>Œm G_[Hgs8טly6ưl6~y#g6<6+/n8FDDd/[uÆWU#{2ϫBG+'O3窟Sx So˫g%<}/֘Wnj @ْ(i^;Q9ȡQ㥑uGu C_DDFq=UPix>#nه.R%s'=V n1_81`[oS8u\ySz_!RQio)mP5po8 w ş l*o]0vkvMWl 1.~5 !?gw@DDBJjq"R6SHɠc/raCU"""rmݱZ."rŠ/>#BwŴԞe|'q,J7-b/(x96jK#A' &T[yDD:?IHkF̕o$:1_Kˮ*/9<.YK,ޫhCKG=SO9 땞4iCէ'52jԨxf<47Z>gfgv(yn?t"~ ^fęu@DDD}%cǪ#Gxc5 @DDD}q0^Cc@OMjɎe^NlxaFc>AޘULUw~Wѧ9Ek,W!O<,?/J3- DD*epyqӵWpѹr?P@ysՔ!V},?!CpʙqߘwxNq7V6)&}.L8/rYOX@E3aI*[Z5 ;pəHK81W>Y8Zv )x5W,""" "G`'_ˆt$lL&^/U4o̥ý??o=̅v#v&VFŬӺZ^.yq=hhPr -Ȉh2`킍MRVig|:"EDDDDq JjG\f 3xbV/^ʺbw\}5r'La/WCEU?_ń~Kg x̭?5M8]yOTP>6@4m1vXDDD@DpX&FEL iHv\wi~x> ?82 3x R&X_ ^gtv/RBiPIOPJxbi (8eXZ-[wB"Q]Qw,n{ry;ݧ?f.7K`Ynwr6 [Wps7mEܙL.i1^ 63XSVơnTʯme:xыHixͤ1|{L̺nr7~rxgS#2u?iE9DőcZVPkPx j1❯8w~vq͈f?s6YHػx94;7-\>|.Sripls (߄r̪'rhM4I ""rTA|\7Y#ysQ&{\-~ԏ=q snjG7P금7F;ie1_vMӵqOsYQI61MXGÁMpW0rx;q=rLbV8y3zUNR Y19g+VЪȁ5jԨmnJrȿJMބǸמaTczw2ǤoflT""R;DDd/ض]4Ls빛ya&e 0 I}ȣĂO 99_步(&n3jK} 8ͤYO,_^b5|3r|4|jf#_ʀ1|p͛ '@-9r׌vjBM{G)Z8so?lh>ߏn'pnv6T`-c7)mڏc&MBv(.tr9r$>sJ␉?j0|q0š@,6X,GaL+g+|ȑEEDBw;ܷ{`/PϽeC=!kSZĩ Rb{y vv.[`1ߎ[@~D(];jϷ>q +Gbv$ fβB *b9$ewhԄܙL_v Krs<Y|"h-9Be^Ddovn7uݫJͣ6&w'V$u9)n&$O$~t4,1uqlL  3i|cKFMݺ[7\9{ܷ|}p#!&&LBHjf,(oq\x<|>_ĕ@3..)t?󴭷M?;~-lhKgY8LZ#G P!"""""" """"""""""""""""" """""" """""""""""b^B!fϞe[j놈(\eܹ3aT T]qMF=msJ?hqܛɏ}O[됮C#f05m 'ۀȡ #`qV|f|49BXwh i}̛Vl( /thߘx}DD@DD\$ M7ij>V3I}3k8&NNV88nWш"=;{p-NJ6<7un"EY67H"" ""Rζa[[͛i8CȮ+&abƦӤqً)3[X<f,H!azlN'ySٱ&8'":94.gXN̶l̟"'mCJǓP=`No㫨fΖs@6, [kmv{k^~koimmEdQ } '9$$@y933>e-gTGed܆E޵,BخXdtǼM#qSr|RL wyd(L ܱɤ8 xe.r6p2)~#˛GAnJ{Ll|^ 5IYɘ5'G |r/Π$܆ITz ;=nh=8S),$aғ^~FntK0 <9 Ȱ(?ZR֕F 8×JVLK.4f20h3;)]AP%vDD> ,arLΉwh.c-z-wvJ R0Guni~⌎'h0]>-3VX7-o|q~XreoalA, WQm4!bـMcVVoMYu0A<1ZZN7a5ν4Y+8MH u(t駟nwЁ/kK;nSf00[xۏcQZ݈u "h_ӝ{_Kե5t\D-6qavEhn`ěX o)Y4O堤S}@:-|vI3l물Ddm#I9kBTKD3'6ێuBOq9 bSE<l_S1 Op^2So^ώ6 ,p'b=Tl,6_ķW`x@u*À=jt= $d[4-ap?dJ+EB4TQR2+LrˀHm)Τ]Y0ua0 e43λ""8Y:S\\|i322:=_Ó΀\o~pS&2լxN_yH2efbV-z5/7Eyo5[K{$h$6o W/gkDyMF7;a|[gCn1Ó[5on. ._"2(u NEs#ʗDrr՗dvaФQsxR5d$;%g̙3Ǟ6mZ s}iE;wnOֱ%線@`0H8>524Պ8\.ԏٜ5 b""ry錸8mXOh>DDC ""rBXx)# FO-\r&㹣@[BDD.!""""""""""" """""" """""""""""L`tBlri熈(\1tP 1{-n6֭POd {y>lg^[1~&#:>Tn䍅u\hҮS#K^cmfS.p8ag۶q:qZT}:b9h\Q~#%SOf> ؓذ)ٰ˩ Cbjw SED@DD.\8>@چ|zZ)==DꏱwX*;'fض9ш"W@|5u,iqNu_}Ux^@3rh؍;={葔|օֶl SDD@DD,:0Lv4mZoMLČIw8쪢cUgj69?"Gƌʧ;񒵬|N_2odH ;p+W`5AKJ` XMxmg:ehSr ]N܉\7nIZm`Y*I*x]w&C'W b&J bru`nޅpYTo_.;ӵJȠ "Ķ|ꈗ±۰ۻx]KVhn69|MB没DJyvvĐoc ӈ:l^'~c:Ӆ}нϦeG/C1kBW/fuIua'1y3n>YF͜FA)_V1kh";Hu# a#0W-"""rh0fϞMII &M9g_-]AV-aMM.)d]+DfN%=m‰3#M*ҕ9ܟ)w>ºxs365j ^\f7LNᲕ7juu`9$psp_N1K~wr.<O DDC(((&)7δKXxێ2&ɏ?XO٢r7kGک u_|Y7vF;xo'X\z6xø> :}Mg`y \W +XA?!w*QfkXƸ &X:_pEhVN" 4meݔU +9um8ݸZR8z4(g٫0Z6}#1H\wjNԡ̸}Kg>h'>hGݲ2h7Al KD@DDu2۝3tKèu뎣۔ L8XV7busvo82itrui nalFh.sтx BC]+"%+_Yl =p!ʖKoMO4^_O6+DU0njP]}z}p6к-n a O6@M0icV# >D䪠&X""9Yxv$3_z @f`*)f#MCU𒙟zvT VP^g;ܴ;72dcz jKFKP ǶTK LI&`g%!ۢh ;\䰝%KPZ@(e?>Yah\DjKv49r&:Ț `i,o?V nI?HPCGMM;$ 9Ilvo&>1:ڀDjHejvq_ ;BlJNGDD $==NtxC 2fūP6pFJ/{4װjˬ 8})(G{ZB#0 G&ycz9K^ۇ'ClZ7❕Qܩ ߗ:r tFNHys#uapIݗA ;w0dp.z>Q$$; &(?{J!#v錨 Fx>*øbV"a|&@,#)[>zƦEiKҡe}e5!w27![E*a̙3Ǟ6mZ s}iE;wnOֱ%線@`0H8>524Պ8\.ԏٜ5 bke4qԬtW Hgi# |:]?G=ܧ!""RKQ]5b }ԽPDD@DD3/i|&O[BD櫇((ȕ:ϝ;W[NDDDDD.0Z\i p0 mtjX5) `.|)6i!-ziS/N EDDDDrçHSO[+rVh,w?SZ TEDDDDDڲ,T0PRRiض}VY󨯠Jbhn1.hdTB R}-p2. 3'jjO%W.IG0b7f8Na~6"ӵl +6֎ \ٰ͞83*n38pOCG70,+=Yq8D[12.QtZxٳgSRRI(((Jc;7$k"q0cpE`;Mغl&A$To坵UNnI18u) vFh3pnjN]X ,&%(S?}^?{7l2ΛH6kصb1MdԦy<5b263}8ɽ2f`GpPTTĉYxq z2=c,[7`ˊT7ZD%2|`z9(~Ij\PH9PS7Ճt@-K ]|i@nvVQ7&\Kߢ)9`{r>)Q&@AٺhTbg|򓛖#*;qTmu ;eQ8&B /gwX4SҨi Sq!/okض ] ևpxOQEl3oRc:qaD,;l?U!hnpzpp0l"\?F֋YC;ҟ~`֋yGSIv\҅o("W:?N_ y}Sظ:qҵTˢ"-'nƋKˋG)3`};1!""ڍZ6Ǿv7f`ƌ· 'NkpMٍ~ax`>O~S̘17pm@ |X8|̘q |W4o%g&7ݑg~YOm: ׹Xʪ#2o)ǎO%[A*g`(?xڈI\Dcl;ĉ8N{kJ86! V:, >jwEԀ8ƣ<0}~?T^]ï *]țx0F`{ce/sZ za$4||{,>uu~5Ӂ<3IsNcqܖq"W$==N3 Gf篢63~D/b zfRpª MR|Fg#ֱtKlFʎ!h\CdYԅ 2򆑒uFR~IKg#玉u vR ;x*$1&?1MS[)8NP=/>T6/|{;{r2L[K|쭱u=&u ~7'B\nygܛ{t9v5=Gs [;oYH qC*Fߘdg83K (yH%ʄ|<ʧqG#7Jfe$cFN7()n9\." OM"˅i?x)!Žp%zf_:1o iu(_C ֩ɶS[GIdh'1/ܙL+hR7YBDD>8X`_ҥ[-ˍxU{&El`m;I5~|ywWsIq8/ϯf|m:?j."5x=pV_/c~ç\>Gn>ϔv'ѫ^z]|?cDA}G׹#@ bsRݳ+K}Qdz՝JLwv'tc"n[kl2\6 &:7#>l_%GC#̞^ʷ%85HƖYܒ*r.p5QiĘAʷm䠑xv\U.?I;xϹ~w:Neؔ8Kwr" 7KׁNc'fzh -edL 0|YPSYWȝ7c#SN,v_;grv4g3?b;:=&9\ GٷItz.d1;Dm]OyCEx|NBMmTa>p,֚ C+D}j-"PT݋:i#Bռ/d4nHW_L_Q2j6x;Ev5X+  lXʒ?WDkȣ1zCu*f$:4'iLq jʪx;jrY|oh^w|gż}-t/ _IlŁ'VK|øBUrTO/^Ij0 v>|,q+pH =ΤXm O~N2fͰ7|JO-y1$8^_/k%%K'bԮgUǒ?~>U;?ɹ>BԼDj Dwde}#~&}B2.lj-uSxH-Bݺٹ$`g+Қȱt>U8EDDDwM|᳽))z߿cuuؾ/w3M>31x']@RIgo֮¶MۊrXdٖԇm$ƸpF;5.2"jzXż__JMwʛy`~v.=@ M.cd}֝ ,g/r8{S_>VNb.M5F~ /""""לh=kIDAT-?1_u gyě̩_b_ 9!$Y*iC~Tz !Oie͓Gꈘ^ gޣ=qg,s=GHqSpDlw|)TqvY/ w}:͝;믿^Ǡz}?>?L~8w}Mlf~vHsFgf(|ǃHgz71yS&\ `-[wھ}"""""rj C0,[N=ݶm֭[u,đ%6e 3](""""W]DD:@ZBG8& çC<ۼiQnA| Ga`{s?=""""rm çH luʎ֛]Rz H'Xu*hfo7%%%mۗ$D*7Ƃ\j 6 ? kzR]spW_̈́CHY]DD@DD~-}^ʫmu>HDDDDDp8(**`ĉ,^~+~NоTbs6 ""1 j\сD= .hze7}2ӍT+/c`hsFR{Cā 6"(Fc\=DD3'KN5CuЍְ_/4 7CndD77r%߻7 ;7SoA""""rs\DGGE0$ jE. sn#n"{D; m0|Ir[̈́O03w `Qi#\"""""" """"""""""""""""" """""" """"""""""" """""" """"""""""""""""" """"""""""""""""" """""" """"""""""" """""" """"""""""""""""" """"""""""""""""" """""" """"""""""" """""" """"""""""""""""" """""" """"""""""" """""" """"""""""""""""" """"""""""""""""" """""" """"""""""" """""" """"""""""""""""" """"""""""""""""" """""" """"""""""" """""" """"""""""""""""" """""" """"""""""" """""" """"""""""""""""" """"""""""""""""" """""" """"""""""" """""" """"""""""""""""" """"""""""""""""" """""" """"""""""" """""" """"""""""""""""" """""" """"""""""" """""" """"""""""""""""" """"""""""""""""" """""" """"""""""" """""" """"""""""""""""" """"""""""""""""" """""" """"""""""" """""" """""rmpj;w6rDDD@DD>~]w݅mWr?Ovv6>Çӧe]s4MmFffRkἮM """""ՀqztvYQ&toYY!j P""񤟕DDx DD @T"""WՀ\7-kK(5?}ϗಧBƽ>73_""""VFamlXCRHp{"'nߛy\`& /MKDDD:&X""gܼw(9owھ=>3bGhom<=:۶,כS,DDDDD͠'8no, Gp8J~01M'<%d6d_w?W*3_06֦Ex|NgzR'= |;_e'{Tȑ8ߙE(z_bv5~݉8t\KDBO.Oˍm6>|iV-c0OAݼ'է7{2sXTeK& ݕ ښf&X}<O0/ " >=Os/a:DD!f71 NMa\0N~uj+,=cﻇ]{C?-`UH|/Oekq[̚`w|W(i@ ?>ӯq>7v_Ȩx\QxmhhS4õi.$R&1%m6E2X$2濾š}|W&a⧿īiEG_wXvwtGkP|l9[j"hlpI\ܝxG}@l \1 $$5ܜj^4lL mD*dFNj|95Ĵ~J==v#e """""mxIOOlmp})ѩ$d¼7y0}ִ\lE@5 t4WZ [kS_H_o[|@l}S5ҝWx~s#vVKI0BP>=Du .brh]Pd|#?h' ~fh.Ϲ)NǶfa7Qi骝Ҧf |O|$ [r~;SsMOe$mk@8;}_7x1N ٌw67v5@DD@DDpLoO1W_y󝛞߁/51w?Ɛ ڽwϼtFieɌ{׌k;=A%:f#oMnȸy҇}er3Y}(aܹrrYؒ+E7|n{eM?m^sh;__,Zu։>'Bz' /܎R:lDDr믿^[M. ["W|,[y3==ozUUWWWWǻoz˼KJ{40!!!jb#Muu*+7\jŢshq1@wN'E^^ϒtE!>x^^A0Kh 6;l6;thnn]+VZ٢E]dct,Op">TcpCD1 F]yk):7';)c֭ذ~=*v[0KP$'''++;;;>q ص{-[4w aom}V `q86#>~ܙeef$؅E/EvlۺmΝ;WnSy0iJE Y=z ^iȲu+i# ,wMn,Wl?E>RK&<R_wڹz?!^=(31ɧ}qJް~_9yn9(6n d`0ܗ2sy̜=9-߲)N)L2iİs͙G;-`|>gY;0@^+^`!әy$3eRRʓ'H)R)eo)e2SJ*L`f7 CQŘNNOK{/z_S~$C< 1ډ菱2h0-eIWS@lnPǞxFÏxhiBCg, Yg馅|r,3#'J)y2_J̙RrLaؐ.--j!8koog}8Wpq?䚠: 1 :(Z bA[t}?yOMM-/?O1r)~N3d|1) f/ye6K`Ro'*$kz@VVj<>N{gk/Oz\BVDyXLO `dD`9t)h\|y&]zgC]K˖_`W{{;aذJP |V!"ҙYND%::1$|~VBֺ$!ZI~?2QUGhݮ_{ HuNM'WWW87gLɶ?ӿy5dEnp0ȵLa&@rO_0Nt ho"~Y,\6S~'v8g{0+G`]N=gyE oB1E8"fTu7Pu@; 3 H6$NI#ݓ";v|M [o_O),( uz;/5 ?`=w``X=\ `0|ԹԷ#Uԉ#06F?e` .?]Fz_&DM8nhȃg3(&(DO 0 @JrmjXR%K͒*XR.i_:MTI]Ҍtj]f;gM7`@ff!fX 8Jq&sE0{[tai g/Q?js34Y'g81+o?K's/# -Æ唔ZH |LDCocff"&$^J( CQEe(PTPT AhP,(?+uqu*?.igY‰T8 ;KuvFDM z!?0Ք̺xaǷ6F<qTEjtM 1?h'HȣMQfJQt tL߯y}/Tbr G33cѬK =})%&@otH{I W=$j*  EhES XXmPv(6+RvФ_PζZ40a\ɐO1@)/0ǔz$J)YL5()SpIA ])EwЁڿym[6݇)ф@.)ͣ_:h&na̞O=uԸ=*`>`S\%MDm%vbB!ޝ&vfwCnMe$A$ P̫ Ah Mh$,ݡM_A=e$[M[6;wΖ1gFNv?u? C0S?cJdnkQv/M6\4knށcyǥQϣZx p7_]`a˗tZ[wg([T!-ep#|i` $.|3l`وH('j%@w[Dߏ2}VG*PTfEoYhV,(NWu A駟Y} ̄.|F3Cg !u a͞tG}߉)wa;{qeK xt>pYI|/M>4O,S=[o]QPA?0-)͞"Et U%j$83Ctj% I䱿]j͛7> ii+mkD$ ("ٵ7i=@RHK˚PR\Z^^u, (z%= %C zuPp0D$IU 44`)|S)_߮x^O(@( WfABa"r}3N?}HKLyCdTi3c([lyWjŜ98?2. <<pΨI^F5޸0͜S:X>1gHD; ƁΖ.egdgg|LWkN} Z+_F=4P4C3x{X~t/9"Ccy>YѦY:zǙalf{1[ˬ/J|=O$(^c/+ح&*8Ȣ?kXn͊|; owz'e|' !az[]ѰOv~fp{\CG0nsߣ>>dNM8S}//({nEŮ]/>[>#N7\dJJ@h?`!\K [o-F9s^R< -.AUT ETZ**V|<ߐc+S0x! aeU T @ZXUm_K'=te7r/nhhr]}{j'E sJS {@.4_w7t<Ht$n{0TWLTnN({GHɎQdp1R|hiuW)vw͠6=[$z^+]@D04y./R3X-O;=,jE '鄝z *j lYӹ,8bą1Xpup.aEƥxڡ 9Lo3%#=6uc~n#DWx l0m&f~kp!flLLj 2Jgۢؿ\fk" /;++ ŧliJlJl Dsyݺ xʋ P  rxiV fx\RKe &v٥WPKhNvT=!9g~<--!|bKo͹⒧+z&aU /yCs5_oʇf g;pf`xCHp{7BQ#Ss.›0w#iL5HփRHQfq2sᴫv $黅A@|X٤et'&zUrIx̥f )* ܡO4~\/QI˩d4EyBW]׫HUU׶֬\boZvBӟYan7baѴ8J3Zgp9 ec~f!)R}/3f:٥ t$YmV3&^OM"EU CZH) % MYNX >"p:l @H(Plb|[8s A ە vbKxB(y3iUUqnE{i8}hrҴ]cww/wM#$~*b {UfߣGt<ʜ֦KU PHBJ(6>Nf(K pZMD`Mk嬬f+s jy$saZ@Xg MEq5`V/Ͻo[Wn4碻bUX2}飅RWpM=}(]hÕ ˴5 tS?ug*x2oP4܈]C d_\ps_R%Щ}7}2 B45t8VC!)AIffr3`aF&q ` &F O { ÞN֠G>oن1~ g0Xr+z$rc tzHa?FLOI3tc!hvVUu816J7^8o]ef" MBV  " *t$`U%gO|SL B  !BJP {\lPȍc;Dp: tR*`PZ"iKid0DQxkmn0HpvfݵޓPTMԖ`8b՘fX_UسUWus2C Ƞƀ*¸JH UqCPV$YUOkllD ogc~'a:tb~id11?MZ=VN5iC}׭{Nmo)2 i['3p-9oSRW|R3oU;s{~Yۥԅ"T,_Ds{B B#co{ͻ|/Ϣa6+C^]$(7oϬZK.qA0^l&sl @0H&5!9VABw1:˰  i_ؤE,I+_շ>s$KHH4뗫+=UΧ_|0 YBQ*J{眚XAh!U HH"M%@`4`"$_{f,myZdxo&]u <ؓcnUdسw/4M[{>i=3TxS kpإ^ӌOjwؾyÆ>edBb}e:-'HCث<'9Ty '9E$pEߝ{nOXۼ~LW*u{3G's݊nU@Bf@񓿳ϛ?{H`٠'Muf;W^ںc|j%]]yO6UhkosmrJ:9W8e e~D8%_MqZf(WW1ap|ks.!M2)֔BQav;Ԗ'HEW2LrU g]SÞn<Ӟ3OLf%G=@["{+PpbJR1ďPUp{q ܸlٲ-wW'g-&׏f圬Ϫy;γ!IC̪nHl=W7B#dO|M0Mf#^:V"CKA|^`W랥{!I79厷?7H=].UKq)D,^/7;'w訓OX?SFER۷eB9ҿ}jkzZEP&ʳױmh(qa|a$RP$"M E'R IHA)~uoЗV |ꢉ blqZl[>[ƺGzG{P񩧝h-!>6bu[9lD):YTŠ IPtH}ٸ|d$@K 7uln逐2߇"AB (B| K]CFZL~񧨥//=i{O8h V֭_p֬l}t깩BHPA~jY 2 AMc- 5 RbkNM]kPCdA fCZ\!=dх}RkwslL0Gzem6 40)##f(&>^-.cPCJHBu(:CTVH0HhZ^ս $YSyaVB?0 vc=38]a=D{Ayj҉ti0(ܵ98_ωlP$Lb(! % %A <n7ԌB:0U"=% j! j *prY׎H>s' A;64!  z6< qˠk!&/Bws' ĵ pSD.'㇚֛[\l6G 'EAZ5D{y3R.y|:F}Ȗ}irLUb4{q 8#C8;~1Hk);;t ٙYy **pK.{HtKfzN;4BpKi"EXcqNOe;~L/vzC,YoݺR{8';.m/ίhF-ƁvTSn7gh UӼ8^̾una(ƀ$a<펾j^6Ǣ(fh0j.ϳz+V9tL? -H!@?|R_4`UFP ΃mmق4{xF8Q_>/"yv{ eLD! pBZ巢}э}?fF!w9:`xJjE٣z7!8e(ۇR(J!uss v܅˖ʕcNڲ}MoXr0M !}o۶23QPЗ{Ćh-hmuoylӻ_j80-Qsa?~Nggz"ZJփeYBUObsDKc<jxԳ+~1kbj@OJ.AjvMc}l6wj~>, 0R,K@DB#r}}=j RR5Cmz(D j={}Ju)+3Th?8 6 CeOeee1WVV3A4k#NǞ@v=m]pY/r=}H]j޳'OIdH tGߡb fvuEqq}.S__y^^*mۆxwq <ʺӲe1b+gCA/IBPY#-tA(MYwp89l ӑzdbx k=+B,$2M6Q^e{ɺ# >(~ߠ%%%hŊ֮]ە3Q`4w,͍БesK͈(ʈ1үe80Jw=:KF# pW? 8fJ)p8W^TPP޽{=K (--C"!!ҿtaW\*?82@wdYŁFDQmv ψ(ܒhtJ x% #gZ9''RJA޽?<*^/Yxlh7AZ!}8>o8{}"̅=M=:1@f'{$~2 pwzӟ4WJ9ppnn.!v܉g}SNpQQNW~nRAJ<_2 L]}P?f>I)b ++򐓓˅W_}֭㒒߅jPd7 ]eqA̓&óQ?Wpc8Z}?>ox"̰lEyyyEss3OkR0D>}vAU:;,GY$FGᘩ;~133, 2339;;YYYhkk;#͛7# RfffW.gtQá;,~q"t vߏ3s=+r}3"++ ---1c6mڄ`K}墩Ae1#08w:;RT"ge?@ߏ3@eRRωh4 iiit?DyyyWԠPY&0%:pl? wgԩg !J)aX(--:raΜ9]3@wdY\k)X]Y;fow|gTWWմo>+Bɲxku9XIENDB`spykeviewer-0.4.4/doc/source/img/plugin-signals.png0000644000175000017500000007320012650522331020506 0ustar robrobPNG  IHDR+5ubKGD pHYs  tIME tEXtCommentCreated with GIMPW IDATxwtUپlz!PEAEDDQQ@`AR |""(T)bD:$}f?6Z(}s2Ν߼;wO9Nr:-v'O @a2/NYɡ\rlv5zKxZt:MNA@@'&N(ZN n3g1::cvvvu`4.fӧOӧd4%##C@ Ŋ+mǎ'&&&6ׯv*6M@ (ZH֭[zGt:l6zh!@P*,thի7x<t:h@pEz=5kdÆ M`` fY@ [j*Zĝ [=A@41 $1L^\?Tn݇vc !R4mG ]g!ZcP|6|Ygl٦1}k8''GMS Ug{W(-BX9;7ds-4lU@ +C7GrN2ɹ+P욫ZL+rI:SL^fmsdSǎբ aWs~gG% oL -.vN# X7>l$+~;ٌ%|hCxfAFr*Rד{w-[Î;PH@@wy'"QU~1vy^'psOERVUWn*ANET(sju:oڕ$┬!qq(r>~Ό *%nCVTT1\*`Rnkuk%; EɑRxNhP&S HԴnd[LL2UrC!7N۶mٶm99288f͚s: D"cKORوF V(XmIw6FQpPL͆rApn]¥EC$ wߞ[vVW|GvaJT"}Ql:hŃ ,lZ"nO[T{QqQ 8[v% {\7< (\@S\׫֟c#*e QmB}ЙHg$  ٜᯄ<*հb?'E>T5Ю.r> CǩGI+USVNMϧb _ܩ9%rZd4 z*%ѕn.  //SF FՋD_:|?giv4Ri}jҦVts|Bl6ಹ-D {2ETDr"gV"vΜ+D,ۓЩo,=څ'77@h[WТT|LHXgT{'Oj׮۷ƩSRUmWCжWGV/KE_ֲ{P tAutpkDKGiBb@:U縧;5 Uv(#aír>5>s?m#hPggD#ןƍFڵ";;:uFFzҤI.]HZ~b1i%@㴑JF[ИD\iItⶹ&:$ĝ_0Xid.Lk~'c *CD/zIm"Cx|NK@PHB #x.\؞ƀ_H~>EZj6ٻGIKhpͅٵ'8D|]t,{_}iZBBB}wXzB%,B1)yI bhrh&MիEMA_Tm$Ēx nL{)-%q7e#ܼf P=s2IK-Dp3DnT\9ɜIM!@ DD BD@ ""!"@@ BD@ DD 5'"2NÁn-Fdh4r1Cq+XlCB¢rpz? _DN'Nr$j@SYjwX,E#Ib޿dNs"3En~q8\OHtκ*V RV;B@*$La変"( 'Lf.4:INc(GqQ(&朠W!ѣ5tp7ʋ' a"U.UI@F99-[H+ 5[8-8'-\"9k<ܑXw{Lwx~Vor|~e.'3 nH@SJZR2LY @êC)(7 (H n1%$ -\s˳Qh1 \(t'iiDD-8~qєǟKM x2jr8>Zձܰ Y%lZѣb[?|]^d]4^iKwer}YۉˑkН'nC9J֖ mB9G3>A~J.Wβ pޖB+HJ̜1/חroeg3ف5Z7C!P}C#R"*Λr!b˼5{+U.sI)iN6):YIz}f|tM|s`ٴ, f?,6>o=Rfz vZD~>9Wf™'rWu{ >)e_}mY=>$0K`^ {984DM#fmj2ve1HNa~jMD%xPUۍ~v{)4:@)iIL-,_ =[~4=;"P/i@ߖ萜$N@`D%R:%]q%&Gu71Gu@ێhl=IH4#CiԽ#!/"b+ijOD[|YReѻVMDֹPg,3~\F@Ae=C$P #$ %50L;ѷ[C|/8ƢG;IفTֆKyԅ]Y e괥gNԲ>kF_(fg*6%Y=Ҙ @A6C}T]c %@k#W7~47?E{p0&"DVQN<Q70ͥh:˖MCɉ,p3h~o4}>`Oŗ/aid5o["A7V*bkk_ici ]A-2 3m0%Z 6,_D,\<ַBLйg'"g&Mv7ɮ#l)hPTmQ.IFQ~Ӹj{._I?Q?x 7;wu=oUhT?p푈d"zZMZZT⩊$ "3FFߐWA$:E\U\^{ >@F:c4z5T/TFhݒT OBf,~nJh47~K aT2HҕsA:(TOn!"Zr_^-f5 ?c/w/MDc@ DD BD@@ ""!"@ DD XnJM@pȍM@pp5"MLfvv2{))ܰ=d$3t;heRsN:ĞI[3^Spc?xUzfq*oF"pffLLD(geBsyuh?#^ <'q ^8f[HDf!j6G,^O&'!^'.@` 8L'';# NfZx7b}1b,O6 B̚rEGG0sf!fkt5=ٿ#Ry`lDXC~'ﵥ؜r:O`pKwpG?x .;3ˀOG=(]] xe:gj(1F JY%m ^SnؓM=ϼ1AΈ&gkf}yGhstP^KPя1}<R2i“]~/'|'v~G殲ugQC?ZlI` A(zV1#|\Ħ0aЯ>ɇ 7+1R7ygxKM.nYf!<<ܻ|)m4aui\jT ,e0ўӢa۶bԕ5|ѕ!YWnqT2ǣD~6heiX"ֲ+Eje;t~$ j;} H*60Pf~z''K=]e ZseZ@iGViAR\9ط1 ƈ;+ST@bq(1tDn\sМ2rL|,U'wCh}C՞ɍ42NYEO[@ Gl>2k4&pv%Ofp*[wUr>̨GYv8q`DcO$_@@٫%W%7br>ZʞBt{Jy55MEOIG#;:Nˢ|(. ^GAh )ܷΨCs^l<9cGϥ(R|0tv;ZS3*nWa6%\FݳvC%yB}zҭ׍dW~ !a4M&Q- mu'?Xby:=2* η)fGrױL :E:,kZ?)B|dv&!cA ydx|ipw2?Md־ޜ&t(+X01jp/ R7#Fuw[e7m\o"qJEt  Q*Ԧ:)~cѷȓe~ˢZv56Tid9JXH̺Pg݊xW"JƦ}g(h} գHH[IvT{{>^ڔ3P4鍖Άt!&"*ܧ1/6+ )_G^+MҥKq:,]=`EDGhsӛ,]T@ÆSvpQMq)) Yn5j`ݺuFTUu'❱ѳ^K#Bk>c`R xnͲZ1>ɴ)&U0xR2=f9'V=c8?W'e,ZL w> WX2&'Wk*Γ93#}#iy_ _ikm'm: e?z ᐤѡjEqm IDAT=.?@jUl˓X? k կcs^lip23罁u=]zV_~%eʔ!44|K rLD8C25-Ki]YjpNbW×xls"4$Ĭ럇3?~* 4Md^^+`'c$+o,zSywT*+i\f #el' Hlpy!9G7j'y"F? -\{HD\DD"u$R4=ʚLsTLNJ|p+YFV$P"r²*|V7{lfr/m;dg*++y܆2Dso{uM WʟHpo:VG}|_.TUƞ~];IWX4.r4}Ů 4DJe l9}wq<ۅ* ǤՔ g~ ˅ӖΡbCFʚ0V]h7./bOZ^V1I?B'J,#+*د܌Sޛ:XGzYoM)o*'Rwp:S-"šI.P+ 떼.i,t^a؉XHZhO?HWlRgn~_SƑGzڅiXTx:#"vT[* kaT#k´sչw4F602zOPH5q?W o$"[s|wނ"<36a_=TԩfY\ۈl}bz=3f x*SV-ʔ)u] okdA cdz~\UU$IBk. n-V+w}7B :uZjaZ/ɿhv9 g|B2F"dԐ&XCDξa͂[]qF, 3DQk @5 g/rj7iٲ%7nm۶B7t3NDp rssBDc׵ȶmڵ%Eɓ\dBDX,BBBذawu*T!)v_ӓHEoa.ZaÆjϿm66mrNŊٲe thu4Fs __µF W{qqq+營.<<Ʉ?09э߼qh4V+״!"q! `l@p]H4@ ""!"@@ BD5eӉ(HFdh4D."Nud9JN,;xXD2S7=$GDRlRVBD]DE!5$ ޅFC'i;yՍxhBj j_/){l˧7G\K(@F9LMLD(ge(\V*Pd.coDd&r~G.Z۝y"@8 "x@)h%-Ix,yaUʡRۘrDz{-<ؿxAẼUd IBˆ?(ۉ΅"_8L'fcSY':ִq%~0tBF0gGfL֗n]LZ]fq*ٿk'X2ֽHQɾ9tBOXPvCYwn%m /}ӥKW6u'^#)~&?8dSdFөͿ2iTŎĄJdntV~VI,x jNɟ`t82V觪a~q&{"1kMTh݉HDf x6:D pb&YYw!ϙĞ`=X]qov r=gi 5h0FI^\wɇܺNֵDu!X=0Q>hu~֟v&e̿/s@Ag-OH?Ĉ-]u.E_Ǚ8zˌ1PnwRyJ5 鋊+c+'Rur77»G1h&r~ ,o \cISܤ V$t]UxႣ$ hR| TD#Du+SҧQ ONN,}+Ίn e̿/CFS:; xgmE]x*։Gvt9F_$w9N;Y!"ݍYZ)?lYq7Y0t[˯sɮ Bhh~M \7*_dP;FN U[OFG/j%LStoȅﶸY7+bԟ5(Ԃ[0AqᑝgkY+]j0ى Jxauy"3j~ )sut2yev-M;T*42 %i$f](uknEY =8SX5qGh-`ޚ;nGDL:$/ÏGs*loEN 0Qea J`F$x6܊Py%4Z=3[EݸU'nŁŃ>L ?*5kt$\ i[\' `Ɣ8I1K>TiZv;iT͊ MbX}zocU}E428 0P. NDC j`\mBCP?ogFO8U`x+%ANj/G ȻL][!G^th?5zgff:;[k4U[TT [8vWmOPP -u16LTUIKKCҀ^<$UА0ZDwh4 hy.(K?h*ZW "jX,׸m(!"@@ ""BD@ DD !""l4+"FS "rMM@5!l4o0L47g0@L*/M@ȵF#FS "rM"rZ';# ѬZx7b}1b,O6 B̚rEGG0sf!fkt5=ٿ#Ry`lDXC~'ﵽ@۝>˚p=0'@MGI&Bg^ ; T{?͛Β_pG{ MM2-e߲'UL'3&&-aIBO3v^ayl4VwǷϜ1yӕFW-esm)g(<w 6xp׬\M1cSYKH0eϪ0g5,baYpx*uk $$|jtkarS1 īV~4uuEbSҠ)<Ɖt;!J#gbMDhᄀmU/*->=L90|$Л(2D^$qޗ4ZYVaѤSdytof'ٛFUiVb]vJF1i5Q[/K&jWv#[#G6D\x$h;<9g,!ˣ'jWRݤ#) QCh^7nyM@3FS "rM"i$,,:v@ DD BD@ ""!"@@ BDMODukW,gRJxDp4@ Dص+$ :uB|p( K BD '7{bA_vYMn^БGp ͢EDZez9BNgueYBd/2˟M!-{2pPwn֒]o<΂:S֫°od{vgĻ.0#RM4p8 7Wc"]^KMʣǚO>䵗2yjZDS<  nQit3:"5o>?J1eURDz432gC&veǘ_>jC)4ׇ.{\,nW.;wƓW~35cLv2> EccΜ=䫔xƮ56y:̛HO(Β]Aݯbc*>K%R<ח94~)߭qXɹ{O p{MOj~OU߲`Du}V'y@fGqf%&c_E~Jltv僯VUsK]cӖb ңN(9NcwBuN ?Ùܔb/F?U sW|1CZDzUG"W**L%-!>(Ue;t~$ j;} O/Zt|m8*\֦}9}e,A CZ5'Ʊ^RT^%5=$oZ͉<ުfHD~# % kí)gЇЧgo̵ۻz!w<Ѕ~: Pф<6;{I0DаTܗ_MFE"K&W2.wL~zL"Ez4zeKkIZ=wlZLDKd],m#\b_X2V=oB[fИ_tI{rrsUdJHmnG&9~E>Xb8o7S~/$=F/>E>[F]4fEW ^Q}yD4P| d،Z =킊DB6*ʕꪗ\3\wwF"s~ntzT}{* \t'xҗ;k~Hp|`Ͱ@^R.ɹ(w& ˟qtXJ!HF<7fc+څqx4֗v,2r~V|;wQmm:5XLyR2ӣK\<'?wq]ƽrwu,tTW.nt֠},DKŝe+q_UϺs0[H8T2wK{ ; ڧwKa}Y|iizs Cl_ xmr6wtIԛoҧKY8.BWKKf$oa[FN&=ިv{Mԍc\̚ }'"뭔њ~#ȝ_&<#Lb>Z&]C5%ANj/G {.\fHpEVJ5l͘MԩKzFL47g0 U#pևﵺɹhԨQC?jy?_jԨ.M;wbmh鋜Ͽ>Cԣ5"QLzF&!A4+ۢvS`w\Q `ٸwx3 jwzBъܨtF @ &!"@@ ""@ DD BD@@ ""\օ.]Mt~ޅ.]Ҧ\1צ@p p SOg̥lؗ 5 ՚Ё -Ŧ>T^Lwe b aʚL*S#BGAz"qo`ZbhOyoE\O> M8zgz">z͉0di2^t1oa3kQ l`'cz?J 1)i֌6|aTijvmGu<޺,X;K6r$ FTT7QMDk-KpbKXJ߱׿=>߽k=߁;S^ HgZg*j彗>2ʴGϻ(^f(ۘ1'䔥}#1CL.tÐǫ9o+mGPS *OUd]3 w;?x S4|Gw{ggS9.3w;024d_"Rd/E*-doDe͒%$J""!DT~%2s~`43L|߯y5߳={>y=߇f ɍ| ̫/XEE (9 D4HJˮfrvne?i:|ASxJs7A3gZ)ΕP=T3O! ëd=30@ɫcyiDq!^"u;U"|-FOz/<'3~aj)Z"ǽE`d W~uplc9nVG ,AN}9/Ϩ 5 IDAT}"_<ƉG8S&K6DG*"#g阩ф39t4%kW*- eq@Hz(_$|ouiC5>cʎ#|t-jșI?~l_aGPx/1N (f98:<֔~?͟W/gٍ~?dS&VmiSWہvC4_͜: y9,Y(U6ͫ`49PŪ ߱š>DTiMM"" EX2+^{F`H |[ Q2B !"@ #eaEWad@x"@ DD BD@ ""!"@@ )3lpiYe|||0("@p;t;u5iZ'ا$UC[`Xĕngq8I]C$ Ri疿&.&R,r"y-El#3b;Q;ɎۻD$3b;iH JbƑ|?W3I+-WXnjg1k fN[~ ' I(n$I!9IjbQ%UN$4֔VʗPXۑ/e⁞.ЕS]"-z@e4")$L'0y(f<ޮ]0>nՓʑ9_YrW \QDT B<⑋DdpD)8Չݭx7z55dWx~2:9y>3! &OLֱaFqC>ŊFyyd,HY׶1M^xj2[g{HqKihUu3̉jMc;8Yt"MKLϱ9ԭ|# QΙʼ5{Iusϓ2!*wLGm %Ȩך.^p 9] r6#g&22BWknQ;{xBn.]˾o1oWO 0wG7˖`;9l:ع3 o=_{Ps跓׫%:ܿYKg[ד{NnN9lq*z&6F0ꩻ ɇG1x2[ԥ3/6\Hb,{9W"F n @:niwvu6P.N~?ēSKku{Kso+sj#U 2ґlY_b.IudPu#xlcl;KժazbD&)2=2~%*R18fQ;XLPZ&":+\l0 X$e!X (~帿kK|%%c0hd=ȑd;JJJND54}'0a'G ՍBm=ٲOtJŲ #0$&(a+7TuԬ$U 6k.cG*2A?/ݍS( 1=UUy[(CrkZ,Vs:\'6ai=:_FYC/2ކIşsdS[%S4-^KWeo. :o;Յؓ,>7Yjí9(5(tJÒhĭ9 o0擟3AL ՒHoUL ΢gߦGU(_4v$ ԭi?TqC2 'Pe_㥞w!euLAǃb2FIR~c ;XFd:{C75"?2nۤ:% AeE/D) x'55Jk˹,ʹ Ȓi熿N r \l}wOvZ_~(*`$%%!ɠy*kA*1}ĕnpl66h?sn]@p(X,k\?O cļ@ ""!"@@ BD@p{`&b™(7Aq\l6RRRp:ޙ7 I0̈́bX0LBDCVV)))ԯ_pdYD7MHJJb֭PtڂHrr2#22RH1@e"##SEf+.(cو(fX,<OBDMӄR̯AáC)"rQ!#{ <#2RkRSS8p W6ܷ3grT%<(OCK Y |YGuÄb-,its˯ ,fEt:Yh}ɳd!"R <#w\Y :ަ؟IR9WȺUHq$Oxrqzj*Wի~D$EAQ DRy' 6/. gtl1WgڵiKyaZTp yt{l[cшZ3h0[57g ̙29 oLv;$!F?2Y96CKE/N#n˘?gR?VHiS{ʕ+q\$$$p q/k}xiŏ0=EtԒ (&پK=Ky6BdNRT*xՓ}ҹ\ss#16Ӳ{KJutS pc8$~W"zA;+5zfUB1)8cD/QUm&:jeZܲ|rVk5M+px{WIZ}9{@ &(5 ~wgA;v,t;ȲW¡r'l!_7A͟t^~6s$I#;[SsL߬$|h#/*J ;E##U M]~']ΨjlCQF;Q)$$?1]aY'&֙L}}4 #_iMiQEěm4op}r NQj E0E]A@!Ѧ xH;!$EwJO# j@; nU*7{!Zko8-^P/yoA"GfLyA>zq9"\ktBw%sHޞ3ku:j@EDECD4]=GDT M XE@5T)ipW%,uQ?`3 V ^oĪDnqZY:qݦ^ {?_,d=GsQEK踲c(d@ҳ9Fi|=)ْFQyke '&oT:Ȧ-HkH$ݺ5w:\qtPv6tj%WdQ׺6%;qz<8Ҏu;8~դ K%q.'ft`ZNjEt R9V2˻qR뱡S~-Ooń[#w4x 4GL2 T woD캂L=:0e^R5pFE_CS{6k2 Q5 ž\O脶͌Ӝ. %ޮhP2i.ds$~QyM.>EI(](Rtx>}F-O|"rcF~z4iW$ݦDMF!"Ed߼͛7Ӷm+ѣG+ɚ b!,,uѴiSbbb 4AQk+J*Snh{^^uȺ(EQʺ6 6PlY/vJ.ͦM̼.YQ"M$Ƣ{.r> =\ҥKH``Av###<$N3,@PPPKPj^6NAp0@ ""!"@@ \팠PȝBP|P冼""(0. FJJ NS }Hl&44łTS CVV)))ԯ_pQ&iIIIlݺP1VW[P`INN^zDFF )ȲLdd$u!==LqBul6 rC""(.(GXwRСC"U}uscyсЋx]'|,ڏz,?wFO#^${z8żs͍m抈;=k2ϳ f/Ӟ~6]a}ƞ_j>ؗ9;2sqˇ[[p-thѢ+1L\}w&oegq})VP/dT\իW_&PQRƉh$|åv`0} ӛ?~qOF=Js.*7ͧ)tT{D^'Mვ. /tQΙʼ5{Iusϓ2!*Ipu/ äiiANvL%Sp@{~m)kgQote/LdH-g=$PC`9t?Kp U:xkDN8ڿ2Oa<8#vb Y1Fu䣯_j! L\ޙ3c,^(b_-8~$|)lD~/՝_}KgZr޲12[d w]A=foz Gu)l^msDZ/_S+uogשuu7j2Ci7f_|)#!]}ɋ\a?o֑Q^0(7:mY+հQ΁%n`Luxw#Qȓʕ+IHH`ڵ$$$rJWs䇄DP\#bl9|V#֣ )#!)WA وARq:gj.,mFK0o .Cq%_owgc1n8W_]%Np-^-|6s!H,эp]z_MNʵx54DY&<$O=v!N` K]M!l-i8UM^ H hGETxC™̷3H,g2W;jI$kxT\q։(Y4JwcAʹٳrF_4F@2Zg(a8R79jC ~6ѯ1: sts>?o'" z9%ɟ2uSܑJ%d$hWʙCF *&^""UM"A^^l&hVN;utW: qR̶ٞ}(S2_:gٵb5's~U~ߩ.t]Ş|߷&]cKշ44}b_ϞzӃͦCIBwaͲp*6NFbYs.ۅiK柟`]%}0W@SL).)cO MQ1Ysv.%UUQ5].ٯXr L+ȗP̤WǑ ޷3]vP{?s_uY9sQXF\K@P%էO?ɟFL13rhӋzXRRt`< ky & @ +<"Hƕ~h4?Z SvU`jጊPcpwz'-O8#\WĨr ă1/S9:sKtd7E1 O$ק(&NjJX[HLL$>>VZ+ RĤӧOFF>JvȲg}F\\QQQErMI&1>gIH6%$y¹=X" B XZ_3C9ʷƣ,"zvy¶VxuIDATbE1[ACOu~GF3hhdJ7iXG6axA;nK[LDT B}l|xr;Q0!\hj2bф|4ikcR;@S>b38L~?}Gm;R59 `dտ$_Zy1L<:z4J_8/?O"Sp)WDϕiWbOnIy^ 6|9qhK4k'9>67i7r(S#<76su>;2\~IӒ&P2w<3C[dHFӭ0+"Ûc Sg~ö(!Uh@'l,b+V$c1'>}Rnpy_<^#>CzJ6/1*H=Ͽ8N!"7.*UutEd޼⌋ڌ՛eb .t0XWdӿnFIR43a^o0"0Wf gֽ!cAJ7?@_!Z ֡0=;4>̪&bM2ve찖2in[K$U|.o9wҋg >LTp%_gf5Tߚ$}掦~DxN\L1;㛳ywΨ7/E`1ƍeEt( !KQsydi0>{ٟ^Yw\ r#t㧕Ôfx֗wfjۍ~6NǻN!\ɇ9x, CxJD$~`MF?^p=֚thjfU ˉ& 6^QZmr"{>2ddAJχ=g$5|K`)2b|ϧ8LxlHepjp,hQ )Ưʉ9c2gq4қ[U`2f%sGcyWΥ{eu2SQ1].̇V/o@D: N;9hݾU5 B巅8yrR\ ^ O2'|:U\ǩ\SD2Nf`=O=B6T,__xJ ~alZ21h箽L9wK ~wg>gub#"8Nφ~`ڈENrѝ޶|3J\d7i20X@-CF#>d ΰB1T)(`lCny ;55'GxsSщ5:ٹd$oOZJӎIhN@_od|bXՌ2 4Y/;îq$41bSЯsriO~V7 W瓁wᛇ}Ͽl 2:ݘ9 _P!Ѧ x} $uOIUBŅGuRB(=t琎CJ1~Gu3'} Y<;gǿjY ţ+he s4ʇ~CAl'nƮBȀ+yZzA6mG]C2l`rx{N~_N]ߥT]i- gdDf$!pxtOlӗE3:l'JlGܕٰ4/`#,]~,17ݴ G@wer|Jb${t ?2Z-*ssCSx"ȋl5wEe#}~ViXMu֝5ϭH^R3.sb{p<&MHƝ-j@$c O*dcZw@?2nۤ:% AeE(z=4_;0X'&ϓe/r |3G%bc)kdB[bSa4 BP񱑌ק׏ 䝬41ERnԾ E?؃ۧѷb­DUhfbՔ)L8*U/ˊd_JV'^w֗<`%w(JHy}W?q5EAT~߿*-熻˲+\pz9`N A[$|^ӱ 9O7׸K/4MAoUj+HJJBAU$IG <,UZc6+)x6h?sn]@p(X,5n o=%.Xif/v(^'BD@ DD !"@@ ""@ DD BD@@ ""!"@ DD 70Aᣪ* CKEAQabfk!"7˅f#%%->.$a6 b`2i4?BVV #2.U5"rx]JzkZ"Mmύ_õo"k?ͤ=в wjD)wZ?~vu+KtXŘQ56ظ7D@rmMSoU$gCXL~ݕq2o <.pPC)^\)&yBy5>'y;!^_d߯Sw8OnVӶ%5_>o(Ż߽D<<7Ńiin<*৽ "k+)jOr:bbR Wo$Cx|kD`\[8=/%}9=ng 躎h4vDl0B|0mes~D4^q, Ao +i.?fݼDj15 9_4e\21-C~?26}y"gXu:Jq Hq& ) ?Ń>-Di@4]x,oZ, "R.x@B/(TOL9eO+ ˶Q 4$ ,Ap:ݨT+D#E30 0VwJdT4oHhGјHxԛJ]7}IҜ/\i0_tՃ4 =9Echm}`48*DEDBO5\]蠧ӛYQv'7Dʧh6+͠隆95tM ڪs|2{-u%(Јh&zھU8[C+"1Zx<7DTG:LsXQiEQu]ɛs3YxMo"ނ:"Z<-\XЀVax?8MvQ/̀qlFPu<էÎjN67pu8(>+E?cδ[Ũk9FueqfFlO¥x߰zC jhGuߴ djwꯓudpbb1٭XGu+{:bk0>y}fݚ_\媶"r nSti6mDff5cMIT]Lо".odYtx6AAA8džuHMKeY.4[+0l2pEVPGXXUm-DaU&emk5Xغm-D&jj c[og@ DD BD@@ ""!"@ DD BD36 2NgIENDB`spykeviewer-0.4.4/doc/source/img/plugin-sde.png0000644000175000017500000007255312650522331017633 0ustar robrobPNG  IHDR[{sRGBbKGD pHYs+tIME )*}7tEXtCommentCreated with GIMPW IDATxwǿs{rﲰtA(, &51Ğ"1Q_Kb{C@J/K];3݅(|;gy3sQ4M)gA:_4M4 MPU{L뤶A:@(/ X{L?sX,\.A:H$wcUٳs9h4bZA(Az***0z<&a6VA̐!Cؼy{=[!5#Mt]Vzਵj1;#t":QZVbOElqE^\C bbwpړΞV0S:TZ-KZKmlbٗ}Rqwt!JՠxGsʘNە׽sR[- FYK6^?j;6Б6BٚX[_}k(1ABAmDt:cS8MFTJ,dw& #a8|V$ғmTѺ+Ij m!b mQ\ $#`wQd - eÂ%슀3o١,$ K8Ь]4E+XfR'=Bl)aI~iT+;x1XM,YWF4Tš5idDQuh uN.v1?n7ak : & MkRU,\Ķ`ş+vR<*}w8'U=R̲P8$FZ{Q0cqE-aģIz QpEnx+[Kvѝݰ #Æ&|6F(mn9ABTnĖjC1 V' Ǭ {>Xb1L{+**";; 1 jBi65Yxh:.cf4':,]SN ǝδHqTYȲ-u\DLz*dɆ6]#!aw(5^QQF`j61@)ٰ ݄Ū5 ư%e]ZcPԁۂºW8jt^]JaÀNaQ9$Y m4+JK)--ҒjB3yRHRdC+fwKY('P%*FJ}u- oF6Y.҂*Xclb 09l PS+vjcMعs'عs'SRRrx=ۢ"ZSv:U=ϊlYb$7@ԇ73gR|[ 5f ó3Bn vbEq$ljN6b`݋xk7-ܟ۰g? 8ݻw),,Dul66BS\\L8>wIzz:`'0;IYuTH_.|DG်uggP( bؠ:Bwz1w 8:)G'ՖS 6z%a62OEIk_L?~逮k9P0 :{#, p$d(2O^ي$!1[&;: \&bı`7A>82H02Ċ *bCƁu?1[mCh@A+4M#(޷j5Ma0tT-݌Y6:Všmk:#Ə vd #28{10s7ߗD<ʓ<AȈV|oy&9r7i(q?fxk4vV| aDj&i.+VbCU{nLi+se 2聊-kA+>!c6 I'&+ub|5bvWV7-ap20K.~mX~1Tݎj:FHNN`q@~;"xG"wPqZ,N4@ 0NFm" o-4*kF"Yr-n&I|<#m TSE?A#LK=nƞFQp٧0GTocolɤ%a&`OeֈĵPp _j_@ׅ SB6'HHG6ԻLBzGR+vҲMf+H|bª_2VPZߊ7;ҠV3&P^4;IɸlˏT%E5D0-bs=SZ;tϬ-.I:8:(Dvccyu1$e1BZKJ E$Z@Q;vO.] SS[OT;XlnO~5\.IxEl?Dlsz*(> !~q$QZ/ ?.}yi'42j`OG(ǚ maiIuݔQS8=i60Z"Ԍ#[l Sk{ӵ B(vH ADlADlA[A[A[AAVAVAAAADlA~Wz xUU~XNxɄtxM۞F47RWW'+ڄL߾}(b+-%%%[I&@AhiMvv6PHV:JAA'|2G . ##$>:,2Aփ4 GVVT t!|> KmCQ B1HgF^A:&2lt9e/ ֕/kanAtA~lb 7|kܖ[z\y%wh \p[o߬7=OɄsybaj[;\䛼[O9p|q /ϛǼyx}_iǑX)JrqJ3> ޻?))WdZ\>3>7ל({z/O[ǑdT-1&3@&i{b ق'ý-v3`P&?cmutly3`Ev8lFO:n%DmHP Q<鸍zYlgzAmP\øۉx7k[MrSC`6*ȦCԎpwonͿCT-|{>L0;=dj1A)>) uq`q6-Dٮ'ҡMB1`6)h10%e7mq~}iI4~Yu3 Hů pßR5K"v4t5L͎,XGG";_h_-!ё7ъɬGv}ĸ)ƎiLdtʖm퇴5JR8nX2t~ o%5*w[;/N o0ϳ2@O.ͨɬ֎|=`Cmw_{v௙uvi$xcG3nN`GKE9uX˞)ƯH;s 7';^ᶛ1K̭̿#m;8)^:n&W'ʬY|΢Y{;Ȥ˞2>ol0ɡd< fONjj t!/SNΟ?_>e(^ 7(]o"ox)6+ B#XL 4M󑕕%!]Hnn.>S0EЁ t1gyo;3'.9#(_=xy6^k^܂a Vŷn^{g~:8w'/Gl__9kK-13 fjegI==.-͔ԳSbBԶvȋƨ9;t!V7 t~mq ,oaٿg t`|Iq׵ﭡ<`IęKXQ9>0#ۦQgSUpB56Eyv%7=6gg m)mCDtX GD88ۘy6nŭa˛΍10y)=u#ǚh 2l&yAʉT,Vq t^9R^$=+ cywǂ!b֫0osq  ^u%fr{0vxdxM{ J (66MNeDOb`Woa[wl+Vع bۍa9kgx6?n ~%7=²CL8z 0?&ڶ,h1Jo(]WKŰd+^'FtLǤө\[B#qdl exYIfQ n%Pւb Ό Hڣf 6pm!JzNcOsq$;}eԷnozA)٘m' Sfkp.5]\>3>7ל˨D#0{m[}tJڐ xqڛ^ijV=An2:tEG%഻̹v놛Ѣ!MGl<\s)A)>) u1d@5ܝ[yyCi!vH=)+Z!Ow!/-޿?-g{ m7⥟3Y@$hoCaT{= yTDitcDr|]yC<:X{Oej漰 ] ScK65ߘ-NGY" IDATEzm $VLf!w%)7,cg:{ 9?>87&zx[ [Ŗ⬳ҔˍI1,&"g.gg +0?+Ɨ+.wd3&rϱyjGҴKoι&U3x-+dt:?fcP6>u? fZ^O ĊN`GK9Nv c13/s 0=yO=uJzAmfΚ5Kϗ(zO\ sL)[+[Ɩ #m. BYӧ*m#] /ԩSiϗO,v+䦠+OdJ]뺂lElB-R,]Dݧ{^~BEUU[AmmT t!8N92"=Ll^/+D4Xb{&W %fۃ0LvYbH; аj%77DElin#FA"6tJhEl{  : ݃> " "     b+ b+ 4k^j#,]Ҳ6%Hg̘XAm+K@~~~jƪUXtc'- O. #|7KZZ!^/ƍ;2k,'.9#Gu̾r닰K-Dl|PpvZeFU=*uo370Nz~5܍!]<!$Rt&^x!JYz 7 fڪahZz eϼ9$+C!aSN#[шlL&VLZDz'k)pefUq1Iq#u>2IPꄶz%tnE?+2m~MA0B[&ścǶkX@(|xZA#YlnpH pؑ " " "   TA#*IeBg=RSt8F4SUUE8FuA `ziZ)~***ptj$: )))vxB"?uTU,nVǃhL 4M#cۥ2 q8b1 Km`0H@EQ:%"=t,B[#jKzeUP*kdS}>UOC=V'>~e*r,m >7vLKKK3?U4)Hq.b2꣘Y'dz%YSXC̚LqKto֮'?r2 g2>!;`Ġ$ n:q]}*X3l-}V`rTo͎ǨX9+3iܾ|J^co#?!5)X7b@A3V(؄j-y6l$h!m0Hc1 儉Gfi4-T%+R#jt58?* kSRPÇ3ϋyWxBn.#W0R8jdF$Q8}l-3mG9b;A$|XdNܓ0(Flf F㭕O;^8<kئsԔs`W|V#r٧?[ c߰9g8|W{  iGy|3痿QCmt#7b1ub˅XS},'b1ix-ErG꺊6P&*"qYLA qgVjJ6kڐ HWȐ',['֌qmJE4lK}[=^C߲> F AňNr@{ GxPY9|fIƄcNfw[=dF&ʏS}#[{sTc ‘'ʬY#K?dU$ twT=2GD6 aQUU$n ))v7TI=4&L],6z?v3GҜhDUU+AݠF+v6'!A{KvC b+1L2g/]-tjU&p%+]dp`4D"Ggu=ޭ]躾wG]] "{s8eogsDN mCPw{    b+ b+ b+ 隗KM333f$(ViADlҥ@1j*.]ŘI Ku>ƍv?˸q:_pdO\zs6Gpd^/m۽}_ʯlAzpĉ:n7 s8mw=Ͼ%9^Ȅ4 K|ď.A)@l6cZZ[6|=/ d[U>LLh>J6iQAzؚ}d2aj1 ?qywT?c Wݏ9\=Bh{YTj L~țW^+g /^:,G[ͧ1٘/LﰼЙqӌ؆ͷWUygxe!~[c=8k(ء {n/Lv_嵜 ;<I4YܯesOR\̫cRu>2I9^Am0ꄶz%{n#0Юp@GΉk7u,GO:-me+[S7_;x4?/$h߬7=OɄsyba{?VxmY]OId/ ^牏K w},HYsc|^e98ۘMe}/k/pg vdL<-NBp)7m̮o7wy{f?Ŋ=aX)~sof'vm ͼxs7^\:lH[aln=_0uT֬ JPϟ(rh&_pQ&Ws'mŚnJ67c/m),cT #sZ_jW8z 0?&ڶluṌL6cJ9m u;>X.<& c.Gܘmyzu/$8*F%ńx/}}2A$+ 灞AӰ/l3w"xbfp0L<AⵅTׯbcn|c>j-f}Ÿ2G˨=e?\}cj-=婷:J(`dBtL1`f Rq@P63g#4fkDЎ^Eoyc4c>y:ӱKA #TQtO%INpbkEG:???bv7˾wr}iW+ vpݏq@f\y;u{SRENJN3 eCdfJƞUQr Ghl6u9+a2?ϙ˳<3<óҼjp+g2WcT?0Y{Oej漰 ] ScK6Fz1.Y0{v 5\OĚFL7FT*ו՚/85L<Km08ȮOY&b-,yoɿ`\// )9-MkW\_?p?΋j[oaR+|L8Y_~)HgsBZ$֟ I9e"Y]K?k32U፛.ciޕ<,6o7q/s+9vll' (f;A75kV G8qbl# ,n0lp**Z >ey%f'ae]3<7g)}-rrsF1 Qۗxik63Ob[YUM7ǎmR.X,F FV'n*"`O”?̴ ZAP#?ʙq͐ǁ|<\AVAVAAAADlADlA79z xUU4M*C:  UJĶFTUUu]*E:(l6^/h{JĶy~ 233q8᧎AJJJpx<BOUU#++ [`4)**"%%b+d=Mӈv ABX )b0 :.FQN m#; V[oŲY<V֨W ҙ 2U}:SOS`'Y%,x=[AbPыIoؕ:X]LT?JO~)09N_پ0)i'qIV- l2Rf@lۢ3i9Idg_dHĨp0;3ElAĶ=)T??ުTʥ-Ea4 ZbcMu=2Ʉ#} )ZC@kh1v +n,Q?;5ˏCtv- souRlLVcWPTkBS0ՍfIojA hzf4zYQKSNg׊!^Ųw 7AHCoW Z*NJ<[Ap@TTu?M Hn*my4kJO?{VZpm E !C+9BM]|@PGPMN h73qJ_OyXC~UxSVDlγUX&-'p8} F`'_2-.52i7&2 (Vɼ5#6O}GON7yCsۼ@ʘ32yQÔ_n|^.D.6 [~̟?Vb~ IDATz^ou }sZ8)H 3gytkC﷡tmaި "nf+/>0oЯß%Ia!LE l /m@@n<[E`|Osd:$p|37~@8IC)M\ŸAMCpI 1 furZ~r b6~vjȪ~g5FM89<=?iboj;2c恥}BؓsɱT^ŎBGR#[((Oe! g8m≗PG)|v91M\#V.j6IO|v8?ѶC({@dO^kYx|ax?ْ2i=\4LRG+(_߁oӓJyx@/=o汭~)#41i{߾.:tC?΃psǮ)_y:_^uIcHNk.9dž/g?_r4tꎖ5y5Ky ALdUqgq Dqʻ ̈́{~պɽy&~k7oSw4ّ*rFoi!lAFf|Z %2,'hPܶ3Cǚן+8/6S{?- BMgN&SJO'2,+HRs3q*V"jCCr$|yxTUx/CEk@dGMCp m[Sˎ߇DS|mdqhF}N!EMM%VNTi=ۆV5]USϻJ9ca.>7^qp,&(!S}xOJS B!Mmjk~JsU).hjo,n_90R©/G9;HkGs:6*(Zlaŝ*6<#C˾ǿ7쪵˳ -`k/=&P=-I[cH.0Կ+x?Dœ6l%bۙ颱0{ABЫ%^HIT }g8g|V֔3)bKvT$EiP/ d|+̊B[9ȯ|Gپ0,lNgw!q.LK?`v_}Ρx'VVRcy+}f~$(uK9u&pq}5hL3|wR$XЏ xc>Fd͚ĭ?{Z/)\O%4hnҧ~o>&ʦ0 A .!??Ŭ,5^v|-dvM@Yp'9֫ҏ \L˻A.0 &r@X.?_AijAADlADlA[A[A[AAVAVAA\<~6oAq%OJL`̘A07E%//Um6 ;vy䎕^ #2~xbbbo㩩J>׷_v^Ɍ}6>2FA4"X*A0(XVv9UJ+'> ՂMV+Il-X,,l[bf)Ͼ] a$opY !_b4Xcu}GsӨIGeqi_o$~[^Ex^Mu`7^{~|f,X N =ܑn6@d͹Ɏ}l?k#|#ãX"[Sr%GNS/_OAk>\Ɨ˭b#nM|iUF HRl-dk9FPQ3谖uGV0L?>tt5&54{7I1- [LK38%.n k`=fz%ޚ4TEBp\AJhyl;+̍ ]ǑzSQup`IxF^PR^%w xAU?%%RK{֍9q~smD$'51 ^k"*/ )S'_vzF4nx(?/ ؈LY_юnM5q2>AYp׫f׮i}ph+ǃi=z[@&A(t1 \.`UY9BU%tp(J FWNy/+luo MJt٣vթ|XMZĨew/I'\bۻ*v>F0y 4keOlvw-H:%Q;VIJv5}G^dtkonqi8t!*vcT争L3TUTEMɈFDlkƒ'{0l-OqI#3i/U ~gդh/Y$ٻf7L:KXY#&23kl2ev|UYw6 m7U!23Bj Zө-2n`}͟>:b8m"Ouo-הjn1"F` myn)=XKXF VU3m5Z J} p;QkiDddA#`YLR"e@F$O>!Imdh_9ܨjTj+pY#pSwgSQ232gFL9&,)C\\N@wnwl++Ϥ9 K|| &0D[ͦLJlnsqs'RBehz-{/慪vɨkHK!{w*E3jq픙8U /e^T;u¾F{uU,xK]tf:EV.:F" FƖzH˰Q\PNc~Z2IhniS@6HXZxo]p[$n:~N -}f  #tsMYHsR,ać7R\Ҁ^sK~_u2vX<+XQA,Yseˎ"j&W]r]y_Wk8TZGPS>TI4pkeS"E;[P5G\$'8ElMSGut ev.Zpx1..gؿakp'f3~h U-)GYUoPR\߉2UW@Y m$XRznt:U;qHXk9 c`%ntFlZϪwE6f:ã[ QS} i Lv3p9pB3//O-\x eG4f pw6T (q:.O]DEEQUU#yˮE͝Qsb̶MLM|5MCl/0pEf\pY.I'\b+>AV]V.-ZZ,҄VQ?SVZ#<<\ br4 ߳eknԆ4Ok&>OV.-[P(f;1!˛@ B+b+gv{UDb " "   ܍  uǟ(.oSUQUT B+^ |>g{( N< b+z'.cLӤbn7Gft]>}v WM8z(=*rLiyTt1 \.`OB^>sš(9\VZ!/~ zx-nR/Z*ҳQUz;a5joRh&pem^ ӫwk1i˞7V"'ZFEwjC%jɠ#Rd r02p]tK_cmY뙓&hmNf*"h&uxdD`Q:Ev2 b!~ ֒34 0)l æ=o{rA`դh/`(e7v+]tb]tlj|Im]ƶ,-cVXΎkulzAĶUL#tj d}h9c [ J FøY8zI%PTLM-*&폧kW}p-?=N}HAu2p ETٮ|kYPs;1oLLϱ`-a1XVaطFk(hj)(1lwaj{)(ig>PC&Sಀk #?e'e \w6?F."ֳr(Q?i#8ԪQxT-.HO%N@eLar&u<`2m8VcrKgsA:y fwK~&c[`]}&aXEk8797$Uuj6EgR"{9\9ԀPt/K*v>DkV~Im7/TMNF]ER\ o%־S -YwPldǩex)Dxlک5ګje[Elwз=BoyW732!#Dž jL9Zqǻ hr0;^46CZr+sԒIUU;8-謫HTRw /d͗ń'=Sw@,TEqȊ٢Hۉ 4盟N 3hGO`d xAU38HMR Nǣyd[H~mrj OڵLF_Hf}UW]# bve)N`Y\=g }|r/F{Ag0s9:^϶Sq~8|ĞfVk[_-`[ڧcJjEH֕ED@j'eXT 7YU`'o~f#Gom'=WCcuo-:A᧋j*\ZF0ϰ=0iT;c*F"zz;Z̜C`euU лn6l@km~K OJ:y"&*y]Eu D9*A!U>؜Xudz pEQdof}IƺP8)FǬVM̈*r|ܾn\BDzޝ8w"4aUL=|A {w6:S"u5wOg8 (v7Nq &pzJOz-v~h%&+Yc0|YuLnk4mb>#Btֽ2b΁ fkڪ8,f aiuQQSoz+bĭSZiBԕףEt2 aNA̜5ӄ-aDm4C FrlzDaIO*cӦ4vF|x#% 5N7ەYc`GMDfy-; F_u1G}t]O-PiCCNP^Vo,']߱IDATeD2ծ:O {`n]CsؚJ,O_}Vf'9t-4P+ˎ#Vҳ㚼s}od;44s$pKxgd`Fbo`p@p ٫PO4\sxR^8י;KX'>Izbq1nXdڠhMe;Kgh8"W˅i-K-''^w&6\昦yD]4|"p!hJB!l6ۉ )\Z[A8أ W&AAADlADlA(nA8P(=DpxX,ZVZzTTT>EQp8w[A륬$\.aihl\Ϯ*hRgLFH^b{  EYsMuu\h SUZq)JtF> 2hgl\[dC"T HelbڂYk?fŊ숸1)^Tb=7Vwl$;Q7nc_I-MAc70Q!;c1Տ﬇TEbx[f~ ceǩ)XNj6e5 e &FHLjyQڑr&*7EVbGej ڵ:6&\ń1x4D(5GF'ؠ_BIM!6IA$,ȈOYI'$"x ױ丟hPZ,_ ̹!V)b>0ΙO8{9\&oTŤ 'j{%]Pn6:uIq)xOZN/4o'l~w 5YɸvLv≟U~ZAvmSOq7fC-Ǫ @{dҵXNE)tnw ErQ\ 3i(>ߓFFDO`d xAU38HMR Nǣyd[H~mE  %PKee>l1D;0QGڵD)#IG4#Bt2;\(ұJQWcXP0 5EaW)g|pZY‡U̞[k=~#q+sZuh3cz{#fO!n K΢([vQ01bʋ,]O-PiCCNP^Vo,'eD2.f9 OUoΝ]SҨcRixG&SG%l0mB?1[,9i*E;?WGg&b{y'ї1'a,YÒ=uʶ,]ē9bI]f$OBҹP7l`m]4lA%( S [;\f娐18C[_Ub\ìhNf«I!h@mM:{ ^y#?CpTčΈMYNB(Lg!bzpB3//O}*e 8gDL؈Duy $**;??_ Wf G \kir (=~ [GxxXp\h0 \݆ɩ 9i8Q4M|> \ZPvbB 7@DžVV466)•lADlADlA[A[A[AAVAVAAAADlADlADlA[A[A#Å^Cut]CtM:|*ZVSYYg:(8 ;qO{abN:HO`Y.:t^Bxf $$$1΃0 ][֐";RRR.-LDuhui!m70whzMp cG0icl b+mo+tsy[MBa ig+\fqѸN#;}|:֦|:iZnqDlг RwstFeg37n,#tz-ߖp ׏ܹ[\^~9u 7U,o:&qE/8=u7p[2[bzccV-:'_^MeU-酏WN޽p.x~ii8Ώ5Y׹$ \qnϷv-O=_>("rpOxϑH+ 3Ffٟ3oV4lSxOr>~WOWs30#{k5ˡxǀsTo&0|v|r##׏ 9M|,{-#UIS)zn6y i~FHA. ٶިcK]_|U\97lv} X]>G,Ē3:0}oqt"lRد]ܫR?)D;۫(J/-TsBw7uE0LUr"? b+gNt"( ;βq3էx/]juNl͂``qh7uzrH t? ؔu٥MޭѽoRU T"[) :_Tő11'LS1kQ@&b+D8g#㕥GXSI%S ^!?T "'WF3<쟼y?J0k6ʺ` 5-J#g -ru#IA4ŶX GAQu~*IKv~WwJ&0Ox:Mזoϼbo|ߛC?,>f{Iw8] 2l& )>{Ol = 's Ƿӏ~W1zib! (4_d[UbXЫaxugy=<#H҆䦻ǒ0p ":=ALko膁[04f!|e6#7{npܖ nBxr!Mr1,#LO E/Æ k jǏKy6ԈѺH+zgwmu ;ώmyfR0ADevw!777mt '.rasοxmmrLuPtخ_e_nm{mj%+3Moǔ6Q<[`0('`C(޽' (wp4 MQQ.( EEEvOa4 'Cr\w"\JaA<:BV\.YlӦM#%%EmSTTĊ+HMM%,,ʹŇ~/aܙ麝Yrkk[Hjj*k֬VNz"##qm10g˗ZWDFF3` q ZV("!!AXXܒYV+nvcm%A[ FFF)[_^@AVAVAAAADlADlA[A[A[AAV"M'? =֑IENDB`spykeviewer-0.4.4/doc/source/img/plugin-correlogram.png0000644000175000017500000004467312650522331021376 0ustar robrobPNG  IHDRbKGD pHYs+tIME*3+=tEXtCommentCreated with GIMPW IDATxyMǟw3ޙ;a6}5,EI)e EHEPd+IDZee f_s~ f0cȘ<0s?syK5`EQdYFV?JVE }vQ)ZJ (t:>;^/`t:t:B-Fl6w8E-#лwoVZ›B̉\F9u\`ݎ;MD ZZ]a@qD;ڨi_×}Vߊk\aI"˭֗ԭYs{R'@q%slR` f8,&Օ^H}9I;gWLפ^jvz#&fO%j4nHO թ'W'@Wq;CBBx<9sk:T!Gb9+Y9H!HIRՌ%ewR$ f_d[6 G#Smh|.8^B%E}fv'yC-xSI9nw5 FsIyIQ'lس9?\(KJFJn".% .J>hY$&f|o譴ns$D wH>ʁHW"U@BB$q U,˜:u ZMBBQQQb$.΢!$*=d[^,#y2@eƛH:!?lߒ`Ӹmx h.iIsIn|Z2Tz=IGoT$22* ξfVH ~IDҩ4B@)W`"+B8y5t(L^Pd.-ÇȺI>ŨZ{';$Ɋ7'ACPԫlsf7;AQPT\,Sk ;l.èUȶ;.ԨxUS$l6[NeY&##\%חԦ*DXro+>řȉ#I*4f+9a*Ng#ެs. B| The+"Ѱ~=իG:1`Vpx/~U'%i?+%/Om YTd|"NLLD$|}}AQ$twɇ}n'dV J33Fug8%oH5؝H~ha-tSrc֢>S#I`c?}Ib׉ݖ[IP׉08)7`q.W]|Ok` tn'؝ɳE\%zQ i]wzz:F@PP)))h4222#qIVavIon~O70n#πZmJ4NIk"$%bZt]IFeJִEQ"354_eFJ~UElw:D6mA&ԀWH;jw~ijҨN d *~fp6!wj5f͆/)콒 Od`W "3# T^]jCb.Y4-_qo,HM"#- U1͛TNKBX|N0TCm0áM- {N[E,FǖY[h>M  !b@ D, !b@ D,!b@ D,@PO11^/$RɭNjZVER n7Ν%==Vz:Zԭ[ի#r閬ܹs?tԉ0*]yGeزe f-/Hıcԩvh @hh(~~~lٲjժ]EW_zLDcT , ^W,_JJ*URKq֖q8` q2s VB֮Y<5$3ɬjx<⬮`2ٵNJ1\|= i[IsF (Y%]#~c K:*MaSwدT73Up#mw UFcGR ֯盵(˦& h4ܙ(Q&#6_g{]$;+ a cXk?wʾf4ObM3:dc+R"?/JOȃ-Zqh45 EJغn׉W"oم-+F#f~=_2wňiŃ߫eWuw@~o^]5]K\;[ #ބo2'"G޻3g}V`8xHT)ɘF<&+ǘ99ƿ2ݟfWQ9~;R%KrۤU̩oB:Cl߅IR@:2eW<%_gԺ-,wZR!)rܦԨs&ُ11t=wp‹ zr_*ToKdNd]4OptnuիL /cJ'NFs?[d lZGm}_ ?cira) 0}<ܦ :Z(pi lڙNZt*;gb8gZ"Sbث21;RxR d?Fd9-eu#/~qfR&L}y3TIj'RЪ$\rk yLw'9=U ;o63{/T}f.V7N22pO,0JN9bcy.`ӧ1cUJk@cO[JA#05a9Zf;6^ ,9)l\JєW7xɎL/e^zV]inxmGlhS|yt&a?e~&ٲe 9yXB1nr5CzJ'jhc>Nfɼ> ~0h=xRE5:t>=,jCv/mtyMl{V$ I39H]هk?e$*ԨJ)|c'`R];v#Rm=]ŝI\H!yksUIvȨtr(zo]RQVn\.nIɕw#7{fOC@S[rn,9$΂waꉤVG=՟r$k :1\ plNfxP郩e$/C%4ķ?'aS/cte~B_A[ZKX]9_ݩ8 V}t^|: *Ա&V=oFLq\U*QQQXVC8-Iƍ2cM/]۹\R X p8yCAD$!b@ D,!b@pK"e amZ2qBXVXXXXVi9DXV: 폅y{ XzX´6\I֏xCLLo0pGV#oZ9ņ; S]Rif×~2F50^&6լ}g@Tb Ӣ(t%z~ɫSjS_G(ëҬx֗3dv'nG^,qIqM=įw$WYK\/_cGƍLռ$d 3SJ&}.m%0-yXe鬝;~Ǐs#w}lOR?LG~aRzF>XIy7Q8ÓLޞN_%&%k?9JыyspptP@Ngfs̼3猳[0:,/S<^Eix(JW7X4vM >C:&Qo5݅X6 ^xQ4t>#fZ ȭͳ0R8]h0 .!n?]"@̸Q,k%N?kZ I߷'awaziɭ2Nm瀻]RU*e˓!҆ g}Q1w2kݘٷ|t45q}1潉٫l:OXoNKb;lXn S۞f+ޝkֱ_{m s-L_[eSZ4Ldѫfgbg׮OˮO2s\ 'wڤjS<뎤Uzp\Gbpsb9;ފqd;Ćtԍ&5P[9s əKk9Ͱ0RXuBl*~~>e}n>җi{sx@jdbe*93rӛ7 ߴXѝN̦dg*Hn #5j`uKjaje>cϾW.%Kbaz彲{NMkSfS5)#8U:f ,EeI[!VcW͕LΧ7amz[@^n܍* :-H^)DWx+b@ħ{.|ו|O%0ע Nָ1tG|2^l_LtI,L̏TAU!{dD6LƾR!d<򉹮r#j;9+cpo5o4c`?re;Ͽ`-(&"X8A2P]QNLF2&v687e7kV$_=*SmUKϣk^O Ӓ$8[;GΦϟ&&:_ #:Gsyw9ܮx6ΙOlǹ/R H$o{v&~-xg@̽3s0 -9MzQGD_ҵS:7IGx;<4ocFѼY-|qP+=dyǪ]N6c^#~|YC@{F1\e:V=ݤL`IhaZٓŸK3 hMY1 *@Wc>3ϷzJ1oTȤ^o5Z+~Ĩ1cx$͵m,[w$X֦XVB@ Ǐ^?kcft]pjoIMMeر^KtiO+cO̜/$XS(nz>/l&] BB}O7nf_򦗸]c5箚1Rї652?}֑"zj\.W.;z&~ºrB&=фu3rH*+(Hs*낖sC?vǣM[.6m*r4VωU %w)r>?9?g#=WX3 ]=0>]^o~q#&>C?E`]}'ݻwGAL)]+&0wٕLൾ#Yw>qrp<472IF嬘,C~6ُOȲs$ng<CLLd/9;tn gެ-kr1>o#{ϋtjv-M/_HQ&cңJǚ5k\2!!!T\5kܰvUV?xkb~/.@ Mydm0~ ؃ų:bq '\IᯙL5\JF'bN}rbP#q~ fl Cp }BX0#bo8fѫԊLʖי{}q; ܱ|:z ݨLlX4RJ߲~1Yywuɱ5~g̟yrn.8p.5Ɔ ppG@@e/]-`_t:QN}v&i/:Zv&Jn 46,PKF'A 'ǣTyy 7&˧7+M航gCKTvOpVG_F ׂ=PN#7޾MLzcۍNT9QaW^ @enð޵0@t tT]0n^Y9kЫk:MXVbuytZRcA9bʼnt/*ݮ ˤodo|Zf/}bO0jaƚxppzնlv;XcBF )oc), A˛qxǹ ;o6?K IDATj6\2XJ0_:7wR)x@,!2*|Hjj˃$ir˕e[R3̜77۰COd`sCtN{Y7 F?IǴLaF>ƇOOȄK^Cf|N̼¥c5!w2N_$8/@:KL Tj\8Y.PXH8oZ*؉?|ҵ[ލ UL>WXNǦ ƠHH,XBV@e$$Yyd`!\5s\4/./P D_%4ojbK$$ɋ++c?cOHm5jQ6"+ ;~9 U (Ǘ*QQo۝IaWը&]kpv֍>o+r&ZA_//I{lل@Z߈䵋H&^E"H`q|c]w* ;I;f =(Iv TLNmYe]3Cs3 z#$d|I"!˃hBRRz yMnHЬUV=&~fh}y囼0CڀF!¾ rt^JHW/|j0}_`-ճr3(Q Rl>ыn=!MWQY ƽ#z2 *7Yc+ W:Y0Qf!>=^}j/!=֨=YZ^CRpYdfgv~%#,!CdT06#!cyR*Ynv/„b5EœS&, Gɗ︆+Dڴ Hll,ݺuG4-Lzz:V5VrJׯOʕK[ڴy ߸?Ν;sA"##9}4b\ȡ`ĖEw n>ݻwg˖-ȋ/X3yNB$Kq۶m˖-[СC0䬩R+by ,33N'D|ƿ;ݻw/RNd2j2v$\ 꺔V r&=e@s܉s+B$e}ڴ_~yߴ9rLw˰?⑜c]{RM}Q#A/T )7,?CLL5Gʅm/='_4~m71DGyYWнy-kҼNj=5CH6a]oft45u`#D] n@bV ?LEZipH:5uj;ܵmdHko?_^-b\q9y plmv~-2(v-zEZu_6=/om<Θ7Y|3 H}Df|oN/q+H0A [Gv}'{p'nÞ ks4C[0 ׌dV|w/N΃rRDZ-ݳ(dz2x9YTiˡmi*e gm?L\\6l --a)MYrv*NCuP7j[o@}7oLr7zºU*_^mR _V&1N&;PV։TDUӽ *Lu=0gddoj Z4ݿ+>{~&Εw/6 E<䳓ҩy]Z>8'(R,JC_o= jN1Fk4jcQZMCxϱu~zQ\sˬRՕZ%txϳmA==Ut|j#_++tƍ^~-V4kSo FY2 \~6T2d+V݅\G"6/1/2*[Xԡ /pfC> sfbVLN$ٞ߯?ɶV<乱=Σp^L`. ##i qv"6sV6)'0U G)NLJQ~ I9SHBIs!i`NL ۪kۛCq ֦64d㟩\0VPWg =J>ç6f N.}uFwZچ'Ʒ ٝ?cw\qӤyiJSh մ_Uw|dSiܜ6gC՗FCײB{~5cy,OPĖ)%ZhgV!ٮ`PI6<j@")-I,t6.yegm!ŷ6qO9d)Y Aw'\%Vl,~]ŬO>Dd\϶]ĥQT1jE7;Vr&aJ֧ԥk#?TwaEp$ed+yޙ9N $䯬\'rt AߒMcd\^/δSi3'j"Cf3sa2<^)ص.w]N.'dwsN/ VҦg-^$O*;?S.%\ؕJ֦:"zLf*йHZ?u_c͘׈3q}PQL|:z@x0Oa' "eK"Nj'V<{fB]55ݫ9uR]*Ѵ9:U*<՝]S?4s}z}jLxj| ]y4NV7UQ!ɅL?xj+5g֫=] -=әn0mDُ2yh);; mJxi4g@VTQIhʃ3x8@+-:PKyy@X֦2I0|k?>S6-?k  k6"֦amzPr$J7WmώWbI=g^e@O^ 1TW4q*t:"p:f.cF{?9xӦ!,5@CР!P{Q-T{і{#FV[bZ-ګy]FFAe ݷq=PS`sl&Xs/UʖOЌUbۑ4z7L`[st ّ"ԓs?d84p4?Xރڱq @IxF}WVá1SP&=7Z7gY%?r0U7v~> ,=m<4'm_$H=4{sGyx->?hXY -8NӒn֚0z|'N]C|)Fϴs|ߝ%:bU]n;ϧejɐ*+7#,-r-(D޲ [DW" K'}.dv]8&LbI"F629d6^l0>_uR68Ect;i2 '5/7Q 89["O}Z.Nr;j6yPEΉss&//aZK˓h >ޑ };yWUjthZWcr' ЦsJݽh͝DpljSOAQJ@5S{8m Iu_tj_i/r:?ԁbޓ8{NF?vu֗_i߮}iG!V":-FJbn'#qas/~qfR&L}y3ۖܐDXp] Mv\j?"\s.ŝN܁d:EС|' ֘n8k ؍KYvw&wL æE_/Ճ";I:zlrN&CsVaAۡP y}ϙ̣dXsUaSYq9| PYm|䩰2cj݃eqP'A{OƭdDcޗI3xg zy oM cêg1VLx_[H: aus-Aeo2d{5hi^Z]z=" ͙C̥2ReR>N7ڵ+۶mǨQ$ \#Pn:a~f֭#@PTUb/Zx;bʜ89%dіMA\A@ "@ "B@ "BX@Xظ|8]m\JgYeK ^ux>ޏ7r\ækțqyqbo"ıbۚI_XQJӶ P7}N|Cm\*+:w.>@mSAq9~ ˣ?_H&ضm>rG` Mz^5|P_]ӵ=XLGC.yQkwƮ ^'y~HLLf3e,5fe@8i>ӗ)ou:Ot ػ,|NdZY zi:]duzp˰G 1o]6)67+ +#f~=_2wňiR\ҽq&svT兏ޢ ffGdhgߢXt;Ϡ4fƔY8)'~>DϩKz^ˤyV>gx}6B{Z2S1u2k2rf+Ә*WmKllmo2q'kѯ7?ADY˛ z*5pl$^IpӼA ^./Z=e^ZP91zaguĪh__r&bN}rb5'6.1}uLP_-G8%_Bit:Dʧ>Ⱥ=XhLչW|L!GTO5vlD6U0h,Թ5q\Va1޳b^_F ]p O歜r ^K ֏?A+v~;M¯[Ii}Xj,8Ԁ:B:=@5 T 5w1Yplѩ윉]FkNu?4Bc$V;:* \BH6uT\8atU xv"$~IA`ڼ\MehMs Wi htdAa1ߓdȗҨ0WǑ fl_dת ×NlLammxGSB}T:$doJ= kjˆ`'s0 cv<8l8XD&̉;+WJZ+)Nbg %'Wt' ɖ-wڮ &Niӿꍟ:<WY>1k Fczw .y8I^#HvmWHNK48Y/m0ŭ祝C@Ӈ!w2N_ADh{8RkmfiR0JLdؗ$l=\SSu?q¥?o"!/55N[ S(#(v f\1&v687e7kV$ǨiճgW-ǣx<GGXvm缀Do5{B/+M5r<#WҖ* T'Hmgv_&!YSkPaƅe"-TNkøwD/zYD@F4kl%!9*w{gN~oJDsJçԲN5>Ai3n>s33TG_h:OM]cb[̂O~)-{lsW˫_T#Z2c$kNJca=Ђ]4zҕioDsd+>׋j"5]i l\F%OnϻMBظ"6.A S?G!K(mY܍8WQaiWE"(* +ΐR;EQPUx!Ru J)ݜ8'`a0eiru6' 张PJʹjĜ#ȵM3ҭ%u\ IDATn@>ϳp9<{h4Śr pSci6ƽk]Z-3b/p`cl {;S_3Md>O/NU4j9|0=n!t~yOj"pI}}?1x6ǖA0z3) ql #f|m Bvd5g?M[GZwAQ]wܻ]  ZM0m}DSoZhҤMMjkcjF cX'67 68WcqsnX T^gfgؙ{|~p&3$g+D x.O^NK#&m`< sy|sH>IUϤaIKKc`F.+ ON 4[hKTֲL]>kt{b^2@DH$ Ɗur64*.=Wr gcQ"h2n왕b7K8Ϗʾ519wx ϭ ݲG_d~-sï%/ -VlQ_ђOBV  \8c>?˫+l%9x>1w~Õ3d%7wM*gqL/l`fJjptI79{xl&n*.664ذ{̐ L ׿S!B DCoDgJ 䍼ʚ9ܩ]\O|!ő%_?ʂs>/Mk(O4 p )S(q͛Äŷ6'}e2eV.N=fcdKw$ĠD] }4{Ӆy$`Q7e;hVᳩ1CKFϖ2RX~#ikpZH!>ɓRT6Ӭ["`U$, ͦvrbfQ__OEٺ#"h[f1q-W?~xjXpixGu:VKt+2#GZ=ow h񾤔7fDkV n2R[7ĖmCHekxѴu]GuS 6+WknWVጏjZkSvGvHV" ..RƍGrrrD3N#Ӯq<0wٙz#7bkNLm&0x}t?Ht`Q"Ց¡Cn54 cZ[Eߺ[\)))vv{8yl@:JqVu=`l1$40#-K;j=JĚ@XXx.;owٜOuq8ml݉Q"?dӉTu@vP(+ %bBDP(+ %bBDP( %bBDP( BoDfB'S~>oTV{#1so[_ ?߃^:;G{ih]Cίc˩sذUEh+~_^chYEeg7i<Ыhbģ. =mZ?*//棙:<q ֟cYzN1b}Vs>_$S}6FRGΑes]:g5MZxW2IIpmZO>֡LjܜؕxQ4[=N2V+ǃm/8hu5F.aO$g )Dք%jCgtŢ]ɜ<_3T_%Pr~%^CR(~7_3ɻYg&fʛ<3,EvL!yS{xk0Y{4<\,BhFfܰ0mLW +{>…\lĽ=7=a}1b=Bc|4>cn~m i:Γ3Gș|9@Ms_654vO%#өP]b?"1WxŹq4SgCS|Ryg똞^”6':Jd;[S_5yH643JWkV`G"rwbB{84eOdul෸3vkvm_'t~Uk!2b֍l?|<Մj'-G,#Q>`AQx\(W $:b0k|Xz+b, yů'/5%*F:xdGV>s:sR*:CS<Bf#sp >*{7z ×0+HMyQGǯmے0DS i^ⳛ#q_H5)?Kz~%[{Ґ\ǿa&,~qΨ@zubLw?Ƒ߱;k90#'KgXUEG9aBCt`Ni{ڦ#ٚaK^k*[iKgGyyE$ j!i.uON`՜h~3MgX4Hv47PqK')RwMhO`rdE';?]WCqi Xּ] @ZIN;B*IγᅄP}K2NG2.Ϫ8\?~<Ǐߐ8u]L44{n `c44\I|xM*(xdF~fztmmM0Hpzu"p*.@r9]Q2>ha r [L`/>G̞4:9N@%o+:A9ZhRy7\LrDQAXˑɴdcb?6g6?דTR<ƠYOknSIR._ZHz~~*,Z_h1VdUs!RբVy~oB !Mt NdÙsȵ;bnB&ޥH܍S8>ay3k>l Nz?k4܎Z->ėGEJ&[x##&Aۚܳ~s&:Lh_81y_Ws[/rj4;j [%P.'J%b^ZOs9q&ƈO~'1_AmdÎZ %` ]`LDž=a+,(b0B?v>[O$} e)r0|?|%t4:#`u&ĿV>ZvTЖ:-{_r[+]q`g߲7É+s?+?=k :WfU4#Q|dc:GC%윝<UQt:5QnK$!ie*f=%'"d@Qj )G 25TrOnC g2g|F-I`3 ÇhN~^$% $Pz [޽R^->2|udؽ3G*5 p"?khޕH/?D3yd~JGX1j`zOBѻ0^RxatOXؗ]+?[ԕv_q>'aFhcT&γ/-͗1`'fLc; UŴiӆrN9.uY<{ 7 _Pmlxk[>{Z]lwX*_TU[LY!eM4DM^G X0g|@ܝ+¢lKT76wYd'y&c?ek=wyh?܍Yv9u;AxVpݎ jimo!"B@.\]?5XQ~t_SFb!dfO b8p' > ٽ;+BJD[D3eD*X*_.':EQjVxlV38Y[yldB4@uƤgvC&~ݵ 1>MN|mgAȖUʣ=Nn^-[Dp5`?Zݦ,f 9qՅ4BВ~:}*d2 mιoְ53iMY}Bi!⎻Q#)uYm۶rꤜMj;Ezysqj}|n^A|"}ER85y,5;v=ji#7YrW%>,,#2&ui}:w(QN`08p@FJF$ѫ?Ǐå"jѠG3h4Wtžykt)=LbbEK^}iݓ3?fOVXtV0uD+hrM h)bR|?Sn2K]SZ4J?#TnŋN+U-Ogeetɸj8e"r3 |K;Xq􎲙J/^ʰdǙW2Ƀ#,Vpg5F'ҿoŢSEQh42wJmS1#PWÅ";kKſ˰bRſMyѩn}*M,ˠ%J5@Һ \-IIu/w c_U2 ~QݜP)|Ér<#A*@ Q4z9Z4F)K7 #VGLj[( (w:](J1иg6"Uzb(6ʺד.Ie\. .ӥ)G(#Qt!\xVI[k# UNUYn_LJ^zՉV. 8.Z)'$9AcLg(je^j#xZnM6m ~]GUՒ,xڵk_jk#-ѣ*&\u.QFZ\[#Jקs1=zD7o^AD*VH@HO=ϋsET_*3SnݏD\k쉬_',-)H*?C_hNO8v(;T9WZ4iꚗGPP9rÇWڍR-6**N$^q`;8N'6$vZÁ*vˬKw?A! ϋw4-|-@̞=7<@A5-t01?D;׶4> >("JN܌bl׻mH(G;bf؀W'mp'BJDD3lذG̤C$ȮD-xu:vN'۱Z %^ݑQdˉr7V:v{1qk(kQ,)ȒL^ѹEO̼&ƒx.$c?19ڂ٤'/_F7^1bD_ul?f|ABvdXDEUp.v;vlFtr9].tVLsK54KY,7 mSG9ѩrBw[>^ǝ(ĉd*lePPP@AAAn7+7i8LJwƭǧK(BBB(ž={馛p8$ ӓfBIsEQQdVSǎtԉÇu2Դ4(((@sβ8ݟ=їQOl9hO )m%7RWmY.da5ɛ?fM~ ʱe˖0D0~)[H6A!7mSRRhժgϞcǎ?~fg/gFrL h$Mw=-:<^v+ZBoYKy2%?Zv] ܅U,^f3Ҥun*ʜЁjNH> 7Wb%h#+;/FʑT-UCHx0]#ֺzgdee1lu#LH5oƗ_}Y"m JRJHbY" \+t̙ "fذa4xbccٺu+>>>BPPuRoG~Лt.G]ynn^uMى1oIE πH:1)hgg"#\eYIuu*$BWSVR_s *EE<+.=#9Tֿԟ/^ tcfMYv6]ih)h"2jXZr'dUImu𽂽GfnŠNQnE~y}[)ξt֟K.UmUN Zw96pujIdT73f-LH6m8`s?Fʅ,[0__FcL2˗%Ԡ]CI_m֮eT%@UutSޛG୅rSn!FkM8I[w. O :twzXz _lM+c&G)yrMeu&QKYO wZSm cnG?|Jt'ϭ'7*ppbcc:t('NJ=e"Ť:"Rȹ)x{EvMLt4t~19ײր{CpjjޙNMPUO Ԭ4X3Sؾw^oY2g)m{ǯ-vdkr1كsY][O#{_!!~) /Ls$IEV4*Ϊ煀:v $YU*{T;줜b IDAT+7 tؑ^xAH-hѲݙbF[f`XLF[uS4N&g㖻|'׳fg.y5!^!#cU6-4Xω\U. ȯ(SQ+/_\ŞNq)F{nf{HI7y0ƘA|rL"D^3fʍ3ưAwS 3{X*ЮnԾrwֶ )..NJ_ĔFAll,6miWTl)73~@P#t?=LJh]@ 3@ 䌤,ӦM4&M$ 2@pUf$˖-Wm横HԠ *j#"2s!??EQD@BH5t2o<)D QQƣʕ[,Wg%++K 7wuS[.9>~{~]&JHaNuȮ:1$NEjhe[^{5rrr܊o{rW Іs+i#Psvh5enkv=F{N.uդfqmժ ~! , 77g&MI5+j'dgNzŋNa^ vxr!Fv' zc;ﻇ%-&4m oؘm|f.2m۶eӦM,\wκo皎m*S]!TJh>U OάUD*7VU^2d}4ai=I=0FNҮبa9Z2BuvߘD S^zuq&ˊgN%6 n;V ]C>=||P:[j>!̯h$=pߢ0zpPa9GwVy2xjȍֱiю\.t::]a ~<[.g+3T⇧7:8= E!$Vw{.nXϻaYG5~[GYq\h16l+V|wNJ/~}sa714DK7a(6[jX)jfqX]KF:l].WM1cƌa..ĝm6\ae,hm/\:EVr{hZGd̏ٓ"‚WӺ#:wRdqyc mߞNbÚ֯7=5Q]n`<ֱe[qlB&M0y*S 8#)^J3aY.^eۦM/?X˩K! "Ų$&&ř3gJ͂hDӹs2V???~zUbccyx?;E1F"h?[￟KV`0`6KgC!q%fo.OksYnf2e /:!C$Iz C1 8Bmsyv?>~%kj0Gsܗ_~-lA|u($S|+l'}60}Ii"2nNnHMMeѢE̝;z/cFsb,6Nb&,~qΨ\m(N2A4Ԣ5J[ӧ=O= .$;;Yfo>كnoPu4z?vlGpmΏ`=nđ}|$ Aʃ>HnN{2?b↴XfNu[D'\**IIIdeeMAANº#GD$6n܈b___|||0u.$bе/k9KH"t)= z1Ѩ;;f($aZ󤤤Ta)ޤpyZn\=\[լ-<=m!XO{TI[kGeI]ȑ#CVV6JYd fFc$YYYyTg^1y@"|LX8v&u-XͭZ11 חQXI{P?9Fu']O94b;ŪcPuFrp:vl6VR,:6 ݎ,qZjQd$5Bڋ2ӻK{)+:~7 ZAiV]^mieT<%.X Zʆz"^ȽӦZjY#XK %wn i8uGlXy;%㼻}(S!FkM8I}*VXd{&w7\&\B d$5o(ZeСHd$IO>zbCzm/ТVձ9m<- #2Ї{GVc~z#CfPZNHjRV"#`j6^(XmG-j:V^ڒ:,:vT@J$߷ Ab$OjvUŠ*!ȑ#lܸ%K[ooVd2XD|1բZ'G~uo?$4`M+WUD̔<\U]M  i4z, ޅlF#X,z}VkSք`J&f#f>ZMLoko5XSҘo`~#&BJmzޖNgٌRD@@@#)V0#ٶm[5kV?*fiBH ҹ7V r{IiҺ7~EV1L2U_ڌ~]Wd%ʓ1b+d#dΓ1|?MC1hh XNI9jŀ)j{v-Nqsy@ bFH,KIQ|5lT@N:$''[ROӷoߋR'lT@Q2T$ FS2VsߒXv؁AAA5kTKHt?Y^Ez *#)'iH LƋ37~.o 3$'4Qh̙3g7j4C.z)$%ӪAB\]bZ/x5Z4N{!%TUN"F3.?999dffb2JJ I\xz\*}UQDMff&xzz F=AȒM*0+)wc4:!.ڛ܆\UX@[Hf!˕?qQW*GI^DD>ȘvQ`:FOY[Vwul_ΥSnp{[Qqm[&eXeVr%-Ej h%$!/46D4(fב4 jp5>[VܕPp:8\.WG'6).RHO;,ٕߕcSM(]c7䏳+jZc4nDrCYy-!Lu-;UTt.tJIC~2ii6 R~f_9Rq]ci&?rt;,c@LouU]Z*GRUi @?FfxTt5sSr5b\h>|TM-OKzG%%ג`93=:v4} IEX~K@5}QtºzϨUkA'|}dE}9r-n1pF<Մv*W j"1Fc $y RrOq&3 ;K`?.]_>ݏD\kgCG#QJœ$]Ek@.ӹlGIt67Z=ZIN'OQQx!*c Sĥ*".Ho]NJ: ξPdlG /;(ǡ|)69r(2zdd2E-NI؞'%dbW>¾^(}X @3<{ޭlJ׻ҸdAÄgkƖ >#VF_TJ&2s #}9ڱ*uQ^[xS*5ubyJL7ȗ  ˓t~uyu$,hlPml[ٺ]Ii2Zd]d+[ɾ|FR٧kqdw+\-z_z I9I8`3j߼KR,h jfdlVxqޗ r.F4 04:$ܸ gբt lZ?LJR8b2q 32rseas?w]4a m\ldohtDl:K>_kiSYR._F̾6N1(L5g51w9|;aA-,=z&00 ҭgrp~:%qVqNnI0JZilF.ņU6c4my8lExh$Tt 4֪IchM7:Td9Ӊ)|z:Dᩑ@2ei}-]8]$&Wb~?]zVuڱ/,PFT/:\$o5I>5lIAS/zɓ&a83- }JI *3~+9S ggW@%#2g>L.R^GOF Ā0i\mgH8dP.fڦD4N ?p)rKG4X>`FNf%krIs\!7`Ͽ_:>b粁UZZ O H@tp#vgCGR+EI8vq!]`J,ڻҩSN^iFBksy@ i?Ί4n" YH,٤pYRRRfYJcbǎhѢN:E޽+8wo}2&%[q(:ћ@=;Fߪ52)nzJ6+%k'/NdHP%3;Y+ƈRwqtWAã仫=?JǨѢx症IAу,uӑIC/@ߵ% GqNW Ue:βӟqM0WH-b?mY($y08NFM6tBB*ȖNLH !- )j|AS/IMy4<d+aMCC #<O0Ë&(`<<^[b|YxlsnDDΰ>yFZ} SGh?@s-ŗЅDb6xxx\tWA׷* FŒI!x xZmx hيch#[zz7 !44dmKD$U>{x=k+2lls>;=D!m:.0FyTR]V|CQE V_"1zajx^79GФu3T_!Ͽ!Sj<̈́3*n\|UNnm6Ƴ3j.۟Ǽ6baÆzE^CI?ݽhs-fBWHjrSA#9yU;.Zg^1y@"|LX8v&|ͯMfh"#6>ޒcFeRz}gplaٶ5GKw)7Ghџz?h',`r:YBK==O'çįY:Z_7 &u8Sf#|{?ߊݘ"D ̻?/z;'&1G[2 Epck6[_Ґܽ߰E`?Y#hng2}m8LJ fyxd?܂_AjKEtጘ;l&QcgqR~guƤ'V@pڏdU[*a|s}ٲ͛GaԀ6cciQnq&|+W296'7=hbzKEmP&EŲWd \ߺ>SD&9+ؽBH,4tj%Oz-]۷9d:Kߺ`-:Le<1t c'Lf .}76Av y1BnC[QL[q o4{2vj|w@pMЂTy6}J?˜n7U0}Z="#BH@ D !$@@ B"BH^pƵDF-=1e"6BH`ۛ9r$=3Kx_B"IC3b E`;vtĂ]>w)J3 ێrZu,ZVKAX- 1F"BHZ3|pIIIٳf#z=NVB"J zł7v]X,xzzb6th4!$00`6q:"0u7xzzb2JX,7lFN'.KɄdB !\}hZf3zEAcYZVtmW/dDPf<<<.=P Kt7 F Q0 FhA2 F(Y;gIENDB`spykeviewer-0.4.4/doc/source/img/screenshot2.png0000644000175000017500000176254212650522331020030 0ustar robrobPNG  IHDR0SsRGBbKGD pHYs  tIME 0Mp tEXtCommentCreated with GIMPW IDATxw|ϔ-Jj*,7\p !^.\B~wܥ^%9. \r)!R ۸ʖb}wZVl~^<;m|GK׋((\s5!B!B!B ߯~+Eql榛n;x٭]QEk!B!B![mcYַ:W!B"o~{ym3gRPPruD\)]9g2M8θzx<\uUr-n"!B!8/Ƀ>(׹B!Bi˖-w}ɬNR?m^M K}3:^pX,&{B!Bփ>(׹B!BfɿUUM4MKd M4+><=Ȗ>S,}ݲ,B>O !B!B!b4MC4t]rvXA%ʙ>|敾L=1P!bʰijĠr.Cy9A!i] !BKreUOK,SY":,4ce%2MO2IL!cWtaڛpcPE]PDIe- ħN8!Ӯ8a>$".0d!|l %,lљ)B%׹B y -݃CQ \˩K}])s:So!L:tR7r5{8iNg\j-Rs=dB!kH1v=.3eI<]L m3B!Sje=tSD82~j:T/J}V!GALűo-L=1d !"7sY-lc=Dy;0V7"j#-tcK k}toJ2XUG''vXu&6yvW7.-YNJ:~16мŔgat dyQ s͢ L =2cQV#M,ȥsOsca咍 (vy8n]{9KT٣Q(Y2R̊p0Jz6..EB优Bsw2 Ӳ30PzgPspH D T,lRr h)̑'{21{9_3j I ŋ.gì\e_wK&7qPpyς(8QVZYC W1Ë{1z6ٔBL]k&e~aAmm-'S[[:zu_fSCL Kgk,brd :\S!c:Q "*!x"S+E.F<.q( .g 8^T=(.#w®n t]ϵk,Wd(PTQ sx;[ `e*iU`GC&xV/Pd5iT(NTVP-ϐ `4]qϙi;uiL+֥ !B) uxg&h} =L3=n`qv=ߚ^h˳/NeW4z3Ner"oA rxH 寢HU_=| Ab"*fR3':Lgh~5td;:ѡ>ϾLw 㘄}BB)x&m~ǏǶmZZZ, 0hiiq?>&eɟYj-S`-=0XmۧǶm,²Sƥ N6>TUM4 ]4-rv'iPq^/B\(R.pga@௬v<#')#,i ϟOGGhtpGUUpXz!₡_Ǧ!z[id(c=o`~:>Q\;Bk0n8}8 XuE=68B6T[|^K˰  ('c'ΰqj=G/IKQYG- Nmgb: :Aav1r؀ZR穟O;w)s|1; NÅNsS\4>ǰ3 #grf0!W"{жqfꛩu߱%Y0=)UqNs)e$жOPz[d3-%囻Y>^ŋxRk^zcg8 'x:x` ;Yf۷oO[bńF9s&D"Eh6*S+5sk"R?ꨠU"dbX|ˬOE"jjjhmmMYv& ʑ%B\p\eZ:(Cw/p&r/ѶhqSOM SP5҃{hP> ͣ\!ܗС7{kdTFاv4C/R$x]#Y,qqkn+ ?D %s;+.*#*I h1OO""OI !8B z cK|Q>2GLFtWqoL 3c^>sRp1 1ڷ08"u1;$h('pJSB5y'3MsRm6PEQpa93ozӋmO8poϲ5癭Ծ'm&rq"tvvjBBn!kk^f X. Luб ̟c +)JfU o#<ϯ0=e\t)e`+>fڹTP KOwR.*0փƉƝ,u*ܝCyȉs" ĬS?L!D̀~ 8HG{ (# 1O+biKB1 fBUqpbO\ -b~:;TϢNO~`'}HݵtZ=넣=.:lzjerx#ZCL+6 t8efN9a V]JMCFIzT6aƲS2MC !DV\s|}e%'2֯_?),>\.8C,J4M|ScLD.[ +=P>]`Y53O MD"XVVFAAhT.$B IOWĜ9~4FO$zy|VAPܔͬ{D_%4+ `U'O/?H[[_*3pf~tqY01TrijƓw4_P15ej6zlp1U/ïCMDpirC!\!ĤS yRh][iORsq^m ;y%Knrgeo)mBf X χaF(Bv_Ĭ ;L(nWVÂY:]!eb?žnccQ GL{f j~J =hN`(m۞@*׿M:;OvA)XcR܀xorJtű8Hp.RZO4S`1 25pk$hv`d)BSwCsSꢰ׃˭bcţ N(-U 00 n稟2Ƹөo,b2N_xXz,: cO]\Aei!.&f8^HemDPQ;"qQ[G`8Cjk`qc0CtBqUVV;)4"@İ`0eYSzxMZDZPW0M3h`KD!d,uB.e= c-fJ.^\7C{̖[C>ul\R3ŲRbҲL3!BLςײ@0kr\?c&ӽXQ{ٲ B!8(x7z*|xt0`JBeY9*̶1TXK 6=@i`Xz@.SYrL3!BLbm*J߱#9IBquB3.F^YBq˔͕iԿs5m~قklʖ);.d !B!B!BSdJ ʔM-X:zRUlVJL!B!B!BJM4qdk11.[Yj+QM.!A3!B!B!B(R_b2e}e,|i22e#A3!B!B!B18ض|Y5*xbY>+{-oL}l%h&B!B!B!Nh1:.}ڄ,T$_ci) -3mg m&A3!B!B!BQzT[􁖫e*cIL!B!B!Bxzzz\Q`D2rMcv'Ln'HL!B!B!BŒ'۶1M]?5oӇ~.[FYj ,S3i3ev㠞Zk~?*Tv:OJB!B!BLDseafeY֨We%J23uiaxX,vʰ+1,u^i82͌#/:SsÝƷe o=;}T̾WyY$D7e\o޿32Uu8w;e^碜fkY國md/Swrs(_sG?[W𓈳1wQ!B!B!xJm1>SYBcM3%WjUUq6bG6ɮ\ FF'"o/,u>*j gq;YM0hb?/o,$Աۗ7 mՍ|7X=Ďvs4❒B!B!B[jeSKm0oU&d,l}*Oٖx+m}) ۝L!w=zZomo%cC7-8["afY/>m?ƐYĬw\J~Go/z |jc/ D[5Ay#x3 [.#½M|*w??y0̯Se^WW@ud.7\h5daj3qյiO !B/5,i3)mٚh<u&^gCҟWV)Z|{wLUv<Ӗkgw5\ˋ5U#2:XYM45pqWGg G`+_2#ت;e^9]t09WFy?{Ƨ[LH@DF+ xf+5g"$o^ye)w< /-3=o`}:cBY7GodVOtxYzK%i?15r>L{O ghO+A\UB! s!nJwwY Y~=K,q3!B!_>R6֜bϧ+XwB|s#3qg5\S|G/oYO7`^DYd7ɟM.|UEXQ\Ikͳ\^ū?w︌Z0-T4ï1 AS}%~K}B6~q.ij ˨({Wu4,*OTWu1oG{s'ws={c0rNvp1kz|YaGPX/ZE?籲빳B e pNSyl_t+˔ߏwQm#5 !B!Ni:t{uQSS}v*ۖeţ>JQQ D"(B!/mz̀e \e-K-}L;]Ϙӛ̰S̬Ӎ5\y5pW׻~7=A6}3;fsv07 Y;޺3}͓N:W:v~xCeT֭d2z뽑[?y+߸S:_ ֣;u&^s9iW3w"8ƱZbO[ZBVO[gpݏvu~o] 3/|\$f&B!,u1{l^/~^/=K,B!˄ih躎J6ٝ+LK>| X摚6VZzvrw:7o/. {Uk+NBޯQy< !BsB΍D"|[ ox~χx S7jN&x| _```@v2!BAzxZ*3!B!q\.ר}se;VPM!B\u\fD\le 8[-?yzbP0}1W䟹v̄B!ą8>%WEi7ly"}قg9ٶ֓xKkB19fipq;LK襗9קgN o5qx!B!ΰԀY\A靵gzZ8S|lGn`ץB5!8=mc&*U Zz2ϱ|ZKH)oӍf+OfB!B!Am|jb';2,Bu Ðe.e? !I}`˶m,3l&u3W?SfcӏKB!B1%.-r:M0G5S4(B!BL/\|2^i=q-,ۓn dyļSr =㧵M6]0=hig NeYguXOۅt?+>g^Btbب (ql.]zAHLqJ-J6Ә}>\3\Mr:NfB!B!$x饽xt}ro,JްHW"X7Ro(>aMfi8Xqa @Qt}nQ$J;Ν;Y|qR>݀[6vgln7+Yٯ'c]+[vMӸ뮻㧌wr-|C:+}` v8X+zZ\.m?#8Pb*f8k뺭;#4wORyRm/D!{^4ј޷X:pi㦖)[S r6B!B!&;Fvs[wn \8KLəG&Tx̙3O6ɺl6݃*x\*a8 53Ot7Y*T9ݔٹ-|^[v]HYYYi?я~t҃04?rY\1m ^.[ɜyD}_=d_XXeg, ?SO=Ş={8z(xVXδi&v؁Bu^/Xs=O?͆ '?9O!8_(|O]-5ЕZW͔\kXV-+QAĤ .dLmYՓ=Tl*BYB!c(-7_緽ĺ5Ѵ>Hq H޼H Ƽs ,_COO{aڴi$3қq'k3s m]XF:;{hnngF,\R> N]Mno˝;w ҇efiJyNyֶ ,b^/1zxeky!_Oa`3E-&~())I{ |d֭a^/@ǼmoKWBz~Myr2re眛`Yjj˒ulijjeƅ#'1TLc@u,yOlYB!N[qq=xie%.Sg7TU%zQTX,H_;0 EIf68zTM4fQYYCGanU̘1c-|j1TV(UY񣏎Oo=2[?g?wy[jUc=vFb;c4G|X>6λݥal`XZal3RXSg2n`g?;f0q,kll<+?Ći j Bab0@[`1PT;ccuO~_TU#`h`6y~{.ZtRˣ::=ʭʢEo~C<5MG!fkq"ulujz֟s;]QAȁX`Hxcg{$?ǕWřК=7Z&t;8d/or]$;xt8'O^k"`fYivկ٭/~Ÿ&8Km1UU x8^w$PfY rFgL7* -fԔ#oE4x,JW]XVxJl)קP9CO<=92Lf;vL"'`lmmM;y/L581ä`lA(*}l}µutt`6FH(qp8aheY z޾>JKJhokeYZm۶2nٲe۷_*++:B E~orSSTc5kVDs?޿/d $HO{ԧ=)IMgt7u!r!GWYzcO}n֮Y>k3***޽/.fph۲d%ٳYf կȑ8Eet1_QP@Tz{{X0: Sb{N>,3NgMP,<όsG)lŊ)uLDЇ>aSr@AAq万z̔00m2~ۇkA2PƁN꽫҂fg>熾~vN4!FFD"a"(PN,¶'P[S;%,ݣ˒h^UU|Df_?CCC4-ddb=QXZ I|~e7M׽uWbi(ˍ7ވi\21;ˌ2M94+(*?shoVUՈa Ym{`. 'υc;H4 b;;q\g$H8 .ꫯ橧5?P{gK/+V$#Y귦izl\Yc~358\zxDKLgRLN N?p`,c-Xd!JJbX}C{Qxѧ9=/hѢ mԖʈosWb˖-yat]oX<L>JQQ?FY tw /Շg(e~kI)lI43xu~\|q7|3{K&,e6mX .WjU5g$~f͂ &>}z{Wӟx≿P_fZKIfÑ#G4/l2̙úu뀑 g&ii躞lQӴPj15j 477'nnnFAa'ZV62֮[c̨δ4oر6v]|C<ɼD3z©O|G79%yulXHFrw\Män,YB4R~?OaÆq;Sg|cϫ,]vY&UUML IDATV7i2-ZeZvm΋DILקs d;p/[jc`\`NJӛyXmY8砓9%>ē6UN(>)}[F;;R]]koyx vmiӦw?O RZVnf |嗟=& 3O^9Yf1<..Ս^W'oԾhS<D/Ur'Joo? ӫI'h˹>Ɨe/^E>Ou*H( kW/g^q˖} :h4cCTӬ?i Vp,r3rm20du˖ivHd}]uUXqn7w}7if;:aB8 ؘ&p9rOuFgp1*l2]ze\ l۶M6QVVskxYq tttPZZ6O5 h4zR!x9Hg&x>zYd瓱:m⡳#|i>thdd [+32e¶̙=e˖<ī5^ h$*_t}hu<7Fy 6_ 4QBTN$nlа:͇OZ[[;w.픗*B!TU%k.2;],Kcc#K.Uȴm&c{uuuQ__OSSS2׏jOyy928qii9G/2gS˩ Yc}}}{챨a p}g,>۟ =ECws0FаN̝bOQ˝\C!,HJ3#$3VS[[ϑjU)))bQʲ#,OI UV 7%<ψMK{{;-::1 :OuRVVFkk+Ǘ;&4&<4Mgdy2z=h>a0KI{h۶D+߶mK:pq/rꩧbXn0Xr4/,bldfؐR#3É>(,,1uII ʨ?իYt)9u:G fi_e{gx5 C9B*BUUU=H1elܸ'W~RdIEgfTK/X=a26n><]v {`M& DcuL--0ͥ?;Yzݍ,y wx'z6n 'Uzx(|8H^TUU>'p]vǍ<`?]cFžf z Rhq\ 7>P|  Z?]u{tH[ʅ'ƚh|7_2|x<3e +صk/W\q ;Mf,,Iv<ϟϹhѢybp:XִxF)rΤPhcF,ULm9^^UU p\x3 V3suϭwdImm̛wٳyz衣z.r:-&ӵ&cM`5Gc,{Dйxt͛R`@6Iv+1dayY5$k H6.|},}&RNNcLwM<{n3gĈjjeCjt`*fcZaH 0رs%jeÆL6EIm;q H?e &<]]%O3:L3U^Wo91f'0'L!N}δ|3B<6e͆f +X&Aev;v}Lbx2 `]ږXʮic~gssii):5@ !9$ZYgm a8OHdC:vj޽{={RQQ7 #X .g>o43t3ڛ pj0sLn7Lmm-3gΤ8Q0ƴӂFaaa,%%%a$paF"Ws ' '---> tL \Fd@'U@>a ?ʚ9805=QM}UZţx()g:Ld$Սdi"אَu.رWL)!㥬|a]],^-H_D'a;ΜJֿ>e9оWGBF4˲$Kx}^zVp5cb򿎏him8Q$ů?M:MG<3|+SD(MC9 #ŒeIϕQF2Rx &E[@ 5@ HYQ%QUUUc"㉎;g~C#`*|\I"=ػwo슊F~Xu(+`ua$5F,T'$I"/]ީ1L@7LtDAkL}$𐟟OSSֲrL}FvQt8T9B 'OvvvXXt9C˲Lnn.a2QLYzsR%>p|>),,DQ#I`XE OC״$^Wu]Kb" 44iE= ',v iHL#[17gԊZ`iK=0Qg++**طo[fUo^X86#IMmYeX6y`ix6wf:رT.f nO71t-hFʲX`|kՊb'J0rb3[V:::6mC& oG#:ABVk>I,o@%O__> 3ET1ٺ5ML> # $+h̽`&fM5E| S_= L I0-Nlo£)^a&>Vy|CC&' _{)@?#Ūj{րFo]磣>NSO=jaŊL>=!yvTmLG:] H~""6Mz̟v?w?No;ǜJ!$ rE^-u ך@ a\!! G{{$CYhhkѼB_TO}1k֬76f'''n-(@U/ZȰpϥTmlz0yb H<^Q$pk&>Tf`LwYq8X,qXKi1dP&2;v`Μ9TVVCHvÌ~0EEQp88 Bh{}`<"~7XbO<9CI<e.۵s/ \B î];i`d=,TG&VR9 IyN9[#Q>"]{1u|K>E cWRTTLwO;0hoGe233ϿE]Dnn.[lGO~ESS#EEŘn狗}}NH4EG1A;,`ZD{Kn׿ņ$h03=i+C i ? \) ǝv vsLIW/\^n~DF&gf.&B. 0$N@ EQ^b3ͱ}0M3j.4@ KY<# pƬhY~rG:T-lVy9H@y,1%3>UأSa㲧6 6-bA`>gp!j-hl ; K8TRYYjiiSNRC40 2uԨeI$:>bFAdعsn7 ܹv܎<~ôI~ <>dYF do$y "$ tݗbeM dՅ/{ fN%xy5@\mQ~&o6laq #+2YYՅȒjtP\\45lLäLYT 쌯E6z6Rr!H9 g9|ثe8nTC7b=0{@ LOn? ? MDeBǃft]@xR@ |g fOSH#L2h{DxFj˩ W]$ 7lh#F.~)淜lTUaϋ0}^L |T چ,466xO<1M*r+Iaw79q~e{nzhjjb\{mFC9M͊(uH aC6LP$ E ^jAQǒ;/)6_ @q ĊfWJ3ݲ+ڼm!I555H555@e8?s3ȆyGaT}}=|0Ed|>/g=,^fWȺʡy8n))l m8566v顭O<UUЁffϞ ]hlhuMPs.zz;7<ǡDA<& M ȲesVa4l86^o^EQxy񿣹5LӰ))P$m(DYO 9uuOpT,DF^:ZQ0ӟLϵkb`SUVXٿUUPaZx<'zaR_CR ~/*r! o{?\>?Ƭ0~5jس`2 nE N(H2{l2223/YN^qB@ >NC=;DԢ/XFA,Ԩ>pd Ӭ쀁.'B[h c*OE@FFmmmz`8XfFt "1{ G}ܹsZڵ UUimmꣲ2z'fHim6rsǮ]۹kQ%j[)y&ZHHEMXr%;vWwߏi~ꉜY rw R뗖);Oq%[Ȱ6k̟OUE@/N"]@'SB(1֖¢Zho|V9ip"dgg#χo> LAVZx$)0> *RX[DzL<p 2N:<qNG` Y=3eJ(=)ɋ(a%@ Ppޑމ 09s&s F @ ||lvv;6 ͆q%]"j#Ia#&ˈFnmm-eee2sLjkkև0.tfUAǂ@]5 Ix=ia97:>tBFQ&m '餿>d0&o֒AWWMMM|Æbkhu544PƍF>ݎ$IwPY)ov`֭P֭=$xБ"!?)ab4n72lb:n;h\|>4/h4K}ܮN^zw>zc/RR>g˗/B /?;v2]Fet]2mmmy)ɐa1?~2-VNZr2k^u[KA2{g[*+H6@o/ː[iS9(S"3IR H#IQ/XgϞzy IDAT6TU~Erg/B vthmmCQ__/'.C4I e>$x4G? pAEihaȲ$)۰ʬx\y|^4K֎vtEI>tCx; ]`4 f )yhb\.`1,?D7M$ dI%K6mZ yٴaCziKhn?Uo`π,E v~|Oֲ'1=[>;n^fqlr#@ @ Ɔ@>m)IFh_~HĒ1{`y8Yb(n yVH̜YJݠ Yh.qV?]ʣJ1wзseͤʝk6 R|>}Ȳր-Uy S)bKNv).s~g\fNl," GF*Yl`ǎtI Ba&idffrᇳi&dSU9\ds7ڵ+^Xu]7,RLi& ֫i>|>χix=xa_u ]G|AmFJ3i q~uzPX5;aJ>t|x$ŋc13MN)+$i{(]cLdRۖi" 'ݎj Mw}%KOͫǪ=}Tk #gЃ̂?b`tK􇷒kCK躉V:9UM0@@!@ #,4ܺksac(xd4 hQcc1sLj(YJ]]]p}̙&4 4b0zIӋ=<%:}29E8q[s;ɣ( YYY4ߏPo1Is@^\{Pvz};,j i!:a䉒*d<ڨSN #Rh2yŨ'k&m6Ng0=am_d^|/O*,UUu?0|z\!$ EQX,mv, rHM ar0 7r rȞEa à;wЀf|>]]l߱y摙ʤq:o?Q~ߏ)O4!33b7n0L @UL-\E801,u\Kk+}}}a7e DS M:X%'pMZ`7H2_?rSr/+Vzj֮]ˆ 8쳱;ȒDWg'/l?|֭[ _yGeeeZdnIEFFF)ܼIss3444pB&Č(QCOF Y[[zXVv;=:;;ٵkK.IwŎ;8`;&n#s4W-d24tHp` 7:,M|yg R4 S\2c#(Q4}:V۶QVVmtM rhdQ{%~ Mzs LΌ zzz4 n7,cp:p8 ' }=ޣ#rΜF|bË-u=YN'V `Zٶm:VພH}d:Kf/Iɯk?{KX#+23Ky/gh~иRT%m&i%DcVe wH>笠g,---Iqq1_p~EM^O 7U5N 7|C~L$@Uɮ`O-y@{&D8qb@ `4ƀ!9"SEn%7>y6<ʐhNuxx0X JJJhoL(cf9cϥOԟh:X,S{B+7'cZaڴiiʎa_-V++;nuƜW#aX3gV9LaΝ;Zqy#M>`L.׿yM07C1 SfGeGQ=PXPșgn;T7c7@d򭅔3{AϷ@ @ HpK&r"uD3E72O /`ēO~IO}@ H/gu۷oS &]nvV+V5f8t06dta| fD ui6X3f@ь ɂ4a%2',@ [@ ᬳ P i; k8aX= K{hεP9#φD3\V 8% Ahll z i MR1LOOMv4i"` z|W`Iu5>|I.13rq!k*uqsyˏs5״8#8um,u=f^y4E[s$B\iV\\LScSpIbt3ei:TN> L>-zc@ @ zt̆3~cXVG"2ޜfrJSTTDSSS"1z7/ kL٤ƛx}@ 0=djD@<3yTq/i&&!Н@_?֭;p`ZlX,TUi 5~!&rXHDꊶk `4]/Ԓ9a?GPcNᢎg"`zX|g< G|>dLt1i5rO>dZ񌊬q!k*uqsn?B&=ؘ;o4'f{c7hHe$IBrY i?jO`]b}VvXZ<ێI݃ݤ /D;@ `baxkآP0c*Fz^}9gT,[> gNywg/yJqH"u+2eJcJKKM嫯/˃X 9G#aXnwqv=j(9ZD3F(B=`H8rExbqe @ `R8v9>U:1 8b~pн$kְɖxy' VguuuXt:9RXg-[ij>%\.F*w^4Mcܹis,3 t9 R?[Q˧.|,ҫ,-Kv9:wry17eW_}5gƲXƅtzȲunh2'zhԷ]~,yQBX,, 6-h4Nx [ ,'7!@ @ 8 &^L D jxkw3w23&h-d(LPYY9>S9ޱ.8 0ɨi@\ˁrn?eu]D=d1cy-LVyeWV8Hn)---X,qo=HpLj4MCu4M 2e sG0^ kᶉ [h&@ A>\}B́:5TBHf9+)}vvvӃѓ cOl^㵜lDzMc{=H/deM|q&Z6Mc:l::\Kf`ɓO>z˗ 긔 X;;vjƼzK2 ꚃi7鲩OG)?33 #l7~E.t},Y]hgX)CXN3@ @ &;֭fxٵ<λ }>?|(rѕb4rM6mcaٲeiuݣ'3:;;!i}F܊\i߱'bqnPʅz;@ @  +(YKǮʉlժUiٵe-Z[o>GkyժUIO1Ud/ƒ>Y^^ބiN3m9Ͳ.;9\|pA^i_q>toкxv=}iv_]}o>>DН,ڵ EQZ&xt7JWS31]U+\/hh0RX - `|@˲Mo$7Ytx t@ 8qo[^[[͓,՜~"3ʳoɒ Z%w>{kb&nfBg 5Rɲ,1C.&1mDd \ -nm7}I[SĕHۼ“Vp4-F$tgRS/|guN\طu?69ϤXwJ'o83h{fF_~}ow}FJ.}g~_GM:ܘtx}wdJ~̈́B‰6!:Qr x_}`ȩDˆ~2e nY62\T"ɖ JǢl*Bld&=0q*x,9Ys}W> ΘMSf÷s[i5Ȝs&="^ͷ|n9\*?7WYy(@ճ}c_9Og~S^h?ϫC+~C{?lCXoU=_9w7Rڍq7NTD BM!geɉ+ZY]Ovө-:}~p٣y|r vWU揸9X1Yf^蝬/-%*K3]C1+񭳋ʲY|WY| RL6W|zATG}k]@0 Ɋk?XoCg}2:㱷Ք$  7&kNAvv6kMpPc:rsRz.ǞG@ߛ\}nף7;rG3u9Y<ХgtR:[_k z_:18oWﺕ^FkxΞzp<@ᠷ7h4L+p IDATN"M{{hI8/->Gn[W@BpgVOnX^g3V1 'c4Z02My8-3沥-G> s]8?=ulU(^/ap`'/|+N 0q[uMG>{ m:sZξO<#䤂C=<߲m7cOċfo[~{nGA H]w]<ڄk9]| >} kQ9܅Ya gY6餳s6'\cp l U@x衑k95 Mѻx |p>C'éOᮗgnd]L}+w?)/&Cf=/vCB3F k ,G>R{ THCGWEQ–)qɹd_G^N -N;sN,+q,u,'Oϯdwn{{;|Coq!<O߼Z5.~"w_9s ̰|i/moA;@R /|l奜W'됳kGɞ0Ίd=#$WU{YSJTG /O盛R@SNR,9>|@o͋k9n;";l.;?\GH-&'2[|QLSӱ;"+So2{7Q|Io[osNyG~,{J?O?4 .UxW+e9c ecEEޜD%YG7}!t&᡿UQ0rpB s4ӛ7 gWB3|˶紇xANN:;*LN4-7hliDms^UAп>m ɅIc֬Yx<V똇b>deeC&R6r` EQQtuu-įH\u.G (g`Z9o99 )nFRFHhGmh!2wKyx)X6S/O )*1Vm/vC M(cX+,WXz1hyݏ,NQԒӹgУq?3Í΀K~i}Jyq=]e pr m?r-mL8p&zp9go RXkG:4Ůb"M2ǑeʒGѹ8qғH:kH"n<?wKr^ /=O-!˷~rZbCgOWr畗bTǦυYAN Ĥ_wo2{n|HnaY!t5\lN]5\D 3KgJ0V>&~C'c-www3o<֮]?mk'rb<=ѲV NrJ̙òebmmmMTF3 $zcU6irO2Ǹ~z@ g9"O’*}+@!8(}kN K~~.VÄLfʖuyϫ/yW=0a̙G^^,3'0ömpݔF=ƴ>QPPn#'2?q:|500{RD<|ɩS3)鑿 ͜9s)7i fЊq?pjoq͐29 xZC՜rncrԩE/382C.i8L0=7SH#~]DF#^e^"(UƔD'|#,BC%o8d䑟MLU)[Pu<ȀNzf|:+! *O?n=*<}еKF / 2}1 2{->szxLnLY)39-gy|fPz`bc뿳68q 7r#fQݞ, wʔ>)X'ҹum|n;\.馛f4q޼yfKα8Nqd4sނ}|{GU5jdxFjb 3DOd-41#/_:?ϥX4:#2^h,ٳ72{ly\D}*F0-î^ LJߞ&lӓ:6侄(+9uc'/;Ov#,yɝԗ@ɐWc"C'AB+]Lli̸Vaؼy|Í[Wy0CKH7Ga<3_ښs`_i,}:[: w2i I }-|z1m+@Ճs&QٲLb霜bcc{7ٸQ^D]qpxV m'oBf~rB~oppT"=nB&oPyAϖ*^{~E{b/?=AgF}c0dv)Fwt[û`0p_ӫW/&NxImG}D``p/ZK`a^Lfǎ >N[[9:7=Xm,Ӷ5DsVuY~6=Dp"_ҏ7jߊ TC1y=< T<9x%kMsי5<9 dзapx$qb~_c/g瓨(g݄s[ı⹎h4(Jv d2Yr9F%O.1 GY|,Fh['&fil\4!ۭiqҼ?.d} '$;Wys}<#!oBё;K_O݉=T2Ym(͸7<ț6²0Q(z%vT4M F+uƵ0RGֆL"y3Lߪ"8}(rqjNxy×^cxjj^4 AZZls#d >ZŜ8&"[g%kqz <1g.sJޓn\s JSJ LUTF]i53x4N^6Q?d$1G0D\.]?o=^s_/[6 lZӖ;YlFFYa'> 0 (;>áca\V?-޲/--E0l v,effҦM|}}qwwd2u1enc?fzFooo.\4QXX7K vJNLbnf_YvgO=gqd-r,; k9¾kɯ[k5Bh>g vIK$6]yGqA fkŶ^AKp ɟ2v;W[$ECc-QfI AZ$H ῍~f5U$ų&J[ȴg~$MNs?VQCZFFG;V^`_~7߰e˖:R^C/^Rjjjpss.O$%% 1\ sszz%%%(|||(--b&11Lƙ3gPTV ]SN5S*/YFuM-n^wK& T۵zK)CTT))),Y@O~Y{w8\Ξ={.k=[+ݻwo ɓ1cz{{_9IIIٳ[:urym1op$&&Fll,LRRڵsJS~KT* OOOݝ,<byQ1*gK[F$M2"d,A?-{yo Kk k $GQu?¯붰2okwem7T4`:ObeӧOs70vXf̘Ayy9w0h mRYuGQQQӦ͛//Rtm6/u?[`6&9+k`0XӵaSQTRSSӤ:x3jo /]Wҍ$$$233ٳUjyJ[ B\c5ݶbzŖ b2QSSCIIym:75U_5l׾ƤS}MWVV }nn&ImP\|777+/31X9G)G8ʫMH[sVy1l4C{{^{y(Cfo#m?K rfI A $g7dw NGu|=s%TJ?3DL4BCC ~'CYN5ssn.MddYQ>-˭lsm66Ys⡵dYKe2zގ)}lNYs9^Maa]]B(**"((BAEEe``0wcP(7 D(;j5N"**QM`03Ǣ xٞ2;O&f049tmfkfDo&  , $H Ah %1/u=m~J%%RSSׯ\wuTY+oo^8L2*L&v2eeeFF#v >Y%jZ͚3U*?1}M؋Z oooΞ=6 ͅd X&IQ/:#JF1FguyY*#gM $H A $H A%൥|;0vs'DtYY2Ȩ y 444XNG6mgϞ%&&FsyZ[ݍDc;I􌭧kS K[RQFr+ٿÃft` =F!""?hY[hd׮]-ڮmؙ|~~>jooo}xb;=cvv6mڴ… ɘL&˒q̙o6ynC]MKB^TTck3Z, gpfir$P ɈQL . A $H A l`,g]y~!??{9s|c):pM"IPzͥgZCqsTƲΆ꓌f$H A $H A-Z8o O>DZ;>$C;0y75W=8oƨXp{2Yla3ұcGxeGe8pmK3fee1|pm۶hZe]{cʖٍgܾ};4kZ2'3`2ʷM3N˶d)[sf[sX)k*%zk3=\j4/)q>*/44nCv%--{w+Wn:Ѻ[1;;(!ߟJḤR)k C@yy9޽{?~AY0<\agԧewMUœ/M@ӧOs}Y兆RXXLUUeee+tؑ^{Vhge4gѢE6FŨT&8)5\ IDAT,,$44T.1j&ѢF+c@Ki\n&֦'h4EII VgC f7֣7 UQkPŦw_p=z bvss289f]v{P592vR2I A $p=H A4-[i3z)9ރĴyW=\S2W}w?gJW11;ͥKIICV@e!66:ƌêUx aӥKir91Gii)2LG ܹwwwZG}w5hh۶-NOgZ`ѢE-l]1͚4i?"YRR}P[[+5m*Ԧ+嚋 `6Y`bKs‡˓3ǂ7xDݛVbƍܿTb;FMM 'Nd…'ƍ%$$Ν;h"x g׮].۷cDzw^JJJ5kӲ_}SNe[ٳg[ɘǽ5un땟^Nf޽ *[oU5&MoB_~|7HXZZ*ߔ6?S4lsǶ]VӶB&\.8S sG̑a̲m[Ήn[=:.]Zw 7H$H A ػwd4 A˖-ϭy_+mvZye-hFh222=zhߟ27;tΝ;i۶͛O8|0ƍ<|̘1ŋ7HwwRDjjӭhHJJkK.߿_(£>\.7py,ZBaB訟1s1aNرcl9V9gu,_i&Lʕ+ٱcGxWpIZDׄٹsU'x7|;3:m5ϬYسg6n|}}YjUrзo_ 9q'Oѣٳg~fNg0mqﭯs衄yt+zFEܵ=RV>6+h03$O'l!tIxY"##E)~1NĐFիڵ#!!???6l l87|vv6C|qvm={N&##Y^E04?_~DGG%*"$#99nݺqUW~UVYYYԠZF233ζC.3gնm:CԱc\̙3L>ٳg3{l @\\=eFaa!z#Gu}EMUnz_G0Ur7ٔ##7?vבp첝=jr=R… V,)^Ǎ'Qa޼y̛7e' ĩluu5gΜ[nr̙Fʜ9sK8fjZ7^2yo$| ]jb1>t/3J A $HO@ܟ0NGF,'Pn~Dv+6UA7\k3ätt|݅c4o:L n{e7FS3軞ܽwެPEϱߗh_MLFݻK zDZ~yz=4[ //ݣϘF{u:?>yxEKR֢hD˞>}Z4i&Mgܹ,YCY-F8}ІAtt|r-z>Cd}o,y3_NF?7RRR(QTL6!Ѳm۸'** ꫯ\gaa!DGGѣ뇿?Ν3Ga](0e0a|gvmvHOOG.7Ho qqq2[T*w:ez=)))Nme{͜g`*!yn4ݦ!oHcKST[Gp&͹XzKmtff& WTTI>}:yyyJ@@[HH:srrFZPP@hh(V`+;vݝ`?n7 \,zY|9/R6k4QTh4;l rrrx\jwԨQ 2˗7ֲlJJ * RIvؽ{7W_}u#QZR5(Әˋj4 mڴqjJe7i??&lWZ9 [CUmmSjC[8ʷ=Q;R^RNn $H A畣hKSh$,%?ؗ{|;n*o8)0u?@J̼Yi]NNΘ3'$ov?LJD3 %7;+ГƌPVofK_C+i|)C|m38`"?^[`A 8"mo}HLLDp-0m4J%#Gw4y6 0 dČ&MbŊۗC"ؼy3Uϝ;Ç2dñK>\sE>s5m;Ze y};IHHk׮\wu.nܹ>}pʬVUUq^IbMBBpDϥZm[eHJJ_~8&**.Ϗ+RILL4Kt҅'N4{̔hg;vL)%Jɷj*}QQ=KJJM oGcǤJڶm 5\#lԻrC-''ZN:ew]322:*댢1))>}Э[)KJJ fh߾C꼂MsiR}-[| ɡg/uglJ: 4 ĸ8233^FFB5DAAy[J03]M7ʕ+lkժU\Z\AVVӇԽe2t( gj Z; õ&|r]X8:wig8؞h&A $H߁?a7Od(qԴlՁ%IM藹S,=bMj"~TċpB뇲Ѽg?c,qeWڊ|P܀f񇶼$gOUNtiB(e'0^hr~wVg%<m|>PǓ;)>0 1 >ѯ%_5Ȼet pMٖGΥ$vȳ0_^n/ksEw oxbW>ڃ2G ,t8W] +V_X}TRڢbo*!ap4էOSbΏ0޾}. SYw,o%תqL%;;7VA[F܇ι2d>kOQTRBII&)?2o3OLNy;5nܹ,.q3 M3xcqJ4dm]_E⋥7ѭûϬˀ83V1jϱ@,>]g8w< N& /M+;ĻOʘnb'0sуuBNDϩj!yAA őļyڱcG·hi&F @LL"lvҥQq4 fb}]3gGDDyEtt4ϟm|Ob4ҥ qqqNj& @=n#FC5jѽoIה٣'//B邼+TP/={A^"IKKsnaa!2cg2ϟGTNUU555AL~Ν;d13Ovv6JF#̷,랟υ jB2[+FJE~~>d:vȂ شi:y$[neƌoIStoff&½Fm˺QLhei>f*BsJ 2Zr9:N]˲k8r/`~T/|3#ndkI-ԜdIמ$$<2n.zZZ>o 2d^=W<-B9wn_ɾ']N\.w:Ύ6nX1gs\2c D_?/9ogGTqͳ>;J:5坜x}2*6ҋ`94T\Ũ 96T Yy* hߏ+x8Â"g7Ha]kQyT1mK]y??fx&:o~$ݲG:y!k}،~WUyu`==z5Og(oŚS(-Íl{f !ݹeJL oĿMO#?{װ;ǎNϗs OΈ$Ɍed`de̗Ga߲eFֽ0R4gԩSW7EEEvcǎN7"""8s 7nt(~zETTVٳDEE{zzr9 4 ڵɓܑ#G'11$7-?EEEr<==)//13ZCwww'//JfŊtMnU9p@7]+ilI}E|vwCB~II  bǎ.̙3i9ߐSN$$$p !?##0jȬ6m?88SN9bbb?g %b2qqq޶'//Oذ-[]])))aD?gMIk4|}}ȩ`@V 7n$00P*Y}TVVkOҥa֑d l嫫9DZ?D."U_u ?O 5Էwl2vsLTŲ;r~Q_]+ʋ\2g)Agz9üwf-$Va(3RqpeUT 0RU\, hǸGb港׵&y1|7{Caa][|ʠCuOLJG.xM^I$>"u`!v#cO5+ŝ7~] EÉ?3>nk$ IDAT5mڦ+**6leشi]̔B:v4IΝ9{,t>>>?nݺѣGg'^mQQQaaa 6 LFLL zK.tn٘g1IHHM6/ 0*_RQWWGhh(z;wгgOrssy3m@``4%v>f1wlCee%nLknv,YByy9 .dϞ=|V >Ǐs]w5L&#$$hJ0`j'O qٳ'ϟ'++K(E;v4d2oz b2qqqVqyyyTUU xʖѱcGkt[YSKMxǍf泓gB<;,eÞznܫ,'>''x+Y1Ăz .Λ)1{m;~q#911ѡLsPTTdE)LQQtjS߬G,0{_Z\\,ĘzB+;n}` ?= l5U|qWNxuUdS۽i©U{duMZ n{5<9{O_+2jC:j),-sNus'r3ǹg[2? ƣu݃I:o Ty;u"袽TEmH$_P{ӏ0*CdQ[=d뉏>tr!c EtVPzHyN>[5ǽ3e d٥\ n_NP5ӝ*:2uT:I{5yutk Kcm(!ޘ9}BCC)++#--@QLI& s/;;={Z˱c6l]'N@V;Kzj曉?s`h4QXXHhh}ILLʏ 33Ν; ut;rqqqV$''3h AWXWWGee%Vd2ﴞjJzzUfYFRQ\\,xO:nݺBDD~)SNj>CgYgee!OmgjhZN:$Pƺ2ȒCfzFK1mꯪBV CѬB!O8Q^[R 6cm-Feg{Si;ŲFc7%s~TKOf]Em-Ig"蘔wJ;@^/ ؽКHtՐf5, [`iԳ\e[QšiwfuhOwF $H Agh&<J60 5c>"eLc}EJy-u*Ė}YM ljj(N[)ծJ]z􅿲v׎+:Vk |g]#1AΗsWV?n?BΘ^ش ޿z3kD޵,ddqOs{foC~7nS-K7gahW_쓆ͷE~>tg7ŻMfLOxSh[k4ۙQ"<8fPEQ"G-+|MgLMMm۶(((?z(;wvJOR3/HVb's1as޶7|Sȏ!##C8>}4*6mڠji{wѣGsw \3L&r􌩩9?**?ɓ'd̙#GFFrA_~O>tE0|A͛ר;wdРAvcrQb|G[̛7ӕ>feeP(.199h"##ДJ%555-gee`v **J$VORR"&Vj={*ԩS93..Ǐ7ތ\Ckm}|{w5^2ዼkgs.\+V%::Zw$ELL=Zͭ~۶XVL&BCC8J/]"##III/ـ刞133={Zwܙ 2k׮B̕>N:+Vzw.[%K4XOmmU^pp0z^8Vdr*r|||8s Ce׮]7Nӌ7No۶-yyy-ZoѠfClddUW\AJJJ3瓗& ɜ`hꐹwpRO(MՏ[FpD{E')QnLɮֳrT333)Д"hW6ŷOW.`՘p.ɥg4l?nnnrܬ>s屹O>2bovll2eýcRfp)X2$`W>c*7Ũ&p/FP]Нb՝Ӛg A a}&2{Jl?\Ut噭_09e#W{q-㕭k]tԝ]W@]>^κ_ PtcwskK @ȔTp^OcuiX~wKW(YX>6\f @toFl:oUtcȺm(mw{?=*ooBzwǷ)o˽2 XWƒaEO+zn\uAGegXvs:thGA#yp1d,j7{yF6=DypqxRM? 3@7Rfl|Y~Yzr=O\SVo)0kLz^ǵPs|5OVԍSNѫW/b;v 3{tfZ޽}1TӫSNz***drss?<<MZ\׮])((6z:ĩSaĈ>|i_|||!<WVVR]sX;c]szN%K K*DGb6[0fזjض}[/41*I[㞥xDzF:?S{!}ISv$4tCUb);[8! FÇիS $H\!jC+\9i;:4O#e2b[>w޻xˮpޯn˚ێfY`zkX'vON8O<^`*a6vNnQM-#TK 't-o۴6}윚I{*d5*, ޏ,ʬeȼ /?-uwR\{R#W[Jgã*>lvMO6=!!W bTDE(DŊ  DJ@  iMOvnv?½ngyƾ}y9|~J,zٔxGPë,^=>v<9Ch 4==,zjrrr+c޵k(J֯_OII:HMM̙3y믿һwoQfdeeaU͛iii!>>ޮeh4CUU$''s!eBFF(JsT\zN:EaaYB]t3/,,6۵ްa3f믿ÇBӱaڵzsNIOOg͚5HR$y78peG"**Jojjn>,U:~8[]gš)+t%iiRTT*jFcS1ۗ|1HƠ-e;^uիhN>@o\_>(9yz)۪⫻n>}r !6:;hi3iyGxD$>}Xt:MMMO{џ;2Lk `3ڣJjtV^0vYLpkZRw!ܟ_Rܤx0xUęhG>X ;O@P2n9)}u&|Kh3jO?p 4gw?Yϙ?gv,3.ܵq̼t> &azf _>[~/3!WcFZ 6˟ҍȁS챕 xm!n3xItpgZS.w=o}'S嚟Afff2|p:a‹ġL:>nMf&2|bH?댻BWׯe>.vY]pO~FYDS<~(u XO+{Cws.8g<‰p.ͷʏ%g `2rڇqlxϰB hn8qd2BlNGHHDEEuzY"н{w/_=cFԩSyIII>>fEE{F3acJ@AA͸ogjHII!''GKMMEӑkuܲ)j5mmmV tmVTTPWWƲܾ}0`r41ٽ{~ F3>ӽ{wlj4???9"LSIJ~~~jilli#qn())!00Tjj*|򅅅6%Z=W4N1-34.DHxcf׊=O\js4H`` veJ" dz{nz%~gYg߾}qww73 2D4S|feu:uuuL>ݪ=z`4)c+]XXRdɄD}}MJNMM 'N`ܸq ȿL6MENEE+WZWlέJ||.Jo|Ƨ|zsjO]) k_⁧~ WtR.iw젿q@v0cvx#\ aYLP"uֆهD"z@^DKwb^Ē%OH/6u7|GkFERǼ .B~6g޸\ܞ s_ ;$y1-J.؇4+\Nz?%71cglYv6fa$X~cFHzq;fgΜ@9pONbL4#G,b}Y_=|yFvv6EEEDFFZ ~cĈbHrss)//NΝ+ʜ:u01>f\PP@DDD:,77~dinn{dee9,k^p!s=olr|rrrP*" 3m6e:&?~8=>*9ҩ`?.x<Vm۷}o>ILL4qwQP(45595aaa0OV IDATۺ挐>u"* òQQQT*s1bj jmFI M| HC0)3+жQy'<<3334iU#^333EZYS܌FʃU&jORPfX___ѓf O[1S=8`E,@TjEbgسgWȴV >Sƪ*^_[1iEdѴG%fs@VD"ݚhhٞ)Axy[gpq#;t\{^K|2H_3[)> װd9Cщ\JJJطok/[ӌ/#;O_#YQhD[_oF]]޾EsJh0DcNCףjj}62z^,#>X#e0R< yB]i#wu\T\D¥`j)AOOjne Icĥ ՃQG/xZ.z9N>k ֻ^xWgo/YVo@ noh+wUDxiSylϧ!p/{CJo\[QI|2sA8cär;.hEψ%f_?V~9/AxZr w:%nIQ(Ğ#4')Q}[QbDȰK17C!3>2}m9{CcѬ%|ggrA2F\G$pIN2 ֭!>|#R9&̾Rm*.rmpx }S-o ]|Q=`  ̘םY3Rš[vp;Ӗ&/e8TXXHxxF8RJ68H}+o*ӊ+:tY~~X~Y=L<٩#6Zee%ZXas믿fĉ4nSeePRR"V RIHH---bL3SSܦLupF!VNNZCCСCգVP*F=+gu])k͵KY#GL1g.鐘HUU5Z=E_AAAF?N~޽{OYYb~TT8a韘HII ^x!=LMM Փɘ1c:3oll$))ӲjsWǵxNPˑ~F: L^47ؗ?Ho8Chj@4MٳaÆagO OOO8yhNvY|9TUU`ltt4"::,$%%ؕLݻW\煶wΡC +++墬T*53֯RH$Vqqq[cdd$'Ovܷorcǎ'x)=#Avi DlsӦM"e"BvvHW__/ރwqG[3:5F`x]w/~n8AnUAo%ςƳs9p`:.\Hdd$:N<`K^ի=zԦQ4?##Hz=Մ,L}}UA[2ҧNBGב|mm8CBBѣieEbJA*|kva׮]V疥={Hݖn+!Cؽ{(#xb&%%1vX֭[p *J ԴlxxH";IIIǜ /xcB>}iٶmIIIhZN:`ݻոQWWp,COqs<<'Ȭ)xJ7ob+M r8Re]ZΉ6ZhPrkuhJh IxW`yFMvm .'ܐ\ѹYQ=xf>˼-cP{gw༏8?Kna[? Sb䤩LMyy̠#Guu5{eʔ)Vr<,ZztH͙3gb!..O5*_ȿQ4\TTEccc􍍍Jmm:-CSS555fr-Pa~F{27K=]OK@S+K9au/v† 9rhDHIIg!J_~*sڤ3."".5`YY=k^SScݣGh"?~ ` (%P(hii13t: MWZmQe{---TTTPVVFYYf#)Z[[E2T?{4:U//N,@ՊF3Lq/*x ^grT*G^*}lْSNHre4vE[(-f̣xFz㯎RF푯xQ". :ĻBڀS45w0䉌qxTzSWB_?%5Z2zqbS G8h+>ic{+uEwe4>sQ[J}Q4qD5?J[رCXw/%pQ(OEcpً<3fEwwl8x/e#>7g %Zc߂3l{EvմC)>B;4UHӬ{L:ӘThnn߮ez>>PZZ*R 2\r%Z4hGRQSSCBB={èT*Q*H%#PkƌrL3TV@4L؋fY4]YY̙3ٲe]p.1[LpE,GgrL+z3u%YbbH稏"BoC6w-zØ4frB (++#&&իW3as_~rxw{PsVmm-WpXRJRv5_ 5+ke p?n&`-Z$FјT*{q멩AR맥nf^½~qݖe|PChyT*QzlhhY!}}vƌ#懆kwAA477?lZ_8\nh3-;o</^l@uu(R7k1niu6WUUf%DZcΝˌ3'gXu:bÃVzHЀ(\. OדOEE(#P) 4O׋^RYV1[YYU[:nK&<==H$"Md\\Ѣ`@.b՗VQ(b-Ӵ{'35 d-?mi?[`0{Lc/: Ũ9f$nx._ ~YAIInHI,W/YY8EČnTyX"}'GSսH 35,[6Mz$J_ã'X H3E7М\St"̓yg5%o&o)Ϳlި8vyZԮ>p]\(ƮNeįʨQKٲ%LMM }.գGqwf2o6mmmf'>>>@ff&)))$''saOF!88XG&&PkP]]B 66S-:<Ze5[etMM W]u?f2tZ]I[R:[֔>///P*+'N0|p&$$EYgcktxzz:cCCQUUECCL2׋{?#wuU[}=Rhv܉D"aĈNgZZ%%%@n֬Yvߧza2D~~>_|1%^-k'_|!Ɛl˩oNTTojni95ZR4>3{=zؕLՑ( ߥ}vjP" }vc 45g45BNNb|S`ICC˖-СCtޝlt: Zc:ΌQ.4FK[[͒b\nKCF{{;ftEj (M|h4h4d2MDV+>!B5AFcDO3^˲oAsh/ϩ_l}oFTG:˘g(L{,>–-|}2NxH殏?$@g 6ofݪW7!F|a %+-l@La9^~qZˋW'xwa v\%>luX1/~Oof|| 7B^ 6nXG.ůo>%oN ;;٥O^W/(-dtl]!cٴy/M Ak~aύӅ]/BL I]'5iS*Ncod5nxuOů!OGDOJwsTAr'̌Fv-*lgͪݴw uSpCy\p៏_YϘMx/k7 h,ۄEݘ:N" yPm}SHȂ3c U|yeDB"Fo;a.)7Üic$r1԰h&3o8Zs"|H &5sn/YKr$uƻ3qѕocɔB=ݐ+{3_iبW.莯TOX} wcAg^d ۲m{7rFj9QDfGv8fluH1vxz|n߭[g׵_Ҟxz289=d{>8c{=8$Kyb[%zg5FuJ< mXė8ӻu;6. k5jr6UF3[2Z]'ńP?aJ5u4x"))}pitQ!66ݻ[{{{ۤȂ8y$z9rD6ꌢ1??.3HIII%^ ]RO9#5h존&m3sUUUh4 Juu5?ÇGP$;}4Ge6I(B(:ֲw^ bj3* ڢ<\{u^YM\ԶbРA⵨4G~WrT%|}}innvHq'zј’і)HIIyXflZ:g(0SSS/,, PT6/<7|MnvAT";[Ԡۺffg\|7xC̷D"!88*`=-UUUۤlkkk qo'xG& oBAAAVBV- $.k-:G{TTǔљљ}\v^bTO^AKO q} IDAT}Dž [\`v.DVpb!F3w _}o I 491@YT22xuzp /_'ܲXkixI@]iƦҶx);P4ұ.?\򴱌N~{4ǩm^XL]xȿ~5/_ 0ŧXY8y:C }c._PpU#}y vr}-(gӾm!#BIr6gS{.8ڏP ̰G`\1j-bݮy'EР=+]qϲuܱIAsYMއx ^GcY=Ed|_r)<cetz'@|Mt;Ζj:{[$\>g>Nڰ;f~\:narjkK.w{:UFc\tp.S?Jc`w>8?~iw&}~g䭙}SҵFǮXHo(k(ۛ+x}iк[FN0( Dڀֺكwxf7 )MYsV"N wzۣsD1AFFFӡk.vMkkkwF~Μ9L0\Riud$%%uAAA>}jJJJɓ[άӾYxݵkU\`ƍ H~m3\Czz9ݵkݻ7hZ:;f%o3vX2ի &#!E/>SBCC 99m۶k.VZٰaU[\p3֭'Ooۛ~^zҥKyXj<ŗϮ-}}>lG0mU*$66V.7roãlD櫷q_8s30Ú*=f ГK/ =ho-}V_;;${7K~چIDYz(OnhZ>_ˀ4K>^:ЩK(j]qϳrk%Ίy{lOcS?omLv8fΛBz]87Ʋ!x}uz=$>Lxj"<0wczPm ^f?5/_L5OJ}-I1Hjy=mZt#ts]IСC9q>yL=;#… 뮻T6==={ӧENN?8}gܸqt:EUV1x`&Ltn/: rqƉIiM:tqr뭷񵵵466vi, M uرٰauuu[ ǎ+9~xz<<n%}Զѣqww'<<܌H*+ʄ[uih4֊lOaaСC[XSPP-b]dd$aaaԂ{!<C%88+7RSS5\cOaPWWVG__8ؿM7gGb=o,F#=k+ꨨ?Ȃ6r\Mz)W;IW5B)r#61P|n<@yݙ5n*u^e'3mjbMZS|U#0(C.0{\fN} 68z?g~3B@SS`9E/˗/禛n]/xN G}DQQG_~9rF3jGKzŋ?smA|Y 3 `SVVfEwy뭷Ͳes*77o(wVZ>̘ _5f[BSDEEQPP@ZZA+zq8h0sPͨAn8z_Jh://^l/BO4gVhZSj,(Hm8w"!=r)))%=cAA"ߜ9sbȑ@_fN'M|GAOkjo,e,cE_( ..SNSÎ)l38;&rĩSwxm(,,f8tFOMMccJkOӕ߲|scAAAu:vA-Y̙3v-˛+ikkcǎ6ˆr  q”Qш%5{W^HR L]rjjjlҎ:d25e 0bLM &P:c"9k%EeL9g} e"kONΖ̞|ǯu\plB \p_ $y;_H@_Kٓ{5yh.z_;ck:~ˑ\ F-M|6|ʈ$Q1Cvs#pb_|>l̘sK24Zq,dUĔna\lYh"•|-2ϣ<Z)?QB02z쏙,8A=z@;#?@sl bݙ'`tTNKgDb`T38n݂m\Swb&:Z *Z0@|ztS˜ùy=Թmplfo;!Z3/y2*'kpeͥ9`R]ވ^e79y1!Cla@z=z%L` kflATk׮sUÆ ;rv7!--G#nPۗ;v,fyyyJAFmR?\A>}XÏUJw0 Y={&zfddsNϟos܊Yf ?#f2AAA~\x"bϞ=ٲe V󤺺T5L V|JE^^Uٴi}3JYr%n 2335k]$ =;wҫWɓ'"99l52\ssU^ccv{-;;[LJd(vkKdҵ&_+ߔ2dF4xqc/mپ錜䀟=cl7"sl_7G &Ld؁ stY=g6+S )gJo+VtlFFHgtJΖmnnGDFFW_&B?eeeT*BBB8qcǎ7g%??qΞLQQhHQT9כ͓P(vc8;hlld֭faDJL&cثS0f@^^or B!^kJ}gI۾};}Qu=8Rf!00O3i>MbA_[Jg8Jjmxx8f W\qaѣiiiTVV2uT.]#<ӧ͕w}ǠAR.ZnF ѣGYb˗/'--͌s[[p!7n`Ӈk8ˣ%Kps]w})//GјT*;vͱ0aH(|w7-zulՀ ۛrssž]ve̞=ToUvҥw^bbb_rpb̙3ű2@VVԨ;#ʼvm ;wD&krzz:23,^~=vm-** /ЦnǏGӡheFImmx:QUUgyNGbb"wy'6.t:q7{ÇRbҥlݺ}ԄVk=\L:ӧh"J%>祖ˑH$w>N'eofFٳg{Xv-}8o-ZDpp0<@zۂp=·L\}ŏ!\ alۢhtfw ]p\p\g—QmL#oIyc+/ کXws+#Z?fY]A$<"P_nKTڲkJdT _of,?BztVW+/BEkr! eLoRHIC!?~(32&JNKH( Sc+'l<`Cw 7ueK)MB^=x0dM ;f F5Yƻ?A٘9:Y@@ɤpz1or'tt#weԻ%[nꆗBBk0Y(Ы0&>\%S"i'2Zt?;$颻t:hd/Yd** " ( Ce8Td ^Y:h 3M~If|>9s=}ޟæ'wpo Cvq#&-xa{Q;As_cIMMsFU](o̴u9&((HɥK bp{{{*++quu|ƌΝ;)++Mޓ:yiSTT2|ĉ:t e3g0a033k8ryyyjuMOOW.D">iժl߾}Ҽysܔrس[[[|"""ӧ29hƤUs|EFFbccS/0ml*eE\۳¨G W=쌯~g~:yaZ f nݺ$--Mi RTGuuu%''GܹsjmE(֠ \ WЍBZ@ϟYf NRRJޮwa55oޜ$IQKv9ΝWa0 ̜9SkQ`Crrrr2h͚5VFCLFF޶FϘ&>Sm4يOϝ.`lR䙔O ųiii:%OvvFTgmTMmU :T4A>a L!4kq43 L5L5\\޴d &` &߇m9s[4Qer6-_AkꡖyUGmA2RG@`"tMʆ5#|uT_q=p%j&t2NLf]B>+s,YÇs:uJY}UWй9::RTTWӉ"))IbQ['xgy%KpU,XP7bdd$nՕ;vm6qb1ji% j^Ei۵kGrrr!,,L W>htՕ'NC)?XMU}r=oRjgҕF3Ll㫾:[dggcee\`o׮-)8{Ȧ JP}h۶-ϟ'**wꥥر#\pU[=% Ɔ֭[kgggP(TzjcccS+ Tʔ-.ܹs̚5ָ:u \f0TJyyζ$##///djg미mD/7nE]hU 9AU =|p|IXYYӛP#f\]ijMG*5x` :{npHN}kKױ7&--:2fGJso{^ e ^ 82B^2/=Vq^5vmC\h؏Kw9j1DpF׏u⵸l8 je^X|WЌD5އ5Ɋ+Z̙ sCtR/K2W'L0kH(Ycjq ogGxZ,3'_/7+q"b=OtagԖv͚5nooW 8PYϝ;wbmm}d'!!AgڬߨR4:u}UqvRKIIݻO\իWqppҥKӧOSO9a|MVXHu}]={6PE?i=cC]cLxawxR[\BBqqq* _$)io:vXkY zF333Pe4;vC F7ߤPX+=#TWpBF}7oݻ7ׯ_W.חzɬY۷o<Ue5j~)Jgp+zFExll,:MI|Z5 .dʔ))Sl2G!ql<ݕ$%%) +ٳ{!:]C gTҥKsr#Y]t]ח610Nniz2Aޯv,ۏѭQx +Df"i;/>7GsKkp<jAOsH 3qr;>WЇqji:PX4L01{ E좘 4K r1ˬk:mijn޼IHHֽ500xi333kU۷oOreǏӫW/N>MJJ ^^^G?T3_^̒8pZ~H$sm|||`ccee߽{RC:6SM\Ⱦ}HHHPRJoNGGGAAAJ+W0o޼ZW zi׮7nՕTzN>f͚ѭ[7ވ͚5c߾}Jc{my* ⪞oѢܸqC.>}:iӦװyxxrlLQMzF7Njusss U?wڥ 0aSlkʬi`` Foz{{#HmM-ns}2D"ڞƅnZBϨ˗3|ZRmP(q(:GhQ63mmTWM&z &` \. e4cCG'2]Y)^f%L:;1p,\`ah_,YFyU@ H3jrOZ5/O~z5e CK9Ӽ'ɹ \r9X5ˏЮp&R*QZELRũQD9AQmH=7/(ҢDD2v~wܤXhLߝq*/Euf#fA r2|\Z6՜ɓrvlv<ޜ™ohb#ׇPg_z-)|3*vLڞFe~ƵdBmKe1U=2Pxu#3z̿\ǥBzʇ "31^!D?Dž|rL{gWAOԬiG¿:_3f.1տh>L٫62) ѫ05 9jו5.piK #&Mƣ=ҥKy(jx vhCVVrA.uG5}cH$UDud*5!ͭK.۷B<<<ݝRn޼ hݺr]Ltt4#++3g`eeRС72`y~^?[ygp;}q! os ߞLGƍ} xN_2*f Җׄ;suL\J(nh`F [eklt~#:#:)’,=ӃYɄy?p?Kzȋ=?P|ʓqo2d Cw~R$>9 gkq^D,Ktxn6GT66c;z g5 YS֘-ٚC3jj7@= -W,@K\W k}4 l?Q7Ӄau>`u cX@s{ƾOr}Mꉩx兗X7w.k~<ʵ zX>:zbνy/9W6St2L`#j Ctlۉ6q|n(04 FZz/܋˳oy3VNXhMu4Ϲ'Kc[KGaa!2 Xu  !!Am?!Eܴ~L=pqqQ['## Ν;ԩS)**"99F>Cv:t(3fƆx:tVn׮]fj_t+8::bff\WM[\\Kk,=z4.H$3ںY6`bE%97,܊)tFCάsqqqDGGQŗddffr%BBBg3gk~~~_"J t裏KC;7O___._ޜdP'2$$33z3lٲwy9AgLLLL'= ƆhZ#_~k֬A,W^iÆȳlmm5l2,._Lk6#GhaCz[PP3Z[[ceebXguc SWkP۬tLV#4eU\L<+p#"l*sPKF`1L%9WT)n"pS!¯Ikw]l!r.l䪒 j1Hq,bvD.!1>^-LPYZo`WWM)>f[GۨW]ή^?bLʜ1o 1P]Y9trcLh:<֎Xbǰ>?yg򢋛Y҆׺b=>aӯL_u56c(}8}f3X5Fj?G؛S5jkl5'A 8:Q|=q𿶂!C *EZ-MbӬ5q˖,~~v' )B-RRo=%v$=>q>͔p:}šԵEx:xT7HKC6++#tǁ* - LsN4߾-DA&'$YVDpf ]߸3j166VIԘTw FOOikxb˖-5¸z*ܸq(n޼ɾ}tgLL #GI&DFFrN8 #++xO^ȪfXYYqQue5y9{,M41ب'6秜CʔTdgDGG\_CT=uQևb!]]]PjK۶m[|}}kmE_h  4JfMns^򢢢WQQ׸8f͚e€PzFmz\cH}PZZВJcfVeV4Hi3jiiR:O6 ڌmtik㻢Ph 3֖qo%;V68I+JHaCK.Q.2b ~"P^PZp\x[t~C;/|K?p[Zʝ_ÒҪx3rUkvuq`#}{qb"qg| ?[Q<]p¦ i]/2˳=QDEEՁgQTYsί{[, /6-}*H8"qmF"E ZFe `Mq͹|l iie<$ T̪s0IRe1sIuJ䀷XquDT斶H Kz+sf#E M+ca}^Lަ!AEqzPj]ss| 9E73?D"l};k)7؍pUZE^x, 7 Pwj}(; 7X)eJ2ɇԤڬWl@`S MG)x^{ ز@ٵtrhȁ[S{s+Iy.1i܅\qXZ>|%ge-t۫2S |yo1# Aap/хwm㗌4:q,N ,_zr 3?rΓ]{>܇l%jLY1!ZI/®WMuh1=({emIgP.kB{rCPC!Gs u[gJXŧX,Fl!liY{^]qغ[W0w,CdP~:I!•dÜ :!C25H3|ҒFo}TdffҤIZVVVbooٳg9u 3* %~[s>z<)85J9(w\oy?Y4#X0 /BS{c6lő/vjw_KwMms/I* 9ETyꁉy}nHZ]FXXF}9^pΟ?_^^^zFWEtt4رctWWW4iBbb+wMzƲ2n߾MDӇ)SBvԼUKMw*1//{d|hk o;r\VF;Ժc&mۦl/]M4#G_.s1}QǍe;ѣtڵ^:tiHLLD&q L&###rj~ŅݻwSVVƄ ܫrvATTeee >vNNNܾ}#Gc ޷o-[Ê=5e,,,P~giii>u k6jIԶۃxFSIW\Zʛ\ R Y.& *N@ BbJ*Qٖ[S/ė+VV`c넙}: Z=| 2Pk8}r"]ҵY^M\"ڽ)cǁIM0 I;`[݆ ϑԿYYgYp)/O:sOWZ%54wȊ" $l6ߺgXN(g4G5}}ogB_^N`CVy, ʒ iRgWj(F{&xo y <ĺT=d(8/s~+bGddYs}WTMW[bxei],qa/ͥ2ʪľtJgT Eώ 6YIiۛJp7~ӿKݵRJĞɪ?xF^R#A[LJb6C|/^V@WY1h=Ӿ7?Y>︾5׳.7-yVHϑSɊq: wZwu7\H&=4EM[˜&?- 5祑/F۸"K#_ ,|f#bX睔b8y'I K4c6h005t2F.r"2ɜ{%cˇ&^r^;T<nygWMg;ۉuħ!ud `P?G;IuuC'TɂJ.Uq#M%ZW z_q6u3v''d~mc6:8>'JcYG9N$Ob1h^j, U>Td]fôݔ캲-߷16܅ָ(ה+ vCkaooϩS9rdYWzm۶iM2P\H$^<%44F^v`Dо}{ A羚 zFmy&mڴit d55d2=w[f &_쎳6Tm3X\;u1U 0xiR@j̄BpM#ZfBU{< HdTi++@d@v&P~}.|"%bbf6s4;wt )FV)Ll; Bm@&@(+ʫy$wcKɗ$m Mdīu{2vtƎVVʈWIʭ@`ݔ/a˘<ɷ }fk{3!YabgD0/eNf%h%fNtwdDoZ}s"Om|4[@>f#p 3zEr4xCW0Z!ƈnü/д ×oH NuEe:9mjA cfva͢My֡1o/=/:l%=Ďy{&f nxtWO7Rmż/_dˏS'ܼѳ;0ݵ3# B[7||:ye29Dt ‘TNzZUBXyaH5I3)K<Yt$i:צBY ?ť"*gMEHe *))B`AÞa?,]9J.{L[I&I#J*&4 tT>HT6@5֎LJ.ptuokk*μ'~v1^>jz凣)H(F\muH.sCbGH(Zjc#3{ 2e_Fđ|Q{iemf ǡ~1k^u0ovd{(C n??{۷ gӉXbOj[Z9Abs|5YS|FS8qF/[A FNYYǎc֭bbbԌf ֫W/#999Zs_8)).]>̣ ml»[qm^ ^"P -0Ǜql6s|_  fU.bkr jh)G[GїfZd0w >7Rhe PJ\\0G Jc9%iq5i%[|-=l(9{k.RaW?fՕwi{/GKN33d Y7s %2cqLy<-p~:;q!?0Oƥ ܄9ҒR*쾲Nͱ/Mbyy٩H /|1KK8SYǛW'4ϺZ8_gl݅OȮÉc~kc9vmu3"q7&?ShA/:YOp:W5audC{0 1 ו訾7V-}j}As +?8'։V3>ukifތkv0<_.M*c_K>W}?yqqUkֺuT?߿H';;Tjt! ٿ3fL;v{j P.2KuQ%ͥjx.]DNU{ptt|S{N fOꝙ,xUՇ2 EVb@"Z̺eq4`1ŐT[[[[YYѶm[UzO*kZOOOnݺEjj@ӦMUn]jﯱٳFڌ JJJprrz ey]tښ3g(۽+++1]:ܳg %RBPHU6!yhWgLW7\.W @rJ]8qv*qeӿX'"?ڷGŭ \,ZepB[~c :s}^F0ߜM[T/(-.Mf) &Hk w jdSNr}ț$}͹bW"CPvk WK0*dM\{ɉ{H,.A&lJDP,nùbgeڴ^딱QCĉL6hŧx\7dQIL}hC^sys"zqhܯZg8&o|q)~꽀?x.¿y`:? .>- ~[ųs5; !ض9]ɠ6,oߑMlYW68W^gy~Ǧyk,9=$|~yB_u ћ __2h_hkeL;S>gErb?I}39TB(>aY~{#mrgiִJ_eq|=^ʘɟ^mՃ 9l֜^4O|$y}_&9 ko6)?=nTȡq Jo( k1mq6[Ǘg~wQOk#ʸ5}n%ؖ^]o"x6݌, cs!%i ޝڙ(E\hbXFcYwPTmWwp3?cZ aH #A4d dgTDŽ 8s g]e aʹo^-|̝;޽{Us=T*/Tڵ_~F09sзozO>!11+W# [[[ }u6$$;qFڵkFɢw x6gY}β2r9bؠ6+-!DW֭?ׯDwZRR?Ȅ ]5szz:єm%<ȻKaa!VcǎDfcdz i3QCο;~)VVVXZZ*5SӬ63McVmk3Bm{iϓM5]ZU$wB ̄Yyr<=d.FlۖM*HɢR^_ @ 0NeH j↹@@`IkHB76q쎙@@FSBҋʔ{п$PVhM]C B(L^Hay9r9VM"2Ok9S!u#L0 MN&ښIhnތ&l'|;Qi#8y3. zxZ 4w͸ϑ8{~`fI(^ڗ"Ih?B;~&U%%w@Nƫi8:-cIգLxqO<ꃢcL +l+6u y0wLk: LaƒsVZUwOcE[Mric?* 5LwdzBVD*bL["::h\/HEE}}aٲexyyOoߞ={V233 $%%EJll,;w&;;Ar9֬Yƍ)//… DGGٳٵk}W_}oooy7*Eh;̙3̝;._lj# ##&牉k׎2nܸIg8l͚5b,--E333[yG3\5@ Ѭi-'ɜ|4w; >G)|p!㴥NكC)GIG Lx*СVf\;>&/`L0ޢzʮ+Tfdl{PM Ţ USTDfke=cPU*&olsyܔ0Ν;rJȶmhڴ)˖- RSN1|>SO=֭[8q"l߾lII BKKJ̇a;W?5D_WR)>>>lٲVZvOPX,&;;y IDAT =uYzS 5zFP`TF43KR6c]<_Vp7.)/%/ܩ(Fꔱ0 &` (O"w^& &2X6G5`*Ù?).im=ݺ-Dy{@d-G'Rnݘ8q"&MG(RTTuR)(U?iHjFGGG$2ݻw}v}Yf̘qʤ4ê]8"섦y@2x899ammmj xzz*4&(=Bab,36(fxvNږ}Ǥ)&聿ILzd &`½uJ֘L?sx~%ddUx@.Ұ=@r{"a]=Eu}ʬmc׳>._;h"222pqqi2ùrZ=gϞMpppSa4ڵktԉ^z1ydyX~gBR>3ںY6`c`htjG4n ֨|zYrS{]ٳFZtKܔ: 1 B5CpVQ>GPVժHSK\K0{ڻi/(L0LxX a= !F " ]<|Ju Nu S{= ۶mgϞZ*+C}q["?3< lO$!B(!tW齃tA:HP?T("HQP"I %HOh u#fل@gr-39w…hт *hW}||3ݻm\&66XjժţGe07ݛ:k׹,+? nCbT-wk;I _C1Z˜צar4ۋ}^+V __\~?}2g7V_D~6>2\PcI Dgc9tL&C.#-͌gg^ffw\HƜӚql@ HtD?\IU?^ȄBKۉ|ˤig$o Hmwq\N\|(۹s Y9+-8HjДEޫ(d0>7cI&¸&AA2w_?~ fq ߕ j;u2Ɩ"sz*7piQu^WZ2%Mak^[/sϙ2Սjg>^o^֌߿ϲ i/}ʗ/ϰaØ9s& Wԩȑ#3:~J%!!!ys4퓻@RxDhD,ܗ%J,"0f(\p=^`0ttk hl2IfNT."@{;k L0Dcʀ<CksU,E!jw풾f/IukO.us<;2;(*;?=KcuZr_EΑbP|XcsŠG߼]'M-zt<>8ct2|*6`|kܶ㏑* NF+bϳtX>xHd%_/M.yWS<ǫ-' 895kf8Kr|r>2h Uc80,Mc(\d[6p.4\|.]:*a08WtǫZH54I]>T- O䣶xhdqAu.fEq˱/Rah]uz">Gb|I nm<G'H ] [1˻/Nix?܆?;ݽ|WW?Zwp&2Ç7 vnŨ~( f99?u9w4@p|c(ZQrhƪ2}b3ʸ$%e[h10 7h<]8t2İf1bv.Ǥ1hk,&1MϲfuKz/*{ 'GPp]>?Ǣ9sKY :djчG_[1jf O殖LȚyoY0uco+Iw1nxoZu^ۭ۠[f:a//ZqE.)^8Gec@@y{{?q*Uzeϳ̵/4}NG֝p/oI>mO373.0wґyr9 "Ӟkz@hRuݳ9=MkN&3gR̓REzѲWJ Bi2eY*qc2,PݫtGaInд»t:Nŋ4nV=)4w1k aٻxBqv[$?M$w.TtF9!O؋q=uE$]^upŻvgZxr{9"os-ozSAY;G屓SKk*{"W8S8ٞ$EZӽyV{9}V ͕<LU/z$?.ʝh2;l$HgrgN|Jw$jC.*СGom$sbDUJ(_,aތ8F.E%L[5FKrHJyoqoi=kz~ #7.'3MW~.>cq(]#'P]8.ϑamD\V93UVyLeoh2Ky22 ro~{fči I f̻^HytSZ+;NvFf,YwLIz~|/F}zٌzjͶib#C|0rO(w7]Uuc'gqkkc%+Ka{DFT,əXRF0֞@] |g,F8X_WQT7e2:Pb O=m ^Ŝn}.Nː}(r*<9~@yv -ay\鲙{Q6 ktDVv`vNN!wڎa Dh3?lYM7H.6s<(ݦQ>0Jo bL _ίO Zߧ66e2>eZR'V4Re3sxnw YE$H_QQli$#\YΖ +9X.()Gs \ EtM.OIxb E)`dA]nSQ\H9KM |U +t/3v4E0rO>{?ϰ#q'}HSEv1ybMJΥr }+;dzDft  AD\)ڠ*qUnvMzn} 3f Q\9znbt͞Źf7ќX}6ɝ<)q,|^)pI'3m&Skp)Ⓐ%WM${n%?GOs].nIE'NIFFliy v}{kmQQSzQFm9Z7w![$V}܁v5I[~GW.%k1u?O-.|ϲ{X0']m\ rHȩ mےLwP)*\Q5X+ٔЎjT{ϙ宴x< `ߍ!H7иTgb9p06)ܔopc,T|g^']s+=M?BjT< eqmaZ܃};SҕnX #`]Z=0*J ]%СNC&,#dŌ(s\薓9 qmt\]Uys# “HIu(T3Ookclu !©"tsFTt~1u~ ?7өu+Z̐BY^-/μ+= B ҥK/y2T *U},=p6L'~e=+>{ʎ"F@ 4(\BQO UQJxz29`[>cHA)+S+n ıUru1̸Bv6EYCx04EYk3{;%y O2U!:_ă8uEݑQB䁇k>I2Ӌ/x^r+mDPPeR ' ;3ƶNIRh"z@2a['c3CrJxp( 3fS΅裏1 *.*AcK8ҕO dс:&p:̙Iul/bDZY5-Mkᙾ/S9h+Eݟ5܊qP>GyKZlkG6[3eYk'^iO^ev`֌R6i\ƻ4N7ג9~Z!Md9N)kΪ 8JqDY Cr*cz(aDCuߌC `z,8Q[44s+GquZx_e+1yVJUZ$'/µ$,Ϥ|WTK ,xw~tP81W=,cǴ<Ҍ @$3dHH, _X\[AN5 Gqf"r[QXS\}vOj$ 9^>}s3ˌ0 o&ƲPF&K0  YƆ0s4si"qh&(fnJOw#I "Ye$$$-舣hFDt&eE!ldRi7dYaW?}.c^nJ J8s N*iANB6{M ܜNq+2֓ Mưx/,нe?QMi2/ycFwE:V?KyP:t6&f f]/ ԬpLӲT  ƿQRE< %qLsS"}]]΂<&36I+?wHǙ+XŖ<̒\R1:mi(6AM0 GULZJIypj3+.eLQD5]ř_C~ \.mb(căK9Wձ1SfullJ9x&;t IDATfJ[l* bw-MYOٝ)0|jVB9ΝL5՜1W{uf8:yiJ)RQ&e*$O%@ I0 ؇RZ__Ň+iֽA%#5%49뚥Ɗ!>5?oLߍ{(㘡 0VQNMQ*rCI -dݝd[#No06SdȦh|tO&d'|ЋM֋b߿T,Zxc?'tiw߶PmXil^FGJnY~}kyWzyŋ9r5:j< BW`A L(^N˲9o/SjP3͚:MM.0 YvfHH$G2$3JvILRV%pT* +eJ䔹RXJq0:InP%I+PFeqw/2a?2dDMY8>>Fkz&M_oTϷT=dYꓣt!"y>c-0jeY/Td~Ti=3]J2 G&q)EaZBFf$g yzFږʬ?24mf͟sٺ43}wpo6|kڛBO8_ r BgծL+h̪- @C.OY!f}Ok|e g'55^w&AH6z=xlp%<rs)A^]Y L'.n63j`g_}-f:o%[|ețw%ys춒}F@5XMo.o2J{/lC>ùdMmao|䀼«E2r+$1AaZޔ}N&7rZVh4y0tQ<ʕ/1E:@;5?L%ʭ|}'*9 V1'Wcˀ"xeX_tP"S9J,è%9r7b= U6o-֖̏-Qq^HLΖ,{f4+Ix [ ܙxRfw眩>5.`M8FS/֭ }^w^ݻ7O6j(2?K޼s^u|h '882~ } r|9W@ ^ JF8 ESdLbjH35Y]`sZliGab,|rj׮rkfrNJ٦$\å=d^T*íU\WAI?nʍ2O*mwHw>LCɅE/sX(SdГ_KRÿ5^2}d dp*.&d\Q_KuIF[|KE5{}(xi[w8]?x)Os&=b ] "x !*@V&ibyXF!Oۧd3ՊyFBg|>zJ7mǏd0}Ϙ7mCW%*Y3zlhĜ `IF[2YJS>J$̚LWW\jA`~$%EpZdF3ME*EIGԤ͌1ak88ʌ ĻU~z{ ;⍼.+vǙ8y{mi+kE$iJ̅3` 7toӁ2֡?3Rl4utG l.]ѳ[3JyRo|~pAK,ZFz!C:.@S]~]P|yo\\\Dc@%77#P3ˮƀ&fgB9<:9wem洆\:z6 (ةkFLc&a3 e\ JL%ʺ88<;~3铣3:UꉾSr; !K^@ pcu"MX$ 0fot:3~C܊!qw8J~ˮy֚pa=PBy~r5jᙒۼ=/uF>Ϣl\/tDtXP,sY^ E.T*Q*{)J̅Q3,sn,sLP ZT)< YmHMI^f@ +G_|T?DJ 1fǜx:/-z[z޽!r}n򚆏{yCݽ( }*T^ 4lֱ'sY@ ^mt:ZBAJJJGb0ӽ1f.9Xnό&0 FXA @J˺T{CcK!vwe<5YcwdhF;TnҢL"Wk?ܿ_4@K jH,t:>:#2BR,]-3Nc1L&˸^qɐGBE#rd˿[D#䖄3Lm0 ٷanyQ 4cϳtX>xHd%_/M.ΧxW[Nу"Sz^h*7a J~eڬDPvDo"Ux% ^:H8ɤ5~6Qt@/pp\ &\kO!\Yф3#dxbE$:S,+ABأLo== vL-Ͷ>-})9#.6E3xjil_9̓'$?׶NU|ĤmƼ+@B34=~cE݂xߥܰ~^g^!k^ذyfїA_WųE,:zCO85< ^wPDeZ#Q$clP-.AMy# MFZs1{>A݀b|4BK VK(Sf!y} Qz;&oF!}c=~Z0t<}|IŨ_6e2:Pb O=m ^Ŝn}.Nː}(bjՅUS6kީƒǺT:aqݢ`ddL5< ֮I)N@1,rmVK1j-ZHoěl[9{q6 `grq 7E+x>$ʡ˸92 *Gv} r*'&aKJ 2֛QK0-W *np5r#6sŊ )=DDa[6QQ e˩?nGi~j$?DlǃgWikGM~Q3?#\7qy$Bl^m cڻd[Y"J_ : /#^fs@3w{w;y{Y:L0#-C2VI"Yg4/|&Ny!TU>ҧ6N٤/in>I!u39:2Hö]:6?eږ*[|oc@aԇ]1}E︅XY܌e955pZԔ~|qNNˇҥZ8mT;ҟdr1DPQjJ(u2`Vg 0pq켘Ԙ+,׌{REƋ.Ͻmi~B9߫u]~ <4%;~f6ұsR< ŨDXɹ= tڨ߈5?=ڮx{ F(D)(ɶ- Xz >@ {;`$o-?ţ+YՒ5Fw:\ABN]h=ml%@(SI&̀Y>: wTub`]uXh3IpO/** ʞ !Pl9dOӏдg#&lõ?q99ivr+A? vH,MlkçP|PGmn@ @ϙRF1\>SY3+f|]gRW`E+=to,`ODҐ!; 4udI'9RHG*N.à}wl湤,K%8\~L%gJNU@hvPyPҷ ]ਐtsɓTÄ!chS $X׎e-cٻ_1ZdTZ2MmY80h$c'ƉnёjR4O';NKhKhHNq$MĈ'1Is̛'gH G7QF1Z̤E_ ©0Rzp:㐜 iPY#2ïTf45S7!#Z'b@ëDRNzv9u/7l:MJ)zrQX~iҭQIN^>˅kI9BDD8PqAA)SHmӉ‰NO'j;%I˄Eoyl(:QAxۤ GgK}R9ΠtGbthdxV֔JwӅ]םTͩzTT]|M2E@Yd?Jyۤ,a]kɴ%9#¬ϲ;BI:#tF~Zxk?g;RKƗLu hӦh@ 3!ɐ(  J\nq1p^hمaơ M8fW0 j}̾3Rd~hts)bR$i+ ɐ[*Yt-Qz6lO{싈3#ƹ. 8 +򔴉'F_R=7#5B."J\]SxVsH7U]Z/HFiH$oG `ĈT?'wu =ؒ-^~Nor<.l$?HJ]3>O.ݏG'鉍wTt;?Y[Wis'i[8VL5ƫ#"Z G)šxz\;|rpMdȽрdz:Gq.,W!a@H )Ql7[.G#oZzF9d8G{ D==#n~^e+~m]z w:RGUfɕ_G}ŷ,^Oж EW>d+=JSˍHC-)*aPI HHJRN}t/i- e iIk7rӗyWvqǞ4R9>%ɀNo1??w3}HɖcDp=,6HH !?S[o9yœYKs1wcG w U<7݊{@x)k}a0@ 'yweV$Iz1cx/ rK36zr:WL22f&ɛU.%prY|˵pcgUxy%{DrMBl'8:afdI] &ŜH) I23*vxq$32qr 6 GbkPۣQxnr͌q˽^6j$? ,ٕbp6X9KX0}3]M“%`h֕ru)̸Bv6EYCU%TNxxft-Cu$ ףq(lݢ@ 7EN_2dH_Ǵ-U{C*9gWП7>v>9ٔh(l@y{PU ZR;SF΅aMK9HDw9Hl!eH2hH&5.D 5jd+*{0~OZ>hܨbӗQk4ʣ*]&-ˤ<8K2(̯}͡[l* fpẌ }.x\ZWKWLJׁ#Ş+ak(>)m},TS͙LZH[r6 0OޝND|꯶BMBp\@W65tI{''9$SVɑɖ}sC,}{k~D]̙QNq9-haeGn({…D `Vt*HXϦeE IDATk:6goҞ j :U۸U0%23Ψ$@S[DX^_#Z[9a V)ia}K̔ظ|c"~iI!J?ȚC[>^} J4/U³jW&kO8Y㲦-G4V!S"klYB=(mkK龻>i8ίϷ%>TNneRroZݽՃ*+ȱKnM(J@oo3 $#.o>d3MSoĜqJ uje4'K m&1SK%f WV4<7vq:/_޻Ûm 2S@ ֊t via0j >{7=zd5yͤtj݊;3dF_k_D8@n,3=L=Ќ,?fQb׌tLtLkƯZ-:.\iܹ-[ZHGaa&˩]vc%(2"T-eIN^Z7Y&\+t7Wr>PғmQmw柸d3 R3Wpި,}spB/ֺ_+=-d(S`F;5(pG}{B<98/^{oVd '罏C g`o3#PE??0avRRaz)VVu1OU{ESzK` cۇCKŻG:Q=&KyjЊ#SNk{OL򩉿ޝŦ33aIZ:mjjeC)U_j/t$CrweEVՈȁy摛Zn-A vx sx.`=t;.^o)^5Y?:LP  i37HrT+k9^IŲQOOIKkH+"SQkSWQQL֔fc$9ň=¤ Ev9|"HdMFEbdLڞlA|$}/Y:Ü%8wQ]~JH$B HS&HPlO,(`C" (JP:*]:Im7[Ɇf7Yj ̛gܝzܹs wL?R@ KjtS._2 puIYplcA~_AUpC>[c\\.GPP(P*(b\1śQ9 w#3Eh/fAr $@~C$n(,dX$%nSI;Oi&C!5#,p!KYh!9=jA(S/b@B] .fMyK^WNd@0'*ͬ3J\.w4su#e[kJdrEFr*(CT Tʻlf=AtgIGLވ&~d{?B>+WVD* ٩G_~'!RWr-'Ɯ Z xm6*S iVqF܏lKL(=ތg&s(4x!;F@ @ 0F./?ǀ; '̠\] =EOf}#ǐ6u:}̼L+|tM0Ԏ:z`dzlOFEQ*\B3mP J7* ''kI³+l g_*[X *iNdԡI\:;Kװ>=Wb-l=YC I^ $1aBf@ dmgP]s)g}|bD{6 ;G֠}*J+%qPhWї̇=Sz߲i3q7o X@ә9Hfo;k֓Y 5xM l:jslQ)BJCD)[UP~0qh}ڙfW {L<%r=PRVp M{wvyG3X?@ *W/χW`n]Mo<̷&=1ǢIX.!5OtŗϯжF[Xs&K{oG%*H$܆זAw#w2.`xp%[ c\r1!R*V$G~$R²$'>Q.f:x<9 u{zb.u.)lh4b41 .''^/zm0;gZU&lo2lou,v Jˢ.)@ JEYZ< h_yO gD&D s';gSoظ 4=cbʅ\#]k#iqihP?hx R6ߟfcT$(i0C=E_ Z1z^*7'oe^ނAg3pgnc1afO1Ȝ Eo9~:穑g]8*b:x "BYD>yܝep<)tccСI([>d}h5sr^ +Y=`O* nϾKR{?`@ ;#哽⩨l8쌲Z^f0(.bU5lؐFѨQ#bbbկaÆE(deLὉ8}> 紸ܗZ[SW~Gd:9]"r L^8%63cLjN'+7<10f/,ݾ!ygZ^,Y>W:fatɢ|U1?̛',gXXy^tKdߣNƨƆQf ß^.7&dNElUAfȎ%X4,sŶ~uN_vsz2>@yv3XN\\/Ų-x!&HJ<:{e9q;'ͪXvXݹz8K̆slcyL 5;GH6x2^MP@C^=&/im;yo9yzK\T8*nt̹0uYZX&2*eĹ%$^;#yaȻ5scs,l)^+2`$W侙n6aɝ,g+@ if[܀6oIǹ 'm76!j$g='b'%&ݑ̺Кo6u%h"yW2~DI@0u.<ZO3?Pƴ8-xX %-t# WQy|>]Y^>VW,+\;Չ4#Ptۏ-6$z9YՁ+jq>70YΫh*u}g;iU&A6Ԋ'^PQ|u~52{#6"]^9o6ǿ,<3'Z1` Յ2t4U5Ώ@PdEjLSl mj|t;~tܥbvf'v>Yރ">bֺx %s֫*ڣ2zf.H9/3TQ$ub@ (Ed|3&ŵQ~ierf 2j@ pdʟHmf6s= v8C0W&Mш0ky hO] %C*qzvGdg&tT K)]gSRy5{EP UgV C2?[M:rrt-Xc70&#ÿ V+2o*V"]\ Qćy/Й oE3\܀փƴǙٳNe6#|jHJ/S;O )\ ʀԩW7GN%wiG8EV_.U˨`!GQ{(ɹ G׊v$8s@Kc;r Y A܀Sǽ2*fWK@~(Q(+l$@  T#e#u,*gf]Y~$ BFݰe"Ʋ q 7pʝHTn(.,PA}PN2Ye2Y&!HV}#ƆթX.w\T  $ gxk(/ v2I<\jaxm pBOU }VE|dL)_F {Jzܟw{~fk(Jo* =z6'A5'R#9łqIAl|ʠ*0BZz,Cǹm~֑$ &/c;d]L JnFUu+ߧ dsꟋWZ9Oƽ-8=U~}j)B q<}`00ȊY}DyT,9$^MZ2* R/hN0wKޱ%C.;y<M_{+ui'6d\.#xzhV^F0k ɟv3>V.ͬBJU:?;扚.(r[Xϧ1WG*`(nF~SC>q.n/}7DXJ/S\>UPd+9H 5ԍ:]Y`gmx#GAcxF_u.sL̔ovGadKh2s ddQL\^UtoD(*sQyg[\Y,]PH?E-Z7@'Ǎ4.]e冟?25i`}ŭx2e5dq"1%K~T1>z($ɇ )M4@葴dW23VwIB}0^&ѣGӮ];ڵkG۶m=z4r7(4xj_ه?8bЕi<@cd:u:_#c8j?3vܑƄI}TD4^wu27OYH btM¼Tn6xڪ+Nq ̃IYjH d $]"W&e)B%n8͟0~'kZ͒_|x=L}g(CCV2j¯H3b1eOV+fĬơd~Lbd3e%VZPb_R Bz|etO95 o΄^1VĊz_Y俌F9aϮ'%Ξ9Ù3F5^{ ]U,hgf3 +ۣ!m»t kAu} * 4=IX"%:ZBo$/wa|4**~}Wy~^W~?O|7M (2^xR5Yu*+ߢIn@S?px,j1V-rW]17!PEaVS^2_C]|5{N.+f}wzSXgs@ MfƖ=ٳmXU~۱={v+Qh2i8Ff~%u23A*kU.Wr7k ET*QT(JJ% @\V|E JY3ƲeTKdqOeK.7@htN]1q$?*k,[|=5T L[6 TDrHZVɊ_BW^ ]RbW)\r93f`ƍnƌ{R9xCKs*F iI\^?p:,A^!fӳTqw4{䆫#xv!xŚ:[u磩?{ U!S!dMmƭYJKN3}rb=`/9xyc s,{+}0 JsMJ 9Wۏo{)iߎDh߱&/DճtaO 콼?| `I^Ǟ)Բ1ͺObݹcJ6i@!s8mL\+wlAfX,=a]ȶűT{6^% _DOЮMM4 푭YI:csduvg3g20L뢜`w& ٌl.5ngksN6Ҿ}{hǎ  u#kg0?)^ily~?eZ 0nZ"ղfpg[yi 4J3i'o[~¼>ӧs3sd2-4+:xFabK7z0wl4X Mz›1g`)sWAU ~{h!'Ix(2 Vx.Y2pۆۺ[yq^z~=6a AOiOֿ~ C*($tx,o/Nա@;{]#|2T'4 nk2uT4 * ZJ*͜uV\^+yXGfA I"d>drDK9PM_du&)"͹+h wWXW?7lB::ē"Rp$Y ۴3FLg9 dO=N@P؟VbFI^(b4,. fxoקk@;s:N?oi4o· Mbʐy%C)'>c> @PH>۾^ ootJNGH:Bڱty2p |C΅<+Z70g_) E.寨Mc{_lIy 37\Lfwaۜf+J.]havi_B,(dnid2 $kGɴ~fВr:/\ @YMByԵ1.ݐǡYRɶYQrxdfc1!H?_.$8QPI__O'CY7, MFsY%F:}*e eΉcosJM&%dzZ-"tg 1 rdqhlAj+(2}SM΂c;J kfճCӇ=) zFr5펄Rb4c6PUʗ RFVt^JS&z3J\_1: b3 ?;c׉,vY,+*r! ۧŊP J&sH!!H&yHrd[@BBn\@7-W9|*${ ɐ_d`V)lRXv+F2҉KMZ@މ0]xPnT:ul `Ao!9oz>GLPb/) (rL&Sn//_;v\rǺge]Nj#p8]- }Hqܐ/>coL~/ "5aüs&:uĹ\l1~ ksJ xqo%g_b8Bх|{F#],:T 㣏u5u;)J[}Ju>@pYe)ǒ)["6V:)f{NY2=+Ҩ3ԯao-\S\%63N!j,ZFVP(`L!fr5(\'f]N3Iʻ]Hr4 bv.+Xڣ">24 I&GF[Fg$&AAAyY11y9"dmh[@)>&/aer}͓ϒW?xhTR3rC@TIDD>BL\.G@ J;F./?ǀ; '̠\] =EOf}#ǐ6u:}̼L+|tM0z~z`dzlOނcJ[} PDxO &|:5w?E, LrB۾Q #rI/bH2[1OhqL}q nٌhDP`20s8S9™2̑yǢf;n1i+fAr $@ncѺ'YL’I^ER]0ļѬ$f93]ؕ&^~.LKV9$gP;eE HL)/ɋ݉ ĕ8lO}TՐOYg}XH%5dAUg+"Fh @ d}|bn33'59BvShvAUSvaDkJY8<҇Y;{nG~ T~aU[V>w,$C3Zx川j5ɬ?ʚ6ML}96?i!j=ԾC.@poqotbN77D kGF2ŔFݱLXͅnÈw5wXܐ%]K=ukm"IRiFGdΜ9R9 sd2Ҷ9~.fRޕdo 5kp4 =KNN:ZeFd6 Ü> f=z>wY ٩G_~'!RWr-'l'.S%qvIp~!>(%3}W"6#'J(G97#=dEA୅eycWCa/W;0,,!UPޟr! Cћyy@BNAɡ@0QƄGNNrN.f8R_0hƬճCۇY ؗI~jtH~1M*එr EF\E&ٝf*t~L&J3A\ysq- =C^x~ZM}ya6y-d]ױ1iNdԡI\:;KNO_\ kJnaeIL؆)G@ YL؇(U{naү_7]8 d,W4~AQ>c{Oqmc+sAm=z2?_H?@pbl[;=US8[jY:0a'RNnv'rJUE  (ٌlF&2th;0.2GXkXtsV_vA| ĭ@oq fv@ SrSrUю̾v =W ysM42TQt$Aa d,O5KPj?=Z7$Yr΍y\/ݧjQMBRS3ii{ijgh8^6My jQk8ۮ9˼UY?s\dFP9`g6Dx+x5=yyWdhC""i|g5z.^PQvI6M*Ƣ!Nv^i }-UHjyg}||[[gm%߆tp0'@ h4b0jhZt:]6ܚ6YqËo_xRP"'^ pH@p'Bx-s~ /Oa}"gXD}N+Lԋ%3-ʽsyu@/FT;Ҷ<7WaOb>[/s`(r9Uß}nLГEj/i87/W_ӝg~Z@,9Ƿ( 3ߢj}BXey& uecnjIfvhJ8EG6; @ V*lOutmu&#ۖ0s6$B\Q G~*W x0Xp~ΠśZP_; BHpO.]`+и\6Τcn PU78-U.67ϥi|m#I~ImɌ$Y0x NK_mfK}9q) K.Œ])+1H}7noZm?6c0xAfT\_dN`NB};38{,ot'@ ™9FpG5l-:G>)P|>C A-d^Λ]bZU=Ÿ_Nmw1~|lAVcu݁_maS'" 5[2],PDYX<2jR1.|dt8%#MY͊U @n=1a\˚T҄>Sv5z=if1HoI,`XJuIrN+ZCQ~D)rMҼ[Eq0$O^4#f5}$IWYz,d['ҹdVQ3ǒoĵqL^u#;+K%J@#X>~S&nL߾TwRug֖o:#?Mw$LYIdUV, 9Ys:.-Cn*s'@ _N3hX0͘L&fsl,Ug->O|-K?h,3 i&xpѠf7,g,sdC\w|I^ $z7p( YP$;#W;+1WjCMzrMI17ͣVcFw; T.p>f.aS貵C>Zgo kGD@Ph~v䷬h؋>;(4g_ehOF)ѱJ*{J3wJ;:I͸5KяxA}IStV5&@s߼Q`«̿2*1pRojG=ʖJa0wPNJ|?9wue(˨K~{n;V4{ [w$wez Rꑔߊ}Q&p}wLj5O 8̙3=SN?~\̉@οvk9\9cAs\3d2w9>_IMfi߾ c,FH͛GӦM!Ϻ5iU NI<9Fe#!( Edԯ r4SגҸc6\%vQ4^ Kh%_Tz}ibhU YY{(o!IBכ6GxZ?V2;GwmNI?ϡi- 4xOlޔW矷9gbc1v~9ޣE|;Zy]G:nϿ3}d2Ӳ6ve?_'`I1+AǛ-_B=gV>Șə=AJ~jvMd>Cw5ol{ jfӨHYTu0efJClpоύIMɜ־; JO}X ^ѩS'4h]v-SNEѠVQTT*rSSELΔe"Ufx_PBil*wACV]bWFb6ƕdH-דL_TēP>E H2)7?.v$YzMd&3]F<`r_%j ~LoI=3u@ y|6 |k<fs'\^LU_N2en:ݲeݻ=)^+tnxmvt'vҋ:?u.u~0^[ӌVg{9'*j~vp42fb]XnBiT#$D*{O z,r [EphgTHssZga$$$,`9R U"ɸ2/m/S>M(l\r|qΎU=]bV`76?5T>S, ( IDAT*ߌiez>[$nW@ @ΤUF@󥠟2 A|4#^eiH?OR,_NXy9}hLl>$UHFb8 O>6ZzL޶*)>(f@ @ n7VAfWiFWdwǾL4pI$$re>d̀,rȑ$9&AvǮ ('+!j-7HM(KJKjWW%9r4 {d~M@xcYLD'Wϓ.a;%&+R+̛sgc6̫M~G(ٽ݌7~cF>Y`9m 37=Ջ1 a7|jaTA]8fюHw=O@v-Z(4՜_'Ux,|3|j8/פMA ZE?8W <*] TX4<ҡLj42#KAUu)'Bf6I.I!㟺s95dDT;m  |6qlRM{1lZ ~2^ь#=G+UQ۩Q"yalOgWM'T0{eygwc ?u6"o?YF\ >C.}ʩE @ \~-[잕uJJ{Dߕ|{]71/rOI3iZ-999ɤrzVN(9oVdZ]NsI֒~Sj4 xxxၗx{{UYǧs닯o~Va䱗ӳ;%N3$$IL#YrКl#ɑI S;0o  r4gcDBN.ks JNŠ<ɴWVKf f*&/5UPjh!#tD᝸ _څ=;urT"I!˿1LCDP$JB8 UTŔUbޘx?@Q1^ ]7;+ ^u0k܏,1G*Bj:|`7 ^]K[{(t:N C cǎN֬YpQL2|}+XӔ9GM@@#Gmyľ}׹~N}x ʖ-ˤIzYÆ C?Rwy777{M卵Æ VZwFO?T z\Cl6PV+ٞsf#ӈvIN3n|54Osdɻ.o$n hsٙ,+Kj]Pŷ+T9 u~Xgg+IvdjPP^Fm=kL^o52Ynd $(ﶏKX_).CӨXdrdmTyvXO@F.5#L6AH-Wz&.Ñ r8=ǒyYΗnu>gȇw%ry{^:E;ԒSP1vG>l9{/$e[xOY61y[UыsPߒl7gi dQInw### .oqבݻy+בN_7lذ0 L͙3gu6Ll޼Rl.)))NwEO\7#dbӦMv,ڣGN[yNzg.:of3& јoљR|dcY}q&5z],NNDpzY^XnDd7sˑPX2HJܼ(ɑl:̒ȹ, nBa/Le6}+:۲!9=jA(S/b@B] .fMyK^WNd@0'ak.'uYJCl?K%LYeՙg<;M x`u|!#Gx#|6cG (;REL^ 3ٳh}LRAN&vΦ6߰qI2h@{w(6c 1op[_Sgo)[ 03^]Rw><.ޗUY-[vӋZֽNw+u{ꗑ0u?hPh4 _)))t[-^uĭۙ?nM3iϜ9CDD]]'''R^(eϮ*͊y׮]:5i(ts:Jwk?zHTmuǚ2h9Wdi(hbRP"8K%L*.!ahDW{t$yGUt-}lzB)QEPbAEi*( **Eyi( '("FM&~lvlvͦ>>̝sf޹swmʗkU6NҢ)@ߙYje04- \#GDp$ܭd4jMPZzIEdȌF0S/6G2ߖB!L2_şㅑ v8?~̌z %# O0<. g^  @@0QE grDT&%](KY^OQQmVV^u]+8ΜS;|εq:,y9Zr6Ѿ= :ÓՔJ¹seM业HO1r/ ii?VJ#^?K\P"|%/嚹R_A[P\ǎ6ErCC<ܺ @@@'d&AŤ&$S`ꄷpo @ՂA6Hw&t ã:N+:`.υߍ&izFn˖-6sd1:*6%"ՑvGOw5TXq*GŚ^ޜy,iŲe5^ tz41oMtMy-p'}t:aS֡C3gEEE|gnSPPgVСC)Egt$|||P5缼9n_5&V|QUUjݥKkϛ7ofɒ%ܹ=z0{27<:[lƍ4mԥ>Wt;Z,@XX5VVnUfaǎ,Z///<==@&9bejZE;r'[( -y0w24y糈g~mV{oUKGM\uo44/U֢%(bdcTq5\KGxm .āncj;K.FHݎ:kt׸鮼ڬW}sN .Zw;x=#.zNTo+JĪuڴiÞ={J9E(VE_MXX(ve]\iV[#FuY]z۷0~7܎( //X|[G+*E3>uvU}I9ٗq G6vm8iOG4P(Ҭ:ǶmۄH3{caρUL9ʌn@;^79y?^O8rҏ~^{{p%6.'NnkEX轼1[__ ("5lM49.ggPXqH31wgY4u䝙zpQx\ 5zĞ>7y?A}3r[f|^)#}TEΝl_ 6лwZ[-*Sw޽9׳*sxb\©S|=JJ2cb_QZRP(\._մzVTuQbcc̑"&zW̢7S^X9=B8>IC6Z1ܣ"ͪuywŋkM4aӦMk?I&Y,W$>>"6ζcR݉4;uj6l蚉I45i兗xxxX*o3X'r;m#'q!L@`oA"!k%R2KCsU/_@F>9s:ǚz%Mkbnza_'GBޏwa$/a |#Gf֗Ç?}@WP\־Isyc#k:__:]VGR/p6a ƷnT^X8rI;2ve5m=20wp+XiG:vWO[GUM2WEwfѺ7FAK4Tf(wqpbII9Ty3"$\t)SPXXsdT*m۶uؑTnܸAttK(Jjdgg댪KTcP(jooorrr e0=͜EA:0okzG:lK(Wy7}_E-}/MbM HZq0},~7m#U/&|JM{_c\t3Tyw]R^ ~lg|2qCЫKW5%7q^ԙ7e P}ȃm{1 S[iߪx:L;ڐŞw[DGҲ8>ڗ:v IL^C;Ѵ~}tM)4(8ӊq3tg_N {cՊM0ja3n4i]~yFZcx4͹]ߩi0#60nrn"n) =w~#d|^M6f| 0G,ޖ7mY < +p >|*204n޼iuhv޽{ך,kqTn޽=2w^sX;zꈲmj۱cmHgiC%LI̯@- ȯ,?\Cbaڔͼ|_SB| ͨ\hY?:$p>5R"|q}ؽ{z[Q4x9_}HOgu5kfbڴiƬ&l2x{{STTD]e06.RpWl˳f$i9ZdrO@v+'[9ԭү!DF7]DIW.Iq\'_w-'U]ގ`04g?KWQ}۟;|, ,(/7hh<'mX7"^|˘v}gS{kygwan{پyͽA0?־K z$狮{4%jL ;g{IO<6o,Y݂O듿b95PpvROq|g99&O5iO}2sD{G$392h9~Ey >l7 sc:OnMсwy4tOOcOg}6yrȓ ߇  Ոn(;m(*ҥ Ge.T*A,T*uL]=~mF#7m۶7ZFPpeիW.z EbTZ3PǦj3a& z=Pql5o3iYzǏSNqq1111:<_Sdیζ-s? `rsi4&PIHp<ӷG ^xD8_xwcb}O ZuQ4.H<8u:N!M mO{0S.J3U;P1׷ʰye|RӤ"ŋ{r{(} Dݾ:l4e[՞>|8^@)w-֟cȍOǣ_ॎxǶ# qƀ$?M0/}1bAN'r=Te^AlC*@$x`Pl>ҝ ]ģIpl\<'%@E IDAT×x{玲/ƛ2.e,n˲gq FA$%o^'88|v|![2\KVvh '^JZl⍮ |v9Pz2/JX\?ۺ47=X`hkDŽ=cOSyh^"j(+qe2eEbD& 7ϔ_^ۈ˖_dn9M> snwئN(4qD''س% Qci,#MYW߱7$dh%OJ 8"L@%!/o>R3FEg]"# /L:7QbAHL-gf{?힒|$=|?QA@h|U)(.SC}ţNn=\> m֣c Yw2̹ހI͹;9^Ad _`+ܒ2β%+=O%΁_ٲۘfD4XZu <|PaQH=9 EI|xh @wYf+ns|yO^BOywE9l:ruL'-/@Q{ܑOגХS(kNfUp5J;G&1sLBCC5!ˑQYmog=޽{Opp0W^jyCjj*RiWQF[F:Xi$KE:0^F=;aoߟ .`x-n]ͬQ:gKsx`qzV} Ko~7PJl-ph|sjݢIII"3225kC^^cdkď?jjgpիW][TP(Q]shݺr5BX\\l4+vzLFNN>P UL@B,LF#t(Af"8T&&PPLPADԃTDq.]|5&9$c/αP,IG/$G}U{Qj5F"33FҥK4n0;,VM̓F9ރP(ܶ;z$ۆS7s(q%z̛'1N4%ͽ N@frпX^ʽCx{/X> gw3xu}"#ד /Sc^mQ˜V3Vx 馏y>]m{4`o#ݞzפ~#ldʜ͘8gȋ;%q'a9ªErI12q:9kӇkjѥ0M@9/ ep8ҽ&ӓ'Om۶kK#b3%X-L$@G۹ \uZ рe=ldeeSeԜ8v:u"44cǎѾ}{=P*]t)Ç',,l)b-cW^[ _N6mܦu$WףRtیĉtԩBXRi` ''hgBH+z=|*QBABBBq [xs2Դ:F///ʢ~d;LfF|Ix}h,T6τzif2S"CnາH\NZZF]a2?|o|b^w̤vz:5̓þo"J/圪h]U6dd2dΝ+YY`sFN[;QpL@@(H$FHX$Ad*Bc)[rHpwڄ/"BTb$U"E\JP  23JKm$$ 2~b䓖Og.Qf.Ǯ'P_Dm=eD*`Y%N6 2`ppjk×oәOa[p뱂Kރ2YtT1^⃧f=݁wUOi=ef?Od"|&RF?E2p6.ɛrI¶~]ζ9i  CvPbɏ/%gxVGrp~6kmԸ_0Ntj3A&2I-)'k35p40J"I.-SS^ VWL}~|6^}qR'yj`Ylyv"t^>^ fݗC_p_,N\rWS68.vz磙i P5]*j*wij[wJV\D"Hb\4 t5ϔP)0iCIciy.1a;l0ؑ)xos>ɪN嵗y6ϚFw㵿 Knw2޻i0Os%Ht ks[Rї7DoG㕗ɎhH$# -ݼauro6$; jWֱ){Qܷ +@&D=Κs|qk3Wx7Cc@QZ6=xaEi'IAz;M;vG$8dTۏ2dO gK9}EkY{|ʤC2d#؏œzƛ7oZh7ofe򝥝cNHH~dff:J:e9J;hHJJgMh4\.'==bԳOQ;`{;ΐr7'qx 6'#9p}=e_3^vc $YO;٭=:Fu>999pn0zz_oNRNà'u4[wDQ^^kr6_Ӹqcʜ*L;P4lؐ$k^rr2qqqDDD ==*ߨ_>-[ ,,( Ϸ&r kdœʕ+.B@PTʵ6᎞ m`ihNA"Rl@jFW{d*  ې5~#gs7}zdק 7?/$_`ӷGdD-NS}ÇOGb^.*2G<8fe &Fu>;#Q`3s ͡=3:Dg)6*sd /YgDbϒֳ + Faذ6" b7RSŘD2;-U7Iԧ ђTNhjZDNfarS!ӿa\x^ %kq\V&% _@WZjHKd-#ܳtuQ @@uP[ųFox bǁ7Qw`\Y3gGF5|I GOn˕s,뻭Ϭ~Ȏ.cGx)~h&xs^4㢐h/s0ɋ-n9|X8pw+GӐ vpYZc}^9wSVȤCjYs#%#ѷER{M7LȒ]yx,&='`7Iys1c՗ˎ&>S?!ߌؗ|aʎq*.o KY{oYs=IxGM"%Hɓ;dz(:t`ΝcXUmߝigٲe/oݍJ=Mw},X\d06 |{+_WF: Nk׮!v=bM&"ndff˗QTfzNNAAA3rj!Cpk^RR]t!,,45kfէYfn75HTTT)AE-?]ח2ʵ̓34hЀ8|||:rWg+Ӿnnn.*傃 ,\+V١-ɬuζ^mُv_6۴?W^h4ҨQ#]'άJvQ\XXQ,ڏm=['XM#.!XԍΡ[HTꨨ$%ɷ5j8=AQQ>u2mʗk O!.Mޙ. ̅) nIF?"#n%[Qiy&Q JK'h{1܋bׯmB*[ے3\(6VQ !U9^=H繶y+?rV$NW=uE9H{z\W{zf( P9WݡǠ"Ћ<߱F?1Z*D@GTb z)ZUIgW9v"ZڨL( `q4hʘ};y_oGME\a"ݖԶߙ9qEN)cvחsv_2q;rΏޞ}}YR>sͶ{>yQv%Uvp!7 )XZĤ0Fo.t]C GjM.KzPEvFqau=004˻BwUbccf 322jD޿q˖-"ȸ-uPyFtN]dM[Owf=NW)jm2( qBi'n0/~6~2EǿGв*͵ #b}l" =H_:.COJH/-yzB \1 ;3brss+ex9bbb $11Ν;;5TU#Y$&&r5kVm[ϚUEEEbr9'OtYGF[VD"A&j+m 7+c8,KZYiYuhq*GŚ^ޜy,iŲKGYl&˴OѺ~ԗaqӝ[ 4 6ŋD"1HDXXfZRRRRRR뮻غu+jښo-۶mgϞhq jut.Ugek+/bU r*WT6m?8]KlJƍSTTTj9Wdўfi_ԩSu]y^^K{bFcRǍF3%ZQiɄ5_*CAAAAA.cmc8,rtJ%W|\0S%[j]Gawg0W;:c[EX\F#XyM&4PG;*J2m }mҒq} uB1W8tc5+`mfi5O[OdlDkD5SdaM?eϓ>X~eX:/dyR>nYXSsqD;O;b/<[zUNDXDդ3}M rr3_/)8a1fv/.貸pM7"L'׿ R(㩑5}q$v%P\ֻ]ģ3N3)S һ8ݜSrHJ`<6K0 bx{^z)Rsp/*gU{-MGyj+h?|W~eͫ6,ٽr7U0d,4uc*v-p@۫En݈3ꚞ1--FHfzJ{Ŗ-[ۖbpd +-X5A]Xťw2=xt A"o\Ҷ Ш51DF!==2{=Y"-uqq1L0W^yJEQQUfOX>}~kԨ{YdO4֭[3o޼RҬT=*}7fw \zuTX,V[vgtEO tڵ\sjj*b/HB7J2eߦNaÆ宙Ztu:<<([Ca]n厞k#N[ QcL&إ,JBp;"˝.[ie#L&S,{T,kJe#T~P,zk5׭}EnzsmL&HEҁMfFpoFF]v-4.4tV___6l@\\h45j#Ν;WFwZӓt͛gϞR1 J%[ˍ7)m322QfQlEFFl,Y`+wi|庢}SN3T(>tR>`-+Jh4e/ RC-UBXzF#mTt)fk,:twkr^yafDiL@`pAP!%oq^,^n^Zȗ6q_G˕ضы+j/[≅QyWF&h2Oy?"j?Pt=J)V,濝,kS_=hec@S:{4bܜB=3(ԚY}>!/e&2&r~'|8 yO>ŃWĴ_kWn(ۯnyPm3+#ǔ-?`|XšQ?B[!v>!OLQH\b'FȽ Bk #VZM狳{:Cg(O@@ޛe6Tg#%](<* drT6 =UZZ111DGG2T6B]*,{Yh4 Ɯ9subݴ;cR=ON\.G.S\\5wG[:rR5*˶LuJ1W*/+h,EVYN1gi`N ZHv/y?/[Z 6l#l'Oqk. #GdϞ=ܼy~'5jD޽,vZӓx$ 6l **Ǐ[-}ܕ{I&MT*?==Ǐ;{%11\zZ(JΜ9c?s /_.5 ''a{V/M夦raJII fҚ5ktyL*J3Uh4r9.\˗m_"fNjͷ?au&:̶2RVEח)h\.}F)SW&QXXhuJeBTT*uZW,CHHH/OaQlTbXrԍ>*Q2Zh1mus+hѢE\8|0Ǐ^˗;C8TyT]s,yXN4o}2Bs&݁sbLykNK>k]x6LCo O6OS,CK\HN;}~c"ķ’Ϝ?o9Qxb*Z~20iʊ>Nj^/挝ˑRџ"w du%%%0xReڵk)cfA@j5sߟW_}Nϑk׮ѧON8Axx8YYY}OnWh4D"hYr%saĉ_uѣG+J 77)jP\\L˖-+HIIA,S^)%%Lsam-&zW̢7S^X9=!g&Oc?W1{ ~C[]Y-h۶-7nd͚5rOoX,?_o߾nrYFMBBg&(("z=o <9r>[r-5kfͳQY̛7-[/RX߾}yw{X~=;v`ʕ.^e޽{;Э[7eٵkݻwgѢEtZ * :t(ϟmW|Q|||4o^15˗Q(U*4nܸTD  r皊+uߴj& \_m6=J~v/7(sVe0k:35HzvɿEdxU8N[_&63ѣGill䮻:i\ZZJJJ };v̏~ʔ)~^ U7dȐ!r)ׯzek &&N'Z-ς_Ckkk@t:ihh %%%(}[[*EyOIE|"(| mܭyo%%pafDE(2ï4X[[KJJ F+l&?? eO#g,**b0uTsS^:Q|t ϸvZ.bV^w\Xbbbhoo3d b\xF_|ѧO=|协8K'#~~M%Q߿ik+=z^Y}Gg %3‡@N;u!P 0Aɸ0g*74 ~ߗ^)tDn.f oRjEr/+o8F_դvBO_| G#{hʐ!C:u*_]+PYȝ&ԯ^~yuV;kDzd6@Ƃ)O8z(˖-;ir?N' "&&J8MctokZ<\Yj D#W7es6/шnGx蒾GzIuE/]aW[Ysp܍^ a׀&\K#w2v01W] 0^^:fPSttt9(,,j?iV__'OOJϗ">>^]{n^~eY1_Ntth4 EV0|MyyyP_y} ^]9ϰaBj;Tn7n;6].MN'qqqTWWܶG&56)Bn1iN4i\g9z@|8zhxtEQ.GX(ytu'XuLqj/Og􎁜s#m>ƈn:i{T[Pֲ"]_;?u+o}Q߾g)<03TV4"|wAn龉h~DVɧ2 aں[ŗ@c͓W-s_NG)._p5O9(PEDM_ymY_uVȧNutV[CG?fջy.m{;j&DžÍ.Fwj:Lia5nܿ6xIsM 常8>L\\_>*rvطoxxhʔ)]*@eTL&Æ c\s5j3Xyʔ)'EN)Mee%Nײa߾}f}xDJ#xHovhp8di|˂"\9 TYAaقlĜf3T7v'.Kܴ;^n>Or3_gr|-'997$F ׭;hkk#**yQQQAii)6~!7f _>R3NjF# yw5%Rrg'TΝ;CjW.Lܹ}HPeIwd.SaVEF3@ F'U^bwzQS.OYHLo OG7/L^>TEPenZK;j,W/KNk۴G?H{̜GyuX;V0-.³Q٣,~l=܈&e47#"@ۏKoJg棟s(vv<{}/'Fhs1ɰ3ᛣ6ktZKٻ3{`o;GޟNN0}}w#AY]Up9o9XmN a'ޟYr&O:T=0V?kw[(#@ (֠ŭwv㜈\wU8W]0F%wasPcF;;w4aquO?yY!5<3I7r\\aaao9,1׿rssijj`Æ a+PY;))VRRRHJJbƌs= ,ꭜҺN=btX֓2Oz'R+Px<1$+,l+J7XeADDG z!|rBk+l6z=mmmq<ɻE1LFjkkuW[[ t6C5;v ZMaa!'NFZy%&&r"""Dyz·X4$&&RWW'{^qƉ9S*5l6ѸVXX(z/\o9pcǎ^r\\Aiė+ رc=zC,{Nw,**b!.._wމ7yyyܰaK,wߥ@=U_~tttpC=ԭ5UUUŵ^˚5kd2d+V:|˖-#99SOi&L&g瞣O>?o+G}Xx19˗/fq襅%(_Ô&Xh@zuǛL@톪(F31T s7.۷pMw,Qk; f.'$^|Q:JyE|5z{՟pE %_%  gc:*Vrڷ 5;nsaS+y\U$ $N!KceY* :N{>: <h4zgee^Ҷ|w8!2˷<|p***m6bhzq7/,.VK[[]yLʼ}tj%33ӫ>&&^/G4h;w._}Jf}eQmB~aEܖzxK# "))I˗lRۍryy B =׷7oYWbrƺP err j(MFNp]X%~Ku:p :!Vm`Φ(uΫy<P'ۨ-m!&'0(PЋͭop,T*T9L]ؔ~Q@pٴrt6Oz`3{F4Lu!ΚBAo$+d7rll[r4B9X;%%%v>𘀟3ʝ{!SA߶m?0sv6mR6ѣGinn 99Y7nk֬;WlkϞ=bX$_ixPP.|ݻh*++6P.P977W4s^ =_at[B(B+@#Wg D#WA,J]^jZ4@CGGGyI D!I^F_"wdddGa…* ̠+Q ׃>ȋ/>񥑆F Qn[My1ʭ]ȕd+?~j/9K0jZzWD9zNDD. m^Rvuuu1a<&&f@>]SSS@ct7###),,:fyyy~j/ykXD>R\p6Of W@n~e,碂>d W|ghH~Q 6c2o R[V^7p_")q L +G1@fhn:DCQΪ'\U""g$_P{u}3|gwd໥iƿ^)G?_O9֍7ziGeeIV@h 7|͛ǂ Xx1K.fz꠲XJJJJꫫ7M&mU__֭[萕>W';;}yٳG4Nѣ!oBL뭧NTq֫7fB͞x eBѠRp8A- ZVbE<,Ӭ޷555DDD`2bPSS#Ѐ`!|;_pWWW&ロ~؋`0P^^%OW|-ZĒ%Kʈ'@]]] Q%3Lc4mjj=͂21 ܵCzn 999޽[l㪫 4RF/sS(YyT*}Nyyy6F2\4L& ‘#GW5K#7Dnc0hkkbr^@2믿^E*_o~JBѠh }?/[zZ6}|:9cnJ$_˙$oSPn cͧ-f.y}g&c]NO ;u.䙕rOcx\Ngo'2\4Ln»/niXGQF^A0xkOoį' x;d?Lm/6?dY]<~3,b_R@A9Ks>|+?L}e J(P@>^8ܪ**++|y'K@3rOf7O/d=B-{<v;78` Y'xb1ƁO8'\铌DዻIW/-GiupR^~"&8λR\ ;)Ĺ"~j72{c9 nali5cNJy(2 Xրa?NQQ bN@)!99/l4]>}oZ<]l;vxKK Wѝu?)))0)) ))**!<]zz:|A o9''fp\lٲVsUIsfZ[[{}_iUf3}]p-ͬA|ɲጹV[yl6Q7chrH632/*n yzF?ވCȠiX1?s5ys7O־ F$rɭg_ߢ8#FF8C\ɓ øŝƩ? e*ϸs*P@ѵ@z53lC<*P@h&{q< Pc()331|oTTӧORW_}SrW{W_?EEE=C5jXVXzz:&Lb- sCIiRSS9묳>|lʕq{9+<I@ܸ'w\\mmm^4`XD[GGb@mJ4ZkШ4D :3bFj*5'b~>5l\mB>*s}qWr՛qɀL/o]]ўfyj"1.J/sq2p}kgI$V7ucfZRRRb5zTVV̙3ygYx9sʑFMM 6M'_4@XV1>k3h !d;/**֠sEf%9^rf͚5$%%vZ,Yfgn{{k{Ip2.rҜ \a#1cc|~&ݳleEfG9 ~]hNa~/9W=|ʽG 3~57ag?FL3tRşmB􀻕=ﭤdK@y-[K'{@Glxsb\\\3ڄ;v}g4loo5 ݻl3h ?^*+[2k,~Ν\ve3uvv6tB"==Ǐ{m@c>l/z-KnϞ= >[K/c/l?~\d:x  Qԯ;6vwq,_ؑ#GDcQ+**8x r F.{9zdg<~8^bοNgаgn[j:7!%UնtFm>vא---+..,{}ybb"&)h9~4F]v .MƤ$~ϟUε^ꫯnlyee%ᄅ:t(vꫯ&!!?ۛСCj6vhxQ⋈x5f7z'&]va"㓐#L( F 80^2_eBDD. }\*j36t:i?NGT>18q:]zV UX8j -7n'Org,zEO63RGGGțʵ{ӷo_v~`L4I=qDYt<=~fׯ_;}lJJJ 2D ԛMRe>}M沲2ƌb駟xI%%%˶'JMMo>ƍGRR0lذ^os7eoVZry^C)DC8y=\ziys+1WFX{nfST*uw,<2 ¢uwzΟ_|aܘ64N+j,Nj{,O8iu^!cac(nFgM/9lOn^Os;UR!Lf#>>^B%~rss8Yv׋µ`0t/55U슯/hȐ!wRSS )|Qh4z )&&:*'ԀJbݺuL6M?),,CJ(Wk׮ute|1bRחGW%==s28Ie=r|ᇲt:9̝;w}ׯ^:&yyy owz%!㓜*XEhV5nLJ/`W'5 (P38e_,N~3#"*(P@?QΪ'\'3/(Meig]d]8 )tG g{GҐGB9..ŰBBFd2QXXGeWÆ c!|yt:/5$q8JKKq\{Sh)))~3Ġl^XXt)//UBgKas'55{b٨"22RO^& &?~\4I9X7ndL&bcc?~)7+ݎJ [R/0WVw< ׹b.)6}mmmDDDt:EェeBrD][4.qb3ύĆci|'Ld}|[ Wq|&`0H * Vk=_^!}6~/$$?u8q7 Clr ǫ+.&C#tzmnʍWWhx%7̘ZCgΞ_nuuu~M~,k4ջT4uT֮]ǧH~+rss9|p@}|.99YָB2EEEC{9 >SNe޽$$$BrjAk6Csڵݕ9Ρ6m2wgu{N' n+oc/ 6x/D>CۓhZZ-:N'@NDDXt.H?cBY8O#U>FZi@Jk4vO3 (CT}:YɈF(eBϞf*vDoU@̰!b  .,NzS< :ZVɁ}je㓀_ (PlUwẉ9Y}"W6$M3r|L+Op'OVJ=VyH{<{)fkUF_3zYVZ[[C\ ꩶ!C-EfZJ܄1c7tYYYʗLZD>}:Lhjj~at2Ͳ*A0H/]HEEEYRt媣l<|N`߳f3_(k  $_^9,3WEW2ZW4^zc=4&C7w,15Ќ`̘7olڴ$Cw^RSS)..s4:>,XEsNN?t)//N/$<e;N1tW6KF%DEEQ[[ESYYJ"33Sh4TVVnBurAǓh 2j4dϳbի0jkkZp:::x<^nNS^⹂L!X,t:V+Zǃfiz^jZVVbbbj^FFͷ,G@0)3tRşmB􀻕=ﭤd.߬ s32xix¤Y,0rV//z"""^ =z: x6SOs^%$$`hmmF4lQ@hO;""ՊuS^bccu1ͬ\ҫmr-]VKAAӦMJG֨|M7<{aɒ%|=W]s Hu>}R9ǎ\7ơ"]`z'Nׄ x2_ Cd0Y7cǎy GUw!N;4t}J1l :j5*JCs瑐rInۏ^@WԤʐ,2|+^;ĦOp{Clo=e@d6ыױC -.A~1ύ%+eA؛l}`Xkb1Z_cD><yf/v yhiN ab"^"wId}P ֶ?ˢFNʴStj 3c2{#p֗`|s1}gbt3DcejxF%lw;`0l2sz=v+ۑ#G8S|MT*z>`8Ljkk6li4*((oYsmȐ!znUVV2s.DZѣ;֫v3ydt:)!=_޴iÇSSSCqq1fǠ͛7wK@)iXضmb߲x[ /PgժU^4<FGyD馛ؼy3{귿<^K=M>N2QjDP 66֯^A{{WXX/<<Vh:Vqvxx j]\w=g teb}E5{T y:`TT(TLzGՓ} 'ΪpһMqB%#GEK|s,VGk؍C.P~Cy?iH<+ju9F@PRzz 5U#;eTsH#eDdgN~qJ67~y+m*8t5ݽZ:ϥ  R c*TRRkKP(z"#-XB5VKҲ24p<԰k%֞}U*Th0t6/XTQ7*96S\r 9mAO.8h!hUXi2fb1QjKЃ$iaqu;9\ӛQqmۀ+LnjW|z1wnf{W?gVFW%D@b8yx~3/.$RظG(l6/_άYZ͙bqSk.d飣q߼y3wygrvѐD@@[ΛBlق?˗/wgƍcZYr,۷檩'//ύ_ IDAT%00Rz)͛H/..ZݻwFo߾b}aa|sl߾3fߊ8)ogÆ \Fb˖-}"MQQEEEN7o&::کG+ΏtޤytL8444p8cjH#= u=,ԈZz1cDDeeeѻwojjjNm5 eeeP__O@@:JX,466p80b[^j5jX7O!""$zM5 <[qu6G"'hwA۪Amߝl)++I5 t: O<)z ޖ jk2Hr|>SNݻt:Gh$!!gҸϞ=h$44JD׶6Fh$77ƍ5jgϞu Ν;IJJ"66+9=]wi9((0/m _!g[8q8񥅋9^a###ٸq#zrӥ Ξ= ڵklhjd'~"-D3]C)4{kXOiZj3c4 #̵4$cb]|7% 9gWK"-Ft: &d\:pUjQ7~U* *U L+Vq*zoitQk:1seCSkK]n qKUZ4ZP{ÂٮjiJռ: Sz/wbK"JZ%@Iy)= WffDc6s)М` vT͵JeprcY*p4QQjGGhpzEӢBVcPF^EŌ60q}st74ؚkt| ]{zfDM+,?3?*=(޸A;|pIakRx=0S]C] Q])޿R|POߋІr䪛*Nȏ?~ĬEҿ3%26"ы= K"< kGfW>z.!FV#HMMeРAi3fd2ɶ?>555L>]֭S&9^rk׮{wbÝhFرcy0`bNٳgSRR"ֻ^+++sYIN#G0sL[o_d޼y4440gR>ˈ#s3fѣ<#b4yGİmQϩSδixwhĐ`wuO?">뮻NЛ4iuuuN;}xOq8NB@pSTTDxxNvbp-K Ch |U;wv E(' @ {e0DﴈΜ9`p`4Ŷza@>z <%," 4|jQcywk?[iYp8ҥXdDf=zpڵ+%%%bݑ#G `0F9 YYYFJJJ֭G``0PYY)KZ$..;iC8ˆ 8q"{ܹQFQYY锻Q:o;wkuۖyqMkaݺuN^]޶ֹ-|y'6l>ԵkWsN^>#cǎ1aRTTTT#jmI%q.ѣG9["sqKٰa!!!׋r{0++\PJ|###EkkwaZ4xw(W%1#L;3Ѭ-29/4>\"#R9t!?%rEC&!i2d$ziY-|3Hs MT̡pbЫUADFP]թ^GXT_fDtLWrҏhQNh%5F2u1 7|N?@uK^.U!~~"/&ε;ëSgR2~hU'ؕuG[#ɣXs60x]=f CKMF+65}>@$$uJf- $XK^uz: C9v:Yp(u绣+90sUӤ @#k6qZcu9]^א :%'u\:7[ܗ}?]ѝS\]w3ǐG9-J k‚<5*N(ToA,nygmf&%TZ%(q4]gEلϛM@;p_>?JҍxT8_l:^/~=sP^yË\ }8?C;&M@`%)^hut!>(Cy_5EMTPu鏦j9fZٔ$S4 4$G[0[*D=0 gE"-i(G(jR)Tj?j?4,,_9TscUk:klġڏD@癗r"[ P© A %8*Bv JLO 8˷SX yՒb*ڷoc#xn7Sy>tLl9jNo _vq<$v,%+Jz'yK9<:V?BQʊ0V}}qq3l(lZsOCCK9y^\psMGu;r̤Gy#w~9ϙh7BV?<JV"}?钃h}Z I6::D~֭bNOd PD#effttL6h4rqRSSJҰ[4v^x3fR(++^}dB}\\ݻww355l6;v 55UOMMرc"MMM zީf[l۶!CJHHȑ#F=J^g֭t J%Ώt\Wc6E-M ᥤҲp@)HRh4X,6/VKCCV^jE؈d_ީ^j Yי@!z=B4 4rJUv//{J@tt4eee71Dk_h4{;vZ w|BMOF3!lݤIͥk׮1۷SSS& Wuu5ꫯ>oi?aoߎں5/aޮjN3%}lNz t*ͬVLn+9_Ţ/L0XIC5 eo;oFr}}KyȕH tng@6ALqa͟Gsh﬿``#̛={a1Y1P^Zeo;;~z6>){nLh 2N21~l~=mt)@45AQU|{&̓E7VOsE,|z 觙7/h¸{஧Fq> .X=}7}t٪m=my}W-⃂1kd"T@}ǵv<~]ElX}FFk"ldBȺ p6_(fk39 E'zx KFF՘fٶQQQl߾~hݻwJs!^`0н{w;pBv 7aXz5={*44Ns|rBBBi[cXDo7WƄe˖QUUEjj*׏+V*ȵb L@@߶|[,ǦMԶ~Η0fo'--'O2tP=w[ӗ6뤧1 ߿_ܟ-]Wr_i㰒|??UMڇRߞh\B&iUjZ3pf2uQy,yi[#йD%9^IC5&S.Uuj"N]Z+KOtt:MYը̨,B˶ycZn~ ~#iEyMsA&Bf-|rơRAi7+v8TK[jٟt'Oe3r1T}]QR48vJ?GAN)ӳd,*0Wo`s79*,ԙddn 2|Wch"J%+dm𹞒I+ڭBg-X[{}liE8ǭmy}WKSїv:y=w,9Ș웲w0DЪ56vT%24[Z6 ڵ#hĉtޝ|8@ZZFg'699Y22 ݻVy)ɬ)))h4'zIF#oNY~.~Gc٬Z Ǐ֓|z=ׯỏ?fŊ:ug}"t:ߙ3g+##͛7*``߾}bn1HRRǏih4NxLDDYYYLx ƇR"##E/6ND#-c2 USш8^lLn\jt=ѵLppSaF# ԠVE]vui J|ziV^Occ#111H/::cǎ1x`EG:8c`ubC޼C?&22Rvޖ,Y¨QdeÇc4ڵ+jʮ^'??V+z3mN6޸8rssQygbZ>""Bz4od2r&<-ͥPz&q=T]:ٻ#opǬC[cP*ԟ=FUh/in!Egw'r:ڰå IDATmU «r䠏E?az+Ff[=Вl>]D4!ytj,akN` xz2PkxH鿹1u3c%OcDzpB4|ʩS+++m/~>}4]w]ݺunw41 \qq!--zɱcx衇4N:a2HJJ";;;í@>}(((w[R^'n_~H1T[3//kV۷/+Wirss< RQQAuu5?CH%}b`08rӦMcӭ[7Q'Y;A'IR(+aMC%ͥt5z)M !R_\fqOt-T,53#ҚL& y\Zb蹸8tx_v-'$$`X<455ޱ4III:u BVV,MCCq5 7o7p>İ~z~vftdy^6xheK>^@v}֯_EoF`LJJ+A_jkkׯ,ܞ""i+3i$֭[G]]&=DCC I:,_d80s-KfJvcr)q83P3piα=͐trޟ2|BCXt4LTt;ފZ*@-TԒ*&TC@UI]~OjTEqHrܒIOv :-pQ\3tsUu_oV"M.>e7ԎQRxBBoࡾo`姽t^V_)3=Fog 9T`ٓ&<?G]ɗ/DF#rBbI O'󻪎O0Ң_qHIZ2.N' 0_WJ;79IL/ax[as>1fߘVf]اm=o=[1`n7 /!skmp}.X=hEu9nu*CU̘&/Ю"%* aɅ,,/30.8d8ܲW#NNvk٩ \3[[1ACy Zy,|OFpGn>WnbwQzAii)eeeDGG+>|L;F^9 Àu]bCyRXx*¼j Z;3,XӽjvSN={ E*%&&Ț5kķٽݶm:thuݺu#;\L$*%$Z.\ԩSe fbccE# b^3Λ0` yyydbML@&IqNkK/nTbs}WN7|#8p)Sʕ+̔'CÇ()TuSTڃj5%LfKIOIdQ1enY뉌JC]#e2.,"hy\ܐ׀m%OBy5tW?7>Fɯ/oR1.,R@@Y<ޙnt?q]~ =O?!f{2{ ROl}|;>1WjZC`L=ʲHG餽[*2>BZi<~-x%C. j ~R~& Γ7&]dYb~v>j$ }W5ӧpT=oHjOV=Ӈv.Xr@Aq{CQ/ dx9"q|\ٗ(] 4?}5#)s _LJ쎬FEsak eE"f2I-lϣWEQAqc =9qQjG~,*'gyބ$S S^^Nٺu+W]u,MII O&==~9`@@~~~wԉ1 V _Ь-a>O<ӧ iWxd>LJJ n 9r$ .$!!MƏϪU߁pLt- gI '$~m_"w:k̗yƍKp #,$73z9-ew/CI<9KO1T*zcH{qyC~GJi[шJRY4&>}r-Z{N3gNC2@޽ٱcSLȑ#c1|i&_{5ٗ:f̘҂l)R(--s$ʭNtޝYf4Rlm,0":lLollts޼yNmx99N:End{ڵkΛoG`ZlٿkFŻKxDOy˔]k|,j+iFnojy>匐|ZPwB>3W{&/Bo ~>\hM|8J|>D|.DU1?\_[F%xX]hFo]l2@ݵ/HpB ra>S@Bmpp0~!&((H UIOX.]ݏ<<\|Sݻw駟/bҤI0w\>KKK)//gٲedffп&MĢEdT* o֪ȸ/j |l,S|_$hJ}}=FH~W.\(KѣG1 ӹsg [ؾ ls#s.]矝rssٳgQQQ@sN ***0b99AAA|'bXX)ԃHZߥKY۳vrƅ۷/-jS[a/,,oP۫炎 5ҰiiiVOIIV55N:/N*uͥ&<ޤ4lϼmذ D/㄄Y1csω|vne1n<ª\in-bk9?4T!_ xwE@?^=t5sY5=aeS<'kXה{Yj6-XkxwF]GHp]>MkYj㈒za~ }KH]}#~swBXz8Z6L̟? &222ٳgC7N:Yfp8ѣ'N||s  ~:Z-VIJJR Ŗ bw]^***y|rssX,߿~QRRx8/X,Nޚ %//O1oJB 77W1o]ve޽NT'oߎnwwO: fB. 84$_.]gdff7Cp%x'Ck8E9>r߹\l-qIh>O3.rHpApAp {yil╾ݥr[| ХM秂kM(17ѿKxns ?~,%6~bն2z^oRqZ| ';c-wK[sCb 2]wرcs2hZ)..)On{v;7]F^OaqqqRUU喳hB+VXL^^aaa7[d ~~~mW^y)SBv &Ǟ={PT NpZO)~/c2_|El(yQqڳv+W=\NUUge۶mL4 λ6J[0w\üW_}U_w:OI_]633-[(SVVF~0 NvEi~Zak%pet.HBCC\{uF0L&3-F9c4sTl6{ャ[N4ɅօsFuVu{ mSSS9uTz¼'''w}ZZ5}{裏:O3555{&M.4O1cưn:ϋoGC0i4,{_eB"KZi&sy*f>%4kFO!:_~ /}m<<%q̙=4bְ-|ΐMUOR~?KQ^f[gfՄH1V7b_<=ۻ>>Åw<Ý^ځUrhW1 eM̮̤er;6{7 W{!=C aݺuO?O?G'>>z!S\WW甯Kٳ ''G 6`c%:&]LJ/ŵSd29oذẠd0СCc,--Ea4޽;FQԥOZƳ|\|7 G}@WoMZɓ'Ϙ8qb\s 'Odٲeֲk.f,+xQWWз;wx-[&CCCYt)O=yyydffjQe bZ]pf(**vT "44+W^㕆mEE7oOFȉW '""I&d[d6TVV}pW}Q__ϲev900Kr-7_|zIcqK_Z۱{7_oݺxxbCA}|CG=)S?}>cm?6+vVS%_l#M{[i45]LJ?_x{h[j⭛G7glz= .oi;t=(2s?lk/j^2gԾW6>xӖs\ts W w|9N^;M.yٹ<:w" lb\VK.]ʕ+իs: 馛Xv-#F{Q>pP\\'k^)-ZĞ={Xbǎs6Ԯ<5 4{UVVRSS }̙3={p8ĵkhhz-6o̪UZ!7m4V\ڵk[ƞ={rQjkkOMM%??*;|fϞM\\?._Y`{aٲeKnz~tbs˪*RSS< tRVV&{G-e|[2>`gf;gӀib8Q{Ol  _;PFHH&ks2x`||M~ȶmxۥWR>o۷k-[Fll,se͚5IQSSCbb"~-O>d }^:V+k$sBd4l&\|7FFODXJ`-)#青D#ÿSiLyU<kj,AW>3JY۹*3IIt3soGVY^AδᩥortI_JyLF-vV*AU8]bW0䥃X\̮Ifַ\Th$u =hhz' "S'S_h>;!A>[|\>(Em_a=ؙR"} ӯ13hd%_b9G f5LħOS |rfC4?#o?M婴xjr5fF Xҏ?yzE,/lxgI߷r.Ϧbg!ϰr,Ϳ>羛c¦Q5rwn3Mi)#/:mX=uQVJc;/fWw?wfcRpgq}E4M0s [9ۺÿ/gT#G>~;+~Q~n}8_st74 +gWŞ^3(VaGۚkt-451ϯd]>pAј˪&ƽ9G*O+dRTխ{"uO~™!D^e[=dC%r||<{nr<ǩz=ciZg' ?Ie%ٳ9s&Z nL686mTY)))+7WW qϨh !!!f&\xdΟ?ODD)))JOO?w8DUƱ{d9{y 7dnqmmu|3tbUk,}{4^n„ %5Ř'@-<==zsYf9&4 /^4+oz_]L`˚G8|QJU>|'[]ZgvhTP\\\HJJrx1[Z5֮]K^nkDJlkO3>G֯_Odd$YYYv峦gϞ\{+=w۲$ 7rlWZ(| 1947kىriRo3 җP=J3ߚ*UhSӥ+QGnދE=|s8{&bISEαFdHL2C&)8x49Fʥ,…rԞl @w1,|33sXs=s7h7/n2/MJ}W2$Y18y~uٔGȼ>9?#9M_`D J'SQwO2q&y/k0k]i~~L9fkC0jr aTфhFbYS0iI&:_xwG=O5ۓK37vک!WOvDOiKY6$m(^dq j?lgn+7$-P$11x(] \OˤNq9, 75|l(xhe ttwۏ7>7-$.*4547%(h}]w)R⨽Cv{EehnF2w=G%m<#fEVۋ#]#۳9~$nTUo=.9D{\ٙRej -7m.gWbhxP{= +:-qg\L=9>ӎA;MʓGV~ϳ GȜg?pHcv,UVƨh.24vzu'~ǖǨWhsʷ  9?xu`wsxaMa`#S߼dG"yc޺UKCuYW pR`e]%A^[96h*l($ίNiLˆ9))k;%|ֈeӚ%8juߝΜ5Q,_'vNY9c%2{l H$veʕ+-٥KڵkW&[6/[+*2c5)S&!5k ] ctct:].W_M͛Grrr1eRE7ׯ_'99gj^[9kIu'Xi_ӱcrr2cƌaѣ_ӳXYSL!??S$ߞb+  *qLh4bbb //dl߸qLVqi=5~ys0[,Fo\)fK '0-jj߀'MFQs&fءL׎sdH$F u%J=yZ{2)gړyak@/8lo; "8V5*vOM<2c^ \ GMTPԙQ(c.25(.О[ e70ƻϑыzBdolb<,ߝywK*:^ן .#_̌&eu2.7_уWwc:; lz0kK3ɒM@'7/h>v6C?o2^Ƨ#O[EI9{ hM[j_9'ۚ <乛h ޜ g4R/"̖X|LKdxiQ͙_ߔ&ZOSm[d:ZpJif{Y-ԩc7ŒO& l9`/O C屮',Ln,χ24Y :_Vk%Kb屌&&^^^ӧyעX~=7.u1Vv?[6/6i҄ӰaC~f,]ĕ}*jNttHey\zurrrˣFvrҨYfƥ8^: kv еkWjժ*d9HZ\./S{<-[$&&\ [/^EvH2:g5hЀ/:Tl*z|IRbcc'))ؘ,aaay޽Zj9k׮*"_Lfrҩ,-`Η&xkfƒDf#HH_R/B9q~%Do'(Ȗ(>|¦7YBT"݀;'U!$p,d*?Ry4)dhju'en%߭!. rӸ߯.2\\֓,|-jwUtgD̜31Y:\#7J\`-3\!KrOPȐȽQq\z,Ҫj:${b$>ݛe{/ڕ>ho*?T.~'I$)sSH|=Ao_you$1;,[F*zaHܹb?ŪVфf4,z->7ʎgBEu[˼.5pϸčnCd~ڔ2lPR_CfL 6G _UyV3‡Z~֙5 MH^A|홠RɆ!7OwaID9 i TwqݔBTn'@PٸvydP|d ^/?"}.YhnZ5x'r#JƜ5zZˋR~`` b MFFgϞ5-&Ξ=?T ywwy?Щ\vDt̖͟^e%88$RRRpuu5+n/_Ό30μy:t}ᄒUayj>eΜ9|g6=11"FSlOÇSfrP(-|+VW WRTjV9 ...(  EkJ8>?<0}Wyx71 ˝^dcշܗwΌ30 HR)U ~~~DGGs"""]t49i˫$)Oz\x&M֙~-JR5ʵ/ݯ_Nv%F!55{^ݻ,jK.ٔMz9t:ZC׆:Z=cIcE#bq,X`ݻؿ?cǎYbI`օ4 !rh^T7ՈxOD㩐#A\f >f9ZijںOZ3;\3]4sĜX7>'y4ɕ{) 4mB46gh}3Zy#&ФmPR|y^3Ʊ|W(Ϥg?gj&E^˘Y[ϡd3q|NSTRH7DWӤ[eТjZ?yiktW#{O^fm}W ^(۴i9oܸz V˟ s3wUr۵k_|Add$ 6СC2?`ժUۗ;waÆJjt X/}o߾%7(v?d…L۶3;`ڵk0a=PeqݻwСCL>;w{ll̙Àhߕgݶm-BRRD&Di\'TSٓMi&'846<.~( smA _b/@ni b6,'q`i&1J_:-]큾 Hʶ e IDATT"5&N-O%RiwzDvHr$4aN~[9HUmTqFF#hr%-P\'cPVus6@ p'1#M\C><؏{ [/ZdQ`_`&[OD!|7!g<)~FELRT[ΖOyuh̋֌x QFY bD|}i=髱um>`lz Qdn5fږ H&Ms$lؙYveaԅ4 J uz̪w[㆑[W({Hț Ĩ@=PA>;BNDoP[8Zη~2묑2(̜vTnÆ INNԯ_\{,9t1vѴKM I/EՍN5jr+㝴ei&!EoHZHvj:yNR2֪cr\e3Z'풝?v{l,Z$({cv7Ah s`g\BqK1Y=2'%'R7/5M+8iukO+?0(4ʅ9w$C[1tWоߗ~^auOw7LԖ kbCl2uYxyF pbiCߣV4chIqLfo_yk7Mv?&1&2]og-+p0SEҷ;)ʰ471b%ru<<Վ URߞ|8DEg|P\ 9߾S9rA;=N%䜘jBÃƍvZ4Mc=j^{n{#<UsNlҤ M6eժU߻ .^HVV%}$==ݼfY%00PF&M8x`֭|8111"ߝmƢEpuuER₋ rܼי-9wޞOfYk%)$4SF8Ah@ A>"k,zVJeŲaj G|ήD/}95bٴNYUxt厗[7M&ݻ2d=/w@ݻҥ] ;:Po` 2ajҤIPuu.+Oz2Pbcc(W/^h%fE|'WV?d2 5 vgϞVgZmW꫊%^/kCe0$(J:4.Qz45$AP"[.n A6WE _3_d E!v-{o71uʞOkm&9{Z;LU ߝ)قc{6οϜˁ0\KZqOra4t;뼙uu6PzݲxSݰ-eLlL}/\oJ']ǚ,(LRY.Ȕ¸3ǖŲ>r>}HƍȾ[eU1'ދUqOVZS=.|9IDD٭byp4ns4 DEEU|nnnj6STv-)KRيo= 5kEtp9\< [*$gڝG&%)={xi9~QbYѿ.be-jEN2>Ne$j+ #f.(C^/!4pM`1rQHگci7Ńe-}\#yaV=r⹺Qn:Sʐv co#YWT>Rp ZkW|_ Ř}Sd^xEtaܥ,C^2l"C3& ԥ\*Xs21KKo+OUR6HUL>KDg~NQsrx ~k=> vk Kۡx7`X-lAyֽK6u(~NوkW5C(L_B?ȍ|#?e]*e-N+U~Rݼe}wV/sbi߿x,k?Y۵k2)lO```Ho+mDDK,a%?rkG%22|Wf?GDD+=z*QgZ]j2c41 t: ˋ RZ]:v2[.)۬ɬs)f@pBzsu/Ǎ-8eW<@+YsƗp՟|Q̃d?|rﴰ"CGwO}z"=LϪ/gPOhhR(yhe~EVENY[{N싟ޫWɏ0x^Ix<:fqyfϮHvę<̆.@>g3  N/%]R;:X rB3Y~yaG?ҥySYuyh{bɾNAKӯmڴ~2ۯ_?Z!u;w.7n4:uꐚFDEEח5ksY1G~m֯__c~޼y睚 Yifrhoo0{bFlO;RYZْf ,0fdVXAvT8(XN}?07 Z.,FkD"$);R}gtveܒnx)ԴO,_V9O[m8onḌȗm>ٿ'wLa8vlbfy0顧l| c.&3#yh'gpiioEI aӥK3]iKbNHx^jh/XO:LѓX+.3n HAĶ#yyΧ%˙;ԣ׆DP{qqGK$˟\OEy?C7>9g2u >p cHFY΂Q!j#qLq4Éd);/Ki8|>kMeZS`RWcQu?GJm*&]]ӖlJ|IdیQ\6ԖVVGfrG30mϿűq2Bd :t[[0UԹ{{FGr^ܗَS$44V Hat(ŪZڱj>{ .;ጐo.(йݗtzKo#_jinseD7{u^n;ePs1O4>LZЊUָَb$g<7j.Ȩk"ϻ}MEE5td_k\KhwC;Nyn<>Շ(_{󐖘-h=… ){]OƤi u05 W+W|ʺFY6)kYw:]Ym}w"::ωmY窸sͿ۶m?FR3*bf8Ϙ隵E4[f)i4LMEO}|5#J['dib㻱ķؓNE_2ZOoӧA StBb<︁Vvu"G̀]/bQu͎hAaWwV?RY݆<1iБ}Ǫ ah}S2L%S lJoK&Mۙۉ7pӍZp57N}sfL m9H"7J&^X9 YtXFY{]QuSG 籐xOarJ?>Ou/Dy/4Cx(XlӜ+cmSM=sT=(LwrI:pa|aZ@_HыdKXރVE ]795`X~~:E뮙Ymat,v@S]9]:heo9Ix|<=܏Rr+=wpX1u}w9mV\:{uE+L\.G&\.L&C* $Ϧ|mBB0+JJ9RYLg JP G!^$4uێb|3"L2?>ї&nḌn[`33Xs=oMEM0@{ܦk!)#:ޟAXy|2m<+b7.Rjn֏9սȋ#IѽPҌϫ 1.N JƘ? <З ǥq/ychk-2|t rŽ, TiJӌ#ø'<Y|jd P!~@%ORO(2| gXwyۯ[Kt)q s2K^gUĭ>}{j Xz ~pw5;ӂ}arJ$8y exEUr*(K9ʂ3Hz3^TP/ᾐt>-+'ߑ',NCk5the24Ui2~3P{*>XcufZ3 m8m*?Y_O\,i`N=N{(TɐOD }ݘB{L2宩ʺR^?ww?ݝۃ:'OWI/|n9RPP@~~>yyy呛Knn.999ŎM9;;X*y{!33n == toKgTI~@ wl+%f~xayo8caD3᛼9=dD|?}5[FY)쉞|!{uCS6!\uV9+ooNM8G)5ex,cXs)!5R@O΍$^Axo-=Rg&?D~>6Vksx紐LEL F %6&9E__wY>m 6/$֏AGmQBN[fi9sS(4>TDSϼ7)3K067\;*϶yrhy޺,[f4Q ߇ܛ:=d~==KEq]`DbDoQ0/ȑZaX#ѶN 2iċD9pͥF{ZGbaYF]kP5d~^? N@P$CNoLcË l>f2[o^i' !)sS`$=kk+ =xE=$K@2˃"AՆ\qqE!>9;OJ~femZV,2 ,_ [(K3wL(m?*HxGs5V<4V-5 .s9g,nsj'N\*,r\gX~ LbEwk`mz徵ʾJ$X@J|>w%D;YZih4kY9PKz{[U軻~wx̉m3P^Y;FDb-KE[Ƕ>-&.U*U1wҚP }J6/_ IDATmʗGpM_97uIھ(bZxsbPN->sؑP@a.܍aԷڟµ "!?3};GGf/o{N,0>?SLY:W.ׯᙠL:Olgdrm=Ђ+@5. ;e Ͽ E_p;2D~Z3pIQz7:t<ҮE7CrF~*9諒I]c\v&O_ϙ wzccy I$YȌ-wC[^Ï6_0[ۼؽp Rㇷb{.w|\~bWb$Wߝk6Xs%Rb;$h(&pY>c8mCTH4|Wa@ s@ TMt:9hZ V[,t:z9^/u0  F9X6N8g+XƳ4` Q s>4ҋGyϳpkj$8aVC"_Ϗ36EIvqT}^\z'=GR1xYOdW^u-rc,5GP\0'Mw9d>)U,`grZڴ5+bTQsO6zYzt_eيbLeÅyL_"ǎdUlX8 ֩I@p7JD!|7!g<)~ (k1fEYJK7p*Fݚw|ʫFSg^f[x$6@Pe-Fa z_`[es8#0)CY՘i[6 4O"agF_NgQ{Q0(52m1F]Y? ׿Yz\?$,2'iG^zF2 Ӝ~z Q_NW[tFчFSk@VjłbL<0>:.8#x# R߹@ 8۶mcѢET*T*š\^z~b4g`,fRYS K3@ Gwevho?/(Dc ;Y*+@ @ NVVKAA LǦ)tۂ^7[L,9o/@ AGG/^Z\겚9xYo7VF<@ #DDDDEEmlYx53ŬlYٲsdf+]1k0,f/+[<@  $jBdJ3@ 13ُg~35{"x@ @ [\\\pqqAR\.MtJʷZf03nߕ]l@ Tu$j"?ǖc `E@ @pߒ) GP،-#V`sFѼ"$JR5@ *7k @ 6^^ d[Y8p 7qlî//e$p%LH=-J=>F=sf՟GE>8`0F`5bI 0[,!st-ʜ@<@ @ d]D-#tl!Y2^'~ĕgrV~Z;^_3gM UnU>F=s0}`?fie}:`r/5g?dafXsRiQ&@ @ 1+\Oy2}z~.4kpF=s0}pcLB@P6S*,yS|ӱe \^,VR)2 \L&3&%ex[/f@ @  /=@V.Yhnn!ׄ♟ȍ|}X͓5ZVrTjΙgJWXX0ygS=LǦ`r7iyN(@ @ T"FrN=л;螣*?{[M6޶\׺UzT>{@517Ọ}|ǰ6Lde:಴oi]fwQUN$3i P)MPaEV,"*""(RU@,QUY+H/i$G7d(On޻[ޜw;)P{)G     u=OwpH_ꍿwӿwa/u-wqdlJkžb7Ճh7%41k>L&7VfҏA1շ/⸜3/뎗ϚcNLyJzW1BL'ܾcFpE2v5HvLAAA:DOfeS}^ѕҟ:f1ed3de'/NcoC|;ҏc=hz\y,-J~s'kYx|׉3O=zW=FpF2j@S#ɪ3fE2ʅ֯ Ww49LAAAÐŨc;jN#<'IH[f79lM^=1cosṿF|ʼ?F30>Ph*,VFpkpuU3k,abnU7n|q Qar vr? p>k 0{lj+  B0˗/gܹ$$$`41ah\H{E:.S64AAAAAA{NG2WmP.o,j<" W>,L)AAAA8vۇ՝{зlaΜzjs3D^o*o|2 =*42z5a b䙦^]peijLAAAFz6/~?~ wn$KYEH>N+]Kŵfrt{g2 =*4Ἶ:zB9 :O*]jSӔJ~GZwAA3rrrdAAKާp=_._xh>0W1/GmƙcHroo˄S]+<Ȳn~/Icgah'elAQP4 ZVd g$TB  #7p F3AA p³|rAx/ᝯ37OnϦ12^=ߙ@mfg+sm;/#]SZ.=|A'gҕ GE VEшNQm@ g̊Ճ,_$AAA!"=zB҇u'kFmQbz>Jrή Z䠷5_@loC9n$*ihcWdWѣGFCףjtCWݫBE^ʄr 5dк#   p1$`*iFc"F Yb2\B6z]hc_~,>5?bW֒q >DوGѣGFve!U,g(iڨy>#Q v W&3FV]AAAAPcq!]^exK{ۃIhK&l>A~vpHז^=Hݫ물&{&=3M2 =*4"Sd_tq#+QѣBcij `n,^fTd5N jU    ?D\z ]ꢮ䚓dLA=*zT8nU8cV|Qƶh!#ڮ}Ӣ      3V8t:]PxF)BaLɫ.-lbBۣxҁAAAAAA/./VBC)ƳR>c-]|      аzz)hڠƸpgՅg=~AAAAAA`B2t:t:]| R"F-^i·ۛ,WS#F3AAAAAA!χzUb5x#,25PSگSjeAAN0Y0^<^eK[q6lAAAA8PeT |*(HR^bЫl:x  w=P!3iC9 3M3Cۨ~~n)vn䅛"&dA۷ `17NA8oK1,1uXx-SYh;"կO4AA81yvP"VyjQ^3DhS9圳k{^AV?_zʮ׋O0  #dAA˞d_[<"ɉ&χFh,J  qFC3tFӊm ? K\B 80o-NSSԑ\hZbΘYp3hĶۘ3a\t&Ukؕɣr0Dq F|ܛ{"sS\ }]o#{o7Bzm0;hȁq5]ku'p,瓑Qr5Ad5txvO5tNTX1wbjS^|l1K|l^FV :^V)>,\H#kJ51,''G*AA!|;Yj?,Rj б% 4޼#y<F:ȏZqߧ1mht5mc o>þs+;&?QgdhNA.ѹŏ=̢z6>8o~m+/̙,( Јq}gbFp9E7LÉ$M*C\==dA^t  gP{5ZV4X<~?ZFȝ" pLfsq\Nk}˩Xs μotٕdp(9E*MaChehi}|F37fYZ}vğ5?:NK_n_FmQ}hjz_ `W;F@keȭ"P } :7}x]k.}j X:$n㩅=xuRoBNb+/pEKG+x.6FsGχxuZmAA8ny&~)f™5[\RfiI"DI')?15:ܥ.Qi\^!''E;RkZyY}7TWX_? . Ӊv.+|Cɣ>"] N/\TZAA[4HOK!Qm-$WyKYq9t$S6OyLTO'VZT2Seo#R>  '0toVď~-צr 4<̛D:5w68]T9a0|_2I IDAT igWڄDg!#ϻx8ﭣ]a{,9AOv{AG~]ʌ9BJ=Iy P5 ?ιїVÇ> :ɜw:z׷,LmXtvv1hiöfaW^~?kСC#y YvkD7l2ƶHC_3&y}R_4u^MQ_veAuFpڢCbRb ѨHZQ7\•U6k,aFh0VZŸqd jɩ}~}1n_Yp3hēm}mM[kn ne>eެXu@Où@l( nQ]Wm̙0pC#Ϸng[ymR/ax;Bg^…ikSS^[ɤgti 'v=߽c eW3Ú { !$\w7󏐶 p<|r9ױy\ҽ Jͫ1,]KxnX<^ 6ܿߘL/}>`Ȣ<{-+F+^ 1bD.j\<};7vX-[f`0Us7vXY`Pد_<+5W^Ck 57n /c[|Joӹ~^+f|t[oŻǢEju?_-Zl6W(_}(//:u)w$%%1o޼FsCʽq\̟?hm۶a0ʪmٚ_n:Yti&bm۶qouϟOBBfDBBBEDa*46b3z˄Ug( g ԅ[7e{ՃnYc4j??I4^:7k"#c]rWP ps=jsh[Aj[Kuɴƾ> a={ oLf>eRl.M)|ݱ"kO3 .`۶mL<um3L|@MBqӗKR=z%'o4AA<4Ь;= ZL!ҵ,^ ߿ /[ uJ }nhOnJ-hb~ק&5#gDICat|e1{!\cgY(Snvn3x`V^]hsgqQIx[`n?/W5lfCe͌N7ǗįbUohZ W~?%%%Uዔ?Z:77NϞ=)// :4C]bFÇר-))< =ڐr}>_+6$NVZO(8BGKꡆ*[]iۍb4pf\χxPߏ x Ww nԖHmWxt=/L@' zZ|2 QrA!40d;ac Ҕ5ߓg}q.6&xigII z*j<=w%%% [eQT*޷) %+޲ !+ҽQMcsޛ4iRm1.ؼy3]ttiӦfU .)**n0p8>zOu:X,JJJ^5̥bԪ/4 ZN^GSa,Ô>TQObۨ6h*4y(=^^5DLˮ1\X=_ێv'ФMw+?&'   DD ,F=tU *Mғ$_}SƂ%NΧK!WL *ϲx%&Tj6PӲJߎvFKl6?|&M>ft-jb}?^z14P/K}x:pܔnJjjjX#ffKF^d2dɒ7t8t:nJΝ]naa!#K .(`4{& F OKK;&C/Fchf͚jq:L&Vk\/T*Hnz=^_Zx6SB [ye¡PÙiж7Sqڍ2}j'PȎ_'kxwcGOpD$+| !,{t7_AAA#.eƜYg!ʇ줁< $Uyl;,rwqih0g,Llְ+ƓG3E)[u[ ^|nni)ɺyOs +2)G]sxm|һ}nga [hM` Lg";Ws-gƤo1|!cz.~xwֱw9( )  pO~AӉx{t#iaxwI."VBVot?-gtc\0d iQ~hogtЁO?5kзoߣf=͢yvUC3PUȊto4k֌B:wb.3nGVV^;vTxrѪUc]W$Tvj3wWGY}"Kns{ᦞhi5vr?Jq誶2~Y^ΰ'k,w!JSs 4|<59e*:ȏZry93oqP٨ݻ:f-{i|_5}P֎ӧ }~`܌t=5X lq'{>M/>[[1~߿䦧Ң'8< pnMgӏxsM l<|x1VAAVJLVhѢh)s/xҳHP dPֈo}YQĻ0W߲\<};x0 zꩬ^;mwH$jcĦqWu%ϻk!ǧG*:ʪ)|cn>Pųf}½viR z^5mڔʋXv@:jhp7jOÇyt&MغukJ޽{<"取իYYYa4iѢKLek#W.۱ZX,nZrIOOtP5-PrKJJ(--[n{L_%t:th4n7'ū֌ŀNVuiuYﮅM= c~:% m~!y|9-eK叼RFc`iRN+g#a*=,i S5h4}X5ڃ.) b9/D ͭiz˿kOɻ']3YĤB+% ə5+KvrSDˇЊ!W߳Дe}HiCJxBGI|   ;~ȇ?3aVcs:iCţ>?n25^7ݿG39b!??N:o5sݻwF6tZ]sҭrL-qQM dyߕzTпU}VZ+zbmBɈ/wu}gzgՇX+Fp{;)TcТ=>-;id3~gs8oڋL;)s /Mx#u0V%s+3sO{=|S>C/l4̦WK=LQ{JILFu-६v)aoI&4qƞ&ymLv+Ûy3   Bb? _!瘖3^O?o"ߔ.NvݧCظ6Z؃W'&)4$&Wti)!K)PP[Gs;#]f;vdʕٳNiVe׮]4k֬#iVtD󰊵 jO@ذ O3/;)x _.lʑa|{\dUEӄ?ƀOb1,M ?VUgh/qs}]{:bևCN~_:&6===1owl6cZٵkIIILt:ZlղeK~:jS6;;5k`Z1ܹ3+@׆Dmz<()) QL8r0t:\.Z61[IBwGU_7a!wǎ oTi4@Ow=\yƦK94~x:#(rHLL[VGЌ:O]n_s bE2m4$a츞;N!;~{?uλ[D-upiEM:LS~?/9Vfwo`#G铥co/>l.Й$/[%ChʙSX:_6t{Lb7+_ {xw}{koKem{K~'e6koq{Nւ44hw9(   C 7p;5l2nvo[v\4"څ))_ՍO]͝6шX4V.xzڊ'Ji\yVKzJMdU i"ױƲbX c ʣ Uc3r =bՇXZ!7y:6׭[odV+Z6pǫ[WZŤIvi֫.m+VNrr2ڵcǎ.VZv; X,l6;v>5DB*\}Ѝzhl<2l WZu)ƶ8d/oWPIUQK:]MbMcIiIFonU3hGY}b6pθ;WM(/+K`~hە3?ŕ}!|>z+ΛMBI 1bM νm=7ѴuFky6gW8vy< -\Ľמ 7~'vcAAA o,yfKWnt:u Nx|yޭWlՂD%N5LOl֤UFӧ&3?CJx[Ds-#[XXQF5hફgϞѣ^eX";н{wzsxƶq[~=Ɂݻw?'9990wʂonn.K.w2c?䣏>gϞbVk >)+l1JfbcOtI=yZO{y|43#Œ IDAT{7bHM5,g~)ϥL6ު:'\̼|pL604u_f߰G.of͚QTT핡VkO<~8@Νvʆ \uxHc]кukL&G!%%_0>uxF{ԌΚI0l^H9RkR+-%9FoBsnktBzy,3MfhZhsξ#V;.a.ÅEl~RXBnF ^uHeƯhFp{A!7;.ͬYÆ T0gR[ N,תU7nB0`A' Ԉ˗S\A>j?^}-8=ü]cxgE4I|Εo?1l7Y-C[=`{yoahj!@9i˶|d$MI}I cųL1m߾Qɹ;7oQ}O~픕sB|>c-[;[oŷ~&L !!AQi[yy97|3Æ c/:{S?>Z7dav^=9+'ٓx, 1f<163aѯsOz~0Ek`lːT.;XhhK;N?qK[]P\lܸ1+o|}tKF&?s -?3ub,z!fIJ2 ؀۱cGjMV 8gΝː!CHKKcq9s&>l'qFyW\}e˖z_b6?830`mڴN_z5;vb@_~}YaXI1 k"D3kP?.+77޽_VsˆÊVzwJwe3~,$؏IFFF~ݻN:~zvHs%!!Ʉdh4#!-V/5.$Zp~   c;:.% y펋hю3t-N=VX{(vC[=xvSbnAP/3-+tNeɼ{>Գ,XkJPMKYYY`ߏUrvԨox- nc){ff&ؿÇ6*mt3͗qpL'O|x7z<ڟ;0o]y.kKO ~oPDNi2āh=¿c[}6k\Msm_Kػ_zb𻰗喻82s6cڇţ _gСXVN>dFE~~~zKV9pB6o\m=U|,@n㪫 Se?~<_5#qS$S6Q>dddСC9ѣOB1TzIHHxyXtlե˦q;p[蚩GyhgMM# Bj $ 40b/^2y/3%No0XڏGU\-{>&i^9ZCμ_I+>={ŒQ%8;:"B*Gl|SMh&   imW_Vo3. Ԡmpe6\؛G3} Lp6~w lRvf,MMhXx۝MS]uU7Jxꁊp.Ad)Ɨxdru5wbηlْ{~x b;u1 Ok~Nyd)­wW0Ĥ-HiFV,F=tU $u)=I+?e,kxm+REMũ%ƵX< 5jK,ÍֆXn\VyûYWu~Vk^2`Ƞ Uf4ÔH ұK=5MQ/FֵP2g5,EHrOfffHIIa1{1F#SN :vZFY%رcYb]W))=m4RRR;ͯ?(+by'7ڵr<O ]:y~:K@yyy4Ovvve[^^^w{tAZ-׋Nv}iAɿo> CSM^V[hKvj%999G10)W'(YYaeu݁;hryi:t:zV^`0c`cڣKsMQ-VmM!OB   ±6c#fX6Hgi&c;2R2sL}~b#ِ~wt3 %T Mn.jz!r`am\?4F   pz8NNgPC9#zU5;W Ygv$bm\!<]47kiVY,* 偽3]Pnvy O3x^nfr5)m3 :t('t1Eд ,L= 7[e1WmՕ 5Tg&"G>-M6 Ȑg,,,dƍUoڴ1cD-ۭ[e#a(//ogu;uR>kBQQiiiLXp`XZٳ':bocKF p8jxju8QC_/;χNQ=EE_O@Vh[gTE=XrRB/zA5h&   |>N'. &.l+?I͹?ƁU!_,Ou:_/dq)Q6mZ V}ʪm9F˖-ٷo-[oκ*g -Z?vi6^#ga0p1-ǻLh9ŋ>䅆g2 hZٲe =z:A~?p޽ڵ?D222غu+.G-k2(** *-AAAdcgV5UIÇx<3ZDդZxFÁN xTr{PW1 t:cju݁:ckZ1ۛ2^7``FWPɯ|T_1 t:fQS܊dSI cJ2J=b4AAA9&33!C͛7/ټ,~Vrx~Z>k1oj@)//g޽ƣ6o0h޼y`q<%%%4k֌"ֽ{@ؾh9餓F:u\GMxFuC3\kV(,,*w֭th{FFF ȑ#bZ)))\TZwz<Fc <vtH^^3*^c4 x<l6!(bx%<,\ߏh݊<;*8nH{EIh ~1   >Á4hPp+qcISo4S[Y )Vgg~~+awOS˜y`y:w=bSrHII Vj.]-].%|vp8Ut4i$b+Rjn:TFc`QK:iua!OGVPg,E:7IUr1iWk]y:մlvv6tЁ۷jMR&>߿^OٲeKLv6˹ ifXزe فvرBBBBXc@Յ.,:*XBdfuh4z K&FGiV[Ν;)(( !!Jqqq}r۷/k֬s%##kҺu똼TuT6ZÇSXXبn7n.]fF]ࡇ g4:t(ܵkҥK-sN.KKKNFbr]vA^8 Ϩ,))IY]z*Jrfs:Zm?z|<.3jxtj ^ i.̢;?gk*7<ƍ'Ok1999hZHMKd2,Bӡj*|RHAA8ʱ$&&N (r/[?e\`;^`)tv'')Ѕng㣪IIO t"Ee 'º"bEѵ`AŲ~,* BBBd$g~{3yg}9i>r7_>4 \&_]s_,-@\~ 3A?Ks߇ކ]F.{<^[oi~zn7z^4tT]-6óپ}{D崖v-zff={d q2LjkT*ɠm4s( f3(Jj5 nw3i5fhFOxfr9t:VkXzF\NFFXB͡=G(YlVn뻠w2cbbl#]OÂ]n7Zï1J,XKh#-M8x[.JEQDEQD'Ecc#]t*2SXX(FB׹1Xz=gO G6BAWzQmݯ_OgJ<(̈́M4իWc6IOOqARQa3d2^?`8_?O$M,逓-)'Ю,?-q ikyއȌ+#ۅ2v.Ru=(--qłZ`0g߾}ӧOm `6ԩ|ly<=B%&&sϵHz=iGf#66ViR3j4Pb7=cKm =c0H,33RwH=T*.Q-2~*L7+-E_"("(dCki?ѹevE@fnAjnqhōƒ'xHÞwy"5c$enhqHII!993sh_}[HˍT_!6_ Hː~RQQ;QxWX(Ԥ:h g@+z1^gw^G>u)R.泻iY|t,O~}gioQDEQDEQDE1) w_OoO|I:l-˿ަ Jy9[arBg%jJdz];z, ~'u<Ԯ*=?jkkh4Wt`bʕ$$$  +|VL6B||<999{ӫEab4 ϩRH/m_mm-)))X֐\.bDžx her0JH@47#y<>jPPWk+"ǒv:ȉMI@>m[{)zId2:u4y-%&&gx<Cnn.jzAfffD􌀘Wzܿޘt:zzQ==䐛ˑ#Gѣϸiii.D=P(b?JgJnn@X__/U>5 IDATki{w-O3 l ۗO?={kO>ݻصkW_}5_='N yOYj6#ʕ wfڴiL3}lm%-w\8f b<ĄtʂyITNmy31' ZC35ۘ{`i;MނٵV& KNNwl$Cǰ'Vq^3W o!ͬ jm{31[.ϹV&dQug|j*DEQDEQDEQDq1qg"4YmWg2qtbț- aE7؇kxiRfKƉ|ʬǛq{ػz-cj3U>,r7UV})| ,{ +5ү#I~<֖#9vXDy[[4(sO/++Cшqy:Jχ~~YxG[Ht8(f}(]?ckd̙,Z(nv݇ qSh>zhPh&nVi-nWZg[ cǎQ^^PL[[D[g1f]cb^8yඐ==#E` 55޽{o>K~~~@yT"PZ"5c_RVXcZWqqq>CKh4l]Hˌt~ (R*ԖHʍt s,|$mX,# .TfǤr|pF5pPYYˣ=A<33DF 77sN:,njZ4^PJ%6M̓qatE;P޶vr9*J4g]^f` ז@s.LY[s.ՇGh5 c#GqFƌ˙1cFr~,_|<O1'M$0aBP>@o됸_~QPP\.g޽jҤIl6qv1 AE,3ο+W^y%߿ 5;mضm t:.]JrrrDy83?ͽz֭['.ed~d2t:˗/ma~[ҹ-{pyyy@jnƠ|7bޭ[rȑfL&֭[mcIZuM9T|2i1O<ӇSN|IKM-߲x#Ab{0'yfz_vy+K+|G>KJ=px}A9<">~wǛ9+-⡫z+b)|3# ?f7P-4y y{Ll YW'ѧZsϐWox@4o>ws1,32g0{y2ٌ92rS^StF F1j4"("?fi~^idp[Hrj5ViVn/'>~/c"ճ!^xwTS1w;^/ :R]G8drsnz<pBf]qyp |eWCC/q!~vdhN'4OaUG7?fDBE֒&qqq_M6KZZk֬AV͛[G=ӕ"r(޽{1bDr֯_Q\"i]vQYYIFFCp8"m#pQ_&== kF-z 0rgt:XnW@%xT*q: T*Jfh|+1)|v۽.(yT*8qs1X^alZS'2Z疘4^7x6s0p]f7~3x,R>[ew&37cg!6<;w5BN1/y*OڻoͯcR~*гG>b[!?ߔ2dDw͗宀Ejrщ]xeZ z"}n>Bd)@NP__"("9"/8UNB`˖-L:Շv3uTlقBhQG<b29 _c?/O:O}?)6>4\?jv4yL.n嶩4a=rHA/5Ȩ'lE4K. 4ϐP]v!D Hˁ&}⫄ںC[VWW>i{{i2X,>1ʨlq{#MS0d> ;-ш\.%㯛NK"$].^7i&5 S'`ւɄK{<1FSҳNX`k0,"Z;n6pװku:SD6A;@]]]2T}a۷O4E !o(ףHMMh4f,jckI_Ha4IIIiWk>#Q4@&&&hO%.0к([gےGf"@􌧂Qzu:8Nvp8p8>~ts8>z:NXu-žo#/6KBè\8ok^l>`U<=s$2ZVyu0)*`̿krZ1dFЖƹ-T[v'5y`dڤK"%wtkJ^-b bSWbvC5NNl^ SX:Z-ZJբ QDEQDk4똧k7+@|i^=g۶m,XBoފdb<# 4Mu\L1FZ0~m'6_Q{郎Z?!P3W7KoH~u=<2NP%5#O`۶m'Gk):,*++IIId2EuEd2|R,^К/kkkݻ7;wGL&nh:U"ݤS蝔V 9- .`֭Au7~].OL2F4 nw]wD[1BZ*yg}#GDŽĦ|0=X"M3ra׹jƫ y{/?ZyW1sxgc o<.6s\%,Z`GVn|Rodj\^)weJ&oEּ ;rԳ.f HCH< 0 !--z1>TLL !QETك&99Y#SJ粲2j5?~<'PVkϒzeэW9ön[{P, 4YPٷ_H'cbkyё$l~l.:Mh4|$%%!ɰZL>i_W^?#F2Id·N̛Sj')qtR7㹅5V!gyB=^cvc^Y+U61){C!X槧{?mcLB=jhk NΗ=oIݼ>32}mbۻ3w2-GJ&&5{VQևINnwyڵk۴ٗw}L&#))ӂh4j}6%wߤ$¶5&#FqFj~g),,(SBx1bbb1)) Dj^o͛=z4_}Ǐ'++nj"z _2h544GcccXĐH@(xq\ջ&_PzYO2.h(gqtˀ˹h7u4?>?'>G<<.uOnz{+WX*P0=w|E_\S{3FJ[PcZ}MCPrrr0s9'0Nu&{Hc6EZ=zjQtO!@*{qjj*z'^c؈K*l&==]>h4x<Q[3Bt<O2=Jjj_B_JZQ(;vK%m4#M |X,dggM_r<>z(z^op N^߬\.ٿH`׎NX@" TҹtvJeuFmmmr,.Ř}ƍ̌h]1X E؂0˶c@H nG7@Tnd܆oSnG&xRH/}bTՓ& ;uPSiƥ"&Vnu8s^ÏÆdzCI2s-G\X9 m$ 2Ț؉|&@EQDEQ~!Qʇ`}YQSr8 yg ۻ,`i Sl|y<}ghTg`I x9BU{ 01޻;F\Kiu׳}%993}.T2d ae f/`rٌEU{eɺQpevd2d*~ܕKOF/`]9Y+W4*ak(8^hül6z)-ZĎ;8PD0p@fϞMccc<sTl?q_kL_­}yz9 (WE 1z6rQ _TȠ{↳u(B3,1)wJVYˮKX;`8椞?mWs3Nx/ΔyL: g,;n{\{tQ*ȋx5>_v̧Ef^q.ysalo΢EXre7 v;YYY$''c6#jm]nfvF&33.]pȑVoJ2b>S{F^oxU("mΝ;f3ݺunǖ+IKK7uKIIb$RJ^Q6TR*FPy'M`(J BxQT0l~)4N^MYjv&z>}/466+z)yp8|mám4}a]eF:?y:k Wnu x.6K3q,cy<^d# fT [ #Pɟ̔]xݍT0V&gbڐW3!_#Uv;UWq\:)W3.f-Dž*~@jt> ^Hc\J.o{,v 7mbӦMli5ⓥ_F¹nI/0Ì| OD>C(碌C|LFPDݡ8w ycg!Av0xN+?{E !A>X.I/opWu|>}4Q#IIIDuI󇒯d2O*-GJ}v~WdϞ=! FI>>Ǐ3zhxMM N38t~gOzzH毛iMY'`0¦VZi&+xi&dm.aﶳ1笤~2/2=cxa~`'r2p]Xz cD㣏,=~?7܁q0ӉZf!<IPRՊ&TPpkR g0ҥ :ҥ O=fb֬YX, r9aˬGV:${=PRRR^g4 Ӈ-[2٢TY9#//uſ`:tH4DבvJӥ;v,D( m6C4bȔbٚݶmv.]DJL%=. anx<$$$t~aT*Uz<✂ IDATG5k?܋̡Cl.{t)*Rm[rgn7QDEQDEm4SWFCB7ҵr_=4u'U-IO^3nY(Lxhv]{,zT"vޮؼ 'b2a17)1'ɴ3Pq7x14Zx‘H@qFBCbL 1*\E,iTh*1{eȔz\ړ>܄a_8/;yebٗFQ|jQ!4S8 Y91ZNyD66'u̿mzn/e:s4a_O}OEsIx'GF\/NqqY,rcFpdh_H7 Yy,ȹ{:AÈBvoB_D/9d/z4 Ē*~D H6!RϟM6qgJ=Z{nFVp^FAatj .Kݻ7nz[JUWWN#++ %nۗr﷎4h҄~~j+zǖn'..^Offꯛ^f ׋Bt}z9rxd40)Jr^(Jbbtgh x9}JN=y<ւkϛ7Nc7<%1>2 ,i^ n}w=7َSl6N7o]ZfzOY{޷]tp\ʼnAdcc#deeǗ,YL&"gLKKc|<3'5.bJʜ6mW_}5ORZZСCp\bR8EY|9"޽{7#G۹sg>l>۷7ɿ`S> I|e'Bɷ^vż:Y?}ݸn{9ǎoan07Bhu?,))Nbbb~illw (#СC51 =+W (߹sgv;.+h9tECzƪ*:u*OVGt |/$Y0EGfqxiOfHf\__ٛilkxkx2[kBx7I=BMR` r&27xFݔup]3)9i-eA97^ tO^è{("("C29xK)w.12LNbYѡyr$=L!%Y7pJ}X4L ǩuS^;5UJRu|ȿ,梅xo ~u ~BO'"s)v@^R⺢SȐ$s)}_}4.*BCfΜ93 ̝;zJi ԃϿs2xD8޻E.i-':w?=Y\48w %^F=sjC靵l9cxF=LzK ֏wa|zqyp |eWCC/q!$wOMmw3:(V:9t s|.*ڛζ ,}7{ /?uA)m&INN6, V(vq^$%%Q[[یT$Of3dff_'L&YؿvEqq1Ǐ'++S/ջ=Q2[||H%\.*bƲ"!y-f7׮rHR5yȕnDT82g?SDz(y}"fSnR<67N$Ჯ9WT(}g^/5#4yHSOSby͛7h$}ӽ{wh z޼ysP*@0\s5L2%`ݡڜϚ5kߍͮ;{/hV޽{2eJe_ ~GȷnF***߁ $n~VWW(:' t~.Lpm6>"..ݎZu8p`_=cK r=49#[[9Qb7!!+wL*,tRTxD*Á]ʣ"("/.koF/^g-Ņ1{dhad6LN']-tS/~3KHY}dl<;_&n/|/$ '&&>|-e]leDttZ hhZOjzj5 .DFTf0Jy'd'_8d*Z3K2/YwW葡OFFGzRGpӳC<V"Ad2Cw7aW\< ڏ2 ,{o};5mxhi mEg78d{wk=3۟ SdwwO= YAAa} Ld׷!mٻwatҰy[[,_Krr2˖-4駟شiamih4ܹ]vo>222XvmȼBK$Xn޼GߴiZPP@mm-^W 5-K#n]6n%%%"-PMM & Rdd2؈\.d2-Pl6<0p6z+(WbŲgס>4 Sm2dM't6]^'Vhy5b^/ o _n%st:OF邶3T*F@&tj-g׭!(_RR #Gp5Ĉ4tY<(nKw-NCHV¹`b|GPTTǏZ}DOe_SwAylR}RKz_ȹ/䪚cAϠHrveqy]*4EC ypqzسj'MrTo6|W1LNWM)L_Ƥ1ݷrhR|YhRP{0`^yjkk ##\pDStyںF-R}:˖-c+G،lϼ<:w43p8L:nݺBcKr1yd ƁV\\,zj^/rD/ÇLrr2UUUʼnROH D`2'Ϫ-x_HH Q2xcqAPKJ(e* .wM[.ƒI19ᴤ>W*v:#>o:{ F2u|yM.4`8X'>_Eyy|Q܈\%w-4Jt8Nnw6JR: JسgOzƢ"9998Π;v 777$ZKu9t:Eﱌ _~aذal߾]WoUUݺu#-- L&Svy<rss}{^ĺE=ɤa2p\7@R  /R=iP2A DJ%o[)=0--ZJJJZBA\+x+N<ɛzJF)! T"3_dLɱ\"/ϰ>eIIt .3/{[9 o 1N$ǝeC([` tvmlذK.D =ydV^-r\o4?u[H)9~2B8i;Ӛa !Tea19z"cA?PO z袩VQևI\9[yߓqE\.|3Giٻz-wCxb)Mg8vNג|$tͷ`钒ׯhH2L;"W4(nNQ\\96oknjVu(p8>eѣGIJJ CǙb!33GԿ5}*oN)zԠjEczرCKOOgݺub^n2L_.oRW\MF222aC"D A^W0 ĚxBRvqq1^w$o^eAn~\ڲZg3?R]t̠9|ѧ^LDžǸQL7n7 %%G8@s5+:<emw2|9Mߞ*h6uN VJJ UUUF@[߳DJ&P–-[T;BaL&1C8A+,R=2!*l۶ رcq8⋮L&#++ ^Ϟ={ذaF)"("Mvnz'.yzTE{drS˶b>[.x/b/v/Fnw qڹ!ΔyL: g,;n{\{t B/O#ĝ= 2ܕ1DTyL}b&.qc{VSx#O Ci`χasBCY3oF~^83Q*Ui9tRRYYY@!FhKmIn233q:>_[Vv*wܙ z`_K{<Kdjjj8žnїm!K (z&dffcf3555 4hk$Ę-;;[BS*bxeB B]$ȴ4TkJj2гi`^J%z1F0&[հpwqLYҿh ro/};qDWb{XYq[O"ٍj :5hԖ墡r5X^93FZ5558S\\6loȑ#O 0 l]ڟ_X4,JwUK:߂ nJ>}~/HLJxQbcc!]UU%eȷ^}hAu:H3*TUU1f~'ѣk֭/P bҤI eBOQX;Bp9>SR Hҹ&3!P^.j5v= P[ xx< @%"?&Z2Ý[e4[_Y>ߊ .rV+C\R l޽ٱcǏ'///څQDEQDEË*Al8qsdBcZܩOPf?v&vTcQ㫘{ǪRwtnnR:㼚7?a{m=d7A];1N)ep.= n?)W1bסle˖-Ʋ}vq#4kFRii)nwS<%ZMIIIH}B# Qj:r;FLL qqqf3V$ >`)1Eږcǎxjyddd`0a=f,7مq iӻwojkkQբnmG!o>#4 Ǐh4dbu G+4޽38BrrÇEHZY'6"qz `rz5A011.%%%r8p r>l2sO>a뢠 L PZZ*jl6[޽;k)?[37gͥ*h^.㩫_~`G3J=o39<agH. G.2Eү_?<`hrrٳgOhEQDE3>c|,4Q',"}qAt.t`<[0wuI'"DNޛ9z_njaԠ.Zik/≧ۧxUd)--eС3J=Zy'n:wΖn>#hZ^|EYHHH`… Fg"J1 \.寮p1\t-m^۰OV4'2XHbb"&f:.G!t֭ttnЊm IDATdtfyp\ѳgO֬Y/Tڜϊ+&㞠g0BOT/@iFiBYրV>$=Pw[;t] 6? <̈֙>ݻwڇ1/7 ù4aM;̶_,S~(ƌ+cr]~oH*d21qDM\RRGZ5LBV,O0BvMh2۷/ClZ&>>G.==GՊF:H$%//Os B6fϞZW_m%eXD@ԩ[mm-8>8N'oC SII{ff~ō_&xiޕGUgdL&d#;Y4l"bBq;bqZDZZQZm-|HQ HXemI&}x{g& 79s{yvg}^n3TL0ib<:::@8vHR*˭OL6=h4Rp~?J%$ +ёYiΧљ?s mF1_`0`˖-HMME @ww7ڵk5rX,ih4RV^ ł?]wq>>Ƞ WTزe ^Vcb淴жN'SHf۶m8|0Y2{ӿGW\Aj5v܉qbHR( ،Lȏ6}At:duoB*REa455 gIIITd_^w$iAe]ވsW"33=z)I$:u\c#RL}}=_YVzp:^2Cmh6\y](g\2 N3 \.Փx1e|>;N|uJ$B(קC7Ȕ>K)0yy;3-~-65abrݻr>1i$aʕpڵkYu265C"}+::$RHGO:^`3N4ŧ@b|Yqy$̂Y^ ?T5y,iuA chN Syv+ax!2w/"D!B"DEy<~Q!bs ࿰a ~r$K;<(/5nށyUbrTvc}~*qNhq+PX0cpe233_1''po&bYn['N@nn.\.`N&%TBVV<؈VLTUUʒiш!;IҸa P(cg4L0L1ܼ@NN!ǜG'RWWGi/fZݜN'5)JA=tRI{HTḂlN3"=T*>L큜=#YGr@ @㝩DOxd J%ƝQ: t^LYA͎1x}Wqo[Q?V=7w\ÿ`0BzFbbYӍ\~ƲqqqNHtXG~G6Ӱl{,I^T]PFh}fּ}F4rQ__jk֬Yx"Of||<!111tmݸ`1ǸeEKH <ٸτʎh&0~V0{0"ř#/]ݟ#W !3聥M|enj+SPs+@E*K05"dicO'Z;>1K|P}U AS@J*rP~;,^6 yQO3y$zϼl?~jB" P-!׋y@,$C򉑁=i&J188*5hvjA Bz1SH~pp111SNRz:, t`4" q6>m2lxt~j>^Ě/ԥW[} ݎ@ VZ-KݏFMSHZ-dGB(h"从,p\{P(=V0 f L b45?|SxuށnNdKghpM4Fx.Yt\| 0g[O2Es@,388HUqeaFifۡP(XK#bYn[UUU3gN'*++j*cԩbŧi688Jg47@׳feebvwwSO ˈP/E3&a=rss144hhhٳr`2xQ{UVVh4 /d0q4l%6 999H$eM#GjEnnnHBt,O3!fh,.<1z",!!nn7Z-,ѓ]c?PvhBb1<88H?y1$k~\.c1ޞfexOBPPû},޷$ ۍ &Lb>L4)l\zƑmNGuaݿ юh45}t`ٲem9N$&&򓒒[IL>D"G}n7Mƻep8j^Qau;6HOOe= "=I>v :U6!!7N'wtt &K"D!B"LLWZLg^—vk?@e?`_q?>:ymogm]b\8W\a;q$hƎ;XfQ'.z=2 **!!aTUVVbڴi8PUU`8Yff&&L"fCz=+w?bbbt:vG5>'Ž93f cZ歭ͥu9NA4>X,,H$6mZTykxČ7L&0\8 2nRNFpk=&&Z6,O[4)&&111m71Vp ~v%dCbb"1&&u=66IvnvEϨP(V)(8pfbQXXڰP1ێυ8tO555(**8绿@||31b dxGECC d ӟ|̚5  >l \v;/=#=ۺ~1B `@3N~?K||wn>5B#N+_?2g4 2jD(J\PJ`[M*9g@"$m2@AvABqǍD DI2H Wi%2~$o@TP!)i/BtPhrx%gs/Y_GdHNҞ 3?N$B!B"DGo @rrEw!))&%%kAx<1c";'TYX?ch/6|S<7;A?b4e\l۶ 0%3ߏO?4$۶mxAvv6=-[`Æ سgO:{{{k.\}m HKܶmY}6m#-7M{=^fvލb,X?c_b We]^$|Xį# f>0rQŷ~=)=``QT*HҐQѩ1;;;wl$2:ɓ']RSSQWWv̟??5VMí'55a)>vk֬ #+/DҖZdwzFR@ @)m2|m/MbE2˪jbhoo8q>k֬8&ʫT*!55UP>{'99%R҂SV[[OII 8  OJ~:箱pkOjkk@ll,D"܃g!sp ̕gp4:I>_htd%=DDlp\z0Zy~xezhdêU*<.JcJ _S)ϔ>$E$zdeB֓pPaʑRA S=&"'Nt NALF0NZG>$g(QAVe#rM"D!bzp4>"D'B`ĉؿY] J5++oGEK|gxkٿhr}:tzL9೴a@ߟ?b]3x="y3In#>>~Yf VZEdǏqwF,j5˫^CUU^~j&T\: t^LYA͎1x}Wqo[Q?V=7w\FUrBp$$$R]AT*V111C߻w/ONO}ԩS˩~2BuAS8444`hh2,lLL Z[[hىD\.ttt qqqaT*hooGUU aZi|}t|U IDATT)---9s&o&3 _'2111ꫯXzC鼼<74`)J#NO3Nףƣa֩ja2ٌ.殷CCCCZZǏcĉ!544Clvcbbhw^L<3ydTUUb?566R>R655 !:{^'VESSy~ zT:zƸ8^zFLz =#0l#:x<8q{̯ZFww7&L5h԰DJ2X,Et:GDH@}&xGCRRRX#.f\\ =ckk+ CH[3gѣG)-d]P \gdz Cc\pZ|1\c^4hk6$hEc@\-*nWڻv'8= HO!zm|c.}&ٙӜ5 yb\8ݱ>HЍ f" .ozdµ]G^rƼ.έۏ a;a2em bH|B{O;&MAbgMpQYWxt@DIyD!B i\َ B#ƍ^;ڀoB pga=LCڋ %Ö" q6>m2lxZXPkSo[xNT/b͊-> zUTUUx(pez=d2٨>vrssClȈfL>O6 & Fvv6=ϩSH?3`999p:h T97-Bd禧Lٌ ̞=^={6L&/^qNtfϞ={*{5믧F`]Xz2ܲu> Ch4bhhzOp=2 7wZHOO]gƑ#GXRw/naU@a碹}3sLTVVbɒ%CƤoAM`0( e4{\x3 PzF2>rH$QBϘM.tt008raaYD(//\VWWdB?JhB:  |DO<"Vu\XH$#G._fAѰ* +Ugnn.5GS4r3f+\ܽʗT|yy9y" 'O]rvx36663? <[-0 e$FE!D$Ӡ H fܲB^j3;PYoض !WBU[!u4{_hStcz{*R"D!bt?zE!B\g>~j4,8~=L-B]+/s?Nu2Kc6Ef'Rww7=czL&(Jttt 99* ]]]0͔)11Lir!ݎ`0 \pէ|d.둗G_yzɓ'qiŔtصkn馐zʨ|755xt||$8p@'&LэC BHy|F4>hyqmTBF:f~$8zQ)󝝱!ڽqE!B"D!Y 8'j>O֏>Kxe+X}R%xF4^|,6-$ WK4(ʐX;Ve,O;> Z-4 &M}ŧϑ#GX%qCCCHII )@ctvvb޼yp\?95f,pz>Ã>H-\۷oÞ>EpBlذ!lbb"T*WhĮ]믇LϘ17oSRRXހ]ӱ faҥ!m%%%1ш@ Nvܒׇl6NJoÇq=/r+HhF|X_[[ `ӦM!cHƅ䧤?Dn%%%4 ݼ6.]Ze5:q[pU;zg;P(ղKp5לUH=χkҘʕ+y)**B]]5V:ML&L>=7nG}V<@^z)Ǝ+=#sryȸU~!􌱱ϑw4O?4nV&33MMM!& yyyxM}z$ sO2q. cN;ӍxiI$HR"ע){?]G F kYWQlWo!B"D!7ŸyM2_u>Y GX#{~(!P}݈ƫ$T8$&&fi桡! !!6-l9NkAA, 唒ӧO fI<OHL`h@<*:::AczDf 1B!==---:u*+--EuuM&kJKK!5\_׼k$!!*'NCuu5^/ "cΫNC ]dny;97MMM?P%ܞ D|NƉ"7Z܃Y2 _+}r <[jPx~:X'UVwFx3SNuǞVc=6jű3ruKNN}zf?:[`0f+ŽM$z|vmũ7zƶSNQ41hJ 3JRtuuƧzIn+;w;v _=+_"Ё'邂D"ngs56^999QU%Ϧo$#m#W#,v$o3Q͖MG_O>A"D1jm!2,{;ˎ @PT\/F{@Lh"3 pUS&R={EqqqHܠ"J9V)GnU*GR~ fP*0*zvJIN^ףE688,۷zE;HOOg;ydH҈sm6dddЃVF ѓ)C]x1A=cJJ n:n;df30ThkkR ͝FfP<:D%%%uqL8{zzBbi4 ZS:3_TTSOL2Lzttvv'w/jj4ޏ_~8$A&}tLc> "kTQ=#0 vuGamz,ffۑ>b@B[ۋF̙QHvcV.,R4fPy>!B"D!Bpq)p1`y8cqq ؞hˉF݁+P _SV-'PSOOmugX^v< ;"|!V'N ~a gga1ydYի!TUU?No~ٌ /eeeX|y<}ʙxQp,]r>}n@ lbb"N>FĠt:qib̙0yOұ+>=IGRRRH~#|嗴~VJx'׿UsaM([h.JƔYnؿ?vR=sjO?4+̝RZqun͆4n* VP6:tѣG1cƌ144[naɯ^**dNT*1|,Y$dLOc԰[PPAp)<&L@Orz}HLLĦMƏL2>h)i V^-v:100;wBV.D7ݎCnG]vϞ=4m4i&_%'XRܲ@۶m8uj52u-^=s F|j$M[VjVѣGQWWGǫcM`ӦMիi&$%%Q<"wO'000ZcYc㹶r`8\BR R JE=F.y&L=>/`0k3|h4!B"D!r1#f઻V"WL?ŀo9"Dhe㢄Po.Yba h&"cR!+8?݊\$rȢ904;wnX:u L>|7oy`xG/2@yy9֭[ǪrKSIyg4.>Lddd8q"ӧXsiiizꫯzjf~XՋEy "Gܲ_5pw/ jy}go:01;::Akg5]m݆xVe˖aŌ3^}222紴4\tE!.[eT" 9;;{a󱬱\N X;1T / %&d¸Ә%&Wđ 0痕pQKpZxFzxSC+B"Dn{Žw] 8"D/Bh \)DEtU8a8?Y08bǎWlaez=l@& ǎ\8455H(--Euu5>Ʉ?%%5>oCCCtO>͢V$qµ[4c=%ѭ;b|X1N܄appwsR_]]]zƢ]c|c{p-@w?0cKF9UAd25=#S\&C_Zvc)-\ ]wBXݹ:.C-ߪ Ԙ|~~|>"^/~?^/^/KŔ!2z6ȧ/%h{ӑ.C B~;+l~Q:GU_eNFzz:~]E9~ψn,C_+ry:'ݎڄ^9HO4Pẻ;ӊ!B"1 ׇkF .ϮJZ&~>HY |)2@2.>ԛ <=PWXmgt+xtřaEHD ps$BXSǩo g:M̻| }üyg^sgaƥ;Pq" öm$mZQQQL'$$wFkk+qF^7Ch?caƍضmL&=Ӈ/rՅ={DԇY555Cdz=N<>iii4?%%z0UUU!55Ye5 SNgi!'`04kmE;4ӇB׳G:&dN'nwTc N?fcǎb>SɄ1]4'÷***w w\CÇöE>YKiii4ܚ EV&(^kϵ.ƆJjTڇg=v-w/^uV|G}Kj@RH7hFjnة iiiej5`6QYY]hѨy4F JG]@󓒒ΒaRF#M|fTV,h\EEEk)zOGng󱬱^&wg, F. I_ŕKprQ9rxy 8𣇀IWvlH? u1hŮO+'(܋~ n݂?Nk7Gk ogz|\<o/ü_]-nkPf}=֣,Axb56~|pp!z^= 6/G~n3=Ѱo ʯ|=<<+ V `m7'GK@_' V]G_Z;~)Nv)09!""b0pꂍH͛ S[ ?>~8p7(aWX> N7xcLEET*233aZih| ,]/cP(j*z6 HS}9;K/aҥb҉q!oHF3&d0w\A=:?Fzj/… S /s:w\@P5Hl5&˱jժj /O=VZE=5"{e˖Goo$P,Zr%_ĕXW3ʵd&KӛQyZ"D!B`b`ҟ^{-\r|vp~|wg6,+&X2ZFW ޯى9`r4"b˧ճ7ޅaL?YD\u G7́$B{1MU9_@ñC8`*՗#b-⁹7M}c@[( f)k/CNb6.N$~fMrDB}em9f9>$z~Lm Ǥ_  aHfLiӦ9=z(]9#4a>466- ~ضg'x:H gW"bB4 hkkV=Èǒ`ҤIhjj Dh6v1bJ'Ɠn1^Hp8X* 000p2]uB8{.3ݶT`0Ȣ?$i&Uai R)R)'i|1˄3̑/f$-Bt8;.Jz;P{ N<kb-އ' hmxO:vE*kȺipy?ۢh2`sYI ͮjn7nXS:_YqS9C4,e<(Gd z"D!B"d@FT <ƖghX`;Cs,\gR( 㤣φX,Ni/r~t}Kә?qҋ O9?\,.!kA#t?@7OnyzEy0SqSwMA$T-?a"ub:-ּOޅuBGD:vY##"Fǂ.Ėg} ߀pf%":\?˰!6y-"[W`V!l @C^^.\۷ʟI;v,*}|"%%WF&a``6F1?իW'=ë3s7~)i>|XPhң҇vzHχnfҥKHtPHHHB2 VnNPTT4.s74SQ`ZˣtnhkСChjjٳ# `zr9PRRHL#Q__2G[h4)))0L,O% waƾ>|111ʂbW(x<tww6T*r_M㽶X1$g,hXl_@SY3Wh'נG2qgh} oS^,- n/־+9kPVU.>Ϯ5`c _3k8w(ub/[سDSinM|`_7BpV7 ; AIgзuYČ&E^ g İf"D!B='Zm_?`glLHa\o_Ha%h8cG$*೵J t%bd8|a΃x71]Vf̝7K sdI8xo?KAZ?}.0x>`£@2 ̝ K^  yo]~f̑ ؑy~, y6MY.Fw7yJĉAii)zYe0uTVy.MB b҇7t>oLzO M:RE@Q]uu]D!Q.]AP J @B&0LK<[r:sy##),,$''ǹv T)͎;ƢE|(hfXo>/sKG}vҥk;2z+6ͣED]et#GhouRXXHhh߲yksIIIkc]CL*c|8r-[^:vKiii:tOՍ1==DHHHsϘNvv6-[l;N:w^F:_UTTt7==ᣍ\PO'c陖DRZO<W#ޞY}3>RO0J^1_#(m)K˓~˱[ҩû'~>w3/%J9r1-  M)hy)g<ÕpmKG`|Ba{wxo!DU#^<+K> :ς᾿ _Q {Fv;ګ[nRuMבO)݈}+7?8ꯖCc3%M'&N>UuxZ}kZdk×\:֥>Ys uBG?G`X9яIO1}r7QFDL5zO<c@&N>3zX>0M ڍqYk {)pXuFp.Pg;\3=[UYΘ5KXUڵ4bcc۷/۶mg3tl}r!:Ĵi` 77yoGGG(:DRRSX-<<^zLo߾DGG7JՋCa4o]:thR(&##Ν;;ƛ [n =#TY:tȫн{Fk;XTTT9ܹs ""##[lq]zth,EEEDDD8Ǽg=cݹg#))۷;(JSܢ"z=6l >{FN紼l{;u:ٴhѢ{@~vvs'5t=cRR6m`РA^7((={ `p~<>]e;[=5ױ9'tkni84L&n㳿潇l"~/.$z֞ޭ'00N/_C#Q&0\;wWc\"}Kyk{zbddJ4*-Z"5b;"~M8 [;uʡ%.wYrX1{Nڻd|b_>:sm1xEmv @=M1X|ݸ뭭Vڏ}oƾXn//.'m?['x^H8n0U8[sb:ϝXyA|! /bBCC9x mڴ!//۳uVƌ ~zW+e˖qWL}ddd8-`24;;^SJa QQQ”tR&M3۳tRBCC兯oaz?Lee%W_}u^v3X233nr644(:7dxJ<+-O###9}4Oڦ[nNE\c]}ؚ5k/kvF#dffiL6ͩ(lEcg%66Ygt`wp}aٲes'..Σq֭[yη9g CR+tXjbZZ\J]UOrQ?fBqBGlL|lC5?}4_>֏V5|z43Y<4.{#3xG0(z2ixp<ފ".R:OɿVF@Xt 'd3Աj6\Vg /cxz.g^Vtxr=;[9VfiTAAᜣ"a (nG&*v*d^h#8m&_i/6quX 2ɮ]1cF@/ |@ee%ڵӋB~BBǏO>> q瓓پ};=z!CxǸkb.^z)|5^B5鞗Cp^'X*++G2hРҏ ))ɫ_fst mc#GZ;vmۢP(<}oy}~C~~>ωITTTQQQ➱C޽y] == rQTTyyylٲAJEEW7aaaGX,>`jv9p@;̱YUk`(󶖘fXy (,?o:3q{s^q'_$DfEer)r9Mttyb Ǟڨ1,OJZ^Վi3M(_3gR   pαRr$.\16q2BiP?!,>yn!f <75;DPK,UyOAAAzW^w&''FCHH$$$+EIII8p9O2ONNɓǓۧ8ak[8GVV]t~RRsmpok׮ڵ luφr!ONNIII9rĹNC]9e uVkQfifټs:4Y;=9\z#77p9= ZmʶmhӦMX9~DD:vU/w]Òpd>o3j4Zkgfddx 33^z՘k _?vSW4KfVKxx8eeey j=JttaZ{pgϖ{F8us=wl6[xJ88uCT.M@~μ [U,#X΍ a bQAn"15BEaMi\F¹r/<]{j?xܳ:c1jKϬ-~1a>-+-@4liqM6ҳgO6l@ΝILL7E-ZSN5kixKJϲ[,28qZWN:pV,ڶm^wV_KW۶m%)) ]S' 0di9 IDAT SN5wfi0Z9k۶m)-'h:p@cS^ t֭F?OKKk4s5'zOJJj=#@ϧSN:u;w\q3FFF:_7dfRRRjOJJd2՚k _VxǍf5;tؑ :Ʋm6:v(2 c\gt^`SgTTMѠjLћ͛+PY+ωҬ^Hh*KIDT  Pȧ7 smռz'i)/###QkVILL$---Z׍A^׾i&(FDD8`0[7fm:xٲeK ""Xjݺ5MVs5'z#::ٺg_cǎ|lٲ.oގ5'z=}G 8Nyyy[EGGpBv Tm۶7n=ߋ Zͅ;2 |'s?|.K|ο| sEףjth4jOׇsŗӺexr螾?bi&  tM 9~1 +ieR? M:q Cg|c>g*J{NxADAJB\LV;]Rhy[7,)2z.sWb'J3AA?T]r"{m!@f M&򧷭̿w%Y߯u}:U\>islbZg qжjH|)QsY_RsUhZ^GR5̛GOkyJtQ($adLѼgs?0d_:+耶7&S:+$  sQAh2[FIU Ȝ(p֩t*l6f٫9WRf b]cf:纯lHO-gLr2^_PKgʌ^}xfl.F]։d:LYOkv?1kk[a<>Rb֧v5f,H&9Vٽ'`9_TIt9` 1E>"Id3yο/Z1h?NSUpӅ)`SW8`˒;P}"jW-_ q\wkh Mt =f~w??rHPy0< k݊`N%"$gѦSLJoSA! _rHO I7JA8oٳgT ̉ ^yWa=azvW^NVX?MT6twn/[>Š?_F5nYmbЫsKB27vʢU/[*Y&ǖeOs˷=>/A~ۏ_gCg9f^ONڠa.9uv➯rKMbl6;vSi?ћ2UQ-Bh&:(^5]4Bajs/W4Q38Q (Ɛ>̀(8Q%,Ce=ټiVB$#)'%`/ZςŘ/TͶ{[ح~dF:Vʑe$iNAAAAAAhD\X.X #| 6dM3}9n vk9'wNaUR|Է(ÏwzEP_rE^~/ՠǯ4>p{Ru|x$ ?|uLTW.<32y^ɱ xѴz&_;W }8?q=b%哲Ii')YFcS\wu6ч{H{KVo_d ~{Bǂ汷_}샵՗J3{RUv_`-3 ٗW?,zSAA( jaiZn碱gxzb'?1Ebش)\h_νmd\ ]՗>8l:mF?[aװĀIw/S/yWo_jF}PAA:cٰX,l6V+fZZNK-DZ9͓FOaem3_ia[@fFCNE/㚹{15E>b(FAA24Oƽwƨ'Yz$2hUuCvxeSAJ,h5U*T< ͢׸sP*dFHZFw[`(;J@ItH9[dQm11>xB*.6deQɳf^RRgҌ tueu)UUeZuv,?zc%GmXՃ[/rz+>|}ҹ   4쩤Zf6k)\7ٌlv*\g6tu)Z (ύťAIpu *|m[g6rŠ5g>}Bm5a4c(/qYH#F]-gʌS{v{jH#ff=>}ȾOkpǬ8.ۊٷq HTSw9uYY6.փ.%ʥ?3䚫ì7şpt2Z_&S9'[VH\u{*zk ܙnԁ0|Jbq꺚Rg_ɓ'Ťw@})ih;w4  B3.ϹYV¯#D1m[Sv*d^h#8m&8Sx|$FH3?!lgPq8dn03/yT| sAףthZ*}D9O{zvgv ]1@mNWkѡBՕg9g<łu8ܖɝ>.瞄=\BV`dwԊ9`+_ϡy|8\NN̘"_Rv$n A<ߗH{h?NSUp S~a[LQa+d˗HםLt =f~w??rHPyb8ib \>ָun\GN1)5^W ~7>}T  B3W_Jh)}>z&$>O[Y<$=ͻ~"vY .ǗўePk txa0g^ E3=)jU 隿"WNܻ 6zno lEYǹe$~pv "{*n'AĉjF bAA ,){h?=yޒ3k{2_ *tvt7rs[ۈteEy^ .6Pǚ̍F{] s0J^J͗r,P׎77}RY|(U]‡GI &<>% 塀^XnCPP[|%OD^GSy|h1_~*fՇ(K 'z4g<6|U[|QН6qX" K9K IDAT}VY9H=ƼRc =x &L@ee%:u]dM6dM6&4˷IX9#pU\M+£:VGV˩ yX?be H'*ۅF|]$cM yͣ}^XTT*QTT*j۱cS*N殔`6c3#LXr7'jl(kX,fs EjXk9񔞫՚BfղfS*lyśqM4D+?F_Q(Xm+jMT* NTBG-@%'21Fl,b3& N`  h*`z$H)>({z.d|~鏠 l,{/O-nuv9rb]SرTTbk``(`+ȁ2Ǵ@'wpV;w.Ǐ\`AAW8L0f7iv)Di_dBKRhjdSO Z83{9U/dYs)oUټsdYq5/8̋f׋wUh4t::VF]A]'O}Y5L&n㳿潇l"~/.$z֞ޭ'00N/_C#Q&0\;wWc\"}Kyk{zbddFEV`+/~e/Z*9-[vTK)n&aFS/qyxucXrX1{NeM2 5cMO&iPC\?^,,,  +ƻ6V>/Gt\>Cݙ,zp <#=4f<8AoE|)W\ǧ_+Jx~ ͩ>3]I+YLw 9Ȣ&UC",&uZͧ344B1 tZG8fNQjˆ CSu oeFAba&}(bO8R 10-~qף B hRۘ;k*zJHQ{W0^q >=lJ]mv̍2=}s VсfX^0ד쵔ps̱1" ڰa&M?._Khf'R_3ifnaxi`X8?>GRzjZX,,KEV3ydV~N ǹs2n8iA8eKKҿzsAlΠ՚`m-bdUBĥ32DAr9TCˆLL#U, ?[({2w\.HpK ,f:3#F_J_/q2=ufWN`ڰZA lqBGrYETSqrF׆#.'Iila2 RP&;џV$(.c5)(-60xP&'ٛH39 QWpd`xR|˵K/w9Cг?aDf}-`*zc$rbgl̇;FQVE蚜H2#E{~⧃-B!=[`rXK/ (=;b:/W識hm߆mBJ(   +GE/1o T*kYћ|4AC]h۶-999TTT8B||"ĂZ.fBh>ugZTR[@Ŏfu*,BR*#D%* `S nyT{Fpv(Q떯7bT_%(u!GĐв5-b` ͌ryFl؉O RN;/NFU^H]Єic zZC:uGZWQ BC_r2Ja(s73aѥ*- XKYU*Q \tS0"PnRT %~P%fQ \8E?0uL6TFY>$jZoܙ=#1w< [wLw!~IolF] 2<*K\RJҹ\O]~ޡ,slu󶦙kiw=B BSb4IJJ";;ŵV%11R A8HS"#ޫ/4noCx;&%ZM.Tڮ4z6c&˽0<ꇙT>!Ć ne&24nD) J)>T5ۚؠFOoM$>Jn3Cq눗y`IߛVWGe . 8RS|}cE>t⚏/Y.m33EkSGsuV<С'&^n2ѮA2r,Q5h$11\JSaV״AhAR1^WDz-dťIР GOFlhS:%ʊ،C4Qauv m|۬-4!9pU=s߆bXZ@ 嘪G!%ԎMQyn2RN(i v?'l%k#he) ;( ҈|&]] -cb mA9y&g2rWuUIKo9yerC,naʴa)-L{$9a~r(ê۰YeD0r ""6y~kA.<ʷUM_q=Rw(jϹScd2oq'm)NQ^'7'|-Ku Ku?0[ O<=p#Pm|zi>AdyT8wQ<:\],z[_{O 3DZSZw?ss rv^~{'D՜[1p aĖi<~;|ØOxi|]ۊbj[ŬOcv5f,?gqu=tc.BFtۻ 4m$;>@J 4g(QQQ! 3Ah&(vu&sdV/MX %eq?|04V#T"vM<S2.yBF>[v.%\Bܠ%f׭lCl9 {`Eev@F\]% 8UWtA\ҥ%!J--JNzZ<Zv}M3i{ZmQrUeX uhzNSaagã8n5z JPQꧢE"" XP@ A!HH^GaM$=̳;3wsg9WɶլmCАql;fΨnZw:l'ATv7c=+_.Ùz Ov~ZDGqi? }]?q|J4Qh v6'I H?*ph4h4Z-:^FjVةBs߮},m71WQE fفJ_Ћ3ǽ(~g֥Zg<(v-g cܴ>^~eOMp5f'۹hy/3*|;_MAUc_[ͲJӨ4'U"{ S3X~ZO+vY,lviHA8gq44LcFOfT;Ѥe7Ea?fSKB4ƞ~#;gK<AtDIUWY~a$ R,| glM'rR!ƾ7hHl4#vfJX%,?Z :yOc6cx\F\E8rIj/qC:R[I6w_MU7JLZWږބ5Up?( -y.HBLb ݮm\=t52qt&H `08% AFtZ5*f\O14џnҀ-NL$>@u2,:`ba)hAI)Rchޱ>!thժ 2)ty;0uMǨpeI)qTflш@{m>\3V.lGرaisGTs Aѿ+qhW"٥O\CC`$Pt*VS1M ՃDfmSҶ iAnk8\bUL9Cv7WEZvŝZUS(:lt&kd7ټW,woG$;Z% ҏJ?*S\1`̼۫ S ^ՉfեU^MD3ZXH<|MV~v~e1r6;w0ߦM:Q 9'BPжgGT/nWA kZ&ϼ<+Uh1fn\1 .0mGJ~dB&+'{J粌K`At QɁAQGsK$SEQh4(JEEdj\.7|/|oz gecu"YO##o-zu*3G,6'Em9( nW*6 hs4C;Z~򝩺||_̩oO]yQ8D? V njVR<=#ՠN!sKJӶy ߌ$kI,<,̿ucx]kJ[Ɂ9ߊ!\Pg" p6ԗ 6S1S!-# i ˙e3WO9T?j?`5M[dTjX’8:FU᰹twq\K IDATho1q FpK3ANGBA.8toa_p#L;>Ȅ`>BG-ZFAT[pw빍X½.=8։hfly3D_S݇ JOrzrtp(&{{JѬP‰̍D lÜ_A ' "     B-En[.i>_%K󖏧%zoZUur>.uLya-LO5-T8-J cpGY-Ҷ     P bbkEW2W^y-&{Ѽtr؅ u()/Z      *Y:Wjue[-O0w 2_1|UTyfy'7 NG?3Ng/]v.<:~uB暏қ[l^ZTAAAAAjKrrͼ X"/ʩ~tX~Qޅ.@Sȏ|{ff27.V      8a={2oq׹z̗ՙΕ׿D43^ѽ˚;b< d-k_e5P4e^.֛x=@}t ]+f0aҧ|.   (X,fsy`j__jF#F#(  \xiV-+\iR,_kf/lbp8aĤcп+/t4m3r0Ks% >܁mp5K6C@9:eQܻyE~yyr_GЪC+^fX/ML@הU/䎏s4hT gUVOx Q-NJS*AAAłbfgkMm#_QtqZHIʱ5JCAeA.#7<f'۹hy/3*|;_MA>A4mvA9Ѯå&p<5GF&f, H+ixʉNLAA3l6cRPUKSG[_hGD3A3 %e+ 0A"֭[IIJ.]AjEQ'ݎf䊱b jvU ge.Fg0`(4иg֨hߤ>U Y3.?aIn}1#C)Nݘ0YFE'Iɾxtp7h@bkl/%N'E0O';a[QEĞo,>brU7| ~Uz\RK p[I ~q [埮TЦU=5neU1᠑fnSdinG޺^p#a$Map5KMAՄЬi|]jz}ɗSzp&<]O:Q[oQ\{!w#-J_2̻uLۓX#c,OỸb XQҗwu!\}/ܵbSzS =XX.÷݄iwLn[ >~ė9yg~& fJ{laR~_|7#_o'S NӮ"/ >KF>%#}$0sh;,rZ0fQ'0 Yt)K&q]_th0  =vphhT2sx)L_4|txZ|,̛-"gc~-a22W'ep qʢX!YiCi~2P-J3 6 hs4C;Z~򝩺|Ҝxյ$%4nL[kMf? V nR>XIAT:gƢw/HG*MEϏ!@?Ək'o480[1kWVφ q* n9}:[oz0㍻xU5wV5)\Y£y[oa;yzb?b/%/)cm;i0~Dޘ@5?VɆ\vxFKYz_uaݯ~mFO/oTbEi8o%&O>y=VnIX.׏eum&ӽ|7leD;26\ҏH >瑉7G<=v1Qg1`>E.NeΊ4Ї`/p{A.AeVVAQk^ؑ256T ׸̸"ǘo]k4b7͵ܛhVS̅H瞦ju*nD3]D1Lm+MR9QSF'2(cX):i%'{p ?DNaSڼ$3ɡ"]Qμu,i"'V3쾟G|nyleLUx+b7@n vzjvJzglEQ`ժUd" ySqԖƟṷ=s*y14lԠ4֊S# mt;Z/ȅBM ֖iџe+INH ⛍.y:#o1se]x4փ,}%V+ {+]ێ[O>m}ՓX3Xg_}FEO΋mPZ=GΆT]}܀8 6S8ܿ+4>eֶȴO=s_{09ًU:.N-A~\KۺжY6a_}:F5<4b_q9v<)->@fw5n#HnOoOwxneS_< {#1 4 ؇Cm_U:_eh[94ubkly3DSaRB_as66\vW[Ac\NB9SnhExˡ;ߧcljyf3XUحX,K{in¿u},Y?1AMU(OڪTKs k<~Ua暍~=ׯ +yu&_.<;0h62/wPtgfJ^˨2/ͪ29F,A8-EaƍtڕFD@@YILL_~^u  5 PTt:lXL#[[L6l6[K^M5:rOqu|aZn<3JWG_U]J N w~^\Ѥ T%z>]:qlW&vrNѽhAcI'Tt}I mKhdP*,}C=1s1j1~xm*Z瑫6#wH&h$ F `|ք4C -kt߰ +0efq-qW=?0/JَXECU|ɷmNb BmNLI[W&o&lvBnπ8_{6v˼ aUgչdtsM.jӝT*UIou#Z2w?2_°ǧGט' ǻ!3ˮG&}2NϥCLG'g9;_4jR~vԝ珞 uwDof3tZ.aج<|q4I1}B14|ƱݙB6?љVh3qN!æ`B۲xfN 6-fc&%p8dee`K7.seϯA|EBB_5jx7A<{Vp(^{|~4/>0^Ei5Y!3wf,Yxuj@-zҋ6J1r2.N`uLJ)ʴ{nCWZgJ4 k՛|ՙ+[`h{{ts4P5h>n GJ#&: b۫M>q`oI2x+E]YI{&/hÛR?0GH ¿O;DטJ݆ʩ*_{N֞h̛;SOv1=O4~tV 76^F|Sc\PѼhe{G^E1>cuxo:O)=|v^qpkTjYD߈k^k^~/g#Sh(Ȃ NNW!/U b5˼[& pۜ84wcY~ jsCT҂Of*bjB;]Mwv[wE5zyׄPFIAUe5qc&:+G F˩UM^.Lb٠&$`&̝H{c8N̛&yl4XSgsJ, ,op٥alPlfQyomav[8]'=\Sm" `?@krը ٩|)5cW}v{]՞Ěp<Qݭ⪋!> >9o D1`xi0*imAjFp8p8>EsrO+_T7ij8iK99ῂB]P?1&-ФE V{F,Φb&l7ѹ^)3C_^zWri\;74+7;pX'5tOaXl[Ƃ~bk[}3bkvT]/u hÈ5թ\jN['H{o͟^1buVU3o<jtб%p(6lN 6sa3clQ#hFr"c* {oc-S(pѰǝ<"icsF<=fL㮥ޜcaD #AujkaWq^겥棙U }QT##^"ת'A;PY9c{<{1VZ6E/ !~7$[+X-͞Dh5LF>NsߘcE ^5LA87H{:) } ;>wCtwiXSK1wQr+J2}m_.M69`7=z-b͛Grr2;<E)7tq+ºu{X"[w{NO{9|d21gn&cUe\bͨ`p81c/}d?ܖrr Ϸ~{Fm999m/}qSSk\U*woM\؏3R`37"TvLf+=z`ZX,]?vs";G_AZ|~70 F z܍g,0U&=<_W{bi&u֯_/ Ԙdi:ucP E_7)s7ھ56R @sMFuWJ Nm'NDEFsI0j+#-!ʀ -Zl2 IDAT{XjU҇Ҳe)\_Abь(\#C{_i]4[:ƪCVp8D4 b(Ԅy`Էԩ=NU*Uxc,ʪxȪr^I4[f߻w͹_4.+nEQepV FFK汃hX,equ:=Nm+" ¹eِj 5sV1ZET;0 O1\ɸZ/[Aq";ȈpuN3S|Vf T]|rm<_M>u40z5}K LsrtkX)ysmk;]g$"8qMh0U:KsZ7X+<&SS~A桭t[65pe'۹hy+=*6|;_{Cծ/MzDohkJ16¿~᎖ypcIv<07M|ı zaHupMn߄F]~K4Y8?I iz@\v`.?p Ug,H*A `<*6n^k_t8Nl6ӑ#GHh҄"i߾=ddfšC*_tuw]>(M@@߿={w^(**`0Kaa9m۶m6Z>_WhjCK--jՊVZu4Kc޸ќrss˗DK/ݻӽ{:͜Ŧj;¶靈e|Ջ|9>Y{ sArM:VLʦ-_{S~~~wSZcDEEJ޽?>/fȐ!֭[3fܸAAA w׌.kśkQP&y.ǽw ѕ  4иg֨hߤ>U Y3.?aIn}1#C)Nݘ0YFE'Iɾxtp7h@bkl/%N'E0O';a[Q{^ݳ|oGwrUh%u/'g4IRo|#u^HHsʾeIK##IL&`"Rs[IY\7d#6aCUE9L#ׯ`0?w(b37܁+.o`V,=>6:1Zד_&nPt㵔sZ83ܿp:52С!!!h44Z- 5VA(s'sݜ|OG4s:L&ҁ)22'Nj d2չҡC:t@```_Bn킴4Ů]صky]G׳RN|_U>N'vA|0뇤zk&p z7>~}z3tPtZK~K-zŁbwR~|^BBB-0QXXȇ~(AAA XfUMi5MIբjUsMey߳?C#'fe^޾n2;z۾gMWsu ˢKgkhm8p.*e~{:޸c;`:mt qJJp7 #!m ;`GQLbCi論-il8h$YhEQÜ'K3hH?=F; .:F6nf=Ok`m#Co~ul`Bp}G1&OiI4RꞱ=]A߷bL.zv9 U8xL"eqC0W(\5nc >ﻐ7/!c6cx\F\E]bbܮosd^u^R%lմY %~!эb󟠠@n>_-;S[4<-O۲jٌhDVcX+5WV0nv{ 3phZ)..nH^^s@pp0yyyt:JBGU#4@Kڑ YYY߿MVXȑ|9B歷"??V_E``֭qXVhAAA wSL«?&axG|ӑ[zF0!q;Y0/F2YE~3b*?Yϒ7ԲzK<"c\ng-nb`浝37[. =g/ į, ]aڷykycuk{b-:x0[]zX}d*r8qYon1'rؐ,OZhQ>an'ZOSob,@ .AeT@b3c6S\XڬNؽklO7O&M%.6bcciԸ1g3`@ _.&ZjGFZQG,_%kCi~R0UbP9snšqSRqhT]>ij/  c6|LnO3Ϗ5~ݬ+|uWόE^2Ώ]j"I}-Z!-⟖wrM#ςWPmB}z#Xw&~N޹-KA B?<gA .ϰm ^lfZ211ɞQbHܛ,\~cv4P. FXa3ݺvB՜v XjB zVX*) t:fsPUT*,K;H(uƵY \\\-MmQ2hꂼ>+~,77bZZ 4(_V`ktN4YT*^]l9]pzlWp8fb*.AQc())ffT!p' #k۶V( ]t6m}ڵ?`ddyVAAANwk|s|ݲ5ѻp왟{^Vd,|׉hH &: 9cOT*'ób*IވdXBc k@Pq:6@8dbA: -#d*T7$3ɡ"]Qμu,i"'V3쾟G|^2t|x@eK&G7 SiЪ Cq,vPѸ[Dt X3,gͼw3sß纗N2gr@P(-AC̩oO]yQVTo(/~[UCى_/Лv]ʪտet>WfUݰ"""(**dǎػw/AAPѺMvIÆ Ow*hт ,3 #~~~l6j5%%%y^OW|m۶UU}~͚5uRnx" 4a@@ś]< ;鐐L&ƍ t:tңGu+Vnaw  QDn.FSEY٨9lۺɄll6c61J0͔~8]pSk\g}gϞAAAB3+`j;oVu*\ĵ:͌-okyb7$[ڛ֒iB|@.?@PKs~9S>mExˡ׏I}f3LA"*[* F^)!L˸ Y Du@}JxX4A8Z3_}f*=\=Oo$+_wˣ+SnVǕ1ءYx k$g0Sv"!z`Gw5|-4q@\H1qSL`⟔5kFF!gjRdD2T8-yn]ßg=УSw_L_sP$q_@pp 3gρRlޗV1ͪ(~~deeTbM6V9tǏ&u8UV+YYYFL&-3SPPP:MpppqX8P-%Z"k&iGoѾ}{oNk,<<Ν;B˖-iv;7p_~%mXEFn'))FgӉb۩jL mG"Xw'IhD0 cZ`ʼnQ7VTN'sxd_Pp:8"fbpqt:]TN-[ҷo_֮][a=Cqq1 .K/cǎH'#   \ Qvc,snQv:并qԉh%c>||I#l % {|}t~ z2p+?wQT~HT* +EׂWņ* V@JQ !Ԑ;?]6˖x'̜99y㥌Y|p:~r?n!3F )=rYb) Eu32w'rYZZ{n#1կkb_/bv;%,\%qם7iۧC/WE37AӑZ3,44h, z+s̡o1cFRIyy96 qBqq1hZf3JR8& 籘X̦?3Vqq:VozQx4HMM%##ާ;t@Ϟ=Zl6c۫ p]ZP-X®(5ӟc1UB:p8ifUh0IQ*q$b箝MfWn}`4?~<|׮ҙN:aÆѯ_?F`@ @pA.si49 oi= |ogzŚvVour~_wYh_kc& w~/\5 l]iBZOd=Tw[?LvIϽ1:::'EƘgf32)e,/49IfY{) y{{me\/}y2&@&I]0{cJ5Qzlo:M3>w&'1{ %]3g!t\=M&ޥZ)SD( ׅH5\tELEO.%7={vw3z0xew#4yg44Jq84oޜ'x|JŚ5k s4mڔtRd @ BnW[:n0sOwL]FyӜvqz[sj"'2Ec_smbd4F{#ctaUKۇ~glz0[Mi3BqVs^Ck9<^Se\E'^DDɧKHLJ'pDӧ h VRJ%dee!IM6%''Il Jihki*S2Z E% $2-r-8l[e84pF} :]xb, Z7|:4sHjJJ*(/KKmU1*0*\VZY]r%ؼy3&::گ]qlڴ]{KTTr H]ՊdX*@ ACp,w߾9Xsu& .ĸ*\O\^szS"_/FF^9lzV&55 F͉SљW^VYM"| BNNfbɘD|$ DEEeb IDAT5d2QTTJXTTDHHQQQZУT*/ FĉcYfl65G,,fVs(ՊXZJZ}m9tPJJJޙ~۶CfL&~^+FS@'rzT 6J5 j}=E5o:fm`H09b[R@@prJa@ lᄒUR&zgz-69e{k@ \|Xh&R [ ?_. FAii)呟OiiiԎ={P( !""H"##a)8lܸMT*ٷo}h4&˜)ҝO>L~ؽc jXwϞ=ܹӕn],CNJg3zVq>'z+>Ea][\g9ގuWNH_v?{WcuLMW`^G_yY 1L}|-BGn}rm6|.;81u۾͛ykZh4jT*JJUePimεŽ`ʽD43ALռ˯sR4hPƲE[[3ymݔ]#Ń@ _ou>Q– gh@XXP7)`0T* !,,H i`j(ZW̹e %<""ZZv⾆J0Ğ{{&yMYœ oBSp 4[l\u!"mN=Η֥Qmvo"o^_}6JxP`5{ڎGmݎRDTVG} dr6P%z!>h&͸^o1Tq33OE<ݵ孀rynvPG6#ij]=[WlY|8/,ʷ~1ټXҴߓ̕ϮHP!/t7wk~z[E.=cmp!Mⴥ5@R f"zaˆ!..W;]Oeqgx㶖n$..RIDDc]NnsIȊ"2&VV OZ-N`@׻`'='j yr6̳>S$ ``~礩/o\N{M_xNF#Y$>#ʉztLS_0. o$)pIeCHQf,x)>X|i4CT;)ؙ5-+4_´-nbwYbk6ًבb~7(⬠j2pT c>HTn@ @jVfћ ( KIHH >>;nn4Kuq\*7==nwm$&&T*&%%Rvu`\IMM`l4qt"=hZ h|FzĢ:!}L-osݗ0)y h IDw5mEMzNr܏$&9mS[;əX`4s[]5 T}ћ}pl Ձ#݂ۗǜ/q@uij,_knyzo/_ӆue_|9_jzWZFTch?zl:T(ꇐ-W^$Ϥ8%æŻ;Yx$LWPz<#xt}~!؃y߿D_1|8Rb7zǯnEBl'̜<V|dn28 97M͚BQڻ($LJd,Xcf^/sٖ΀9<\ #qv͍Q.\r639- gz" 6褦_tn}=-gVgg{RILL f*ƊH @ [G׻R4 gYTT111ǓHddd.FGLR2ɚ::.Nf3sǴhn">>RIdd$c۱llD3gZdd$IIIDGۨz%bgJF^4m"ķ79I1X" k9DO{k籾9yhr`MXMʑ#tx yr%a5s92}{ƝFd$_>)7B&smO_PN[f_Wmǰ@˿ҟ|yro~fr_$mo 2 S?L޾y ~e;پ'¬?+1iGPElM +7O^i\Ӻ`\o;u"H\!ʭZME{xDOQTL<:=||V^Llh؁ZGwAܕ,1ŖgcSEҲctM:1ҍ㖞q9"NL^!<甩3X43˹ufr;W~8x/}ʽŬ9(5"q@Q.V pm:i8+&:v͛IJJBRTlnn. l6@Pu e`]+bu?pCo vU tiooԹao扜NW:Dob.#;bEl:3r%'~ːo+ qk$?V [;ip%UEYWهs`zq*.BBBGRa0tEyf$U QQQV]5͜iY0f޶vbr଻gTSm";("кhXt_Qwr<Ld/[JLȱa'rd<䶿V^M1܅h%> gôkbM+2+N3xi*~pf/QGjH|)c0D檤,nl#b 9& ՠ7BIH2g@yy9J2`*łPkcfZ(xeDf/&$ b &vr+ j^)O 29di͜cydKPdGJT4j՗z{'y.@hj5-Z 44 /iӦ@ C?g۷d~lf2r|Y=*ϝ<0۾gP4e3Y>|GGqo1%):jƲfT%Œk|`ɣN%%SQ1Թf,kƍya톐Ch*@N]sWtu6Mtw湖Z5/P=Mcw_r#ȍ6%huS3*]x|v~. t]5>_}4X{6LuۜeBꤊ]ssOx)m+}^Gd % E*ɣBt|܎Rv/{nU6u! C7&MвeKouCl@ ?~S7"hZxL8w'],:͌w30L[@ՕZV=f^1;tTRQ¾ H<{LPס O x2[p=( W%uONGș4O0䙚̳^ބ%;Y5&ϛ+߄/!Pd] r?[˝6/j[xkw_}`;OP$ y9Cx fUTގ&|1g9*ꬾb?u>'fra\?unXh<}#rr7e^^ۜ{q @ 묉I# yfh0wэ /ϥ hBA^)痃{zFm*ݒ|~ GT?`1>HVPńñ{Vsә"^-~s?C2k $:e,'ilcJCjՊ7ҢE T*6ͫ39rsszދ_?ߕ:Q@HJNEa*@+Ѫ_Ǵ/8sfu!~+>{O55qVp$ шh@ UJG"T]ZE$pT2Tl单Zt;#"TmϫoWpVhFsyx}AnPXrofPǾ8zf7Nt@ OLznǣs݇.ySlN"}OL`TDys=g-oO^Ҏ;svU}ycwvNG|M]/Ap3׼*|TqH兟wS>1pC~W__`Su䖱|puU-:3muogtO/" 3 mߞXgI\7G%&&f _Tf 6}LRRR'4eLfZĉTB aAL| 4sS1hfa#%Fg`hْ(o PQ+pXx=kQ0Y@ @ϡ^2v9/+ci:p,!%U b3f@ h42i$.\W_}UL]x)&t&q1qK 4vvϭax/eteӹЕ1u Ewf7^7bOɐY*Q8]4/\QRf-G|xNד0c6RER@x/n>b) 8JwRnG]=bp3S͂nbnl6QiѪ}ڿ@ 'w3 &G倣iTx[w.GQ$:ĉjF @ 32EEB]] ݟˮ)W+[{ D.ܳJPi2o0'?O2|GTuXf }_f1hr;̤K&nB{M"n|O`7v14Qt֍|233ٲek[ZZ "66f:7,ynR:ۉhҝ1O/ԛ0{cJ5Qzlo:M3>w&'1{ %]3g!tZ̚b潹Ijcxg/ fv>ӟV}N!a 6%22 G@ :v ;(sv.[~>Lj׏0af3$a6@ j1?K/$9ɓ3M:QNDb,:Ź?}Rtt:׿v;pfZFFq}v⛅jKPv-GF3|19ڎu>c9/@M$| f@ Yr%Jhb03''|FQ5*=44TW @P#Yr%>jaŐW_K7klT* * R@NWURBkMP16a f@ dyVJ§Ѳ_~ej***$IV @P#BBBh&KUl 2 S@ 7՛mO4[|!!!¨@ :Af@ @ M6$%%j֪,aX b-QKy2/)51V=fz'7wD!|L?z1r@F.@ @ >5j{9hآ_?`ʏ<]UKNĹd>ɮ k؛CA HJ!]Q՗}:-F{"2>6ۥ3_l]̭e׎̍z8K1+DĥҪs/;&ch>V>)Y9y[TAF }XMZѮkw'.vKV;0h3I̗ b IDAT%ch2{'@wNE qqpzexA)f;hBbImmiUn =>_Lj5'Qvpdd[Q߭7Vl@ @ fԨQrb3'/ Tz;+Ƣ* IYMǵJD>6PQ9] K)f,@MZ-3V4Qw-kun"_^KVYZ[Led'4$͂lsR|h%:gN@8l@pp`N݌"Ûx[lEhmEE0PWXS>>:$3p Z5zE>g.և1U.Jdfy@m]o1wS6w9t6/ jBdɒ%\s5*ԩS]E`mC /v(|!_l(%G27nLet4~hC4ɾRpRJ)+aﮓOB`=/~ƶr}%bKqUhoúġ8۟GQJtHԏ=V@5H.Hl q؄*44 6ɔæ?P4%(Z}fvn#WNȦaM0`v#L%UVrym;6nU~Jy>6 v/%Tu\,Iq)|ۙ=\w w\9qe6 q~ Io^Yw*kda6&1/nQt) #3:Mbcd- +ۢ7֎rGQ smS0 Øۘ8 Ź{؜GRBrVȞgîJUɻzr`f͈8 a*lEfI,*IB Ϊ@~b9·oA$^~w C]𻹮U1k9[v&}m 1T8G,\ =鶁y@kҸyLVR[^{G+ˈWSd|۽Qq?ecq3K \6y^s[9}E-~"7☄^NYZ$w|Yyu.?9ۍg ]dq3|([ᗭwݼïNN!fG؇/u [XK,Sg߻FI<7!u<9o=c.y%KIEEP^zxZI_36%-8[Y5nff<z=F6N!ebN:|8gqύ f,>BJo`50ktZҶDX+ TӂIgWg0#_/犗bik#v@ @phtKә^4ԨTFU}| f 3yS( ˛Po'yB}׽hu0f/)ͥ\OZvi$7|7OzC&y&P^@XxmT̎`|LվQpf+9"hѥQQ,Oy>XjYE&SZҺE2S9Z.'!2rH Uյc)U r~NK6IFWvCeT8*9 l(Cvܸ5{Na5(bv|%`$\6}5gMxkG9S scG^oOp JIғXh߾`lR~"zd]vh۫lV&MCG>]:=ZWNkg9~ԡj 4zUsl^N%eVq[x q&;;<]leh;B|D]>N\B ju~QӶVmPOpU4w5]mϲƠc͞TmO/%9pʈ0Sp7r:wE:?PMvN9_>m|׭VA~a ,O>^^_w!O7okb2`ڵy[H3EXRi/z^$rlj(݆C>xm,}"F^^CX7|6y<L x%o @ufLZ(i4F:Ue㎴0. o$) CBfOE<{'w੧`F2m?ãӪrVkәx=)&|ly^ʲzq`[kٵp\غ܋:/,W_'YX%^ n_0,mھ|2jkNjۆ/^ |QbCjqPڱ)>ėM62+#T >lƍdeeyּyszQ'ՕLl4 nLh24%#8>&:eh(o$ixO9(hQyƆCEi׽˻wލfʷnPǸOKyuȺl$m̃{i"?var+lR2%a$4mItN ή֧}o)W"DZx*6Ɍ4;ф Ц+QXOoc ?4 RO<ڿӛыm27aܥ Ly9n cЙLh G>("jOQ8$ WTFUu@o^|rpl;`b6HmBqaQ{2/`1)߃nL`t)WUv7U(ŵmh#b\-9Jr8{رm\q4ߟh}D-FF/2pF^&$3gR'fK $Y-a$s|Sm=>L1׹`Gq^ۜo<ɒPuF _By/:{DOݟ57Ma38Œ4s fu)`[bOZ(.kTn-%]UM tt:ly'{&!-6u./ݞg'ab7҄eŃ#_ %9˭Ǒ1~K<~u+Be?aC&sn7O'ګ0`xdG!ftUW"i,]ın3y/mN^y ^g>է2H>̬zOv1.\r639-_ O 8%fGO%m_&f 0z[|/*\r$a⬠i >KxE EbCiz$[V5U<[+ z/gV>!!^zQTTT0Pw"9dLй=s[Ȳ)W>ךG~|Ȥbv #Ǐ$9JR\F֑" [2E1+NSRO NAݸ7Tc$?Z3xfm{W^Fޡm:@C!IgMLd#kGSNmlLϖܔ!^eϔ6LFg4$6kBŌ]r`-9AkZ!EY:NT&#G@աDv7>SjxPBZlz41rQTqi^pMvh><330K>Gq;>%P]Mrk'>-51+Şm`2& #P諄G;#k<7vqPѐ]TOM"D X&ӀSJGpzCN(踉b(&Է_Rvz'frSE`*2\K$g|ʪMxݭyE$b #tIOWBdZ-suIp{+xw_X52_ڡ57uQُ?we]V׮]S4] 0eF̆ (.cҧOk,,%o·_e΁h/0ϼ{LTc,[Š0S7b}q:t-'on{#.d.<ێc,c$EkyL?616Ӫe0n>"N_FzĿ3U㹵DQMt(RgU$-8QL$??E_GA~FZL8n.g[^ىIK;2u&{f9 pmt܊5 qVP#Gb a';C}V.#kWa@ x|IZhzӛfT@ OboZPV q͑g^zx'٦pfj CBJmĖfR~*oY ΁ŠW`7WZBBGTa¡Wb)/G^8<21_xo8(B&M~y>0id=- 'yHNcn|ٍX%*lT΁r>$%'-yQȲc`O-2Bf[{w[-9 dNTI0]s+Jj0^k-$-`DbĢu`uTYCW_MO;757Gj{Kn5v;hZ5Hɓ'Qk.}Ջhf޻yᤅ}oѩ_0 ~*_K[C~w%´$xt"]Øwgob4W]7~?|j e=URca(QGjHuy|)c0D檤,n,#.cH̻4{`u;R!V]90D1)C,klc|>J3.^5/ nX8 JFa2 νZ;^g5,fv2 +of3~O\.Վ"}HP(Ґ _ذA_/6vǼy󈎎&))Teκ둻?7%I޽{F!==Vo#XvG<[X9͚Q5p{\SlKD*6U[ML4l;PLZ,_V9.$O.Ь}p~06gе@XBˬhԀ4QfՎHPE/O̚˵}giWM"'?(;؂.ƀXj#*Z2t`m2!C-*v}ϑ?}<܋5 qV<4d[=[h2n!նo3&K!CΛE,Q!(|a_l(GR3l66mhtܫ-ʏP4gҜzt숝۳(oz I͈}|`)lf^@ٓ6_F~ϻ`/Hj$Gw.m;_|]".6ҹC4*+jw޺x;_}8bCPTr Dj$b ᇅ`j߃=6 E'%(t!jZGvgl?xS3aL}xZhgr.g[tchXzĞo?8-SvvUJڣE[Kv']7?gGiawgwI ܮ4&)9 lHџKXOMqf1Q9EJa mNBX[[+ڑɮ%אRPH?~51i$%š;XBxZ ƄRzBA^K~s) |MZҢEp˶'}ʼ\6nF-sJEc ?Ohю+_=bﵒ|*rrr*~T7 GW"h)M:(hf9I"GBcUk5@ TGboцkl䓻罘S=R'9)Y`WlRlV~ORw|j~{Bv-M'L}%Oz! [K  H͛Yz5vpYr_EE( ,K9QU)Ӛt߿@VwrqV@%m|7 J 7Jq77qX,$^5Jֲ  =3Fm*h}4FwL DDن'H{u3.D: pmTݤ;WuCƳn죌jMM{(9]q׍t ƕe  !X9Bq3wL6Qv٧M[{a7z&_՛qeĵiK#vnGg[(i{4Nhsյt{WڧV>0Sjo =˻<)PJȐqWկx#́_ȳIHY(I~3ZEEՄa7]G{O1&aP+PG4!ia:¹R:9˳㹼uteNAQ;[Ouy}SSWQ1H,m,е/ u~@j>xS?{U=PCIP& .už*b+bK* !g#0I&!eLyOr{{nydl!X*6 fs>6 4h4b4}W^撗G޽buJ@zɓ't̝֭;=te;y}p2/OÖKHyl'{z% IDATͽ'&^wWה3e}FYԫT"2 sr{|x`EnKFcs9෼15#˸9{:<H,'(\7;'᚟͇W5:]NɉW/cq5 sc[p=3~[2B;;gNa,_ĂyuL/= 1'YUר0#F@`00 h4$Ih4dY.[Wu_K!5!?VJn!?0b# #v<7kN>o9~nyp!/gV#iN_gy}+]Fr4s^D`@5!`!pYFUԴβrx>g qy`b0jKۭؔ8/<ڷВT:*|1{4fȺpņ> K.6essN'N0u O0gv?/'w*;87_@ .H>\c[dY1,de$]IBǁ^/])SQ$1tOyLG- oOBFOf`hێ0-3OcGMJhGƽΉ!K.lŹXieg(Hl)-K`D4Qu2ӎ(̼ґ!*bzGqf뇼̄3v ͮNXH=Z L~v&9E2V|# &:6 F63Yd9H8=>䢛e@hOВ֗Sy%?(;LN04Hn\Gvv!v^8UҎkg p u,zpX()@K DN:PEMdž>FEx A\Vy9dYp5TJ'O&yQt6 \Vs!yYۣBT}6ֱhQeahK'8Ɏ?d{N:lBX)J#=v ct#LVPCHδ6,N&eyM qJ':s9T@h٢F5,c $s̓ȩb4W5*MڇN$xE6I'դvTo Q>/duvWnP{XRs֭GIzZ(p:U ֭ksǙ=dX Dw9gW7Ջ?fyI#? {W ?3z4odkf>I)c81eB -.(oWBW#,aNBg.FWˋ>`CU.*u1w:_49 ]+# tx:>뵈;iI5\k?ϖ6\~3*FPٓY<;޽ dTˆݥˆfCѣjh5g%{.,jzS4 ܆6xN (dn~ ًغ;Rݫ.T:R| '[sX1LPcZrg3׫ }pbBZGt]>KvaȄ/ _lY /LhW&|:M:J8r8Q=wQ,?J*kn*'%MAw+)-Kqv*UEOx lF.wCdUR]XgUo[jc}eG!)d49yJ\vpRJqNu91tN>Wm;+UGYsN9IΟFڧ>VT 3kQ?_tjyU=O5i:L.\6yUWv4}5G3kZAR{~LNbVzڢFEMX9Q5*Mk/5G^.狷|՝_^)uvޡ+*tvuwY^=x\±cgُe/a kxqw(]dTJA"\^_9:d1X5W.c<8,4cOr}dRbsZ;^;؇NwE<{0di7O~ãCk՛0{C|9Qȑ׿ˢ3Ͽwt =ZlxzZعDl=O*x:^`@Pa#>{3~=\ѯ0@ A#S16Ȅ$S^$BOptG̔!|}oeU{-՜@@$a3^h-1&O ZL+&U$/)d?{|:=M:yZ&ol*g6ldffei~;_xGS&o`l%ŲXbY, wٓ X .]_.XZGciPpm)ơ|}XȲKԢZM&'\ DNfۅ` q .<! *h{TluaV/6$bNstNk,**o=7sY"$C&|Qbjq}ؘh֒@ ˷~ A+$#ѭW0UQHYґu!zpN}9 C @ @ ! Vw4P__իјL;iDOo?4چPю-/ _lI /cr˳l-@ Bf@ Vwy1gOb:!(Gڱmehi\|IŖ"|_ڱ:^xfؘY/@ @pAs'f&o:јk0hKŹ,86@ @ ha2X%?} .=)8˓'~`@贴0d.IW_bŠbG>}ѱ  P,/h [V;EiZv6sE$g@ ƥ^%3㉯s*:bᠡ<Pbzw_>Dg><;2{ijf˷1udO~*rWІNOcu'ĵw3Hw '.=s0+4Z! HK C};+Ve.C۩SQ65EFE(`+Dy AIm [V;EiZ:MUnbF@ 4ͤ|Hbb"`zXS>{b"N@K.'J!qw]EAU$۷8zD7|x$o,%:HqݢWY21ص^øoKfS8bkyW=W퉏}\:݃"*Q}>"w'(I2ݻ[Բ;-;\`_~7FKZV<`!Oɨ2?f.N0]ͅ;y{B}&{D)'Fm4#fxFtDZpغXu\Q bk3ɲu`/?}#ꊻY64& ,uz4&q& !;O5 ,g9Bc<R*+ͨ+W`Vơ lkI(DxFҎ>= G @ 5I~7nC_b́1䱻oNxŷ~ם'K7[2k6ųt7}<~Ӄ?2 i\AD3ۑ|2?[xO~{?Hʄ{uȧ|]p1C+#0z>OX>>>cy"/60q1$SR }>Ac!<7]ew{A^:Ek'XA,qބ8&F~/;~R b~̊I¦^h⫠֭+ݛbė^f933^e0j4Nc|g:oߛ -# tOz*! 0Nc*ş !,j"X 3ӨFmG_١)G҆ͲOh >%юaC߼m`^m+mkc8:-fYt@ Xb:Nz;2pPfbΤUMss3=9rNQҩD0@ΡLqXb t+j._}0S'$պؽSc"`DO-`{(p-cd'0uf\.R?ܼW"iBb ,Yy0皑Bb .S\v k)h#|L :3aLIRS-Pygɞ,w غS}aU׍Ɣ0.X~ _7sWRUd^@⫠޴0d$&b]2_z)pvӦcбl~Rih*<_92$gXFMQqo2" ?/3 _v/K;Vlךzs)8{w+aԌgu@ 4 ""[fϞ?qpUHHK+1 y|u .8AͽFG` oKpq*t2SxIFP.FH׷a@㧊Rط.ԩ qww9sڜg6 vt 0Nsq*7VwB43e$LB jFa5"4 SK%s5`[0y̪:^uh{(|eCsZb^ED}ry@s#i.UČPq-@ h<D43vb%pЉ2q'ƥ %>0U;m6S7#f#cy@]ՃLo~OxmUWG)ի\ غ<#Iu.Fi6 Q\gy/o[ٺu+۶=3j9T͆ݥV0o̺g{V1ۖ f@;#l8ٚKG6CE3'Oz`V.Z{iUll'G]ׯuhrUSU53$U !#M`yHr !"rZ2c3u5F q @ @ 4C歞;wiK=m;\:p}0?>m23ų,|z/#;ub_{<0 {ѽ~%c&NgR?)}M#]o˴!o,-/WVAUTNK+nWw:k>u%&&ח珢]X1 IBBo27'!a adQ5eH7FܹOsZɎk^Y8g 9_"Os5k?VMY{9'r+^*.sWu¦_Pr{*~i?;eQO[*h4{$ǎf!8!~Um0;6 #"UF UHZe^D8sov;0d"HHH !!v'va/ H ?cӳH_zK>q'~ _Fra6q&kaCٱmX4jЯB9wnD]Uut,kQk>|/|Ag/(;N͆biԏfph@ ,Za: 3/xDD3/URK1=!Q9tg/e[g/T|~:3 bsDmN<8,4cOr}Ju(SŔ.?|sKZ*UQHYwD9K0ޣښ:H_% uc ؿӽOJ7,o}'N A8q۷(,0|pzꅢ(B<@pA"^AX!nm윦֊@U840dɫW16}z!K9+ݴ_s;6 U+~2*MH<:|`G @n ڎ`GLg_ 3 _v y싗#np:8q72l0"== 6D.]X,Q@ \pAQ"h&nA(fZ\Ðe;~u$LB bs_\f_ҹvż<u :h*plnv;0d"&^x[_ScOmL޷/dff6x%Yl6{}?ڰ8W$&2":)p=NX(/l Hqn4 ffL4h;/524 E;v$|9PLZj` Ӓ$ :oV$!!Y,NT) IDAT@pa"=ɓk|֭[;w\ waĈh4 FS$ F,e*t9J:u0༬]#F4hӖ.]JmƔ)SXn'NhQ^eo\c[d!|7%tkC\\aOWyzaܟ[,^}Un& DחO?Mnnpr@ ~i&h6%%  UV{/xUQHY=kFܤIz%׎ fC%_m]JD$]E֡޾h߄өA[k8 _v;C/ _lח XGBgIUK3vxZ2nqKUUEAQsD.EQ* i˜UgU(V-g'gKkv?4(8KtMQ]1^*>WΡRl.{~d>5c>>3YjAJg>Rnj\iޙO|yV}/ԑ=[(v]'#/YGK8q'3 Z%cC6jE}GS@èEIIČY"iRA׎ bC&X*p niP?*` rc?7~Qbm\`tZ$ɫ V(rļSΚ rjE ݖ/׻{)r%&H+”(ȧ"mmB2{p͆eLLUo@]|S_Hj au^e4.5z~5) I`T {vH$q?5ԟIHr[Ϡ@]˱tnw=Ճɬ3 <m}:cƀE{+C#oGGP$ZU1M WFbfezncWCZl=Aձ:iØ4hWwf9L+}|ٸ ɪUꝆ$qjiIM܎ bC%tCȫZA;lk'u F24\;hڃc 6X;6M}|s/vvN _Vrau^ɒH3wܣ b}꺯(d[1CR@@ 5etCɢӀ  ͼp1|Ls 6Ve| d5;4M&{FY7}f=<^مI,o9!a\n4)~dFx~~L#x`J|AbbXU\v>F -wig+Im7qUڏ6/t̶uvBqi|"mfnfgS,WXJ?5j!3`顒*O!@MqꈈYn{ {15=@68yj8"OSP-p׫t'Lf tl׫2.{2'S5>ԯ|eCivيRk^ڎl"e};+V0j&ɿ [Ga!`6} 0BV4]= |)T6Ϡ+NF@rQRyHV60drM1`LĹ*tF/^g7m86=YE19ʼ6:ϝfmhyz?nܸsZ^袙FAzUUq:\);3:dI;l~4-6\?TKӣ {n/! ȭjj?7/tWݷ` [\No̓%O-5Yf>AvLy?yf#v=s>I+=M1ֳ8 " j~M '!y 3@Q$g.Gg5ˍ-IFt+?z?MC,1owm Մҹm^K@3s@tR`\#Һ^HEE58J,#"h{ { Z&fmw3b@8ss ZvV[.l 11; ^$h8q:t(ye%,Qu}g1ө$ՎN $>d9(:AN2ٛe{ GVۺuCMZnI0 Hħ~JXXXٶ<̙S6zRsttNU;Hs/N Qo.8]f <$ ΂ ػw/:Vh$ Ŷm_1b<A˥AD3]d1K;R*vRRw =6O>cx[S)p:@^3W@H(=RT ,||eh2m [gxnEQ>#wqFY)ԱbZh:9HPd-i2l)Mڰ*R2( AWYK=j\ :vMgׯz) N4ZdEdtZ(\I1EmXl)ed!#iYUroE/k=d * :Od9ed 8W@Ȟdmq )=o6ñ}H "a,DZ,Բ<)IKrJ%DA hNa\Vk_4$6S{whWd =Їe(,̺ [|싞s8(7X;" Lgزڡ嵒0ƿTq|4ǏuDx[yn\YXL uصaCs2p rBBǎѯ_? ßyV=Jm6S}L[ՃL?7Oe8~k[,]jyc51|yj}/+,mݻi6 m8DQ?xys-t;ҜcӎeRefkmNrYp E.#rt^--& tNP$s#$ ԲVUpڷMwv郘=[%b5Hdg:˖ | Hrsw_y5hF쎊$kĤv{F=ּۉ>bʔ)'::lyӦM?\R>CzBui2x.Kl&33hVZÆ.f3EXkޢ8kvuXҩ Bb"ڞunǺ, tYMzx[޴iW]uU M' aڱ\_}/ŹgWkCԃ0b{P5vlk.BS 8|/q:9q fCgӨ `>9*3e( 9rhdᄆp8hkߞ3gp8e›; }!) muR8s4ݺ+N'ǎs΄D|(q\iqQ/si[hY'Lu#0ynZ HuSTv+v1`CU.*O7SK@;w[U vdG,L5K+?_U!g;-)+EZRN.t3(+479J'ip`QL-Ex} BiJzi)Q EtN mݟӧl@gNfGdn1#[ cXDa) kY˷yNA!BbƁ!1bϟrR MY$D虳^2xrVa48! OhvTRl@/78'u?Yt}PP na{{dq )q/˲jh4"26dI p8$lgǚFbCjsGjr"vkzS,Z3 )#I+#,P۬FoPGp7V%#|BW7iz} 4lyƍ REUn%. ipdn; d dYHHpfs4f=Yre/ġ$x"I2zKBnvη.5 IIISe^ujL{2o:TWnVˤ^G3r$U9v}SD[n!Oh=aBF`ilB IDAT+V2":0BVԺ 5=_ ַJэiZ_9uhCQo`v/xmj7sA|ѱlA+Q~0\9"{7iZ:nrt:u\9rZ[f(yfJeB zvX"\Z 2ߒB \ JFy]lHȤg䒞e9dhaZΤ6'6l^*;crrr\W\y3$RWla.@I+<̞_0RRSSQ\;b3Faw`6p8h4\.rssH>LVv6aIIhr4hvo߾>|/`6- !AzDn0ӦMce۴iS*\]^?ZIOYM.F Z۷b<*!n$?B(}%#F6]uy%1ɧ8wa:h{6CI]@Р[֗ƕoDa:~  S`Vv#UC!T1 \<~$6ʞ=:_j0Mdd$EE8ǎ#$8<B^~={k׮e-ӧN$LL'**A`P,'N$KՁV#I1t/4s9e(hhͳaرwo#s:44=܃qnN9NG.]0Lk׮mt8p*2!( bI7"rSx*f 3WWvvvI'I";+}{`XZmXVV+ՊԴ4\N;ѣG_ŋ nƌSQ CfZѣG:w={vIJԀa?ğоGeSOVͯٚ*>,9qg&n(Q8Y;/ZI52k,_7sZ/W;4T%xU4ix f5 eIWuh(墰BBxIrDBCCAա܄6ԆժJ&j sE\Su!wO?ޜf}oUv̙3Yr%y ꫯb0xzǬWQ$ )ǰ%N$2&{asY 6o*+TUT;ڬ(6bwYf#9h48EwL8͛7mTUU'>j(RRR$#*4+7xӭ[cZ9B&7B c|4iw"uw>~/4`:;W!)qϾT@NC\fުߓcFűc1l}ݛXM7Um^0 [֘)DzFaף /AnE9fm&3:|z{hacoBjRVVβ{鴤^6 خN3HJJh4bX %** mƳ>Kqq1+W䪫r[f\R),*h2PQ)c6K9b#8s6cDF@Yy5jx%U]BOfɊ)eLF#&1MO07+&LuAfjү_?.z_Vc4ZR9m`0xUEQ0K+Q}UP5OF#ـfYbl6S]d;.Yr|(9I9զ15Qӧ_]s4͎ښsĉ9r$#ܻ*4D^}UdY|#ì0TJpO,F-DMejX r[іhVލ r> UyM<R RmP8͟좧&%fŌX࿾M|WɲKSػ WN rو#ݾhh4=k׮<̟?_|EQXx1sOΪ8t:| j/? $(8ECuMaV_{%`f6Yd"bujy%D+""rڅ()WSTLX_YL3XxPO 2?Os=9ҫج ͆ZXFc"12hnz-ছnGWٸ1iM>*  6p)T*鄄0p@tˆ#Mg&~t*n T [M&$:5j;ݞg),{#B C@x׮ZVWVG0Gn;͚E&Ӊ2>3^wIDwOFЦ[qLx"=vY4fM{AibT6T~4EYDDO!=<<6nFaa1Ʀn}:3Oì9N4h=?8/}^'ͣ,S]]MNv1\K{}( ݏmQ( z6YQƞh(-Pj*جZʪ`PRvn-I 4k8&L@JJ _|& V[oELL#lr=U&lV p z#$IJ.\+̛5Q;7nQQQɓHiy***&22[oH]ٌ`\*.>.PjveCgdØ\1M DX@pQ`>gsf0ux<@BN3[xU=>FAAmL3[w [6T/G@Et'M=e;`w(6_.XGڰV.k&߀eh{.U#|a`wx1JAJc]wQ7ᜅ1mw@=/~6xWy!Ճ ;P.1~ԗmGadB%mRS0sFZ45y\:t u#YVkL\Ə̙3y),,h46y8_V+dggӧwȠj}1taP]]ٲ,_p/ij,f(g$7Ca^#YjlFԙ~ۗđI3p#Crj=Ro ;0 DEEqwеkW00FIk" ¢ #,TGttQQ۩*++%,,$*++}>V4 }&L $$(//yB?芪}5`G{w:<6>l⹔ kt Ͷ:om ?bѱ`=/~ǽD,KL_GgRdC7z.z'ݧKv5JA>]mX8e]@ӍMdkY@~ע\®*K⇜|~bZg>b,l(tE_qޛ۳DQY<_I|B9̙3k@o{k?/{՗_ren'==ݻ2\YL~;zӱ}}UGOfܥid~m9SZ[I0|_g8Dn8qX>L߾W|Q24s![Z`Ra!S.-[u-Zٳl$]lf׹^ѧ7ٓq}bKmLޒ:z 0l΍]pჂXu׋Fuɩ% 9Mh$T֯~uLƒqqm29ݯ^NNtt.J~T^1;w瞻gy&IWMs:جV}$\3(1Gr=`Xui&IAAADEEѷo_L&[G2jNGHHZ+Q*9\#WfNeFc@_& Zu]GUU&o>oMmͪ/yב%k:(*,O>kn裏Jsػwo,h4s _kʔ)S.uVnv_6FVýXQvѡq;N3J݌5o,igSh+Υ h-{aaj}X\ýlx*.xbw1|zelmWb4# j"Wx[(WJo03ٻY6.]Jjj** NNCR,$Ref[]֬\FA.WK5jLd{y#N&GmgT7u=B (&rikhā&-i=:1p*k`u'y";fs6k5쿫{3~t&-1~š3W9s Κ]$Eң} :ϿEv^ W18&]e>u/ա$~~& 5p|:{;:jg…4| ̧rK\hREn}#/{ ]ZpZHKKc͚58qiӦhNΞMos饭/e/TεOjkpvǜ]/bc0_Є̆j?xj=ec{YS}#6mbܹ" neۜ{ƽ$DA⼾-u_/^kP@eVo{LRj~Tպue(HJJ"11f+ϽIuu5˖-c5:\_bF9ׁUSyG))) xѱcVji˺v &źuZitz(^ɲӍ}lKwy5=gs7 4!8 _˃rYa]=p=l_-XGKE0Qr/k|ܽhw9s K>Ϙ93`ÿY#1 TVb2ZXl6=eՊfbiiduκXp*p9^m$94@ECt.d8dZ: 6U#gw,ظsQꞌ7}qz NT6~3;Eחnz*lt#D@)S8{%i3^\Г rbF=1/D8VON] enl2$ꐌl]k 8'x4WkygZ8<1[KfwUG:$r~W_xÛxNOjDoV-Wm(ڹs KMeīMXg~^Om|j? [NGn  zL{T㾢#B Δ14'%7lQ2-r~zޣmFjsR؁@ؚ@ &v:C8C!K=&.e;HBdd9a KcgRa'O&z>HgDqRTQe=́5f̙؛N:" *~ȁgqLZQoݶB8$TI!j3[+ߝT Q6i䅄v=<1E%[=Qؼsŀy r=0ov8N9jKN3*MR؁@ؚ@ #P?_ $vAGIʾ܎el8o*Ouŕ(vҰ=zDžt$F]AfOGT1`Ut,:9 wIc|t>_Qꬔ͵e;pIL٧)ҷ?#05BE7!\ɆѐM-pOBLhX4je?oh4wZ䍹,. o# bx81J;jQ?^*Fv|% fEO. *q YPPcƬ8eUPfPS^M2N8[tm :r9SG1%GרȚ65MCul9`E=ΠomV j=]"L{BAAA33䓜\5`@xUnU3yq [O(C&Pʯdy{zFI0.omP=,zlnCSik!#qe( y|lKm@-N?xEt 4#}I{AL숔dآegҖu,r2 .N] ;[DD sq4$$T &LJ BRl 6*Bd{Bv$h9K̠g6ggaTGJ[5TjdhU!gD {6iW'fvIGll4)ȔSZNDn}LZۋ^)I$#"sUp}:/ᨡmBRaZ)px1K"̼i L_}QyH6r~ ZOv[1Xg vg+ΔH7Q oozReCоwo \ ӠNsj@ =;EZFAERaِeәn}EQ M bA8~kTZ5邐,yc5U`$9:K5$ ]mH(gЛ[1UJ1: 3!,4~ra<*(5!mTu~<-*YJvnTBbB њ †'LVQABR^WInqLCd+(ٳc2%G) J<{ac)S5m+?mwIQ E߳s53%۠ld^~أ,' +(ڱo RҏŸ+ IDAT#=cy Z6Hi/1ݬe4ͭjeOnn.& j)V+,Fh"DD B&k%w[HQ˘MdJK\Tr1qiIVJ>gkq%I-dmwEf^Me(X(Y͡;%o8Ȯ#:rZ궩. c F̥3g 3?ɥ}*u3u~{%ہ+ҳ; $3Pcd"3-5jBm: g&4v…HDcIJK.׋/O**KD%bRn'<os/B ]K be]*8cǺ_ez=<ÄU"ϱhr䅄8i))( g70oXC-{[)-~ZMn e픔Zė,DEE1n8tBE >@ Ʉ !/J.{|RFeGOE0,8PLٸwC9,l旜ͤ(XwHvq]2)k*_rmm5(55'?@CJt0Ս\5+㸸3gֻ ?..WsgqmCPB!UwYwsjD$Xe?~<%{0D_WӽOVL2>~fױ6+Ӯő+ubϮǏK?+G, a 4j~NOJﮉ(m~ z*ǣ7d ۖя G(뭬?Q*jf J\pۊ:X-ŎCѿJQibxl='l6:wLk5k-l6FQ8@ \d2epO"~tNKGx%=GnJᦋt`XP.F\MfMKjjowk߅ eƚ5k8qӦM;o˗{<ׇ%P}msI}5V}J N=X*7 ߶ Cǀ~VEw8?_QbT.Az^OGiszlIuǹ{r7у [lC۪-~pFh:z㍵HWX=?pAiQf.sTs@{#;:QgSzR &@ ~{g3x݉翫v1VM2A|sh ?OΝn;<$hvyS: N=&^q'-%Iwm"ZZCHPPL>'7 o/8w=FtJ #-bۜ9|} ʷ5[lkt6wVF-]JGIiiY-wU3^ZG"!TPߏGm}L7Y}ŸV%UǓ@ @i}Jn>\w=߮Bc/aФYˉqQl%/w#W]9{_^Gqk;>xn+lg==vR};o}ed3r5Ӹ<~0i-aGW2mULQ>>f, $lC eu 'y7e "+ib=v^2QHҏ=Y>l#RN=kZݾ'8rGQUU5v~)mSzlNZ8{T͚EڵHfm\3{?@ $)>s/-֣ 85ʼM_}ŅxN@ "͎43@U<=?: sذ[sy䜘_׌=NN m50sr'>|Fz{B 7H*H۴˖1O8N0~esGHN`]=I"5RN9}Dcra6k9VtU[C\湵1cr]$N`Z(lx0n\ k}L+F0͘S[|~_!@ ZN#ͬThbiư[cp] & P>U;_>1ATt!]r;F^7ZtI ~lάg]~ wJ%!(؁W18Wd RU'gSfГQ* A-g3"lC i\_F8 9Or{Ќˀ6އfֱRy4ǎhЈ~Zlfsңgu2w={yEboKؖ(l״{j~5G fL7Xe/T=a69Ot Ǹ=H(@ XiLDbatPT `2_)N}&g3g2s|_N2DBtS, M\&~fP\f--ƣgT* ̿;G>|?_s<vZ5iK0$TBL?&ƔR,}Avҵ[9G)kWrUk(ߪJzgÞlq]ƙ+(ڱѝvd /3::FiPl6rӅ-xbmQIiinu5l~Ŷt=qt*}͘O@ A[MA ]_֡ӳ[2KKOs=#PPƨu$:*ߛ:?[C1~r|@/A&Z@T0j՘J2drvMuSJٛ ɝ5N,aWx%MGTg"2fNe$O_d4lffWQQ猪$KX8*[9?[AUb`LGj@GtlK脫L.s2V:!5K͜wbNV0coߴtmsxI8҅񻼛vUpQگHtT1&ZQ[ tG LH$Qk _.NpВ(li<ѼO)nG@YZ!sTvh@ A=4;E m̻p=zGl*0INGcS+%Ofr6|*@]l;\k-S6ϡ (b"u5r~g` ԷMr,rӋRMA ppKr!i_7?f{.̠gƱOqn`8[κg|CuߥXztJG _ڌ!J.BN5ÉKvd]_P@yb5ep*s5; (ME.*&&'R[ȳP_CJUV_7Ӑe]`6w{Z8N (IyA 6l`Z^l8ƌ~rD](zl~bGh1"w'wFS4W^a+PgOl-לMX=[iMkp:s;@7mQ3[e< @ m䲓KO3\ʥ:ɕ7&Riu5y^6%%} k&3y^Ĥ%&6IֿT&W1wVOtm50sr'>|,<K+I]ˎGg Y$K#h#/!\K jS?P řKQEY9y9{u1@ՉQ2Y'vPd1Ao^69p,U;b&3NReSxSMaE=_GP]E]^ hBHfV'5;!e E}Y(Ebl 9tӐXztJERo9UEOdX|9Ǐٮ2Ŧ$yuzm=a+c] ?*8U߾x*($Čq(޵ >tfΜ3GJ4_{#+WksNnɡdj|5]GHp0y'}Sƺ/4=Vv&9nCb?OA"޵+עk_\_jۇŢqq\.!ZG:@ .d^{M2eЄغu+ w!TL'cKzư2)r'Gĥcl8J:>fsq%>PN}CㄩM w*f錆3{3h* i݃HU5ſ+sNJ|g"55x… ϗiiiY'N0mڴ[|_``ڹ+ݓ-or3ª;!F46] oA3J?@%ϷJ>1G,TR€^Md,{>6 bEGy%Z-#()غms<}:f"$)g:h k'6lмyv\81Si>qfk(yW/,5xbD?tPe[n,EBBIII$&&c]@ eݺu"?Ȓ81JಏRMva􊄬Wa$44cɱ.!լ7e4A8n!KjUj̘ 0ܬ Ic򠇹Do`zum :r9SG1%GרȚ65MZNnGr;#'O}?R> иfU+/[i*N ~ԨMR"$;Rj}oJ@3'J?-6SI Żw0qtweY{^Mo5<>FS)/E;w{8v,C_zaߧ1~{a>A[Ŷp^3{2գz$ƕĘUeob>O@ A[D81@ p $Ij٣$ IRTUjQ\9l>?KYM7=X؊R"i4c5`ABKEYVsgJ H"X.*(5 εQ݉K"tȡ4~ HtVc(-/Qz~2*,Hti1+PҗKO? ر%e/T=a67H0_l iZ LA=X0ޭwg7s7iZ-6I0< x 'CަM\I'KHR}̊l*sㅦyځ:yu?([ :@ B<Պ" Gɰ!kg%t1VI_QVNIR!IQIj[0B+ӐѹǯgGJbS['pua&TVIB*lCDAAfuQX ŘjdtHqy"єŌ.bat )pLkLdBFSZ=rQ.#ɼVŖPm={z_˱GmNAO=Şgi4*PSU>sܭ6HIii%l(ܾWKMqՍ8gKE;wD z N=v<m"kǓ|A邂Q L6M( "~{!/J.{|RFeGOE0,8PLٸwC9,l旜ͤ㘪vN7r#Վ¢r2NKF=װik٠<6"yTZ;;RY1.Mԏ.b`mpoS+fL*T46GSI Żws[o?e# :MƑ%Kꍮ t5$\+?l=hPqFE]G5!ǀi߅ѱ&qGszn`aCw(..&::EŲ|<@xqIy]|y#mb{kA@yg$) yysf4ebQ㏍k j#>KM`YTjFo~hE[l OQCC}a{P=Wm\W\~ڕ܍ϋl>6|\j*f"kڀ:'\K6aGsu@ 4Lt*@< k:l D` IDATƎm1U TX%m6 ߲EЄ_Gk6obKd\[U,c3VuWl6 yyjN'Moa .s?]Lؐ~ۆcư宻0nqqN-yyW=wʡŋ7wnTh 'S(ZCxmK 7nW_!IC_z鼈Tξ:=0|@KWa-{/w&ԛx+Tװ[b#4:FGlѲU֓^[lЕЕЕЗ?t-h4iAC֙`ޕi} 䛓%4WLW+eT}]?tzS(-H.C}Xr׬![@@\ԋ*ܺ ʠ/L$D{8ԡ/d0R{7,2ѫ2D&cxʙSPPW/=!Æ1hT_~M!q$[k$L@Aaa%Od(GThRRۿY2tȈED^z8' 7?u*ZzSMJ t8ZJC ~2@%iöOM}}^p!U:!e&[ @PB~ʟ~;cb@EvbS]VLk/!{n:r/7bٸ`s?ϿݏK!O^t=@:+t%t%t%] -kL2[n vv|MN3aCoؑغu+~[.\/iiiY'NޟTR·c2u֚v~z `r+ ?LF\4M>[6Ƶ\4f}]&ZEOByd,{ߎsw.?[oaٌi>!a>h~:E۷< *؜k?w ]E? zĐq:b"uo\AwG9tPˬ[Y"!!$lJY0 e~4?Ǡ`{=cPu{>26Gd7;;vPp=j%w'|і֗/_/ ] ] ]tfΜǓj2{z$h=֭[2Y=A`{u xjGB8j?4kӡۂ~MVS޼jשoyIbݞQ7 t3)(Ҝz XvCC*{|CoP3':0m FE%N涡bEfcԩ7y - pg,ڹg RݠS G ymڢUE _mxT|Cc_By] &u`*@8\U{y)yĭ:;7Y Tlb+H\2u={dž;x@ $I(un-,YnL nC^,Հ8y2/&'=$Q.T=AC0^4cw$QkW@GW)6W<>EiYkע hNh?f 3߃6kys+ Kt1bmm˗o>~x[TVu.zZmH3#_[rGvUyC.51\Y9޳}-3Oon[= xӎ4>O1-cKTkv+ KA׊;-^)3c|+|*c[Ѕ2{q:ˡ7 G̟/hʹ`4pS3ڭݑsL5߬o;ϑ+w<=4\/TRLiY|<1*fOLxѭfD]tsyiͨF39bW|||"ͼBD6֭EJS1Q!Op3ajטTatuYOɚ^ Ha!/R=<1y$`b\? _MSm;zĢvs*䎽 ]7mHՕ)exep]!ɯL$wbi\wobʠy\?LgGE_SEBMc3'0O66m5-((wÇ5 kaVPP!v٪ .5nfvm@_/|]fь ׿bUqhz*L{3fiii(..ëu|_:miYwEӒmI>eǏ^ea )gaWh+e;>$l+2 -L(Z(r2㧓TNT@zw#tK@J#7"(>U7cG'zZ/݂TؒFNcXM+ФuA=lG0 4*{ԐbF=1-LOn/d%F耣ԤIg*d23Ʉ$6!ʢ,dY\ _ZiUꮴYֶߊ[]km Yd Ndcܙܙ$^9ys9'$֦`}*Udx4# mc܀e+5cFl⻿Ca6s7op޼u0.p}orwyUQw\3ӠZ_3G_}~~d`N '?؊Mz^`ӱc\ ŌE-]ʷw͈Cqq|]=_,ycR@;!\8DB )FHt鷽Ӭjf_y6L3)EY0 izΚ@Hvc떲KHq?>Lm!f!g„va:Nc鍊FiW~$Np?}:~{-v{Gȑ\6-X@ܹ9S,Vl1׵co ;rztΗam) hXdAS1XYcN;v, k+Yr!l8 Qއ>0Ҡ CqmiT`C| ys~ $ï_?ܹgnD8ݽ67C9&r7)z-{ øRh{񺡭q} i&m1Ժ"U;ۄ(ۿ j2(ֱ?"b(_:;vԤgEӨ!E5zO&rC?~9mA0;e>&0x"zLę/8MWDRR&Zl1ֵ3_~A%txFVq"_:=/vb&sln$n qgX\>'|X_?r'O(8~n Dc9Eiv>֍--> @9ͣt,9q\Wq]u']׃sMo8N݋ŠO5iuxo[m'9~LrrA@E u8k!JC7r#Q+P^(8V7um&Ӈim6dwe\. +ktx%I\w>C~#Qe*z !y$ԧ9dBjofK?fY2u 6ED)$Hthu_(6g3zf P^u&X)E-G8cgHPR1dM`hdTa#^D_Yֹj]o#Ѱ8u/*#z^qE4(*tPcyԩFIMiD6Čjmot3ƃy􄾜4S5E cNǦ 'ݱ]?1뜅l=fxU2:C3A !,/ QC Y\˖y"jw C#!{%,⦫1m|P)E'n~7?9ͤ.L\S`:E];}UF:g?CfTԽ(F*MP#z*D.FDKZݗ4r!xp rm^6䏐T#QC47ĕ әuhRoePfQDCCJ##;{ږ/P@E}V./qmO$*T TPhтSOVn#RD*5*LZQnl}1Чh>_U6ӯxG70`Lj:LY}I&lҪuO3 'żrcF$܋ ^~ 5۷s3D-IH)Zm4Nok pN>"A6&])RFzl GdBJDÖ0[5]јU0y2'?܃@Dipu$g,2 T[j6Lu,0 g!gd>ɜ;7hL=&M5lv#KH6/p/ўѴs)?Gab"kQ"fq$S"r1L47U% {s49~J:f3Zs*U=tVgɝ;SWcySU}H6+d;=/S:^l'xgxc}?<;,V,Yָq^ "sG+;4xݎ+q]FnwiqMi&H G1i4ωL z G1:/G7 x5 !n뢭̎uTzTHDDt d5Ro[Ce9uE4*4* Cƞ[QN1?mf4id鴜Y-)ɩ[yxHNL\g,[x鼅&.UKh'[+x VȤp>'`%viGsC.*#N,#m#qxR.w Ys'=&ND,t谗,+ZWM_A,)H+Mk7W^kH"I d"k3r2y2Eӧij #!n&%&bwL[>}˗SUY1'K6`2$&boi(+шaH̜ə/`R8w.7݄Q0K_Ekf6-^L[n5אԉF˧`N$1i GS̯ԅ$iב˧5)͒aͶmԯ̸\=FsYJzh49M ?}:YG6#~t'B2#i+jK"$f]Ns\Dei v8uhްX>&8''Q;# 7uf|-?XWJ-9''N9lviW gb~ut^8$rWbrkPC UI&=e0Ҫy~Rh&,DA>BzjTX캽u'7gP咩م4FShh,HK*N7mچF堭?]Hr8w6PmwR)(K߬\JOU.F ZԪD8D2FaPC3 Gϊ+1.dpSGeTC֠9:ir(Uԟ 2oAbE MsX?AmA2Xiq鑘 YN7c" p;~{B YKpjFLTbFtn~:U`+e΄ݑwޥKɛ:K# q;{/Եb*ȷQ?}:{.vF?9ib7Zd9ȑ4}Krx9;skneϒ%͟Ϡ;z@;Dۻ"vc'A;kR-Zbcxa4 >`@ZUB{NPmƔ2Rc!Q8E4/9$Һ8f|Df2u 5[$F+z8Wnr1̺1*uCn iه4YM'b[Θ?劁0"SKeuUkhIfDr=n4MAu>S+Ƥ^Ԫv I1qOb@oɗGTS jAH!7+kvδh8**P à!#=\6Jf y= %-dۨ}3*C C0Xp#w ͆4Vf{E73smL˥C4Y/S?c!եKӣIaw0{\PjA?劁W38]7Pi mD_"~^hQ(p)үlwCh}  rXucacB~NP8g#fJrY5k 9^7ΫoYGط/\ғM xsrrڕwG }aÆvmSWIyߺG2n0Rr7=]AyFHR=GۮB%<f-sGՕ1vJ=BmW\26TO9mՍS7}l{'ř3g*PRRBq͵?F.Lel*EsHz]M?^g1"nCq;pm)*dBY/͞=5a9sڕ J{[SChfmxth栳}p3(ul[(}9*+#-ΚŰ &ɾKI0 qz]3Qr==a=e}ңS0io^W]Ek$WBjRbpN; ڵ/:irM$+?-)iap߾}!w͚5T*233ˣ|222BL}duҦrq?E>H=NVQ o{fC#=H0++Ys^'SӷpejGAįҿOqhi}m7Xymsm*JxR?}++q e\}#w|qw=j؉dl"G9pنHk RbJmQv>pPDk\JtS:֬Y Y󟕺q%6͜){_ԊeYFG#3,(u4 ;YYw%Aam zf/ %3~r䜴u(.oGqۍ:[ a!:\ݡ{Μɩի/4`26lA;^g'y;(M^_̥mvSf<~G^PJ-5ywhfGkihCp)AI󒹝g=w_s " (ͷow[xJdWJʳ雗FZFz,-tqQGZWJy+ۮo2 {ʕ~ˇ@m,d9y+яmA SڶdK[O@}QRƟ &svϖcOo\=ro_? Y ˝Wb{r2ť|mNN'sV끜'kt=pf=\ӑfqSv-iYA^](n. $-dji=Kv9H;{TU)EC:Q!~! sjw`ӂ{YFDۙ! d-7˙SUREF s턦hZ )OƹA6tɞu}=_z)37nDzNٟ/Jې|{e;~釩CƉc+1lX-Km*M` M%Xpi=s0{ț6M9/aҭff/V[obce.ϵb ZEOzL-6T$SO/G,y ,1#GCsuIQ]e׽l(C߷-_rfr4_Y}epN o\ 4/zʫ 9jPڔ""'''~^b]w, (]r W~eyh7P]ro ˍmwnk{K r)&aGN>%Qy7:TW:c9N@JtG0Ks {P+9}]A\۾H3%kuHئ5k֠ !ڋS@ȇqS9OڞY<7SPۛ/Ͳ͌DR'xgxc}?<;,& '|V {h~nG H]]3#x1ZEUuu<WǬ-yPm?KSLti& ..]_9A-pp+>xMWU›&Ǖ̘G*k}k할d8?^w]eh0scܒkCږvǵdXZڮ?YkJJC{NjrGr祎@C +(o䒓.k+2st"θvۖq;9ƺ?d fc%wh4*9|o_)K\6 -ֹrvh^SڞyqA9+7ǔ9qաVVCfku6%A}^ _/O_+/7>~O~O̺F9D 8)FIDmSPdHE-k>o.F-Y2#aԉ$Gy.^sPsTl؀fjCR4=ԴGľz}JN& [ aq0Yz 1ʽ*3O9Cۻ:zv*!q&g~j ,sQOVO_jv(YBk! #w)HY/B5{/,kH>jvi@:|}5x59c/9!6Ƚ592n^rdk#+wy9'HIn3Xzoz,/i%rE3}vv)LJDf烍| =+ȱۆ@6nڶF&{HkWX0; ԗ` `ҏ==3JJ-BYt=AN#8 ũ 1}ko=! 0וјR@+n&4ԘEH؛w(omԉe)AeQk?JJTv@3R1RF4=ac/kkQaya̍XE7ow [ƺ$jHZmU3 7-uR6-Xe˖umt&!|$b>[f[s?𷼰l6R#i8h ۮ>X%^s $|7s@J7;k8X;rH8(tmӿ?oǼÇ;1_}%65!Ɣw !+R{o{08,NqSbEh[hJ&jN%~?)>ʗߎ}^タ<3N1eG>4zf_IHLH]^w87`)11^ v3q@Zb2~uF܋,+9s;|3b^]af@6eˤ\6}^s3C|ijnj f[IZG#8( ڞm˶;cb2'y`2?"xJfC0wnfʌdǮ_zؿ?%={z*ؿ?Ts|u滬ecs{ml!)(EN] ,+Jpf~7&ebb2mtq*DQM[^3;n7cٙPX]F{$<:㎜(|kP(z'vTp\%~B.i\f$}Ps7o1<ҼeT}>ps  6[;[(7^W]:}/Nc߲eؚxq`^-/ KwM{֧1sܖj~C￿ۢpY {!r]cz>쩪k:.=r>^='w;(~z~;y4 b K$_f *L((( ??yE|޼Gy7s TDl'NrWrN2+$ᶄ: DG9BExgL}gŊPm</퓻?rY "黻[2b^v඘Ht-gCf;_~48bV'E99y~rSII yi򈻊cq:UZfMxH3˗}%\?cR&:L45`n$b(KCrdF#'1 $8@Fd5SQQ`_pa-s¬BtXk R^FġCicOmӇ ïrlirWEjG .x_EDPbkp@SЯ`*2{Qam=SkΕ[xrW8h8kj}mԉ).LQJ*jGU՟m^ط8(s+k7r j@7I)7 gGkinwB>P63S%Ȕ-n03G8t)N ;S<:5ȰrO'Xu¯iHʺ+Qw/e[~LXK.*SWջÛ8cW^>c,-;9ctC7(?5!a!WG(AΟhEw^ε~(C}Ub3JI sb-We0|Te(۳[kJo9_Mհ/ 7=/?^*˃X sGx+/XS'g:<[XH3zQPHcKlw JUgT2h yzMuSr|'@H"7J HXZq54# 3t6Tч=mu]T> =~iYh5>eX'LTg_O̞8&߾{(C- *Vbi,rtNcvђA@+3TX pD,(8QWXWP[!W#}&w[P[/64z~=e<W~Qj_u/.TqVjlh^9=s lDNVʓGhvzMS89muS8: ~޺I3_0'ZW.++M?I8ƄYʏϦq47o&oʔ>:*7n$ofn6G)lƮ? /ӌAئy ʟ>KRE4$"9GBp9_q:@z]2qEKFc1c0|,8v}DnvY[qao!G֭l}AOHƬѣA`֕?$W, ZĴS_q&pOxǎ0fm_Ftb3wb3+Pm'9~44uio83Z* -W$ Lc+EB$o v>D4dwP.E Nn6*l?\>-?>#Qe$z@<^n2!PfK W 0py݆&QW'Hu.1J§_B0[S@[ya\P48dvԑׯZ+VϘv+SH1a#&Nc2vs*l2#m9bFrʈ7&a~wHh3"4F,蠫uHbB.SU]n{ȑ ^șjppt1 G5۶q7+}+˜ ֥s -_Nņ !0={kІ(ºhb[θc{>v)Hi˝Wni( 3ZBn5۶Qp!o\ӆ LOZ24vBX˰QrTbyӦDZ66MM=wq8s.ف5C>3qhuAǼy[S7D>gYu]HHBq©/y.nxNr9<8p4SXw;DDGJK7EQD.Ahz]b׹T UѴhS0\k_jCrc}PDcʼu8ڇ=hY>9At_; (u*M  xo4'g9ٚj1zRi4=bS-&d~X 7yTZa4^E^Aeyb+& aGK@-ђg%MA@F\q"VSnhHTb9 0 XhAJ[paZZ(ɧiАHx m*T4PQ!Uoj rE[>瓃;1j:+P jZnwbiImHPԨGvJ+ lA%O+cm/>EoOaѡ~-H@֠r F a#,+7`u`9VM/.(ļ]9B a'/r˟>=8"N!||1C9ڦ{ 76 ŮP?ca.^7rd y;EgS}{Km&qDN^7)';fHo!нNqܸ{,h|ygh1qcnsW\ƒs`S]Bs=}D7éwT8s9wɿǡk+++15~999X cIHvӊ+ΙvXQ l^(z*MW!͉MTcDҧ$[K)ҤHZh2; 07R $}x_80叼6o()gw3y ]+,tAe8)LO׆$u(FeqԂCՃ&Ai:TiL>T[=eUbkבX^:oɮŨKDzFlAh7z Ia|-O a:jii9iZRSa6b)J:Ԝ,`= ПYmSR(h_.ajhd#ǘjUH_3Ai>.Ӂ~ lslv`,.ߵ:v-i`o-/Ey`)zT근v8fѲE`ư kNEьoy8[zls.b/*B)n_%y۷AGc؎CLw*1ch+}O>s2YT U A:=dfO^˫95q5hNiHEY{LWR*Zu234ZlA2XiqIOLnU;](,P.-ۏ _+ƠM$1eӬ6m4:)* QAЛBC&6s-F9ͺ/\+2F uC=WD$LW^I;Ε[nGl|:'l֡mK_S#o-Ǎij<oܙ/{eܳ2;d'fL̶Qީ=֝ oW_2DjmaCͲ9Fo i48vH6b4:نfJ6,YMWOcڴ;e>䉅?n_!4))?$ǿQmm,Oy7:d`i,oqr*++=\YYٶꦫ|ہ-ܶpl}WW'v+h-_ f-w]Qس8yCSe/O9߾+2t|5_:b)Ye|s. SMk7Rȃ6 S8P--Nn/o0nzQ[FloFnkA^j9ł!\=Q>`Y3uz&_5D@9c|v/uV;]]w}Q_;8\ZxH3/DuvCs&1>/4pLij xd`ZZʨPyJXk!o<Dj.gT$%g>dj*hsTV@#bߍ)kI*)fa_řV6O93ee MMzAv+暷P^-is#hy&`CE^.}/Acj 2f5*T&dTق/S ԝ%M^(HUBp1m7VgFm91ơUR^!Mv? };'3Fh>WAz%{?>C'ak/ ѴzXőQkHu]ξ$ZHN,즏hrNϳJÖ$ vEѨ:puS Aѽ.,lTUa/ҽf;'={١`fJfnǒsh.%}]^ι>' S& )[mH΃@k tmTq+a ]Oc.#-+" PdwQ (P_ (훛R>+ <@~,9\ y+צmҲUUU~,;}ӱ9!lG5(-*럯%9/Qrڱxյs 3QE!˳x܁\zZ&)7\ʗ5K si+W]r^_/%05zqn[5Lit OH/o/ހMN|(֖O3gT\c[2gȟ|#S),Cz;j:q~B(6hQnSE_d щ~1?ϙ~uvqO.h M9CK4@U%%!1S`[(7^W]uTVw&|.3sYY?gC﹇iӂ| 5Bϓ$BÍEpqJ551cא"Wx:ݹ}Kd~* _=l䇴m~3릶aηnao;ׁ_m_^>s(;^'ͣ0$fz>۔]˸^ΣFH}Bw͚5T*233ˣ|222B3禭rqnNWfl'Npk32Q/>_yTMI /N[nTԁUSR`qKK=*7O鱻`@8Ki_rO]wK/ʕ {ܛysrrĖ"%|9mK呶%w+#Wfwy̍ Tطn}u(9yC;^q:ͪnS4rS~|~I0[ڃ睞v+չ\gb .2پHC4Vx 4ȞӛxR\ү摒 vϻּvA_r2SKep;dء-M ZWn@|f m!V{Z #Gzl7wd~^/f*+kq<ѣ4TcǙ8̔F#۷wuM].C{:c΂Vb{~gfUUUM؈6550`8͢чlue4ݡ, -5fs ͤH1']t3 er|v$/jL毜$^AKX:\v4%|zg_~z3霣'^]][n(Xs=2eJv`Jֱ]2n+ɶj=GҥKǰ}kuZ7|e]ɶ{W.]ʛomue;ov)^GYW<㡽Lg}]p}te\n,IG[rU<b޸g{?ڏZeζ]qչoco=ꗫ; ˸6}|{Myc/6?xg[yg{Ƕ@3K|1+jl&׬a5g /O4_^9pk´-dksgzO/V4]qvx0B4^Z!5=$4:֟0)h(a gAi=4}O.!P:-ZD' t@{hKzMOa!TƁkMƣoEGy`˳+ ߂ IOz]0gn̜4k^^Cl%icyٲsssc%o/Y0sW:\f&n?[jZطvs.` f%%%N+u ks|/>u.i}Q]m7;tس㾣*ӞӦ|8d}}=t^ۭtN_]T{+EQ\ruڮ\qOy_NOѹ+Ov^ݼkgϞl0< IDATñ_\J˟ xA!n#EÞ=yr#,AXbZjno's#}8A4:*6J~ 27bfVȼa|M]b6r3,e²AP)+?QI1LcžU v=ICĕ FPO%f"ACËxv"Ea^[l^uT6\jJ%GW{O>.¨A 6_{)/ ~j}6Xa%a KNfAW/e]y*LȂo\?}o+뮌vxm+[]]p΢׼sg,v&BsOrk$` .c'bGNvO!ٗZ _Pu:QP5P<[ )Лn"kgrXUh!XLآգ!.p|MsPH84rм5r6O-#MQƃ]iӘr%xon1ƹmqbݳ_\vGiuQ6OHv.)~)cbͷ/ xvҎBG/9|}=!+Pޣ`^B>u?vvz睎EA_~{]{ЕlWآ娊'O}&\> fc0ș5+,vU<(`uشqL] ^ݑ/aTiWTp7+9f)}f_5hP \Ӯ漨׼ hԖEö|fGO~R>TEtoĩ]9"ysN33Ӭ~vJ c&ӓL=Z9z"YdcyI]U?˖gLN}{%KjoG$L韒6qY@Lz:#G߻g|ڵ,^^= `BJ[/A@fxx. +d=yEЎ@H=sGE_WedR'ֺo̒*9f$qzm NJ^&eTΑ]ͼ^d╣.:Lx`_14_14"d/c!(f7J+5J^m;ÿ ed7mG!y^iߋ n<z nYHM]&PF]j1Yȍc;iR<9y3.#DxkjA4MH63f OariNw\Ə\rd%;{vq @}q7QF ֎BGx3>aZNx%Ќ~|(GxFo57u2 /𪫼k ,…m)^wXq#/g{%)`H94˞+vdO|!?> E1_}>[0+jlhg8y x{ywYyc˻8t 0+}_ngH"<@/CS9Ojm.]Exs$UǦ@#:R*1>^ٜvj7OEsQ)MjdWl*f:zț7fj&m㻩Xv<_f;/EԅʲT ٍe'{I\SiwE h}{Ǹ z4c$F-amj*'v ;AwJPa,t'0/.JJ`E?!)3^II uuu;ng,۽w܂'WZuVWp%FU/:v7oV X1deO@DHvQҤ`9w=#adշԚ-@9 LNHF]߂VڊZh‰Je~L= h<'~ qse'G1;3ضx#ֻ1c IWbe zřuXN[GHy2R9V]@wuQ2%} 6'lV !8q.btN:.ǎeIJe|} 袎h8rYʏ>"uBPsfƣ$1PIr<GCR0S^3f[r+C>e_ b77oUP ^ӧSq#]]|0== 4?K&JH"PPZvfm3oB`914M!-d76(b(3 Y!+dp,],:6 j㎛[dZJR!Kf7Q2VXTYMfs|^ V5ob?fI9 $--KZGhJ30heGu/&HI&!g\:7m9$|I${haSeQ82[X;רTXV/ ɒJv/,@iii:CΆ W՛ovWZEiiiHd|kבp,ss/ +|ukp 9b<{[>W2=M+Nafa?Y}+6-B[" <f_]w-E5KB˺ʚ.saunR &5#T]AP "KXx^z(fx;>̕lx.^GsmYMwU_26,_wW/ $Yg-4 \H~`F6gp,\ |egg,y"Ydcgt5dd f5` &װDw d{|L*Cg2HW#{Yo}7/at;uMELLir- m~I*$M_U%u{9kjfXr6㘑IK6c)ֶ$,fPFNTunWR!A%IHEMВ1,.ʚZP_(.ۏ-*(qEsfܧ~2ڈMڣlkp\x{(iس"7!ھNɼ((DH >?/>Yo Xiߡ-ؾz}C3mQ۞܄ 9 qܸfzۢvi,iyT_ s$5ZHl-Ȉȅ9uŊq]Bu&'Fyc!k5<|a3uLlhfn@w L D2 (9S0ԯc?Jaa0&MCum&:L-iLaܰkY1 T,m=z=sN'3}/:fGJRSg"~⩜}n#IWIHR"9qʨhio*+P%.wCMj()SScѤ\E73'j$$4$ ! v0qp()J[B #I7Eφl4Wc[C\Qqnn GgmR8Q]:*JFHqzR'm<t"><[Ĉjv*zpH(H º6(DH epN~7g4֒TX(l;w& ۱s'ybQ h[Ȱ~3;8'Ϡ叐0FD%RD:TN[o ﱜ."anw)-۽^IJoV&՟ڥ+͜:S\6JxKn:·F4H}[lr}ۈ@d o<>'>8<@wkǏ^&w=oS7#g֬7~4<iJCBP,h}̟ffȪg?,ޱE"Q?6B K3O33v]a؁ "F߳.P=.tG]\qhP;'Ѳ۽kU@;ײַ:$p0@܍<Ȝ Ḏ䮋 1eeea6( D,ϋ-heЀEE_Jp% с\& lHH 8]oWh%$`麖Qq7SSp}ǿUW/SՌ .Нx`n,q =1Hde=AL"ˡC=ar8?fcSt.e>'6R'~|`Jd%.T Yf0ć1=@u=^y 0C6..f /v]fW$~7p4, .On}EY.e5HUQY73ߠo_+*H= ӧ RrخCKi)Ũ-vw֞/GyiA-[QwّKG8TO)F'{~ IDATBCh孑k.t=Eœ55u*5[?sfkh}nuhі̻V TTy#lQj,kj%KM!냀@4Bx M9ݐ (!I䗔PmkUv- tz#0} Ăf:y`OPishH|tv/Y"t,2 ]Ȟ>ʍ5̂ghfn >j\)kDQ{Ș4O=% ×݋)Q ݿh&cJʞe9=2aԥ(f[%$T{|\U-29R.[rdz{.aCjԱhO?#Ƀwx)ju-~m&m`X q $qm} rՓ f)#_]\eQi=틌gۼ[O;w.;￟Q8h]6۟ҥn[,5om1QC|p8=^f O/JJJ~'dEbs-S|.ossdh CQu|E,E?Zc0q2.p"Qr_Ƙ֢8:>.S=%#2ch %~f|Z:j_ë|؈/>  \3} I= 7VZ\$ T: JpˇO6|,Y`lLw?Hcb: bB4F@Ia}uFy@ dx)L@c=SS"P5Q]~ƃaJB fK ;=ֺX$Uqķ|fde&q7+V4m i6$d:D⌴͌$_ NQeJg@R"M:2<'%O4}o-2~"#PAzuf[hǟ_r,Jrb8`4x`#^ʫ14Mġ8m1A78)}s#؆Oa$mh/ 3FoxFp$$$`-t}\7/arFTqiL,C6FҼj VDx\ɪ?Jöafx[e1J 8 D# (:6u2U5iԡ8wܐR)Ȍxo:N'朴VNOVx/j$KMVNoR#^fP7Iy9%#P/aBJ< Bgf+YCIRi gPlJ#3J NsH飜?!~}9mmU^IdK I>LXh6IHLGnؐ#8i{17qӼYw&knxx//kHنUl&1rm;_C}!#cY-51>ۈ=ϙ{قxs*a%neM>6⾼ZN D`Cؑ@p())qܽii~ӝ+ (m%jQh!J}c+WD86lQ=QiK94YnߨZev)7ozC^~,jd蜗ZZZ>Т7#a1meg[-(-TI5mߎf؈ۭ)j*9鲌^w,ל̫ngt6`V#]oTH]NFYQhQI*4$gA$kHȨU6*Ujb`:dz9&XU?&L`0I $}#Nz˹rixCw.%fv+!hZ?"#DUC2F\s$?^S>:;XI2i3b29+*4*VYAdCJV!K#B%`?-){t1]Igl/*O`“*S6"MZ%FF)F[C?"׆Gc\-9iM|<:EL!3:gO#ѨK9T{Qɡݞ=XuBBX"<-]M43B!V -rPqXu+_{s_|Ԭ,L#Nuqq`[JVV^ $'/&6Msc$37ᅬn-3@wq)s;Bz`%%s~pWҀ$?|Cvq19o[IoiN[ӑQ6%Z^"+=8 fQsmY$=|lӱZ$ U&fpu6yVsԬ\I]svKA;<m{0˻YS@M=GOذ9VDBr>q>LYMRL0yoe蛙')f${owъc}}gEQCBE 7lHUCBL jj-8g6\mr: .c8=qn<|oVGLF혆Ą$z,߆$ipA z²m%},mZ6m"eĎ3a=ݾڟeW7h{67H<#Dcwsl᜿Ԣ"AhH|*d;\D:/S0iX u:rf%gi8ds?Rkm_J"bepD 52Tm *Y%5cY]5*XObSxcR5=l8b3 9_U3U SL?Tm&è+'a38& pk&пFw~hQ@^WPv# sqc3"̉#5v#܆"͇2L ?p '^zQw Qm%~1j >, m@,h-7o{x~vnfƍț7ӓx;H[v y=<Fsa$ lF_QA|~~ì`~-bz [-P4;ۙbEf e#. ;#\ WވN|{6`ME<4WsآӫsC:>èLMAaDJG*c#iqîhlj{Yzә>|>1Pݥ&XmΝ>J+MM]U%֮}n#IWSmK$'#s{2B%`H^U'9֡"%9/3  ߦ+SQ?&= 2Fa6Uqo6vIIiL6Zh^6i\8tث39'[pKiDu}$J7\x&kS);bJx(^a#᭼wOCmXy$ې@9|V;,z=N  |(pc4q0|*^|Mȝ;78N[̂g!#OsJ?[r%o%rYYhY`*Cӝbo?cөٲ.qL)xG% u;eMPH矐]\C9b88TԩlJQSuW@@@@@@@u\0 ~;Fr[E<|2T~἟ )[},!4xb8+y=7ZIO~A o>S@+w͢ϖS-6ľ5zM1}KWf+u߳Mal㶗-Zͩ**{='=*^X*8TC.sU7S|_}oASƁ1 KKt凟Qzֲ;l4|']ԑh3TG_g˲D߬Lj?o YiW9uj-N鏷V |Xڵv5m)e<* +uxgCêU|!g ]2(/#ZFv{x9s6 7͆^[hlm7 s$ CKرơ`D^DFc*z4=r Ǹѣܸ1Eѐ=Lcg,;u}IzT#sbX {kI*,G#'= Ct`(kTp.$#f8Tl6vp_BjQ}ȲsQ},ž` -ćA5HϘ7x0'R'_(A=~]Yڢ$= _QŁY_, 0]yzL%>~$3muHuV~dyM#lP?ĥ`8E*|Eq vy=GʍQő7o< ^0}drƞ,`r^v &|`u_s;kn`ɒ@ R~z;,CGcè Px#-Z .?n(1¶eZݷAS=>?~@8qzk ;抢n \IzK*d/s"ƃwCXAs_2'W# t}L>'E/a4ιK3^Z^7]H5Gym“82[Z4$ Pima,^݀FCe)ˑ4h/gԝw- +֮`b1x4{hBMq`a;r[4k\*_{-aF'B΃k6Lyq,DXFolQcGrtY4$%?qB@U^>0tD>6J?y+ SuJ Y*y6t|?3yRrAj6[sj#W5¨Q1VY󓈵~ʼ Hի(AeNa!_voRBٳ9GYH`\\ǁ#CyG.Qs{~,o>{􇯭?^}M|5;ⅭjA*f)a:tv77/?ɄJmS1[L X-L&Tj Yək IDATִu53lrMT}+ GQϟ͛넡 x /iPت6(e¨KQ?ͶK&5LVjl>R&#_ؿإ7En(TgN{Gg A%nߜG֝r}۳W3 O"JJJXv-`]ʹ \hإiֻrٟt>^Qw鳧N8vlxi̍sOy|̫:{XNy߄-S(xl)-3ᡇqppgodڇzO+# hܴ`zQ BRM|^ٷoߺ_YIKK#77|HMM= DL嬽ns'2Ϋ;6'[Ir߻lx\}aKǏRӋ32FVCI[v _K?d~ 9U~Aj S :y/)72|JnhdZPL5|ܽy!hw_*iH-b7pYUx c>@G/TOյ/$\i߲vvZNU)L ܏E`;aMΦ0C1qz~ + ouwK @"{FTDďqAMFADEQM!,*P@- 鄬IJϓ'U{{έ]ι<y? A7ԛe4IcѮC ?z7nWϠRGzV"M 0AY}DIvy#j\^{tEnI6 XB|Z=3D5j?#''Q?ql*A>0&  NGnPol/)oLOu]7@{<9|@wFk9g8 Z, cq.]SE xㅍk8'<3clf?z> %5:mا7`"zaO1+hO0FQ)ա g_ܵQCۣ .[[W[ۙuJ{OWgF]s^ɧ ԗ'@S'J} S%#Ԝ,_W`CG?DK݇Rgu`}en)BiΝC@OT}e{׷ !Fp Z- U+^y&zrڿcP\޹,8,>z6oF{_T/W f~xL[BKб#twK;/yeP=V\ gЕĖqݬeîN"W&~:Rm-:C|K!}( d'<V2݂V[KeZ@"SjV}>NF;z8s!AF_qmOv  ,4# `ib缢qɄQ@Fd0A]ůȼrE$?GAxtr/G`|B] `Drx hAl\Aq1J ~yo 5&]O<);żמa}:2:{W-|J_?| f>3uvpZ<;^CkPz#8̛;m#X6Q@{7S`F awR4>pUa &nD"-a 3ƅzEd.ßUǣ BU(յN?@hd vZV˫Ϫ0/-jEBQzZAmz3f 'mˣ*~ 䋔Ѣ<v邊8,Ҡ_8hs砫By4l(aC]INLsݼT:ˆxF  ė$g?B<9p)c\)/BxA(+k%"V̀ q<2j\+<*=7kUcy`0MFk?Z^o_=n]O÷lxF܋^"x[Q:}s=z:.WTA_{uԤhL,/ziޖ 􌹹FoL J9*;ujS$!cb&cpTCH8(̔፟FuLCH-K~q}98Pz{/&e99/`@w&}:Kޞ(> /≸"2Af|!pz0P*P4E)T(+P0J0htLc]A %Q4DK1J(#2 H*E:X/Uh%o%Y\Q@] ju5PAS3UWZFd1:TT8}BXXgxT (P2ąvGè  EPP9ꨄR V'.Ae!K" {_3[1h*2X቉M g1ǣO.UCg.>!֑WBq u ԕPz㛝"Jm$? @ hь`0͢Q@7fmm9 Ӵ50uL9M׹e:k)T؂il qa M{5G9JThEUʶ1zB(N]mI#4 MiyL),ePJh&ALDīN3' O(2 B:#+A(Uڰ5P'0 w`/D2݈9qvdk*~1U5{}*;w;˒Ai\7}VԨQt(8x8ܼ'"3V?W/ܹhF­l>kN6̝?Dap}:eK9r$B]y١+R8/xZ=pVr @w&@ E1K:1f(*j78]Qˉj4sI_h( p5*@*TV5kHcso^TU`nEܼ6SP 0pXY^muuvɗؗhDTgf!.5^^gdr}UW=Q. | lKP~:4}Zjі5?L`.G @ 2e˖ǎ+Bff&MF bڵHLL;Ը!+8T\>vD}uw/Q?Ӗ/_9KgCrr28< %%hիQ_Q^}ec0 Bw))=#F8L~yILO6" A}8.]~נS iN)NJ`t8Uo Ζݕt( #22шBPPlY>?'@ iF3j%_OesFȯ(3B3/(emfSa!Gga clamI ǏcЪU拮`s9$_$_1l^vvHKKCj=(qS^0sH"}S-SMzj47՞F_@ AJJI/l Z4#o  H8#xąQ8ֶ@PqA":vUv錺e.=\CpH3P^ JH;Z@ @ fBJ6'cItH 7!ƣ<,bo F8:;"{JϞ-8t] /:/||ђ:XAPt0b$.RSSQ{6e @<" pEVqq(?wz(Tˢ]u.˪jԎ3Ł̙&UgīWqE|كksvADD@ 8)NL&a'tPzF2F+Pp "Ǯ^;pJ>|}@1KT\VvHKKCR<\[7-)7 Ӣ@  @ X n=+Vz]Rq"' @ v Pzӂ(@GLrҺk Ψ/qE\Wė=&8hь@ 68„RJh\F1cPaW:+؁䋎dw~v'NzT݂W#eM~ @[sb|8M݁JvޡGͥod4QL{y3*ٵjڭꚃ"շWݴ4җ"+댾EpТ@ ̚Uïm[Yjc s&xN :9cÇ(}`.䋖qAm^EEETc18f۶ucvBl{r(0\߳S cs~Zv4K|OK#`Gk|쉳_~)S\P{(DB]|8#*ꪡ*k^mڠ,'uFXp<3$h|@(oiٳ痱cv]}V1;L,u322Rʩ0 N_{pW͕똖Tї@f@0mU.^Gmh/;H.eNL@SX__Dvp̭j&(k>3!v!|['y=6Уaݻ;/kGK%G'ˡ##ؑvG'Xo)S\sb{;!ʩB} &X>wo:F9$ .yeS0LI;v "G9ZX)emjj㤤$릦"qO_g.S!\W_ʰ;;Wr,G?y,[L?vX2331m4b`k׮Ebb"j~d)˗C*2>ƪupP6,2O;4RB6CrrrB)))-qj+~)_pQ{`[1ra8\ݷg>#wjChKꋮ`s9$_$_౶_G@Ku,~zXV(/^Kggg[zz: hDEE!((H,sA5_2_zy[p.oBqq3釵0 z=A 'a`;Ӟf`TO4uu(~>Y8y>+.U>+E w?G_2}davg͘1t(h|Vu:ލ~]xs||R:XGϠ 뇂wi;u:EkJyEwaj,*r×nBD32{qR5][Lӌgg:NKKs+}+{sY+=+g?L'8hь@ l;YO(9/*qxmXx <\n| eo2̝4ػ%dpytyP;fS ZF v0CEEK`-Gs.m+_ /V\[ẾQm5gG p(AS9Lz),3z rG0VѸW`AE\Оf`_cJx*QXP0ZPCOSUq2ƌ}B xO"{Z:Qu:$̛'i@ Qx |3\Q캊F@i ,lnؠwIA"XJ]gu˦TŎ[RrsS1?u\9+nĕ\j\_7,u1g+o\H3@%*31wP4_kȬtKAtWeQ̽3@As'YY6ځ QfÇ/:/(=##Z ʎGYes{ַ Gw wotz |-Bz:.!b`EW//ZRk9r$^up9;h50ʆ9̙lt5}1 [@+O`qt,X^_kyضx#j[}?x[rFKGf<;:ujQYc~* 7+cѩ`0'"{l4c[]Gˍٸ\sDDDSgCc\oY}R7k+V~NLĎN0yI}F ;]aIH-""Ԉ5s"=lš WI3rhPʼsh+V\E7׾֨kh,b~eɕo|RoK cg-**j/Lڮ^III3B<ɉg3y@f`ؾ2*6;Iٷ+/_U/I!sб#WDXâÇqaf Y| |@رw/=K١!8A 1aހ٩\ޱâ:;KQ`Ϫhj~GF!'Ҍkٜ„X*ZPDsrEu{j222d$RBe)[2ln߄ڒ-Ɨύ:2uo%1>Y0 r%&ߐ}+Smg],ϖRƠ17]-mqDŽ9O9ʉRe+b#s3˛1[iF w{jDf"LNv튔7Wޜal_?}:4+SUUe|Жc^}Уwou:ٹju:}UΛ%{:±#ؑ΃~5 (xu 7n nxt C}_?g Es(,(0!DHxhƟK7-(c <_c22hv҅y95}OY5=dDDD43 aDgdd4k/gX>_NFFF3.ąv۞Äi7]̌&n&y) #]9BןpmX ט7"\~#v]n]>iFbvI>9c'--B>e1+ԮXɦm˖-ӏ;VrLL6#ڵkH>DY rqst6$''7zy@JJ$<559W/pAW>3E{ߞf,ۇ3~vMsxu>c$)"#//ZRkihh.a/7@A5sm_h˯/'19BrYXBdJ-Tא.B"Զ:_FhO ϋ)ĩOBL?y_ccFl91=\3Na7Cz_bmogoX? ݯ{ 'gEi ghL@ CON7Qo7[:3;*o$ˠ 4 :9cǠj5|5@f䋎dh!3?ĉٳD^0,m}1{wj걄ap:dڎ<7Ɛ&cXxHR?=Qzd>6twߙ1H}u /yVi zOFi#LBqpE(.W=o'od39ٿEg^4r̗)P[B&{U S׋K,ZC^lb{ -e>s# ER݈fFM.BLO-`H! H-1ӑ/[ޘcwC{B~?Y(7)c!YO^lLLغu}UR4T~*֖HdL׭]@f` 0n/CB:j;Eʕ2Ţrƅ͛1d:"@ r%gϖhG 5p}#z)ϝ;AgB~e;'лpxb" foC.?I1bevpĠVlA.`q#j^LQvtVPQhPfB2sBA/@<('bFB | =@IK*\~X]La ć߳t;:#Os*gR,;!v?bAJZnPdƿɑ'-&g=))I> 1pRj8p@ѣ;kroBj<˥爔@  6PIAi7=#DNڣG-ơ^Cֿ>#(!ix$_t ;PzFEGyd oǭӧ1x@[>bcQ֘z-36 qI=߸WNV#SK`Ɍ1iңfUsmC .B:gR=n>JY#bQRBu<H:/_|7Ĺ!R|K=#0]FOI՗‹-d뷹Qsֲv5n=ʔWȷ-yoN{8,cÏáEݭ[nW0u@$=_'ǰ3a⍨M][v⍏NR={4,f95B]<=I#ͺ#C-!|]Pfɺ6^lq G|g7wۛN_B{F"!HڒF"ϾXrs ߽_2 Ois0sZW'g`[ɋqaB7Pg)PzF@*~Ü1Kc9oh >'O{Pv$[$!DNoEH^f˻u "vTaL`e#8|9iaP) OHR` f11σV>ǖm_"D=Sk>xnP uhه\Mo&ÔJ:ۢ-:aZ`4)eCPy yEs,z]߱KO C僮ӗc=͞ *Zœ7q N?Tvnh NRT׿h1_#]g^"hF @p|rK¦,.(@+6] &Y!sM"8%%fsX|{/RJiF,y$d.eK3l՝CпW}{r3G/Q{K!J[^XUGp|WpoRxt%gp< }-wp>Fz6&> 5]E>g$[@[EU9*lʢ˗׾}cs( glG\.܉ƍM!8ѤEJ//ZR[ش6C#888x12g̀uJeaav-Μ)`w3_ Jk[BU~{g>y& $mlTѩTٿf|so]g;~-5W~`{x_8A-L1aiqʩ}R w=<m<+ E x{#n{HS_F>Jv*^}eޭj ؾeJ)RܘkG~܇Rԫ }Tu\j!аx= g=ݐnƊ)~f;Mf{ ۏ;.yJFfB[|w{[:u coY+U!eQ~ zh4`C`e˖ǎ+Bff&M֮]D |ɇ#KA?._r-m5fT.ix#4 zxӟ=C.Crrr󍓐:|ӧjפtjd#Q_Y Ȯ8q#v]J gF]|ߔRaܣt>><td, Z0u9W/$;<;[vP(Fdd$ ٲ̞QƲoWB.a3sqa*kN,(59}|h6cc3rR,\.zuffc{kU1~InTKpg:\#dvTrTg34#d>T5WOf6ٸK>M?ā=Z9jelO}d k|Y | KWa^OxkNݿVᩎpyL|Y|64[gb. f'GWkd.6jWC;\> s9{U⧖wZ ߚXg=)Ҍ@ lmLC5v٢:'1M f䋖iCtiƻvk6rf1H}u /yVi zJ^0u8ug{:,15+e%7U;~$=m;<"6mOaH 7aa^r)S߯T@ ӥ|\|V~?p4Z3J p:עNRuCxmn}h}+l8otڂ Z4#;A e4|^Ƞһ7>?4~\#:%׎rϑaD 1#l\8 u>O왼* #& O=Wx?Vͱ͞s;2oc7ϰPM?wl>}3-´bP3aj/Ef@T[ e,澹lanT+pNO<{]4+>z3f 'GEװ//ZR[5jNXMc.ң,_Y%:vL Ei&̍4䀉U+DlR^cdQVJySʺa3! Uy{uᶺ=ڤzg$wM)6@䏱gׯ}> %ڞ*:W{" >{w9cr!F 9HKK U{jwzS`1t(.܉L:GԲeh?q"NDD7:کy$_t ;!"%u) ޯ BeGܹu4]~~L;/z75-NƢ<7":8 |_/{~dMmo:J]KNNn'jXk_gLgf6Ǘ%WPy|c:_RЗ=eX< +Ԯ`Nz^T?c[X? ]N;p91}phIۙÕ9-f-O]1S qam~1곣)112E3@pPh3zTO0;P=j.}%3ǤIb˛WH#85iZUͮ'dΘB'ֿS\p}.5i2kZEٹsVao bz@0iAaP2~:n4CƲgd4˞/gf65R)և&9 M b{`-/T[m"ePyV|} LcHxj kj$6&d C::~ D:.-cK:<_w>o5 OVapd,(k)HMMEfɠ4d̙38vܹ֬A}, ֶHE)\]䋎d{xСmt>p5<i~*^hpjkIv3Q_rh{4>| Fwk􀷴U9) -H43dI)/$_V7˗#$[Z 8ƞcurLn?999n`ߚBe [g?7=5$[PP]1pmW^46@I?@3݄7tOo_L&3^Re9cgdd u{/Oz}#>}˞ҁ[>&J`\JMM0;[_h3BKH/”Xyck_/֭[E c=M>lVg)ZȧdJo%į! =J^s"/ /Ķ }bzCy8x/*CzcDbG*:cЀpT\-El( ed8bz3g`ƍXl鉷z 6m9έe^pE5 wXXS.EEW"#ŖO!\qyMQJs˷q5d_vG]> k[9#!RS>˹pMR+c!?| ߸eضBwvܟBYC_Mۖ-[۸idffbڴi ֮]+G|` ?!~)_S5~Y9 87'!j,zv n=POo<T;]2m䦷Y7n"8V/hJg9Am}+!==?3Ǝ޽{cǎ\ؿ?f͚x/:/1Q~&,Z$x\ݿy_}!!(!<;.~x*pЫy j=O7nl}KOOB@pp0"##(ɖed#|r uEWVc S֢ߪ/!r>o>'ϯ^>@}1'37G/oz 8_d A kt/n?j,3@9A]flyӄ~ٿ0>7W ,BO~9c,prh_M~zcۆ/sl36Ʀk3!G. s"S̍j$ff:>"gdPT]3CR$Vce럹vf G=be9cTݷF [bD)=#@ w Vqh*ա,k~c!Ul+ػM )ހ4E> s@]wc {PΞEEEׯƏ49rMig͚K"&&?p:/c>؞}xx.!ii%&bڵ8p4pSy/-+nD@>P!z;2Ab!?_a>޳}f!VƂZА1uMn7v2dWP4, Rq#3 Ei\9Bdžd+ϞX]c%-- IIIr. 7ơ1~pbL_n=)6J(=#LaadIuMK6Mex\+C;f)-krǔ176t秅b2 `|[3ꞑTE|\}פAs"VEG#͠C/1u>\E.8>ǼZ.]%s3XmrfoDu9u ǀ|T$EiV;`رŶmжm[L<{FEEE? sČNBOaܣc#~XP|w x"իQVX mǽ"̈́P?=Qz(|y }g"ڪ\܃K6x~)xa45s#Y]WuFJ4kKc0NDǐ(')Mr??2Pl@8{(1C/KDD{r%7bH])bN 5ifnE dNFY(R~%G/ݟq]j9wil|͜L]n4'@f`s(<_ؾ{"~E0 ak ;I5 p˼j*._FԘ1(;iYYY>|8Ə/|ll,&Nz  BVD@ 4C@|<:; C׮XfsT7,==޸N(r^ ]xwH˟,ґfbY1]nԺ) `02},%DN""غD @T$YQRk/ÐR2b φ2J9}L_5Q'C\k#)cR~eh(NX3v:onLRRd ӗ\H3U@fk`=~ܗx_ӻp7gO0oP 3aVݛ77 (Kd| 4_&۷oFɓH@ 8/Reh6mֈիo]ki-ħK?ƁSK/<8?=j.[UoQPXvFf 7 N?i&HkG7""ApLfkl(EOvmi"ͤn>iKGk3"P `CPYQ\D_} t-^6 ۾م]; [m[/bւܖ-).OddcY&-!ʕ+1{l fЫW/_CE؁||ё`o@{bkFuUUU4o]Z`Ÿs,tPm76u6oY}7>:Jⓓ AV7EV=SڵL!]ؽ{Ecq(W妥GˍаtX+͝Ѿo֨+կͳon.7u {/5gت]K%8(=#@ 8LXuZ=^@'V I mBԝɼN, 8]v5~Ν1k, 5Y@ ;# (%L27F1:cЀpl>Y:k>xnP uhه\Mo{Qe,θQXR ,ծXn4c.eiW1?2܈ up4-7.W^FKV̯ac>ibc)cڼ9|9S Z4#] >UnJ%iu'>ԟTwʖa-!4涟o ,0x?Φ/,[L/gLL6#ڵkH>DY rb7_SWQ6</=8o-xJJr'OFqQ@fƩo lZkjYYY`Xb,[ Cl!|@HHv7Ne!@ C@ں锦wR2ZݔӡP(HDGG#** AAAeYl~. 1s\B|՘/Pw >`w#qZ\ G/> ̘KN(iޥ70~^(ˁ̙ussǷl<]MWwW͔vHOO`SJ]WBI?sZ_, f!l)''|fϞ-]xx81f:tHģxbEEGgX(jOȃwx8P_[ѪߛBwe甶߿3Tg TC0. v=֊+e̙" г^=mPb6KKI:m.N3ѝf"-)V[k눶]4 g~Ym€+h%Z٢B@պV+ږ5OG)2 8~+L!7y'c Y\YUi)ֿ\2>ɕۢ<3{hLAA,l kW<--yp.1CiavM٢;46CmSU*.y?AA73A74Ap(45PNS呻K=KKѶ\:Jj5'NAˉ*/: m>ߟ6WݎrѶ`m5֚xh%Z^Zp i&8q!\7CI۹~Ō1nf/!>d Yf Fr455bū}{<8[GF]آpo]hR"̨[g&WlѶ}+j%X@f  _kxmF=뒟O_dX|=4TFC|CNOOCVRRҥK?>qqq`PTT5[t-^ (ؓA3-Z>ܫCF!Ph3AA]$Apho瓒;J[Li:n.zN(sC)**2Zިj͛ŋ!>>^&CA6) G׷lTY ;|VsAd.{(SLhcͭcMDgen7TgWVh%z9Ck5 #6Qȥ4^@e޾4WES(< ZLd{CNONCjٸq#sS4HJJbĉl޼SēxW<8ٱcjkxMfBhXP%C Pzvr;=.":gTT0y2J7WvՏ3AA4U/}hoݺOOORRRArr2vsbkeelݺ3f|||eر5"D Wll]b]Qհl'Z %S~a"_G=m7g@6CYgww$HC?whl&vHMTo>AALd=jH'w%R8)!>lm//12`Ξ=kwՏZfԩ@ ȑ#7nViZ4^]AA… YYYf7شi('tʲefG{\hɓYj:IҰ0 / sXZ-999?&55U&GlDaa!K.e Xx1#))ɾg?祗cbe℞sP^Y1UN3I(yp-roļyvY p ;@(s:z%04: /Ae?0F>5uT*xIIIa^3gvO@܆(8^~IRV,ikւk AրKtak1 2dJ̉03qvA dp2h X _ Χʫ!>}턯]Ͳی-&,a8WLII .dȐ!̝;b6moAALAk)zno>KKK:t( hVMwbkma%%%:LOJJbĉl޼oO1Gb0hpآ:y8xQTvOҍg$t|b3gNlL.l (  8AЧ}XcfF40-ypQC IDAT-i2¬tmf'RbxX}$*EuPaP_l>GVoIX85yAAl˦M:l8A1@骖0祽 5kXZĉm7#uf{AgÞ 4Ap5 fJ 7Gy[ۣGʼ +uVh%ZVfmٓϦ;u%<>oU. %L>jmU϶鳊;@ _o޼c(..fǎ&>a„.Wǚ`o[GubccYr%3f0" \1}D^m6[-hs􌝴vCBf֌a%bےӝ:  Bf<~^#8rÏxsQan]ыgDuxWypG#n,xe~Ce̺1} g!8P&Xp,5P^ w3oeP|/9d{xOIW9i3  µIm/<oҦT9',M}Хg?P>+.݇/a)RUfwc<^Ï@^>po}#yb},e6W d $)`,fͫeG)i&p2y.XRnO>R|=^1gT57nc())ᥗ^bΜ99\,Ǥ$n֮]t_~% $&&2a„+|-g*XGnn.gf6q9z[hhl 9RqwMiyyj?ˀ?~CzQ4'<^E_T}1qD  |iޡPBLoW:VWck-`-bmM"tk?n"(oh#Xv-| C rBKZ45 ugD/JD+˥?͆],y~# x&C<=c{/R8#u/dcGy;)Nr) _jrj[R8q `܉fbD[jrxd[;m1[fJw5,,,dܸq\wu58zhrssIJJwhgdeeq7|Qؕ- Il[w_|}__ZnD9ԡѓQҧ8(׍Gm yyyL>ݦc08i6GTℊ/?TÞ }//ۥ'Rw'%ʬ[;jŠ+֎kVKxGgk;:uM8tšge]/oٲ___n N/5⬫1dddpԩV~ @?|:AAeʤ'@ #G346RYT;@Tk}ѧ{TyA5xDHA뿼 mlZ S oPN.=4/z~8;> :늲ptnA+yHb]~a^-iG a ([GLЉ*8t]RGGn-mS W.<jYl<;YueBڤ^@'\KBcyK8x`rssIKK#!!AYu EPKFWF(klllKXd NzBFU~wKE]ZZСCMRFƘV\Ɍ3Oxz  \M(pS4?O@N룢/~WXn4Gkͱǁ?o9(.6R{(J'8ז͓s^7zƍ GS"@i_i& XD!Pݪ>ۢhp)233-w [y뭷5kV^Z9[Ohe;V'Jf D  2\o5Ͻh8r}G@\&Du:zGYU3'Ae!qpmDXgMOޖuV<==IKKi5T;EV3{:%6:ߝ4VGEXXXҥK[eƾ``ĉ.:~N2^)wAtX}Rt9ѺCxx8˗/gmSMlQAA!'g.ӌ77=~^:'(Zة]ٜD{\2/ϰ a@-e4x& @o\e1Ȍ>xY.X ` ?l_ 80mG^^U/\Rti Jrr2*Gj?b^yKQQѕ?F. KtbݱN6=G.频#YuaXRRҪ19n}Xt9BԩSYbZ^0oZo#[AAzQ\S}"Ƿe[ɘi2OC9krK[TS__OcSs`~t߽?UraǼŇX=wK现靅uz'{$D wܮ!Haa!6l'42سq&#Mhh(ӦM`OӨhٶm[uˌR-/'ĎnQ*iӦŋ7oIIImw 9Ja aӯnguewZB=z˞ 쾺(&.w Vn6KFF'55tUWmkJ9`%E`XqgΜ9k|ͳ'5P^ w3O&H̆9TsЊ4_O 49+Wcǎίw9Չ .CӹM|Yt| >r} +*|qdU~;G%Yi2keZG'`)43' 7ØHx555:K[kiV^CciZ{1n~Su_,G}Dmm-w}w}/)ۼRQ*ELL [|.tN6?JO96ɤꃋK&Zux qhDz2[2W>k!:]}^'q{~<'u2Ԫռ-Lx/[ˎc"tM9M\s̈́qk̞7wGݿ@5WܴiS{k|4A,OVhr8-VݙB233 MбVљTUU_%E4[̓Z&''˗d~aTbvѦn٠A[^FBhIII̛7ŋ8Kx` 4ա]([<0cuǙƷדwzn?':ff8>:g_ұNzEErPym=ϡb7W6osp,ܗ;p%%%,\ܮp38*`h(lQ_0%%Ų>"vmfޢtjk&xBSIn0Xu#U0:ժf.L/GTem5WDžd/SRsfOjWq-OUh2CoD3_pgH(} o}uo%KHLLd„ 6yfY~=YYYJ2fKNrI|IJJju^3gv@dlC¦7ႃq16佪hZ6n=ܣ@_?X/(_Vwr &p-xWBt k@`O8;#Aed3xZw?BLNiftt#Y2s0Zg讝LNrfʕ̘1cS4۲e ~~~Bpp0r ݿVUH{PѻW!tW;jsN1Zת4;9e4玹q ?b[~2j֏)DN_ŭ@<ϛ wjW0"5kj8~a8/ABZh8ݽ4?s!O `>MŖgE~KM!Vl3GpŁvr;.׶JŜ9sشiEEE]:Li(D-XCTYPyy[^['=&-4 -#r(y ͅAJX|9۷o'--~=U}S׏@T*DDD`q?|.@q>( Gwt05fG^}'!Zm#up\(}Dr' n q11n8jD잗&dh>-)l2!hzJل<|8z]l )--e…j|||LJbbcc|~رc ">>T FiMWejC:G֣OtSзo_"""LYUUAKJÏACyAhnAƼJo£u<5_܃i~UA1 `⸁{)b`E{mNfȐk/" NldhfFIn%8T5>A Ѫ De̹[j"%l*FL'wP(N3LeժUm~7D3|1Rq8Ƿ_D2^Xݾ·ۆ~ag>OXT[C S=AW;vBOE~xME<4eXJ4gkϟ|Iu,CNT"i&=OA+[ڒ1 ׯo}k6mU~7m~g]n vLi>QmG֭[9Qɉ|J &\sk5ۅlذ'|\·5-5 h}QfSէEMMN?৅fj XKҒBV0oT.ZJJJﺌе*GyŋLRRmׄCgŷ&=ykZFGS7nܕݞH'waLcgʕ?~}A}3U]ؘK`` !!! XD>ûoo$i%v=;s:p/uel|'Mpfj5HmddsaGGIؖ1x [)1>ʪF26aq]:{>d{QNMϨO裏 >,(-:bY6a ?[! ;c"Mhhz[>mŸL*m`1[N[aƜݺb+Fv0іvF]]J6:I]t ߿Tbg\wuI޽&((~^~ey>>|]N׋6WKHy h+vBJé+DZͤ'3cI$sד1Gl˨^u_[˨LJ\s>m@98)'f:ؔ[(^(Fgtk/$K%cl>U͛ayk>`?i& XD^^/ ۢt,݈jK-wγGStuUzl'> IDATl~Pt,s/F*Z[z7a菆muڌ:v)gH}}=;:ƌ8adff%ah9zJKK㫏gcG} X5ul89hz[;[옄)T;dRפdXPPoğCAÔk8q"7o&((v: CC_7Ab6DR4誖:F[/ŭ5JQgk[쌚<==ҥKTVVjA[y,jѿ5_(aoT~荛dd t݊3IL: r]0Tpn8Dss3455[ gD+KtAq amdHz.u)ե?ĤvY)D/r$]IgKjgkW_ZTԁ3mQ111ŋӑٌ?qCqq1[nmĚڣiA4ʶ/TpT`QT1-n%/F1~(@]AV3qD>S:ucl"-/4(**"33C-3 ՝OKKcl߾4xAU#*U]'N3㬱FyAAR$A4aݢ3~7p=09l4Ej><wè`"vE[ M[ngk92н>{@nih e;ihJt,t9z!TǺr(..f…`8f#"|@'T5,DBuo $$2݇+>diROW϶\*..W^a߾}0w\-~٬hZ&77"ڢ>-cBBD $ϖvO:o;IN׸}vǯ+>n^n]Rイ.yaqu5ܟckm['MwFBv_.j0vXj5naHh1 Z-7ndީe;MW(L:+VNgkmb>ⶋ0;,AA[#f =q7]~^y+Z<AQay睮1v#H7[U[nsoc].->>4VEuCτ :ٱcG_i mf P.ç0D *7c~8 .3Zxup'-9$ d}[VMMUq.Bp7:]WoUFR0* XbOg]cJ7#Юv qd+0!# |:JEVVl޼5bW,/tZZFIJJ}9<ŒL6rHV\Ɏ;HMMCw`W=Z-ZMYss<  NGf =Cz=-&mG G!y7>нLw5 qlc3gԧ;P@"-jaZ\bkM",YBbbtc%www5쒆 N[ǽh9_IŦwpPUUŁPCqqiT(ɾ/'IekX?}Yd f4M%J<$y;ɠ+PU։?5k֘~u7R͘VZh|ԇބ?4 >Z* ~}Y'ie%%%;<f;[`ۿzTEP_~،* ԮϓzY{Ǚ   8q 2xy_Gi̝;A~ͼg$Fcu #gE:^,Ml =۾LwU /pLCs03q9[,EN3'(( 6md1G-i6Gt]QQAnn.cǎEԯadpr_zESktpل lOX-QݏyA`%ԞZͼyXx1999Ei4ڌtEQfEu?`;ۂԷ@.4&_YgMMSmgJwAAAp64Ap<0;2>GgK̓'OӧOoS7nU[c8yhΒ 2bvEBBBЬoL׉/||] Om1ü۴5>3ȼ-|P ;vubl<ݦP|w~OLL |DӞN&p1^i?rKfO;={iȵ=krb1J']Wք#ʼnum's?ƳOb8Jr rҜQNTTO;aYy$b/EEEİyfvaѺgnܵJԧ,ঈDksرcm{NOŗϱD}(..69H"*b;ZL3СC"  SLa߾}"DGpBmVV 6m/ l2222Ćّ-Z%Mg-#嗸-xƚg6~JɓYjU§L"hOJ7š(M~OVNEʻmTӧӧb7fGXJ*avqk? 28[Mϝ;Ǯݻho`Ĉ[Ծ72f̍Cjjj{5ݐH߳rJy"-ԩSRի*}W{>w24ABMf=|4ApU9QJL26}~7ng6}|]C֊ok C;~AaƓۦA˴eq[; k9bty[P׶>`x pSt {> 2\CAA Vn+ YE>,0 8bQ]]cǐDٺ}D'k 1^=2'[K}؛kW//{Moݺ/O/G|VY:ywgL:Tl=jի9sf/~@(-EVƍ0뾎Շ6ki;aX]]/C_0⬩IR_mKկ\ gfsD+JrBGf =*g kt O#bo>:/4Tz;O=BTndTgpK|a?rUYBQA͓ch]]khq]K%֗ŭgzxQT [^:ʼ-2jX]m 5\JŴiHLLdŌ;QFuU~~>ׯEFah/ Am6ƌ؃W3lm;߂A atnii)YFA7Tp"H6m\wu]7_)blKdJQ0X\ӺT_㢮)9x ;wdՌ;Rit3gq5&j'e>#iIOO B_2αK{|B-O 48.E+VP[[yYM#Z 雀e,))'`i7'P]]wHBTT111DEElq_/5ђHk+"lB@\ V=? #??  X5h4n>v¦r=z3jPYksf{}/ŕC]T' a@?*`el<Ff֎kڬ9]K/_5k>%''G'%%s30)9fv18 \omg{}ZuKaαf5]RRҥKRBp<$''SPP@QQ/R Kun;̬QAE/辔 EڬPlSx\8oz/dO'Rщ3p@p : yטqf6bѰ+Lݨw$(LWkf/j5cOx8`2ݻ5kְ`Kj }1ʕ+1cJUd_QTDFFA@x4Z 3C  A"AnUCu9}r7e\ g[xꩧ48rDF9{[ijǏox5 &5vaZ z77*X 58SOJ*K*ȳؒ%&L> 55g:d ӧORviL qkkc4QS|iBlpq6/y衇@ M_"̓37qnz@&n?Ke#!b8^hs=!99g}jf_=`:o£#~9|0o?ӧףl)d8! ~d= 4o+7r33P~A$̪ ~4߾sgVo.ׅ㦀IM!vH,}C6#kZl1Vh3AcVp- .fee`ӦM)˖-JdG{\hDСCL2~yyyV@jMWki-&Ǩ'CP~[q vUpGP(3.n;NZv<\304Hug E]kB'`)uҶj?1>^n=gmwSk4}8Kz1ETI (H6HPSU=(jO CMU%RV7x竕L݊?X4u_hhh{y2hѿLMM w}wϛ^)5vZv߾}-??FC`` *H"""V_N}>VQc7)2o2^}"ܨ-|{Wg-g~^`4}-KpŶ|%WN E}Ƕ5τh%ZV۲;}6sR]a.: ]I(XOL:nWNp *Kw)qa"1,mRD2(޵m3;pj|nn?=7c߹Qh0>-mJhn4y)5)Z¯"ͯQef˶:V(]nݺ6-߰c cvev$Z]9[<֭[-Էmk+Yp%Li&ێlD'ݜH34qX9G3zT*eհ(kb6f--WOu Wjld pG)|6"¬''P]]!l>ͶYqZ-=3oLio a}mr7rf%^Bء_:c{OC}3*&*궼Su/ }}DeK2|]$_Onï$-s iSLFCP<"X־ _mz#XZZ*h0:]L W/o빹\DTT;mϓ]]]tuuIGG>} ?R~>3‡K/p2=ly^eB0{TQR+*Pu:7omJk> 4i=d~tb 5ꢕj=ɦɷBHH0Muԟ)#!:[,Icǎ7ŢEHKK3}iQp6S?cj gOb8SQLwWL֧ 5!dOO{/Nx8Ͻx-7>zF2xRq|17ỏ'Lf]tLΝ;mfZAhp]0n~;BHC)<׎_gYΆ~狼LK#yq.=̐ifFlNRy|Yߟ<͜4 O3c߼yefO3uTG Je%wEb~=Ik|JVjz))[̗~6]h{mǎNўTf4ӠA 8mڴtWVqXlJKHHm0AF$l=Pn S&Š' q\ǜ[Hd[qN >7(>A];|{֡1$6nȂ ,o{VFOABp'ĉp_b1hLU CF\ ߶!2@txEI&Yg ej $-s q C1;OH#1e%ӷr2 &Lχw~+Nr)G{3!W#*|y7{h$.η^ƌTTS&y:ʭ|]?SA֜Y-e+23)`bKXnJhx9g6ƕ=T踎Zf=}Zfyby"[gujbz+VǜY{R:r׬ytFk6]jf==_y<jަ[>7/g45P6n8rrrz``r̊SMMe`h QCMz$,!92UatwэDI?نK)?Ԛbn]{RG],))alٲٳgfs=әgK1h?? 5I&^dZ #`ү 2r gVyd4+b/UC)>}|7Q%|"[npBAAez555N;+ ڷ/VIR5m_^u CZU;/bxXyU¿DJ_{yoO5T oR׻ָ7GP]RbgR2`7N_/U9WDZ#\kX-_8{l;v{58k0C# EWX!6ѣGmݺ3>JgjK&ex.\h^e }3bouۅ_1t=JiK 5=-?) m 9Є߽#sfF`מ)++̄ ,)V"55[O_}#cp?\ߴi:3g\ (.. ZPP$&&BRRQQQJ>{f1ÊGY,_˯WK q9TtxFw sXO~zfR Dkn'D_sxAY;=Ve*t`0p‹wO_,+6>>tX)1w<0J9\O{@Vf˙\xvǢdۗ0g+Yk,ZO͛RVb9WL.-zHQcp;}Em^G #}M]i)>}b\zFG5*Quz[x&++&t;xOĖ7ỏ'x-Cb0qD&NȄ xC*ܜJTwԑ[6!飜zUϳâ"6mIJe. H GOKޢF̈́ 1guOWW3Hxr;!>51HR?BnyLCWG=-N MR\\)++Җx*BBB ;ݻGx!oBW_=~ /q*㽝5=O>qäK0LrN09پ2GTCVI9d^O^^W#[guTVbƫ#ijaDVN3'P/aܩW_OZCw}L/suٯ}z᫿=۴cI|^xxq$ ̄G3ڣC qO2= u7s3'XMGiK`q"H>&ܽMd ֌f4hРA)f@Nz<5~~~$ɧr?8 "9J &z vԚmc rtMp.y"ܧrC LHH3$,Cj:I<2氌 zm q}w)gi@hׄ"a9"r@yG_g b in{L$Νk.''bD7n5556ǽ)}T*'\Ǐ_jr@u._w,'?͊g.Bod1HvN3{-1؜A/5)9-7.ۯ`lHɍ;wDdC+xlM+U8G[]3G:*iS.EHV*w)BKr׬ĤWоgm0`08K2:BFK#H-&*:qEcl576ElLxهLGPD0mg)ޕJYg˺xo: "4ӠA yɬ̝;eoɧҡ %Lui .5'\fnyT@~шUyco||pۻ| 5:.+[qbrt4#Ғ'K Y KJw};{2qfUr!2:A\I!&CV*)**"77uVڂ$] 9b8(:ku33jŽ Ġ9WyD@:]HHȥBw7bNff&ʅ&eKlC>j:>t>G^*%YMMųʾl_O.3i;csrl霵̔ԯr\BecNoZwjG oBZo_Lb_G<ǻ_g g>ә8~Bgbx_㕲v鰙g+Go/K})Yb}Yϳ+~ܵl݇˸rKQ_B{:_|utv))7`4u1CFF+'Űp z[o7|LWșSdɕbJii֕U¤)3̏z/XxHI+? F3tqT18YB!;3K OY62GMw볎 c\m:evɴi./]ui{ܖG:gٓW!qtZSiאP"a_<뾬Ya{۷? /ڏCHNtB <6;Ñ3O6{/sX36uǚ/k9 ƙL3FyZ շ+Y91guμ¬ȓz-[o3 5~{3tt:doP|Ӛ_ dHv Z,6L/&G1<4hРA$ SJm7̞eFwU&J$ X&L2CVeDe3J끠 O7‘], "@m]T[؃|/#{|A$G\ńn/mR]uRa4y0C3Ewggg -80'c>}l۶mNt ~J?2OjuWO&*!h)o[!R&/@1SƳ?8onnV+iiq3^Ŏ8 yF%n}q=VMzu~Ahw!|:ypb'[ Wȯz/JjP_r+_׏SՅ5gaU|b<#VxUШ̴{6괮`޾M;yӮ#>6ơCm.4Z,t߻{Z]l:w IDAToY]qF窮3ބsӖ]8Ĵk?}3}o<[pB3bHWdW:f1<[d3 Nyom(^̍u"E\hYg=gzjCBk ksfwW"֜fKi+'cR||N3D&ck˲ZZ9m^GεiCnةFwas񯆹Y$ioo(t7MeۛQ\JysW0sJgyob(lj2x7iF3 4h/aK/q KF}C@o|P):$$G =(0M!Ʃ&ӡtbHρ\@v߿o?1sD3M>ʹ4Ig`T)T n-» Oo9YZ0{=ü¡O72VWPW?KVlڴ;o fvLd=%k(qc hO}%|gjܕ f ;D+fqϕJXy2DhT(v~|kqnVjyc+U 7vVBt~)DU<ߟ|G66 .s_3p4.gȋK =!SǓP_%RBG 9,wb^.>˓Ϫ/{99.de'Wܱܽ5&W9kmɝ31qw^f|,ɫcr-w~$&݁/k\M?7C/Y-lQGKy||<ṞՓv+xn7{ZxNɓnX|z5G=w uk>33jРA0d6srr$J(zJ?lBRBG{諃nc06ms಍(Pzx)NTn6gt D7z1pOeURvh'#kL6"rISC˜M''Mƍٷo&L̚ mUpu1XeLF_/lз2f]e(ZP(\c H}NF$~[ϙ^H]v0F`{bm(l ϸP _リrƔ0f ^/!}é`ڴin}4tww[>]]]tuuw#:3]Ŝ>o iLAqțLVwVnv֯_U)t11rdޕ RqJkz[2#c3rQc]<$}weNw_ "K}1g9-ua[y2H{{T׼juԻ^-󿁙/>>>*e>s.hsdbտ5O3 4h }&)QW/ Rmn?Z qA08P '卡ᬚs {@PNBuI!65} M ||3kL!fFQB ˨Fm x_tm \f7%v=Ђp!^g in:p6!Hv5_?n[Ӟx\ϾZCOU#2̇;}]Դp|48axoy(3_Gۼf;vXʺ%c{[hPcXUSSӫ wܾ\ךVSHMj[!ėPl UUUvqPUUՋNs=lbYeChb,轲̿}kù+D+u_ևȺ QѮ_ṛ}2Ơ[2Vpe)b {wb^.Bcw֮hD36  #k/#hg{]2鰱f;z̛kdlN]f^de/_!ZW/ՁC{h_ϼ.5׺.FWUܶ9-;KC?ݫ@ .On0,gK);k_\ZZʚ5kXj/2e"sװiNaMԫNþcC^^:a4gI2lY: NnjH:;:/<6ldXekK%\5@R;xL7e\677byyyrYw\OeHV.vOuI{BMUK|\8xNͩ%;U2 _M_2MIݾSek.VZŢEW]x9r$կ8Qgg(ނ*JS%`0/s]w98 S 4u=6]Ah޲}v*Z>j=?Y4MM477˞ǎ.F{ ^2ϰZ~9ϟ:džpS^5QT/NSIdxQY>( gtx9IuUü0[S)mM^d7xnhB%&ƀl١O!c+j44ӠA!^~[{r6>*]Է_㏓f9˃6u`B2!P'NE)Je(fN&bGLp62 ޅ!b@8pѧK%2,"$$ m*|8yxKJdh]NCdd$w}7*Zb$ Q$UuZ? )譎6-U%8c >s ɶ w/~l-Ó'O+,ZrĉQǩXFVK@`ġɰ׽Ѹ_T%jZ-gt[Bc[ 9=Dc8Sб q!~"`:Гp-ى % >;FrxA;& z;=5O=si8sQylrf*6`I);]fu f2YcjxA ."5lhY'B wiݗNSgMg-7{>]ǑJbSW} eoߎ9#gUYQѦg=dUQ_UcvBq-zN|Ret22m5$v`my^ h~ 3!8#.~BbMyB'~;71e8էZOk~`1/w6:oph.twño?~<ŭ0{)k nߘq\F Lx@gVϏ %k, CYxDX.[{9c.KK]*[ܟv.;#Iwx !}9UUU_!orwz̛_jߕ]w${ZG*[{HZv5wrHHgd.ףZ_g;j+YW8=Wj]̅3}_IW֙L-RǨA4ӠA ` bV6U˼y$Ӌ1>yH眸8r4!5Lx uPx^ۆ6a6: SUF7A^9зt A7V\ȱcߑ=u{ ֆ3Ǚ6"&ua9j5!yIddd8/))alٲEsџpaLM*MPe ao#st6;啬c #]$diॷyn=:ݤ_!jɓ 4mϓB^f43#h ;.PZoP H' d&`{_ShMuĽ &2T1w ySgkS&WB+4ܲPZ_mܥclݲq[wޱfP<4/hf4hРAᡔ6ff͒L/şPjzݕ|`s656P+_7DsC %T1±p0<,2:=z`/V;3mX{m>CPN'GMƍD3ODY2֢ummmJ>٢S\5y$s&&6{kײn:_֭c͚5,_0-[&`>"&a[|~k} Y4If5j27>pCdGy`rAεO ujjjwVÃ;uZ>||VH= o`nO8cߏJWj_}Uv5r!w.="OAǼy~ݭh_9ÛK9h-_8{l;v{$)^{5!q4Ҡ)b 7pm֣Gp7 >(}>Ow/C'?dz71c28h #aKުrv7XmLxQp|?_.)..<">>D;_rO1"N*6.e' ?W@G%=ua#ӈIY_/726:qr|s)ceFb|^6aO@)[2y,g,cS4t@TT?['&88O2?=FYo0aH;vx/}y 741xD2w♅,xYl RIkRy~ױ\7wE+m޼ٲy[N-g{gRC7d_s^c~=Ik 1:^%&lm07 Լ=O+̅f4ӠA ^3/}M'vla狀殤Y'TËO U!4>nEsM VA *&#ؿMI L{5c\ L ˜4i7nd߾}L03:>4Vlii=M1ttNmDh@p7!??MӾSD``*`t ]z !!uUުf٫/WF)n918}}.Cr}C-mFE3a*d O/ѴF7|CVV˷ 66z= XZZƦ"W5s7zgV)q k,q Ry]rxAN(MY0O0grYQQ#KJƠ262"h45S1F{n z<7 \vuuXBu.ڷ:}BBMeXJe cKMww7Κشi'OfM&ΰ^ gNus:mMp}|r?'|WROPi0qt|YǾC-NNLIaaF'f\pnpBAA%"}پNLLBbxpGR c]~6e+'VnRrijZ)<[YT³RYRK9\y:Ӎ+]uZxig5+u4/HiA + f=7}IIM`H8dEbhE%W7?e :r`{|2@ 6QTՆ].E<=Dܔect)*jeʃ}.EGm9yzP*Cozs^3gzF=yJsm#}+k=S?[T>35ul(]Upwp!tMW싱qz~q\a7kc } fO 3^ʀÇw؏ܜfA}>bR}Bj(~oWvO_zqYKEg$.3cOK{-)菴ryb/GIJh?/+Х.+{qD+F.Gobdh@-%94_L 4h ) #!2)+`fA}%gt0w%ď0}xJ$èM*ЩZ:} f}Oe̤|yDF'x iƧjNjƍ1cg:̈縰뤲0˓h4RVѹ^-sϩihNt^!/70ڜ}uP7{ɝ$\2w3r܍g?Rnyot?Ξrn r^zBT={;3jz0ş|FI`0sGN3I9$.6Z19ܝLN;fO@kZ2ee/Gbz]zu):_r'ڪ*+@4O3 4hL"S!%Ry-[FZZveWZYP OAwJA_; y5\ entM[C+I{Gk9:]0[-4xF#K,a޼yL23}jbNOgX8/lE)Jw2ardFz=h:5j͇j[5h+]{\^f.`6d4HOX[|WEh~O+ 9f5x% 49iР w@iA ^*6x43GU]V_i;1,{=–x̧vAnn<wzeI!&هpoDɅ^$!WN05+Sé&M=;3GUcScG`[tY :_TA8}=%:{wW_}2q}l?0݀8X : 6k0أ+/&N葫TR}.).}=<:;mlOCW}|6>___|tĹKiVSScrU\`%lQN*^4d帎٫P_xпgԠAo.[k#~YΆ~狼LK#yqzat[Kkr?|0br^?5 * hWMiP&{'!_S Wm Cpga|GXwdO߯T&%u4u5g8ytf}:X_pڌ)a vVVӦMcϞ=R޼aқ`+nc70=5t l#W!4<+3voy^mN ॷynp^T?4uLw+jyk̙sF#u7= g\]`OJ>gԲFjL(d*)4O3 4h:Ա}ʭ|]?OWJ֜YV2&z}UZZիyG{U-+Ga$'33ÁZ8(0R#7aZ& SYFH U,CYc6+W.ǖNw@zGPk y^Z]I8}Nzz0pߡ3|_Bda>x v5{VcR,GW0Č7f}zșSĥxt⫃.61 HFdd$g+Jt= "(PǴ a0cJ8F(\ah.~>>p[ykwֶ 7Ĥ0|Uz^W̜KV^Q%6//&+MVl.7ڼ~ųwݫID ق/={6"ZwSj @e۫Xq `Jayu e*hzC+  % rtŚ+jTU.2=(S޼er<\O[B>PhFoE1mD$1nMz'cԏx ͏"Io~={K<6+״󘔔+W\ȑ#ݲ/i&-[k75;ixZӟ(}P΃_fDzjJùZ?ھY՘# ESu:~Z;I(>v"v iWoSNʅ 8<фx0OZ`Ԛ%WTIg|oQf*giN͛7[g&+MVW4ϧOfĈtw{G8:Drr2477s1-t:~m _ jijqwY۩b<| ]?>_C2?Uh4g dyt'oB*xG0K<)`7E1U̟?͛7u6Y<ؕ6#%m% ÇH>;S$Cʑ~ ۇD`uHbxظa *quMtŨ|凴cTA˕W^o~Ib 11{FO#1l>0em*v)e<DaJo2%eɤ@ $$"""HQDQY׶6P\ "tHZ ef?„d2$p{}{ݺj[h,?Wx0J}'>LLuL2ȑ#"vsQ<`ϞͨH3JVŁzӎG\nSl3ScQscbgw5BLAV.|IoWfUM8w fxF+})-5Zr RG?ٻ#}fvoC 2"}/֬a͚OXtRL_QD?9C_C뎎iBH˶igO>=zT{W+UϾy{Jzڮ\آj]' L@'kٵ6WfW͜p[jqX8 ewVh/],Xq]@Op+i6񡦹 D_"5!RIC^YUy2kR$`@.G5e kNhbS)˶)֐p)q2i\M@^; IJelmfg„ $$$>)N~55Ԣ타D{=֋u$C7W3$bG36SEhdBnY 8M}m'rvSpqÑhj ;77?/%mͱ.xaH,i/2RyDO(f~p#S^7dY9Ԣ-2Iyf\.ogljjSN yFs{N1**  ! #paQk_=]uUia`jyǸ馛"o+;Z*797Z44IS)$l\-fl-E¥֥31_ 4cBTf踒LJiQk-P۟UKXTEÇkpB˨,9٤i[Άyۤ\'kS0$6Ws4=۾aؘ]j̼܏i|- Iit|.dߎDD%:6m_5*&\mS]/,yFKAgBQ@@@@!]fZKyC4V}ʪl2ppi& )))mupO?[^5+ֺVwva$%DQN-#Lz<256˟*pnqO;Wқɓپrn Ez PáVy8\aWRRVL"z%ڻ5Ψ <)m:"Mh_qVz6XvYaOp?_f0k_> 3aC,Z^"9תS.彯sW=,[QFmfVU'Ә_ δayYfOWS&CQwYyat/z=ND$/1y`8qư{T1m^R71W2>w% ᅫ+YDPGw$s/6줬A at0d8 ܪ{zZJeuIIi/Ҋ"HiU*Ua';,г`Ѭ9nt8`V$imF}<3!Vd0 8fMhŜ9s:~,!d,JlJ fnՏGeٲe?ɓ',=W&++y晕eT.^ ffy0H.Jdp[n^\JpX24̻ʴM5jZSu8uK3 IimqQVŠiB׋x4'Wt%3޽rVC5UxE${B˩ϹSE1AOLkOL3GC4l{: W;e=im6ߏ=`CL߉?LVλ764-ouS'3;y?jѢm)cW2y}e;.d':G2& b5f겼  dT2LyiU1̬E19 F,I 3J10/":ƶ$ĠUz,Z:_N,)T^B# (]VF ?m<˰cr'F`i>{mdzpBN>ͺu,J~֯_o½{9FbX>!ĚQTwIY1 >T^"l*CCɃT sxR!`2"}/֬a͚OXtr@*vhju-'ng adacgn/E%uԤN&ΎwY.2 K`6=~?_͗0lX^uKI0qs۷9i]<>f1p*4^lj% 03gϳ*i)ipOvv6| \s C><$NDdSU{Nn =[[Y-碑 aצ,/:4`aԡ`(8CGAKs3dWHU|orC1"5OZZZKj9gg۷8]s>275yaLx-3uɕ???fϞ~>iii;\ cs?V, g(?^*=&EGմywG?cϡ9Nbe1a5AijTpB8sWE 4l ǖgofXًȣ|_< SYton[=4=NJkrOlJp%|u݆=g3mc9%a=4pOYl >+>JHpW a퓙~KމM502y}|>{52&ӔWb7s7sͷhiw%8c.?{*Z'( d#wRVjϺ!^He /L:Fd}0!5PK6ʯdvbx- S:2ݢ2̡!~{NȘ{XV_gQmNwxr8?Nogpƚ&#UUjll#6HN7U;qEBpο% oe֙3+\Voo_wVs-w]%}Q3f|&ai]xw.Kǐou2Xi$}Чo" wP}\y/-|ܓP <8y\!ڷ/_%DMY)WUk@E?(5l몏HڅPWQB.̊ē 5UTg0!Hh/{+hd>|$(d47#}3wMhEۛ<ЯNvv6ׯg85N`户tyx*4[qf+ӻB̙CEigu<$"mCDkh7aVtXf9 R۱acf[<-Mgp0nC8l,,pOF=+>) }zkŋkq8 Qݩ秥m8^CL# $"x8HbS)*8jv}jg(DK" (nr93ۜҏ!3!!u&\ Ě;V@S #ykdϰ<=wG*Hz)ǜ?hyf3(9Y~~ %9ľ߲ٸ͗i @(Ϟ 倶jZ,)$-j>Nq#$()=Ot2{4Vsb„ =OU@pSJ 1kGӷ?0acff7n9ylMD olԨ޲H$nf hkZTztz?xXtd? &*6¼lfª6pdW[l3[fڰ7cNd0sߍAF6`i>Fl8∋sXpf0u3t̺s>q(univJat[<*س5aıɡ_doQ[׷ ZzaڴiS0@p ` D("8Շ_2i`4چ\~&>ɬ~rק?RF>t-⚧qi,?3oekɬnF]{u+a̼TOQ8JdQsx|Z(#hyqCiDpw^|m3蔯LVՏRDUL!#LYIFNAǀ\/F˿+:+O1ul_\ 5Z(X !<)U))T^7hL]()e϶osK8Ac6f6 wOR!k_ߓ_ԧKָ33{Ag4w vx =kd'%̚=74Gjm70OkWGY)bЗ4t$*ZWa;݋AqXn "(g(4-C fC"E*/-&5ο*"P;ӓ \dSi~z)JƻDLͼwrONE'&!Ht?Nc;`*^),XW?z;#ߐқ>"M!f_IX |fy使Gv'3y$ūDuwM[Bp\@F%ux֭tM?= 7st-=%n<ϲ-}Ian[ o>(?9[ط;UQDŤt8ptxav?8UH'`h,G@֢ W#U ojM6P(HI9Qvr[و;uII]uh^%=U<Ù J@i B"⩮*fߎ>gS#Uf_,z04rU͌Mgp0n<6UKtMq wz |CF΃iM4*Vq&/ZcDfwC"b:cXMf-$$ٕF 3?΂T:_gF]}mx=_l0 س[Ffܮ:YPQZz󓹇 ym70|k;p@@źfԸL`Y///Eo W[\o2?](JQ̉o<##׳xbT-ph ^Wu.~>^.))Am $"Φ|ߞ:gZ^_vp:T}Y4:F&[VGphkڮV%.O1/v}BS^r Zͱ߈WS9Ka^voVk/s$3(=}"sdqwe44f0h4rH$H$h4^4?:.T8jM;p 1( <΂uj|u]U8aڮXf81ތz-/EC yٝd9_^,_amp6J_TfP=~ ONĔFe)0!1RhbS CK5̱ٶ&oݼE 7=ar'snsuK=q,jZΜ$!iˬcOy8Cc)5NQlW8".zd@HN&zaW@8! %;;F#eggL&E@ g?ImܹBV8'Ɛ|(cߎI}͇Io.=I &:Uh 'RV|}W^m]grU g;}] 芶լ,/pXeyEjW'%cВ?o:qüơ:7b;|_YOErD-!rs86Uߪرba^R UhˬcO & IDATy8C6Uп5ݹ!^ۭ $bZ\R{ob aO | W+f%г!ivssD™3g T*<==Q(h& dU⦅X߶ :t(i^f8AE={3yᤌk6fQOh=I6YrQTOqڟ޲3y/HPvX3CU)cm*ido=ɛSąW}w: Q1)x*Dkf'VKNVNd\ȿν k}/)m{}D\r263lt׈ cfMpP(pwwF3@)#>Rխ'2V٤<Q%yO-&q A>7$gHɚ.ޓʘG3N1 (};=T<~6oL%lIoJX_V.NX*Jpo:ƼR~Z JV\Lph%ٷ;UQ&P^hd #Lܯ:x =m,cUa.6 yƮ] )_JJ'u5m/uB]M^^A@@@@@@@@@+fT V+zWnnnmqF7Wn;Ljlݺ{JneҢlJJJl:)+>ED$H{Ǯu|S,k~7eMm38pd6O*c0ơA}6fvXgjU{"8 c<4>x#Sf=+J(?BCD '"č[fL4-fDe,Ri,#hHk8Z-kDfҀb]ME'XWXǞ&8CQ>soV[v18lYwrH}Y4Rw !뉕ΤRAnĦM#0չZ33IHrtOb5bK/2ވ*`43;Ʋc=<~ es1!0Τ'Ӹ,n,bLA PE/2FSceŧxx[Qlj? TE?h,}{ytdjVW`z{ /QJsXQGqAf~hrwrd62&Uiq>E:Pp0A+8pXv۳c ?RaRuuuT*FTasBNNNYzz`C@@@@"$H0`CVadPEYY~glJooT @&ClVI'<:Gj޻!Wi Y-g/FmǑg>N14r bMtuD<˺CS䡋὿IX,4f!ؽbdP*6K< /ҥ8ь\qY֬6g 33OOO|}}OOOv}r9jfQb9Rּ2H$mhZH$g ti7kP{tgm)ǞKkgɖ>~Y655o USh &}^]]M\K6-r)xTF7v8|.;kҿ֥%~m˟jXEy}?-MuTh=CgաR 7EY~ُ9t3a9}"РT*< O~˃%&{d/;qpS:2I#sQVtcENSKi{,X y#)&BP]M_;(ͥvS}p#1#:[֥ oMp5uMMKANhjnATR[[ amt`YُQ Q8ULNur xxx Y=+:=NJJd2Z-ʹbېQZ *&Kl1F;͂zɔAŘP[lR =jjէyX2őǦC{深1kM̙Ô)Szaԩmǎ`ڴiFO=}" rZt^hf n 8MYIb*Ϫ%yFFdnEnfb&TTyEǦڛQΒFcڃ*Nn4QƸfo~^J];/ݚ¼lrs[D SF}GnQTrȫ_0u//3>'333?==>\{L.}h iiiz. еHOOG\.`44zYMLά9L7%L~k3f@fUmӿ=wa C[~hZ9/XVaqfk[#wm֨jg@+V^Mtt4 eRɠ<t8TvJw*mhj)6i4KN4*峴Z-gNg4ؓ].DyFh6f69[dۯTBh3yzzhfg >exo;rz<}#>2JXrx{XS酧3$O Sr>t3_`pc_3ph {Jݠďi7$f/x&T'Nn@Ap\.A8(-~ǪQk%(c&r{&8RiL&3{cu^ƌ dܟ=Ò9_{{ǔȐ'))Kenjd%- ,5R8Āk޺0տ ֎sc|29\{ xxho,[{;Nbw$Niq"%rhxPQZ^<*4>FsK\(A΂`8qưkWd@~`jC9Vq*wW79$'x|a |aDfE6Uh41ۭf1yƺgp0n-$b*x鉻;^^^(JJ% o~!UAɀYOsfsx$޿;EMzo%ׅKWֲwBoWD_Yg_d縫a?nDOyVm2pc3<}U7%\%[^| ~K>J^PkG0m;ܬFп;!knnͭp!8G CyBgfw^77]}jim7TOS,18ғZ=[c\yLm?tNiMsbǟ~0ԺbW!TV̙3&}6aɛ%slJooLcSklL㈡^ܿ$}HR87EWkCO{ytűd 1:k_? 8(ፀUh a f=q,Lj3Wsnl}%sonq+by)&WY{N58z]gbl$ ONftJoooqww77f84i` =u:Wqο2uJ_-M^Ȕ; :$Q⭥FA}m A*.$)Kj*ʠhFW"*:n /LIV3p"mFq+8p0d>>>( (Mй~yzy;Р۴7YbԐdH ×%Z2P]56ܜ7R,C׆LPƌ3KPZK A>3Ie-[Kkk) al%U /uy 2&hiz{˷+VN)*6դLcr'OXzz|B1y\ѬSX̤Kh./e3LzZaEiGbED 6icqds{=[QavT=$$Xj޻!WC'WޜHT)}Ó-_q}|=<fo'||QfН, /!rC:%Fk Jč?7''gkig0c{Ŕ7O~Cuk_qʜ7)\{ç5Gc0f0$ MS2ԧoNLkh Fh:O/|g,k[C吾l{#OE)\u[-4t+`f[FWmu ['f擨'}x$>)/\ w<׼:W! *7fF^DG%‘q6E,~>UϦ(82݆P$CƤw!É)5[$LqLmMyp7+iBcr 'An,< ѐ)YLsd{}ǚ{=74- G|,*iq|jϡ_C869kh /}+b3&q Ǣ`8&'cgִaϱq4W7_/"R͠[F>'? bG<5m% K']IXlIW l½,p/f?ug{oQMi8G+D.g-TPF555:nc6oCPZsZci6S^SRlZEC)k<,RINscPvS45&14j yYjT56FǗ!S{dz99SS}_'kۧ?-1h :䔼KDu̚GBm<[mЫe(w)vp٨%XWSA~|ڼ߭捧:lt1e8e_mp^ڟS/Mqr<}_(?o: :m&=)s+N6ʍ;ʸdlCP0vef_2$: ey Ǹ616 \a9:nego-aY4xwU1`盏j #!'s?Fܤ%]/` 8kݍ43%ohhkckTL0[ /:SSf(s2`+{ e*!C)\b=yY2,cMy!2Ə{ВxplKsahL\拡|ݫϟ1)SzOSvرc9h)))q]먩*b+hjvY^/}$-jxh_YM*^l?ͼ5:<== bu^7/9sr%af-Pȋy>&_q-;"Z~}~2xO8y &kZѣC߾'///VWnw̿nj)-!"j0ZI뫶Jח UUDƌugEU9k.KcCS[1cNB껏r^\=1G=233ރ'J___07vRz\qД“/UK.SW/J@@$%%E^єP'KMyK :x1W'VʗeXl2w, W5P,[W}% &Erd˗O 亠l+joM2\45z OMOF(,,zj2Kcm{编.?͸*۶mOrWbQVz^sNHK4)`}UiǢ;7l_WW_w-WNkKY]6أAǰ>99)qU_E/;rHK -g]9n^+)ߴ%l(ӌQXU53Ho CRf1f`oziY у^x"  2uE`B dMa,O4hc2~Pc^jj ,x_jma=< gZeAc0l|;a۔n9 (͸x׶}Gd^2Y#n`SX,c$aߏ!{UPK\ jz-%)Snyt`4*-M6 nkTgquqS[wLS1_Ͳңpvjms#ly1 eeg H shV\Z:McȿٗZM34L34L3͈Y늈`l6"  ƉQ5V$(d"@4~- EB[[ꆠf^yFÁHDGG#""ϛ,7M34L34LtC_&ŊקƤ#Ӳ7Yn37a- q} ‘_ k?$'kp- ~QtPm>~#j몃FӨmS:!B*Rcrb1qT;Uk*o}:I׶ðh_Ж|Q19qIxF%Rn 7D\L<WkZLcUy8mo,П)F8`o7b JmW efzW\$+MT.FE$]'LĘK(dOD5AJ "/H-qRj5:=HCʎ VR-nl?Ȁfn`>_>;9\sM?}M9:蓚C!9//{իWGXLJnspxt那G8YN1 }v HKK3|}Al>1Ân:b5r 0Ň HwܧO?6wg+2.Ӷ,|r4qY;{s< !`k[qc2 ۇ!U> C9w>+һ {a߾}xA1:Z ŽSpǕӰwOW}Ǘgu\۶yԹ9sK~_^5 f9Q|vޅb7kuaPƅػKT5$"]96y,9쾮9 w*׍蟜 {Щy7q7'}?zbe+L34L34ZmذA!CL'yc:x`7ӌuxP\ \dd 3^>ܠ?/_- 'k4cLX,)tx1<=ɰ|Om4Ѹlf[OHl@P U;߂n6efZ9{ J+-m`؟w]dښZvS/GI֏m?|] cam&ʁש\\.-JX۴8R &Ooϸ]V}Uen)3XGN C! NDCC&m93ʒ"ֱby!_!""\7֌i柱l:@ f_+ÛˊUY&a!&&4 > ?ii4L34|eFf6lc2{)jc!oa-lUUUR_OFv}$HP(^'jg6j2Fl%޴$  74bH{DjV>obZRAGOZ:##8xJ<, bLȫlNdž얃xo˕9D8ÿl񣻘VF|'86QI. 3Gin8B!6j*+Πaܽ`<8q`GOǏjCBrw9ƒb2v?$b㋑6lW kDѨePoۉ3UWUMtNAjJFe[=.kJ0E_S ǫ 8v| {Yj.-C8t|PtsnHٸVSW) )q݇GbH-aMP{ΰl?֞tz@ʰ;0-y\9/;Ju(<llu̔:k5}euYVa-{$&G^/=x}r''gZۋasί`kDMCĜ﬒<۹ >Xlp>=|Ð呖HE5 _̱<`+Ƣ|ǜ1x"| Wߩk?)9?G9RҢ<'0d, ߎߺ z^퓍m:Z皠':GQ-U\>.j'.#wT:3-L9QK쉾 ]jZZ+**ʃi&NIiv ©dmzd(jly .!<2,9D1XXE:dX2ټe ed\^5`H ئUX|2үm Y1OE̘1y%\V[YfN@L3S+WzOi&#X/!`:?v:~<-?.i7UyFN}|O煢'6{\ߋ{^ VXdxဍtrӪUfJᱮ@:*[MMK+ %([O>Y6 Ҡ ,H(-s3ŇT cys\~TXee%1Ǵe.Cf3Ϗf5Q2nUgѵ@{0Suuv38"MQ6L4%7}ݦr o tyFeoZaZ="0*v㓓a>hee9ruVV=HK.PuvvǏի.-kV|' :#% :ᢌ|{4GřG1[#U_^JW$bd "DU^,yb VNƕv)`޶"""$z?jԤx@ )!D0$gLW`F(F35L R+S}1f^Hbը^fbA4ǵ2D@M SWe2T^g o#~VKb7F fqG%f';1e˪* .u 2/:g(Zںjђ7?,ƙrubf9V[S 1Z`df\?%/\~Uۋn~e;U`X5.,crb1t+7A3?At`ʪbPϋo>LnYA38XL3ÁH7,::ܽ=8118dp!V EyE-_M\=30#Kp̣Ru LVgffilkNfaU[ۘވޟ@x鮗0u8xv| P:"2ja3v+=r%:C7^q >HiV݃~W_d78D [ɳ IDAT;\,֎EGDbt-P%s,JW4b$*'j_ć".a<6@ĻS5%InIITRjL*^<98'Wq*n;OƓMO$ڌ>8ÿlܟIocȫD+P7E?O~,B"wW(ϸ=4fގiF`HL3z>4Wl4^/]٭L_ իWc^.լmѹM5hF7,WNK$qXy(+5G<ȧ<xҟ6؇jDQ09"\bމX`6>dO2`"-J0N˽dee|Cf>wRP~#~yK||9{vWWR?vk(hL}f%:S_E|u=^}}O z 1Bt|NTm_n#b!7ctW~m[h5|hxr̞~=mAGbM8[v_\~7jkjy` M7Fr @GEtAA!x4MJFFju@AYc;IWԀ5۬Xy1{ .to)5ូ8XgJ%QS] )k`ErG z g@ttPQmЬsgv| ^t747hiN/{!<i&LyFO?pX1Mi8WL_<#|8I 6fU-^z4y颃~ 9D 0]@#ֆ[VNPॕOX[4]-xX43HDyF-Ʌa˺e5q] ׁ-99 8ztPt[R*)mҫcɀ>, ʰ5yQ̩qxj4O+-cƨ)d,ESs݇7@ڶ=UxX'i,-On_-m`ϐy8mPt ﷭qþ3yTо̜w< #㠍МuN,Zz&KעbAHHV+VZO[1 z/dEѪep8ȑ5}mbҥzkł\]i5-!? ƴL_$_3i mz-Λd{~ù ' ǒR9ܖ5v-:K2l6d$@b gXL2-^^ID8W2VgU} |) Bi{X`5ZG^=D@4{Eow'Naٿ۰z  cEDDY%%%ڟϗaٲϱ CnjÍeCFXf0i8sG*i3hehҀ3bʳQXĤc9Mw}2͘cp߯{oʙ ]7ϑΊ(-S\N/&Rjc\*WgZSǢ?\l5FK:lyes#͒4 ls8!,,̃](e <yfL3{Z9OWfm{0uQr]󾨃Q?)?T\s5.,#.CtFEJR(N/{!M*UWgXaޚJl6Y Zr>_b{OaH1ip8Ɍi{棟_- 㽻?wբhgxѧɡAx}Y}gt?4z6c~g5 ),嚗y9,=dZd={w믿C0͘%"u‹o.z镧#* 0OLƈ$?EgZX;G\WOQj9Q_XI6ƌhh9i/ Ɍ?T;=fc(oi;`"Skh@딛^eϊޚ=Vwip8`+//G}}! FQb69eAiw:Lf9Nqt:uI8N]sTҠ//6o2HicQyXdf3-Øs]:I!z{c~7[$qqvufϕn ̑O)U:bE'![!6bZLu&q776۴cQd$H4]T;cin9cEZxuAa} ڧ夥F=p\ z+LKF7R,rC߾a}.m_cwvhfJ 3빁Tc{6>| >^-ݑ31> џk}iʢ;9֮ToBq {ΐa5>L07=;0u R>#Ӥ܄p4u╯4fLμ„ xOnMb5?{>៛n„ +J9L%ק#=d\f_J(ܻEF9$ӄ q>ya87mG@,:'ūǹL`@UIڢnłwo;cb42cF\Yy#h j爊QM07tGeG8M[GڦO>S#M0qw*ƻ{0!X̔wmcKV~٬V+l6[A Zf#鍷$I& 8NjFkScnjd/KH6+G+cb]s҈tdIEsC8>~xiGb\0xMERTJ=q ^Xuϼ^[%NAr^ggg7KBthwkW KƲ/OBhhfXҹM, ي ]7:%3 yߎ~xQv_/5յ(\g4ۦ ٪j̛fdcgʍڃzd ݎnqyߑ׳uvv9Ƴ7F>F׏ݓ?4_۾z <:,^~ :'B)PQQ/ǿa!SUӘ=-DzWd;s =ڗx?DV?c i2'OcPQQGF5ĊCn@CofK?9KG\qO/h6ZdU}L3݇րpX']W-zCsZJ52 u;EE5?Otvrxi\(7Ɨ lZe~<gzyQzfrEDDp:< JϦXW>jhh0䕣A3"߿)9"Y6O e7Y>ܹ ; tn wM>vQx7,7}n)G{ʑ2R7?,Ɖr]RlTiee%bt`ͱ&[8[Xտ~Xu q[_!Tf/< G]W_ݝ>=#|҆WA( ?6E4^Ta?ӝԶ'pT׬߸`glӦ<蹄~ӿ?؈XW #sTiGyG,9S@>\=~Y~"lϰ/KNr= IDAT0 J1~RNN 430ꚟ Lܻ~s[Ǜ@?`-ZCvsYfL3zMPB?ip$Ly0[UU3nCx+3b4,KhFS/& ŶQ"XEW%VR>SbuѾO2d kj k\AE?E}NuoX~}tQȱ%ZOi9)9_k.ۺ [_xMb5XZj$ _9u[ pybx?Dc=--8~t&ku%O9G6X!oEZee%FAUU %\h#e=iul++p- O+fw{{SBĔd|[fw֝"] OeO*qh`eڛSSyoí{E,@aak,HsRoZ^^2"\yǗ6#iDsqz)Ӭm?UϾ=%_bLN,Vy&\QW%wTb|0+ū–S`* SO)ٝѧoM/lʕ@tt4bbb0X/g^>))r3)l>y tQsǶR'=FG6yL3@8`ggS%%%h߾}x-KJJ<@4JYuW%^~ ӦqCy^Uؖj +|C_%%p^4dKY vy|KZZ޹Y\F}_QLxϬEgx/~c8 LJK<6ݤh&vF4]zNx`$kʥڢ~#m2Du9W5Ov/oΉƖ\7y((g>k o;;h&FOl (P,%!1X)֢(xy +`j ,px2ڼ%oɫHGw,$ Ƒl{IʧW8c2qxe?pGVL3^;Rm~xj@=<\_YYLy&`ٰ>9RRrL+;5]L̔gOq<|OFj7+**0px`|w[m}Y;|$?|׎چeG2acѿ9P}|~,**c$g!He gpLCJR(LL;y1/_iGң¬̘OvjWz@ޟل7ofGT%̟S~Jϔ`ʫJ8zM0jʳZq!|E|UwZOkG{8xޘ_.@"iD!@?"XӒa}- I_,gx7yďHPf#͒Nk2luuulxR"H!CV "Ƴ)?7J;إc,t2&jn=mUۘr&fmF4;+yiy=`eLa1d" ACu %@c@LHc1<Ԃʪa f,@ŏw t]N,,`i]F=1%}{SgYmSq~HHH@ZLx5u5nڈXf3LHH7ֳLjo v/Cwk\Ql/JN@lzg~_#]RSqcޯ7rPxNnPv1+v?/{|qܥK";;[~&Il_xZZj_5W}WXO爯]^Ǐלam tAY5WWY芈jehAy"GFN+ {OցtXz5"PLFΒ8$%7t9t4(Ô=,W,F׍eX}%voeOT}7 ^u\jLǃyPYz]KoU)spfkxxH[[`ޢIbPfL׼.o34#Z0_kyHټxh0Z`KkUs4K,cKaaŭ1ip8`;5xo7h4"$ìRKV # d¢yx@(72Ձ=%zLBjmf!1x9j/KQ[V#]>I/Xfr68-/ B]>:;V ,3;0W1^z$YQ-}+Za 3R VAܐEe?A,HĶFkamЃx!-B.heFȑ#kjҥK4pyzj՛Vo9H{[KZWW{k:77jVZxf 3-̒4c8BԀ^= $+GXd ;7O,_lj.OVSsR J&)gH26A-qd#wAsP$Vim-srn4 S{417㬥4L |Sf^`#t~W*gp4ِ8 nL ܈_?Wbϕ(h@.p]%h]p ^x97^p3Yxx8\y=>z3?8:Da࣯Q@q|5g&DNƋsG+Gy퇑 ]{fŴwgگL3,Қ WZZLij{U %i֒04ia0JDqY;`S_a@#"9Gsj'`L1D 2/٘QyH,Az|ײȴZAsKmnd%Eɂ7@yJ2M{u@f} Fyżzjdgg7׫֟Ub{ D6[&tֿw^ÓSbp·juu\Ӛw7R a \B?zc\9lnjxh>f+V3' 1 eA#PRVz/U#44 aشۆ \~Q8Caaa=a#Eaa!λv9PUQdOmWhYmt#gV=? my0[,!|c^+ByЂ"=m{12ӚiʹfJuhZprtzHٔ$|?g" %S)ǻG)s`dT5p\ze)rZ[+6׷HF-UC9kAts,Utm;\DI@-EVzJң#1cn>v,Qoñh|yJ]WDF 1X\~qb@s `޸n)kB "lՀK a۞*y/?4Ů =."!!C3s%U5!!ZE?&$$ mnF o@:=l5oOtp5ϡނhcn)N9@HL:&/2=FQ-=-ٔWL3}e/ZY233]L6-B ne@+H`Qt{IӌM;X3Dcu6DcLTHߑ2>"D(MC&KQMQFHդy;olD]˅ Sl*3oOlQRH-v+KPVрYw&"W~n+&^3jj]XE[ rGk.W/Wc3ʹ4o4.X\ں̸-tiWqŊGLL bbb`yC?w||ZZG1h`=3ąxlx$.gޏ7/IMyF̔3}eu5??s8tbx b< QVXHKSٷg0uvb%1\k*8+@dT$[tgUh;.W FAW4vRu0b`k]4Ǣ{EY)17 섴HyRܕX4sPCK}1Gj*8OwU)Ƶ}ylzg~_K435ʹfZ3֔X ٜN'`Z5I@i;ߕCn5@CT`$Ԁ\ @3ib1HUvd>y"I5-Q)T9+.dyL:dd,iRgjh(X\N'V^P4SuX $bF9[*X) ؜pF7;z9%.xl &l`=(:_34ZeGQ >N-24oYHHbjfkoɲ*q|'('/CYt';6՛P\" #Nd[[Z2'XɗZC{M_2}׊S:\fZ m¬PbћVrJE<@CW1lEqx ɀwkTS ٘Y4cJjiTaDjʢ}Ļ5>yu&Om kKY;ƛcѬShj!'S#H>4Ќ)xSuu}UE xxcb4~ dF"-5Ģ`(C\7\c`FF\3׆Nu 0ˉyBƙ =%bp-H5 RU%0̅#dX5T5G=`ȑYYYظqvՊK絖l^ZWZڼ6k:Я\fp7nѦVЇjrgvكl1MhFEnćc!>a\# LZPԯ2Ë^.- LaQ@=@R{'Z0E3r d4dj"q ˴am1L2S>KO5g=>KZ:~0eLy4_YRu[+0ofGLaa!F뎥i3m]4,""шAtt4ÅѬ?GGcQ( |eܼ!LBUZXc{OϿ{f}aGGG1흇fL31L_ ^_F1LS۫ڜN'Nؠw)Z p7Z+5c1Dt:,ϟZ&!Y~cMA(!e}%b8Ƙ8YUeL;YZX b&XJ<;HefRBq!lxM3ʹcb*7디l?U7r+͏44g4L_ '؄MzC^F'Z,!|c^+ByТf⒵ff (WZ5XvvvPٴ2wanTͽSl ) I7Ԑ@t` $$z  ^cW+Þݻ疑޵<Վf9t}眳s\gב`mB-NHmT*umZTWFVs}@alv\ž$H"3S}'Ld x*UРkt#j<(;,}l!}5[^&Q7doT_\.{=4^yg|qbP$#N_|s!7BƿcITi# ˡhll=\*kvv;«M7Luw6&O65UVIE>o:߰4 IDATz}r't=w}7Orx1 gu/v"c6.dcºŪ3g ϣ9f#[N9/e(ye&=c'\ttA{anN{=&K"Q+ՠ/Pgh+ڋtRmQ`4g$ăa7WWaa׏N!!o+Gy٨^ak tקML>$^.n7^3Jp=&lnGE|E 47c Y.||||])fYgCC YçKwgL3&ah+ڪgڪ'ڋk8qbL|]I/LåGRE$&G,&$jU1G)djKѧ]ma !y"V~uNY]PuiJL#I-ÐuN Őx+N;//vv h)͵ ԣD3qN EeGq_[D{-Ϣs=g|ĉ 1m4bbQLRs]SxSgP(ˎ]! tR$"nGU$TE,]4yIa<ꢊS>,r0zs [R\B.8^O xiYb[u/׮WZiHRB!B{yO2+bi9=]:륭h+ڪګ+:T~O]'οk9S&Qz̔ER(P*o/u@>s^q]B[R_ɞbT_|Wއa ]zl"GtHRKHFI&\BHWz}.L555d2mK/}.C6E6nMW?S:>S_E6鯾Z-L$@l}Rz_6)>3鼁IW:kSmqEAWې}{S;}xg'bi;IF5c|fU}=zi+ڊ߇.c+8k_wZPz4̉< {er}1yx55c~Y(/ƣs'XKpҽ7¯md?h[χ_zq hz+}_i+srU2@E)kɕ%YcWI. S[KBTJc˗沍tMf gkh;|6ضN&$vy<6PYINJw޹&a@YgdH<///HҎyR>{::Y¨Q!X~1 W??]Ǟk=gm bSû#sڵJs;`ܰ\EU$q<),a|Jz+}m;G.0\[.U[7ph:)לO9$VvQ Iϥֳo8_*:@($:Gn&F]}K:M̔1 i>–^T^ ұzHUy%EN !BSbۼ]B!d)Mwk`%L׈ŭ#rǸ[1oSU3jLpuaؖ55 rm$器61εpn[ y'K"Ֆwڟ-6R۹~xR0 E&kksՇT$8zyb׷,5-+Q0}L.[KlRs$}]!BR{OsN!Ab݈ QkC :גSZQ+?su. ˶sSt:- s)̠^'pR; 4qpyll"iEmL'tO'Z|6JqyGJ.Qz=W'g|-힫>2{\nRg(B!B!8M لB!ēFjYrXފӿCv`ԥJd/0q;'naIĪ=B؃Dol?|شHo:B0^tWm >Y6svCe&s&@nh \D8yW NbNJb~4/.>jE&C i꟪6٢qetޔ>U~>ԶI<8A_N;D#B! NTU35mApN!Sd[=߂'FV 1{p !&n5d4``|8}rL?Yo!V 0X]*PlE!*Q 2KP 3bYՒ.J>s ry%@` $ۚ&g)')$Hq%0H*ʙgp6LW6ДTgWN-87z.\tSmaE}Wƾ¹}M"mbj ؓwi-_65h^@,kAZr sV)_5q/UӮv,l;!-Ǜ3iL-׵n^)\?7idji_o/i=M6 hgf&Kry%4Kr<IBDԮIA0 t}77G7T;g+i3B!BH6^fBL8FX-j[跉F7`X V9MyLeIm_./Ljg09c%BǞi%Tƒ<*i q |p6I!Mg )y ʲ xIC'/'N ߄B!|ORo B!t61cƔs\lֶ!\&X(BlW9zL‚~M26X.O7k6Ao8[I\y\uIrD6_϶l%6d㤂힪^Qx1iҤñoiCB;҆#Hhîfڴi6mjkkЀF444 ˉsV[Np|Nx/^mE[^tX5uL_`W%Y^3\H* lOE:y|c Sg*.PjcSJ-'M-?o;J^>9Lea=|Qgl}v=IO' I!Bb,"DQRL_ O!B `Z\~3Xlka$J0o\L690BC5f,zĂ-t_/f'\ պOTRI¶ z> &fo=7"!B!sE3GJ3&B!Zº:d\6Kwa9IH7|b1uJKB3(I6,ɉzmI*Dߐ6*})sMF&%LUl}uOV6IZL"]3ME iYsϚ -{>B!BH',D!0Dctuq9!BYƍWfC]0y ( 5&A$\Tzasr%Tm4}>Ž> 'r 5Il)]g:ON35ԩ$g>+i$}]<|>ˆls&B!RqN\..Y6[:R AT*aB!NRS[@acry6D0paLBzIڼZl%MC\OUXpk/v=%D6_3U<MB+ġ5H}ׄ$Z& x<+}8]#3ڼ調' !B!9L*B: Γ>I!BaTBPpzIBh/`>| >H[LLlN$ٮ&Ι `qٴ0&0~W^$m.ҹ\}3Sꪟ)|\ޗ5Hѧ4M"H}Lע>(-!B!rLkP !B0d2>9L$$kEnCIC:خQ;I,}TM.LHD!wo-ߜ_P\TgL\Qz9tIMKgVUrEQ·.CAɻEԊ&/W@I=H"Ƀ$lؼ6-=7PFvLX6aKb-%mSma:7'BЧG ( ۺw6ˍi(w4KB!BHXHsegB!dif2dYA)b&,Rh6l"ZM1yb8W8E\7zx%\|ɣQE}J1lU.o%o&[]tG[}\mKUݣK|ߘ&lR߫({6e?Kο -nq{bG",;ټj2(HhJ?[AL89\xoXi/q±?4mr#*P68ð 혔|p~{6!Pmj>kiǤk.-|y9xQҎ~/3o .e!7틑ڰ%fbQۢk6Kz>VAWߛޯy|:2볘Y}nӈ4T[}8aFà ĉds_B#],҂Vm}Mv  BW\ZfP@XDXp?U_j}Բsx !jma.LeJSȈȸtL~j&TߦzI/8K?G@RsIft-@>WO? A Ca^?V/G-?Lk;wT/ClMzt[Ѻp9z=4Uն9g^y:']*la-FtLyh*zp6LFf8v>Zwu^We1-vn5קy?WJvVAWߛnq`sW\W|QdmUA{LlsΝ~)E澄TIZ] LRh9}!Y_hL Э/z0 r/umڞd555d21555m![zUua$袃ڦNVԺKԉPl?^q=ծ+>RUI=tntEnǤ$HǙ1x%djw~wO?m& .'{g O~7~oT=q;4Q|Aa:گVE~b뉫WBgM|o@,[hÄ}6,Ruh$_ǔGli]B;^oc谆5=罊_Iۮ m}s(!ҼF߮X7J{픪 e,ZЂԊEE DOrU`V8A?|4=(>jhKHi)v묐|πǫ qHEW2:]4Dˆ|iR<8A-~ΖsLoI[ba~d#&]:TE g)K {j C%䴅Lbw}׮Q Ϙt^CX x;mߜN*;l} ͭ5^ESʘ[zT*羄TK%ܸr!Ya&/慢{H&R6'SK3yҹ-iO&v"Ԟ)$,a2$O@=4O|@W?MHIzCL0zd} |68SymT7;̶I5y؟6XZxp&}rڰ#U+G~M9mE۷bIC=IM'\ ?ϸpͧ݊]˴cY."y.q2N۶wq=ӎf^á3+ =͈Xߧhz<%MS ;oXvvi+V]pcUGcc14#*羄$ ahʒBGF|ǒOo۩ųx')h(2Aw9޸k2(o}ľ^کN1`Kxyf|?1q4M|Ti-_ʻ҉6lr6EEm|Y$ymfj=m UO[(g7MLm{ I^^z$|%}Mo_IxfxgF%?66EwCLvIƎI&2Z>Kν΍P8_a^=1ftKb":Zs\znk8'݂د\g+w/^G=ou]rYǵgn{0Qw xz<=v? z!ȼk&^ma2m4'αd3vɘuM8'ڪ3o2NR|8gyKac{gnÿ?׿>q?= 8҉cԆnXrWsR pyrL+E/%B$^a"IJ+sxWGTKx }Ͷ*/INN0U1if˓ 4 q_r &!Hoפ^zWEW+vz%\kMo#ꢤK4[1}l! >$TXԓl2fN !Br!bԩE}}=Ѐl6;\eB!NB-Q-,\%ˋƶ#.LۥkKj?%7lt=8c>vMU4O]x%qWtyt&9A WZm :!B!:[^LhӒzDW;ؼLo-o$yu{r֯*ig=7] MT3Q4M!B!ͽm#ԜB!B:ec©47iTwS,)'[0[mXd@|]1.8鶰t{WD.]<͕e>mۦ&;/ީT*zIkҺ+KFrB!B:, 6/L&a7 B!diEċ(64X6rY fd V41HJj{BB)\F6> |fu/m _@]^RI$⦫*(Bն4 !t oQrk3R!@wt7t26oX ȿϟ=W?8{?{:Kq !+{UO3>N!kIW=` csmU5h%ڑX4^BSWbJj3{O6?rM԰y !+8񃃥R bQX,QKYFX±(ǘRaXDP=L|(3_/ }>~L*3F2>ݦ0})&;ͱ .0tIBI&.TC{xҕJuLe)܇;Glkdc~86ȧߺMt_[ro_oQ{1؆BH7c!ݬa}Sǧom.s<) <֕0_s H G1~ Ja@ɯu7p#OzB fߍx*|X0SnmB85E1&!t"a:FR6$~ģ!/$>u<7TE 3Otq"#ΩERΥg0 A&/'|x]%|$vW}sϖkWG+RgmyaF!+ད⮿{ZL=;yp3? i}ݮ{ 勺c]cRآ\/wE}o~ mAvOM0p[z/|]ĘUB6!Ǒ$T>!p,肗9$$4SP]=EQA$H25c%!ߤ}sP>ߤIBI⑺ƕgY AG&R Q:5)G@3p9\g: }Iz&ͦvX5]+}BMXbh4:[AcqP&ż4<};@E(¬-T~AX_pM1❋q`-6Qy/ ϛ4!=xN%ͳMxBXȭ1&!t&a;Pr}vCRpfϽ*vVym[XT5&9FmI&B ܄Np-O^ ox ڬAY6mqr9444W^hllDmmu=Aݻ7E3cBHgUL # - &&,?$˅-~2NjWN$BJţ ^hϭoO^еTd+?>FAp|-g}S$ڼL&Zg8cSMcѧlB!=̪v3FXmPP]a-`ކᘉ\ pX,X,ZN!rI!EDQ!4M]`Œ?sQ3-v]!|wIe #ā$^ORΰvvxt]W%`*Xm9|D( ˧6NS9Sn7Й>ΧOРz}kc!0'(vv(ڔc y>4u!p,1&!TKX[[\.?\](٥|fOf& a?Wv]#B!t>*oB! <K|Ll^'IsXªb)ܞmnGSYBY4$ 1ox?W$.|J& >.!%d$Mtm&/53sJORLׯc 3y6VnS:N +jOK4}pN!BȲg.9!BYq>35+W+LIܰM> @{H8cm)S%&qV0&ŕPj_I0qyjC7Ԉ_+v=2mêojSw. }EcB!BH9*>CB!E8M+~騢-ġ*θIy|sNPn&ӵ&X*C$|#ZնqFM-W8e򶓎tRf {^$^%u dmmhXX\$!h !B!4G!BYքQ-ޗ嶄Pt1OP|QmQt(I]LuI˜490k"ɓ_A(TT5y|c0i8@%o7ۄ)uoWγx>"^z2 MxIvpB!7A d2v$s6iB!di644 "DG> ǻM 1宲WfLcSkƧLu 5hD#_WC/N|v{I.Ҕ/./OjއZ͓vu m60Y.B!yDQU,8]B!I0lK$O=ğJsNҷ9\ >" v]LuHjW/8К&W8J]L|B%TafmW+dTmSFWA$J-M絕g }E$W}!B!~OTѬP(xE(B!I҂T*&fQF_?E]엶BC$J=PϩФsyUs]xM5d#SIum>MrTeJ!B|yt<5J$JB!B%, 4 uJ28V6@0 P#yIy\wgLRSg$50'&L6UR]‘OH'ZOGd/MR[<M" Ů~ckgMm“ǡM3&S B!B4PCE9}0s|Կ0ah\E3_+=Tme|)ֱ-m9d0zAi/ulqqSOrt}./SV*BEIh+Ĥn/+̧NRyS|KOD9^z 3kCc TXB!d@Mmy3[v2똾a;@]]{ Y&7eGZ]9\ .C~$\z.*JMϴ.3I&IlL4ybDTHP&i'<[_r ^kpt_vT4a$Ljy▩M|먟GI$U]] Y-/JcҤI_{5k?abB!R.YTBXt=;w?xvŦRK]NRu7y݆ pK2Y,;BG͆I?7rV,`K.!3$ܢKK"UH/)e:Nfʑ H<ё :Tw_5.Xr&3uIal$ǮpjwaIC&[(0qDNX(NEu<S%>%YsJ!jk /yf1>5LeHLn 2mS= vK t R(ҤaR?T7@}\mw׵Yq[;[0Cա٬4Ϸ;VG &_ t-=8jF{G!B q8 a{iJ H(of j ,gC|J߽ˏM\34w//FW-@S =Lb"Nr*6iLF"8fUk{îJ:0JI<2L{|iKRI\hD*Ʌ&F> @dUAjY.BM5lnQ x`8FkUh\RR>}2\'j>y:aL&l6<14(Wy~| >{ w^%B! 54cXDXl'%V]"P KRфcu>;NvZ}8Ja f|E(A >XtZuҽa#KSc5՛ k~`g5׾{.{}f?<0e˫q@[cyO-O=7k9iN _+a<(ս+0f_}0kBMk`]sz:->NO@K/KGv]8IN E{y||i2y {j+UHv/.nA=]߬<19.?:Q_c~gkL&c a+f]xે^ty ǑoWU Ibf 7iZ򍩶 mjz>^L]{/uUnOM$Ϧv3[jc3SY+v3+?mjg{MD-%QJm& \R龴 ǦԦ$w1NKcwEtL<1m&9L9}#Dwq%Yh\{}1x3pxy|(}oG/n=[`3Q9Zƿν _6t忸̛0{mJلB!X☉rTF9l <gN>>gN>^؊r䮯}|b;`SR]%e??`i.Ҷ. OߏNҀ1;l%xJUoL8yb{QFoŋoշ1[nL#wS_gԗ.)3P)7~DKI̴'38*ԲɌ.邚*b*LD'}k&rKO0JkSbu$S37$DD (Zѷ.%\`Ou;:ӵWK|_'%.8o#.9;z^8p]ǿ.(;5`wYdo7텙~"c=b@7oѠnC4?x 쁝~Wf11gaUjga7'bh.v7!}o}vY l\ؖ%MwkTv%L2:`=˵_B!+B-xO~&acgf.B 80q'ᦹ}C}>ȧ3H5>yꇌš}޼|r_C{oGcАrHWfue׸e;;6Ag=φE+7l}? hsկ[/m?NU 1++ߤÕH 4l\0u_v>KI*z)5ɋ.no[?RsBjۼ\\jT."1 moǔ{L>vL‘-̣̓R&-w]!%1$. m ygg]ZO)dG(!?M,1eЌMX0k,l>X E!mc۱ KÀmv\q4וa МB!0=KTRzs}>zp~Xu~ [0a50Ͷ[oV{c-q}0(gX{o (`K BwqSN8 m08/aWYp-`7f=X8ðVG?Va?>UFզ_O`Չ?G쎱}8^W PZcnMfua;QލڿfBMao K-q݃/ӦD9f B] iXjyrL"QܥseHJg_)|qtvA\涓@0۲哳 j/L}N?F}]j'}R(yPuDP>7ScsԺK_{Hv9Ss8tӾptݓ ;d4|~ 4#3Њ9_4~h/ G“zlܰ* Oa"T{8c?wvL-+yz!UǢmye68g,DT!BHWFuQ#*9}kWBPF)ȣoQpw-X/޷S+|YjH\.!<]H-~a#w/b [ tlSC?^U)\fP Y+f=vR-T)̢$l+JB J9jؐ8tH^PiQq)z.5S~/S/=\kfcWt3S 2pSrx9hݗ/Cz0#avYKrhjmEbʋ|"@7B?9߻O_ Vz=&,h.`!\ukly=̏ ݸ라ױVɮ5&/g#B{ןB!"EP4*((FyfrOq)?#0rWZ?QZPW>Ti&%ʭə􍖋5&] v;3?>N :?8HMe+ 55hd'ƍWfSEv)MlmsH$|:MgDHvu]mg.aNL'S>P:tn ].{Wp%l~{!}T9}r&mkS_2cbҤIob7G6ky<3`9M=㗩-yA6qB!dbڴixGЀF444 vreW5>ojjK}X|XTƠtjI ,hδExmѯ_}y<ڳe4;Y^WdE;f-pT0Vm}E$bM1y%]K8)A8YSw}UnݣW'%;xMVZk{o'uݫk5z90iXO _?;nh8~t\f!BV@˔8WF.ÄٿNŬYJi>QF 0#NSW~~p&>Yqy/+Y \c"ys&1Elcmߵ-慢ze$X6yg NlŽTGKa UOARG'K&d^P(w|n)zdiЂQBvTvI"ڎ늏W4mJǖ%'e& ߛ0LBE-+Y-=8 @ucOC8!BYQse9Ms\߹`RsN\{'FeOfsNoi\OFlߜ؇ t弗Y߬ 1Imf\. fy6%/%-z}IbBg=&ztm&FBK((ӷIqsE<`R IWM&9W>I.N ['ǻI Taj$9\FctQmˤJ$ԯ˖B!9#ԇmsRuB!B%C.rJ2% j<~z}D74$IlUХȖO˴M/JRnrc}t7$jy|pRSE6X՟#V׭{tr窃M*d4ʔ_!B\"1B!$, ðMhZM 0s_/>6orz.9^R=]=fSEc1Α粩mR jɾ:;4%dkt["OQ)$Mx5݇rzVB!9:DZ]B!t&aE( D+ >@<֤pyI{KIL9lBZVA%Ӕ˖sKo(:3])̟ Oωedr\"~f#g#On}ޱ6QWrڧ6ºm{2fW{sB!B:xε<B!eEG\^gJr>Wm箐u+,o 蓏͕s't$cxDSXEWKM}'>q&;z_鶔|I}$@&fN>dc+0I6)bIl>i.̙<(}+O!B!T*ůB >q8!BYlVi0 @>7b+ϔM:G%>Iȹ/>Ţ˫O:ͻ&tPA6e#;eg S8CF6}\) R=%[%)cRjI`6ok=n%B!"i!BY|TbUc}mHƒ1>YDDtTm$Ml6VFQTbMtt .-WrMȱk$B^SM in u[Muy%MQ.AX\}O)B!tFB!Ba$ WҷSA*I'Y̗rF6qe~LO8+̤n./@>]luH2D6)$FyTK+-Sy!J}$J!M}^fI=i !B!G_R5B!, Bu BqXQۢ˛&'T%yђ k>ԲL).HD8S]*}dB&CUM.-(].Ԙgؔ7|M~pt{ =jR|lǤI\uB!BHiA L8gKB!j㤻ST|*EL .Q@K|s`Uy#J6ƖGYGPEXPyzrڛʗ-z$B~.S]:W+O^6Jl~&OISNCվ^+/ۄB!Y &Hl&GB!еon*3)A*x}_<Њ.@*RL],(VijCD}Mk O5pIDATY_Ǡ~Mgt/܇&L)[L]^ITH!B\(q~B!TJ{H6>Vm"G4`ֽtL>^0h󔒮͕˔%d ӗ4/Ğ˻g"s^;a Z2Ha68Q%q@"NQ^Y[{}kTLի:.J}9A3{ߨ>>t:ln&4]'I.hEh3;]k6q4AJ^(LoN*k -W)[h,4ׁkؗS@kDGzt>y9H˵qٚJ`}5 ‹Sɞ9p|҉hv2: -8+s#R{ˆ^P5Ĵ!AxxLIK)v}.lمW&}۰8q9#) ; y۬^zJT0xܠJm,)] SMI:Sؿ}`'j;=k7Dٿ~ jnJY'ajvd?s ?~[ch<ybڵ^LH!ۡB`Xeb-݅Uay9.)-kut:ILL$<<Nw굄ïpc bwe[zr8u Lr9}ٍgtu81/|LQA+%#\p{Y1eg xѢ"sKqֺU/P/RWd`& Ԋ+5ԣӪn3;N`alDjTPѣGh4$&&%-V&~w}jѪi8cڴwհb;X ߭+ؔ JX v@ XOp&X kX~uؽ^Ikgaǝ']ۺvaX62D)gt*Ҧ{K*x{ԋzcۉGUUL&&l6pߌ} p210X+?>äxN/F-nlvfV䧓b؊|pfr24z&t=ySP%wL4~\6|RҰUEzyv"##ILLf( f0]ӻku'ur yN<(}-Z=+. ['}Npg^zNl&2>3ߤG>GJn799Pk<ʶtnටp\E(僑L$?ܹKP <\R\5(}1cmsOylOAvN㖐'55^bAUUIII!((V+-+d.2*͛N1d982rLvɖ*&HA~ՊTZ#ϸvK廬ԊRp"RXV.;9y8<.fy 2220LFHMMEՒ-W!-:bAd!V=u%hQ!سdE_\`=Dք50JK#=lj֧֣rj%((\rss ۛ+oO0Aܹ)48HL"өh-c҂Anf.? 88B+U D .)+Z ~ ,q1(r^pS` 'ԢG dzq)E_/3R}t:۲yKMNN炯]EI!E׊pBH!BG!$p8B !BH!BG!#8B !6Ϟ)3p>|&Dt(3ĥ=']:Y?~J…Jg*2Dݶ/*[ \`Q;[ "$p>QLg旅177kw+Rz)\GEQ>ԻO衇tjZлNf-K%uPH\e,rXBwdïr9L r;Ӧej[ڂfhKLū ;4"+ֱYKq!P:J1Jl6\n:y{h5}?Gr0˃r{|;1XڎW&!Xw{c8O*\av1}0[(~QF\g1l^bσdG eszV vrd0i xṚkw2q{:6&k$eяGvI-Oo45F?*!.cdS|Φqx_>By;>2۞6ѯ!m^V717+ Lo9cϘ!\6c -xtK7{ͅcD*f\G;Q>\&%T=w<'k3CoP1ܵ{<>jgt!TM|HXÂE4%#Kui:WK#^o6jp>BJ^hu>t}Op^=*mTsam _rJCO-oˉ]'(qIc!7+n1GbOE.mZ=Ww.n3hL1ޝ\p 3>梄R5%T0y Kགྷ0Sq-IvZrJj}ȄoFz78/na@g]PUʳc.YtVr{6WJ1Su;OGFd[!]K0VFF~ޒp&ǭ6<w?g,\+62Qi$d^`u+^ոB:).Uf橠fk_Z7x"֏#q tuh^q^̯qB bRKm 6Qj= h5q}̬x!w½G3m]"e|&1كӹ0>ukhܭ!Ug C؈l>pbt܋QKSȪ hZuj2 J)R&LvIJǬg&9*ԬM&oB@v5,Y[P~J&߭GHn ZIC)V!#B !BH!+,qF)=!nQ͚50p@)y!n13f̐.'#BH!B&E'LR쏲t:{";a|Z}ڍQoO6 Py.EPy2.5u̬xy 8 l5QG~ NMګ6I}=XלA=˹g+1뻊kY.=+ngҡ~Jהvy7&n!$|{0#) _.#@M_?z WMzIeӍ7\$SoLٝbLx/!ZS{67|Ce8y0,]b u78sy* +CDGH;C@cn.[O$qLuB_ı4ҎĽ;'T cw2cԵ2fvyx ՋoϙaiwZLyx= 9lxnCvǿGy諣4QǝuydҎ0UVI2yPOP'#Ξ#p4YHx19'ʁ 6唨| 9Q4KORS͇yNpt+j]1:P &̃P >è2(Ti S0ptaր21®R GRFĠwo*s{ w(ZѠi9L'N{&'9e,=Ƚ͠ ~pNnK -{vđ4R^>$Ms_ 3(~4~.t籽D'r-Ʉ}T:/{{vaF-x*lyŮ ~h5| : ƨ1i0}OBII5RQP|оb.{ Cx/I)Qh1t9R90cdMICBa*=ٜ3Nu tF-ey%è5bwLŒ*t|SN;kဇ9'=I^7>=z5E=1S8zT'<5S?A 8Dz.$7ԭ%_>*h n`=6rZdTrΗ~²'K)y}>\iGHs|,Ky|Ku`#ϋfnP_5Z"!!SIcѺ3wE傻hϫSy`FZMNrZix0 /Q>!$oj.7ݙ] S;ykK9?c$S`$䃚%?J 2# Wa,EI=ֈ.u#f'#o^ۛ0n0'I78ʗ[sˬf%g6k۶0It[e|^* Fpɿa?ȏeoj[J~Zmh7&v'>19G]݀G{8>z*tzH3sW%v7篽Y%ny،QԩK>eqLqzp&aU^z*2s7ɹ &%y+mZ⫙Î˖[UQv\vz FxM] X^OV<0pÛfL3s>h&1cXAT\>NYsv;_|+=UHTC;]d7طqkI9tmgռޜrF Z̩_ tLmu2WGwd{N 6;mᩁ39bލ4Z?jgqx5Mx_y'caL:ը۠9 Qh!dAh"0=ZR> JFK89l2A뀒5-M'J>{/fŏƛڑϼqFyNiΎ{Ӳ &mHm=$hJiOB?w[ Hɹeب8 j=dE R,-PKnKDۊw~jg4c@7,AuFV+b)qNEt:tiဂ`(ѭGz=cnT[#m^MOo @_/3૆LԝrZ7۾e?g|.ڀZt~l$[S*CKYk%ZwW¬jĞd{5b+iZ\\xyezCĘqXƫO~C 3uh&KǦ&:v0ciO"bߦY67=ՅLs.Cz;>K L]in,M=)zղ.ձ1Y%1-m~8+MdxQjm$'tfΚL7r%.bܛ+ye3οaQ7v1}i<9 2>i;P :$lJ'v$>9Ϸ^zxK ,86#Tϊ/OைGïT\LC1 1M{yc~1<2~"x̟E]n[4-ؐZ߇Ϙ1s<5P!E+n\j A ]a[qCҚEY'^oʭ,lʀ{k['ٸR]^a7fw乇k@~RVe7чfRP TUM Ec-)tUq\L$]MJL6FP:ymc񮜂ӢG B<rb rk9s[8Z)\d&fb)O<4T8*Ap޵?z#ط.h(Z=w>. ֫ YbF*<эwO`$xDk!th0q_a.hz?"}=Wff|̚]^wU#qp4ùYE^nWAWPq C@5tlSnzcI Ѻ3z|6颽z?"[F/b4謡X_ %\}'HHuV)Tw&ct q IDAT` ݩU0*3c|-rKqpz5 խ$mE ~Sަ3sQr=:o#< T=Mur.nw/ˍZt2U3l8c3 vp w'_|*#C;)6Yn;i?X!?fG2 >c[{68+ԡSMo@8]@<>KhP* w2+/ϟYVbZF/\A`oN6"~-(^^^p H[ 䉏[8i?.V;'}=_ǡ\^ EJ3r*fL&|0.M)`EA`„ jNxAl6;D7]mdj| ež?) d7%KM '&:{/}}.ҥ<'S i%t:ɵ٥u#ΕI)Tgf! nXrS!#B !BH!$p8B!#B !u$S !n~׬KEf $$$i֬YY7XQy}< }x^>yxSyCYkPwHvLݳm >eq+pT8;kar8Fcx힑 h9/h0:kdل!0dY7'\R]~ 8y,gdڢ2dredކk5vJ"AOj|bhjIFJs5{ _O3]PaDLZ-|N~n:F6A 3xHY#~ϛf!OEԎW&z&oIsl?Xe]'?{&Rl ];[ō܆(jWpkyNCFwƋ.M@LX*@4x8=TiPܹsgܹ|`(u\ew~`^>x zbæLk݇H-7Mfİ|rK@@@'630 z4(hzԃ2`2;l6g;s<?3lp1Ugdr&od۹3{ 9(7Ez's_űw<ķӽck֏I9Ksy[FѶ~=vVTnq7oʕ#88r1o޼v.1c2oaΜ.EК= i1C|>c1w8yy[* eO'\K8ְ`V)4wf6{yKWקP츳ǃ U:X-[{3K7t/^̡CXr%bŤ~tgEv>ZJqxyt=m0^*2t߆-{XܖͰeۥr8g4AH&%(ҳ*&TiB7 R^{%8F/RrQw4]2jV Yy #湐/|i ޗC)9\IdfGs*\y(r bgEϺkҭ(*.יp9ݠ}hܸ݀[N!?߉ۭţP\G ~v&Kݥ*R)|>Cʒ*lLЩpq,I6 ͼ5\!/\MV{#> g}CaΉttAU7n ]8n<*n7?Bw{(YGj tis ϸb",%Gg7 !:w26gL߆I?}4ux_>ʮ }MfI#ϙCjbrqy<PА)369<7~&V4 qCp@~jsDdǺ<21T'^NUϢ *COшA*}\K>u8&mHhkrSSxTwAgzܧ[85#p:jLi >tJ8ʄ N:V9٣9sF*|1cfNӏk(XhѩS'fIq`ذagu2e ~~~gw^4fϞM͚5)Wekɒ%W!X\MiEQ v=*q˲Zk׎]vɱcǨY&VPFN ԥr%Øݣm]+BtիX,$''3jԨbyxJx ]8='-gɛ(Qv ! Z9^֭[ۺg+r] (J@vVVz^Gܔ[96lK. GUߒcX bժUiӆa\xnfrn5.v\GM2|pZ-999>//5kPB|l l6QQQ[R5KrF҇N(zU9^+SwEEEハ@hh(& //~YЛ9`DՊosK( ~~~k %E BH!BG!nwݷeBV-Ll8HMM%??_ (h$00ł`.RSSiҤ 2ϸxHIIaswߒGɓ4nܘP !. 4lؐR Cܲs"IX,~-8E37!.ؑBBWعG%.D4FIZZE>!tWT;k2r(b& * ǃt^+jJKGs%??s2lذbc0J8h8y,'X[|ִbFU7ˉal95o0s~j am Ld;PwyލjqٙbOO?Ū,Vuzw%̊#sńaL{fg^3%V#M='-+mLo{  SIׇn,㣄yQ\9a޼y :tU  >0sd`/8x s.dM96},vQpסOϦO׼1{? /Yq+KOOg:t+Wr!/^Lzzzw\Zp2w&[9qB\^/uلY%6h`dŬ={i1$hlLhQ5x\Cc~fHHuV1rAx_ƗXn6h4~yj+|xͪdtGr=hPQS4սʗ vzo_n_5 n`2k>>H\nb2q]F}}Zj9Tw޽B\RB !BH!$pVN[|W2hh4tR.qٳz7{CŊK[2p\.Ǐgǎmۖ0g\ x<$&&zj fImۖzIBCCaTP<{< $D YV\.Wzt?BQB(~-{xB\-8:N%^FqѦ#mfD3om+/6nK!Vp<Ĭ|~O=}I9g|t>}6c7U䞅igͨ^*6ǎ|pŖep+y\j6+fA*#st ɇTLo(;>l7YMOzmK5>ݮK<PLz4XI@>1>U'U^6ztsu ν1q7slGLD8Q 3uGn_t٬S;^|mOƷQ?-5, T#4M֣M䞻ki`sEYZF*]-&57徻ӲQ}=6]]x]e'p%ӌWnƃyUMw1|e6wN͚4y|5{sm3o^&Vז ^p~1]*7jwxh76v.]\0+A#\+omIœ۾ރƆ. wwnNQ0>g~3'F fT}j D}~2qM_fy*%8 l4? p;|. HXÂE[IsJIKLYG)+TZkEq$(6ؠ r:spRM#q[d~8& ݗXget570M}2U=#Y**OuRfŁxdŇ}R4O`~"jƚ ;A{ᖭ"y;h%M?7;`Oq(VHNV=vb󧭱 0UD;±5]pÊu(ȿ6mUMI?ȶ;L.,8c8K=]3Igʊ2mZ"ĬE1}] BG  Ķ.ǫ-ǨRU|O.̆<ҷ! -+ xoMCZ௡S!:ul:JѴWgZj$=vF%wq,ˍ޿2j\J}Ww ]{TmŰ1OűK#$6Xb8$'"{qܨdl^[Gt-wc vi*.&w-nyy-F: ΈΓGWf;x:P*eFV@Z"uhUVE,}9צTCv.vXcys ƽ4wNW:|wYb0ĭ^bEuj΀eǥr_|)}aWՌoOŇFLא!xƏF4և:0r,.I,gKSJ=Djfުl,ln+ASBtW[/3eѿ)h%36w[k h=Z#z\؝*:27y{l7;:6o@[^)jՐ B` (OXXE79#߮ھVp8Cxx5? Ej|[3tN΂ !(8Aq P VW7YjH60K r=7?5W[*{|3t[.n~ݲm p&,Ѵ TP_(!edRQ v,oS%on;ØW؀0<_yf頕qblԛBht87xֿY\)rf$wV^ϟ&LطNXBtq7A90LlVJ\:*')%[BWLF3IvvxjU{ڷmwIѤ|vŃD7~@xig*Ygc4#y\,Š̝>=.H,/h Zd1[ckOb3X􁛩ys5<YO2X :2E]{&e8۹M[Ŏ.g20u q$J%)xom_ Qu"4Ƨh"#==UpKJJ :thX,ߖѵl4eL QooĆb͚5QPPP_n]Pybv[D(Q(>GM%2d3xDRBP9 Xg0;~'䥜rt]ҿV\.ъGHHHn(l6ߏf#**Yx={l6Z Gvv6vZ:rT>2p`bcPdE^q6};Um9~5Mɓу!6mLLL ݺuyMr/ HD|!6 dv i=~ԯR텺S^^Ntthbj:EEŶ!n귂c G]UkkOx6x?EoXFICb$IM?ر:0 dYBUz>t_pjYMkyUŰ4O->Ť?~2r?~{ӻ9). ˶t(5躷4<̆9IIP&/cgL;gt;(?xWlȊ\WMƌ,b-e7?9Y26?&_O;V'8t 4G=Gӆ1uW~?~Gk0mm!_;{dgsd>ܸB[.\Px~\*՝ [oԹ弚;pqk"Ȼq??X?=Ǵ{6w />L,vkƪy; h[; rۊ؛2g?xyCl2M?3p*z֜$/I<ޑGx81(*C%[vzmeط#RvjޚޝF nӟNmNjE'( MPo!ܖXCt*1wV}ǩ0@ ۯ {2(nct(el c@B#(.sS6If7ECSG7!UMNYd7/A "Drs~V(>VK,2˱d,~+80[3B8qTE .#x%|sRCAvR8rUêHXd5t\8|ZmR8~鯙>54. ݓ@4|lQ+LTe:!znvpB"14͐ Kc̾s&-`h;IcY}<FJ:ƠaUlzb$.$s \$Q/z 젡:P40Х0lsOrQGDZxΓ i`` -+a> 9s&9XPJi!r>^̴k9tP\>6ftrttMC*gChC8|>$NE/߰p9#5d_7?~g9y4 Ϩ{T7 @ttCCM1'cZ,4(ŎBdޠ4}w$I#PQ%;isV0W7ώ;놆ۭ  ق4_ i{_٧6_Fb=t3Gk;a=4]Ǡ{=?G/ռy̟x#E_ǝrM̕L^6}ɔؓєs>TjMYԆA VbZ2+&"֑F,nQ53QH?磓y+ڦiòdFÑ-Zdݍ8q 5x$V^Mrr2111z7ٌ5 S$V|ҥqCユں%n:^OQ\.fYk'al2p8V#8>G9_u=zT;w+;j!jMW=-_k/H`Vp O_ Η_~YuMUUt]=E~túV{L昪F=Ic`Ǜ4n~ݨiQ<ِU790Ye"vԶA>|*WeYR8]P-2bckp^9ob`ٺu+7tY$0`xrjeeel۶DBBB*=.88vqشq3Ѿ}B;XOr'v:l3.gDIKLZ)**66$gsL&V\0Yk- XVVkDŽp8MdmΩSZel6WSDm< 7%~9Ȩ*m-111n,FxxxmmE[74sѱll6P4a&Bp@ #@ G !8@@ BpA+,q[vxIENDB`spykeviewer-0.4.4/doc/source/img/neo.svg0000644000175000017500000005251312650522331016352 0ustar robrob Neo Hierarchy image/svg+xml Neo Hierarchy Robert Pröpper Block RecordingChannel RecordingChannelGroup Segment Unit AnalogSignal AnalogSignalArray Event EventArray Epoch EpochArray Spike SpikeTrain spykeviewer-0.4.4/doc/source/img/plugin-rasterplot.png0000644000175000017500000002354712650522331021256 0ustar robrobPNG  IHDR0sRGBbKGD pHYs+tIME ')tEXtCommentCreated with GIMPW IDATxwxTU?wz2I$/%dWTֲ ,QDDXbʊ"MDZ$d&?& %! <}ܹ={(͌3T @QdYf֬Y*>(%EEE ,SNE1k,u BBB"jA1ŋsT83fPo6^/ADI 8Ne˖ iRF ˅jÆ ET iժs'88XDF $:U:!pwJ8! QỬ)K CH -л{st5y,x+7xYpbtGz UEmm\t0TY-_m_!65p_vϕK|U*9rmj8Weۛ8z`-·S" xhj!V-e|(h0Zhж;:7"T'~װr^幋$iwÏ(olp8_vp &uwtI w}Nr#7yU]aMeޯrщzƀQ?#Y+=p>bwϽberR;erؼy3)))*Eir!d/A1%'pbhЬ%Fdzs6~@o忓R <|4#XٰwsporD&Xš@2`*>'oyOބѤGdI'{ |Rqq`G,Z Svmo"[)-vojj*Nkvq\]Ijj87n$--KJJSNWOI_~_й=(R] XUGKκxk]9HZK@H # q^CQ ] Fw 5ƶ"Hqc1 )7УS/l҈ae9#p 8s%gk }J.3-B%T/d9w4i5 Lys썬K %d&NvV-dݺu86l؀( ѣN /{Frr2yyy\8e.*mH׃8<ܳ'=.YEݒ-g6ʛz i܍1zNQrѣQ"~}Q~=ydPCOCOP$I t>${sVsx* 2 Z<v$-BֱO^VyR)**wެ_#PgFFFҵkWG)UZ;r8t֍իW :Ds6#f\6s2 NdԢNDrldI]X+KE8g+}~4jG}D94hm{b.[IۖڌeϞ=t:9;wҢE FcՅS~?AAA4oޜP8߳=WXRvbp\#I'WǢcoZљsjvt+h",HSW)Fz@!$>fe|FB"0ni=bGr8.\r}?˰[M"~[ ]ezCp޶ ܁m۴4f3f6mڠ*;wrN&Mj6Ell,$z|˿5J*Eׇ.7%?@lD~Q!]g|V֌Nm1{8~v .Dhǡo(rzn;0Hte4#e`IEBYU^b(c |.$=G0q\ :muǎu撗G6mcǎU:&4}tuȐ!d a# ;G#&ؤDB'GЄe x⢌rq\Z ѶBL^Dž#;B՚g#,X=‚1HUGNN^ɄQt:sv3\^ฒsD4QfLz KQa.YYyK V:(w]w}'n<a9Z G B8@ #!@G p!@ #\Zt"YeYjjB8u ׋nx5$IL&1zN-t:"%%͆F#*@Q222شibZl%z ';;hjrBGrr2999*E2J )ن2rܓVr9Zz1+ZƶTW٥O?Te湆x<h OtYD駟xOksY+>: o̩/379 MmG?VC/2l()QZ"v+VТE VXQn֩nf8E5bNux-G=U;VˁFIŌg7-+7?ȣ7굹,۞x*D0(Pߑ<ȈNh<3e4Oelf?nI[Hr`hs?0#*#{b N1<#hb*.n7ً?,# 7`:<oߪex棍w)O3CitU>#66h 7n\RqL L׈v.D`7-o=Ԇ&wR˔|Py&<#QwOO^ac!sV*}G`&ŋ?ś`ɫo<7ufۓyd>s~js1mh,e]qVCnV/֭yoX,yzQ OwuvKraV\ÇYtN[Y㄃#?ٙځ(? d'k~8@rPF1%b@CԊ!1y266}{4҄VkI2gk< 7d'{jMҗT;K>}CA} s *+[91>RavXx1Zp7=7ulNhqj\8kh[trf ^hs̉9ΊS?L}'br3+Z̽Yul["UUϼ%D Quyť%H- j2xǧ\,UU ~cgxgr1gZ2?NHp$ILTSUEPU0ٯ(=I 3x3nb߶կ;Ox14E&;dPIߘ7h) r8lfSdYQR!bٟo#8<2RPё&:yԁcϴyh±oL{_cbfX5#;33hFq1 .Jc"8#f[DS?&DIT3re,2zBhh($ 5񄅅 <!@G p!@ #\=,x<nwoh4L&FDpm e_AD>nG@,fGn@J,$T3 ޑ 9(d槁V+1ȏق3v;Nێ-l+he2Go.ŌCy{2{\{$-=31V" V;]0El8`ǣ "A[n?rW6ޥ:`.Qvs*3< p1Jj[<䑾{ juZl.©pd IEtR">Z H:/\qgᐧw H\huMϵk 2{Lq"V fԾ8 Lջ7SsX~vfro|6ۚN)aJ.Mcη;tK"sӓQ\uu*.0ϰls|g*;מF>~F}_2_ !t2blπRuO9rL;Z+CǾTrtѼٻ,Fv#d"M{[$8GGr8f4 o]sYEQd8̫O>/>6^"Vd?p5;OANd^Bg8 eXukFGRcvPd>ՃOq\:d xfNͩ?)1}Xgmhef7Fۂ2CѨghm>4]9\\g2d!Cf V{ng+h=8VFjKKH+z{Y@DDUEL&RgBҀȐ$U(*x5Z[!(+Xh*@p G,r\S'@!@G p!@ #B8@p-#,p+!a+©W SJ-p#7Izt/~Շ I&q5`{ žýIћG8p [^.<{xsTOcl3 S5k+©p1 [6xxuiy?/+Cm_׷\"sr x6!,p/VNb{#jr~w݊|3tS9 cL&]_\;Yb{rKSsMםIr?rsa[78׊+[?OO%_O/JPhhsJrsχ!I^¹,p+ xB63׽9J\eW5f ܫT,p˳mD6Hw?d{h_$+rцT}68 5b[mgm86ak;ww/*r{}o5[gi1~.+.a+\RMX p\'@!@G p!@ #B8@p-#,p+!a+©W Se@X=ူT- \N#,pXپPW MS<~$r'T.nM!(}b+jKý -m=e&s=Owx#x=7x3SX7^h1e$+NýZ#,pO[ٚ|[_ >DZj5ǼO|Ӂ-Zc8Z7ƪ* b+[m0QaY r@:$cRN;=l?YfF$TYaє> 4KD.h)pRMXmlng;uڠ?#;ow"_*8 A:yl$2$k2|cg;Zj͓VT*FX$ka+\RMX p-~[Ї8\$!@G p!@ #SedY"Z"֗/֗T8^ӉnT I0Lc61 ڞC4B닌uH DGVK*ߏ$++l6+(dddi&TUj.{6_HOYK㧕?*Q1%,dggB\\蝋dj4őLjj*f\ᤥ 4j8Y("TgI",$NMѯZ3WN8rJlUfr5W| %a6FT&=kwwTkX툫,ˢ< ,YTUEQZ-$4tfג3VxfD劣ף TA<8VX5ٕ}/ⲷ"53H]SݔwQ;sܗ$T493֪.b :j WAqj,CI$DO,uL8K@qqr[<<6tEG2nRO{97erG*f:uKOVhPTgī䭣‘9~ULג-_{))ZzA\M7quDĂchMo>g^*sW5q'Aq.9qڥ\PaKx^4 ',݇?9!V4Ԕ5Yc@fv{ӧ[W>)TX9z-Hjځ,$830s:hL;w3+8e/ՂxT&ԚP3QMz2zڳ3d&3t:Elv:nuzqԂ>IDAT> `*ŝ\l棻Ç^`m^qP,‮&;;͗}<tck"Hu@A_ y?Kw$ s *D^|[c}=yib(ZtTܻ?= $]F_/ZZ4d{%Ix+/%^{}$&U $r* } hgFRԆ5VgI(R$RxC¼8!ΓUʋd_ Y)2CT]Qf!VЙx32J!-5*;y0;7x Pg:_;5MNFQsƂAB(Li3q/z1wڭ44IW\4T{qƄs)J6]t|?;L;< {kiν!WU RA+(Մ7RpNf3;Sހ0^Z>⊶M $UT X YWĶM,Y}o=][YGC';E 1 ?acfOR+$JWʯl%ωԦSx4?ZǾv'~F{s)28ނ${8r Rx*OШ_wwx2ٳy9^}0E}kqK6^YA95cE" "bn}lŁ2s.N8< =2#2P@T?xiss9_s _qT#ri״p~ ﺖqkS`.1Q"]G ._>~_ cBdqfN|yʾI$y 2ZO'"70)'Ho"I>FޏcXHOO'""BOEX,[{uxX%eY$0D\ %b] @ #B8@ #p!@G p@pAC T&1$IENDB`spykeviewer-0.4.4/doc/source/img/plugin-spectrogram.png0000644000175000017500000003634712650522331021407 0ustar robrobPNG  IHDR#WbKGD pHYs+tIME t~tEXtCommentCreated with GIMPW IDATxwxߙپMφ$z(*D(RرXѯ"(XQD lߝ):$@>>l윹3{뚦*@kײm6JKKQU`0@ 8}1L($---Z`6QY1a0s2zha9@P χfܹ :UU1 HEEEgΜ9 <LDDj`? _~%C b رCϹ袋BFa%@pH^/K,aРA֭z o֭[;=zaZedR! )++ài k& C%X]xÀdd 2.S'6ضA& OO_Yab[h !|B͹ѸbH7ꌈp  a }[`TŻٖ!aA{l -ޭlV$6iCT'zٕyu0؈MjDID(h^r7o sG>$#TZv6{+nw[P7$ɻ͹ *cgz2 tP,DRiڬѦ `&q2u; jER\~ia!lU7F$ƴhMb.] &ٓIf 4jӊz,^B54$(XC1 Uegg|̣9\:HDG5]xKv݅vcԹd8%tοw^r.ȥ`,98ο~9]kDff$%(|e Q0 =^+L 8gt뒎 7[V;Fl矪2:]QFVAc4 qV 2rsK+MQtkhF=g͆J[rr=+lȚPE=jrrrPU-[РA4Mc۶mȲLNN9if'X8bHJK'5~. 9P>k 3ݜ9oV6 }L o5_}]uf}{6B@\ąm0!%pݶ 5з>rXN6W9 9; k;װ@ &vǝf ڄek)LbK<-m}΃?Ljip(?lкw8|G?B؃ EC'׍e<BGf͚c~?;v@u, 'rQj܅I&gnJ>?n4sLva AJ PˊPj3)&-ܹѐCEHZ_hER_Y[Q`g!>U#14N*I~A<|»qj\J-V$\tz۩~%[aْ||6نD4hL%/l4!G5 OJJ 999|>$Ij=f"r,FѠM-X= ؕg]Fg=5U'tTutbBHiS,2H#j=@+=[T9v#_XC<+R {/!jxmI<.Pm֎B|wJ 2{i0+h>7Ct?{IFPU]nيi >( ](akٲbs+(P XjFuoB*&7_a0:"TtFsJkZeEhրx9f& UH[V$*תJDT1 ٴ݋vS,o.fG4f؜EG'PCaf9N.L%8Q_" MEHnn.bٰZN^^CUx"GX !ow(ZQd!%1uADZ4lb[ 9i@ H`I+v)k_XP$mzu">]ʧ_:0Z2y@Ae6?LOQh7Q-h[ I:Xg|m6 <3m,iq {DwzyJx"GMqq1Lll,(BII 9R5aR v*ObIU \π[lӃvPc$ :[ UPU'ڷH%ƢRZXH;L$h$[pD4bm z/dFZ̒LDjSXYeXod^NkL?N|z]Ԟx,ٞ&vd ,мkW\l9@lLfI8(ݺZ"m2E;:Ip8x%""qI&]t[Llw[(T))BJذv `.L Q"| ʂ{F6b"nŤHk ~_%%F2`&*b4B2 j )6cp++j);s&'!S4((IILs*.agN1A3PvS9S@ _}=F#.&.>`4h'eK-:y䴺h}Qc+\<@ǷOVH8 Z/*;V܊^q@i٥տ-v o2X"vl~5l-MX4nȉ a^?@\_1:c.̣ P16nC3,$;@x"ot \"1nÜЌ ml(ρj;!qES-J:!w>;~ &BD@ DD !"@@ ""@ DD BD@@ ej~/&rՂ ")\H?$*6Mtoi:I|AXHѪ*߹ߑ[@pin$Ȳd mւ&%[i: gmzۛD6JbU$PBHB~f-fz-%Tl+,fx1.-="ǁyxuC\p\vbŪTx#a SW?Fh -\,ehIUB2Q0 J &$CM=74ݎKMy5anda|SP^bNєo;<(1-xv&QOr6,9=ϢtF KKP_*ZȊ0q9;11y~֏A&Q}E+,?f^!b&J3}߿"3f̨ij&8 ] aWroo76 ^y]^iv8.gwywZW<9~Ϋ0wg}w3zq"_TA<~ؘSbhm)nEVsFN~|K|ԬPٽ`"FpK06[&>𪤈 x > <gxgce)y}·|ʭ47yXü#/>zA<_xD#8=DD9B!) _P(T^Bs fv$$"3%h\[ӯsFbϺkfŘPtMT2v0vi;,f?H˯d39_I(s:CZ$&I"UY:Fq޵|y\L(!] F*8Mr"!;ǽ6~ѠMLǘ-X+O6bTj”[3׽UP:qA"ۉ3M;%"/wMG!&I_G= naz˫.`Վ24Y"t9i\=yMXymz֊&4pHGS K.F~z|qӥWp"h?vƱ_Sþ߇K.76!l8"LU~Y PvR}>f羀sc}p#/Lqؓ+\fRp3*AjMb`6KaoKX hފ`=Q[t `);V/CA}šRl [Zbh׷;AN~>f3j~6p}#&&~ӄ-Vg[+;{ߗ ;w^f-3헱6̋ h4i$_~|BVlXH mUeYFӕ܁ ȒiU~}󉉉;a-/+ KN_X,tlև_}E^^ ~PEtt Bf Θfّ/`6[(f;5Ƶd̬7D@ ""!"@@ BD@ DD !"S;VX]hz.:t8$@ DXbH2ChƪUXb:vw@  ҥKbccIHH8'66.]PRZZóje,S׭XϴRu>]]vW[LM z"R~fpv@ Pm_UU)ū>?׭e蒕91\.@p3 a41GА#(X O}Gx{`QBYfr{tT 8UUTQdOp2EĠ( G0H`=[|$X\4܏&^ l}a$|;)~; Sf8n_5i=kHrͳ\ҫ K7P^?& j3_zoV§Ds.C?7am~g9Z:Kl 7%>u;%}ob=H2U mˠz"b./rk]KxiY)?p;=L;ڢ) coC;rCX<,w=o%iϬ3繮XOVps"!MmcLhC Z~}}9![gnjXYl6Zz v{{tf[?^ts ^G?[e"T|l5Mط60I/ߗ|{Q[ +I&gT~)uu|DŽ[#iT(ʌ/zf }j|l&c3V҄/QQ B!!v UfK_᝙/rx̞xBM=&|?|<^nz1W3vIP*RB:3VD D̍]U-$I@+72 JVdoVZM d~Ⲏv]W,)-Cd2cs9&X-&ZnC~A Z) мy3֭[w}wDG:#h޼g :wx!JB_x!=B/l)E@ DD BD@@ ""0Y [p:(1$D4! z)(( 0I0b0Mo!"(pMAA:u">>ˉtb r"ӱcG\.A/˸\.ڷoOqqqB^ѲNQt] !8(6p8\PW)," DpmE`!l޼!"-;ܽ1 F/b O.<|?<2<`7"ĀQm6ݻY?Ż UcמN䡋ӱJ1z\2ܽi:n _ޔZXTx{k QmnhXn1{lg;<6&$Fy 8+/S~.WYYJh?ЁPL=7=N(8@y˜>ljq&&S*`d~ cʨ !a08</f?"܅#iwKQ(14y .ފ?#NUә4{9;$1}00>͜9s>|Q=pNH_M+*^Kb/C}۰Ώ09ﶝwǻ<3sfߜzUCyj/ڛs}q+Lbep^tLFyB4Ong/7u]I4 5+ hȖ3nM{UR `n`T ӛG- zm瓕OVVϧ=-j艄X\<ӮbҤ+Im["2}-0B0 C|2E)GO{N.Msezh֣1_q6CIDAToaೈ5JpfoZ*Y_ t; .]ڎ{ے==&\unjX904JmbkQ5:L0<*w-oS ]1~7N@]ά,,|RsXlR7-cb4NE DEE1o޼#zT2'11)O!Y}Uųu /?4[>rLh?1W ]Do\ d*c9oquq]Ns M·gMawʉf@̜z ) 9q$Y QZYHhh!T IMϜH￐xX"qeܲtТխc{մ?uH>х]7=.SmkoD&kل42㌉Ģ'5T@Hp{ ]/_BHar.`C왴IݿntꨚWKh|tDl7g{!F,92=q<9?l- !hgtpbjhŹݼq9k $ bM{_~.{ &RpްQt>Ly€!27M53wxxyck]x,dC8rMzȋ.'I*4ga g3k ?d&"Ryk| D? ORdffү_?V)yf+F^y'eYf֬YdddxV[P7.$jg޽{vZRRRؾ};8BNL(:UAMEr讦Ӛ=ϒ%Klr}0giZ"biɘYorUm"rz#ݺucɒ%^'%I:UGg5AKKK1BDNz/B*۶mnhf!"(68/^LϞ=III9. iv lA B5zPtoU-0rHEvwҥKiРv]:NGjj*?58UdY>慄k5-PSX?33KMMtt:ot. łn.Nt2;,8"##kt!"DEE77@ U1&BD@ DD CΜ⨪*EQj<.D& z)(( *$Il6fd:e0an7tԉxQWPi|rbccq:<#VSXDر#.KzǗe\.۷F!hY(zIHHVD"R@p$mE`!l޼,":e,C/1eI~! 84K`=nƫ5n]ӆ@ $- ;v,l'5]E$/ޥ><)qYQ+]GpϟNzYUޡ=bZ]9ѩ̞=@ ٳޢM("%;Fv:K»SaF֭/V> Ҽys.\xPodD+jɒ74ݎKMy5an w̗U)uG^I2ȥ~NI2F¹^!\ґ~ݿ|KaJW3f4Kp}gZ B ky3c/^!_ȴ7hH;ej.{9z2H),Aiq@C[Ϝg媭 D7;F$~!wL>ll$u"$P!^~egZuM5E1U7WGaL.wLw-_?07'|KRDŜ9sHLL$>>͜9s>|16~ WuMʘ<ԏz'"ϟO0$++ lJtt=+\ _3& Ȍnx7L# :ru]IHHhlhήrf.Jx#_sq2]?˜wŴ2r5},a)|ڼҰ^SF=H| Hz\_%/9;S=ڶdֈ=Z`ULt|-ˀQm[}(Қ.Y8SYgucT;Ӹ9+ᅵ4gG,7w ZQn :s</+Z:M M;OTTcUyu+ ODDbوAR :ĚkppMH|=GURFq}ynߠh~&W5^6vȍ#>fc 6^d" k2gA$ F5;x?m (!~ܾfUb8g=d9L,*Css߆XC{!ŋ&NECr[H}e@RY[W!A$eETMӁc+8\H h FG %R4Fn3=Ål;H;%V\,(4*cCTwncOӯpM>Cp|H& Ix_=7>w6ˈ fe 2*ɦqYSRȲ|)14pQiZ*dpzJ>vo.r *&#"k{VUTQ仮S) u~p/gW@Gf3enS"-mua OW&r4mOcA/㟯SdPW?_u_FV,߂W:̾QDGQdMч(vd"vѴ '!:Ha7߰@#j dEU6?Z(H0$gݢY\E$ &i3~ L^㒦US99޽(躶yŧ.~y')>1utA|tY3$.~ >7?%:5mDSSǝ&mtPM'[*fIyLe2؆ydt<̾v>fL9nTJ}[ ,^uSѐnΧa͞|-Y#nC|mH6o=ބ} Cd:o^ agTtzg>PTŶ+È*ɘF3#r D6Q/1,+b9Fďo[ރIx"%-u#}&M',Y 3Ga=%77Lj74;Sle+_Y5k$&&kHܷʴ<>Vf\-u"I8q&op8ݻ7k׮%%%۷qfP(gNUB~{"xP1S%<0nH]M5 {ߟ%K`;!x)!"5@8/axmv!"7ҭ[7,YB=#tRݙ'"C'CF!"}=Ro_~m۶akXSF\\/gϞ4M;NB=yOD(*aEQ9r$veҥ4h.DDPӉ#55~uEQN*i,BµuVrןyпt:q:BD7:˅bnʼn'Ȳ 22F"r ITT~sZ#a@ DD BD@ 8:qr( [8[ 9AA^/1($ Lll,6 tX[mVn7 #e"""HFTTam-DqЩS'E-ܣ@4X|98΃ 5KRR2,&d4LkD\\1ψ-Ø|:vrQq\oߞCNl۾z!~ cdy;w($>a`ÇM(-+%90X GD!"HA>T>ݚYjƪh:-ʇFW]"Rn$I5.K(x:(#pHIDZGf"r\Mfmj-T-0}8[V锋Q|ʇu"r"'K漉ܯIOoI]N1;*rD9M5O,xV.hהF4П/己9cx* nKWOt;**"™CDlq#.u4KOSv< Hy(ߞ Q3Xn|Gw5K8V.y{ =Vv`ߦ96|9z+߼4]"R8#3zR7g=='t 5چ-* IT ]F J7n˅fS0'ѻuL~AݸfTVʷG3CSi ]Y f/`5*=s'Dd@*:YӘ]c_ta3Ijw ϼv;ϞbƆFnW'w;_W)TLԑH7̅.os8ν~w~aljr%˜ogcVfPh\%ʆ̍:z _aiYF|s o9~S.&?d)ht1}R47J[7+{{݁*8=B@ ײN h4q\8b,b\% *Е)ٔh.: tHDn3xW\{f4 rIAOq.& /#o{sXp™#I~Fq HPۍ.;l# eN4]'ն<~Aclz).-3u(ꛥxlm{¨ e/b/l<(Ӡ/SӐ۪ABB+$G#j5#}^LCeЬOPE+ բFD*&!u k}UE0{`٥`aT]{<EM㑫:{''VԲȲ\ VS޴3a]xߐFE?W gΔsg(-^|gtMCӀ&9HR.3`w[D&̔Onn6qvP 4M%>YS];,zק^`|HYQ˱xM&+@8Hɖ?X݇ /`߳B |2R>ªV9ܻ3*a5t>ƌ-G|jQ8 sSW"a5Z>q}bo㾛 >_DjEQ H F~?VEغ&"RݱcC~;h6 Çg0a u> J_b"Rq|e˖C^iZIJ4Ynsrs6FcHebUƑV-D4ª&l}!$f9%!",ȲLii)aWptDDDr2Y%"* Z:m6g錬 qBDjFll,/gϞ yZۡ6E) 7# Geҥ4h~V+hw߷7iiGBPz$tjցb>m`ށ)xXd4oyH[ 98N|>O6֔$阗f qm#QwTN'NDFFi,𰶖elm4ъ\;YA9k,CZ v%].N(:a=UeAdd:**Z8ZI(1O Ļ3@@ ""!"@ DD BD@ ""!"T+6 K3^QJIENDB`spykeviewer-0.4.4/doc/source/img/screenshot1.png0000644000175000017500000077512412650522331020026 0ustar robrobPNG  IHDRk/ksRGBbKGD pHYs  tIME '\ZtEXtCommentCreated with GIMPW IDATxw|ՙܪlY.,Y c 05K ,MRHvlzlS!8!$$ccpVzoW}Ǖ%Yl x-Jy93<:r5ضm*ml2B!B!8Ҟ|IEbYe|rn)1!B!BqDB!J}QxAs((,[K/E(SJN!B!Bq\p۶mp8s%DmH$"%B!B! ֭[xGQ4M.KJI!B!B3a`&%Kp -v%B!B!ђ_ >:B!B!BkadB!zw\:_>J1!B|D9IZ !H+ K :d/'C=:qm֊_Zs'N$UEGK,6_{摉A!BVUR.%L[ Lk  k1e֓ q"㬄B13e۱c@W^yp8L0W^!cǎIm{B#z-jkk^AA+W@!pfY}]O]Dves:~'n5$w~?v%[Lr*V ]uaq.a' 61l+T*,+XbhWJ@2k?U.sbw|ﴕƮ599kyͬ5p>+XIN\W3kH ^66+|tۨ0/XC;nH ÿxqWcUB.km !bVS5W_obY.4N=T(ĒVgy&]]]^fժUtwwY B|X)o vۻ[RAKOK{TUqU6׍2=pzP 껰} Sfߚi]EwA:uʊI9mSR@Os2N_ XK72o 9ܠr{jgW}e,+(e72k/Ycڧ¹ ;+4uoNϫjZ;4:dV}%y:kQEyB!>$}Qe˖ oW^ޟz㯭_~Bvi|X[03O>7ᶊm[vZ^z%t] ))IVB!ćE38Nt z sSQźp 3Dh#}6[w,(~"'ZXQt7^)8%} +QT,9u%3t6 ;}β38i];Ct`=dz*4aL52fCE3]ՕTDB+׬EdGdBA%B!>L&X\k{#5x4M:::p\`68[ysB#l&zjoߎd͚5ʠ !b2xq/XJL\~316j`{>Ze)IRc?gy_z_';^M:i ÊM-Wdϣ\3ze' 1qesqb,cR~%j=9"u2wE./쎽| -c_uBRhy'd'^lp`eX,[[B!ć5\3'+2g>Mɶ(p@oo/{eѢE m7>=pBWR\\Ljj*P˲,B!>gGvw2Y4mhjk;ݿa@"6& ئE)AlV-b0-T6x ]?{=I|Ud•wșE姫9sn"H˔[)'pB[ۿW'.Kiu:_cnK@Ic:#.r Ƕ́$_%B|(M&q4mO֒Hbb"wmw^ uuu,X`B5M… ']י1ciD B!>D奣!0a-ydzʩiQB Vݻi@9T70sYuec'Bݷ0{,OŶ2249iu2o뭧#9i3˒{i覽B[ǒl﨏I2SpS9,b(XN0m2V~6AfsY$0 =mB!B!S:tww%h"YVVΝ;Qsϕ&B)ޔtRHpph &z$N.y|N[d/+Lo{3-d+Q<~?O)]9.kzȞGmx2T7q>N Ŷ0an::z:*I3z'ڈ eR \YZ|MeXB!Ʃ)ٞ ++v {rSMqriy!B!ǞMZpr#3rϧ~_qS5;ww?ޭ]mHNdStVƲ?ѾO[H"w| ?.ϫxe ַs{_"\"?a/퀌bNf?};u6y+܀ŎG~=O5(M|؎Sw{_gdHeOEo(EP57)psxre 6_W..ay#5\؄*f+9Mn;Xٙ38?7dP-R?-n=ɯñG[xul>yoZ&=?}>'3NrS;:\YF[x\{}Lt>+p7h•Gxz_}aNl{oocG8(8w͛GxoTdnaK{uEhxX]7-j"`b渏}ڮ;oqfC|jrB!B1a7iG . .O>Bn<(Ws\Ÿԭ+I"zd WI˸b(1$ܓv>^^{ :α1sKlo [qqnz;"Jw1d=Ss\p\j"'].9.]ŗB!B p`M?kc 7+Ziκa讣=j}y [`w4!aܹU\z*."Ҷ-~9@bN MT)%<Ǐߺ؏pkc~PPd"gb:)#R]$:L"I+ٗ3ђ!:Z98ٲ)/<:99Kg]1Q̢x1IWdO^F]6zxRN`^F&V?q>ɪ\hB!BiGnM+wY=: UJ|؞<3 Ӱ?5xch?;33v/_.`aE9В?lMK/3s6~s &&h dq8ü>v;Y2c`}mi@w&Nq#-i7#Nqp2oYdkK.XE6޺x%iUbt̒?Ro纙u8®G:Fnj7Ħ !B!pVvq񕫾GWEڼ9㺛9iS<Ý^œI᪏Om"K1o\\ͯ`snc'ǞX\@c6.^t3MYU_4y72rڧUŞNwUM~p&1{|᪅0:nRYlem\d:YsWpt^}5w59'ֵխ;t$cΙ0կR8W$t,\7"Na/i-GSز_o()󑜕B!BP;n*!>n^ <>8;MJ On i߸k $M%B!brz)^dgҾm:ul+Bוs8}y$B!B0` |;E;s gΞ%)+!B!JQIZ:s??_J,_=$ B!b("B!B!$B!B!$B!B!i$B!B!bY$B!B!3遊2}#Xӹ4EΨ8[@^|IB B!rs:8i|Zh%%%HKN|hӹ!l!B!GcHii)-EŔ^,;P\d{1O: G.JӢHD*Ji8@ii)(ŋb_~n$wQu@U',B|p:BL:ΡIX-+..4^b/\XLii+Xk/hcI4B:B:Cڙ2B+43H+^Fqq1eee,\/l VʇDAlLutSB:hXSY;lxiqKrqipHācۙT  mBȍ_B+G#I:1V .boB"K.'@jjHGrEQ {f9ŋO ֌!rcnN] ׋vv:0lQ[)Mβ,q: zm۸n 6 . r1mw߾}[WWac, Ǽ3f 8_>9sf) cr\43{쾛2ƢOjj/TL )-0ioK4෿yd1^Զ hW㴓a3~[ZZcrnQ8j1W׷HOv39'dYNL¶!ɫU{vr ؆K3gqBJ`H|ԌԧǎiÏR(,**Q+pk{7guGmM9))BAۻV۹{ ,+4MLSO1%ϳO?'`,MW$b˩tž\ʶ,]: N0$))0{aҥݦሏBRyuk,vi̲,\.{xXc/&,xnR9bWKJ:EVJe. ,u4p.gbXYcX j^zu>q:O=7o&11n}q,7?ɪUHNNW^}snyD$R].'|e"@ IDAT!-?Etw; &Pi|RBHBL+"OGF4>i`A+**PPX`A_]YS]́:N;}לDyE-g2cf%5;?>w!SqŦ䩨<˝O-jQ$zX6DM0XUD immeҥaIKK#%%F:;;yYv/ceݺu#NSU5p8piի,k0MD̨z2u` y :l˱'6n~|؀iX} nn+Lpk0A+/83^&Z?{K/fsK/#`Y6e2c z}YIKOӟ = gMEϏun0(NTL p;8Ut~v~Yɗ'Ga,E T!8P^7:$iw***bJRQY{"i)ax ͝é}ǻlRZZ;̳O㬳7 ԩa9kl=gK| +# kfQ;s׺:ϟOCCJ]]@UUeϞ=idRSS3j,wqD8^---RZZ:jLwqc:0 #T"zQTl;6"QǿmGMt*GoKDzp;\Cj)6m`e6QS!/ͤ{a4|/> MϞcr4zpNj,˲[ÁeYB!>y{|yEu~7H$k%7xOU_-Z w 76<;~=n,ć/epȂ:Bc:^wL2sZYYTu+++(#?6??;mW* ~ -84^|p4BԶ;yy|w\{ BD#aZHB04m,{rX˲HKK{aTU%|ʪUƽG 233ihgΝviƲf͚>K?N F̤3ęi(ד?AIqՁ#>(}Lt2qR4oU_j԰MZd +0:h:mp+!4 nW)B˟UMc[&ul0@ ^u]GX9655$xg̝;?mL$ cYG76h^ѥwtrDCttv& ivl{\zǥU%^z>9 !Ycp呅ا1t!B*+QeU‚vtInV/.)+ύ7^IJJ)H'_&vRU’C)/ϧ?s )7}˨ jSL,ST˧y桪*̘1vZ[[YjgԩoCV(ד= 1l,k֬!!!aоK\MEh޼\IOOg֬Y#ORR҈V%7p:0mcgcFt#b4M ØTt+={Q37Qv(dp$Wf(v\ntF1 v4{pWM8&Nj餪躎eYtuttR rb`- ۲()-c޼ضwv= MsL\WFq5 OjW&'o=]݄H:m<~wll̙3ӷ&TQor\(]K3>tMa* bv#NxQ^Z ٿ۷f2/Yxz/:RK14SO]ҥF[nŒVim/?-!16\0dddBmm-'⍿N*do\eʎO{{;YYYb;wc2Rk|Bb I[[۠7os6Y55S'_FK'&R2zL-LX9jA3 s# mpJT%EJ,H LEWنS!-W݀DCg kOj;h$J^| ,|,_V%Vv))} &++p8̂Ex{ǤۻnDAEKV*D('F5w3;k666whmCMJgSr'[.-]1JKG1od e6 iu\UUu^P0؏feP/睻1>e~NKd楴,%56`Z6icaOɶSv322hjj"##Z֯_?cÖ륾>$fąaARRRM $WU4ZZZ4p?cIJ2c6ucԗHGGu|>YYYh6(_@ݶ!1v,lƤ:N"HՈf!5%g$ m) 餧 ;Ls㊋L~4\.W|Zq-ۇ8N0hM8&0o\QUD\nפO{ڦpihڷHP}&7|3{Zwf&1`&M4,@1O]ܯdϓN拸:n=X~?/@3:P0շ|gg{~z7(Xii[uή.z{$$xD¬߰m۶t9Yf fW<%Lhwe1 J,)mw܎{W̹Ï'e[l(D>,((ؓ~tʥz15DIìiu0A8kBψ'3#@@h:NRSS)E6!ݞMH  x׋\u!T1`S~Go&ix^"aU}ᑨCDG`}ˬY͛6萟xsJKXdilXaz^(0pM5?oB2o. hfBҝҒR!m.U/@i =gܱl{;[ONl|=$ˢUUIJJ/4ï\x!@Frrfc6:8[o?xj04p7 'N@ќ׆_+Ku^<46,6='JCk XqOB$dJN7<=p`@uuc_cs:)C!f{|&>OPtww3gv!m;6^0-"Q=OQݚ;1!vrssO ׏H+ǃ$''JHv)++>DF(JFF@?~'̛:hu`* Oyy9Ik|w'_XxlUo& T^{heV9A Ђ q:zRf.7!O tqiڿ {Zb$;k!siTSvPT4Un_w|fqq:V<>>4QU ӲphcDVD1V`}l^9!O&1)EXH,ye6]iO!B•ҝnITWWǿFS]]{[nº%Nim< ;;]xvu$[h*uvN,jthoo'{N{HkƘ5v88jmm3Y,%, 1}R >G(i;A|}Ԩ"jӝZD蠎98c6vG:eY8N(NLV6N1l7/V1%u?p4ijCC͛Yl}hjhp*SK6UUUQYYd,\EYY6?EEc{RS؄mGZZ(+ϭފiQa1`Ja_2-gm⒋# Z+!( a&>zL˷_HQ]6w#-5d% @.P@SfNggV7e4m|>q:47??۶9e466xHIIA!ցd͘i4DP=YZpdՀg`'}hEA"_cD2DFR[["PDC䢓Gא#H,qeYh:a@VNiO;F;H ntm(Zޮ|6hI+OBBB<&:jBOMgg'lٲeLCִRe$PyyyTTT; `M(Z𰭇Is(.^L}}>4_mcJzعKT麉FN0$ aF|n41hF4E YG흽K^ϛC$ޭvΨLbttEǴ aH J" V m`Q&S߯lrCi9IȠ]gi۱( 'XAvvv|hE;Lpx:\x!196_.&Zw~{O&xr9El]OB!>z/iCFZvG^ 븏8p:Šp{);me&)/ v=K$*I +55]wv*htBK7SI{|KCD(6"u`ēVeeYs 6(>76MM3qP8lj?`bMMHNN4Sv+ ^;^V z'D^dr?ÑAɞcI@\{1 P(GN{{;y晃˓?=pr{&$$ħ~L$))LN瘶i@rrs󨮩nO.biaaOXYmaK$`K>M]Dr(n*=qrtBף);q[)ƄGw#+[!'߉ȇ.!+*3rꕬի(B@@W^Y ;ww-Z ~[5tE\ :kI*W~i .Ο;Ƕ[V:Q׮/Ҟh4TAŊ?1{T'j ;S2$PNNh4Re-J||<$%%(z<<M*UlJli?xV.)%*\B0X+# g^&]}` 00}=+Qh4Dճl̏ hZ\\\(TУVkZ֫W*]Ox̳PD Z-QQQ,Y/E˕+ǩSj6)׀>_eo_~7Ybxrf-fŜO4Xxf=ҒS9y#=Ó-[ ^Ǡ7<<){>ÈOT)^̭T w'E\Rr ̗C(BAR7ɓ-͛7O(;9OXX]oO}zGErdÙk@!3^![! xťϲi&fΜ{!'<, 3~μ͑E!Bi vOy ( iOﴇ<_.;|8V1vk@\%B:B!ē'L+???"#( 1R/;LxjiJ;BzK^||M7~G<ʯ<}:SҀzKoxz2f%"5҅xD}G|w y>=g'=g=IZUG?qNOk@Vx ҋn !1!_uW\Vy|YeG(^)>+BBB!ڞ{~RB!B!]Ŋ(B!B!ēVQI1!B!Bl6ˠB!B!(X, Z !B!BGB!B!D#VB!B!@؅B!B!D( v=ՔSxsTg;D[ӧM>Xܐ$ľ%= #Bi>=hvE<GCO5UW |.M!v |4#gi<} !(5oъbs̘>-0a5Ef!<! !$+6_ڴҕP)B!Dmߘ|fZ)X4.Cש\)ߨ)Go!D rⅬ e6slڸ>G%Y Pמ,*ɂABg4u|N7xj!jiZ !o,A+_mFle- Zˁo8WѩaK*d?dN-󳦆kI:?"UU n3?9LC__~0; zK>{Y|WM[S^{ ׋Sa[uX:3l@seť Lڴq}{~)Zs` B34VAŸ|[+^Q_:~Č7Jb=feYqt'1c1%yixzKBbÉ}X0(C}3fU9S[TldmkPXlũ39kN0Cf9,ɧv"8+qx6캁14 T}<l1˖-bl#SSد9^vVbr>%gzGx̙3:2hLRW6_fLƆk{yć9{D-lCJI9mw׬X~5'ImO;@BH{h/-$YBw(g oYc?cWL^Û^)3T'!B7@ZZZ>OT;Skw.\2 .$cDR:PV_~r[ pa_~LQdo⮑X5>w F~ $=?3Ё1v;d64z5i1X^ Ѽ` fƨZS2zm/fݕdqFW#z-dтAtXMZ/ƻ*WBH{8OS1b`P=ԶR^1}fmuLMF8%`)C % !lgH.7W46b⅘LZpJf!>OE:\`ިoX][)fqj1lη|mkXYcf. f,dn^<ľB!8H)llhϛ?aꛯW !B}i&f͚L8zw#8KM%_ ! YB!BeZ=5-$_cs= eh4p(|'($f !B!`Vc*'C4%B!lB!B!B<.*JB!B!DbXdJ!B!B,FQB!B!DbggbB!Ӟ={BլQTHKKdLl2b6X̘L&,srXsxzB!xz) Bf(*{\t꬗(jT*Ur۰?L&=P!B!B,fYB!Ôw?IRB<]̐y\jxHQ)W!]2h%B`?̮U3A'I>ROOZAIS[q-ш#ٶ^=>iK`wEq, (b}&(#)(JW<ڢt7E4O.6Ɵtɜ_1ƥ( uװL>jþ kfrbw*7oHHlD4)Oc'ՔtZtĤ$2_v[yɮ/NBv8m3֛6~3#8Hc>" w$1Hb =r{B!AL[ixߕFC*GIƱpmz/>AB+Ӻ Ɲrr!-doZro3ZvmS91 q-jij?~=#q[-ly-s.3Xt/<04Ny"'ϴ(/%kw-WfNI TccݻY~VB!An[plqtmcFEL*/׮^,\Ǟq9k-# 2VOV>ҾÒp]F/7j;Uz~īv!!7JA|~Ml\o d1ܛbNT)A~9nrfZ?]R╡ уb_M8%R2RC2.\?e͙81=~1e,K%MVIcnXcND7 jVS IGFS^yʽ~mSz!fmmzVr? +ef~NEբ:Rn_$'|χHqCiC[E|ҐdeJ}ɿ zI> ,\B5:5E뱇l[]qʠ%lܼ}V1u&l̸C$=1qZnfr9g'8!ٞ={NZ\|qVI4 0sfkPS߭pJ$Ļ2uUckʙ%ܲ6 to5a>%s?d O}KMX9l4%P U+}6MH#ߜqd*TR;%s@A!%<3`vmt+OfӒB$1Z?CrwrDasv~\AN6kT+y3s۪%7g#]qlVo}~iZfR}GysA)f(gȳ/6Zw}ɿ zs-M?Oj@(#Wb-\_RΞm:Q:㧐2IcVaT$8qgfrJXdJ!z) (0ϟiY%vM#ș/c_m]s 黃2_29r0-`L=)VZA_V,)I>mߖ"Xr|2M-G\Mҟ+قD_X:.sukkB =6uw|scvlfL!x^=;ӴMnw0>,8-s-i\n&"* ?u w-L $ZyVcŶ,l=F#cGJ]lɣkІP~=}9b ?AML/76c=ҥ;8~5[QgmۋЗK ĠeL4/S_>JViXFKZ|BY. 4 MLG&F-iڎ}DzhHӔ|7@+B<Nԝ EӦ3:mW=`"bUz^?{loOp_6}=pKǾ߮wa^C]o j2tXtl [U;!|8Fu aP1*'ξ)wn}F2 ~f[m; z 8gC4"9O yz r8Jc63A¹to4Q3|bLu5 {V mi>d[$=P&Oli޼ Zȱn Pc|~Ĥ nO1Q I݃*513xl^p>h]7-?y:4.< _9Y^gϞ%-ٜY:}.B>mѿMYέ/H~UCiON#w0OMĬYmCB˙l:z}W:U8Sޚ Ǣ-יaK9& ;%9`UZ5l7[,8pN1Ӧ͌xAW^$ N N Sr]*c{eVOY] HEBf,;LAvJ!|VK dggo'X0%Fp藿H L@|7k='eədHȊ>e˫|x-kWdpb9cy`Cܐ #Qc09|:+wy؟bWKy)"nsZv~ƮBݙt%7GSg,S|;~_╋Y<vY"W>]IJ)m`8ۆg,~"bW2ljZM gә3g,u..dј#hEgYlcyl5ҟ( Fth4ʣSPƎÈm)y7=K2͈Aj]?bv.?"QB!jS6j)!3d2=L4OD}5d逸\΄jPOP=?i[/С.DW杞/PQ*떹{k~ɘOi_!cMOQSKqĻ_~ekX=un(oҐzi *Z n=K^HgT@#'wmCywեi9iK`g8PB;6~YI+T.n_-@ի8( NY]k`LLh;{TYդŤC#2oS*gRTYW Z3z< ֧:wD,X(ӖDTx%.FZZY Ǟџ@i=\L3ݐv9愼7 B!B״\(Z)fs vojg_ÉI @*WpuFCXܣcCQ]e|83HΫ"^)үNq#.9ޜӔ1Gp3 %b*`E?_Q,ruR ĉY/]4ӧOaȥ2jyFx+ڌC?FqhY[U}WpbQTt*~1I*5n٘4pʀ=Nk%YKCZ.^ I ǘP9'үZq2.(RO0a>IR4,fcMy4~_~%5}tmGxt칔>cϒJ䁵̟6OǏg쿕H\4^MDl% p97p &9IҽgпmQ:G"b: (B?-ǘٵ*~5$I6) ,Z+*\K4>-Q|W[qԁ_#+ҸE_3uS[q-ш2?EEQиهj{~`5rrEAQ'7A!eB Rc~ÊA|2M, O H81+CCymW/Fw?K\_C6%N6mxs[I=h~P]C mכΓY&k(Ʈp=x,DG9h1gk8yۉ>V l S> !avxGw+c :ӚpjaCی&l6ˎ嗋<<]3x.#^$!)$n|NjN3s}Mjj7s:"?OzY"o5t~kXe&g_L.rnDrǷk+a)=7jFb#IyLi<;uZtzDүV$=1(2_\ɕⳲ|Wbx=L+M=m`Æ;Uҿו ;y֯gշ_үQa2xUؙf.//oz1mFz!.cBVA]+i$-]Æ X[ }*nwڣ2OgɏٰGf,?%Z3{$}];8P|Z(l1!ڗ"]g3U=l-֯bRs/H|=^»z#BL"D40{89h>0Lj+0Ajtpg=+ŌٔF\:MjPaʀ.FO '"88M'H`0cZD 8}[h - -^֣ LEtF8H1QȠh)y!n嵶 ~bջg4acB'DHA6q0kU$ߏgs"$Q~u5{׹| Тjiʽxu;{oʉepmkY`_߈vVk *IMb#Aez̄V[)|_` ~?L&O74,".a9^6oS{4~VUS~yR7Ofq | ! n6d|cOV|?!cގ0n_ZJ}y峣wn_683U{}q[6v_똓1E;{gGx*8ipopbbG=?*c1S]'oq)EW"k#Bx$1&Еe8;N3 vYMO|V.KڝtլY!FP߀Ʃ0^ɩsfT~u4=:(?v@M6fӮf\Acΰu%_[[ߴexehgBhčy\"*kw}uz3ٓg˷Ϋh9u+lu-}Ƭ͑t|͏sآmúJh`l|uWe V|UF&1 ,q7mez)Rz? Za~x4 |* Z^BXi7Z=ܸiƝ~_0./mS$"fbILinU.c8e-G0)&nR[\|qVI4 0sfWS߭pȫSm>_7GҰx_\s._/BR{JDf5b~)ƘgU"g_t 2bx%O¥U)@ iׄ)_kjCr?goz}ɌAj?ic>t? RmZ*s*Ɖ PJEBt^W_uֱ4'c5ku5Wns OMu;jۮ8U#^yl$k;ފC-T/VvZ~_3K˛ĠGG&L_{Z]>{|1HL+!"~yخ,˭D$C@2nR FH\D (XH8Ksi< {T NK}ǜi$8\IPQӨ(L{%'qr=$I-n<s9eK=m!}wP >?^F{_5¹[QG\{hif\)%Rq9%bv|oK{˯ ݽro˱St\.й^yzhc{ g3Oe !ٙem\XGXg˷ΣZ'ֽ(5r.뎹y+EX/aW~53@{S; ?I z1č9r0-`L=)V*q>1&=$s,i%B3F{ d"vLdzG~k%'#2Ԩb/xvH)}ZSF,"ڽі{7~f圌5bN݇Hsc4shSB4"+၆46NcٕUlx?.3ç'*ȝ_2b]׬Zr]qj41WztwF\ 7CC,]Wuߦ}98,ӗ#]Ąώr3hTAX )$''jdtdw7o\b!]YrlI?cΚq?\y~Ftfb<;:bb#'wU 37 2qpdK}VUm|50+u.:y2ݕm+,w dWF~vk W2SW+5s1MbcAj{l!" ϝܹl0M/ٳo:u3q1&=t/%lR2h%BsgP}{ զ/؞ ̧f/+6~ZT/*uFЗgȆeze u5#6tՁAЪ;]?C|,=P$-fulfB)LN)f>nXՇ^??7:ԅr?_H*V~O<1luOKru5 {V mi>'qh א. IDAT׏+SI:O})W|/Z D!1H<[j%'Z~!}s5z[ErħTM^7A\_P@?a4NOi@}cͫRGS9s|Pm?C~BLGg|ή 8Oj2Ck1l3Kcǐ3A;oCO'B# ޥѨC3< ݞ^I/BB #Uz.(JGnCETRDKB@ ԐB mݽߏҳ}do93sܙsgYiNKY{IFH* IHH㈢xNCKғ(gI$' wa#cc ~W1@~}O{)qk%{G ?Lw8v'ն~4 F νbV: rS*I֝m +ҶIL4TE%)po|@^ CߴVVL)_/AzĿ\NaذVT`jNCT?gUZ 1~ щ֍yF|:36bEmG _ҭVk a ٚ?_wMW - takhccל tkVCp :mkl!7TSRKG#2. YW'_ -wfhH5ww6δIs˧1~q>dS7Zפb@l!l,L$lzNYyܲJ+gea~'ɺVO}>y?۳nן83M\"CR")Ӷ&+բ%̧z W WhvN>Yf4+ŗÜ?_LOCb"ԭ#VR{RL׾\@h'V4͛ŁyK%p! r"t}GY;e><;Y% 錿UI@ %{O؛ =\'8Rw:mm 9Rk$=΢o7hhg" ;羴}f۫"wuLYZv\}6T1uw\Vt2ޘ 3Z7%z%&y{QЩI[-cl/콞4^"mPUfmBXq1{ۦszmY{9*f41lq+Р#w˱K4BVՉ=sL*:`&q.v4Eodqn .qXٙ5M%67%a8i8IlWnE 6 Wִ{-8h0ڍd4|AmP[ҳ;n8ZaP TF/+~MHk7bTn2W=;GJBn ފ._9#1* _(>vvm%Aqi͖O⩒ʦ GZ {/96#Swװ8j˅q2t9f"uy:HD^MµiuLqi惕4I|d<-B5MVNzn8<A7E`yP Y #B}2S] ֽK"ؤq?<2MH=bawN@|e/パ: Wp{af 1WxTyہGIW\E 1vFs=$rK\luKU6%%iB(,FF mWøp ߿!=ĐT}΅gzC|'Rh¬F;ng;J:6TBMz{Skq?Y 7^E8(]_IɊCee4sbEʝlB75ne&0Skə#6WKRl?VL$HK{*ѵAXc_:|y|8Uq-+9n6,ԑNsdæ6x _uC3s=\8E9aI3_[wMm-ѧ|c*a}x]oDp#=*+OȜy}-m~TVf|2qN?+?n K?J ܕ|;nӥ?`o^n^y}P^LY !cRRkQ ]3SK(& r j=IY;egNBmb㯢5J/n,mQա v 7.]_<d/&ɾ^ tqG=RN:}tsѩIKd_ʉQ$i<ϋ"igf b:'1dŜ'у*%ltq(CH ryCԧzc}+#XצG8ƶtiD6->UM@OƍmP#2E>ɝ1:?|2vU5{FNyTKW|1Ĝ\Z Le^QY[>ͩ8>1lYw>X:@Yjk DACh$ kXr^Ļ/dO$:DW7ny@$F]̟c䰟H9j>n"I1ɜ]0G;BJY썈u>OSot!2e,Ӗ2 WlLq5n$aEA,hQ"7qv!x6tOdJ)ljkpr*78b.|61vJ5fB5m:]Z9`^5@}FշCcS+~eaJoT?ݺ?nc} GVvv /S^vsYmK_)>T.EWB@ˡ}b\iov{K"I4,w&11$]@~jM[35zkhLl. vNͩ]|rsU<~MrJ#}EϞMqP>sg0_HKvmW:ϒSK٣͈:fϼMl<1 JJB2w9_7/" X*e_ 9;B\n,{DD}Q B>U&x:荲F#M,(¬6h.!q/!lq7u(4xzC{.<ڍJ& j1wyAN\|X:NGmJ|u@A ڎ&3`oۉY֧.eT)¥; ~bBA Wld?3|0u"FBFDN4jp1Z6JG_>&6k}O\ܑ6C61JzP)wڻy :L]7fEcz]uMy-Gozoժ坰, .Q(+gR7jL)jxߋfpܒ68WVL]:8lƘr/LΎx;K;olǰ'Wi3syvqTo㏿mUP g+yRm$#R%*n?C}\ۉjEwy5zېt!d\#fE%zXZ<֠RdJփe>ԙo_d8k_-AR∏Mucs`uNOGK5GKbPLy+ZFv1e]zHFoc]b&.UJE&g\Tɺj$o^Г _qx3B*qizRcS̭'=Ƕfr?i,eM;[L=L)Įv"ٶ1.yK-X&OSG]j^ݳ %[$ke5 s"jH_.~{eOدlGl]^(,@ʊMy!>2:i ˛"+<3jAd(J0Nd 7|, T22!ג2u2d$Du;,"I̎_)gH=iU̐ClpKA>ߵ9v-𳯄R @\u%=ўNe;n9.cL;tP(Z2釖L*apߘVI]>? ϟx)tÏ<ֱ%~$PsD|Rpde#w"w ~ɖp&@G엀 wwbYs`o^D{O">X88REKʜcJ,gģ8(ƞIR`V% (T#3kG{t{VjIHHHHC=N]¾DI-Ll`s3E(F9oc?Cԧ}i/N=@;~> QZ-Q3}9TLi|=`;.{<}: }"z0)-rʤ/l\+HHO'.YW)=>E/CW}%3Ɍ9W`?`ޚuɺjXLk 8#-,m]o0ޛ͡ \Cد\ Z|!S?lE{"s{UH!d*2@0Vsl4aED^3Ͼ7_e/GQqIɘX:emÅkp^]Á̈́hps?H:Ԍb?Us_,krdrb )˺*^Wl:NƴI=$$$$Y1\bߌ}^10Z)+PgBN!XLÃèjjJա>mdb*}GgL4~L۹A҇A?e x+StY6>* Տcg 1--3uҝ?YV/LL7ۣʬ 5RTB%wʣ Ӱղ26Tزn02ZtEŰ_r½;k-ϙєGtMu0FTN}:+j#f7<7ÒJwQsnFmƏK⦪@煫uq`b39BLe5*vXڹ0kgFe+jnLQy3&nn-Y IDAT͠&hU'؈?n lr:ϽC!>~eA0wLML0 5?%8w/JyEabN) |قS׫ I;{.:mfeBC\) 9V΃ia_p^6v3"cЗyg&M*v}1s<* v"5U^qr~:!H>PT9I&P.2WzpΧSZ2no DS2G|ur9]sGH"=Y~"r>ui?S ?Kmtz`ĈRaKHH0Xldמ1mUo_©7^=^漦gDal‚zI_F3Ȼ'=yD-doyE.VQ rLw0;O/.]x{Z\k?r 8 ~%[bЅq5mxD͟ /̤IK<+0(O3Pb$CVd' ^+pڜ܏Q:s.uEt8=*J:(!!!!!E=DToOG=|ȇ1aK5+<+0A)ˊE;GH !ٛ9EUgrqrZʽ<_/.NI%$$$$$^`DR.D=&³)Wn`te)im+N6Uڎ@BBB7/2崊~xO*92$3# gwpkחFHRm ޼xN>ғ(7wH:$H1HVo#U bRw jwyȺ aY~oV|ܳ,:Ҟ)"O !鐄'.p)|=bHݘseJ? t#>-N׾iC8?2@77R9X\?兰K[bO a^v,[ewQXLm>sK#jFvL.*HzHH"ëq%H dl~ Ệ&Rye ީ@f5iJ'!!Q::񍄄ċpo,^o|gŔ;TTI4VJܚ7^<\t; ;ГmDHaU^Ƞws~AI%xG%~Rn2r~674 VeTIܼY쯿]*xl9R9;"V ("(N'OHYPh9D6gŔ ~z=>AuvR ғlο ri%!!!o"+,}64ڸSϙe$F_!C{tu&t= l؈b6%jf|=jyY5#$^_T&8tC $]>Cw~5}?@quħP:,x`x4@ OwH-ICvh˸f_ݞ|-ߙѣ!ݩڠ;6_'M-Lڊm IMh]U^1;9^3BMZ%R恮@׶92gZ:b7ZYOɉ"pI oލ‘V^B5]MG>z;7YU{ 8{yldsǓb0$Ŀۏyd<}6,ԖNXLMh`q/~ɯ.p;>"{8Ǜu èB()RQG3 ܎(21헯l/HCW'OE#knj+Z5q6X0PY5` bX9#&(׋k80' 06f%ɳ_,jhN-sקqWsn0 Df+<̩# hbdM"om:ǕocX972};AdHbfz1+ձ?H*A.9.e+ov೬}J ݬhj{i̺E! hbSɈ@etqgԞ6'z1y]t 38J[|VF #ɜW _R(1,SjȨޭa,w1IJ}v5:3 ~2=q꾞=˽\>*ݛԦ ~~&$>+rtF·^I ]˘fX{45!00-J'Wyѹ^ |Gs44{m&!`~#)ˈ#R,=4.߷q֝Ϋ4h4J=o$$-dZ c=+ͪ(#efFVG{gjkD3p6`tڲ )n⍇W}LaaIC1*XDI6G9HN+'=\]q-!h@O'؋GL fʹ八;M;%Ã=| .+:Zu$J{FТ7WWWǜ$2q/vr_Z!Qe X0 ,{'|cvs-h3/Հ6#nŠSt1{ۦszmY{9*f41l+Р#w˱K4BVՉ=sL*:`&q.v4Eodqn .qXٙ5M%67%a8i8IlB:܊m"@bE5&̪vcw aPmVN۔ZzT䉻wȆg*\`eTeӜ#fTkNZh(qzPϚY:x&Gc) ^W̜y7cX{ya&"3%X(g4!<:Qb\'#2g^#s۠3m"L1 UHLULؒB{q|rH{UCA\~3nsd"#]k.&s(`H;G]Fs2BSR%ow3E(ʊG{My0X0BZYLE^tm"^%ɹ+ Kw tU2(,wt`H5̭~UleG-V/bҡlùqoF %gVm_CyE2qFLmMi>1[Hˮ7XYڀ²FD;ͫdI6G9HN+ 07y&7/%]\}&uRu^<>L];XOɦq#Xr7:"ZePdP;*)NXl)[4.4{浳,ƘȰo1!+~O')DYG[}+.";v##%,+fw/NQYNZ"0 cM iH-S٪}߻T?{0ǎDҶ 21uy?{qOփWz1$ά=iרaR>ylY'#Xr'.{[U!Ǜ5ne&0Skijs%-%/N:O{\1L$$*1$ ;V.11$]NzjM[35zkh̙>1[]d_YўcDnDu_U<*{Oa?W 3qƬU9` vƳKѿ!.|%@部ԛ.l;L{yK9=dn{̟xpi5;1F{\M4.lX7i(ef;Ka]Շ7γdw4z Rz3YiRfƓNU*T**93.Q2C0ݜsVr|isWBƗ'hCƁCP  oiIͩ]|rsU<~M8" "yׯ/(?$#ٜ.ۿԍx~S:@FȤad'bzz=}(;|:/ bU%#>]*Jo1S9'G2u z^u*$lzNeixsAb:SEu8G ttɯtF ˟S9w]7"hI #Ѣ6 (]Ux)$}0!߬Ү|sse`Z=_sW^f2em]qY6c7%Y׾Ϯ2cB{-Hr0*ֳ/ԚC',[uԀXFPd*zAOR~nktHmK%!طűm)Zz͑lsߍ(X}g|>]yĻаi2PuR`6vAiԣW; JȭcB;h(rg3_|+'F ?/>̧/tN|=Gc2Ɋ9ObףU%8S:3<*o.,{ 0{.n$iĄab ֵiŧm㇥(iZ+McmGUЧǓqzE>mCrv ]ozUؔGMt8OA|ߌnx.U.f\ m.lV>TSxX;4798C^;πV}.D=O"(l9]\058=Jp հN!z?3ۘ:֥{߳3'UqvkDDd)NEX%\#*S%jVlL]Z)ˊ4\*W}WA~:h̀5є3^ػ9'[ǍY"Qa$Zz,q. -cfLLUAD%$y1 FaUJ8 1Iym(ϯ#CnEUu)6i'ew#}=Pb;W8F{mӮd?F{Ht56Jŵlà0ԍ^WX,aj!A4`(]SL0{7Fu>_GA!jKՆpSA]`ϥ; ~_1|%RTތgzDMߺqØe/ACN4j!ٜF sBP]u ztηxYCʴq'ܑ6C:y=SRC:L]uOY4sW~][yɥHIHӘn6BOfL+g I!a 00İcpWƪWO qpn޸{ e `;.{<}: }b!GYq Z-:7*:ZoZLrX>k ]5z)hi]$R*z}3[kgD6(mWuT/e۩|r$J%|0߰ZI]4϶G+LJ2鋤[ʵܵ+o305eQgX.=\2hB>o?&[->}%3Ɍ9W`?`ޚN)mx[%YDfq5~C΂d!~e%=Z_Vaؒ)پv$l?$#ٜls^z=,X@ 6:,_\(˗_RNc}joOSĺMO/iO;/hPu!] )bibVuŚիUE7濮$үof:uɁCo{{&׋(f!_6ݚ~)dĈ_:...١J1<+T1` 1hB٩b 'TI}ң^:zJXe@QW]3$Ԃh@"DL3(M} "u(>v8V⎘U 1xN5QptT{g8hBDi+J)ᡸ`y/S2s﹋@2fL܆Tɳbx G[.f (ɫb^Ŕ0*ԼVAuqA19Hf^qnZ "5;SwD: \Y%M4̵b![ {2ˬxWLŤ[(z1bu+Qb!b1iYfuE?(KK$P#ѣQ^E3NlE^=tx9Ő|) L+K#d Htuk7m%v8bd#,mALJ `\Ñ>Ïu/3TXsY5sfa_`f=>2YLrFga ?_˻:d`[ߠ4n뻿†G/bnh0}  fj0_VIqjbcFfM)?i⥳iiEێI}'$q7ʈh#H!bzՆa il jj5r?ÙswynM'uQVϑKڃim1m\*ZbP">,!=pV!H |6ZERAHHHJBL }?&< tO;Y"M L&-0AmSg4TpC-y$$$$$ZişO dgEƟNQpO&iJ iJnFadI,!x8C3 e$J(aPY$KEf6l:;J> "͙C?'w1$oy> ŔK4.&2L1be(b9U׾\@h(OoA ȱҎ6@oyn,D.I:4_ IDATɸM0dXWiû[|yx1F3fV%A(#F|βI6ڜ 'C$埰7.a"p #d@CLLT|\!]fwc)M)Ѽg0U;vs7ffFƑ~ǠZ~Hx(i5ܑ)G3BӽǫL FEÚ ֱFӣg[S g|[{b{Y>*@K$BRN1h[́ |!=}>*#I|d*f.6YyHJD/- W$o4YƁm3!S$ڜBIW*(JN+áR!HT wa#cc ~Wr{: 4TE%ɷy~e.UXsk#]΂!5%;)],m>0khBV>.? !̛.SlJ }]!FgC~_}uo ҈hh:9 `07 |M_3qQցAGSs ݬϖhjӘu 2w+(CкRZ>ün/KOp;!CO)c*.#o ?T}uΘ/9f|63V1 36%gJ`kߌAo g؀p{2'C",XO|b4GTqN\{f7x1E8^ֱAU'3W1]uW2R^L-^hy-{RJΑiZ͵Ͱ*ZsmnKt>GeCQu\4em_9mY[,l/&nx3A K{c3kodd =PFFFyB}KYU8eu+S9Ǡ~'H7_L`M^2e 9[R2O1.㾟Π-y16-F*xڋAe j|u0JJJ5.Zz@2Bྡ6zT~~Tx#]'Sqp0VD{mVK/#<ˇsb3)'F39gbq"IF?xd#ofΚ38QΈ1iCٶ+=p J!5UoA+3ǟQHLǎb&v5F:$.cOEC]VQaa$hVN/ŢS8w'pJj0%eʔiyDntLd]vqdJ*AxI%Ѹ(<"?6v}U5I*섈ptaAy / Ќ1H#w:mH4 1{&t[]lJ=<:f |u"׮{dFʱ$,H:fkoN<J%4WbO!@,`o\]igX]кgPFmfy) 埦lk6 yk^< v`RN.b+kٕ\6l.FFA{OQ65u+I3codd@eRiVrN.>|.s,"{QA'_BBu/ 1 #yD Sdə ߢ5#7 O?*;G$$))1  IOenܸ$Q1׎Mm9]wc}# ӹShW8@VدжF1O֍6#hPMlnQӠ[<{Fqn6/W(IRgF֡xlε8` -/3ktSJ[MF3j^sZFow~[k|*z2=ΠvMowRI0@760ҿO~#KT#k$O]Ũ d%S,[grQ 1 HFBy#^uG6g|T!,Fno3u-.CB8i pLyEed]nGrh[3~4ZSpW\TQ^^Sv0ujl.]GgxCOK\MtפUѣ0^NQ(-&`NobCcxYwEfGezhI!du#douM ے(g,GCy-Kc.dm_9tq(~=;FF$N+E!_RQ/J1”%)D.\(M' $xlj u^f$3Xƹ.Y8y3UUdf =IEx؊\DWצ-ۍ\(j."0g˯"d̻c[0DVq~#QcC N"Hw =edKi?†_逧AV.6;gP*2S>\ИLT,̩Nꁭ+ܾS}8ty''bE~22O{9V7r1>YldE űJ?Kj xvcٵiPpN½LAG"sKHh*~ M"깣:Jmo*T 2~.+kL {4U{5o/t;xW"!0di32v')z@lR18Y^6ګ,ќZ3 VI`7X`Ȣ0ruk.f\mLcr }h/>>ǖ YVmJHC:Z407Κ͇XH?q0vJiʮ5 ݗqt>\{TSM942+"0L@䲒„&rN7u -hZeSColA۷7mkK:\՜P)!A~/idg7fNFkң7Tdz;<]JPs5Nn8…{VQ $m.G!*3 .ѻPA:S,:Ws _ I6O8m|3`[=4q.6 ykE&1Ǥ_[ӯܽ\ 2w'O<=8кzL!ŃuK֟;~Z|mtX[o@]!^lp>C굅S7p5ŀ0f-'6!{?WR q F@傿}&Θ@MʻFOo.Ϡx?N/2uSs"._3u}Ƕ\{Weys" J|&:n0~{,Z_s|؃mtle{d]^^VTv nʄliVXCD$qM`|>b\%>{R ~_ntKA d:z;cvfGYn$"wOA&ƾWǟ0ZƌnT~;[#16ftD k&-iϰj|g<ҷUehECrOt9&ۜ'jsQMQXfdH$;d)r_ '| ]W/uIo^twlGK/ӒҪܼ {o(kOk8&l\Jܭf)fOrmF]Ly/7U :Ӄ1cgʂ<+L;|MVKҭ,,/[{JhKϓlsp>sOk-.˘D/ʸ@̾l?XWF{|1ⲳ;=C*بKҵd9̓nzR֖ Qw6>sVe8Df^8ug{lRG:n5&n[KȏiAVK0uu&m>cUpT)G{1!& >ҷm'u @[1`%ږɕ&sv13W;{Azo1tϋ7]N c.&7J{y{y:Qh)U5`ihf5Jzv*pAw{-6őv}zbcc uEVUǝui[ٖwO.¢>v wS9t}`]єH4ӝI r=)ޫ%K(9C9Ns:V?Lk&-қ6oq zQAcA%6u:\)l>%4?%ls1Wǒ /:ٳg6mX|Ӊ'>X#V*L tjI/8}# pS7^>/wٳOC<4]af|\ a+$;3{ EG%$e \KXG. }*v-(+eefױп]l3/y3ls2mfE_QAR +++Je%IJBlߴ U_`Ν,]Ti%tPFRN($%&X mHJ G&TwQBBJi"JْeltlruyxyQgdBoRQ e{Y7(PJtr*ܪ k/ZzNd @J2(o<ʑHRG%jјSYEdAєq5e\q ljS:‚Cr>_[S3o[YCws!OmglIGr ¤g[;3vg# Utþ.s.#ǜO**lsd~4e$Fi%t$OŸ IBiS^n _,LRT MntESМ"GO#Y E!gҏV(-iUe )THTװ%2.t29v2+5hrUD` Ab5{⫐@W,XD1Tk3BWr6GFF J Ҋ$@[RPڠtIcm|Jscc奓Zi%) p&9- ;`j8 $#rca&4*9zN +ǚxr߯ >/ojdt=wDR`$?ƴ“RVdd-AqGF Ld d/##cVַrC6GFFGTN+CkBJ |)S^VdgA΀@ֱPK&h"#]TKdUUy8=ݼ'o!6;vB-qTkt [)4)h4R?UOAj.sUgB^g%PSn]tc"jxWWjPʼnTZȽ"ѥngwj9tIrÝd=mPFFFFFFFF8 )=yUzX{ysˊBwkC:0g_<(S| Ըԝ+ՖRԛSa%?f<( 9޳Azӓ )YOBKlf.랳v)89>e&#_ѧ7vtķV?h粮Mz| OOF !_mg0c:͡RBh!s3285<' YGq\vX=}<,.p5ZE?a6By!&>Bn @FFFo@Jt ֥ݰzj-l~.Ft1빸)^X6Pρi g}^^erPoka1ߢ+D]Mŷo'$ǟ ]gXV4\q}=Vhd_@$={ Zd)%KաX/sz.s6`0,q3-ftBdu_|-vE~'/(?$jbqc5'a][qS/H?,zg+:4!{{j?r}Ua% k" &~exW(_C1Pn*;ć5LҕO|_-We*.a-vLj!8$)%+<3Uh=EPOļ>"S(cѱؕ-qQ;VJDM4܆f?E^Z;g+,'ThHk*ބKZC"VrVV"4#]2NĨS%IqjXcBKQU#@%\*zK똼Stu} vpn}4!6+xD0 !tD+g_1dWy bU"XB?Ɗ_;+hK7DUUh=ի(QbE[a_&q1G41yQ(rTCu.f]ɶb-B?"Z1z&^iw^SZ/LE<*իW۷Ett "99Yt)`xڼnExf٢rBvZ<?1q6-a^zQLӉǏQd|hT1u'bo2ɒF0[ϋ4qZ/S\ /f<\222Ϗʐ,NӹpQ؈r-֜ܞ~X tEؿP\”xȜ6T|^ATQLKw|Jn1x'VTGDdf&SE?'lEUrN2Ņ}\>4+B2LBy*6(Ol-Ћh"|1C!:M Q]K7bOVd IDATۊJ.84 NiVW-+NL]87pu)',_cfXzmMacuk*GWN")v+4_^I?yienxKc’HaD`'~tDw6)@J";V[?KJEa'9Lj[CDB!QIش.Rij~!9$~ν+u_G ?qN+!tOSV2JFwZǏ ^/VVYYYB2e? ]:("BO3w,tZz$VZ!٦ϸ<)'T8vq\d!ξ-ʸv;7{"Hؙ]Mx[ytfw$$#2D}ie>*Izq)1JhdWձ"wqHѦP:W] C+i%ƒꮋٵDe9=hq*gڋbJY(ZνD96)_?ς*((H1dddd `4λBٰ \NȶFi-2<,Atn, aO3 ubC'r,H_]_?B.\;S@Ӌ::qYL6_v`[]_ێ#H)5#O5#R( T(+sN+sg> u+S W[e!˷5s>Ȗ1&үfٺ;T9VlQs5tcr(#ϱc6{W;b4$q3#0ert=z鋗3kYv;~{PQ轗o֐WpR^̠Zm~HUG mb 9l?JBH[/d[y+"a>jѠPYn,#=ukDkrNƩ#՞qN½LA͇"˙H4dz3uϞߡ=ם[愾U|'O|l")jGaVތ#%:$I`4Y:CW`߂o7`ГA)O]K}"7 !ȊAcTPpfjV^(VW-Q:^/1xEvsGuѕrUUhu72mdr]l+W5wmJäQګ7 ğh !KǶ?L?|\9f4NH@d:Xt1omc ˖{]cϜmEiRybk3a ĞIX^sVd/؟g$" O1W͉w#/}>Oתv~>83.u|΃7U,2ei|* d3ɦ hP%6۹jE]ozex&z#cҺukZnMV;v,JҬJ.Go񍋘G|x ThR wrf@2"䐍,\Mi]`;˙@ڴFSāsQ,†͂) v:/Q]ɍ"SQi U =TކĻIIB@Q{X22OgM\oד=i^"‚ jC굅S7p5ŀ0f-'֟;~Z|mtX[o'1}k$xa_ K1` $\>)r6[AT RvhJlaU?]63uIDO#[*=4Aڇ꨻>X$gepmsŁC|5mzQqx]DFcF6T+=;{:ӋdݔK'L@10űm 6מkYqǭ7y3-ל85&aVf+7C 2f|0/ot[X27 9tX>-VeKJ wq/}X#,>Ӣt|d/ڟgd&;dubݭ[ܺu[!H!9ߺ9?DF& wpZ"XKx{b j".UKSEg ?:Ʋ# /%U8Pn?.phIĪQv?Mte)[# R<(JϟϾ}[]*Ѵ FO' >guyLVN8J[gIdTT P9 ԌI˺ƺof2sLfΜ ]ٖsVjW$tĜofL3əip*q~Gӫ7G3Andy+JΤ{oɒ ՘m-#?ڃZr,vt? T迏i};C9L =}DO5JǪ"&2=T1]@3X1o]ՆҎ~3otFVw+V cB MP7alʦU}QP^ׇӔ+Ve8Df^8ug{lRǑӜZ MDzb+FD2֖̀_H`}/F׿=/ÂjX:m7-a'rKJoڼLā+E?cr@?lmlɻ>%4VyF|gmڴ'N0x`y'cKҰaӡ73P!mHغYu?[nF' 2ٌkF⶿IՍ"ũ=,ʅkMXe?[y,xefs:zEǰSc8-XkWZcrޟ>-x}| YdddS4Tr]-[Yʪ-###۟gy̳EmoNJ+*5G$O._m6ަAx`>UKm,IT/6|忥z&!Bd_Fa]D/jۣLܹW'?y3Zޞeˢ1h'Z!###########0LrL+cVY־T* 1%J_]JJw_￟8q5o gPJ޾P2r .尢< N{Uش*̇;ZI/Ņ;IILݮNƾp/^iXJ^i ammKϏG.???quuLFFFtV?ҎsoDFh20ȧ.4#0tVoPvVRdsL ѪS/&(~%QRX{^B툇#"Wu<2Ws:E1ߖh^PA^591;Vr>,$Qӷi-V_ř?3Kn]it l;OFFFB~uQ`[+%ˈ蔇L͜޺gԸ!H }87+p|}ggF HS y}y7&qpJUĉ,_3t썥ekv|*O'&Xwi68[H*Wq+1eQ#eM# Ϥ\6̣qd+L>7xK:vzUC#;-ZΏqd'n8[~Ͼ5-}Ơ~mp=}iU5SZR=u$Ee`bui773ncR%ohz?Ǡ`˔c|kޡ=Lbf3Vl7\D]gŴ1k.74Ls鼫p{;le .urg0}"3qû1#f6ǾS?c*?pw[% oVShy7%WyFoƠ73l@[j=UΆP S.M`Ucq7WǺG ܧg߮lWvxBܔU;d*+OF |of]"AU'3W1]uW2R^L-NG-Z}^>Rsdh%zVsmi3\{k,Yl[dxkkW:Ly9v|J^ w[A3Y J9D ٘ѝ+,}0MTlo+.g %^[Yh{8+O_ϙ &q3A/5/ͩBy|HS!ڒlld۠l*.I@:+=&ds&DFFFFʵ24- #VUFrz)k,8}WUk7)q/SD0lnGWkCٶ+=p J!5UoAI/pLiV⡃XtD]EDŀ2iNP|?Ѱv}τ.t˘M4GGN۬?P\t̨uQ0}w֔4nj^wFl),Ƌ KҦўd<*Gq@6#_YBs.XS13 {Wm8.%Ql9 g('d?MJzXg܁HRﬡQt}LgWcC1b;Z08$:Xtjo2N~趙Ȕx=#cTH a7*O j^Ќ&c*`ʷ'mfi\ǃy% =69C!;dddddu"N^+#\9RIv ع#RI5`VUtnԜ1Cf8KH'96x|/ۥfbd҅vS_Hfez8~e_Y+#rr5]\ˮ2̴dswi44 =-~<${Z~2^VhJĤ-[3aZc"QzҴkCv%x;pS7!+Xў7]cenq?3[9 :~|@ wN?k!\ԏ9T%(6YAC<FyfJlPۻ.XIz5GfZ$yCs G)L8+# HN^8tٜ7Rc sqHvj[3~4ZSpW\TOPF`>ٰ \΢ zo\j^&8&=*'NMv` #:q/䯸L5bHIs06yYSمԓ<s@o.gPRAtҌXa6%]E;׍a}78f IDAT5lK*6 ubC'r,S͒Q&Wf  8` əmy,!e-\(IMV=!!4xpLyImIepD+Mg@]gSbܙ^ʚvW;zЯ@Y^ 3mlu!V2Oɍ c^P9ӢSnx%=C8֠g9"/Y~B@&DIV'n%+##VUhu72mdr]l+W5wkJäQګ7 ğh !KǶ?ȳ"W)Y^PX |%poy~z=H}Y7rɶ1}e˽./>>ǖ YVmJHC:Z4V{VˮHse:S5P r'Tj3@^L>@*ɜL#?P*O[Wvw a#%5>$0D}s/♪J<܌B` +)UpSAYY9{L,YF]lzMUuiFWj} ;MC8#YhM|T*'V8UP0k*7y% =6ytZedd($sR74}6}<sV((TNZg]IBOoRt VFmRJSj)x2jqi R \y-KRKàqt=W5bّA],*{}{Ӷ3zPe~hLqt&}`)G .*6C||W߂ӋdݔK'L@10űm 6מkYqǭ7y3-ל85&`SmC0~򯄥0icB{! $F\dӇzҖ0dj60E^x`$:iPh΁g<ã*@BAzT) J b&H )fcCHf̛>sg̜;;sgln JD%sќ ˕k\߯66ܹ*O/KqkuY.ucJug}ՙ=i'kPmjfFK A H2Q7vb"SZ=ZuT%c4}y 2p\|XKVu7A4?oVn(>)y4}tS6mJ|8p 2|ׯ_W˵UiNέșlO=\! 7sڕRr2czF(;& Sc1' cAQ0*"r='RKəT\`orniдrs\3ֱ&I0Wh~mcks@I"a~\j$?3upD۲pj-<rۦxyrCFXH'q(Mw[(Lnۘ8qvMn2l=z^6_ͦrp;ӼXd^nWiY%GnZ?1q,{CXp[ W#\E͐NȮp?MB3OL<d{n6_^<>gǜc@&^m'w/'xJ pYs55>D$<6\ZFV#.Id¬_lܸy V'E};_4/NNHWgs0l@2sNJ2$S7Z}H;3'0l3?=cbmƹ)8ĉ(}OΕ2\ѥ gԏIzv`rI4Htb꽺bH!G\=^FFb$t̹Ʀadz-'oVaIœTrg42t# Y9B2MMjq=r120ʼR*鮃N)_|97NgNR OdNh?~rQ!dh%xRF ? IIw~h00YM^{[i3s'r$Д^ᅧ*tucV YER>Ŝ{C悻@jvyEJ{Y7{o\%1 gMT繬C!ϑ+d9-kГER4ӊ14Lui7Ro'Jsɨ :@ZB,&Qύ%̦SZrW-3fzN7q$*F9j7.[keyE畓}XSG*yqMuhm>VmPI0IJl㧔sb|sI> A<-@ }lJ,QCO-wg$LZϐn2$I"zR/mx)Q˜psX/ )מ|v#^GuLO jq:=9utqZm ےTkFNeA]FF}Ol1Tl >NВyhtL_݅¿M=!'빐GD]*P{L|m3 mPdko: EEZ4vk1jpƬIiEX~dgMNb|)$|F+@ GOYQ+$y¾wdytdŠ 1{lnRƳ,vqH/J2cT)=e.neH%69n!8:HkZ{fd[-o~&Ik2ɿP)c0*Xy1~cG-W.^(\2qer2.ߓAg/̋_d^Aαw/e!ؕK+\FsH ^w? >a;gJ"ձeU圝UQ+胞$+z,Q}I(SLw5e88͹iiY%f'*<)#+o[&>z1[f㹕\ J`L!Mo,ݝUd"j (I(FfלUަ}!4rFRPF6i kN2_1ږI]!oӾ[4vAfۂ!KF63K\Ր$G'Ʈ . JPA,QOԡ*+}Fe˛ ;H7sȰ_#T^݅o+J}P|Z5&6lIٲsL=S쉌 ݔ/u:q}g  qE%8xn;flYk[$c,aJ\ݏo0MiZ81桸)+VL^9LJٻ3GLl7dےHۦпO\cb}#;_TĦvC d 9jvmŪB,.ET ZnOſw%ȡ;wɚjq|c<0IzU޷34;z{ IJ]r>Ʈ}*aya i$Ͷ2BzNed+ݳ5'f ~9G]0Ffp.j#SO!AB3X[W.ܘ8h"=~xeH`޼;7ThɰYa+[}|\OU0lz:^Byn:MϥѦLd%9A1n%>?D™ԭyKНсGk̼{}ѓ7![ϥ3!լSRSS|Q)W7&Gy޾٘oRl'e¹̞+[48{_5x;Ioh²_ޤRȊZ"YֹUZI'3W]IXs|ۅ,]9UdTW01ʭVgl.3gҠh (u$e}ЃAE׶y}w2UaQEq#guBF>MvJӣ{RiT;FQObzx'&-IKǪ>w%U2e+_|ZU*8q+1+s2'^`0K]bD?x3~JM{ OOOQ ܂| f˫i'Ԟ*bze ;~G Qt'&UsLoߝ% (>R1e;7SQ#8i`o>iaq*{dsrvZAҶoBvF K $K4?&v?>RU,k 0&mehXӇ,x!>4K63ޣihr,op]sB^[Tb;R ?OG-hq :(^k[# ];_#]}[z3C ,b9_sחz-Թ6 ^eŎ F65=jyh]Sȹ6+klci9KY,J'V_J?J}= -]/qE-z*埤lz>(]Wx^,q`/3n? g 5ջ44o^ޭp9?7 wB**l>nv\?߳InǮDJ֣Iߤ%>z5gu“E QciJk.%2iXQyĘϛO"M1Z3f|֙@{;J5yi}9(7O¼̜֓%ro5{I'rO^ۍZvȕfkDSbI5fwgx+SJ,I":ЄqXEc%Frw(37ggȆ4n!.q9WɂN:M:~zrL'{ {Uyhu>pSJiPyRAD`}P}X9t5zRQsk#_r hOaY7] >;Yr>ƞ&|@ő99E<1!AU [Iqokt ~.EΠtM{ R#IS]|I[ȤKX5 $Q?t0sj(F~720HRtO)ORIFp23|p3U&7U~N]N~1pMlwrO$͵w|)S%o ]\ GQjd^ t`0kk|K9~z%߸͞pS/9d"ʽS(JX|(Sz jV?‘x ](t4ش5jTk&>Nwfj;%75=I(ZJeU%48Kɚ|6w}^&|?uLU(gJde'vQ8zPyb> k~r {qVnmL҃`K=^?'/ajwqbZ<׈<!AIx4~]o<ٜ]Lp L~oG}@^ j̎{q*=$q96 6HȊDc%V ۍ_/NB*{4QOd`,z;;O3pI6qGuar+CK 2:ε[Bz4҇ﱲR8y|@„>KK ,ugR߭,NQ$*ͭJ)POqR*)~Yt5~)Q$Ng :lBq) IDATcm'V%v4Ʈ{C'nýG5 5 )zL ·MTF]FD6S{Oh.O٢O5d$i@hy7[FrgaߏS}Y߳?!3΁b`L`ݻY];V Z[o37r2/GϨ(f4*}ZQ`"̯Lݑy-.oZ  []/NRskT@%|vJZZ-;=N$)$>~ W;̧s[Qoͪ\uWv˄+0LgGOgln Պ>At~P$Tsm@ya_ 0cɒN$9zСsٿCohe8sh: +-! փ_,4ߓ,bWI~~w_Ǥe׍}p(՝UgB4^=c> ҃3ٗMƬ_ʫQS1^?$W ́Fs31]/10(-"mJPFlbj2v$*ėul+2hK~mg.ˉ :F7}|ɽ<Txy9zL^1WT-EѺOܭ !Mkxqd}탬ɵ ?5%()כu?c8YW}BυXT䐥 ;Ji6mڔ3p@Q{̟? <2=zXyiۆ1+Zxf6=B38~jj5r<$|LVR72{lJ uu JL6gՌt\9զSNe6GbÿehV[H)LX̜Koo?ugGw事`V?OyUMvkw15g1nDt }s=dGnoY>Y#3}wӄLzBA۩J>o兢8yhgѫGwN[Ҥd6aVrI_}dCmbm6p\|/wF=W'3!8^paN5]jŔQwL(gk:_ص >?2kœ̒w){*EeԚ @AG"#^!.)OStï'y=]-SC||܃Tȷ _g~?^kT-Vv,gs~=/o:!(hv ًٔ\=]5;b1 [?z)2N4*6c% )2᧯#! 0P@ӡ/SN vV%IG< ~_ƸK".t;^-fiSٖmANQ™*=F$pQ& ܫ,m "bMjS&{oFØ,KΑ ږX aDB 2ʝi>M{j @lEj.Bܵ7\EM2b$lޞBW?@ #DM{¾{QF){F8=Pd:J[ꆌh]v2ec¹ K\[aL&rEƹ~o= xsaa}'fܭXz;˻zHry0PoYݙA'r<CU.r%0q M2 p]f_NLrۼGSE;@.tD5X6^K?[!kɖ?{eƢm$tmϹmJ6)s'- IO>$h%U'g^+&RIYpESrXowy'ҏ%Mc ة$[K9 .qe;G$vj .]綇^>]I<$ugq%k@ @$VZ 42]j5r$j5j ǫ>ok:m3b4\?B %~??.c'^^^}a긴|1QG3;N9Lyj'9VLNf[ ^ǎ9w8R,9n|qԼ:Q;'hȼqҸX*xm43>sZjuNPUe AmE$oGc8qxѴOb˝ m#yAZthZJЛ6T>0FKrh0l>Qmc~߽V=pwk/4E]~\ecjŨy&42_xHBg=@t仧U4ʟVpNn)L $A<#} DGk( .j|Lm=' dϷVriHpsʟspCv&( ߡ[#Y%$`fDCjp1)>Ęw?e}#Hum])׋ dY(= Œ},Ldd8cަ:SPPNent[ y7#\/VOC|aG')G.NV `|3umwZ(CיMVtSc7,;bi-v}dp!(KQ'jLUo^!\YfE~i'0(nP\g;@Ea@ x r XўϿťkyLTtާ^P9ʕDob9DLLK2 ccbc:.fSb@ x[9d:<. <mvjLU>?9I3=xŐsc3vF-.Sh w[YOMJ9ǘȾ%P|c]F>t%"sut;k37ȟr3o˿i[eC;BX917:7յmwu!cSQLί!g]>ޥ]Z _9[En3#{չER}$qT *$%8*{/Ziۢꠈ6k)Kw', C. A}dXz hi}&n}qi5cCؿszƅ$jQ8=(Y_.&U:OѢuٻEЪ8 Gi iPҥieZ~}ũH>Zw#?Vlts*wWqmzc[z݉ÎgsLoߝ%e?4. Y{|*+v\cyg GɞB*Ԇ397tSϲj8tʲ,~0ّV V_i~(67?缵Їg30=.rWk|[3l&^_*IO܆4麁|QW`En eWuÓ:}F%dj"R]jWȲ&ga<<S*l$@^t+Pй?e-P qau˷*kHƆ?8V(D.jRZc5-f|-IdK@h\CV g%΁׉Fā|!$j9Ny2uH'ǎCޠFG,Qijb#:=ך1QLGIPxel/*h@ ]K.{ېF|7Ya^L fNI7Uǽo.0P|4 =%@RR.pEn8Cmܱ܉6cRQ+{LSn'Vl-D'xu6h掼$u~_*U䞼ط|+]1#^;H Z"BߙعiȈO˷rR@ 5zi%xg~WG@r䥟pb):1 L;lB1g &|!-9p-]r/u) HKu^ȱˈHcsj q@Q0ywmMo'$…?t7)#0ym z@{a%Kw_!%N^y١R/LKFwѣEXe~]g*ڎvSj[D2m-b6|(}ju`Hg%:5񹻪R@ $V@ xdg|L<u!<.$;ꖉ$Z˷ARc~:IPep"A!h1!歽oO"}?|Qh4:Sዾaήx!^J¹6uP`53Ѓ-5fjVW)K/fQtv4ߒ͌@X YeSu`1<B *+a@ x&/4}tS6mJ|8p=UϟOԡۋJ˺uԣ3ק1qsf]p|~|H^;0PTfrȩr# >m؝b|!첞ߣK xCX-Tv] ֱ}X GdxgnsU~jޚ`n3g4Ka@ xl\ZFV#.Id¬_lܸY<vD (> ,wYщ=|@LMq| KwHZ607>E Grь,Iζ6{u3NY K(d.W Wq*ۘ^ˠpzpzаriԗw&0$}ʫԫi̗'9 kꄄԢ_}Nf{e ܄8my51Oۺ1`595d+d=e3V0S**EP펌Y~LSZr A^qV h?WB_3~d)Ka@ x&1bBG]0]cWb8i [cik/wBS9,]} Fԗ'M?c#/\Ÿ^|m|$Ү沍+a3Hmx|`V_Dyj131@vkw۔' 7]C];dp|v/tx:[ؒ\@r Ju/U;& Sc1' $"h̥K2 C;P7A{]n<[IǟalUHi ?}:p # #0!SjMP?E%xN4*6u9߮IFzg&8CkRհ1b[r@ Wz0Z  <~lNNHWgs0ͼdԛJ2$S7Z'ult2Z;PO),e\ʑ LM&i;{;& sGymGӑTʪM;Ar"m!(q$#2ڧP쏾ɝ6@Np7h;hŔ%0q TjoIX&P8SڵST_[{`⊃27|Fk9V1P]މcIqM-@ r IDAT@O^LFL&&0+R+ j{7Jo. J?jVJ {2==i[mMWur@yyNt$$^!h}PZ/FVJJ°É{Vf~2A~ŬLrYL23q+t71X+s .$#]Y=q6g!lޚ|3r""sǗ7̑j}]g{:a@ d§I,df$G2ee7{$92I[#T !C!7rC@V ^mE2J\Aʴ v&;!d|iqwB[z2RMN[ڃY;j&z $ :+ń,]ػ󰨪7aDEq'\s_242_Yiefee澛{ ,0@fL<8ImQ!O^N+dKxc@.Q22IKEZYl6 BnGZ[cO#1nG5*=gIu Yy])ʺxT4KV-<|;;Б3f;@wo7Gcާ]s\PqVB! {SgY~ o7@sM~bI !IH+$/}$BdO/xx]} .,~?ۿ};o~/zN9 &e.$դ#w&r|Mu.&UzRLZB!BOE%/|8g!ͬeoQi ‹cƠP_ʌ歙s#g nuiH TvMFbޢuCn1v管>2%B!S@jB f ;V7M˥#{8W؎!sWwjI̒f+$GsZڛ7p~KZo,R#][_ܗB!"N̮)ϐ8)h7OQV؀Q?PZ4lDVs)ML߀ɧ~%K:l5+xSC~8=)(ͭ)BW'x0l2R3:!~έiXVo-RN1' UJ]TZIJ{PGEGm8kI՞Ia Wb$fVXYzYHCFS3:E-A-Qޯ!=gs7n k6GîihR<*M4$/^^DŽTƯ+BB!O333"WhٖvP?^KЊΤ1P5 >%+wLBW`ꚭ޻^wdۨ^C̮.1W_ׇ86H~( c V۪]hW6# ^MG`e6EC0a;Sv_֭c*=s-_[VŠ'9K{J|,៘잶,aAǾ{r7g@p~_59y8 9ep4˭??:ύӬ GMao|v^Ǒ_ejt:e,Ŀ&0ogԑKu8y,ה} T1T7OC^&mhBhhB|do`Y p';:'Wr4+C`F4rx4˿fLX w-LI<A^ԃnZS]eҀtب0@W3dFǕQzR#/`_'Cugs^_= 7I@ 8:rsk^pK ԯeqg@~ry\D9<+P(huǵ@Fdñ,9I.__nYF`hEygF|zwp*,Гkin"X8`x2aGתb#PxгVVi"vVac}zggr҃pIg{tIʺa׃c>~u?xi =BoY~}W 9=m"D$gZ~5[1syJRY5[r+lõYS҉;]ӏY;q>/n1^ok-mʽ|yAet(/YF͎Qz7mqzemؚ,tſd2Wt XRP* ɂnCR8甩, / v\{Cq -BtZґVFy|}iKz:NGEsfݗ|yP>1dC@m2wҬp}TI9?jӧ+6;K7(pFOJϏN֤&ˤE ӭU}}vz˂>dYj`Oi:*/枯ix.!$[3rmz1.ؗVö6cNחƣQkbԱGJ3tNKKÎ#z>Vh᭘I*û[dzFu|*[֟Nm|0Zܯuן*րUekɝ+ 3k |4xvy2( SRyKFR3?Qv\3@d \)Z2VXĸ魈YU6>Q,?o@}?T/*浱8@\INu}7L!rǀx#4- O!t4Qh:xy_JeL7&a_]X׽;%ʲ*#W)mt{n,S9êc l1w^@vv&ZVڿȀVϯ`4 2Z`OaՑ/.)$:ND>{V=7 Lx(PעS s->Ըzyø*t5H#a #2=kD |?g\$ީ6E+ g*4Xi.ړYD&m{]G ); -.(p YqWh2,Fy93 }ӑ)hZH0P73QN]i2-hZi%Zu0=Ƽ}~|(a.pQ'QogÓWBY=_ߪt:Ygzmϳrmu?CL<' a$GW7:?=pPWN`mBK#(x<gpãlO~q{326;*unCT®$~pLPnefTu\1TxxY\9JSw\Ƒ~{#?ଧf͔ #ޡ.?c9mwFO'p٨Mg4E}TǕi&e:x3?{3w'B)^> oIIx5,eBx&$5 }wV&hxrf+ :xqsʒ k֊9p()cofB@ .T)>!Z,%JJ96gn@_{ ̙O?S` Q1\{HO? ;#$ꋘ~C6T7KK+`A&[eM#20l%DQ;)l-xe_ϡJC^ K(^ 9͗j>hhB8?&29»'O<IVEHt ˬnCm ? e`U QUs{FQ#:.+(TK*^EO/7~-M,BVE_;tP3x`)=a҂ hԨ#Iؙ~Y;ا'dI/8 A G%EiBڵﹹVC&UĮQO쓲9&ȼ8:1!l;}˚=}ΏsCҪtV}2!x/J+++P*_ Reyms9~غu+L.D4;?&]JZ;y2|; 'ůw/Ws -B{^VBJ;1Ov~Ioi߳!Ů)".=[dgȧ6I{ov$~,)!xCHJPVo"<‹ciB}&J=%w HlweF tYG'l~ q6C!B ^/#cIA:h}a7ՠ3wQ~ PՎY)O fth;w0¬ӑا\tJEK!BZ0ؐ?|Lir,dbYv1' UJ]T GeyT {! .Fs"}à(א3{7\^5 'yz*G?x? !#o& Z`l 짗XYYD2 &ʻ(Ҋx<ГzySz0K$]Ȉ(_-fui)1Iw5MG!iVFva1#{cP(CwVq5CE!O'^/VYmjЕz%&3nVDZKЊΤI |tIW8VࢻOc}ql<{P.ƸwFed?*&C{݃a:w̭[W9T{:b/-bړ?=C'~sDXWѥƒKSjr.ԪPCeol!{IrᤰrNRhїp)+%qVLpAQb-3.$_e+9G[$;TLN?–ގOh7.).k-O^,GtoQLƊ=nRR ִ~)!B<JhYj+V`Ŋ޽(222u:tZ'|3SkԜ1?Ĝ+&PؐJ 4&-'QY<ŤI#'t8mk5[:c6 G"X[:#Siڻ -q܁ my ZS]ev$ X:悽Ńp[?Y!85*>P;sV9ϵ5??N*  =Z] uA(Ғ=-I1)h4; .OO 'k<>'^!p $b㌵v׹>[yEşZ0BOa<ٯ5%h<^9қ֔6e2RB!DW=JN<ѣG)S ۷M6l;;;Cpp0Ƨ9;P+EU7 +lC]Lp_ƯRGmghjiC N-H#]j6Ujfɡ۹&ViJ8tR 7#XL+ITb] qu sWʺbaDag/S"wZ*"DOŵݗd3u(oJxXWlb2298v8WN˿b 5jv#"ڴ{Y{Qh9 r=A>ym73Hnr+B!JTR8qIIIkoo# Ԯ];w~jóC+JO18JiIdsj(uCMV6;iVϒrjզO3Wl*v9nax$ҍvӾ4RFs>l5ɚddZ+a?##(j˧mGh!gM<NJu;0G;oƢeSO}vsxBQbcc!3)&5L.YřsEQZmFߚ칰1e36wR94;JmH mLJ^y>{v׬svPS̄\ohs[tbZ2YvåKCS.axJ+OO#Ck?J|gcѧGsz8o!B4 ~%iigؔZx&e͹2קL%mOJqdZj1!VpD՟- !phB!x( OiP;\yxNYQ㣣D|dİ. Ƶόu7h>؇7Zfڂf @s?8G3('gB!B^N+!MaOcVJgYOB!B!kJrڸ5RB!B!fff2B!N6 Ysi-:V;Hu85ޤ{AUt3Z9 7눩5튳?D=O D^HīIUiN+˭)&7:N:YP4±Bst)OsjvMEjQ|hڟvǠ!ݣ<*=Pko4ѻ5%jV§Z p{Fۡj.u2m`.ECZS݁جotŴ`?YxͿ-?Q8L,=K!D4 ϼK$J@U_J؛1mbBasNL; =U~-=qv[hȿs5ܬͰt }(oM ̱S5a-'3JZ.Ƚ/ޞd"m켯Ǐ9K[2j_ck:}9'T~N״ޫk2ԏލ?Qwb$ bxǘi',9 :=v7=v1k1·3'WŽy3Sq`F?N=~ /R@?? Fc?ߺ!؝n'R&&]k20p)5M<B:٣xQa?~u鍳+а{'jۢ4/M^i0od)znʠ,̵摾qM6QNF(,2J!Iԛs^8 'fBTj`/݊#:׿ewN@ ORcI}"Go&No1ˊՋU-|3]${.qRGw@ 7TQ j#>{cI߹提!֔*Zq =qz/T(cڒ̙_F*@EҥqRD&nEq;n rJCiѥDYc2kzcnJW?e{형3\r캁aSiKx8洼XY52BiuiֵMGGZk[##R9 .ZihG_<63\!t<Ϻl߉+wxg˃رt)GkO/P(^u~ 49O:}Ĩ˸L~4\$)rvCyȳXjqcq hn~jһNfx=_zkr2Z=Ee|9YnwƯ~xϙ|d^^ #x߯L(z:CHnA'NdN\ܚ(Ơ?Ȣ퉨~V]_?*i[xmΒ~,ׄzBY-⡑QìاZJXXЫ{/ʁի9揖!?u{*ḡ%|$ؗFP^x3pB=5,v|<"w2u=bYdʢ4ue[h7;3N?rTڞ|U Z"MV S alf"?$O«af^s5~Zܣ/1|etm_/r< 8C.L=)7ÈwKF%Ï^' j:'FQPт8~ZnEgV44_5VR9Q!!*CyxxYĄr*tc9mwFO'(G` ]{B:B<o,-.b82fEN!j|6DfQ;kq3p%I^JL#vb# &88C73! ?wVs^Lz~w ǦTdo'DL6GI,Խ7'w7nGO">{*ȇI8tƳyǣ:ΊǴ^!o IDAThSjCJ.XIĖoY}3{J$oFM BP,)gޫ$d;*w;,-or2s79(MJwv--gHN06_"Q [Kӊ ?Oȱ9tc1Fitn3Jc@Ml3 @W/}y5KGq?F (/W6Շ0s_CX]z4gʚdܦ"MEyMI=;ybE1YNn'*/Dώ/b ˏ+=Ee|p1wn;}G25o\6AKKEy^ݙORޫ2]EgyE͢{xԠ@mű(IQMHٲIy;Q x^y(-is:+~?ߧZ Olʠ.% Bюb}ۻĵȷ~ai+L1p,]fa*t,}1AE,i:Zݴ3 Wj́ ?.e,0/]ڷYi}q%n^x{{|yH1Y{$?jp> _eCriؾ )SY Dgu:.ƶihvi.w ;&5ژUbv O}z-pLUQO:(( (Zn%yͫys*M,P:$ ;9 KIn_\5t,čr*B[x=s=g ɪ/d,rPXR믿wС fRz¤ ШQ#!⨤H< !k>=FI;߅zoUIn_޷2&vh!ΏsCҪtQ.Hh !P{c`oaFmyPq $Vy=bY}o:v`Ɖh/Υupz&/J۷3djh44 :N^V >./[ne޼yEI!B}kVD$?+h:k/ XNe2QGLlX2O@UkX{;* (B!SSA.t%]a+z*,+CyAQ2+@敹R9j+T嵠8ϝg\|#,j2J!B-N`ʔ)R>Xdgǻ,|Uw=8bi%B!B!2:N:B!S"0ogԑf{@ CBN+!BI=ț^>%ׁU}选(٧ !PJ!?/1{{Nm$BtZ !BLs*A̋D_X/} TߴwԸ.*RoBBS~8/7't\| m'%l#`TR܋ _J^DBW_zB!SxгVVi"vVac}zggrǵ!ӏY;q>/n!hhCUx{W$qq72 ecJao2..hF`xB!0Ɔ rR|OFZ !B<8ڷgD5̵G.V|&R83G:Ok2}ǵʕ5k^ZbV't`6ll=X F6 H!Օp,,, \޽{|OPHB!sEaʾu`@djǽ^sG],kRR ׸;i4VZ͘fZĿw*M?0i((6?끇e f \pÇuV}Gr V~~~"Z  Dr߀l=#d iʌ vu^P䒞馽;3;; < HA\`0PBi޼yi;=]@D+AAAGK @/]! .SPP^GQz}arvgAA PYAAJ(  -Yxpgzo Ba4^AAAA!+AAAA0dȐ~7sLMee    *DAAAA|Cǎ\JM V    oS5j('TN    >cǎt:7nL5]AAlIG Vcg| 5~=:SFQD+AAA %Kb?E-a?bjZ uTWZB㫺|QĞn+ϓRgw\z^O`` z"AAw jQD'"Bq@ȠhZDOñRQ_̩be/US0驠-AD-v;"řիe\滾T@LuRO@ZZFppCJVZ   ܔvk|zO_ ^N:Ehh(t:{AA3z! }އ.8.tdPSv7ڇ" :&Xʗ/OxxV(V  *Lz1]ok磻)[tV\eȫ< }涏 ;w]?7|\ N"Z  EGvQ>Hͯό||JMd%~DC[-|6 \~&8ο؆jn. b`*1P.tǣIl~s9WPn$4@EEo낂6VhDŏ "S稠<%2 3芵k15/^c?ZMuwߑerl0@eYCq0ݶ,QAW@2*Uؼ&ec$%t*JA [6U@rE͢y,5NXD$ˮslƒIN> Yˊ q0M4uaˠRKr9Mi;%xm.S4-Worz瞽 \]UQ&NvAsdz%/CϟOe >GB g c@o6xn(bOxQ4TAQEQdMQ\O_msÞq- [\E0/,+\OTQK(.ܪ;c-\k4OkrK ~bٲ=PAAJ>pF]RoZNyT>kp66aN$ZwgՓrc}F?SJBVYiV:-Ơd{   .PRߥ9Q4pԧJ SEՋ᳂k[͸+&J`,dk"Z  }6oh$ﮞ*U,+_l9sCrKRoЄqSR}؏n4G"Z  ==u(tr^f׬Xj)H7ѫ4 qT̆7$9AG⎽~{hmTJn`>-Ѕm*7 >FMp5;~kVbw|b~2iqi% p+O3PG?Iy |9h`>Њ2 ugZ15}^VwJ5*گoeb}(%XvʗsD6b_д(~J決#f%$o%e-Z[${vV&3O,'  ­?u/!d’1vv-*tk3_ؖ^u~(.b+m(v)`B¯48oS\.":yKi͹FܰWXy+Fʍs{;z[+GӨqcRAAneENHD\S:Os 2`DE5u*MǤQ]TS~`KxFGy(|>{Ͽn,MG!=yB@ {q?)~xV>_MX̆ӖU]Xdz,p u`jĨQ䧮cޔOY{D8r|[Hͭū *4ʵi(\n`MV땂^Ǽ4vR⺨z{7ђӿ^*k5 יD+'Z͟?_AAn"GIN>M@Ūq 0 se۾Sβ~W%׋J>4лt!ϩcXt rat,~a0_{{Lc_3KLm&_SB#~/J\Dzqt"NUWS7fKi^xk;7+O**+/wVA?vԂ`p]j޼  oB7HnZb /racnS^X=)_++CRVTݍyvE|G'Z~ң:լϹA?g\gj}5e6v]+(]{0zUF/$w$((N?W.YyZjY[](b%x:qS?'b>V]laJ`SoM_TsG}rۯz>&jIjBU_\-+cڞ=PAVƏ0y$ߺ]dH?KVX-"-y֕@ņ_5BTE?HO<~?# c]pYdע\*T Ӽbp4!Չ'P2\0 Baj+oo'(^n{•m-­UOvs[ʪAĮjVntk$7wP-~bꊿM^Z;믡+UAAn]CU6k.P?-p.ec3}@pi.m~˅YnDG_>!9(t浚 YBXRT VfbDžV#h2T?-SJA\{)b-Z˖?7gyJAM`,;x  r IDAT^˲Y_ޚ$,^qjOT'wǗ|/n jA>yyyVx{kMժݹgÈ>tHP;=X5 c]lmؿr͹M}ֿEӯܲҿkg;{MYr7SR0K~7|Zq\|ʣ>:Q"F0quvlJ@˖4YJA៌.v/= CCY$ҤqY[Eݘ2q]>rм+u^ =?OU.|qgn M2m[ATLoh̽qOOf~t}ENH߯.@TMZ6]kE(:Ґ`&X|=&!.U[aeA˗Zw]Mk^8*ЗŠeV*엊^z3ѻ7Zi˱TXh󊎏0^7}YL|Ѝo"󾙨9A @Q\LӊV_<]q$*+MKXRG^+_xjЋv?֦&o"K~ xWyn|ڃ w>#z.⮩Sy4VoJ?&bfer)Ќ8{1 m Tp-'0ݤ(Dё=^u2Q6`  ڨPt#ti1Mbֆ.LkldU!]~5=V;gIU[T(gz|ê_cOtq%u?Sg12偕yU{ "Zt;;\}ew+rflo˛5u C2-K=WD9Ճ{ v?lbzXޥ=_i( do?oy+tc˘?ݕf'n} O;[c5cz_,}g^adP]L%suf^vV)̚=erSk3[~;KRP@+X,( PrdK~To`_*,9 /,`,03UZ# ,撲R!,.]4nUchc$}\Zw ܱQ:MT55ZcәbflKpRRSHz3%i2~ZqNm]e|TgCl^w3V wp0U7+wƪK-6|%8y{a/һp qPT H$\'EpzIdїnė B20ʐԩ@ ݍ¯u}֐>]S1(d9vm&) ?8?ލ;uqhr&z*5Dϻ2mQrt.&OJ_VpeݯE珒yNq@!4&e@ |74!D^AAJUZ );gYqS^ γl!В8?wl&Y-^9VDC1Kӧ(-JHP)TRR<_ VFIsKK~5w9[\QD\2V*_bK~aFXb'?3䲚`Xn0^j6)sff3plv~6MMW jAHlЃ&|j5#6Q M#7~MY+ F3jI1#elKToӿyWǪt决ejARץI38[R97lYطز+-F/03fa!$6Fg3F&W0-=͉HIrWb >j=XU"[{aJ®QvNs]m@BQVnJ~˝jT+ RǸ,K\GJ/S2l"-2}5_׎h-Ѐ;Cr9sE%lEޞHh).Y~DžVO@K/ȺM٩*'嚇O%\*](^YwKFq/ 9  7VR@5u>H8xW3m"V|UetvOeb k1kRv.Gu%up)ު—L#VcهHeǴỴ͘Ì`T ZOo3X37eGτ;kߗFA S̿2bRM}No֬N?ٗe#*JMYU;~{>~-}y9cx6/Lv, m%uwԐU9dgucZZ}Ƴ.,mQIr:VTfiVFgӘGkfx1N8ص=S4w |?Ú|jcT, kKHID:J^Lns-5>Ǫ}<0]TaYg )67-!eϛ 7O|y1;4טƝ\vL<0{X$d۹j\^D*_XwlZ/WE[]:7nRBѫ>?y+vpB:kF[' 9jp8{~;VmOt#'2.WpeJX"=z'pt[LZɺ;8a;析?Yls e; /Z*&sWlO],[2-Jo{Ni}HYE篠PuY2N0άGO<'ĘC,_J[smUh*FJ6˘awZl?¾㙄TKd{I uURrN{}sdXTmKPUvodvPQ`0zކѾg{*j?D!'f <]⸬7*75ul7HIXVJQO1F1++>Y2spUIt|6HiRNMG}{PJEbj `[Pfchq\ 2m{B'm*-fE}͜3ysiC6l I׷^dDդՋoӵV({)vNB]%&r޺,:ЮsV!9YGX&0*%>]kH){fAAJxf,vRxƐ ZD}D9B;}T QB 7 $ y䫀!g~+|MeV'?GV19fFjkx2AO%4rn O6Zbk8D (/g^b)\[˱_$1zlh1}0e Ї>?<Ҿ/2jb V.Y)J"UqTi{E(Y5~wQ Z4ZsYZ)G Hzl}D>lOtg;M.^i@nkˀm`cB`'OX&,Yv~c>g)2  T QD+ 'r |pҍp $b0T .b]0*d!<SܖzAԺx4daژd_6D\ȓl,)[,Յ˩ #5CQ'},- -P@Bb}RbKtNRAݾ4m*qeOv܀Z,)6İ8ڕ o/d7yIf}8qk1~0 MmUGd6=i~Yo'_yJ9i(֟ZfӭHB1+ʵ?xU֞ʰF;Tcۭ)Xګ%+gx[ \:AAAp%xۺ?YrhW /+mɯmH@*cKO*=̚'.p1e7F.%9S}x}wjNYY9B rkDC>ǚcW_*@|d5*4kK-~!-!jA>f j>*} ~*>վ=0jrrRPe8aLG~+1zK4Qv*+ t!T Hc햋`P?sh i D@[6 C`e*9\k'\DrOi%{wOi}h(XMUl~}}u?:ωpG 1ږS3ӥ~'O$L*~`'/=Oo%[&TW{oEbW4;gF?F`[5xy`-vJ㇦\ BV(!n;l]\kw !=h>[eDRXxSLSXQ}Nk6h˄~L~o i4^tkۏ}dMzPoxKt3c0=ª!wнs, u3p}'̥=~0wߨgO5f!Պٴn~ ဗmnmҼwlA۽$X+_$W*oXbxg a[RB{[i( ĉ:ˇPb$''ӫW/)ϧy2AgpC0f(쫚Z 6\m3xᵈu;XC x[]JgInE:URVETաz2U/iZw[+W-򵿃jcu唠%rK YO?ļyi%  [E+IUF ߹hW(t.ȎN/K>LWSi ]whgmT lZ Wry=Lx!XػbsWW9z6֛\rLT `ps AAEX9G6 ABV]ʎ?vVvN4J*^ VyHI YsB+8e' )Zs+spkDiAAՀD/7peFj$ObT, XZ+ŎxS*^۾Hņ' *%PsM4)mFF Vh%  IL/徘`t We=W4@╖U+WjWd](T7etŎ7VU9*W*;v@o)jխW遂  Vx I6%AޠLdUrm3^TߋkUdlK 7`e՝VYӦ瑝N~~.|F#j`0]?yt  b ++K: j>oeJ,IzppnuUȱs \ *4>F`| }-?O U"D1r>yCn&\ Xj9]{V[|;*Ajgvmbp#>njCv$Mc̦^@mfmL;ӥr=_P O~1:AJa+C>x}vհ c&vMys}ͭk\6VX7c]ٸޘŖ1꫿(݆&?C:A3Y4sb'h_WmF388:o>JzcQ> SמA_~ #7~V='dhʦq)b]Xeɗ᫶̾K5ͬVݯ3I(~6?뒦[={?cͧćf7`e__(AA'()ѩ|<}3YayvF,}h}98ij2a.bڷ_ {c @Q&r/ Y3A'cG廍{i(nƚ); r8ʇ$GжoVwR}Wopu v׾3l2pR6YxmfmOʮ! 37/׌:;>:T0f XU~^.=M%/ e qF,ݵ/,F?eOFLmQ?fc¤_f67NGذ?/[TzM f0^>1N.@v FlLkfm$fLs2D+uj62+?J-RX"Kw#esp)sML1ۜl+)y7`Z&P"l f#wS"ot<_?m+[ޤAAJ3žso~4iU5iB?=|#iVTM\NpQ$ZBRww<]gB=HnHg̉hܛzLz-d~ei<*$':3B2y_mhm'cP%vK\d4-ܮ>4Dҹ{="ch~JJNN 4-2]3y?1$Mh=&~:_P5uOTk[պ+]7`Pzv?wV=QVRUAfs|eN4d{ C!(/_*ݼ՛FٺLP-o9[C/&_^5_~/N||:u? /?FxVq(׋^UBxY=ކ XawZOѐ"iٵ V:9šH\0~=ȀiC1qkm̳K{>R8έ9t6.Ց"L9+-B$m/\Y`ǺY1'S)Y|lSΙXcsN|}Bm|`~okT%MծTi.Z>w?A5ѵ{m:UK_#GPJBCCAFQO0>C38Ve Wrk1AD7ںWydTsY>ޞ~ZOG`w}il'w3^WDs9? WΓIV}^+jbWϋd%Bg+-kژD:m*qeO>| t}"t{1Q:@F\ZO(?^kޞ9}uN+KP?qL2Υbwaǿ ϳr% T?JvkLa7,ude` !HQ}]}gdd=sZو҆\%k,*c֋Y9{9qzn?}f&(v |^N^9oבH@+Wu\$O-ʿ6bA_?qASKti2Tb۟bG&j]<.;2Î( .(" *j䚥ZiZ_--}46* \s]7fc.0 f})s=yγs><~¿Wtoüp24v w1ÿb́,r:U^#q4!rMDK8up1[FƳ2:G.7fy.þfkh/I8TOMUbE&ʦPU]o%霹7fo0iCÌ5%[X`r,03fWmqL]/MK~2}mjߔ:ʒ]ks#.&Wg¦%?eRpϥ1|i2m>g(Jcd8m,/%27+TJ}i?gf՜MЙ%M)J\4ah +cޭz O0@o&?:Eϡ\<77BRԥW9e=BPÖn+{M%I)VS~$;a[}?3}<eO_aw:ҝ3*72PEv_]!gZ?K,q .u)q*'4j)OΦVZT*rrr䕾 2dȐ!VUN)z8 Q y?cyS@Qlg=zi1o?  ҘwԚ@vpwn8~u<3T]jxgCDθq`H2ƌ!(τѧgm At2rǫ>]ŵ<-Fe܈eO!13x)Ctk ڏbC`FFu6 'IĈy֧~8&D$dOQ%'"nhԓyHFg MK&-Am좿ʷSvQobЧ/Ny=' u2b{ѿwޥyqYQpMդ]#/NX|s**NI;] O_?z a˽Iz{.T}5cg?AZpR7b&dAgCP2ގ$vW4]O..8f>RgFOQмzYĀtiۇ~ԗXX޸MƴV# 5]JͲ7FVdZK_B׏Oqԏ8UG蝷$ te-wxcF ~q y I/ŖX_ y^]\lLAMҰ>t=na]p| yp$ S擲HDX9A4>'X"ƫ0uTwݻwӿ7v3ǾS9&N~FVܧok/sZkm?7Ц]L޵{r:0aKt]sI Y|Xk&} g%kfy w[94jVnc {=_dqӍu[Xrx=i~e|}~Nq}c=-?mA:_DzNVt,^$JeYRRD "AAAsM4hPAi4nzs}H +}:!G2dJpEbbbyf`cP--}Vnt>Bx{."=W{ Ci2 Q{1OA3kt(g$Agmg*RI'FYvVQ*:Vz+'K{N3iUYWkb5Ǣ90*wuY4KK$S+TP"fUGfVZԩS`|}-֭cTKk'+C;$QM(CUV(Kk^t,~)<͟7` dOɿWD7[xPs'aϧf͚J 2d^VYڌs*A;^(E|:h==Q3}4x8[;r^kvaf}MYXq̐c3[[-K)8Sؕ <౎0g`c<tݗYr Mၯlb a3f zέsDAbuYB:dAN'ǎ#(`d=V[*l]Sg@ Y." )Q&Ϧ{(40j 3ĪxA];m%TȪcR_jfd6~ma%cUltQ(VR:S;w `1b'5so) Z _bDǾdR,ߒ tE/v,o-Z_HI \ݺ|wݻZn괃Rw-= h?߼l[bQ6[R;*J 2dȐ$LsX=Hn7k@ٍlkIf*P(gP@FB쳢sYɄԊN'8$:,VYg7 GAO3T-투͏z:AzV/z=A\ uNh0^vr䔝$/O$.HrJ3Xk~%JW2qB'.vA*税i+õ\H%탋P.Wˮ&uUY:($>:}_zU.U71\,â-oüPj׽ط7UZ(Xʈ^ $2rᫌ)k\%t kGʯPCqK#]΍G~}2?6ɯ IDATUsݴ++҇cW0p}|ԥ%g ~ۋȐ!C 2dT7ie íVT02dAMϒ(yOj!\7R߽L@ԁp/M吇xW6Z_ApzYWnB 鞠&7JJȷ"j9"Z |Rpҗ~n+k0{QW"P9eN3om3&+* V\+{!x]f@@/h뇛`@=A[`]j1|'ciFK*KWueQǍ|wD[|>\|eB?cJ f z>ib]Еʓc#ң޻-exrl7u/m{+{Un!QYUwb5OdJ](Jӹr 5"::^^'33m۶B֭QղdȐ!C,ɣv}І~xnf~KˈKlAӳ -/{ZY(|w=fpMÿe n`\e- I!& .9y$XLt>l3Q; cG #y9so~a"L{>71e,KAgZi2.'&fД>.d~.x"Y|KN$3EMyQeyCu럚k$JNjRm,QC}{c:DD ^Lj$̢̫I'5iV=w}bn{|4s?vYCCU:{@mtRϔă4?3a̷9%LNj̲>X]#=m~tR&Q/_u}tg>4jߋbМa ds&莼?ڂG] d_gU gnjd:ΣYLVN|;7P[ [23H76D+J7&=j_M:]7SF[dJc>x84g4`(ڳ&nf<4!}xP iY&>cƦbAilFTU$(sfb0nmq.EfRJټɐ悒9DCԭ+WZK DW9=׻FZeeeɫ'a޽Э[7 )(((]Çٱc:tC6 2dȐ/Boj\߂&z2|ғx ܫ>"b#}Y67|= JiQwE;d[$(/tAz3y5xҟ=͞O~$hp /'V#cB>o7 wU绰')a6=nDēDlmϯr HD0?iۣ?'p᫅ o/KvQI!7> iM֦Q[ZT(RX[-8}`nBW)VƢ`LzLʳɏ^KY9~YSs2 /n}H;X^I{ylh "af]͜¨X?% w;d X2{ "hmJ?}!=!hpK͉ˆjWg> B (sT4UsrFOi6Os._ ~ZOkNiYWIYGʗ{Z >N2Vޫ,oI*NL{"}W%d[f{8 [e1jpy +,J!VIrMKf kIȷ#%Gzf2:mi~ݒ9ך.}n\dYipɸ Hehl[sIy)Ta.%n@GVUD؊u@PYY: o+aU>qr~O#W^%33G} E%M4?˄&!C 2dT3D0~̻diA]xBPdMJ? ~-a+pF׆P/iŠ1].%Ѽ>9hft/ΏARh!n$&5$m{@{5;7?Vu>>z@߹ pH$Cp鲛I;Kc=i]{]u@{ JBt tNicI9 xr=WחȳXn~=ЫO] Ru<;?JBH_~i3p( c OG_H6%ԵCt Wy}J2ֶÅHnۘ+zձUS*^ۨWG㤶6_h/J}ZSb{/sJۜ+ҙLjҝČ<;$fm#uodz{.6k$Ӄp!l_7y=Lb6t1iCU(zǚz/'1$Vb2LEogQHX$1 :!x538qill26E'\r<ӫO|qac~`hRq6d:BV9K#%|?BÄsˤ?8q -MBAhh(I+2dȐ!_gNJw<>6+zZψvゔCш3ih\SY7Iq/%I"s'@N'n*P(}cPoBv yᦦ1L㏏"'LtE՝k1a ^ЖR`p!V3|h맔lV+߲v?\bν.]e+}$`'3O%(jhPTROږ{5/n4eEk|B%$RM@n}\!`ֈ,!ބ,1؉kp,xFSG]^ hYxk x`<%oL}~#&>mE@`|!Sqo FjVuNlmSe8v|Lj M_TټT,eȐ!C oB{I͡C{O0~9 K~b:H2xim%*Y nZ4QϽEN҇u3i0eB`9G|v7Po.MɾΡ͓wn]QH4+Cf`/-r>&y^*P5{UνA{k>;žbzmC XpremCVZ55^:J9 4DR8:RY_2hkelcp">KRνI:_EPm>ԯɤE#$q@΄rٺ7jva"5W4'mg\^&K/s%>fdO"i;#ٺ43k9<.DAt/0A\@,Җ/xz쏤?1$[p йץ-yaOKca#X{.vKʼS*kUDW~2ܩ퀕_[Kftn1\kx=[qCh^^~tsGQF zr[ XL=xowWIz'.L!h/3n@g6mOe=LfX3"uC7&1xp.?1G!M9:m⧕'JETT=~ 6$i@hGT;ik&ԸHÞc J~)&I֛'9 NYԱ!ed/:NG3hUI#ÓKf.-fO!13x3FF6l 6Ij\"g'(7̞^*o1`,F4#@0߳}}v.k3CdHeرw;QوG&+ejCԘ_!dEgCP4/Id\"fC"bAcDQӿwҼkqG VƦ HtI MK}p$ %Y]F9eRej#$*UUDX~~ `;PC+SN~_ڽ{7~ ,X hQ-]D5D_d^Yެ,@@o0( qa9;o2A:g`8K=1Ć' /s:ܸN1nNi@'i_//+_ؚףM{pa۲AXk&WA,8bɠpGP33G-Y#/%:!K_/6^fO6*VBD3@.oGӌ/-UIpuDTAD+Y WY*.&yYY\q |מq?5fSDV}^t~[? Q]oc*0#Ӎ؏ڲnʑCYnUu!88___׭[ŋ]i%@P"#׬cˁbo(-tKN<ȗH𧞿')ѕɋI Rhk,#>׿+WPu$%UDjX/VM u r%`@jz,kE ! nA]c*N)mǓ.?{-ۧn7 2dȐ!CB!GZ;:}Ɖ{cL^{H4wyមqœUNTn5t Ft|+N酎 .8p;Ǚ4+qϨymP$DU0$ rv Kh(1JqilWwyPKNƯ~Mi+YsÒ%gIԔ+o\ dȐ!C 2\`NGQQl+SDԕAYUkD]9KQWYsTk%ۙ#]rKWUd_L"w4l[U_MQFv*vU;;ugEC1'JgŹ' i+gxz!Pq+EVy( J+8ҴVYnsMt^ekT14v17Vf94x9{|w 2dȐ!CF%a0t9rD6 Chԕ("fq\޷?JXW+&c1(8tqzէ(Hf\Sl'Ár4vD%{8BD} Dadcd s4T@=DC&7vrS@ba:[-vˍI?׮p|aZ+]dr26J/ukZv lnU!C 2dpa-zc]G]. AC-}{Uq. x.UyC[qpFMo{ceɊ$Lۄyp`;T=n7n%8؀^ ǭ'*8aJm:JVlkǷ{P 3f k?Eܼ= Gʅ9\rm!C 2dȐaz '۴J<1NOr7iw [k1F':Q\6#_!""gAcV^A&ET|æ+%2v* )Ch#zDܿICrW fΆGXޱ'5%"e׭%"⧗τ>o }fSIy&OdƢxkD=V~Rf$OM~oqdŤr-[$gJAj@"'8Wh~ZÀ7xweI R^$"y{r1(E"⦱A#DAjXǺJdQ X|[9^$"njd#.SѸRI6~ H $OaƜ3q`-@ G7ޫ(ԤS6Ȗo1`)nEٷ|rϙR7X5`8=V^C+'\җN& MlWozU,s ĶS71H~mɽ6)$%s\^As^i ~48aW+δƴřLlR,}a/̽Ѩ;,MQ̙Ջy8e ۽_Tl۲Ku Gɽ*k[~_b׭E"Lbq@9Kw䣅䋹GC>?Nj "?x'd-иD~$ynjIX_,cq/2q_\# 2bN5䋮V1do;RU ?p2dȐ!C :k66~_Ҙ?" OqjFOdQİ|di{>"PlFY9ʗilLeÌ͚ɨMX?"7waяORf.=ʳYtRG6NWgCdo6|ʱ5)M, wPAm֑1s҅kp}B}xTkn~LqkB"e}y6NUl\#0Zn&exjbӶ˱S' g=hү{PfvYБ1srdE.Y%[Ɔ社1&Eζˍ2grlҜI6ŌzעBdEomٸ9M (xcvM~H|vOKc}gef}Ny5cx̑so)LoGJ gdtzdo'ȪtY刼;zPyƏ(A 2dȐ:._sN@p7c&7ȉY^}6jC6_b]/ΏA:;,h¼MI@rJیjL`Y YÛ~;ЪC,)m-~u7O٩oKw SmGVim{BE-Ĥh.,HrF\7U(zP_IHdA j3n^gQO`kO߮5xذF56 h?=43=ڶJfӳ5 rH p. };IvwR&+ƚOt|e9Ka2gݵ1̃'ynzחSӄ(Ofv)4\{4ShJAG<+9!Ӕ*9-"Jk 2dȐ!C rvRX/ShJ(ՄW$N* =/J~ If Nt󢎯DP/HWwaĄmzAg|VIΐW] ĻxѸȕjpSS'eBh;0b:4`ImV+u8ç?6Ŝט\(*G_y*Ll毬, J9@YWOY֗lK3N> WβAL(LEvi{`,%qߘzX-Ҷ-'TR(Ex?Fz2ؒ8p7\ 06ݐϕ|mK m[>eUO^#Jl{A˕|`1cJH*g9}4gL&1{5kw%6KΑ<16CMml?A4:dyZma6>>W.!N 3fӧA:-In.'br~hO#D6 2dȐ!ȁNqx\iTq) 97SX}AٽlTҽr+pzg`SVk%J97S㫄#sI 0s|m$:o<7%+pW-Dd"Ls^a.J.&*&6L{~oSnGvWL,;S4;E\ںǮ%$',S 9u&X^.-}iWC--OM|yʵ™NJom̤EoD- .]qzH PpP9[xnc}~Yro\f }~~H zhK{u/[RvOKCo dzF<\=c m{s@(}- +bː!C 2d¿f f̘w3wa9YMsbq.޺ɯ+մ)%DV­\ך5#U~MfKD&0WtJ0[~H~1eɊI \HMXC4,u]t]V zX /-gTg+s0zӡKSnh 6*ANY[̼hXQƼ5+"@ LPh3+0ʝCx~(;B7B5$z ,Ԥi y h2dȐ!CG8O*0<@sѯi57%s 'Lbġ&޸|`u]=6-gN2<ƠYu/4=8umh棰;8J2>|N}Ncm42Bv.S\E+/zwJҋ?reG_){ٷ 1 חo'PG0tH$cF9Fj[UOf2LV$֩G&4 vSTO.mtS(ET$ K/|d[;q<_:)A* {TMwK[F*ʦ^FCPe_A(lldSvYe@H$G6mf4i u_mrs99<'D7=,[ 6u9 k˭XNC9s裏Z}޽{irˠ4s~KٖYME8Gwq34^;]c*%Bu*{uznZQrf9W"qO䆹(Bޅj(Q_HJ2\Gt > 'rpJ?V6mڠT*ټy3G&99VFAѠtȲZղg^|E6^JdfШQÿ" .M6N-CG@ T*)))2p@ΎG5CrWsuaxQU*tܡh}63:7C`"6@C50g??BJFm'Ep6x~jSu2Ćr)+N1nF>IasSdPdyd ɚe;mdjo.3g e'حU^;)Gc #6ϺEsGKS.ozYdفeJiG2̟_{sa3^*Tr d0RϒgbvcBJ 17nd&b7h38r^銪l|d&E@ab_GH),c׸w}hT=g@Ks pO-LtթͤLڧ/2'/l!QJPPG:GN*(Uvj@ Ntp`[y9 d d ބ"= 1)prނ /pCx-8r/% >~|1,XkI%Z"Ir;MTL ;`uX3M-θS$8LM4BL[*8l_<Ud}x?oͭD:SsDY.f[0k\H^C*o \ @p`psUfZ:h7|3!s=ڗb *:d>Ӏoh IDAT%8F:5RB*IQQ╩LW`K*ѳYIJw "‹f#_aȒY|M9i]MmtTF%\G U%_ݓf#ǰkQi+k݉dr5Wc"ܮrEd cLH'$/ 5h(Hfr*u+~rf`cdʀ"5S[/n\G[\%J%ZVoK-~ ΅|o y5\ WrpwXz?-zEK?ŰG~f$I׭ $Cʋdޮqt).BSeAɌ+>he<Д}Kށyc%܎|I(,aefD8v]&s.N97V&}O@JٿS8LQ9yrӦ S)?ixVӦM!!]Ph W>&sH6%軉*5Q(ҭQgl 6PY@WL}E펷4b#@c}: /~ A4+Ԃ T uw?'Z1z:P%[}qCSU-$dLԭKЋW}v;efX݅[++&r_Q\o1y$vY=^vpV~GTԥHʞ,]=T*ʰO>՜A4ɡˤ딸W"PqtTFeH .) W}O縩O%pR9sܒ!KNGh@ ŕi"D+JIB\Q*ܐGdY_5i 5*9H5!+9;_k $B%^I@=ɟj8!7 LE(ӹ.;K E0hx>z]W/:^8*0k2W5=h{YG<$WcƉ* KU2|ޮ(,Sc%Ctt5#^]^ni2:GzG Uʔdg*r4˾=rrrKHrlmi( j nm#ANzª W뿲79wn]g/Kx:@N4ad{ c'bܖT)< VI%/5q2HhӒb_O?B1_a_!DyY'"u{eQQ3M D,vu8Etxr>;پeYG c/l]G铮?Ss{P"@@!?[iPv3:thJ@f 7?|@ =z ^m348 _"82+~>K7+ǚf0uq =g=WW0xZ2...HwNgy[.pzaw2H+{Z:Ό`ʀFhCk&Ä8v)v~ X8'Sv(Z"#wPU1*|`P0@ Ep"!4s;ņ1-*K Z|ǖt7;y׻Z Jg5ƍɱiѼbEۚra$͖L8u\t"2l8cLI.ٕQ}UJZf>J'[̖upLG[{G1e4.KWV@ PSQ-9%f Uz<OtE*cyݢG(+e©L4Ox#VO}lw0MlN8-*_YynŠ2:ơX`[brؘs2?ȔX(;2 upA[W,gQU zĸ/VY~%>JH;& 8}yz ӏg@ 2sn]"=X2c룜MJڃ܊"ݑ萵*Qv;re}eGDq#Ll̒es۶>XfsR-FR939,[Nu^j%仫FĢMud>c_=Gv #j21#œG$,*QmuW(.Ow{ aup3ޡGb::ׇFIZYee nؔH(sO#;Ѹf8; Gl\gxIK.hs0 -D(aيx F~=#(.J*HxE>/?{rmT@ 81[ֲl[2?IH"fZdm׉Ñ+(,pȪN-l)ӎlkʓ;k52ʑcMUR 'S+SD+_XמwIuo/1ٻ8ReܓDy; ֦vf؎TpbLʚeI<3s- ru'뫼ܭd[]2O1O;^r3!m:w *hڌKXؔ!CÀʧX*e+L]negH]*3u^dNG@trؽ*Ym_}%_~%_~Lئ|+W/T<X(,8_Y YAr&Q.ڦoVԥ̄*GΐM $˲s"\ >yn[m2r ZPx4FT}ǝJI?*ͨOCx)|gAy~~)êgғ@lRUFhɩi1Xz˥pW[ދoGs..T wxOkZЁU)ٸy_9@ 8 ?::5ERF8{Z:ބSZČS)9oHD0'\R9玮$$; R_*6e!4ʵBC.3?$IF+a]TԋīV#*7H\944~Vo,ya0˯!t+.*Y, @NÏSz֑9[Ng^q}1:tϠr#@ Xz k@rϞ,`rZLIJ.&z8A.Ktya@`{,ʚA0Lłk[QO1$tSg4 63h] NbyLomLv7 j5 {eozU"B! @ l ;#!5<^|mІ>XdsP,hmе'>S9{ GtY>L]lX9j+fW'@h߉A[/y~d5O֎<_=څdzD@PE0hx^yizM`; *zO3ZK f@JnCUW jK>W+1ɳF'R-oU|3HGtU"{#;lppTM,>{?5Rʈ)ߎ(ѷ|w3_XkebC-zTUNLɱw5f}h]:aaaT߁lZ1}Pw{ aup+p,|4lNn.W0z-'!wk-z >@2@P(=h۱?U\7\M2<:%A7hnV/2gAb7't W4H +T,›].0m^f]gmgtvlb,X,mwlcCr˝O.K$ZI26XbO,oпeE J/=GV 2];+|7p2mGK_QÍ 85!͛se-KT e7vݵ|8V~q*0.@p_}-kwpZ"9Zr28w0I+J"l 7[@g Ι_]"9+tAx>es9 [$| IDATVgOy1 k>'SlIwtpr,Z;ͲR>ǜ t*dqRҏ34zLٟ!ywג:U٢/V'Swӥ5"y|4;~:;Y<֚&cVQmGTB`a5kP /ӂ.kS{S | +ZD>EH(CK¦1L\$&e@ 8*4ook/={7q\@dx(̟Jŷ =秛Lxn{߄ǴXgYrh:v W'Ό68M\V)5'lf!JaAF,=2Fi 8Xvej+éxM+tBӘ5k92ʧЦƢ0yn>hbiң_q }5`hg\˻!KwBRIgΖkL?Ў߰9ݚ244TYhEII`Jgg/嗬;0Tk+f/`1z?yX= vM:OO@\ L|jo:gl\~r)6!k4yQV߳J]݃ǒFe,hzh FmbX"FovUÛn dDUMK'd [CC\wY Sq! E؞dk8 9_}SzStߔg^.5F͵֔Wɬ;B!gB9Y$$ID}n=>ojӫ ٓ]*F'[VTΪT<^ 5/dcrF5G $9'ä/,kϻoUڌ`ꘊ]v`(ct$QzVufkS;3ulG*ySXvIeͲ$]yU^kVŃ&`׿[Y RCi6;Yz4m%Nlʐ!xFa@S,^wqׇnV+Ѓ鈴V@ @z O>mj߱.]{ GBonlˍTʝ6#&hؿ-ƽ`MfKĊD踶bmFI טo3Pq{s);Rz%/ 'aEnWRﲬ3=R݈6,!'3>lmZFgV̢O1}DENۑٚg @?//v@9#aI;GLn˷ERuV8+LQC?=Ulkȳu'x:MѠ,YwL itVӯٜfvf`<2ȎގL{7BT˷6s-[M8GOOnER.*^Nt 4&M?gؓr1 M7ni-%>R* ]g'~b3Km7%йO0l,]JN熾ddM'Wi>t.ٻQis6﬿[]aj2zO7;}>үk4EK?acK GLnwmlTPs̝hH9e*f/IY _.ߣnOyǫ< ӭ0=4w.q7Yf4k֒~ce&ܗKՂ򅧜+բG;TODTIb>5s/^7ui3]>ŠiR|$=Tqt*@jSt V[sn\rcqLҊ_n\ :T)ٸyE@ IR֘~?&5YufDa XLv-{˫_;3ϓ,ShHvL¡gj<'; aď2~ۡ[C n7R$tbT踱Z['TTU+NI9q̙ '>:tⷿ2#S8gw~͑Oydޯ}ɟ1xZam#VLRmPBck yf¥PlȌVx}b%~kĜ5yV~Y욹QCFi WsR ̷R+|1Ƽ}V"/]{MM}Xʨ`eg. s혿j"43N3L˫g$v}owo2٬tƖ-*&冦4bT^Ikk`놅l-j~#?>.Ɛ$[X@`W]ݷGvlC=1z"R3d^1t7j7[clbKcXҩ"^B|8&s'v$1* y{uد_g߯ipbDFVbh6ޅvf$huEGU7"j&b*Ճo RsW@&1> ;\=[8UXv%]K/7:#'l:rywy:+7&)GDBFR5ZM{@ΕTWwX)@`;؞> Z *iIOqA]fŔߧ|a- s(Q{*1kѠf^"h8Ç7b_ېj iOS ^=-y#OpQՈ-]Q{CJIɦﻇ3|xB#߲.r~vw7+$ƨZj[{ۯko401S}0K1|ZNSFO|ډ^g)*;|?xNtjDZyD=ŐML'4L߇u';璋Qw0}1$$[D=m37@rٓ׵-ԭ@Z&[+Vߠ㢿8z6)q#lPҩ_&2Vsmka*;Sхv`޽ݻ}7VV/=Q(bKIȑCdKpi0u>Uq*ӣMEi%@PZ(=bP㝕J%F&>Hvҍ ldEDQixJq*بcOrYVߩ=4ܼ!Tu=ڝLr/œJ @㇏6YmYnT1D(WZn;Pظ!csiV߮M DX\6Z Σޛ;xk4[7GZ"@㏏6fr+ӝ6 0hEA\5yZ챌÷HZFg"SOFFG15Ѽڬ],,֨n.1_1AORi^=_VC=l?kFc>C֩Qx{JQ!J9՗eI9ܣw ~;!utq }X355NOrsx5eOi-ؔ^ 5cL|} "49ҚJޞo^z8j{>hƦl%5.hI#f?A@tE=#+̓cՔڂFa @BR|\P쇫ѥaÙ*@ ORS p'פF 2<|)K(pQhQBҝPOuqidx>NIFkq Eh\0c~8NpW6p?OP V֤׿,^rF=)nf\VH]Y8Yz Y> ŠOΆ YgJrIe-h3k$2<-dk":$2< 'g~"dٱ0|Y 7lk_K9 &s+=mmj)Zs @Rv^;Xs<Ҭ@$/*yKokBE%mw7Uj !,^38C"!CgKJUA3i_Iҡښ_iז>W,X]^.H&Bnz)Cjk;K~N qB}̸u񱯞19Y*SMxS; ,$XuA!@Dms*KŎn G.q="G-fJP6`[cp-jû@xyq>.'뢏m4eϖ =}4/|E6sׯΥheru_©+c9~Lr9_Eе8I ֐K9wUQ\K$oM9o @ .+嗿[\^#ÊBJN&Q%tyR4lH-GX7?|@ 9y!tƯKs=%] ~}"SzP.[]UҺ/_)$Nfbt>7 f:Jn i?&Ѱw5396Xߧ>KLav.{ޯE/q|>A-.>εxew5.hkW|iC _zJ";&ABN.jk3d ýt9gH%kI˖\\m&{(kfC\ FjvlHQJV\k X5;X/1jCOyIUkTuC*.L݌ro=βOp9 yQG!z]]ٷm:\ċ1{g%{3,Ei mDʺmh#>]n~Kv.45S)l-0ѯh)0%Ixy^Ke3]R9Fn8rÍ }F{qkg=cr!铩UGt{O_+86vWI72jQ38Cմ?'9V׫@ RE&& xUn`PyT]v~nxHNz- Et2gu4>3g/gPeaIA՞m8sJdլ#oG*<3ܛU_6ϞV:Բ)+u;VN \?œ! ||EyY~Q^reY:Bj fмB6ViEzzUgTwUo d_{YEn-LeyElҚfޅ'*$pH_t&? ާRٳ 86*-َ{$n9MQhPC))v^N6JNp<¦6p`x@j|,fлA09! T1:o58 6·#=X< ʯ dZ=a6rI[1 볇 W*prF{QR&^XD/I+~蔹ZӜ sb 6ͼ}%zlBIBz`[݆??TV}n}+t]Pz}PF{M&(H 5%[GHH*U"44__S6nȼy@ VąwbX̟>erZA }߂S  NMi"v߀wR6MՍ811!(_NAk|,Xkewr0ˆXYv\Nfq8`/m6{*wY+طCo ,/>:m ɢ~ r ٌU87D-ɔUN輐 n?*ts-%f [CY89SB@@ &rdk >md\J7W_e67vjA753[})A^VEǒm6}8N/}Y˨2A[=| } l8`VN@  \EE|5ю+GW I4/7H+}UATe5仫FĢYPKU3drݮ>aaaDCGFX$̟Qw{ aup3ޡGb;ѷ=ʵOTUo ^\ @ (o@' ؑ ֤Xq/ UExh]酼aXkx(+8c8}|DiNO^ʁhJNvg>!=.?'ʻ] idY.h%UXbcc=~Z|B:6}KSPz_/UZ1dfpRʷ@œJ 76.{ IDATdP:Z3Z@nki~.7ͻ(;,kҫ4ADTT4"v{ ciL|c5j=h=jFE5VY`( , %y.s{Μ{sfQJv% @ x2 <2W:XeB\^tsh8 "!,tpyYa(/P&9cu Xc,xƚ 9HA+"c9M@ y J1422B022By'D46YC+qe`?n~l34ݬn/돀y!)5o6՞lcʗ3z Z'?:.J$d}cWkcWBjLfØlSr~g;U*N-x7ef#D}Nz$H 3tWDbY.n]ʕ+("&Am΄][[hWpOL}+V `V4f,9-AHDv:c8ߺYyݏ}5q.j$Vc&u߂4@~3bS/[Њy. `ڏio:kcJve^JtRzFy|.FݱӦ*%}7m" hZ׮;MjN#kiƃKknkJ{b5@)c)A;KIPە5<;{of N̥ǂ䋹̯M)5?N0>ۭGT.|I )[Xx2ZLٖzX;@iKO>bzw,:¶מcnr tgVX򩳀) I7 jkrs;7INTö]]2tni\]AGʱVԶ|RsؠD>qJKh"ve?2&HpJNllzL?X63OA\^ѭqV ĝO轺3.{~`uΨlͩ] KWGDg .~۔dy֡ۨ |Ҹ4Y2+<*CR?r=2:uꈻO  q_g-]NV9ӣf9rg ͩi^XgӼ2`ѷBݲɬU]6}ug~3a`@4f_Ld. ?0o5@Pa.[s=}Eѡ3IufbVo6/3@#65w- gfxpjzun ۷cga̝rR_ %%em0WN.}BrvVK 'Ӯ,+K~c%y;7obFg*n^˸K>\5L85n_^Y~"k^z3Ӵ$d4I#Z՞3UT:lWK{[c^_ޒV3:cao~6h&^EEєLNڭ įZffs~șW/ M?IƤ6+ 74osw(`l pi>P{w\i3~F;xbiN&_^ǎjh{;:ݏW;t!k7lfei%`εK11&%:I$*ׯ_ϱ x1v wE\ms/3]gqjcizS$F),gOT^>Ø8n7W%|qhGıĥsto~]9}s=C/ 53DBβUGk9ehӷa6l",My2kY/h튣%~jS6.Ũ4Aq4#:#PifNޞQ<ߞH0n>R`RΛO',W(_1GoZPgmM-WGZ BS >n~5}HX;8aǐ7ƭ#A,  u떣T3bTzn~2e8ߢ4ϊ:6(ՖL]"Ny3>D4>$/O1IŃ'+.Ɛd8fI)S0*YbOF#% bc _)4ԝ06Mm}+O~x~ؑL/z*{o5+15A&lY rB @<%̈f$QbDǥ'Q_erlJ%k!ǫʵWhk`\{`dz5F&B/IN"EnG!{chXAڄPmBC?Ng}.u'%k8c`Sfޗsu:l2RLma+cWFhy3-h4??t@?*dŵ"ʧRκ?i Sd3qhhYTd8Y#70*VOGLUpD}3:cş*.厣-sOճ7FKIehE="GF,l1q"9t*LDe G:} A*5 }_.~_^esNa$4HmiVJ@%cZe*&6} bh A~&!ɔe@ 7: :)d\?J1HUi!k.3$qyu^8-8$r⡒.ٽ2_yRٻ}T¶y2r3=źD\F0t|3]$?%Ҿ"r!հQe([g~m+Sذ!8xU*D8r}#;WJdc9ѕ*Q>q2JpR|fA2 ZpuCⲕ:ɜo&|Ն&UgLT4X-+ ӷ2ԙΑ °oN!> :vt[TnCzVo&@SW*ӴHdH1Y{䇑=-$ic M}Mv1ZDh4 I1-Yi`v_%!-EJjcc1rud6Ƀ06/=ݴbڵ.%&t5BĄaݜM.X-$l'$={žE9(^ 3O/ %a)53k?'EΒA@ -:gͰ_9t+G7_Z [X5v(&PLE: yeZkwj*TT~ _i F/.4l֖#l\BL{zn!nOLB* 5!ss%viuG8S:Ut|YsUO\LUEs.AZUֈpc? Ғpa\PX@@FLM ij$xehFں.)ݴ4͵r6{1iG=' w3ܑ`TGooY9͔Q9'6qow;Nʵs;{QDz}%Jե3}ejIsȲPC 񕔭Y>9NזsÛ#+dmt OVm#ECTi;myPMIY+ǕIimOĄz#;V\RieM_w==G 헅w~e]+i>q5|Oi|m3|3P> g-=)1&`D'u췯Nes~ZM9Նtg$}?DO^_ӂ=S<`+US|El7 ̝u(u1S J̞=[ۺuk:s  v\n?S_{=̬oXr%uA&q!H\\jJJBѠhj/jN>СCٻc=j [g@ xz$( n߾MΝ;H֕_6Rhsv5J:ZDFG邢T11va %mw~հ:0x\R~̙y6^wլ!aؙ"K (RS_nuGkaii=NNN888`agҥ%3ƒ ezv;Y" ́Em%ijPo|)F@}?7ES H黻-}*<1M#QչXGfEc"EK(3kE"ʓOQF* UI!1ɾ*7ƾ<06t (W4plSm &nVjf)M;3.MS˓ nEy?&Xv 2d2pZ ),&JY75?SX15 z{: (!d_*X@ $2#,2ۮ> }Xw_-ڳS vsh6mRJ"ƷYӌiB@ $RZЃ@ ׎FA7 MR3ݲ_~Ơ0yjywV,ZĊ kDFen #MTBN>]dV?j#˲nԉi5'8~Bx.F}N*#)=_q6 yRiů p4n؂snLOz Z7eՔZQ[c\ 1* ܌ eLѿm{] ׀!^wG}LM4<:pYs5>kGؽ/O3zלYՒ '6x~!u6  DRlpJY}[$"Gl킋@i 4|qsqF'f\tRV'lHhy2d FT$eYJ04D+]@ o5^Č+W[3:[L#jM {Ȋh\Op}> #AHDu:I1'$c ?C8$1F2D %Z>ǧ"ouuNPJn%.zO'9kxv0~w{Pht&o-^M3D :? Juϼt C>u<ͱx/o" j_ȫ9jNŧ9tWΊ*{-03&)cP=~`:wY ^x2:j8lȦ4w3ö#Fhu‹33vog[V/Rb9$:%4PB%m^vHRZś=Gsmz.jFY͒E7UEeݛ9՛pn/V|CF ]t+FE5͕{dָZMJ=N"XDE-~@P(?}^0E*89gzLpqsBӒ+1%+fMYkaLT^]3Of-]qįCmʆ Ih^3GoOXШwYE >M-WGZMBSKN c7ƭ#2]u5D`m,pf}qRSSH,Ojɰ V +8N x(!vpfyCsHIyB͗qkΈnJ{.~gSGzY,NԜ/3(@q*.>,_T6 clzxzXJ͑jNp?"&T gС;nkafdȬdI}LON2&0k C'3y iң!ӱmZL.$1!L@BA!u*)lYc@)?29t%gmJ):fdzt5~IN$EnLS> ! |`I wW/y^ DMƮ36 ӏ6fU3̊w$vN] M9!N@oQo2-Q4c`l f_dF IDAT0ꃍL)\r3|.d{&_}܃0$oR(+-:vTgBC{LѩOa4*!SqP:KsK9~s82*?DH11&fV72_<jŰի^7ɢ#sTQml@ ׉:$-XKP'œlbECT2cL/K8Ityu|ȉJ Ǒٗ_[Mo+_'?%Ҿ"n̯ e~h=3ƱɻgzΩ cd KQ'%zy U8*"Nԣ\؝=2cLKx){2j9wLmAN0~~C9he%u9Wl+9cƒtٳY3y:dr 8@I/\QVˋ9Qn}ʋO]EՖL]"yԨQ50/"֔}y7<$ѲN/F8yX0$[{U&5L9Ο"?_L#M{m\{?3 6FJR _4ܝpg6*Dmryb94z ]9`֜WcҐe@ oH} 47g-FaCaq<ϫT(<^FѼR"7 牮Cy҆12hZfA@S yH|v48u)s . Ǿ;u}X s 5nCz~j|%cfhb8[07ǒ1KBZ:%jcrh@j 6Ń06/=]="SndNjCv4-E G֞ZJ ʧSv{ZTIbƻ~/Ҿn2K^#$NILNȏ, ʬiŖpGX0eV%ͽ`@vtHt).+ J&ʰ;=5\蔿3'֑ںap4y/ 7[m\H !0Jb"QYq"bh A{;yS0 )R@wՇP|I$VFM>cb?9DIr''$$Sk@ (l׆-^'ܺxK}ԉtm֧6Ϩ$[PHaL*/ϒ#hfnBQ f;͚)Z)=~IivcИTf#"5GA?ߝ tA~DBG_#$zKtю_`Gp!#m~[zwS/y`9~#gv'S2oԉ 8KC|j^Dʳe%F@hQFթlkUDz}eJ 2"=UcҤ Çc92puT5 )X>]YvclG1[iwiD>TfmkJa 2Ֆy^c>~, "]wfmay uve~[KdE֜3,WOУmŻPP*HfϞmݺ9sZ|x̂Y{|wS%!繬BSX5kšONG|V`F#Q\⻦8q F~ϣ۩Ʉ&x2f??w*/ti1'}rzJun^LҪ(ِOprA]er4}$ 㹾k&^Ͷ#LOxN 4DmAcfIU޷+jlrcq}zS:nʏG?vđ6ߌē|[<6䋊0V\I:ud:tZFRRh4h4ZjӧO3tPXgZ.LD{$IMMEPpm:wFѝNU,r[[[+fTj0ˁ\36n\i1Cseh&{W#x\RhE gN4A٠@PHMr;Z KKKqrr 'pڿ?˖-+؍/tx:~(Ka9rtʕHuydZkwj*TT~ _i F/.4l֖#l\BL{zn!nOL1`s.AZUֈpc?l[~sZP?ЪXuN+OG26t^}kzf_ez'_JY%s>+- 6pΥ  $oCyXKuW0b 7!?Y+P'i}$m˿:̊. `I;At]BqY r'6+&+gj@ؠ@_טhVx!'籫K47w\{I0؍1$X`lt?'F~{o)m̔]RUt`LF>_K}iO%r7ONiyر:AYa@ D1gFWus U?y$ݤ_ ܭْU,^KlEQޏ?Va %zƒ ezv;Y"@Fz:R^e̤^pe=?2awZ֞".{}8W<^mωwF#V%'B@ یRf@PhZD@ `xxSy*^ C2Z2eL:Ki2O\FD&PmYVI cR̹% >c  Vosxכ5d+oZT))5ڹ}4hS<.FiSJIjOC_<п6*mI6X{>g];ˍ2gUkCv)k(2o>fK|"u1mP1 09)K~hxv0M1qo mAe}@/qZpk&\~yƍ[r-%Q}z Z7ea@ oqH~ńy(OUprNlǁ#qqs%csS9ҋYrd !rn)ceIr3W*'.&FC_򭉟kX[܇uIK`iə RN\y"XsxG\[8Np>) MԼ]̡lHWv/ ΰ޷0W:i_*qξ:*MgɏV[ǰk[#4]OA%W~Jy0&W{Ȕ9%q"5S/Qj>9?49( (C|:oT*UVK>[ǝ1.\`tM_N}GԠʂW &9'=ѣ/n..Č+5ŞO*"ϡGl킋@zs ęaW_(agfaO@  A*jmCv{iuq=3k7MtbؙewH 'Xqݛ_W,%%-)|Әظ0rZ;Z9&J =V 91]Yzh,Kv0iǜ<(cmC^xmw=mk3O jF[< ;GFKi"m}s/JˊQQiz{fiGjO BY 4bi}O-WGZMBSE @FosQ &tR[PCgd2YVRJhh(ڒ6ke| es;[Tм15H0vMq?1%>{5] 9Ŏ)FFen2$Ȳ>ǝaa@/[ \L:c#i8Q"5h}Z5"h(nTtuųV{l Ւtc ÚV{U \ʕU1}d0 z}L?E|զ*e)ט: yr~g[T*GA-x7)8Qj}j@~/:XVK(A;=uu%^;7fC; ,Dw=ڂŧopr^כisE%2ai- 4583 t ,@S (I3=~u IPub<&XrjRUF2cL/K'4q$-r[>pH AP}9>fݺsDU䍨@4Yi`~DڻZ)I4waz>?^GS t@8hB9 tQ^ez{mPabᄑ0ћT'%* y`B{~Y[Z4{'&00ե3Mδ)OSb{Qw ?~‘#9>Ӌ(%:TZBsZ)C!,; d+0搒Ʌ/qv+1N{.~gSGzY,NԜ/3(@q*.>,eu/GxSa6?AUE1vi ~`uNB 6nķWsjw@.Э'ʬd^,k׌z5h:Bc4 IC.efh9DHfRyVQ!qĹkĶE7:0E c\3;7kqf`͍2@ ߅u|-\=VpT 8hlh; Hdmr aٵlڜ[j~ !,>6^yJe+[mÁsgϨ}[>ޔ~̈҆1R2sXpuCⲗKѨҶ \%ȜZE(fy6 ±,}ͽYwv st}gqd6>֨-|ش12lb<\=4'ߜky;Ixp{l*^'1vAwۛ)<~3}qTX+Nk/cGD tA./KWR$ݹKdYO*W_᧋vme>1{L;5S%}N$1ވv4TZo̲g2S?W;j l"ɰ17<=c.3C{z~^_y#K/F:,OaS~NTsZdgڐn PE6S1k״vGׅui7ײElW(hBS| (%VAIT|vȸ|ި̛Z'dEXS[&=!8ٌp"b IcVԜ2_*$Wf94z ]Yye6.9Fؘxx`c$!5[B5{IBC;)Hi۩ o/ԆZ__طGȈY}Aw}" JlMW,֠?턻MZۅ0]w#(xu9C3lPI$QڄȌ9I=;FtLgf|cbݎNbG s/Y lϛ!@ ^OG2Lc;Ž`2QB)s`ApnsKgGA }\L/Ƹ6hCEvpyB<3ְ|3:ߊpnљ-:80nt +Ǚ~I0Ixs^LJ`[g`Wűu=jJ7aaagI1r&ff/FЪ{1nŘY|Xwnr(2^62a իШ-;} egyZvPoOR$岓؍}%Ntv(ݿ-L$|Qw] ǽi V6m:tʧ8}F"ʰ;=5U Rkk6u"i#H#^n۸bAB:`hD&DjQo;9Q\?6>LBoƝf)_9 UlbӭϘٻoR֯FhxL(@F=-i*ʑe[fËY%M PF/-5_דe߲}r{2KG,$)ĥhR Q*X:b!Kgm&﯊ zDFVgf=>"2d)׀kyRxLA'3Pv̓BGpK[8{ʦ0ۂ2K=EҤnn5ZRޭ lGrn.̊. 6z_H d{g^ ZAԭ.fs'NgdWWZa⿈JK#biF|J+!@ۛXt:Eq.JIZZJi(Áfz IGYέ)״B2{j.72S5D[ iS;3g8s gM(vo(:vпë[_ug ?JJLʺ`Vh+E= ,_z| IDAT. S>ejb.ƃA ^4(jT^aϙ̻^™yK<+P&6Jǹglu9dK@ƿ)7GZS,yf 0x |XϏ8,aIPwx܅;%^KwƯ}UV0hkB޻0l=C)oAMV R$&b7fد/--| ed;(W"օ25;5z*PoI}LpI6kK6wx9瓮ipwB1 ݝIW21|j4+ fzd;iֱ.n\O9Q6̔Y7I2]貨R%ufiN~!é.]ŕ?ݘ~/=Ma4\pN nae.9D%yY@X7`h 1ii@aLk7'0w5_JD @(@u1V=,Q)R6%cॊ?O@ 3ɯ [*#BSn 3p3PHaO$`_?[J{ھT'/B0h 5# Hm0u$0=#rcT)Faհ7Uoa?9|}!.K;-mB֛xNǁG^/aT{c?Iۗ^w& F6ojmHHo!P[q0gbSA_{{{\#VkqG@P)Z]NZDzE Yhvn@ E PH=dH/הpڄKPGsb 6? am77TCOQ1'#NOx~<X q~;w*)KH@C̭ J9|<`WcJD,{9UJd5agdpP&|0}ރ&6?pY@ JUL{Z%`˾w]ٚ=HUʞ̭[]ô13~ Ο*?9x3<83\+4]˥;lƪ]OIʳx.Ј(W{w>Y˼9V=,p;¨ֳ9>>\Y\J4oGxHݿ쯠a[gΑ\EI i/׾k&'=Fy٢(MN:9k7 QH7}is=4Ց`l\,Fe6"s@ !Ŷ2` 4`V8PګZL2SGtU_HHި06(lMxv5c w,t7utP53sNVb?9G^cx k^ldS{:dG([lh9u- A6f3Eb`G{}}}bccJvDc H{Aln ܌SRx0&(HA)gSbIxL iiR#ʙ!/tV:T«DfdǯW!_sE"Q ~DQn=hd%]'ur?&tc}ZI?L87H|=pLBd" |ʞ%섓$x72?O&&+Uי vMAuTL  C4QaD!Ն,fص _̻˦Y<_%B!`}w7/auiB]޽m-GeyZ=*ii}/FeyZvvs;햭[z-SްZ56/@ xȋ#SK'lm,f!^'H4c 6cq}”PY@I(-3/ql(QII$<,I>ϗ:zup+ Xw$ot$&mØ !}2H3:Uz6A#|Z՛m5@r A???*TL&CzSNH$$''J&M 1 !ITitBRR]di!3D/rÔE kKd=Xe#4Hݓb,u|2H5qqHLl1Ҧ#itI8UJ֍!sj)M;n{Ga-u]O9O\GЍ9?! ?@r47ỵMIH1Sn|rXȳYd'2mJ#3]S%ƠԤ[@ ;gkzb¬?ByI_zZna7:ЫԕvǘY+=Ok_Y W_+2f/E|ƣj̋k8%fщ ח~svoƊ-mu\'Q>巭Ve+6*UǏGGG]]]$I!Jh4ܹsҥKcggWBtpLT_{$a4lܕ5ؾ'3)Mr tpAϰ<A:D"EG.!9IsXiy/8&bot@ i!- }rK*z@  zeLur{ZSέ&޽mr3bxD"&JM)m%-ӼqD @dŴ•Vl]XCWrtٞ)sHM!9W5~ng~ ~?gb̪YօFP6Xݢ7ĆdBMWTV^QoLkbKq؏rp!RgYir&(]F.Eg+Ҭ)3Vz ˗kGʍfdOR^>!-\Cg'w$111ԪU ccc:Ǐ.h4<}+W`eeE -x!i׹7ω L;KO? |:3S#~q%JJ%ITɸ.I90s-_Jf57 sO#zߵ3%[YN*RIZP+%DahaW/?$"A:!aXۦ_Ξa\tZ 7nt i]\چ3yVԛ:Ƽ@o~:dSIm@oO-JIc%a<#_ 4b[m#F<ʈN4; .n1k_7fi:pLM̺3#5[}A4{zfhߑ^{͜rahs'^zfQVEVƫW ŋi4nKK V(pe˃QԘEi40Mm {{R[ufggo,L},;fӾ]'1cƏ32Af 7:1_cTn0Qn^"vn…xibKF݇7`\PƙPrczZM7mZ3y!y@ ̩զ Nۊ(ġ MڸY9.m~8ۂ>0NH,i9mb[K,`y oe<ˎY !uLgvL}oObEC:erϾ63re߮R%/WñPi=Ǝive+.LNg%M.?-Z}HHˢg̚֋wѽIbBVckk^^^oAGG'_oڤ GZrG6aSѧ/dL!FSa8'Ckɰ2}7ӤMןcN~'%LAGfJ.4)Kgowř>,8Âp<ll9>8xoF)X%=gK236zuok~_L(SsYzwc-9zþWǢZKFSLIamgBRRJd2r9" VӤmJKG_rQ@ c|ȇ|,a:6ǹſPwGdǗsdGjyc5]"TuZԄ]̜oQLZ ;ɗu^ꭻ|2`ʩ/ӀT3p4D_>&ꦇ$R} ؋tNq?A\6S>ar̻b:3lk(y_^cZKZvgM1k:ן瀃򳢌1my2sԟKGq> |)shc濵}O@V;7qT $ø<ˎM&B~Cx$HRBH$?&L֋g8u)B@cvKQI&UWmo%0, xkͅ \+7ĤhAR#W'[Nȳ"cWH.w aJGLwM>l'r+//}c:7; ۞–\Qn3/3\ٕf/nq;_9i31T^l=3+ADigEc{9܎0 &7cED! *J @ xg$=gòT7 4~L}-&!LpkMл,_务3?ΨSO0DQ޽*hs~Jh"||3sEM%*+/9rˈ=](cfN^uu5%kLF;Vfv3,lR':)qqDR6JrQ<*xL <ȟBekcL- QpU9{oD]ꖱEoJOyDno\Jےk=|21`lmGp7tNirvj3=kzt z-+gEciJ53uqOEDq|GCJŞV@ Ar&OMJFC$i9!f&4UI%ktز"ʍh9}Mˍd^c I}ڐ'NAzJRB2 0R'A',NA=p cLdꩊ Y33{@*5]c-os!JZpkҁ)@AS6ҷ {Ff᯾|wxdA/Iɐ~LmhTA@ﭩ㗿SWը9٩рL.rf:T(5hxʦNXU>adVZ|WSG!]mO[E[yI*qY1[6;F2}2H "1-y>SSY>(̟%'g"~޹ @ /{hZn#Ǵiƣ9*9kn`mā5w32|\ !,y /r5&W+Y'$95HiL%"Tg_d#⨇2ugh\*LfH=_6ozf$_[ fU2q^]Ш==:ŕ]Z5!Goc<&|ďMlߤBCa pwd~tV1Z|u*-wATMJڮ$ /D IDAT9G; ݞoٖ<|0/L~#MZ @aKtziϊ8rSIHd,r?0$2M#)hTE_si;?\!᭔@bqdȢL@ AI!9.{6|B-_g,ڥXggwFX}l51J I\6z~ +ZTaDojqqeߍI)Q顗WJmLtZ8)CaPX++o:@VNTD~|WטJF#%&>u6qN'WHc{$[tj.eӜ~OgoiLk3/?KxT[nWUIQ;eкF,[7!y;WeUx5#9񒨘Nm;jh.|'E`0;y@ZQ*ږǾ6k%8Č|ѻ"TX{Ѻ;۾6p׍IC3I=(ͮS#׌2߻{Hʠ;G@P_~] }Zu?G}8m@ITފ_CzOG!=[`kXi)2d<)P ÇʔEw~TϾ#}hG[iz+Up5Șۦ2*+ G=4o w+1e3"*5GW >F[8пݓQlI>Z^q$` $*zLJvh{~(R P_4~'P ˴]--}T `|zfxV%{ e)׎Xrj<>*,QL(Pv2u^qi-v5 J\s1 FVLR;cIx@iyYՠ,bL!cE5QZGm,[Q*`>HΝiݺu/i I$b} ԋϲ~J: t9V )̥j2yx.kPZB }֕__E(h': "Z6[I^"efaS{{wh,əŌ.UŔX4_Ӆ4سo7s͚5xyy!P(( d2Y!HdHϲs`f\͇1'Pg83 6{@,{ﮓHtJ>Ŧ)S/?_0vGf3#)tW}mg0c\OJy\o ^>k.71IGiZ5r&ͿMc2/~F|ؿ+2JiX@|%$$ǝ;wܹs.Jz_н;R$G]e_*>[MM w"-S~V0OUд,NtaO[u9 OKcYƷ{%Tn0ث1"X?d# fF^\OٷSUA3]t~n]ΟI#D c~vaM^iz_¬f&稞_QV5c8k/e9%eS%N=iS(Ūao^þ'*C@ 7I}͊;τ뱙ˋ(eEG~'v }% A쮾,hF"\Jo|lf !lsrY|>wfJSyuFDsu%\*o{T*-=Yw0{ʎeߍl`IтU*ev\֭.[}OKzϜ Ǚy\sAoۮ6vcծu 43g/zbgQ@ (}2+ 솻 MK˰’'xw;nLoqs~) yrUE<"S9`RWt@ _ X:akê3t)|=?LDAz,  GQ;Zg^P5E?k/?@cz}ܜPxk<=s&:V:{1TXw$R *fCnc[@$$$$8㪽ߟwk샣)501bW }D\&Q'4$)U E2clLdk '1JY@6|ރU?۔B\.NJQ@ '9y #IJY)r=wo[QwǖxOlL j} ұSV,8LpC-XӺ>B OloJ{GoҖVrlkVlAѥxD+=9ĄYr?ZF {n}ue^3>_\_~ԐTµ+tP(*4$shS~V%Rݶp?[($ ^&ƣj̋k8%fщ rUyysDB| x맷88+f>iHߩ(6tpLT_{inh64+?kF}YO7w%vjIyCG@P-Usf*~YCה|B=؋?IfCZQoj4Ln^QKZ_AqȠ+X1%(o9ow-$QT; KBtANie(\a%0n=՟}SQ9[v89i˟Tl̇_7_gto=w$% 3G]G%6C*unL3xO8 D @PD+C/ܼm#F<ʈN4; .>b7fƬ7g&Wϲ3}6o3WLK<G0{5~D^o%źfv)#<\ P=aқ47 [DzWjL֢ôMLhhZ$"$=Dz/a6eLp]'QrczZMMM`Dyؔļ@ ] >o+fL48u6PmP_~ ''ϊuLUEw~oAcB8mOBV6SfmbcPWrg4{ՙfMⰨZv?I탖4#uPìq{tGJNՈAF\4C!1EO|̚֋wѽIj*i&Z لM]\GJڟnL0 92\E Oȏm)uQ@ F˺*Ɵ૊֩[:hx}ɟ 5]2&4ϿqHՃ:ro/@i.I|kdڹi>sIyL⌉4񜞿9 wo`|'԰´vlwf1O[:ϙ9V#GY|_ę  FS<ˇ!XPʺD+v($/I;۔*TG@ (P#1~O&,;SmEJ4eͣi9z錃) zmPW~P5-z{PNA -+S#7S3T[ [wmuPuCztԌ=q+`ۉC8Qx ୋ%=D@O *}[8măIT9]!eإ.`h5@!9?R򙯓a+Q$f)M[mis/![1i1bX !Z @ RuW_qPdO},h }yCR$׬m)u~wc V+W2>׌uگ/?M[do>oshb yꑜ\VW>71ݙp%d%tf{VCi+fTX{ym8.DUu9qx+ܜP-_oGBZ:Eiv8@O|Qr*Gܚ݂H, $7ӯ A>f7B'Cjp(Ż-<f//7Gq7?*X2&C#r^] yp+]@ xdVKvDt03)dVvG0~Kˍ3\k/et3)x/,qeWZ A=/aV36ߤL j/nqzACn+iz{ sB\vZڄ74?œG<_¨&~J屷/kLL4aY]5߶dz#8ViHx?@PUPH@ٽgy.C-Iiwٟw#0ܞ mlPaߴ܂R)@mv_Q(oY|݅܎7ZF@ xh4i%EG@zȐ Kk_);X Al~nnTR>;cd-OF.LVx ~w>T,S38 []rNx dTa'YsNF=&9=صiE.{;m SYs-OJ]ҳ'f:o&G~5m& ƫ ~f1tBbRA{Ee[խ+x$ׄ1kpw?s}XVMJ "<34rYysqQΜD4MՂ%#JTWϔ,3gC#*s\!d-g~h@  jf<:}"8f՝߽mQGm[?u|<11-0kJǺOY09`OHD @INN.&Gӌh\ ԧcMR4ɕ_6"e-2`MQ*U J9s)Ě6-MjC9h/K_NpƓ0Z7 (5) IDAT\HTBu)( m* u]'n{Ga-u]O9O--/3Xd0j"␘f=Dy/-ie'x72ՖCQwfj]ibgʔӋ־9)2Z֤?4F߬=얰q#zu5:G1A& WHI\/Ǔ?,[8.8J0҆V8uQz+T.d^|a[^Uj5 kDj[r v+, eŶXJR@ xD+K'lm,f!^ٷ9DA}iIe:G'L uݏ=2džDâQ<):r Ijr[l !)y}uGHOHMb0}ҧڌ NO Om xYBCp`,v>eP=Q"C.Q*"K 16&t5,ZX[B >*5A=m4SMƜΗ 7 ۞qΓ^e{R(~  wtWK p߉~K\Jfs7L}8:>,8@ 8'$=9ĄYr?ZF {n}ue^3>_\_~ԐTµ+tP(*4$s"򳕓}={qiQ/{&]y9A2k/-ig;Qcb( އ¦ /i`ん4;bPY6(vkiJ&4Gq F7o@wu9o5 ;Y*v~OۊnwzQ5aP&y΂duW#2suTfNHQCzt-c[8fwOC)B!ƴz)l?i= gN m2v*ynJڍ+`yM-~h֟@<=`470~VHKhؙkKx?xS!B!bcQBDZ)pqwFj4agk82Ϗ?=BqMtlɦ8 ! PHO+!ՓNDR+\ܭMBqGZ'AC-|xF@H !B?Y{T!Ǡl}όvyMQRB"O~KLx`rz[v+V`NIШQtP+$bŘ^ã^Ðr-so<Ȓv,=K:nf5L ?B<58[B MƎ6}9(US&+1SƘ+$x`J !Bxht:t cޫ- īZ ^[pS{F bH jgxk0vF,69d!:uGrXc֞#`! mU >O׮&®&m<| _ J0 {KiIAU F/}[K$r`Ro&={OߗiGBv־C5< }O!]?1XVHlJ INXuKk,ї1g1v_(^BьivE/fS18˾Z:1h6Kp!Vtm'o_?^zy}ǒ!(3_ʥ8O(+^^, g#tWtg b%+*9 RO79wl=~ULfOPk+9uٷ?[2i_50t4=]/۹̾K ,b4,cG٦o0u"T"c2 ֥:%B.u/ !A`VļͶ!`曗khSFSCZ™6@*:Wbю,gţLB!DF gV2 ~h а?@&m!L^_>lÚQ h: VwZ$fz8io318oے%0\&* e+BoϣdX;Zr:̝]p~6dNǞp bΗ=4ߘZ˪X6ύݼռ6kצvzt9I%,j;'=2 v:ٓx9Ԙp*5OY н_eF)4;5]zoU=DSNG]9X z+iVZ Z:vO3quE;?s'Ը4tN&S;@U3.xA-'YDmpR $e{T>Ͽ[fX@٧ z dEJ$I0~Ɨ ?oO!?TeI&dI xg\G0 mL ‚ɜ\dj Tq![/'att@X҈ѮZn*r`ZO˦DQؽ,OZHTb6a͙7D#D.K½s9tOuBZa"huqn0RJ0j~jn춶s||4 dߺsVBl씀dvnتv@F=D Os/a甌SvZocuXG?&Ƚ3oO-}10B!BDx$={ufȅ#S27Qxpll=;*LOn 9~!*8vw\ňְ`oJv~WȺ&zrOx2_X0e۶3aT.oISOn3skR~Sb߷}VUUIg3c4LmOv_tMC'?lД)WrP\?6Jy.rpfY}H?SE|5z C#ᠺvraˉǘvIV}%ְ̗L:e_Ndddƴ @ggN]La}GӔOA)B!hF3/|3zVӫh*}DɓP]WF^Yb c8}}iRqѴK|7Sbx)2tSfe[:*2_0Rt{-(agRj9nHy&#g@|O!B!O oinx닟x+E=fw9_a?,ROfd][P`[c wڇ3(dw&^tNӊxtfL xwE޵N8)-11ȉ6.8I3(wѣz?s9 qe®|m:M]Ʉv`Wf0i|*㙏am?\Lzx &OqgV^)EI?f~LcM:MY{e6rFQav癞;Y*v~Oۊnܹ4/k+8<.Mr=iMhjleZwWikĕRRrS!B!SCRj [OZxyʅv6b{tPҥ}ïRƭݸ'?7fdsFsaɦ / XąPq\~ !(X0< F.a\@ejӴi-BW9Qq wDz렠 -[4bo91B!J(݇=/-qݎUs6nRu@c;!B¶])RB!x$B!Bl|]*B!Cg4S8< ?J꿲?>y6!qn9kŴS !_d"nl:s^t p_@BHh ,QGSMXru1hjɨحt˧5F$U̷v0} CUBs KyQ5vZ i2cxxx?t/I95+E7o"\ƐƗCʲaVn!g#W~iWzag^~ ! 4w?Rˋ<[ԊB!`¹3k #*:9a!ȉz0Ɉߪv:0·ΧMiQ;KNKKgQɲߣ 9Veg|fϒzH^iO ߿9g3PRi?^JHoLUa Zn%׊i< 5bE% +%:xgyRv}Y)O+ Ĭ:S!Dia &xaB4 =?B!}/bnp0'&Bd2_KzݑFV]*|}7^ëYz!MY6p{.h kqփ5[Y(!4Hΰf\s]\?e+XǝevGujH%1!4C*&c:&وll2a601K@va.Fǡ;Tj$qtLF9yHL{o~׹j_U@}vؙL~d@Iv!*#lT49+M5o0XcCY?K6*4;mt~TLHDz B,l̒9 !?K} ްaCZ^Aom |Mnù(dѧhE_GZ/Ī7g 560=shS:d-:]\oUrPl1~`2o0 Xr1aN{Wjי/9MpZ \8v5ၣ"-_L[c If 4Gѡ v5iƷ<R!B!DI`X;xq7irli1Kp!V cyИ|1aih\BO?Olގeƫl_vמjUp\CnPsף~aቭV%2wϵYz_&UZB!BBRIh% jgڽ(~jC<%$3?9S ,zNN6Xo'2^ S^{LN^+]>\$+BPb+ 5^NJ?u×i—{O*v"V"2B!BDB+)T&Ҍ9sn0R*v:-vYhդls||4o'7ɾuOe熭"ؔHIFamRi_/KS~Tzuiħ(%Я؛fcWOήZ4WW3)|S}Ug8rSٸbLj\:'<J!B!D"x4sJ╄T*F/=R  X9,o>x&v6z%p149ӝS|ujFzX6I?}BK/a͙tʾȌig< NU %s0xD.K½v9tB<-⠥#l+*gB-(B!~z֛*`tVO{_5XԝZ,^ &]gc1.Q%ڍ)1vyo PhT k2~*JmM 696tt%0Y{*\ΓO[ڳߔg&Mx+Y8uci&i&  4*-Z]sUU&13\yL IDATz ΰ;mIO+!ƺ!DIАdc"SW2={ݜG<<+ue]5pmC%YIՌ a`43Z;sp6 ̹SIWT8q0]gײP mE7\]]38 I?pBm811>>!-C?zz 'nulΠe tz¡C9|\! g.i6o0џm'NsжVB!DI"=DynJڍ+`9gΫjGѬ?L;x {G:i|kdS-`GE'9]ܓͣ3cZ}ŌuWh>/tZNmAGDN,N-9)-``ん4;!Ez|W/8S&V]<¨04 q94`PՆ{92n#t=vXl/oBXsJ=,,d>*錳, r-]U.{o6!y&C MC_ zԆWt8 ) ,j Gm `X -2*E+!D\kVFZ~ ׈WQֿ}EX! 9Qƥ w+ySBܛ^TK_Xμavh QY8 MlB!J5!RﵡLg;u2RB!OqL1\ ήmj[&#D&suaZ^ Fy+BLR{heI:²S~B r|55[[p s6kMx4}0qh',u fJyԦ2$)tjB¾\ze[|GI^aխv9á3|qn*:USyk{e}ڔC+mD!" I+G|jphUC+5x+13c &+Ҁ7,^qM!xRX,{үdR6r rPd~RxrF*;3*ʻ=C:ńY_P<ne;}e-a|\:?=N#@4gwi,1pa ~vb 4rVttynb[Ac7o:OjRwԠHT/}Jd ťY/mC!E9ǫ" 鎏,T?$j\kжc_n:t?7h:Դ3d(iB!crϡD'A_@p.EM+hHKb.EbDJ&ɖuqQf_hTGg[|Sl8 Gdv'aMNhŸzٻBμFOT"T)Gx(JN}깄{cnI҆BdWUeO}/ea>¼;0hYƔ/{%=qqqܸqHnܸAll,FNĖY,lͻ8lu)wC!ĿTPRZFVP(P*(J25ҟ:6vjjjTRyLMlfP\[hI7cKS+١2e> !T'G;F|9GnCvo0Pg0e<3ȳ_yaYgՖڳƓQPx! E,K)VN̒m8e֫} /t˜a|5<:i/aٶS/wf5R=hk<̷v0} CT}eҠ-C9N96w8ɑKqv>oD>2pyt\ǾѨ1xjԃƗC~V^[7lB|/5 eOh0Su',x%͸(*? juv`_hZNJ`kgFƆRJ볷U]aH C'xdk0R0\rEۇ6tFrW8b{y_<҈ ?T_\Z^xSJqvС(P`؟Tj ҪMKGdp*iDL䰗fxeZ=LC>UٹmbtQ6_.ωe/9?`'fͬ<㌏՟,=VAU`U>}ך7^Q1N^ק\w t~TLHDz !y/1jz=͇}-0iLKOǨn;v̔7^!T*jh4\UV**ꊣNhZ*U ++"{[@幉,r/Vc׉WQAqP^+tm_O59c鎋_uݴ=zq(/aKӈIP 癜_1'ASR%t2{ɕ|Mnù(dѧhEz V] =Y·!,J疌eCG KJʒ-&/L26P Ʒ^K0f~#l W9aK)cvmoFZ~9MpZ \8v5ၣ"-_L箞=Rd@zuv݌Q&W7r(j#oD1 4!"ZuFOpNG |{P|{B!#eʔZ-J2; _uGWt:֨jB.<2Lg 5uz3N|97_[WŬhg4cdZZ1P9{y!r ]5A?>_>eK4C8?f xO2cOoyo{|--|ICaBc'}r IO|XS#lLowqz;J_ƪPMg!_ur_Frɒp?" A[8LA*Yg&g*{ ܰV&B:Tٷ5f,Cb!O/\]]Q*t:t:]vh3y_hsAUrŹ=@O3芏VPi=xa-'YDL7Hq~J k',7H0ZWL/Ѥr,a}s{+3S7dct-o!Yr~C}4\&* eOHQF|jZ z+iVZ Z:vO3quE[<<<2a,@^ލRhh1v =jbߪ]{ȾLj\:'=2BXLpp0+hsZcF`.Gc(~ ,lٮ ;7W }LZ@S?d.^I@rl4s+UPX0o=ey; fjh#8x1kT.FA鑿܈l5^帼k?7 McexAE_|}>KkXs&/m'222cB-Uݵ|yGoKks?3 ͉\>{rOMB g a_Z_s۹i>|r shX [W^XąVrpq}d s>)ߓ%R)_BqA=qƧ8CaH5ܔ:H*JB+Q.ح'gMg$&Gs~ҦW{gImM '|[%ڍ)1z^o ̠˶.uTeu;`OZ 6-iV|{i& w簩Z.U.oIS$`֞l=ٿoczc4LeC- ʁ?eh#aSmϬˤ3NnJ!DXR.ok . ;s,(|E c:²zj;.uc:ˆqڝ,q78cTsY\·:o?my-dR6$uFWȧ -v5m*]{3SelX~˛;' Bu& $Rrž=tqPPb;Dp8Ԕs|DK:|0%y٣@m^{-^3JW~#,wx5M<)tx4IU}R_^8y6ƻˠqqȜgW>1k+hP9akI;;o%)u7+bH?N\N3)ҝc6˽׭oAZWuD?ʎC[EWr? ;7: e6%%7{ ֧rZ}drS{9M"yr*xVȻ«nM_T|||hJEB)OZx֭Lá?Si*ޫq¡%ӿxM]o(Oҟ Ws0Z}a膫kT65!NȻ '5ǧ:7D5||hoIDGUowAc8t>Bxn>iB!@_lICO{~Z$_ckOyCx%6s=&lz /\}ֵ/{d8 @:'a:Ӈg_HTMnG0Xs\3/%#=hYT9䛧 K1[м \?{kWL@~&5Sq+9s!)k!s\fo%K֭V2Mg #safmf\;6Wbr&^;rM.lK4;F bc">4bіy+4njw"NG;5ϜW-BW~8{#u,w!g FӎLL]~ᵵW |4zi6 /3fa7)g|U+JȐ9ðLh6*U%e#~/2l| [Wr?87: &EynJڍ+`9gYv@\uv0~Vxljl\!=|Sj?'ukL鿏S,}Ŧ9QesZSƕmR"#J|M~G"v%ԜZ^=R蓹yVc<C6fL\m2ڇ߯Gl3mtf`3/uts%=Kx ]Btcpu{X8}/2LSFv,mRdf" {oD$Ur8GA ݱ5%fy6{CtwgpEa8?}mW0y}r`#umqvgi$]B{>wuQ]spn:R*JBDR+\ܭMBQsKC<-$јWNe|vrs/K%!, }3M<3egk/(,)u&DId4=ڷoԜ( J%!O' fK c#߫+~-ϑ5#=1 Д)3s+9ǽjQ=2'&z 7I(oΉgqns[PήeRew&':?;J\Nd͙!RMh5ZISB3YDi@Rb"&9  N)}5Ik3#n~g'ۨ7w=`<ptU-ޟ.u\ssE~?p^Mv &ѳ-B҂1ކc[\>D95`/y!ԹU My^B'kδ/s΍xMEW!3_fk@hh9nž3kW槡ٰWc#)n-'s{@ 6,n#R{@~/g]4}+Qiw^~uT5F=jSm#8p: IDATJU)nŹPtQ_)Va_#~> [Ͼv.L'lF駟ZڵkWۇMkR{PI i%mH?Cnx{v*!Rw|Io qyr2ccF%w۲-G>es%wRc8;2NL4M3]T*t::J=) T*J2n\Eiw?z=VVf۶m,^XƴB!頧3ܒx<~eHlIү@H[+Ǯ.G/ԙE2C̔0%,SzPƛԶyXRPv ϻ')JS #MH>ͥ!BZ^lňL i#jZFއn`p%!O{H=<4#JU}.tE)(kr*sڹm=aIG*q).:%e!RiD_^/IelQ-C=Sp0]9*d^ٖZL2aJ b\*D"KK^ߑO^~ő'5(=9}^(3QQvcIVUE9k%Nh'f<CrN_5=a!{vzRM%YwDjIEV'˒FB!BWwO+"e7^$D,Э^&nḘ(@Zz4PwĘ=|3L j9{RJ p8EIj?h1'ygݢJ7)7vpfiV2d ,APWW'gRcT(s*ka;븂zH>LJ;A@k[yQQICD KW2zߘop-͉ KK$FދcϬ"ۂ;U;ck@a;N|{le ,(HSP)jLџbI'h1?kb bDE ,,laΖ>s̖"R&r/{ss̹23Q<~*&H$I^5frɊ&A%+EϰSdy;V_˗QIY4\OCzTdF [Ix^Hu ELp>6]Uz"yWdp:(#͖K8^nJNB$ǩH@c2Zօc "=̪O"J4sk j|"F^ &"2R3|j>NڃV;}o+5P9_syũBNBM=S(VMdG/jY&=9 yMZΡ#D"9 xk:`%3^Z3 L3rۨx㮏 2){f SW?\M|zzUYȦd@K"H$A+UQk|>ʝԹ=@%M&FDkhsCakUHKJNEal@j6Y{9c5?se/jF131nziZZ|Fbbݑ9hr[/)lZg"ƒVqjC=ܸXJj20=fѨj$:ܸۯyݠFbGk=׃.k[gN6m ǢD_ :@0Ibh4(tP۾"9`RIN]4'V@YD"H\XPݽܘY[{Lтt=$D" a4M;{TEF\"N|!4'6o BEa&^0oϘ?j)ن0L]|~ sFœQ7qqJ(QFKQj؜TVod-̸tApt@8 uf*JI#"\9n1lr*H"H$בGgI<1WdzGysONWroOUxz9Pb(>;<:?\A9<"eM+xѴqO* |ݴqSבGT3;=˓bq3bOК23&_wbOzј%wK^L?tiZL **ie2_c ǣӸ|rD" )E9"z8b)o'svl@MJ_e͎OIah_ԓl_嚧uM[QRv^{hhԂ=B[@@$'ڈїB!@;Ά־Zm$3-Z4 F=e7'2" O{[F" 8-~uWO1 ~0,x xVđ|ɶ|lt\?:SMA47;K>詾DV|$ UE8HhD"HBW9=OL E9i_^L,e_?X8Lˇ7O;9;D^[ Sgvy^3竸e9hK;ѥ, ;lx\&GwR~BK?pů.g}#e^xN|mo;`;/=Υm.H${Zp f/"O|Jas-"ZYZ {U&t˅&H׫Եcԋl_^!JK6c)uT;ZD=Ā(-84#1a9]817[7cX)aMy[Qdd/&7!A6* zT!B &L ɽ4_5MQZ1nNmQI&hNg>hv T6618e*ϩtϨ/U DJXE .an;JcÀmӾ*.3v"I6[΢G>tVGw?aH$Iae+мNٽ}޶]Wa+́CV#H]:L wSYHs ^u'1:b3YS>+"tHqv|.12'g< 6iZElV05}Gq]#'AOƝ|[f x{G |8=wȗ`qt7un@j1~ H$Vnm5 3Q3%-ZlEW"}"?x{o͸at6cSYrc%@ QtTP^ 5Z 01rl=6sQ4l%$^-IjBwv6vP^Sΐ_Y%K%&LOl}1M5x;,1m`\ǡK`dt**smQ1xW>.CY%.bxSpXA+`T{WZ3'j I#exi8͝Wa0MĴ:gi]ZU  5֖A#00uH$$taLm|`Ĺg\p|ʵF26 (i<^oU*Q$DiEKqLN:fu%KKF55&(o ӵ -CJؚZ$=[V6hj I1d$E85 |Gxh%7>#Әyy["HBUUrkvYRނW|Xk^# -TWMueH׭e><+{cA/x9xeD~|[)2aq17SV4eAd\AskxSc>^ݪG`){̔AiyEI|۵B`M! R]݃k&`<ѴO68vk7[I틇7XWΤt[WꄸH$hsz"/|_WRh2Z3-LW2,6ȗd2:9c( ᪕f/ĨxN{:MNvQտM$4a O'FÀKGYC) q ~ w`M`HH$P6b/ȟʵi>f*?CG΄I$ *[9TрPכž=ܳm[pGp6*/DC. 8q+V{ O8+?͉a&^uaĥD:1 46oOv%xu35JvcO,[>xt#%|t%#LiWNRb>ƕ FGܲxuG1v;-V+^S<1DR!N.Ӫ\ZO҇$ݏ$Drq֪u}KZ d`r i )fQa#c\ysNBihvj[EE>'hµ(GO|Ey9kk4ianqxem= Џa Q'Mh!#D"9㸊xk:`%:}˧xM#ΰTFLS%D"zN*he51YXʟFNj?P2 }i&kfD80.!HE'SU_Ք +M( jO }o'*<"pͥJL8[:Ƀ o)ŋż z| mf?tœIJ(%tgNc֗~ i\VɋG0̶zK{_~eEg$^KHѷ}L)8XdS?^$,CEMY-> G)^ʤu!#D"9 rYb?xzwbO缱̋fsuvQ8^nJNB$ǩH@c2Zօc "=Q}xtf{μo;fD@D߾ Z\Ső={ЧPu-}>(>-D Z@˘ġDُ4 '7KMi#{H$$l}~Wsш(&,_%m#H$sq1j-8}wD@ࠪr'unPFIZbPZCy'BSQs&Ph$MV^Nr :\iˁQLLEouOD7},F%bv?K'3%+Y$)lZg"ƒVqjC=ܸXJj9$!2D?^ 33|6m ǢKD_ :@$14{au:|]dWU#> j$!pب:!IdXw@=BG$Dbh2ɛҦ#.k3f]@\(H$4pALo#.ICqY\$TmS|^TUhN\: :GCiuD,>_lS39-aGgK०rv'PњZsڵ‡ۧà28} uf*0/p_|xt/6 _PPڏ BoUE3G' (V*ҺܰvW$ ~֊x0}}v<0:(uzكq&|D`JRX %m6dhŖʚkD"HB FK cstDǶ>D"HN9'<#SDsSGVL4B"H$CBQF(@".<>ȠD"H$S7{Zp f/"O|Jas-"ZYZ !~FUuԽiC8VјJRG5DJjo C7o~@- NFX1z,ɔ&68Qdd/&7!A(Q@=b@ËO00$>% IDAT [A^J2)F+U->t:Χv T6618e*ϩtϨ/Ux DJXE .an;JcÀ;j4&d?6c#ݜ(.n@vBudqq1}D"H$ !{N|D"H$Ӂ;ɠU[[ G{lgTLI[师#WI)K׾ٌvNg3v{95.J{e,8VMa9NGUPӭNR}ʥca3;k,Ex[H2j|&n|j-`sk5 pU]TbR 7TQ=ѱȲنI+Wp&ay]"gq:ʊF7_x5s?b^9x3(ڄIL1>kBӾ̕8~) SCEzۼ=LH/9J C47Wi>"H$Cf0XY>)'QipW4LH$DrB ymΜ9ھ};)z0?`1Ü#23>Qde'mYxUid҇6?:Ul߾nA~I$aէp`(((`"ZN3X| k4M.qy̘ucˁH$;:'QUшhDUC(~+yĴL&} 6SOL+7 k٣zB>򵔻]!9^IH$IceɊ=N_Bti*D"H$Ӫ\ZO҇$ݏ$D"H$D夂VG!-'EINI$D"H$仉i( D"H$D"H$PBUՓ˴TҤINI$D"H$仉땙VD"H$M036_*6Pw;~59/P6h7O籹汯&xcݩ<1WOzxaN#~ D"9Н+(L:o§kNϕt&IvxN)c\D>w'9Jt%ϳ{)v>"H$U[\J /!,m0~o._OVZf.b33XӸ1moųfd~;iVno1qQA){f SW?\M|xu\oX5\D"xޓ Z D3* 08ذZpr ZD9#`z3sbuֽĻ%e 0$Pp-Eː᷒vIE=iWE1 cu%A2$n :Ѐ@3S\eaVp `B q>Nk[D!*Ffû_kSpi%[X/x|:>Lcu1YQ%c_c?`>"H$!%+VTw/kM'/o7­Os0^;g>2޺c ֜s?G 𲎀U,(fƟkE\!r$@ן@% ϼV!-yF ^WɁևB&\;΁լ?;}d,ehaCi"Ym}G?٩ϧM ~}7#(ʛ .{-\%ꃸ#Oqv/n2\"zD*DW$䜘kheZ)"fRaLFguɓO CDf_@Iڰ%{NK R'p9SXC-hJ5bs2YuU(A TUW5帄?JJ[LJ+[`#{-6OD\G(*1 ovD&'&/.,I(Z8_V|FIⵤ8j*]dGERJ4(YGX}By#Debr0vj./ҹ}گu|D ]i[9qɩ-gH$$b޿ỉ 4nX?}BKG`ayV  1Ik ^eÝr=Ϳ?k-mv<{!Mrob^4"TLzO~W ?#7/y)x~x#zOd"a}{xGu˼v+O'Eɭ])btf쬆k/;Wo'Siv6?1~">β{|dNbtNE5rF,r- w)#f2|+EɌ~;rKD"|I2P1D&+ZKVgx{Gd|\ Jkױ/?{VV08{VY%&CN+I Lglw/އ 1r@\C%=9 9&:jF/N7t:JNB$ǩo(>t uwCѧPpu*oCm'TOv顦;$=6[_ǣ?uV|DAu*&S<SGD"9K8y@c }.N9wW߇; ſ\ o|P fuss2 GQә*FoBE| }#g^pBy%<\:$1_ı녓kDQ,X=Rk'%wYqRƢ.DO3/Mo0k<1p-VL ،)gjȣDBG%\@UՓʹV; pPU:(Ĉht -xcn(lټsI S٩9M(4Pmq&+z/'| RTg@(f&:['"m}5'fK0ŃMl]X2*Xmh#'KIMC/p #ѿiQu 33D'c/_S دx\ET{'0r(lUhQ%AD"*>,G,nO <濦PPwA''{)N2*zUB*hz"UQQ]wUQ__PSi]n~~i)k},茩Ly n1V<("}D"H$!=_[Ȟ5PyƎ2"@GF99'p]ک^ ZԸpq2}"yl7et?6&5/xy6'Fa;02=Y#'6P bűǕ.LL Sխ  ꚓL2QȁE=G?ĀP"HNzO+)˩#+&߿AV 6(-~6;>%b$Wiq`#u]T]6X@#HpqXhth4<~DQY\64@(:#h|xP۞*^" Kc릣0F!|mnՓd Cii:La&. ~63#nG>{  4|r#D" #/94CeeB߃ CJ-Ǿ~g=q5K 0ϙߌݶ-ԫ$;ge@B6n%}Ժ/8_<ƘL#hN35h quaĥDhl}n'iKBjJ"HAoUpM!!0{$&Ѻ_Q:QT:͊BzLyYr\F !JG(aItIW+8nu'NLɭ{K2%>"'/79 #!5AU1 zrqݺ_WKK/dŮL2I~7=KEV"mkTD"9'8偝14 3Q3%-ZlEW"}"?x{o͸at6cSYrc%@ QtTP^ 5ZꊑA(֏@9(FQ$5! w;T;mtl'࠼!#KJLt̎GlqdَQl`E1i#&b|O}H]|ZMg}|Xjc?fNb=Q^i͜)$}kl7w~2ҧφtE%-l7=[gWٷuב%ys\=﹠3 ̮pg_\rř]栅3X(jH$ɹIo^UW.'\CGD"5(_mD"H$UUO.h5z^Y_^D"H$D"H $gdiD"H$əǽkږc`͢M,$H$\jS3z>H&H$ WoZ /!Qm:¶O>' b2G1咩LF4l8g*Zf(w t j*cSoy3ߤ?;] 샒ȈPXM˴v]NiT$@|D"H$ď!%+Vb2]ʼ ~w3۸3#Mv.E2'Ms^\I2CxvB^D"oL&!QIgq;F.OKHHd䈛~cͯ'N=V?_;}Υ<.?)%Df*[bE\KVb[*M{4xa0'h V.8/dXbAXZzxz z}@)먁hx~CSury~mQo%0=GռTW?ѽ!wcfݛYF ޘZ_Gď~[6wd-3LC?b1f4{zaj >Ǿ{6c|H{XgtK$DrB7'#VqrQhk98P 3?:ĨEپE0(:Wk&PcH0)+ŧ(K$:*7s|TɎeEoV9m8 9z#?dHZuM_ IDATT|'_'Q\f&nP"H$[(Cg&QɊp>@Ēh93ZuOUl ΞEUV!=}/PnlJC/$%/bBLYk%)q(Qi8^jGK ΧIcq pO ݠjNl>03odQ޽,}kЎMDd<>:iY{ٶa[_M3 5</u XS ~R),a YAF5I yޯ83YMQ\\cjrN61 ilG y)H$63EQn*켱Dt]Wih^"'p# \Vs7Ak(o Ǘ_9w_Lʨ/]:_kM!><>m'ELρC`{~) @NEgfnM)7 ;H *e出,~QPv۪euQ*4&҂zHH7tH#q9O>!s0Vֻ+ 39UuaOj^9!hg3rn {,7hHj/مSoO7-d:CH {G.Js>gؚq]M$v[Pץ=.  ahʼ gL/3-IwyXzUEݹshqWJ\TC>)xs)s"#G1S)qۊ9w?>mmbn|^ߙ>@V~jLJzG_AI)}YAɄ?L'Aۍ$\'Xyd.\2m,-Hs0*' 8bJfؘny0 w?:|`C0fx2`~WѠvL؇>{0Iܖt}5*hhzf]aV:71ACΟ2{}\u'L.w+]xӍ~Gu_L꾐݊BLY8`&@p8:43BOwbd_~/U: $Iҫo$xw3b#ѥtTܘnsrUec_z lH5uDX´-SgOsF" 1\MBTܞfb'hڭC}/IY].m|^72 fo8:lx<ّ<{7O] jG.]X9,D.= bB4zq}t L9m6)aR;7$_y4F'!"&u>҂=DZl6M'LhJr*ZQU!Uz};r:c3M7iiZ3󞆈&0 ̻1Ң紒DzaӅt1HJ3nΣڜMb@SpJZ DjFj\9~3DOE2[||L2O0q(d .ؠ@\" N 1 I%G1CKG͇(Sx9dC$$I[\-7<,M48*y%ŔPTUJϸ8%8GzgSLђƗ9N)P<ݎ]R]v; JyM4X ?otDE|/wcvoΎKr?>HC+Ӆ}dV>{ *|K}=𩮠OE0j@@ VbvTlkIāUsJN$n>{{X9\5mVs"}D d`h -̜;:pt͈0/dՊټpPĒ$) %fUI*_Ҭh8%KUz7|MjD31C~~.%hO^\y_=9>/c/|̓ 5RvEc "] @ WEQΝ=J۷o'H9x>:ڤ -H~ƍ?ʯݥgΡS^{SD-cǓywjl(^Gף(J!I r͹sYc#1 xyyk{]H+A%NWOq]Qmf jAsX`6\I뢄0ͯn3H @ WUU[)4C0AH C~+"$K\4@ @ \qZIV\% o I\ʯ'?} uvXٵa ҋq@ .),6A @ $ݝSQ("pZ ݼr$̠ϕꗆ6scD)I]ٺ'}v~yFF߂Mxc U-@ چٳ(VΊmC"l#*tޏo`%=ĞsƶK{?_㤫eR1&'uPsV)VFt^sHCL=]M֕H8=n#RD r1w2L$)G`щ =pkG_SpmyS9eF&-].붐-ܗԕGw}uq_Èԡb̸H X^}t`w0k<$ _Wc)aa0nP2$=#u+peӿc,&VluEn^]gX4:vDmb7#׶wKu@ \H$p#-;b'[ I$O@p鹈H+Ρt7%vSͩY){\DE/ \-G3l9Gvdp*s%{JmͶЗ@~rR=OBK/R#uHo4*vz^F"$鏳=ukOs]}Ur [>J }i.m v+CZ9r95{gLejW~9-^aD9#Gǔ'ygcAx`.־Kj] og|tDfo-lD}eMËXwL@  {LJg2땏տ0@ KNw:/J<]b)?Tp/B@Mˠ>Ddʋ7=}?e@&xH89 T9>B^xtP쉟(t9lK{/4C"ϗrԫyZv2kL%k7sl!^fܻiE*F,xs,+Y|[D=l^w䃏{D?VnXرN FPF: P1>_oJ5 Ǚyٽtǿ^ǿXJFxqkt wM}1;˪ Ik$%ΑFN<57H2yS5$$XlwBrr8&_JNShڋH]'毁6<'9V#P^Q^>[pQfsUKc`͏|S{1omY5On cؼw{^բ]y? %x_@yz$N=f~# v]b@&/|\<1~ ]oR}SIL6#ax@ o8ɗ VYg@O"AFra9ۄv@pYheUk BV`?_6rwStcDS\+Eǫ0l¼@RdJ[f'ZWjZwWtgؗs2zb?y2{$I [)b8A%k9`-Վ[>gpr%mFCjuLg_H+IBxӠ N5mn'($,ۅKtjbB O8n pժC,2Ǵ$hzelVgaok_Wr z[bG,/CC0疈p~0@; rDZ+@ %0iƄtuQI q5ndAAv6LRT;wqu(i]0j5HhYJjtxju5D;iZHҁ䬌s"C_8xUR92r5%$@jHV :YS-=ZP1]b)cNAwpcTheQf6ۏE n%[n]:٣2Z<:: ZEv#5ˍ8\uYRR5V= GŴm;ƒ?wtَ &/;sx[T1w`jf1x2 %/`l,}8XYعf Q~bd}x![[}9@ @ 4x<.}Wzo$|~^$!IR^}$ ū#L9+9.&$iL9*沱/m=z6p$ }ׇ0 9r?YAf$#cؑN]UQQ#[\6R7r=* $1Pѧ|]TߐHl$mga_"*T#& ^FO[IY~ &13exT9l-{$$Ii&KM;]8Tz5LTE6V>M/PK~d3l{ P6< \P%I?VAĄh)@ +E“ő H{ჿoGٟQF3** ITJV hrTI؃HBTӸnsr0gюrOSQ ȵUyBsZKV, Hl=ur:JAF"IHE֡a?"shKDBoF(=wGT\ pf_%3NH? Դ#ԋ+P=*Uѝ3{|yPTںǿ_tØr~/1GIOO1H4> Sd kthBTێíێnGi$<;X"ΩMbjዒh0BQ*n |ol~!!^,>w 缱7էh|UaF V@ @ bJU=x ]=z#arS8Gґj~ۺC^v3Vk&yrMuŜH_4n"3;Ϋ;ex8\+bHoU[lk $) %YX4I`nZU%. lj~|;:CֺyS4e+İFYj8%KUz7|M,' fCyc·Tխ>,k|srOKy%hS @ W F4w\u-Vھ};a}z6)taGC(4q_ƁK=sw0`@shԩPx^iUג+%wŁYxmWqk.Zytf@ j>͆b!--/ 2b) YaT.gB \}͈Uޫ?ݹnn6K+~tw/}X|_l`K6]9[qu =y:~{ϋxI \3(zz=$( ,ל;?&8"W^v-~roK?NWzuGCR[ƂWNJ 2+* .JOfgl^U_y,o >mX<ö/Í $$i8+J/:ݙ[w^êi0l+3>xv5PZB?p= IDAT< ׵*]Kxm[6*jr\O`Sri|~Vc-\{d !AG@}!z%.@ \K8β"Bzd0~S;ײz;&&/d(#6ds7 cq782{ boCr,- oRpy&^ONr!V,i5.aa=A:JA XnLsDbE(3tmu@[ Mà_,$0p։›s_.IT.# jl wyIsV*أ;=?ʻgf&H[1L}z){}< :Kbxs߯<@y9%/ H{p}MSxu~QO@QTKͧ8{'xαޕ_p]F|?б "[mY4w y7e,G+mx2k~@F>ě:s cRWl;>RU~szK`sCq[|V.zS^\ȫtWOi#l&uc刮<~yk[f0i{63v MK y?*\S*%@ 5f}0~jV?j_uAQZnQXfNWV+VYPIT:T{x?p{WgR^qSU+ZUru^b=yl6y|%Yaߟٜ`{Y3uXOl$;c?_} M9lg}ۖ榡.;'J9[n/b}Vyhzq+li<߇׷gS1`_E ?oy曣dG)Y9;Lgő=h+3gw{4YsΒFÅbS}@ ɷ91lX2f(M5arDu`y׷9RpYjٳɱq8m2rvNW2M@pYiuզw!L oW^n! p)sٶ8ׇqU²0[3A䣐al70<#<66Ӭx?񺓱/znBx=޹D'| uw%\|rބp8<إh1ް;n0FO(q_cTm8?Eŕ#a|.2T/uO1`W{l§QL&6$d7 mL`0wwfGbw*2YY^PT3i{wPzvS\eC,mMݦ&lw"&MZfO'br[2){j{0|=Y V@ ,b)HFuh؝*(a y V@L`埚@v8tNI% y>z1ޜYڎSof|f`Tܪ8z *A/! e$σ#}w'K&E=H~H%PyX[FلޅغşRVSWq*b {65:r0{J&  8hu}nޚkr$̠ϕꗆ6scUsLr- @ F>[q w0kPcB!PFfλY W#3U:* nG=ceX3C6_ӞaGUֻ<39,33A70h#5!!gt/0,xn+of*čK=CO$Pwm3; $ Jz=0#m?~(Hj?-Տ09r1w2L$)G`&ꑵj D }9Lq&zrm0Eʈγk)qh"Nt+7 积:NjFpfN۰d3tMm^!K쮛g 5whϼ?(oNԯ=%@k@+3x!V;|1Zؽ}OH5plbˋI;09 ꆏ%ƔF[+f|G;@v"yf 2rQTE`_O}kЉ{'˼;%/œOe>^Ai|/dbbK')2YSj?39vL 8EJEy9nCr k mђ5e떌A{&1O6 '4-$ 1L![MĤ+ik@"":omܔOz6gy)r$7sK $6ņyI6⭞&"V~BqKH] } ')Փd,$"5җ oSTJPϓKQbKNsl+73m`eo̟??%pS|!n0&Ɯ@sanH WdW+ހO_2xuP Tbӏg߼A9X5hIL6' =أ}݃ز3C|@ iOGw$>˒g n:IQUU^=þ^ 4dMAl |'fKcOE|WPV*61w'2w;뎥bm7ͶY7׬9uz#|o?qﱹKT߼/4:N*>fYhQR!@ }6 BZZ)))]_@@pWV~KF ?_#;o fȀk+Z=xzoaW{&Q^^GQC$EAszG$b0jqk׮e…˝(IQq+.-GoΒRz~<.hKl-q J\ c7_V* WK('n۴<._˦x-n"YVWI:]#)qt4rA i#1isx٦9` uÉ7RuB?^D84 k U-k.lN||Yr@ 1#]ж]濖~9D3e]S%kY[KCW+{꟯=@FNn .TW6||h$ +E)uc.YO8a^J]JV,[fmFJ sN`U]+WNHp8ڪlR}18e$lp|J(U6O#6%pt#Z!܂8J35q:GH6 V|x@ @ IZi%׍q"1h4I j֓Q=nERPb4 KpF !K Wt]Gd B3TcIV hrTI؃Hmm٦t{9LKD;4Z$ /C>ջ I2?i]7[)V$9[9#XС:ܺ0CJ ؍P{tIU;e GsnͶi 0x0j$W$$I{~PT@ @ů NxGźyoxsL5S?οH9ys_1\v8ٺr+Na @puxZiU/&GVͮt Qa9ɩL#UH5QsmǡQtp/v5< tbN L^vaeyT2vjsh=8pH(D hjʲ?vSb1%d%kr: mdeҮMgsEͶНX N-xP!Pg? `SVn@Li"J (=wTNN/=2;mS|`%D1~$t׸aSq#2 2ܸ5a[i!}d#~ <ޫ%d,'}~?MHǟ=kl?&)Ϗ"wjti7rlS*C,?l8I!Dte h`Tp|tI` @k!/a/{(me:z>HT:*{ iZWmFDh_>jdduN#%?"C)k @ q?s4#̜ڹku1fI\Wت9pp9Vu{9Iv:~)}v;?&FƖIw߶r_Eԫ2A,D VùRER@i]N@+קuO+~g`_j#7s~@ Atܘ2"֢1Hc)<5p rjYl,IA iX!k<6LƱ-wMjV NSg}%m`qM`Pq1?/F>:zRus`x@1^zhQzٸ~J$}!x'M`(Z"+P^`;Ӝ]QH]NՋ`VoɽlYe_f"7l2rh2},{?e˖)kJgqvm\e_C;Tq? ݺHLa=A3$@GŚs >?p-IA״lizk'oAAl|l$O#/'E=Hņ?a;D6 yx%ĜpESL0K_aܛOԒ NcUE]́1N-bݬX]97峱(a4範p>s"vҖDsjvb'IU+Tqy;xUG_8iF=OgDױ:0 ~-S5Y7躻 ͖tW5\u7Ԡʍ؊6ЇjVY'A_Z^s$]vD-(j7a콛 A 4*9YֆRoGQ; eL}=uC%?,'hU'W #@UrzJˏjb:>&LRxr4z+?1 SEFˤMp.Yaَ0}{#q&- 5U, 7o5{:#s:A6 q$ʈPg8(>:I|cG-L3c85S~OWaiU Ldya,OżFd%M8f+0(`ͷE򿻣n%טz1n\?nɡd*otj禢؉!@lȚ- _zwOO omEUy ѝ@ƒmm2˔DZn$ HM !B@ $nG7,Fv~"⊡ŷ ?qQ qҭthE`͢JtHCG6Nbd|9SWRՓDMi_}D;(LI"$- 4rDZ# >#,8ܮ|=kYt5>n76=ц*j0MPjGk}o7hMN-Ni_|SCP"cHDGٴ8%} a2"@ ^~5~WBlj^8Mlyq6iG3&~AژH]rk֌H}ȰW]7;N[@HRpvUe At SJ]P6|P?mٞ[&W#b2?m4 K0 (Ąaߏ߰ۮK~b@pyﺊ4w\u-Vھ};rλѦ+!ށP^~c[8QDWӪ =;'6鴒r}U#HFbbnK`>."`3{gIम3:%=Hp JۨhQ#㴧sZnUy |S^j3`FԩS'P,-jt]*|faXHKK#%% N gEQzE9$IBQdY9w.LpD"//vZyFZ~6ʨ@3׳dV4vCh[2Oѹ\ry|T׽wL@X$, *b7[uE+[Vmj^[RQ*(" H= IHȞz$hOx9s̜96i]>( '{YZ|Ox|0h@٦{=^"9RRmslamf 9INW='n-XrmSDH9-ضݽiJXC]XS^@i_D000 9 *!j094UK4F"`f+9_e)HH9eϤ^D״)Ewٓz%=n [>RFI ~q c5!"""""""nie|Y~Z|RSmXG'l DrR|Vٌ|1IYVT'n]Hu"!"7-(-0W۟^ au;.Ofpd"#o.ce_- ta>ڹ_X0LÎIJ7QYD7-W18pcMj -TLLj)%.e񦃘opٙ6=5Yi `_1vb~N"yIRI3XXP6Sc\k|f=Aa0P!OJcçW 9V=i`"gOсڣE2l hg,0 +j c3RػVz}DtFe{8Wr;TMc oRq;7vӏw 0-La}YYi_lhcN:ݘPSlǻ1͙7l0 g-+˕GlL"' !nˡ}:[ML꺦85!""ÅٽV}̮:Xzsg [gw?w/aN)^T|ߩ>IGIErsŕd|vdsI}ȉtsZ֒bh=זH C_Gu4%愉՜$j#ʴ<8zlÉ'~4}ռvV#ln{^/T֑ g^Gы=߶p8]΀p=pFVي &bHLCZp#k;]0{\["""3YYLJQˮUyu^nٰkRD .Ȏ3Jǝɕ?S9a5<8Mck,ݳ +q¼LrMiZKķ5 w5adL5vZnWc;3yw}ƵL>d\|ƷH8O<.-oFr`3ŁH{}#ɜuxJ^XBiXW"' ؼ*kYW}|TLz)+iUdmsBv'"vm悧9Ï,.o>~GtMh;u#KJ@-;:Wy9֪M;!(OgqIKb{:f("""=tTd*s,m̩p23V|tloOxbwϱa,ӺRv~1Ͼ IObfe#Xu:unӞC*@ G,O\Y?|/H>sޕq /Ļm s6\e{-??6^窑~K:['@=+;]9YR?^D΍ORd6UX ڋuw <zgϔ^Dg(kٻl _}Ibrq~1ṟdYqf msCgYEv޶D>ۤztClBGFʊR |HBYR?$29|[xqe:7u>R&=Zj2#q.K*K$x|x 7< R1FKCu*ד:I) 3KMrz~8݀Xv-W~T控.mù?Iu l]E]-bnFW-fi7Ng."~?6 l}A:"ΊT,f&q94 S&=9tb|ԇ%rѽUiE'|n4[/{'4Ii;,,sJ8LgfxޭOI ]HYu'3z[oy̋[ȉbv&b/b0@隗; iLN.P.X|=yBVQN~ ꯘV1o(rt{xG=DB ""y,bz 9S_|[;$fϻt$nèCiܯ_=c197yQHٵL8Ä'}:˾78+1r`.ח({:/Uuĭ_~[9@bEti7컙 {wywDϵ{Z{MNNʥ "9/*ǿTc8u&n[&7m5oU #.&vqh`GǞЕX;[r]<|n<ֹIzw(?ޱDN۶1>{֬Y]b bF(zҡ24iRе^ I}vEףF^/\~ǽD8b8;qPl|>X\᧬{j@/o|4˟|$evqXuaeaK'5#CTTTxb~S0t:Yjr^\L_R9q"nFaG\9Iҝ#)~$yRU)}nv_F90DZV$'ɷJa xKI;{flF ,ln.:dzgIՖE ORO/}鰺'38wYq71YUײqtưqFxv܊/q,&F0f0 ^MX7^c*`G^O):"9ISRq!*Kgym!&ADDDDmz e۶Pjr&G  )-YME018㣲j{!j+WR"ңooVIeu~5:.'z$\{PRGl?qim췋$W/f?Bq.7Qf}x1ȶJTm(8I_Ei+3U #m5?bB=Ɔ%"(w."""=H`*#茥wn>g}&u{7+93[I%6Mɫ~.7dC4$M$=Q5Rc6,b{b<=an`ycSED@Z 0q80lXo c]X:xal1%9Tr)DYٌr$8\Fi:t<Ϩ}|ia5'sL;+?:.j[nRSKEĤZR_`W9?WӢӏڀL~W~e ̓ ?([OdWӲGDDDŬZWIZ,&I%ΨeתżW/e R/ʋS=kN];E;mلj3qk6qvvs /gFl5R>)ivip=>c,n/nXcNcҰ!Mw3-La}YY& q:蠯ۍ 5ʦӜy# Ӂ0zֲ\yx 3+‡,߻/bЅt F Dhk^"""=+/iD F]TZpe˒0fkyIH uyew^Mz_=WAuvW4 ;din'T+\^ yfTx19c|>-_5<GΐT|`Y|t 8{1(=u83Gq mb;;4ht6d[l{m iH==v~Vqfa,ē7s{yZj=xxCarbfn{o+ç2}J PDvU`omFLsZA~ .];5F=k(X ;o*qQg73ml/4PD{I6U4^ӘF;UVD:8Lط5pf|E0.~N*vy2&3y,f>JaQkj%\&H"6FF >o&)H wJ){[MH"eArIa=LW.=8>_Wwޫifx&9 IDATbc?! 8@ ů0NΘa$6S~V"""rTңb=SJԒ_ ~cd ySBv)1Wl(XCP_g 1\rI[Jތa4XFs83VV_[͐Q DŖ;s'bpނ]f BMx n"eUgaz3 2̨(?ig\:Bqyُ8")D;h:89zc`"Fđ^q `-nb-Y=+ok_5aΜe[+p*ጞ'|B07^Ήo^ #ŷaWP 7^nFBC==4 :eN+G*c.Eʲԍ΀Ygm7Rf=+T͞K'hRصԁ**$LFsԲ{o >@I(~QAj815U!Fc6;$mm3OmE\L;H́ C{V65TGkJI˥'HeE ^Dv""fIw^2thE MV!V,H1>xE@CZ\xɨ }ˆpo{qR̉[ |)$Ga\ty}ET)"md l 7Sٷq%YXRs cءԮYX1XrGd|R؞LvVQqi>!5ւp>i koa~)c)yҳJ5K^̳.fbDˆ^g"&-r,^ҪW^M|U튝E&(N7LD5q U|ڂ2A?eKt>6MC("""""͊ fZŌIDr5ODDsZfR2(""rض""""""""rz1 CI+ϕHⴉ휜յ>ti0T'f1SD""""JݫY<` Ͼ}>"|Xv5HT-aNN1l%r矮$eG6WNz;*+ң)i%""""MŬZWIZ,vw޷̫PiYȦӥǥQEDC#[g78+qwNʂ$@Ifο )ډÓBEeo7WAY ٩ ?˝;Q9lK?f 55\Qw+t\YÂ+d9H=^( ZdjF9p%Z #q.K270#)Lٛ?!8 S[q42LI$th_ d;v-r<#ʦuk/a?<Ώ/#.*~k]9bQ:fٝt5q>/k*n0m7];ȸyZewupb~xVoQ}82&95 4͔éٌڃCN.e %,#HkSJJz(M.""""5֝J xf0)+ C:Ez#e۾| u'5cGw%T9gCC׮׷Q^$k;*g_>­ye25*Zr+xn[>V?MCl%'Nj7J zݵro-#2 ZbZ炷|6o{jw3ez tr|ϒNjp~I J?љpWco ^;YG6|6cc^I x2;7G>E똜h v z^)^έgYWjV:|vW8"/>f>};YV܇Cc<ء3,ZF JϤEDDDzpC3,O)SFdAt5He~xԊA9ŋiܷ_cd[4:B577) HKrWkqԣH צ1"66 2j{ʂ.\m. ʺ{REݑHVb[ ą 慻qO!݇t.m$&:"4]wy?h3aJ_o.ȍoJVʐbY:\Sj*2RO^}nrb=8;ڗb>Cud%˙@VZV}O+4Jinst""""=~2Lyv6R*LGۏ W(ʃ/('#zV5}KU+ r_}mpmSR%;TSFBlIe‡k᷸45iDuy OVǞ.ao~͊!C.. ]IF:yvp|m!iZɁ0}2>6nĬ#Gij>&>ә œcRq|篣X;Ɋew1N}YIہřS۠~~qs뭷2|nNJI+i: PeN5C~sq~r <3,w3Oq;V9,f921%QhB==WOK9X{)E|Z! O73`˛:[MƼVO+9 mhN+_(&M5$'::Qt=HO|6m_~KLLԉ/w?ww.rD(}\Fz6uz.2y7|1`OYd;P!_Lk/< E-#_@I+_b ^d(""7R_WMH8$D"Da"0PH$f)+۶&M HHp≎z^oAI+* rG)"""r3o'(i%"""ôtO8R^^Χ~Jyy9>OA9E<iii 44Oz++JOHҪ71 CI+4M^nqDz,֬YCii)#F`("""HCC{aժUݛ|q7nJw  bYVaYׯ1w\"`jXDD1M3p@,Yƍ=zq'¡gz\`PI+*u;ip8(++ .wB~c< 6ugop B^o$:!ݻ"V555x^^/<駟K  ("""P(m駟=ٳ:th'g~LJZPH_>^/x<RSSjs={0tP|>m+"""p8LZZk׮eҤIm~~WTTcٳls]}bVi%""""xm[YYIZZ0=j$Uː@%DDDNxh몣۷ogL2sU~+i%""""ܠD˜yTt:q\r- Z09M>[&b̘1NTO㡤Hlڹ{`߾}l>j9INNddd(i%""r|ƗlUVVW\qQsVv&bH$HOmF"vIII$%%f#FV"""g{(iӦt:Ati}'j"t8JZD J222ؼy3yyyǽNH$BAA6ݝ0 %DDDDz5ń xYn$%%rdS$PUUž}d„ _p8HOt"Vax6m%%%l޼͛7`S񐖖8V{sDq\䐓 EDDDz(0ü iÉJw(s:JZTCǞW""""ϝMDxӊWO+t|OnáV""""""""rz JZEsZi'(i%""""""""˲K EDDDzp8L8V DDD䤰, ˲Ur)i%"""c۶""""'aDEEDLL . iB 3~x1M!"""'F$?۶8МV""""=M8ǓPiq8p@#BJZ4HKzz!"""'Mzz:^H$ҭJZ0mJDDDN*˲ݚ;4M%DDDDz"M."""s0 %DDDDzb㱻EDDDE$V*+i%"""ƣJDDDDGT~[.;I_WVw9cm8>EI+g~{ { ak-f ̼/%^zxυ2qvW/h~ a6c)"=ii iZV&("-ܽ'kF(}}e=ۘח$#D"3`۟ijle=>g$B8)D~w>r+#ҳ""""um|ÚY' ̟}ߧVDDD1 xILL$..afV>΀]CQDmHELL `PAtGBBatrII&)r\t GϞa$&&`iTDDDDDDDDtVZn;IDATӋmJZŲ,%DDDDDDDDbV""""""""rz JZEEDDDDDDD䴤Vl5k(*"3v6{ODDD۾qUX\\̰aÈD"Nɖ-[ӧ`Ν;{UٚR ;RXip)^@`E@Q "J.bA@ETP! FBݔ#mn7<>sfμKtt4J:@Q6nH:uAKyݮ'$-Z虧}ZA5HL+AAAAP%JxJ+[CאҴ]DA\ϲҪ|V f+k y14N4IDGʳ {Plng@K䙕A3gAA(ߔɕV H By\ϫh 3VZ^Agg5E1ąL?pH4NB^eq)uA?iƉ& qmv%д3/X^ͣ>-;4`v|u*vb;1gٱI'$bh6izSØiHM~˜|6cX@Ed]}٫N$K3^A-q08C[{\ϲPVL̉2Wy&6KDB#o([6yql fY77^̓1E1jՇMˀEqּh5v^c*^}nmS^CZwɛ/c!3K{qC;M ߑgJr<نM&%=Ctyds|Oގ֭;0r_XrfH h~`fl?C yne !};zOthApF5͛֓f\1e;ƉYT.ylJ֯Hs;4΋z 67Np9愤/xK8=]$5kTl50ݱ\f߼tnѐҬ?nN'#ʨ7b4ڼُS2w7'p2fMNW]EVadt=C)%5iGMMdh PM?8dΚIMiLǙ2mUz<2w@g1aB};=fQLY;63|nX3JcUyQQDEE KܿZY3Ϳdǥ<6B a #Eѡ$_/;M;>y:/X!&w ]9>d'9{ۓԎ@ZqRRޗmHs*d( oO|85O"ݦ0$*sÇWAg$ΏmI>#3F S]-^xwȟҮvBiUf:lsS_>ЍUuAz4{XzQݨ(rtU-`wUG;:k iGҭO|aepV Ǹ=PEEG1o0/ևK}UkIGy}pY]MOFuZC:ֿ ^R~7;+iC6N#h@ ¿|]ze'Z=o.ҹQ$/gJʑ|Ūy˛g@i O~EɣqR'@~ w̔f{9/uz_[\$m@(ү4ޱ3KT/~Z7pJljhsj['fVG8Y 0;Hw4ZJo{т,vT w "`')]ymDIjE,{&.cv{z /W-^3H'٧.A@ VӉ&+m-F0_Yz2RRsvva8w͌ d-VZi}QrK%Zak[nśU}Ѫrޜ?蹊wA{\hǚ@Fcr{'~8]S=zAp9( ύ/7U& @&D3;Ã{ev'ȸW1om3Lm{uyZ] m#ӛ_啵qR Zz'YAWjx\M_{r7[bȞ&n:ˣ2>O_Bs*HX]M_䞂GGZB*b_I+4M k~Ṯ((;f/}!Tol ; հ±ǒ34S_~# S# {z m>dׁKt ˻AUrk*t\L*~h̠!lgY_NdQO??b:Gًm,"7lctU iܸGuʞ5P]Ňz O(qu+E'o U&AO ==@ckoz!=6TN,_--X-&;S.|W'IPxTшV؍-SlڍM1l8{gVtL^G9rUvsT6?}7/imjT;WUM\DFEQXߛ.~I3ү7XdgLkw%-x_57>:¹+7qb֜$UBXWSSzl+CZ L$Y.o1%jL0_4jW~;H+oGC.ܫm/ZI}[f'ݵ7 q W0|o_*=iqAJ ʕŶkp)toJJǒ|݋&ݿ/Ld%Icps}YhΏ똼iP":2u|; b_=Cta zF}%?Fu.*әD섉ǫAz~ɼHHM%J@ԀFO4ly!*V Fqq{&Vn zU* |MH}(//Zx%宱hu&?f;*MG18DGpTiz]M[NC2}w~&ZV哘^v<#w塯ɀ'b'M5jn6MWĜTnAW3OYnIi7EMš2奣mΠp`S:ԩE0W$)S{"!Za2.e[#I4lQͧٵk<}dqLMATڊNf/{~WtZ^KP?ux(G߮bw+;fݯu<^PcWЦH4w(5PZ(狋/ҤI._Tc6ILL?$::ڃj ۣ#X7`7Drٸq#UV% ///miGj-0$A(}ʻx m`&I,Odј8okAgΝX@up/P&س{ozX0ADGs^̡|[Fo.qx{XV)V)q4)ToE !SS434N4Lёoϋ-$ ?cWz>>>$$$PR%(hBB>>>V}z<}KGO434N4Lёq<"P;i͛79u8Z  O48A5BBl ?I+^O`` W`EQPFjE\Ȯ:OִIDAt(纻:qauoo;j͓fqqK{Zgٹ%>X.{4 VmmFṾJp/׀7/g>HiMaґVvgmڪJ_-nŶTܩG(k4|Pqtsk{\Xr\9*[ِuR)j:!w>_:pu,Ss_:+Q]͏VE{DIENDB`spykeviewer-0.4.4/doc/source/requirements.txt0000644000175000017500000000001712650522331017550 0ustar robrobmock quantitiesspykeviewer-0.4.4/doc/source/static/0000755000175000017500000000000012650522331015555 5ustar robrobspykeviewer-0.4.4/doc/source/static/icon.ico0000644000175000017500000001246612650522331017212 0ustar robrob h& (  ```(PPP%%%vvv'___...jjjooo777BBBF%b^^ɟᕓkge(""-ccdPPPFPNNsʤɤΐ USQuӾӴblddմbͷ *t]\{eɾ{\\\̱sIDD1}{{ϣԁob^`PՆxIQlhDŸ̂ߖwYzcbXqe^R?WIxhXͰG3J-"&ss]].~zzEusssd==ff7%aaeQ|jjv ~~*1FcϏ w\\G$( @ ^^^TTT222 ccc]]]777 NNNllleee<<< ZZZ}}}uuummmCCC dddAAA|||wwwHHHoooHHH###NNNxxxRRR,,, A"1-+732:64300*'%LyyyZZZ555}NJIۑXTT.*(ʏfff555 UOMKڹ`\Z0+)vǐ鸸/ ~c`__`cqqr(w_̭dֵdۺd޿d޿dۺdַdέd_w( [ҿbβdغddgdddddۺḓdbƿICC$da`¦\aa`aiS䠆aaaaaaϰa\~zy000 !X[ZYXW`NpWWWWWWWаWXOKItqpҽlU^nًQNk[YIqbNNNNNNNЏgZ5n鏌111M˘sIfZpdbVXKvESDn_PBFEEFb]JZCY>Z9M&ԓC> -'su::F&%Fvv}==vv_6*$,,]::F!!zgS%A5/+a\Z10|m#(PPQppHH.#dd.T ֿ߯ Կ 꿪 ̲ [4//6z ]YYzZZQQ1)۶۶۶Ԫ& SSU,||uuZZxx4+#@@@##%`IBBIQ&&)Qiih``[[ԃ90'9~|JII@6,$6ԡ224vߨXX=,3/'Z⨧* jrrwi  Fffg ť\\]669u""%a##&_000pUUXлpmiKhhhnȱidd8??G?+?9?1?1???=??spykeviewer-0.4.4/doc/source/static/copybutton.js0000644000175000017500000000463112650522331020325 0ustar robrob$(document).ready(function() { /* Add a [>>>] button on the top-right corner of code samples to hide * the >>> and ... prompts and the output and thus make the code * copyable. */ var div = $('.highlight-python .highlight,' + '.highlight-python3 .highlight') var pre = div.find('pre'); // get the styles from the current theme pre.parent().parent().css('position', 'relative'); var hide_text = 'Hide the prompts and output'; var show_text = 'Show the prompts and output'; var border_width = pre.css('border-top-width'); var border_style = pre.css('border-top-style'); var border_color = pre.css('border-top-color'); var button_styles = { 'cursor':'pointer', 'position': 'absolute', 'top': '0', 'right': '0', 'border-color': border_color, 'border-style': border_style, 'border-width': border_width, 'color': border_color, 'text-size': '75%', 'font-family': 'monospace', 'padding-left': '0.2em', 'padding-right': '0.2em' } // create and add the button to all the code blocks that contain >>> div.each(function(index) { var jthis = $(this); if (jthis.find('.gp').length > 0) { var button = $('>>>'); button.css(button_styles) button.attr('title', hide_text); jthis.prepend(button); } // tracebacks (.gt) contain bare text elements that need to be // wrapped in a span to work with .nextUntil() (see later) jthis.find('pre:has(.gt)').contents().filter(function() { return ((this.nodeType == 3) && (this.data.trim().length > 0)); }).wrap(''); }); // define the behavior of the button when it's clicked $('.copybutton').toggle( function() { var button = $(this); button.parent().find('.go, .gp, .gt').hide(); button.next('pre').find('.gt').nextUntil('.gp, .go').css('visibility', 'hidden'); button.css('text-decoration', 'line-through'); button.attr('title', show_text); }, function() { var button = $(this); button.parent().find('.go, .gp, .gt').show(); button.next('pre').find('.gt').nextUntil('.gp, .go').css('visibility', 'visible'); button.css('text-decoration', 'none'); button.attr('title', hide_text); }); }); spykeviewer-0.4.4/doc/source/changelog.rst0000644000175000017500000000022712650522331016750 0ustar robrobChangelog ========= Also see the spykeutils changelog at https://spykeutils.readthedocs.org/en/latest/changelog.html .. include:: ../../CHANGELOG.rstspykeviewer-0.4.4/doc/source/usage.rst0000644000175000017500000003766212650522331016142 0ustar robrob.. _usage: Usage ===== This section gives a tutorial of the main functionality of Spyke Viewer. To follow the examples, you need to download and unpack the `sample data file `_. It contains simulated data for two tetrodes over 4 trials. For each tetrode, there are 5 simulated neurons with corresponding spike trains and prototypical template waveforms included. When you start Spyke Viewer for the first time, you will see the following layout: .. image:: /img/initial-layout.png All elements of the user interface are contained in docks and can be rearranged to suit your needs. Their layout is saved when you close Spyke Viewer. The "View" menu shows all available docks and panels, you can also hide and show them from this menu. Loading Data ------------ The first thing you want to do when using Spyke Viewer is to load your data. The *Files* dock contains a view of all the files on your system. You can use it to select one or more files, then click on the "Load" button below to load the selected files into Spyke Viewer. Single files can also be loaded with a double click (this does not work for directories, they will just be expanded. If you want to load a directory, you need to use the "Load" button). Alternatively, you can use the "Load Data..." option in the "File" menu to open a dialog that allows you to select files to load. Now find and select the file "sample.h5" that you just unpacked (an HDF5 File) and load it. The data file input/output is based on :mod:`neo` and supports formats that have a `Neo IO class `_. For each selected file, the filetype and corresponding IO class is selected automatically from the file extension. If you want to specify which IO class to use, you can do so in the "Format" list in the *Files* dock. When you select a format with read or write parameters, you can click "Configure selected IO" to change the parameters. The IO and parameters you choose in the *Files* dock are also used when loading files using the "File" menu. If you want to use a file format that is not supported by Neo, you can write a plugin: :ref:`ioplugins`. Spyke Viewer and Neo include some features to handle very large data sources that are larger than the main memory or take very long to load. If you want to learn about these features, go to :doc:`lazy`. .. _selections: Selections ---------- Now that a file was loaded, some entries have appeared in the *Navigation* dock. To understand how to navigate data with Spyke Viewer, you need to know the Neo object model. The following picture is a complete representation: .. image:: /img/neo.png The rectangular objects are containers, rounded corners indicate a data object. The arrows represent a "contains zero or more" relationship. Note that all data objects belong to a segment and some also belong to other objects. For example, a SpikeTrain is referenced by both Segment and Unit. A unit often represents a single neuron (it is named unit because putative neurons from spike sorting are called units), but it could also represent the results of a spike detection algorithm and therefore include multiple neurons. Each SpikeTrain is specific to one Segment and one Unit, and each Segment or Unit could contain many SpikeTrains. For more detailed information on the Neo object model, see the `Neo documentation `_. In Spyke Viewer, you use the *Navigation* dock to select container objects. There is a list for each type of container where you can select an arbitrary set of entries. You can select multiple entries by clicking and dragging or using the control key when clicking. Each list will only show those objects of the respective type that are contained in selected objects further up in the hierarchy. For example, try selecting a different recording channel group and observe how the channels and units list change. To help you navigate, all objects in the *Navigation* dock are automatically assigned a unique identifier which includes the identifier of containing objects. The identifiers are shown in parentheses after the objects name (if an object has no name, only the identifier is shown). Blocks use capital letters; recording channel groups use small letters; recording channels, units and segments use numbers. For example, a unit might have an identifier "A-b-2": This denotes unit number 2 of recording channel group "b" of block "A". The identifiers are recreated whenever the structure of the loaded data changes - they are just a visual aid to help with navigation and ensure that unnamed objects have a reasonable label. Each list in the *Navigation* dock has a context menu accessed by right-clicking or control-clicking on OS X. You can use it to remove the selected objects (they will only be removed from Spyke Viewer, not from the loaded files) or open an annotation editor for the current object. The annotation editor can also be opened by double-clicking a list entry. The sets of selected objects from all container types is called a selection. The selected items you see in the *Navigation* dock are called the current selection. Selections determine which data will be analyzed by plugins (see :ref:`plugins`) and can be accessed by the internal console (see :ref:`console`). You can save a selection using the "Selections" menu: Click on the menu and then on "New". An additional entry in the "Selections" menu called "Selection 1" will appear. Each selection entry has a submenu where you can load, save, rename or delete the selection. Try selecting something else in the *Navigation* dock and creating a new selection again. Now try to load your first selection and observe how the *Navigation* dock changes to reflect what you have loaded. If you use the entry "Save" from a selection, it will be overwritten with the current selection. You can also change the order of the saved selections by dragging the entries in the "Selections" menu: .. image:: /img/selections-menu.png All saved selections together with the current selection are called a selection set. You can save your current selection set as a file (in `JSON `_ format, so it can easily be read and edited by humans or other software) using "Save Selection Set..." in the "File" menu. When you load a selection set, your current selection is replaced by the current selection from the file. The other selections in the file are added to your current saved selections. If a selection set includes files that are not currently loaded, they are opened automatically. When you exit Spyke Viewer, your current selection set is saved and will be restored on your next start. Exporting Data -------------- If you want to export your data, Spyke Viewer offers two entries in the "File" menu: "Save selected data..." exports all data in your current selection. "Save all data..." exports all loaded data. When you click on one of the items, a dialog will open asking you where you want to save the data and in which format. HDF5 and Matlab are available. It is strongly recommended to save your data in HDF5, since the Neo IO for Matlab currently does not support the whole object model -- RecordingChannelGroups, RecordingChannels and Units are not saved. Matlab has an interface for loading HDF5 files as well, so if you want to load your data in Matlab without losing some of the structure, you can use HDF5. On the other hand, if you want to get your data into Matlab quickly or it is structured with segments only, the Matlab export could be the right choice. Filters ------- .. image:: /img/filterdock.png When dealing with large datasets, it can be inconvenient to create a selection from the full lists of containers. The filter system provides a solution to this problem. By creating filters, you can determine what objects are shown in the *Navigation* dock. For example, you might want to temporarily exclude RecordingChannelGroups that have no attached units or only display Segments with a certain stimulus. Creating filters requires basic knowledge of Python and the Neo object model. You can manage your filters with the *Filter* dock and toolbar (which is positioned on the upper left in the initial layout). When you start Spyke Viewer for the first time, the *Filter* dock will be empty. You can create a new filter by clicking on "New Filter" in the toolbar (right-clicking the *Filter* dock also brings up a menu with available actions). You can choose what kind of container objects the filter applies to, the name of the filter and its content: a simple Python function. There are two kinds of filters: single or combined. Single filters (created when the "Combined" checkbox is unchecked) get a single Neo object and return ``True`` if the object should be displayed and ``False`` if not. Combined filters get a list of Neo objects and return a list containing only objects that should displayed. The order of the returned list is used for subsequent filters and displaying, so combined filters can also be used to sort the object lists. For both kinds of filters, the signature of the function is fixed and shown at the top of the window, so you only have to write the function body. The "True on exception" checkbox determines what happens when the filter function raises an exception: If it is checked, an exception will not cause an element to be filtered out, otherwise it will. The following picture shows how you would create a filter that hides all units that do not have at least two SpikeTrains attached: .. image:: /img/newfilter.png As another example, to reverse the order of Segments, you could create combined Segment filter with the following line:: return segments[::-1] You can also create filter groups. They can be used to organize your filters, but also have an important second function: You can define groups in which only one filter can be active. If another filter in the group is activated, the previously active filter will be deactivated. You can choose which filters are active in the *Filter* dock. The *Navigation* dock will be updated each time the set of active filters changes. You can also drag and drop filters inside the *Filter* dock. Their order in the *Filter* dock determines the order in which they are applied. All filters and their activation state are saved when you exit Spyke Viewer. .. _usingplugins: Using Plugins ------------- Once you have selected data, it is time to analyze it. Spyke Viewer includes a number of plugins that enable you to create various plots from your data. Select the *Plugins* dock (located next to the *Filter* dock in the initial layout) to see the list of available plugins. To start a plugin, simply double-click it or select it and then click on "Run Plugin" in the plugin toolbar or menu (there is also a context menu available when you right-click a plugin). You can also start a plugin in a different process (so that you can continue using Spyke Viewer while the plugin is busy) by selecting "Start with Remote Script" in the "Plugins" menu. For example, if you start the "Signal Plot" plugin, it will create a plot of selected analog signals. Try selecting Segment 3, Tetrode 2 and Channels 3 and 4. When you now start the plugin, you will see the signals of the selected channels in Segment 3. Now select some units and then open the plugin configuration by clicking on "Configure Plugin" on the plugin toolbar or menu. Select "Show Spikes" and set "Display" to "Lines". When you now start the plugin, you will see the analog signals and the spike times of your selected units. Go to the configuration again, set "Display" to "Waveforms" and check "Use first spike as template". After another run of the plugin, you will see the template spike waveforms overlaid on the analog signals. The configuration of all plugins is saved when you close Spyke Viewer and will be restored on the next start. To set the configurations of all plugins back to their default values, use "Restore Plugin configurations" from the "Plugins" menu. To learn more about the included plugins and how to use them, go to :ref:`plugins`. When you want to create your own plugins, go to :ref:`analysisplugins`. .. _console: Using the Console ----------------- With the integrated console, you can use the full power of Python in Spyke Viewer, with access to your selected data. Open the *Console* dock by clicking on the "View" menu and selecting "Console". You can explore your workspace using the *Variable Explorer* dock and view your previous commands with the *Command History* dock. Some packages like scipy_ and :mod:`neo` are imported on startup, the message in the console shows which. The console features autocompletion (press the Tab key to complete with the selected entry) and docstring popups. The most important objects in the console environment are ``current`` and ``selections``. ``current`` gives you access to your currently selected data, ``selections`` contains all stored selections (which you can manage using the "Selections" menu, see selections_). For example, >>> current.spike_trains() gives a list of your currently selected spike trains. Both ``current`` and the entries of ``selections`` are :class:`spykeutils.plugin.data_provider.DataProvider` objects, refer to the documentation for details of the methods provided by this class. As an example, to view the total amount of spikes in your selected spike trains for each segment, enter the following lines: >>> trains = current.spike_trains_by_segment() >>> for s, st in trains.iteritems(): ... print s.name, '-', sum((len(train) for train in st)), 'spikes' Note that the variables used in these lines have now appeared in the *Variable Explorer* dock. .. Note:: If you have at least IPython 0.12 and the corresponding Qt console installed, Spyke Viewer will include an *IPython* dock (accessible under the "View" menu). It can be used as an alternative to the integrated console if you prefer IPython. The ``current`` and ``selections`` objects are defined as in the integrated console, but no imports are predefined. You can enter the "magic command":: %pylab to use the PyLab environment (you can safely ignore the warning message about matplotlib backends). Note that the *Variable Explorer* and *Command History* docks, as well as exceptions from plugins, are only available on the internal console. .. _settings: Settings -------- The Spyke Viewer settings can be accessed by opening the "File" menu and selecting "Settings" (on OS X, open the "Spyke Viewer" menu and select "Preferences"). You can adjust various paths in the settings: **Selection path** The path where your selections are stored when you exit Spyke Viewer. This is also the default directory when using "Save Selection Set..." or "Load Selection Set..." in the "File" menu. **Filter path** The directory where your filter hierarchy and activation states are stored when you exit Spyke Viewer. Your filters are stored as regular Python files with some special annotation comments, so you can edit them in your favourite editor or share them with other users of Spyke Viewer. **Data path** This directory is important when you are using the data storage features of :class:`spykeutils.plugin.analysis_plugin.AnalysisPlugin`. **Remote script** A script file that is executed when you use "Start with remote script" action for a plugin. The default script simply starts the plugin locally, but you can write a different script for other purposes, e.g. starting it on a server. **Plugin paths** These are the search paths for plugins. They will be recursively searched for Python files containing AnalysisPlugin classes. Subdirectories will be displayed as nodes in the *Plugins* dock. In addition, your IO plugins also have to stored be in one of the plugin paths. The search for IO plugins is not recursive, so you have to put them directly into one of the paths in this list. More configuration options can be set using the :ref:`api`, for example in the :ref:`startup`. .. _`scipy`: http://scipy.org/spykeviewer-0.4.4/doc/source/extending.rst0000644000175000017500000001737712650522331017024 0ustar robrob.. _extending: Extending Spyke Viewer ====================== There are two ways of extending Spyke Viewer: Analysis plugins and IO plugins. Both are created by placing a Python file with an appropriate class into one of the plugin directories defined in the :ref:`settings`. In addition, Spyke Viewer include a customizable script that is run each time the program is started. :ref:`startup` describes possible applications and how to edit this script. This section describes how to create plugins and how to use the startup script. If you create a useful extension, please share it at the `Spyke Repository `_! .. _analysisplugins: Analysis plugins ---------------- The easiest way to create a new analysis plugin is directly from the GUI. Alternatively, you can use your favourite Python editor to create and edit plugin files. This section describes the creation of an example plugin. From console to plugin ###################### In many cases, you will want to turn code that you have written in the console into a plugin for easy usage and sharing. See :ref:`console` for an introduction to the integrated console. Here, a similar example will be expanded into a plugin. Load the example data file (see :ref:`usage`), select all segments and units and enter the following code in the console: >>> trains = current.spike_trains_by_unit() >>> for u, st in trains.iteritems(): ... print u.name, '-', sum((len(train) for train in st)), 'spikes' This will print the total number of spikes for each selected unit in all selected trials. Note that these lines have now appeared in the *Command History* dock. Now select "New plugin" from the "Plugins" menu or toolbar. The *Plugin Editor* dock will appear with a tab named "New Plugin" containing a code template. The template is already a working plugin, although without any functionality. It contains a class (which subclasses :class:`spykeutils.plugin.analysis_plugin.AnalysisPlugin`) with two methods: ``get_name()`` and ``start(current, selections)``. ``get_name()`` is very simple - it just returns a string to identify the plugin in the *Plugins* dock. Replace the string "New Plugin" by a name for your plugin, for example "Spike Counts". The ``start`` method gets called whenever you start a plugin. The two parameters are the same objects as the identically named objects that can be used in the console (see :ref:`console`): ``current`` gives access to the currently selected data, ``selections`` is a list containing the stored selections. Both ``current`` and the entries of ``selections`` are :class:`spykeutils.plugin.data_provider.DataProvider` objects, refer to the documentation for details of the methods provided by this class. Replace the contents of the ``start`` method by the code you entered into the console (you can copy and paste the code from the *Command History* dock). Now click on "Save plugin" in the "Plugins" menu or toolbar. A Save dialog will appear. Select one of the plugin paths (or a subfolder) that you have configured in the :ref:`settings` and choose a name (e.g. "spikecount.py"). When you save the plugin, it will appear in the *Plugins* dock. You can now use it just like the included plugins. Try selecting different subsets of segments and units and observe how the output of the plugin (on the console) always reflects the current selection. Plugin configuration #################### This section shows how to make your plugin configurable and use matplotlib to create a plot. Your newly created plugin currently only prints to the console. In order to create a configuration option, add the following line above the ``get_name`` method:: output_type = gui_data.ChoiceItem('Output type', ('Total count', 'Count plot')) Now, when you select your plugin and click on "Configure plugin", a window with a configuration option (a choice between "Total count" and "Count plot" will appear. The ``gui_data`` module encapsulates :mod:`guidata`. You can look at the documentation or the code of existing plugins for its more information. Next, you will modify the ``start`` method so it uses the configuration option and creates a plot if it is configured for "Count plot". Since you will be using ``matplotlib`` for the plot, you first have to import it by adding:: import matplotlib.pyplot as plt at the top of the plugin file. Note that ``matplotlib`` is already imported in the console, but you have to explicitly import everything you need in plugins. Next, replace the code in the ``start`` method by:: trains = current.spike_trains_by_unit() for u, st in trains.iteritems(): if self.output_type == 0: # Total count print u.name, '-', sum((len(train) for train in st)), 'spikes' else: # Count plot plt.plot([len(train) for train in st]) If you now set the configuration of the plugin to "Count plot", you will see a plot with the spike count for each unit in all trials. .. _ioplugins: IO plugins ---------- If you have data in a format that is not supported by Neo, you can still load it with Spyke Viewer by creating an IO plugin. This is identical to writing a regular Neo IO class [#relative]_ (see http://neo.readthedocs.org/en/latest/io_developers_guide.html to learn how to do it) and placing the Python file with the class in a plugin directory (the search for IO plugins is not recursive, so you have to place the file directly in one of the directories that you defined in the :ref:`settings`). The filename has to end with "IO.py" or "io.py" (e.g. "MyFileIO.py") to signal that it contains an io plugin. If you create an IO class for a file format that is also used outside of your lab, please consider sharing it with the Neo community. .. _startup: Startup script -------------- The startup script is run whenever Spyke Viewer is started, after the GUI is setup and before plugins are loaded. To edit the startup script, select the "Edit startup script" item in the "File" menu. One important use case for this file is manipulating your Python path. For example, you may have a Python file or package that you want to use in your plugins. If it is not on your Python path (for example because it cannot be installed or you are using a binary version of Spyke Viewer, where Python packages installed on the system are not accessible by default), you can modify ``sys.path`` to include the path to your files:: import sys sys.path.insert(0, '/path/to/my/files') You can also use the startup script to configure anything that is accessible by Python code. In particular, you can use the Spyke Viewer :ref:`api` to access configuration options and the main window itself. For example, if you want the Enter key to always finish a line in the console and only use the Tab key for autocompletion:: spyke.config.codecomplete_console_enter = False To change the font size of the Python console (effective for new input) and title of the window:: import spykeviewer.api as spyke # This line is included in the default startup script f = spyke.window.console.font() f.setPointSize(18) # Gigantic! spyke.window.console.set_pythonshell_font(f) spyke.window.setWindowTitle('Big is beatiful') As a final example, you can customize the colors that are used in spykeutils plots (for colored items like spikes in a rasterplot):: # Let's make everything pink! from spykeutils.plot import helper helper.set_color_scheme(['#F52887', '#C12267']) Footnotes --------- .. [#relative] There is one small difference between regular Neo IO classes and IO plugins: In plugins, you cannot use relative imports. For example, instead of:: from .tools import create_many_to_one_relationship as in the Neo example IO, you would write:: from neo.io.tools import create_many_to_one_relationship spykeviewer-0.4.4/doc/source/conf.py0000644000175000017500000002106712650522331015573 0ustar robrob# -*- coding: utf-8 -*- # # spykeutils documentation build configuration file, created by # sphinx-quickstart on Mon Jul 30 16:54:09 2012. # # This file is execfile()d with the current directory set to its containing dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. import sys, os # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. sys.path.insert(0, os.path.abspath( os.path.join(os.pardir,os.pardir))) # -- Mocking modules for Read the Docs compatibility --------------------------- from mock import MagicMock MOCK_MODULES = ['neo', 'tables', 'guiqwt', 'guiqwt.builder', 'guiqwt.baseplot', 'guiqwt.plot', 'guiqwt.curve', 'guiqwt.image', 'guiqwt.tools', 'guiqwt.signals', 'guiqwt.config', 'PyQt4', 'PyQt4.QtCore', 'PyQt4.QtGui', 'spykeutils', 'spykeutils.plot', 'spykeutils.plugin', 'scipy', 'matplotlib'] for mod_name in MOCK_MODULES: sys.modules[mod_name] = MagicMock() import spykeviewer # -- General configuration ----------------------------------------------------- # If your documentation needs a minimal Sphinx version, state it here. #needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.intersphinx', 'sphinx.ext.coverage', 'sphinx.ext.pngmath', 'sphinx.ext.pngmath', 'sphinx.ext.ifconfig'] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # The suffix of source filenames. source_suffix = '.rst' # The encoding of source files. #source_encoding = 'utf-8-sig' # The master toctree document. master_doc = 'index' # General information about the project. project = u'Spyke Viewer' copyright = u'2012, Robert Pröpper' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. version = spykeviewer.__version__.rsplit('.', 1)[0] # The full version, including alpha/beta/rc tags. release = spykeviewer.__version__ # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. exclude_patterns = [] # The reST default role (used for this markup: `text`) to use for all documents. #default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. #add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). #add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. #show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # A list of ignored prefixes for module index sorting. #modindex_common_prefix = [] # -- Options for HTML output --------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. html_theme = 'default' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. #html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. #html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". #html_title = None # A shorter title for the navigation bar. Default is the same as html_title. #html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. html_logo = os.path.join('img', 'logo.png') # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. html_favicon = 'icon.ico' # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. #html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. #html_use_smartypants = True # Custom sidebar templates, maps document names to template names. #html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. #html_additional_pages = {} # If false, no module index is generated. #html_domain_indices = True # If false, no index is generated. #html_use_index = True # If true, the index is split into individual pages for each letter. #html_split_index = False # If true, links to the reST sources are added to the pages. #html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. #html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. #html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. #html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). #html_file_suffix = None # Output file base name for HTML help builder. htmlhelp_basename = 'spykeviewerdoc' # -- Options for LaTeX output -------------------------------------------------- # The paper size ('letter' or 'a4'). #latex_paper_size = 'letter' # The font size ('10pt', '11pt' or '12pt'). #latex_font_size = '10pt' # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ ('index', 'spykeutils.tex', u'spykeutils Documentation', u'Robert Pröpper', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of # the title page. #latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. #latex_use_parts = False # If true, show page references after internal links. #latex_show_pagerefs = False # If true, show URL addresses after external links. #latex_show_urls = False # Additional stuff for the LaTeX preamble. #latex_preamble = '' # Documents to append as an appendix to all manuals. #latex_appendices = [] # If false, no module index is generated. #latex_domain_indices = True # -- Add additional features --------------------------------------------------- def setup(app): app.add_javascript('copybutton.js') # -- Options for manual page output -------------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ ('index', 'SpykeViewer', u'Spyke Viewer Documentation', [u'Robert Pröpper'], 1) ] # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = {'python': ('http://docs.python.org/', None), 'neo': ('http://neo.readthedocs.org/en/latest/', None), 'scipy': ('http://docs.scipy.org/doc/scipy/reference/', None), 'quantities': ('http://packages.python.org/quantities/', None), 'guiqwt': ('http://packages.python.org/guiqwt/', None), 'guidata': ('http://packages.python.org/guidata/', None), 'tables': ('http://pytables.github.com/', None), 'spykeutils': ('http://spykeutils.readthedocs.org/en/latest/', None)} spykeviewer-0.4.4/doc/source/index.rst0000644000175000017500000000332712650522331016134 0ustar robrob.. |br| raw:: html
Welcome to the Spyke Viewer documentation! ========================================== Spyke Viewer is a multi-platform GUI application for navigating, analyzing and visualizing electrophysiological datasets. It is based on the `Neo `_ library, which enables it to load a wide variety of data formats used in electrophysiology. At its core, Spyke Viewer includes functionality for navigating Neo object hierarchies and performing operations on them. A central design goal of Spyke Viewer is flexibility. For this purpose, it includes an embedded Python console and a plugin system. It comes with a variety of plugins implementing common neuroscientific analyses and plots (e.g. rasterplot, peristimulus time histogram, correlogram and signal plot). Plugins can be easily created and modified using the integrated Python editor or external editors. A mailinglist for discussion and support is available at https://groups.google.com/d/forum/spyke-viewer Users can download and share plugins and other extensions at http://spyke-viewer.g-node.org If you use Spyke Viewer in work that leads to a scientific publication, please cite:|br| Pröpper, R. and Obermayer, K. (2013). Spyke Viewer: a flexible and extensible platform for electrophysiological data analysis. *Front. Neuroinform.* 7:26. doi: 10.3389/fninf.2013.00026 The following screenshots illustrate the functionality of the program: .. image:: /img/screenshot1.png .. image:: /img/screenshot2.png Contents: .. toctree:: :maxdepth: 2 installation usage plugins extending api lazy changelog acknowledgements Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search` spykeviewer-0.4.4/doc/source/installation.rst0000644000175000017500000001165412650522331017530 0ustar robrobInstallation ============ There are two ways to install Spyke Viewer on your system. The preferred way is to install the spykeviewer package in your Python environment. Depending on what already exists on your system, this might require installing Python itself and a few additional packages for scientific data processing, management and visualization. On the other hand, there are also binary packages available for Windows and OS X. These packages do not have any additional requirements and can be started immediately (from an app in OS X or an executable file in Windows, please use the source installation for Linux). However, as they are independent of an existing Python installation, you will not be able to use installed additional packages from your Python environment by default (this can be remedied by using the :ref:`startup`). The binary packages are especially useful if you do not normally use Python or just want to try Spyke Viewer quickly. You can switch to the source installation at any time. Binary ------ If you want to install the binary version, go to the `homepage `_ and select the most recent version for your operating system. The downloaded file contains an installer (for OS X) or executable (Spyke Viewer\\spykeviewer.exe for Windows). Note that some features of Spyke Viewer are not available in the binary version: If you want an IPython console or advanced plugin editing features such as autocompletion, you need the source version. The rest of this page deals with source installation, when using the binary version, you can go to :ref:`usage` to learn how to use Spyke Viewer. Source ------ If you use the NeuroDebian_ repositories and a recent version of Debian (>= Wheezy or Sid) or Ubuntu (>= 12.04), you can install the source version of Spyke Viewer using your package manager:: $ sudo apt-get install spykeviewer After you install the spykeviewer package, you can start Spyke Viewer from your menu (it should appear in the "Science" or "Education" category) or using:: $ spykeviewer The next sections describe how to install Spyke Viewer if you do not have access to the NeuroDebian_ repositories (e.g. on Windows or OS X), want to install using the Python packaging system or use the most recent development version from GitHub. Dependencies ############ First you need Python 2.7. In addition, the following packages and their respective dependencies need to be installed: * spykeutils_ * scipy_ * guiqwt_ (>= 2.1.4) * matplotlib_ * tables_ * spyder_ >= 2.1.0 * neo_ >= 0.2.1 Please see the respective websites for instructions on how to install them if they are not present on your computer. On a recent version of Debian/Ubuntu (e.g. Ubuntu 12.04 or newer), you can install all dependencies that are not automatically installed by ``pip`` or ``easy_install`` with:: $ sudo apt-get install python-guiqwt python-tables python-matplotlib On Windows, you can use `Python(x,y)`_ if you do yet not have a Python distribution installed. It includes the same dependencies. spykeviewer ########### Once the requirements are fulfilled, you need to install the package spykeviewer. If you use Linux, you might not have access rights to your Python package installation directory, depending on your configuration. In this case, you will have to execute all shell commands in this section with administrator privileges, e.g. by using ``sudo``. The easiest way to get it is from the Python Package Index. If you have pip_ installed:: $ pip install spykeviewer Alternatively, if you have setuptools_:: $ easy_install spykeviewer Alternatively, you can get the latest version directly from GitHub at https://github.com/rproepp/spykeviewer. The master branch always contains the current stable version. If you want the latest development version, use the develop branch (selected by default). You can download the repository from the GitHub page or clone it using git and then install from the resulting folder:: $ python setup.py install Once the package is installed, you can start Spyke Viewer using:: $ spykeviewer .. note:: You can also start the program without installing it: Simply execute the script ``bin/spykeviewer`` in your Spyke Viewer folder using Python. On Windows, you might have to start ``spykeviewer.exe`` in the ``Scripts`` folder in your Python directroy (e.g. ``C:\Python27\Scripts``) because most Python versions do not add this folder to the PATH environment variable. .. _`Python`: http://python.org/ .. _`spykeutils`: http://spykeutils.readthedocs.org/ .. _`guiqwt`: http://packages.python.org/guiqwt/ .. _`tables`: http://www.pytables.org/ .. _`neo`: http://neo.readthedocs.org/ .. _`pip`: http://pypi.python.org/pypi/pip .. _`scipy`: http://scipy.org/ .. _`setuptools`: http://pypi.python.org/pypi/setuptools .. _`spyder`: http://packages.python.org/spyder/ .. _`Python(x,y)`: http://www.pythonxy.com/ .. _`matplotlib`: http://matplotlib.org/ .. _`NeuroDebian`: http://neuro.debian.net spykeviewer-0.4.4/doc/source/acknowledgements.rst0000644000175000017500000000064012650522331020352 0ustar robrobAcknowledgements ================ Spyke Viewer was created by Robert Pröpper [1]_, supported by the Research Training Group GRK 1589/1. The inspiration for the GUI came from an earlier program developed by Felix Franke [2]_. The simulated data used in the examples was created by Philipp Meier [1]_. .. [1] Neural Information Processing Group, TU Berlin .. [2] ETH Zurich, D-BSSE, Bio Engineering Laboratory (BEL)spykeviewer-0.4.4/doc/source/api.rst0000644000175000017500000001020312650522331015565 0ustar robrob.. _api: API === The Spyke Viewer API. It includes the global application configuration, objects to access the main window and application and convenience functions. .. data:: spykeviewer.api.config Global configuration options for Spyke Viewer. Single options can be set by string like a dictionary (e.g. ``spykeviewer.api.config['ask_plugin_path'] = False``) or directly (e.g. ``spykeviewer.api.config.ask_plugin_path = False``). They can be set in the :ref:`startup`, from the console or even in plugins. However, some configuration options are only effective when changed from the startup script. The configurations options are: ask_plugin_path (:class:`bool`) Ask about plugin paths if saving a file outside of the plugin paths. Default: ``True`` save_plugin_before_starting (:class:`bool`) Automatically save and reload a modified plugin before starting. Default: ``True`` load_selection_on_start (:class:`bool`) Load the selection that was automatically saved when shutting down Spyke Viewer automatically on startup. This parameter is only effective when set in the startup script. Default: ``True`` load_mode (:class:`int`) The initially selected loading mode. Possible values: 0 Regular: Load all file contents on initial load. 1 Lazy: Only load file structure. Data objects are loaded automatically when requested and then discarded. 2 Cached lazy: Only load file structure. Data objects are loaded automatically when requested and then kept in the object hierarchy so they only need to be loaded once. This parameter is only effective when set in the startup script. Default: 0 autoselect_segments (:class:`bool`) Select all visible segments by default. Default: ``False`` autoselect_channel_groups (:class:`bool`) Select all visible channel groups by default. Default: ``False`` autoselect_channels (:class:`bool`) Select all visible channels by default. Default: ``True`` autoselect_units (:class:`bool`) Select all visible units by default. Default: ``False`` duplicate_channels (:class:`bool`) Treat :class:`neo.core.RecordingChannel` objects that are referenced in multiple :class:`neo.core.RecordingChannelGroup` objects as separate objects for each reference. If ``False``, each channel will only be displayed (and returned by :class:`spykeutils.plugin.data_provider.DataProvider`) once, for the first reference encountered. Default: ``False`` codecomplete_console_enter (:class:`bool`) Use Enter key for code completion in console. This parameter is only effective when set in the startup script. Default: ``True`` codecomplete_editor_enter (:class:`bool`) Use Enter key for code completion in editor. This parameter is only effective when set in the startup script. Default: ``True`` remote_script_parameters (:class:`list`) Additional parameters for remote script. Use this if you have a custom remote script that needs nonstandard parameters. The format is the same as for :class:`subprocess.Popen`, e.g. ``['--param1', 'first value', '-p2', '2']``. Default: ``[]`` remote_path_transform (function) When the remote script is used to start plugins on a different computer, the paths of data files can change. This function can be used to change the path of all data files sent to a remote script. For example, if the data files are in the same directory where the plugin is started on the remote computer, you can strip the path and just keep the filename: ``spykeviewer.api.config.remote_path_transform = lambda x: os.path.split(x)[1]`` Default: The identity, paths are not changed. .. data:: spykeviewer.api.window The main window of Spyke Viewer. .. data:: spykeviewer.api.app The PyQt application object. .. autofunction:: spykeviewer.api.start_plugin .. autofunction:: spykeviewer.api.get_plugin spykeviewer-0.4.4/doc/source/plugins.rst0000644000175000017500000002621312650522331016505 0ustar robrob.. _plugins: Plugins ======= This section describes the configuration options of the plugins that are included with Spyke Viewer. All included plugins create plots. For information on how to create your own plugins, see :ref:`analysisplugins`. You can find additional plugins at the `Spyke Repository `_. Signal Plot ----------- Shows the selected analog signals. A number of options enable to include additional information in the plot. .. image:: /img/plugin-signals.png Use Subplots Determines whether multiple subplots are used or all signals are shown in one large plot. Show subplot names Only valid when subplots are used. Determines if each subplot has a title with the signal name (if available) or the recording channel name. Included signals This option can be used to tune which type of signals are shown: AnalogSignal objects, AnalogSignalArray objects or both. In most cases, a file will only include one of the signal types, so the default option of including both will work well (you probably never need to change it if you do not know the difference between the signal objects). Show events When this is checked, events in the selected trial will be shown in the plot. Show epochs When this is checked, periods in the selected trial will be shown in the plot. One plot per segment When this is not checked, only one plot with signals from the first selected segment is created. Otherwise, one plot for each selected segment is created. Show spikes Determines whether spikes are included in the plot. The following options are used to select from what data how the spikes are displayed: Display as Spikes can be shown as their waveform overlaid on the analog signal or a vertical line marking their occurrence. Included data Determines whether to include spikes from SpikeTrain objects, Spike objects, or both. Use first spike as template This option can be used for a special case: All spikes in the SpikeTrain objects have the same waveform (e.g. because they use the same template from spike sorting). If this option is checked, the plugin assumes that each unit has a SpikeTrain and a single Spike. The waveform from the Spike object is used for every spike in the SpikeTrain. The data in the example file is structured in this way. Spectrogram ----------- Shows spectrograms of the selected analog signals. .. image:: /img/plugin-spectrogram.png Interpolate Determines whether the dipslayed spectrogram is interpolated. Show color bar If this is checked, a colorbar will be shown with each plot, illustrating the logarithmic power represented by the colors. FFT samples The number of signal samples used in each FFT window. Included signals This option can be used to tune which type of signals are shown: AnalogSignal objects, AnalogSignalArray objects or both. In most cases, a file will only include one of the signal types, so the default option of including both will work well (you probably never need to change it if you do not know the difference between the signal objects). Spike Waveform Plot ------------------- Shows waveforms of selected spikes. .. image:: /img/plugin-waveforms.png Antialiased lines Determines if antialiasing (smoothing) is used for the plot. If you want to display thousands of spikes or more, unchecking this option will improve the plotting performance considerably. Include spikes from Determines which data sources are used for the displayed spike waveforms. Spikes Waveforms from Spike objects can be ignored (Do not include), used as other spike data sources are (Regular) or drawn thicker on top of other spikes (Emphasized). The last option is useful if spike objects contain templates from spike sorting which you want to compare to corresponding spikes from the data. Spike Trains Spike waveforms embedded in SpikeTrain objects. Extracted from signal Spike waveforms can be automatically extracted from corresponding signals using spike times in SpikeTrain objects. In this case you have to choose the spike length and the alignment offset (the length of the signal to extract before each spike event). Plot type Three different plot types can be selected: "One plot per channel" creates a subplot for each channel, "One plot per unit" creates a subplot for each unit and "Single plot" creates one plot containing all channels and units. Split channels Multichannel waveforms can be split either horizontally or vertically. Subplot layout You can choose one of two ways to arrange the resulting subplot: "Linear" will arrange the plots as one row or one column, depending on the other options. "Square" uses an equal number of row and columns. Fade earlier spikes If this is enabled, earlier selected spikes for each unit are drawn more transparent than later spikes. This can be useful if you want to compare changes in a unit's waveform over time (i.e. multiple segments). Correlogram ----------- Creates auto- and crosscorrelograms for selected spike trains. .. image:: /img/plugin-correlogram.png Bin size (ms) The bin size used in the calculation of the correlograms. Cut off (ms) The maximum time lag for which the correlogram will be calculated and displayed. Data source The plugin supports two ways of organizing the data from which the correlograms are created: If "Units" is selected, the spike trains for each currently selected unit are treated as a dataset. For example, if two units are selected, the plugin creates three subplots: one autocorrelogram for each unit and a cross-correlogram between them. If "Selections" is chosen, spike trains from each saved selection are treated as a dataset. Note that the plot can only be created if all selections contain the same number of spike trains. Counts per Determines if the counts are displayed per second or per segment. Border correction Determines if an automatic correction for less data at higher timelags is applied. Include mirrored plots Determines if all cross-correlograms are included, even if they are just mirrored versions of each other. The autocorrelograms are then displayed as the diagonal of a square plot matrix. Otherwise, mirrored cross-correlograms are omitted. Interspike Interval Histogram ----------------------------- Creates an interspike interval histogram for one or more units. .. image:: /img/plugin-isi.png Bin size (ms) The bin size used in the calculation of the histogram. Cut off (ms) The maximum interspike interval that is displayed. Type Determines the type of histogram. If "Bar" is selected, only the histogram for the first selected unit is displayed. If "Line" is selected, all selected units are included in the plot. Data source The plugin supports two ways of organizing the data from which the histograms are created: If "Units" is selected, the spike trains for each currently selected unit are treated as a dataset. If "Selections" is chosen, spike trains from each saved selection are treated as a dataset. Peristimulus Time Histogram --------------------------- Creates a peristimulus time histogram (PSTH) for one or multiple units. .. image:: /img/plugin-psth.png Bin size (ms) The bin size used in the calculation of the histogram. Start time (ms) An offset from the alignment event or start of the spike train. Calculation of the PSTH begins at this offset. Negative values are allowed (this can be useful when using an alignment event). Stop time A fixed stop time for calculation of the PSTH. If this is not activated, the smallest stop time of all included spike trains is used. If the smallest stop time is smaller than the value entered here, it will be used instead. Alignment event An event (identified by label) on which all spike trains are aligned before the PSTH is calculated. After alignment, the event is a time 0 in the plot. The event has to be present in all selected segments that include spike trains for the PSTH. Type Determines the type of histogram. If "Bar" is selected, only the histogram for the first selected unit is displayed. If "Line" is selected, all selected units are included in the plot. Data source The plugin supports two ways of organizing the data from which the histograms are created: If "Units" is selected, the spike trains for each currently selected unit are treated as a dataset. If "Selections" is chosen, spike trains from each saved selection are treated as a dataset. Raster Plot ----------- Creates a raster plot from multiple spiketrains. .. image:: /img/plugin-rasterplot.png Domain The raster plot can either be created from multiple units and one segment ("Units") or one unit over multiple segments ("Segments"). Show lines Determines if a small horizontal black line is displayed for each spike train. Show events When this is checked, events in the selected trial will be shown in the plot. If the selected domain is "Segments", events from all selected segments are included. Show epochs When this is checked, periods in the selected trial will be shown in the plot. If the selected domain is "Segments", epochs from all selected segments are included. Spike Density Estimation ------------------------ Creates a spike density estimation (SDE) for one or multiple units. Optionally computes the best kernel width for each unit. .. image:: /img/plugin-sde.png Kernel size (ms) The width of the kernel used for the plot. If kernel width optimization is enabled, this parameter is not used. Start time (ms) An offset from the alignment event or start of the spike train. Calculation of the SDE begins at this offset. Negative values are allowed (this can be useful when using an alignment event). Stop time A fixed stop time for calculation of the SDE. If this is not activated, the smallest stop time of all included spike trains is used. If the smallest stop time is smaller than the value entered here, it will be used instead. Alignment event An event (identified by label) on which all spike trains are aligned before the SDE is calculated. After alignment, the event is a time 0 in the plot. The event has to be present in all selected segments that include spike trains for the SDE. Data source The plugin supports two ways of organizing the data from which the density estimations are created: If "Units" is selected, the spike trains for each currently selected unit are treated as a dataset. If "Selections" is chosen, spike trains from each saved selection are treated as a dataset. Kernel width optimization When this option is enabled, the best kernel width for each unit is determined using the algorithm from [1]_. Minimum kernel size (ms) The minimum kernel width that the algorithm should try. Maximum kernel size (ms) The maximum kernel width that the algorithm should try. Kernel size steps The number of steps from minimum to maximum kernel size that the algorithm should try. The steps are distributed equidistant on a logarithmic scale. .. [1] Shimazaki, Shinomoto. (2010). Kernel bandwidth optimization in spike rate estimation. *Journal of Computational Neuroscience*, 29, 171-182.spykeviewer-0.4.4/doc/source/lazy.rst0000644000175000017500000000600512650522331016000 0ustar robrob.. _lazy: Lazy Features ------------- Spyke Viewer offers two ways to deal with very large files. Lazy Loading ############ With lazy loading, only the structure of a file is loaded when you first open it, while big data chunks (e.g. signals, spike trains) are not. This can result in faster loading times and much reduced memory usage and enables you to use data files that are larger than your main memory. Spyke Viewer will load the required data automatically once it is needed. This means that while initial loading is faster, data access will be slower. You can switch between regular and lazy loading from the "File" menu under "Read Mode". The read mode affects newly loaded files and you can have both regularly and lazily loaded files opened at the same time. Most Neo IOs do not support this feature (currently, only the IO for HDF5 files does) - when using lazy mode with an unsopported IO, the file is loaded as in regular mode. There are two options for lazy loading in the menu: "Lazy Load" and "Cached Lazy Load". In "Lazy Load", data objects are loaded on request and discarded afterwards, so the memory usage stays low. In "Cached Lazy Load", data objects are inserted into the object hierarchy when they are requested, so they only have to be loaded once, but memory usage will grow when more data objects are used while the file is open. .. Note:: If you create your own plugins or use the integrated console with lazy loading, you need to be aware that the data objects are only loaded when accessed through a DataProvider object (explained below). For example, ``current.spike_trains()`` would return correctly loaded objects. But ``current.segments()[0].spiketrains`` can contain lazy objects. To be safe, always use the DataProvider to access the data objects you are interested in. Lazy Cascading ############## Lazy cascading goes one step further than lazy loading: Not even the complete structure of a file is loaded initially. When lazy cascading is active, each object is automatically loaded when first accessed. For example, if you load a file with multiple Blocks, the Segments of each Block are only loaded when you select the Block in Spyke Viewer and the Segments need to be displayed. Similarly, the spike trains of a segment are only loaded once they are accessed. In contrast to lazy loading, with lazy cascading objects are loaded automatically even if they are not accessed through a DataProvider. Once an object has been accessed using lazy cascading, it stays in memory, making future access faster but potentially filling up main memory. You can use lazy cascading and lazy loading without caching at the same time to mitigate this. You switch between regular and lazy cascading using "Cascade Mode" in the "File" menu. Like lazy loading, lazy cascading depends on support of the IO class and currently only works with the HDF5 IO. You can implement both in your own IO plugins, the `Neo documentation `_ describes what is needed.spykeviewer-0.4.4/LICENSE0000644000175000017500000000274312650522331013234 0ustar robrobCopyright (c) 2012-2014, Robert Pröpper and conbtributors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of the contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. spykeviewer-0.4.4/CHANGELOG.rst0000644000175000017500000000660512650522331014251 0ustar robrobVersion 0.4.4 ------------- * Support for spyder 3 Version 0.4.3 ------------- * Support for guiqwt 3 Version 0.4.2 ------------- * Data file path transform for starting plugins remotely. * Various bugfixes and compatibility with Spyder 2.3.0 Version 0.4.1 ------------- * IPython 1.0 supported * IPython now supported as dock instead of external console * More explicit error messages on file loading failures. * Added "Start plugin remotely" to toolbar. Version 0.4.0 ------------- * Optional transparent lazy loading and lazy cascading for supported IOs. * Splash screen while loading the application. * Open files dialog as an alternative to the "Files" dock. * Remotely started plugins can have a graphical progress bar. * Remotely started plugins now show text output and errors on internal console. * Filters are automatically deactivated on loading a selection if they prevent parts of it to be shown. * A modified plugin is automatically saved before it is sent to a remote script. * New features for many plugins: correlogram, interspike interval histogram, peri stimulus time histogram, and spike density estimation support selections in addition to units for plot elements. Spike waveform plot can plot single spikes extracted from analog signals using spike trains, optionally together with Spike object waveforms. * Python files can be dragged onto the editor to open them. * Annotation editor accessible through API. * Files can be loaded through API. * The Spyke Repository is available and linked in the documentation and the help menu. Version 0.3.0 ------------- * Added search and replace functionality to plugin editor (access with ``Ctrl`` + ``F`` and ``Ctrl`` + ``H``). * Added startup script. Can be modified using File->Edit startup script. * Spyke Viewer now has an API for configuration options and access to plugins and the main window. It can be used from the console, plugins or the startup script. * Added context menu for navigation. Includes entries for removing objects and an annotation editor. * New files are selected in the file view are now loaded in addition to already loaded files. To unload all data, use File->Clear Data. * Plugin configurations are now restored when saving or refreshing plugins and when restarting the program. All plugin configurations can be reset to their defaults using Plugins->Restore Plugin configurations. * A modified plugin is automatically saved before it is run. * Plugin folders return to their previous state (expanded or minimized) when restarting the program. * Plugin editor tabs can be reordered by dragging. * Code completion in console can be selected using Enter (in addition to Tab as before). * Plugins can import modules from the same directory, even if it is not explicitly on the Python path. Version 0.2.1 ------------- * New features for plugin editor: Calltips, autocompletion and "jump to" (definitions in code or errors displayed in integrated console). * Experimental support for IPython console (File->New IPython console). Needs IPython >= 0.12 * New spectrogram plugin * Combined filters for filtering (or sorting) a whole list of objects * "Save all data..." menu option * Plugins are sorted alphabetically * New option in plugin menu: Open containing folder * "Delete" key deletes filters * Renamed start script from "spyke-viewer" to "spykeviewer" Version 0.2.0 ------------- Initial documented public release. spykeviewer-0.4.4/README.rst0000644000175000017500000000115712650522331013714 0ustar robrobOverview ======== .. image:: https://secure.travis-ci.org/rproepp/spykeviewer.png?branch=develop :target: https://travis-ci.org/rproepp/spykeviewer Spyke Viewer is a multi-platform GUI application for navigating, analyzing and visualizing electrophysiological datasets. Based on the `Neo `_ framework, it works with a wide variety of data formats. For more information, see the documentation at http://spyke-viewer.readthedocs.org Spyke Viewer was created by Robert Pröpper at the Neural Information Processing Group (TU Berlin), supported by the Research Training Group GRK 1589/1.spykeviewer-0.4.4/setup.py0000644000175000017500000000410712650522331013735 0ustar robrob# -*- coding: utf-8 -*- from setuptools import setup, find_packages import os def find_version(): try: f = open(os.path.join('spykeviewer', '__init__.py'), 'r') try: for line in f: if line.startswith('__version__'): return line.split()[-1][1:-1] finally: f.close() except Exception: return '0' DESC = """Spyke Viewer is a multi-platform GUI application for navigating, analyzing and visualizing electrophysiological datasets. Based on the `Neo `_ library, it works with a wide variety of data formats. For more information, see the documentation at http://spyke-viewer.readthedocs.org""" if __name__ == "__main__": version = find_version() plugin_files = [] for path, dirs, files in os.walk(os.path.join('spykeviewer', 'plugins')): p = path.split(os.sep, 1)[1] plugin_files.extend([os.path.join(p, f) for f in files]) setup( name="spykeviewer", version=version, packages=find_packages(), install_requires=['guidata', 'guiqwt>=2.1.4', 'spyder>=2.1.0', 'spykeutils[plot,plugin]>=0.4.0', 'neo>=0.2.1,<0.4', 'matplotlib', 'scipy'], entry_points={'gui_scripts': ['spykeviewer = spykeviewer.start:main']}, package_data={'': plugin_files}, zip_safe=False, author='Robert Pröpper', maintainer='Robert Pröpper', description='A multi-platform GUI application for navigating, analyzing and visualizing electrophysiological datasets', long_description=DESC, license='BSD', url='https://github.com/rproepp/spykeviewer', classifiers=[ 'Development Status :: 4 - Beta', 'Intended Audience :: Science/Research', 'License :: OSI Approved :: BSD License', 'Natural Language :: English', 'Operating System :: OS Independent', 'Programming Language :: Python', 'Topic :: Scientific/Engineering :: Bio-Informatics'])