ࡱ> nzzR%?n&PNG  IHDRV=gAMA pHYsodIDATxk0akٓsa%#J;F ~0,WkMn^ײ,>4Ugx۩~?>T h̟|m{+,n .`xsyǁ=N/ ~&&WP- XW-Qp%QǒCEZ>e>1E`Kiut^$ok?d/Ĺ5ؽ@voCu}}-q;I'g%3%QI8גXTuv`w P3 /`}v[F~b> A/P0xJ ~S~؟D]@x\bxy.`lu o/4-"`ӌ@x.*RD@~8 M%mQJ7(~Jr9v/@ഽ}^fpX t&K;XFx=?@|gP,FU\a:H0ř'*\4p><]0j.^emk% 7Xڡ OPps^,0x.8@E, &|#5}̗aZf:9u]; Rt?o`]=0___jWL]"uw/9mu}_%Ux8:A¬ocbcg&V>uPĶ=Zɾ/) W=[vxP/fWtቚu}C%~/2(`}n_!WlX4lgNЊu}]}_@s fW?u:8!v|DmmM' \2p(/5s^9 Ͷ  Q ]g/ؖF҈E쌻8N b?W"DJsUd]tkTJ'/\mxJscpߦf ?|F6G`[:cEМ5󹪃׼Pˆ, ` wJ"(9XٗHƄJC Ƅ HkyI;!~wj=V']n|Q:s ޿ƜWEvA3lWu- Ұ?D3qpB7_NQ}g_Mh:]`g|':nP'Xr\gI[}z;fquԛp7%pP"al+_JBs࿭0a~p5&PHZU>V?!%S/@ZQ~???___[vӄ_c'!}rb%96Xi=Sd??? +WQ&h M_FԹ DD01DL -={+DD{\w VzPτBbp?&`B4+vG޵έ=Q`x4XO*m.(A#i ,D\@JZK7&oWh Mh MZ[#&N?DL&*k!\5,#WEWULCy0>V0BĹ i-D&(@uGk1qׄh`b4H]m%{܃6Pl0(?Q.e4 .yM wMHNQӄMU]s9Ao(@suIp .`|46js:ĭrsvٜw֥w4 pf!Qa(@C@@~B;mAh8MHzaya]r4 P!MIaЊ\®+ 0nB(ۖrτp8@CգFP V2N Q+QL Qw Rtk >c'N@a݄h*wmPcAQ҄Τ %O 40І-ph{7!eE>7bF(@ 3Ձ[zC4 MQ҄2O.(@ 4Ep9DMmm"X<6VPD!BJ`~@ʺͣFP V\L Qvns `ey5E&{J݄TW O6<4&I* JS+gQh2ܼX Qv&TRpKn 6Kpa;wGM,D:M(*χVV"h`7YXBՁm &3Ej &Br;NIt钨:"DMXLV O˦&V 5J1! `%Sp{X6(@(&(@݄b5=gO-=NYhPG~aZr. V(g/ 6O(h&t恵$(&!.DDA o' `z7R>~/. 9qb!'$ Qvʈ Jb+0@nBz։;UAnBkuÿ wbHT!JZe.( ݄5?Y5$$bh4Xs[)4XYyA ! `z7Xl҅nyC?y `}7XyD?vL0,;DH*YDz! \ Qӻ I m݁|MonA݄2bwjmR&46r4&T\S"Qk$)VD@nBT%ajy٦Myڻ(@݄5K&NND<\=>=Dd =ڼ9Q+QL Qv;&Yu> %! Qv yNNB>SJ4&t1eh`.(@݄xWfٍƻ}(@݄X* jA4! G "(! `}7LA`Z*BnBi>K* Y>V-xӴG7z]pXqៃA!Mhn^d8$$iM(g0)ys19&z 3QN?nxne:ќYlw1T֎>?7Qfuw %cYHʬik~1%&s !MqsÝn4!)"*!'"\ e I۰ˇ#@ܐs+.5d\@Qa~6c۶o窛|P͋?!uK *rx_N&`:7r]W.KEdϵwe.C2X2Xn?\)Ed+83/W.CA~N" zA/op lB>G4 8#UtPǶp$$z@.Y D4L 0 .4L 0 .4L 0 .4L 0 .4L 0 .4Y &?3JIENDB`n jNLPNG  IHDRLIE<gAMA pHYsjIDATx]*a=%35 V?[TDyZ)@!v14M˲i_~~~n 񏌱u@c[r/<4B<@Uey~UZ7kY/j;PMp$|^WojbTx:a5G҈7RƘ;]<ؾÝq=U$|{NQ 7Fiw ӡ)xfu/XQsyjHفqkv]XZ%#>ГD+/mWBvmVpyUwxuo:Gr`|뙕G@C~ p$#rPr@9B(G9!#rPr@9B(Gz {lIk:PSət)g^1\3(=?JŢ%mu V6 fߦ %7dѳA8?HW) ^E2(/֟7vt^_yN8~P۽8T.\(d mw=ѷ?h3.R֐Q*Q[Bٗ KgEӫV٧Z90,'ސsFpEx|C\xa~E=<.!=1!#@-ᆎr`'朐<.缅"yE8BJ,3&r7|@%Bt*<82a-s5*Ϻ`۱cg4tC q\hZ=&hҥh 뜂DL\شg?N;n -̲f OMigKOSndQԱ:}nkO\MtХ}|_b.}N}\t(޵c*epw`.lOKk:Gr[8'?VpӗVR%BuBZ,[J}5> €#ykACu]{ɿ;][Ϥn7˲݅ #_Ͼ+`*ѺQ]9!#rCO\ F{ےS*m1\D?ͿSP7-&r s}/.i=ٗUW}}w^x5 ^Vg>u=퓳mBJ'T5UҦ1϶|yt1.>7+|BjzyV\hKVߑZ#᜼2N6~1yJgG\]Vjt y1F=sHA o.ە ?|P-&ilrH+9 Na^ [qٴXd>30UϳήU9_%ڠl]-ZԚmLҍ Ykue"G@9 9fǨ<G9!#rPr@9B(G9\{w4&| V``Xr@9B(G9!#rPr@9B(G9!W6švmЪGȣiW6;0\+i$sr/ (쳕/_z )G%<ך²lU鳻^׋)úivNx($*eW|QvۥGTJ;< 'xXZr~`4=B2uҡ5<>ӮSq1[ke99(r)Z֮mrPr@9B(G9!#rPnА9!M{k>:wwzZu-V0 ki>OtД.9%E˞f3 -7-y@B5s6& vi-Mq' <ϥ9\ڙAm[ۀڄ[aqN(G9!#rPr@9B(G9!#rPu yϯ2vճi>16 ?qBg;C +J+KWaxgi6[kv+ruE {;k)7ge/gڽ!L9v:|bZ<@\~wN+_FH.!'Q̢$0:Nkͷ[|`:<ͨLnTU+H. \d_ovZ]xpB(G9!#rPr@9B(Gzܻ^s8Su]gp~u[&'7˗Uv5yn\_kseY_1Ry|6Ƙ_B\Uar,KK;'峻˯*.a(F쒝k--魾it ,.O(&4˲,Z0j}y7|tYUds]7]-gM_Q/5zo/Hiy@px9-m+9nwՓv/|E@cOW~+wJB\g}? 6BPl0=?9/J떖 U<'z]HD9!#rPr@7>zjr99!#rPr@9B(G9!#rPr@9B(G9!#rPr@?_sC_ IENDB`@=R=7dD5J i ]>xV}HVg>ޓWM3j*%鰲 堢U(?s*FDT+tbX)$6MF;Zoع=yBS/ / BI".sd!h2Be|S1BT<%0f>IKDX!Veb' O j;a<_OOۘ}<_gg^;قR,r M,4-Mt~2͉ r$Y ty%9e3Yec7{9#p) (uJ9 X4 M52PhBS xhY& H;0Ӫ h:(PD! * E< 6 G B8wCm`P~d怫Gyz{6c ɮ܍\]lF|u=ǎ߷HeDxm]@H;KyθFM&c7|! "p,⚝m Q~`+ЁmNOrY+nɫw7gxHw ~Wr17<7L{&pNa{.=\ZKi>.l\KY&N4)hާDpXՊƣVXĊ;36ؑߎv4ٱj`L"1Ф!3LVxda|,f<`)$]3H&L/:dbH lR) 6;#iA4C Xzbk42h5X4JV*ݧATGTNtbi'-Jk i9IZJOэ\ypVݹYʨ\`QrU--\fd&_s.K'e5_q68I/!IA?6ߕݘg}" S.=FWI?vݻQB/P9Qz ׹+3U}CTZ6դlݨRtTZuA_QZ$*W*|WUN@JFMjЪCG "@$S | DOH) >"@$=KԼOYg ^) Q;rU} /K??| C1GZOm5j,ՒmV+KU-1#i;(3KtE 7em>%*89 M*]c.JEv3L&uzCWEs>eė퓹=e]ִdVm1#sucRA˼yA8QmSzۨsG.-p.A6TA6W[&a?b)gB4Uiȧ,A$:'iO[J|ׯo7¢0N4 qtnj\>%)V{S:7F14iMOYhkW;Y^WSͧ,/¼$qvF MϢ#:(5nƩSZk_'rE$.&vW䵮'vVWʲ,WZ#.1%\e^N ߦ'NQJ???!W<\i)TȺke.,H;YOCiu+w~*D4߿'h=$wmbC8És(˝%8I} ^Q3&(C>lkE8^638i94ă#Oi)X*0PZjFwd^gf8zb\Z@ۆNNwc d8e U:t0_筚SERWMQK7[D˴ Sg0WGΫB\:Nww.JwoLfS6D_x[^,{{WѲ\[Umv4) _Jg%3tkcM]{TX.t.$|f#,-c,O&-ſ$U*Y2þ+2v'|滿iLp[?pXu2 2TYwԸmvl4 <օcjb1C_8i/z%Z [FU ME^TXͧujZxQ 8n-+a(W*p(Z6Ǽu #Us}w< ͧ\o\8IuPŚM͓@Ƣݭ:%%^=k&XV~ꓹ9%vOk ҅U*o9 ǑbAX3/ohEq4|Oٞ}g%Z|d>g3|YNT&e~ ' N&1FlDY,o}@MN8eum&mGpۗK\su]bؐT&r"C<C!p>"-D24NC6A>m5?r :Ť$NbBiX=q*΅}fYyJj8m59vFcwG.}˯}o*RD^P"[_/>p!ȧ4&dѴGr!P|>lUi-Mbrǒ)&nrѹ#!!2:xFuSsD}4`۱: tJ5τ8Lq!`=Ҋuߚƭh+?Vn`-|ʚ]S‡bhwq wH[!yrE-ȧ< <s qJ$*}43rl)JV{ɩHUK,__SGZ^p4#}LR=&zUbM}<2/X1lTT^E>&w7}4o*R]ZUI=yLr|wM;kkXd7e}"O)zqhw SDy[H,,+ھИp5ZrN>ågJ-7wƎv1S`u?7_T* 4o_Oqh 2f7gQ1Q'!m%F] } pJpT+Bgv_%P)Wٷ~H(]~7EQ/Kpq8 wNS?)0$;#24r8}Bi :b8B>psgI3O|C)^CJVm(9cdCҪ(-%~a NwP|/`\\О̧HZ¿p xa=d,-j92iF-m{Ҵm4CgIp3P%Y5ɧH)uz埒*C( M'tQ4󑑶 }4W"du-s7g|z>HqȰ)"-H'ZYˁJ1?S<2XÔYh8ECOid>ȸՕt/gARuW3$n`魮ͻBg!L2I&Rhyj7RB]S6Spq8 wN. h HCbc 0fgBj/ػ"8΋p|]QQӆ`t/ >HP^fq^ (z@,VPzjYx&W|SwOg{ZIMtiU]#Gk}*㼜38t( 68B>Ed MEX]A{[=CwwBiXm/dZ)4b[Eb( 7೪)>g7/(oaEH~5 /AQ'!mQ0DKq2!NBd}wB\jd~"-~h̅+&k34N!iu+! _C_)pOҏ 9HS*$)F1A', ئBj/TQzk1b\x{7O>j}f"(E!L)l?wdt!ak[sOv+VR]ZUȎu@$;|,4ʘz> w/ cm䋋piƑgaS"b鷪)S4Fk@?%oE>qD)Q'!mmNGU!$n%PuGY;l= E>`)T-U+Du[W9듯MK8;PCW"š9 ;h h仧ŏ޻t7'K o\wRn"-޾&(ERNHEN}WWzH3Jzdu3t,Fu%uzuR4)"]~ꤪ%{$oXtI}04rOUBӻpu{{qA_ :U}8dsZ 1H6J8o PXrUU!`/#=R$+bLo.Th4"Aܕ S4G0? ӝI9)e6a\&M>t,rQSAL#g/^$=J\EY=yxݡJ2,Œ(9Q$)!ۼz8+_Cm8XL>q:X)8G TH,GcjP L%p>)-yq<*O&[Sbu]Yâ'! =ryRee|ѐOyq2Y}X'>.\  |A^d=$ْ88ECY ]|Jma sRV:88ChhɞĖ, pq8>) h qs g~-o%om%Mu-L[\*\1ر2J|bG#vAy,OXiFY++ t*ӣIiTU'\X;ΝE]Χ@q{VL2)@*ihkɶȧ~,`u3w߇p]=ONq?B`q ܳ0v0H@{ޢP$K#%))IOh_Kb;X]QuuLcsE@K͡俵w*-/ݍ)3}hzgPe"2D| tqyY/CYevݺu7ȧĐZDi.j¦8uzhEb^{˩Z ]QlN"9c04N!iu+;SB@V3ϳ8xJA> qJwvј ̛'M,%U9Ɋ#&$]Ӂ#H3m?3 yf᝝A2T,DjGB`8!McbMJ&ES۸|SOaǠگkb:|@/S̆,rC1ioB BLk(V8Rf{o=SF:!%!I# T/bi+p04Nau8>P)kCH8G[!I.RMl'S zMrri,Œ䷹  >H~5=ʶt(?VT׵W\<X3H|6fuZF2{(-ׇq)8ca-Z^ϻ ЌiA{mQI8r.0)2XC"dƚ5NX}q f8L뾦摢NEnU, )~Vj>"I5¼$Y( ̛$%}D=8;Oխi>|fwjt=ǘ2'v|7v( a~0—|~V5HƘ0JȗM#S( m:L#B>E$2z[;h5ϘO)KqQre:)e)8\6n&#Lp{ ?ᾉc R}Ej~ 7,q+- g^24N!p8+#O{@$C!NIGw²zm(m6Uֵ?{T ˥E=.lSWTt9Rw_nq͛Haߧ ?oHfT(>U]IuMʵHj_-8gezoNjmgE{f'C)_TUMu ]GY^&y܁T(ꊪc/*ZLͫY)z+Er OP"RG;3wIeo}CgCQU`hBp(;> S qrwbd:U-4 >V뺶E3?= ']OisOIv.ҊЌ!!u cUCgΡ)eb6I PSws[j:qG)!x"n; { qJ/,|K^g1S-rЛV[_I;Xmo[SS-1V=z{ˑS"ɟu]OzrZEOa-ɿ^;upx#d9){u(Kw|J03;~s e|GF;&Jo`4:k (M^z-(Z$t ͧ+8w{p(!sg=OӋC|J/<|} TH`1Uչr_%ͭMꊆIZ,ѰӌZ\\ג[[ݶWŮG&sۛ.m]yyӏ̗fn; J)?)"н.K~*rHce8)'Àgw>e9#N.|}4p\1kS*i@uեکKZV-gq|Cd+7JH,{R]Np+6$Dʧdq@N[!yd >Ox-DBRAÒ|45<רf5u‹M[0Jjd^Q2,p 4#=='ɼ5‹s(6#;IDAT\hl󡩕(:|V b}"<8,B "H|^ui*ciJ0VkӿµӋr*jeU-?fd|Oۓ4k* 0|{Slhu\]\5T4X8A! ~ޫ߂>zQp SlܤC xOY\k8W@vĪ q S-ְo퍶|I NY2ך߯|+gG(d[ڝWRԒNh}(]BF34N!\ġp6N[!CPuZ|O0#B19ZssA@$) q DB@$) q DB@$) q DB@$) q DB@$) q DB@$) q DB@$) q DB@$) q DB@$) q DB@$) q DB@$) q DB@$) q DB@$) q DB@$) q >,^&D }U2>ࡴ&JH) >"!hu [ q W뙔=w+___Kߖ>VʂOh#>"@$Ox"ˁF)H[K?02t]ϧ|`NS}S | DOH) >"@$S | DOH)m0^k(39dn79|L; ~| DOH) 9<͎$'NsNpuXܓK Mܐ8=ۂc Rn_XO)s@yh3ܐd]b"@$S | DOHYϟ?grw*IENDB`@=#Gq>US; kFi ]>xXolUݹKgsKiZ 6Ri`DbCE|} FE>(Ij C C+1MHMjĒ&U&Q$u\{q=3{vf[)x*"c\TH6nW )}L)kF*.K6o⒱H-EX)+ZO|'+X< Fbx {ĭ ։K >Mp/=|臙.MiX!Kp,2g*SbM~ˑ4V.,YG7fʐ=&T9߉ʗ#:뺲Q57*'TԤZ!&KzXYo\˭mћ"?ޝ7Sxese4Z!GF16htz۩z꯽G7zz^%>]ikߚz9kM^jsD՟t{\W2r;x9;GusDPnN]Gr:]6݋gآ:ܣA/u)%[s<& B1瀥Gtf{c״pdždP\]>I}t7J F ;YBFz毵kvȦJ#GrG4x ':Ͻ}ꍩ*t 7o[(^0b+Vekf͚VV~Kw ˘/^QVO( q{L}#~d}ʮoeoL/jNγsq=b|*p54 ߧiLE{t':p3_p2q3; >A3 _ȾǓ9FmwU.Wףn8/)^"Uϸz>?6aelf~FyEPTd3XJڗF cK6僤ߪoeYc+˴Escmoc# B3=Cm򲃵ύoo_F]n{:V/3vsB-MmVV 6lolx-z&t3;c!kAUw+L[Dzs|8շ5]1=9/ZPdȶK}1Lw/X<9/=SSV17:}"0+ By8e68XJzƨB?EunbvϥPNG  IHDRnrZԧ8gAMA pHYsodIDATx[,ac+,IL˲/?CYj10: ˲x. Qi>OhYv0u]܃kZ 7g; >yWP?1׾Py~/U>[!GM"v@!d'OwwRl}~ϫߕ` 55SJGя=5k&vp6/^n߰VTpP&]]DP8>z:r498uCXe)jgӰ}8^U=4J4f%p7nܛ@"sT@n&}EΖҔ2?>w^/w._n3]J0ip^gvy_φ{*`PB % J 0@(`PB Acs`.n%@=y;kWJ 0@Grf.oq2y6" ׫u` g,z"A<ᲾmJ8X㝲(LQ~+nI%#设3'ِo稿J7Flӣ[±[%뺺 Ʈzf7'MY+DWumUejP |euAjM*}5Ry_\E[<ۣ]ceS6%[mOR5epZco^K)ïtp FvL"55!bGȖ~4ip_IcE߄뼥"p, >6\A(b6w #B{nZi9캷yb~8+~#zF9v$l_1aص2.^%QL Su;V0Gu\Jn+<%K+߲ h2[щ)z4I|vo3v]Wo/::wѵwQ3v`V p'oe*`P i.?"l]\#J$Gn_ʶB(ϡIr]Up~IVKJJFzw0@(`PB 03W^kP@PBI)$0õ.Bk|*+RKj( AӺݮX..]{|eͮBIe&֦ h쿥# 4b iz>5|ıl/%#j>\#!~W;VZYVj-kN,Nڟ,54YR~*ԋS`vr7/0!(O[*w+ fJ¦Vk<\in̖ _'{>ilEqAx^򁀆]-70W(i2\༾B A1+Pɽ؄ۯE(jwdb B ڌh fîKxcTʹ|JD=GǤyҟ<Lh!XIdF`͟rT3t~ʨJn~h]y|f4%<8M OANsۜdIͦz@aL)T}*U)s)~ƜOƵoh0P"X DO[ vͬ6k{xO!E3ל2ڇ)h#SnF Bzì`R/^zГ})0ơ|{[ wn?P:hqvO=}D~Gop\9G|~sU }V{+6nrҾ3yr{]tpq$6 z)jSjW>k2vz579(ey4ONJ/ކu]u]kIs.uEtd:뺾^/@.MV kuڄm9ݫ,* B 0Z c TAJ" w۩&@uJr:_`U~ s0P /3 % 2J>gPp%@ nL0A(`PB I@0Mȧ{J WNfi!cƾQ<E8hgMEkJ97'W斦&¬uVWoJܜ.+EʜKHu`u۳lS_]"24Mk,?);8Cr8PBW<4'@Inu N:)%kr;/e*-RQJRKj(IgR暜KWDKJwXjB 0pKl.bLiR|>%FEzy` jQ3(,c%@JU}PúJ(>mJoܓv*mYZL%Y E:q(qAz-fzWXՌ0irp20d]W8߯C~ٟf]w |I63:);8aA$u]E%{5 %IoLx<>-lç9gg=t9\V,>sHKǥ]͹>},,q7PʜyyW]vp;vLey^>T_GûN6s7O5?}%.p-PkvDcͨ=%쾙s>^MY󺮻+)Y .{[ol]ոU}@v%|c% tn/<Ϛo %@%# o_B vz,kQ08tpGNZ%QmV`499A+viۆ(nCcXr"3mjR*9CЁp-Z3}:8+!!Igsfî:8|u0$/F۳5eȦOgLgw${^T$}"Qq*/OV DNvNiVH]8M(0ЃZgJ(t2O hlV 2,˲weE*svt{8)+f4wupb䜗 j7 wB(jwdb&% J 0`9~ s0P|>0P2@5<Ϛodď[0 0@(`PB 0$0@(`Je/uB 0 dvE͂ם UMHB;g7oR/пNî9p3m'JJt{v{=_'q ZVt )2 %'#Ăgú}jWf3ۉ)|>+7ëѿCVI:Qr"E6+ּ_ma{c,P] .Qii)p3kPa!}󤓯[J?"#pqu2Yp .mBkaB"H(襘7=JӔq rӇLjpGq'9*pc%+\pWK#a0 ӸPAg q!J92{,LHZ9uU{5 CXޜ}`"ڄeY^RXJhMX a"*Xޑ)9i3igR#,QfW[J{d0MR&!yR l!hftK_*"Wx Oa׋jZd>jJC5"0@(`PB % J 0p&~:8:5הK4o.e2ܡѿ|_q穼Δ4a~R~jV@q˕q]O>&iNG7qfoLӄɲi6*W-PTbitî'̴>Xya-aF)'HMW餔%2OO*=^z'3O,5\HYjN1dIÝi"v`BIֱ;jR+a$=ry7PRy.ŰAq81_%:_գ;KJcdUAi-ඤM(RGlQl0uwY|:8&ƭ-K޼=8pۺkupY _m8Aa:6u5e0% J 0@(`PB % JS(w-'-w11z$qsW/]cJ7r ~3b YMI-Ngcu>EfZzͽ30 J36ʥ SG~JaW|\FGfw %뿫#Sau+r+Ln ӄɲi6O}*KTEA;]}ɮed4m vh}<ǚJ탤%RxIt}(V4:4WR|_?ZJ#_jo6[]$ud9ch3V]~}ɮwLVQLJEc'_* 5*=\RT(iȐK2vU?J?=eZ%clqJ>Vi\6q^:+㺡PCî~=ʉZrw*N8G_$>\7V2F@% J 0@(`PB ,~ s0P|>0PO_X % J 0PonpntυU %QA{@Pv|eI[gìhj~dY];ZWnbXI3]/wv,V,~eקTlQ_%0JBrsÄ%ѾinliG3>Qٔb i\l!ͮ/] Hd-O% K~wTfOv"Jy3Q4i"NpNiP29%gR9M=ǂ3p?4#' e^MBԎ CZ%S2}[?ܔ+F(n+iRKx4!S!gM`^xW}]{5׮Ia4019/ͥSu}^U[%,7AR5tȹd{}wF]aW!0@(`PopanbJgef{FTX % J 0@(`PB % J 0@(`PB % J 0@(`PB % ~.yx| IENDB`nIu 62rRh@PNG  IHDR @gAMA pHYs.> IDATxѕ8ay6Ƃ)ׂα`QxLʄ`VD0@IߙG d x!B^ 7O yglI8ak2Xm ><7xkxܚSnD k2>Jնqϟ59T|!-{\q`릣0Ffi&K$#˗_!|wk4x]쪼[;<3뺮`g׿/_C| _ vt%da1iNmȴAZX?y6tfr'zcFd#򸴩򿇝yA+M0o߿޾!|{t'# *uVT[6_<YfW{΍vxH?%ɔ cQWh},*-"o~--Ռ%)ƿGmm骗F^L]L{U#V/gWv`O?:8s6-_{=>v{n:~G)7̔LrڼNMz*3091MH_⺫tkߏ_v_u,ϜQ,BO˫'~TkWOE`]䷳'D:kljּkS}?~>64^oo?W6C$erOxTgk6;(\7+ R k乪:&;<C4̓$)OW>2`!>~_4V.B(%ZVy1YhWT-j eT{ 3Up2l_T*/*_FrˠX}\}\G0bk9+pJǼpeaS~k|__~Bu[x׿.CBׅEX砃ϰgOn].U/V`wa|?f,}| w!:!}ag)I8Q9 1z+_.QUܝ8w_hN8:=ğ3.)+B_>T_k~z{dV% 0?Vuz~nz]BK5͆]AwrƑɬB0hWs12]}uvu]w].t]uoosПsMg9uju%N/~ƨ_@_D1IyU[PV%*}Y1~cyz~yUuH*h],qe.?4ٸ]6kJ2N\Z-kmv vƟBt]j/' ۷|[qҮ%a2Xѷoood˛"}5JدgaMb+<ʭOָQ;j+}0 ۍ?cӱ 1,&i^ ;\.Lh49W6s/kɊx %aM+ \. гǑ~}|iP۸~/,F}߇.{9F0ՄGaFx.jh)v--ňdِh) &_LWS`Qb4cPS>7*,\N3ڌߊjgI#o3rVX|]޴ n|~UyNg6>F`&&>Y#md[i6X@cO<u'>L;)H#5X 7'Q0SH}Ãw*B %BUyx/`H; `MLp}ѓix<VdO%Ud|+?;~V.2C+,>-O+㉧rd7z׎"mGd,kQii<ŷ{ȣOvst\^5HO;cK۱`=E{,J0{K:Y/Yۇ&'dvl0m'M2Զ_ۯV%V`}q#?[a Ε2Lַ+Զ_dO[2c~j0Uv4wYOqv. )FWm<@JsP1VHkaEqy}y<0Y=?qڭy<8YldK*xȺVBe?6 "x#eBck&n 5}_.jr_Mdئ:ώis=&ifiScoto'x<4 ]X}<8kjy3PD x5`/r1zVj61璘ӏde,}#َ 8rm{, 1bo,۶1nʫ*o2~دq8XhWoQgٜ+: {ȘXs3~| f싢N- +4i$ak=)5Xh @cE؆x#|NVV.2C+`yvLI)90`'ǣ=Y6&ϧċf7lC+cPF}9Nyg3Lb VKp=eY5&o>Zi2[NN/ʘfIx䄌}xsqP&,5aSmZDZK`5e^ͳvv`TTي/!-`]7vίh7E'}++kϟ12}Qg=?*~K{=$3! xME؆P(ۑ\gᗳbD[W}琲gԂb;3 xYjI>d+/oG;?xqV<Ί Y-OkҾ]8'70;8#XiŠʩ&뜖.Uexvpnd2Cky֪yh[`D=y+߼̇suR2߬־F[n rq^ٮ3X˽]c}X(׶ǒ yNm<ĆZryگR~ vE cQ8Yg][vdnFkZݯyɽuCuiI 0tPZz<DFZ+`5X} rdJCk4 &:qر3XmD=&f[b'̆,EGpoj)|v&{_nv_V>xVY+2X-Oٰɓu<hοkM#ͳ6v+<ծ돟,b*7Z&)1toA٬cO[eO f?/<'! =?ufO\.nϚ=)̆⍊pb;p?4Z+7Z0T;Z72m 8.2X-Ř#lxMYBkUuK-dEq̨otp5Vl\UGm_<` 8"2X-kjVd|`9 q· ҜLBEzb ҸRvp`Ob˾XhM ;V uoXp>d243L.ra>6iw ;"}+EsFZ}碮sdr"W8^xqdyϚ IDAT/<}+bkvV__ekZ;Sˠ/[u\x?~i l]v|]`FGUCѸiձ{х]>cve*87vrh5X뜴%YG:/5Xt@8`4 roXȋMhu"=*v}a߇Z֮mYm6^=3lrK@jk40oaԛ|ah*-H2hY__]gTr=K3ҧ E`u!c4{ﻮ4 v-|4c$6( F+3C)5FW1}xJ1c5-+>H 0w}}/}\jRG\$?l]0`1H&"{Q߹k Z`Jb! \rY.FXlgIڱÍ,'cG[Zc4u%;698d1Ʋ't wYx?ɱ0P5mž#ⳢGr06N_mGx_ 9Q3X0 U<?} [++w"d ZZPoU֯6NTLV{-ZTEWQ H{dC~p<5qN}f@*x<i4ZL<.n+߅o l\#y5,<^5yYPT\tkҩ6˶RgK[st5X#~HV04%6Wt¿1ځԳBB>u Ö=o|sP1|o+ ;vk?вmq9Q?( R,0Ɛ_v%׎S7+o̮`sN̖RU5['ǜ:maFyW>xm !6`e_Y#=E?jhxkpyC{Hb~gf~ڧt/9=`-g2?$ FCZXx~\&`/j LTo46xzy{ VcZƥaHn^׮pܼ3mo`c V{X_[]\dlP߈q\,jUh=4r 6XoˢaAQPeaxdkƱxHfihe+fOykpUMdJӂF#vW}:{3~Yyt-@ch5X-z()XuN#)Xk#,ΖӬ0P5++./ 93H٩=NlY_Yl5OT1y+c7)Vу<`;ܕQst\}8МZ}ddbwv!&AbRua0f?k}ݖ OM]i┥Q?dGNv;i_8瓬3y񤅱DY"; cʸx~2Fg5XwMq@UZٺ=:ye}']Ԍ.߅As84uI:8![!w8um41zbeT'FI)NGVXS;j+[n:ᅱndm<a5XGէkD)^k@{EWP APέ"' n69/sq쌎=`9c}Z!]{<Z֧j_10t۾_kFi-+OʯCiÂq2PYnW1QW5 MCV_l60~Y'reQ|=y%v}YRn&w*&dtţ!y>My PUYz$~-ii׉.g xDq/.΂vܩW8Fέ}h1z ^[<3 "w ȳg0AƜfl6=egrb#ڐdW~Qv$-$+L2N&h`Uof Ƌq4fX؃Ajh?~3`}>oMqid!c]!.oY>›"g-=]g"ƨ5*O$Vr<ʾ2dS %8P ob_S+'7+O7un՗w\j?exǕ:BO%%/k1R`mKSkqeurlu[e̻A~6،>JJ3܉]cy*jvpFheK.©eU0Fj8g,uVDۼ~`Vڏy.fB!\gy3%_;{NH4l8g~(+dzΑztx&Վr49iؕ~gZjIzkĒkcIZ-.7YGUC "OOzvy=,>KZ,ɲ Z, e3.Sn *øjJ` +'KG?'g=.XY )B#h 1hZ滸Q?k6=egPh'?/+{z<~w吪4&ٌ>pN>2/4}i}여cgu4UA87i ]lUFahTφdKy i"@'}FR;Y18#" pzX2”I¼v4vHb2VT{ Ț79`-C Y]A/v Pv1om! +S&瀴LU`[AIk斚={myxy,Ʒ<}[\oF7b3ƣGZ}de{y0:;΍kbr"jFG3Z|ri7ɚy0<N8Ͱ 12Xϲqkw}\g=o#b1,c '}a XgM5gfSJmAZ;ō'#un.Mٮ 87a6Ya[Z|L >C N,I?J\YlnoZyPO2#bZM<a?`P0Dڦvyn_ү' +gѽ_Wb#LNHdrH.Z 5+)af_q'vj5SiB8)`П\ڦvyn_ү' +g B:'k.Z 5+)af_/(;o59yYkN VKskIuTxg,npc!u<˹NH2EeXcsCa,Zn x.2Xi3YӅꥪ_C -e` ^q/S;uy+q:ʋUL<ϳ'jC,+OʯCiC#'َo6!{گQ^g;$Hk5kϛ];^Hb~[S+k3`!B: ':ШotL1qe#卌Kiחq5XS b@i! 2aJé7q VcŌTh I1/vR5XuYV߹F{riB7?N7㋬ml Vrv, TŷeF`kPCԶ ӽ'YI 6v4a6`ᜭ4[1Xmh h5X뜌6 /5XD  1`4F 12Xqaٳϸxg YײSmy|La|&>NqUY;r6V#^=7ƣT δQWb VK Mmjj8Fv< X`m!ΓYh7pFKGٍ7yk7Ì )N--i|a`19,v pDd+fBӌ\YL:Yt-ZmUF pzdoX0BLY8VV pa+qm{$] }Tl'{;ƕQv IDAT4Mee>Y8'8'G{ D lږhGGC 1hI[6t9dXuNg 8z\a @ch @cd.63ӇO|r#nFcԷۏX V36#Qb!~%`#w秵?A?_*O)5O4/}NL峻v')B@"LbharHM 4jL-1-Xg՞U𑈑r甆FޮGkйlo$OD1[-dFX!]nvr<;N5Xm8g͌&˗ s]iA 1`4cЖ:1O8`4,`4F 1"lC\{./ o?gqa XhGQվbqA1>]ؾ'k+`h#]䮭(7VG7iڶ"C1 J|1Fy~؎/OEQ|A pVjØ5 /f[gav"*`'wXk^m#XZkc @cd#wmt.7v/m*{'n'k*f )oqO6_T7>^cT5 M<6&?X|_tXU+r&)WڸQ__|vfاB*eΣl5X-KoPbkb 3=XҾx=o ddidzj&A^: 'g Iѯ广w<:فHq֯%#[u<[".xmy چD 8`'s?Z_ WMM? ~浠G$-]pad;Z j=~(*Oֶ묿WyУN.˘HvKH r[^;?hq(I{V'}ʦdyV_' XC`-TȽ.-ן7]ח=۬faɈJ׾RόU6f]35c`JQƧ+gmfI/,U<+*Q8(8?Xel!oISMdٜk?Up+|#c4ϕMXmsagBh=1)W *pM'Ʋ3X`-L; f04[fjc "a0Wh)nxAcp4`8vo׷}Ny%UW.owmnI{߯i]u])gGI س"G_Lw˹oc~U9yy[~#,cn D-9vO+M?7jDjp?jybbmm[߫s!h)>jQo IkpBplۨs .rl13  @UBn %]{2'delj/t3 v/\IgL>t3GއUso۪9u|7~kfN]z};ӏ)Sek7Y^08f,`ݳAئc5ĮB N?n\$iFǯ]'b"_׀s}Xiz"#?2b~V.sXұ`?[$8tz/99w|wtrqa0) >iacq!yMzPcKK?s&ݚvMӠ8몞 E-Ġ ta&n);De"SJnB1;JUaǬy]MYyc]^ftI[WL`E%JYS:k&vE,-eN nXGieԊ~7PAl_p P~7P̊#j}lwuPzvw=d!kh~w+PkUlʉgQyʼnJFEn<|wC5(=e&tЂ|z3Ãa)3dSNtPeٓ~*,s-[ZuH_E2Fr±S(88eQ?_֣ |wRƨ+B#I׷>sC <,?5S@}(GU\4x/y3 Зϯ.,6t9g1CH:.f3 [Dw;e9*,̜{)y7uq;4 bAUGwOf/IϪ> JUPzc7nW;S(=֧?)㻁2Sw@z醛7n-JQX;, n-JJS+g仁,wEq@ɩnQ|7Pǒvot§Pl HmL`<җT,G/_(+'*rT9ܼxVJ+l9U %|4=1 5La|wמ}4%:r~(:Cȝľ _J7vN8v\y30nZw? T~핗(B6!gdpw<܂=CSsw}b| 4q`fEȟ~w+|/@ݽAj}7elʞ| p,.?]xw7 k&Rmi~tf4ܨrqz8Cž 4NW}= U{GJUuPz̎cu*5d|700L|7 ^HwnhG@[vX@[ñnۦ_9HFd 62|w!viz=R!JnXA1Pz8nb7PHGntOՈWd4Qr`bcrD(x F4O#ilʞLް]UGi$0ӌC r&#sשD"f}O3]j %I)gqw8a:vG3Y\TT)ji}'gbF[Pؽz]NUYD4":tϜ%`=vq oox *cݥˌ*Ev('K3}'fwg5u[ goyybp~pnZX\~ Yc(9$d3~fĸܨrqZgcw]T)V,#1h9]uD쮉k[ ;D:r f~V C(=fG^鱁aǬ/^3EHzcbwF! DC1kSg vE,KY F YF!Lw JG4a$vJ!4 dD2 UxL/WVϦ(e+NT2:/bu`bc"r,Sh2I!5x((AShJf~7>-tE1w\󅌤M0}  N*8ʏeQ?_X1Z+Qo\Gm{j[E{ o) UPno\4x/yGXw!@1z<<я)/`p ÉXp7ۚ0ņrkPo1&}'MriGbAUAgpL%Y8aV<3%@0EJix}Fen*i*vi杁 @1C k PzlZZ1"g`f=ۨ zQz %șJ9aLeCD#vQ*`<Յ.g\"5:?gk+/uD%#Rj$ǔw3R>b@ jU5 .nFtY($|>fX8Jh2Wwܔ $~#5GhEK()t.jQt̝/;[cOnk9b}{d_ih[S?d3[dcw+yYZ%%^)ݙ`']yLcw'bX\ɜ)6gW~'X;xV٩/vt|yMvqqpHu'[.()#\0iCeVTSeOR<<я)mUٱ-Fkcw^kpXӃϲ= m=H{LEQCat6lQXFbЏtѭVmD՞A)umrb74m~@OZb3s.|$o~5eV0$x1E鱞)vo???-VnVCnkyK4~TəJcWbFI\"vÐw(=&y+F4A (kCmKB,8(=V'/v]b7Kvb q3O͞?HtT%p/n`bfKYGOu^?hnGnFg0r& `0޶i|ܦܵ%e X8C`r+!im6-'va].$Y"5`;奱֪=} ֥y2yzZ޺91} #UePZ6xwgU$n tr ~d)j#C`wsܹbѦ[[hh `  ĈH,* "RM1AJB@bP1JLHVs݋.59g|gv4JXFXCpN‹M@+k ɾ.5Wa.'K,|ȆXna_n凉P1`+~}C6ܖ!`m[oo/|J(:_ld St]!UoYX([Y?z&b56NhЅA)K`,:Yr Hc3Dr MfA*UyvT;WP n֚5PmAmG!q ;B&:.t0xGvhtf0D9ETSZ3R"Ԝ)zѩ\Qŋ< bTT5#E4nkh$tJ)b'"eexф.4)&t)nSE>E4a«B)rb$"U7u}1_|OKQ6vIxRlb*x7|QC< mbF}-Z["~/P|{w wéN[(G%((xN=lT:o,r#}fčx OP:|Su {U'![>Uc/M*;Tm?(&H܌iپ ]kb~ KcHC?'m>Zy9i~bb:ӅkJHu5[6<7|XWQȡ\s6Vֳݰ5*v eXz Z:x-yInhbX2.cǞ6'3Oex:+/fm<]U}^m$y-ůw6ktg&K3ůlV2,GVr=Zז Z&׵ 21H a/(^<¸u.E޷"&Oz)EW һ{>{ ݄#P=MBn|F֎P kh*PNG  IHDRogAMA pHYsj IDATx䶱UG`e0T2AwGX@ xNc1(Px3KdWPlۦ7C#u]}_،(_ԏ?l/Uju}˗Z}IQ0r]?ZVI*,+o16DŽ-`P]ToH'Nk1pc[VPïl˗~**m/}~hп.M+E}fFɒ'*sl2}r7C I)e8srq7aT6m?cFnVPyցnRh"4'7uE~]Re}y{Ժ/ۯJ-J̸.2.sjBm5gJHe֌$P>a6ЀmD9-aN6ֿڐh믿)U5Ӽ-v"ѯ8l:HIai\9 AJr S Vw-) rHֲma69)uUGL初U&g2&zHG/Q), "HsK)WO,ƿrp>e尽;͵4<^VTXgQaT~g(Nw9A&b.",U2 X4*_~5OJآRIE1_D(, 2(, 2-ӟW'͐͟/*Ӆ䪊H۾3aUF Z=l,r*YK2[t̡,5t&|-ָ8լ~9AY}lMCp.xR, y(8WcVEHVX^2<>_N3s9K9V"D^HKWXc|ZUpj?Oq圢9uJP[匕iaqNR(iO~ZW:ՍV ei=`VQ}S1ɿsVȢL7ǖ{MkѤA)!Q( / dڬElj3k)܇\\TIQٛ:Dh|_(/1e)r!-b[k˄iE|z+0'xڰ \O#Ym՚% lưgllceh/|>ʩ, 2( `G(8 jBpmDZzZ_²,/O=pQX !cs% I5_)s)dG/~_ubtp)za^~L{tlKgζBZ":)|Z&ڤy']ԙ~6Lz^Іe9 ɲ,:YpFM[9if+YٺBg릨Au:jXTc34eް"oo6TF#¢PS\-,q|A1(3Q:"lil2PKĻNwԚ3"G1?ȁ`u83]TadONy*dyVJwf͔ٴ3g0ۓȇg+*HЅ^v3O|×v?j,NNfJDS ߔ])aL"9#Iqa t$n~ OFȨ8Jq QOok"%< r*|[^|H-S.JOŷOKeo.X;1&+7cNYRBy2ǎsie۶eYxɱ[yv'I0DǷE5třh20":ξ(x]HF꣼FJkxG2V$(Fs%8ܕKC ˸Vكc>5Gk ႏ:G3r0Tɭ ?ZU,Ԋ+_3rӞѯ8HamTRo #8pJFe7 45\h bz'Dt!}(e}Z#}QF+' GAЗR󫬳cPJʪܝc .8Y/cmϗ`Z(n X$(Jf%aǠX h%NÙIN%+Gs Pz5@ R|`,MX?څ9LAVEȲ,Q9r46T\ 8NwQ9lsŜLD43:WJ/?Db-!qSy<~DPxW3AV"lE?LRJiEn7?L%>Jc"܁+(hK^ ȳ^i.3 6WNO `¬ceuIq}ղˉ-n&ũb.c5-9C8'̈́3i9nKEӾSO9љE UJ"*[Hs7=Cӳ]sN#QekȐz_]l}Exo,=#Q _8i54Qb vh`IU~?^$rRu+5Qsq,z4 PIS%{oS־3e(-).g]YG'@,ͨ h[bôl8[4ź?!mj؆S$TRJN~.pIgX&(/V9a6s߿̓U6l2Jq 2M(Q/Vy}}UAoZLs~O8cXa-In ,N̅=iaj ~e:EB^ +ߴ'QMSa-IQH(i1MӢ)g1I(XyBW 8//&? h)^gTlؾJnR11t%g K>1?Z5o)>Wy~w;/8ހĶɿ2]q!nVz:l__o_PZ2ˇ(M6I%A]c]_^#L٢`m{2E8Z/3ig|'qS:^bcZ#e5#UzrxIYKE&ۮYi.X0Zynr(s"ܭeQ}v*xVɵX fHZ3eN>J8xaoo/]ܴ8'(*:y6KQu*cnAۮRj9zd6u9xiT.yjb}jGin7˗}_IR<4MPU9,JkkT=QΜɝu9R ztQ2zw'eTtpnڨMZ*u9{N?O7E&H ~LceuN흙XQu#,TyV% `j47FG9CY$M*FZ3?'X.;}?XF= ey{g&oX?[_}ӺȜ0 {tR BGٴYaqBk͐hj\YfD'JmVW>(&}ߏ}9ay r@KU`H-'m,+9=:Zqͧ8 9(- n SIB%*^;sYf&.呜p-tc:g$֙H?pN5)!V>Bq)+s'mř9+]G8JWYe{enluag QNL'EnjIeJ¡`Tz'Ez\֊S''j:EDd1H> F1ΣZm\~qӸZ/ŁC4}@m; lOym_^EhkQ>eNh,l >;eéF%ݠe-dW>7srwՃq&f4 E}ۜ(kQzkך:3?ZSjI6H>JkQB5-O2@ޔFu7XoFy3 |GaT"ϱ/ 8M8#2M` ߚ`ʜm?(EC&4glv9%x W~>zbh笣ݝ3Z#,sXl<p8Jע&ڏ0J̜牣33H|%,Q1ߌ"Rå}Gӽh3 <iYJP¨D!Iw>N9QE0q_ȿ?]UvKP|ajs\ҝq#gN1F#窙0V9{L,vd3eӐV9[]]/b[J,x,?6Ze8x(maTFr&x a|ifN>?)oh\50Lmef,v>bYGoJ۩'4W 0ת,9_֗(w3Ľe4CZCLb!k+0Ğy&v409yOLퟬ^yf Vr;j8-cifz'!ZCZ)&y+Nn&l|f_`-N> WQX<ޗ뙝+0M; v6͓,,\5G2 qXDs4*&+h[I#H6wWbvYgY*h̏zT #ILWG;5A㑷+l%*9@>VbcG}ߏ÷:+QR60ڶ}PK[5 f:s7j_nGk,M~͉vPt'z|RK+^̮,j?/!b=R70joJ- 38``(JRLJz%D%¾'q+rVKR/2oMPKIYY8_X/-KCĖ Yڴ2Q} N1~YGAk`D FDnGX~Wj>% nFyIN %a:-br5l=xmI B%.5'&UއG1r_!|󆏧~qO^c, 7n4968iZ>ʮF 5<]. G;+qXGdY`{A a$_f<| ZHlG9l~m=J+f29'MM{y-0%Y(9GQyHI~?<F Wʾ%6Bso`?D+N|T|3jQ}D̊_+P#lۦnvߏq$)R~|[RH}8mtf!VT[P6ރIVbɶm9P}d8JQswޜ]QA]z+UJAPQ(-ߏRGg.fS{ԍkoKv>R0$lo_2DGIz*-;NuF=O䱵 v1麈-9TgB_ xm@!|e.L]vqVC+_G> )~>3. )+Wޑڢ |_Ԅ 3J%4T<sHG 'Q7!GQn~9KN&`؏~ Arc.(qQ|\ey, fFZ) fHwd/?/% {e=߰1."<#D[m`2 yy"zYUnWi) sSBXع>KT,BK3Fկ0 QbN( >,i ̯tnV()8+9 DBBFߵq<-Ǻ̶btF%ѢhocK:uocz0=2(ii4j IDATL߂zdz( Ƥt`XN(q~:e4bERrpaH.8G ~ϝۭɉM6.C-(Q*1Vٍ4S/\F06qa1r Ѥ# ;77<\+ZrY/fvW) V̕$nXtߏ?愕3e:UrqUw4}g0C(];<\7%PJGI0 (^ kW/SjAgb-&l3 vi%LsT0¨}+ )/Sk%ř/eubZf5tZfsVU4]Fԥ0605(Y^Yn~ 8 X+m[/l7Q i`Ne8yX!SQ-)CcÙ|`Zf8ʁre^;cy6MJEfEJm Wbw &4$Ҫ9}`89$Г"WV$'HVa)8U**EUU!ݏofV4QyqՆ<9W}R Ij;G7pCC1v^` 3 { $ o:a>)ҙ1"r AIYa%gJIws(a8;h/J1%_ʜP3|ʞwT"_\TCu`H|^&GW0/J-5"`3?Bdn"QIe"Ε4O5 88Coթi!2-(V$$ w3#TBJ# Q\/X`5 @lXca&٦( F1(9ࣀ\ B(XG8IrIqEIqEh$4IQ@1DD¨(FGr Q?`"(C q t*2M"4+LϞaM_)ULP3ClK0xAjp?UuZ/K [Jt*j | NEKV[k#*߄2A#_[kwj¬ƏP+ylds%AkaY,j(DEp8 ӅSvus^*52&يw$;%0򲍡S&9sA3+j(ۊgl(qnL@%0Q@7j"ree&VRǯsI{0^Yr=MUDMSJ]Ƕ.<欩Oqv> PuS~6N VzReVhm 50bH4.m(Kf6Y Gt~iZtnࣀ= RbL @ࣀ*έ5 $2[*!Z /$샰lp$stCuL(`&qQS #N#|2^,?V#wM€;r6Ű$lyLr!FXw AqͅI bu c ,eS+XaH 6CK8 f@4+9CBBFߵq<-ǺfQa` (`\ Iя381l (?E m0V0 &A&)5 &ԋ$1WGlT+`? fvW) ?HG|1e:C }SAӜ >!( |0IyvLULM*U)G s1Qmtmq#eAE5сy#XJJ hrpQe 7`<2G@:?ùxsmTRʵIUfA9/0bH.\SF\QliL5(k-oMa$vF:\/0k"[VPsІg izC NCs`Q@rQ @G+R3$ZK0FrHN^IA Mɉ+TI0" Łݺ5e׆ Xࣀ0+\^Q5[F)Xpt.|0tNw揍PZnKKIH1_(Hst$5],ߺ$"j$g%Kg+kf.|p~:3 5G:tc0gp|6gݗmxG-M;!CZZDyGץY;o}Q@ z @KG%:UPXhY)[}]D`XGH15(jL&؏ n;峅Q01왏ml!L&Q@S3m Q+> (/\a|$9"ϦɁQQs(C((pEGE::ݹfS:YFE3XPfZi1gV^g =n׫ռXZ ; ~MJٗ(Mβi+ c볗kG*߮KeC8ůA Aߞ\8nO%4^0eA0t@Atc;ԄTA92sVQIѦuG)1d+.t z"˶WμE$) coT a(G=+VYׄˉ/D Q[Lb* PrX,fn9+mW3<6~_8\2;'Lz$ۜA3I|B1|b(j^ Q@O JӐ'Y?Ȑ @ڠIbEcHW06WRGLcfO#_ar%X4 3lTk%nAqࣀgw4g59Lo^ާ hS0rV(AKq0.>ejՄ eOkU>n>ݩGf}R:Ӈ#Q@0ɓR)f7=}L%8݄hNCG4I1b $Qe[ !`fJ^ GrZ#ykq G:)x!6s:(c\ (3}+ JV,. 0#"r2Fq|FFV(\ z.iAg@ࣀ1K0Z! ()w~oTXt`D@jQ>ATEs`Q(nN (  6w }9 Q@kjؘ8J > jG}ci?pࣀ>l1?:`DF> (/D"LP$3E((|e 3"1v 3ٔ+D/ .Kɧ^:tls d!u%YQ+}bDɜV#+c`h {fs,G|j_5t6S;eysUއVc{,k0qsoEȊgNmv֫d!Z5T5Gﰪ a=tԹ|]"{n=I*52&يw$S|d\Ize@9+rSg3+jW8ي!Mw1 eA۱>1S3Pķ* (uANs0-B di 1Q@7|9zOHԼP9޵Rv?ucΚĠ93G`3 x|ժ=V>ʲmνm~??}kռFŦf2]AN֣u4&XJJ8& n #:)1x4gK9S 4#\ s{ƞy( Y[q0u5,'ؾl q0.zx$L[qfJBޯA5ڰ~0Z E5't``qaq0.8(?λAf?cj.N˰Y@ MGxH9"尀Y~0Vq ]I1k.vJ }9ŕ_lgaTCwRd 8?h_ P{ᣀWGy sA-H)'7_vdHqU0WR%辄SAˎ,9Ԉ` (UDŽڜ 3IQJ.()kQ@V``mέy:3o ^6fPQ@kZg9Ջ0؏jn%}͕հ^GI> (Hَ'(\*.DU+ Sv> ()ާ1q_m'Q$% GPGPQ`Q *b/} ړl }3Kj`$_`ho sTT_GZ3sT Vzŕg_ jXT"+rS}()PXQ@ lI#zD# (5i6FG] _sW[o/(Q@-٭s_uhq|> (ՆrW֐Sޝz}eG}"Oݧ17Xjҙ.P _G塪Gk4grf`3G ~~k(ʀ(@ࣀX g}W_=L3ζ|1yI֝uJu#XJjtV&s|bZ/ДI1dkS8@X<`o LG[@wjHC(qߪl99Ԉ` |*2*緺iTn-ͬ/}y[Q.J#1" 0)`L$(8jCy$)ӦĄi3)2@(|Pu~ zKAu6'Fe o~[u$1uVGMSf4;_NI+tfJBh}2X'$288 BʨR Ee ՐlN 3[I!_[Bgt^Zf^# |P_JO;3Ld%X[B@؜By7Ip2(º8`c?K[>JOExDOhI4'C @zV:Q2a4*|QIh3Ug̖Y\qįe"̴*oD%o%ݡ9K ⒏>$I:b6%vZ #G`04*,)(|~M}l E$+Lu!J ܽA$7oG`OJGsVmLwPGi9 Y/Vy3~[%JHU7^15|D2°`ujm}uvAiRpPJkz ro`( ?35;*aβry F"z}-sPRț_5bQy`00*N=l1Ǟs:sO~G SIZ"egKe##&aFsڐ(Ӑ̇Lhz4iFQ CYGi & %tVꯞCu3s0rwp`Q\2Ar&ogC9:)03a<6>8rHZ mI+qf!;1ҝ Cz7 a f~͕76V`er[ }17G]qy&2'j}vIDAT(n2',)1SdNO%`rxY@nowYcY ʽ'!Dn,;gB JlY/~r:e2^[2煳?ē\Sbx"3>8eU䍤k(n)7hO75S̾Go*D yfD`eݑ"ٔwLcXD"x80|a-`px %5T : &\DA$l1FboSQBA_n>J;8(tiLEA(˲JJ5D2[#%-| [oL=wx(}y$^岃[4QWq}))p'<9:ʇ%f80sU+h߬xzGIf]a8diև܉9=dRGg~]Wv758PJ/{щ@3bA*+Bc +޺ʢcW5çJLU*qCys\BvKXWYx -J漙ӅyT.oty¶(x\A@/>za9 :ɢ` :8 2IU8? 3IENDB`nh2܂jӓIQaH*bPNG  IHDRqhF=gAMA pHYs+ IDATxQ䨮@/f_;VV#g|݀>'&&2I,T} у,=b\TtCaA抧L vE˟jæ_^RO9L@5) 6<'`Sl xMO) 6<'`Sl xMO) 6cY\Fd+*m')\֬)}}%Uy},j@x;$)3jl&yNO/EC&v|wE*mdPm;ןD/MgJFvJ)OYw~QWF 1.Rs>E1(Ḛ&%3L#s~;PB}`}M nU#*K@#5k=(Wdxt+[>gH9ҳrťI!Rj議T-iԮhԛM|\~Igw)z%1Z,G߶p%Oc!(e/ c!<e+$[JA$lj ;ߟSۅ;!X]i>BlزT }~ؑm$ϧ|H1^I~VܺT?z3{qCr@YXܬSI)g2!;)8tp@3W'.#A06lGiKҮesRߠܘGjm}{=o$EG9*Zek3ݾϙ}߃wl\SmM6b!)>?`'J־\8a^?t$i\ K1I01p9S)ٸ(ܙ(=ߗ;%T0r2 t|S.hP )ӸlǚP1+Ѓ~Jǿ1+ը=I(SL8L<%g8{%ɽlU!,3^<%_\@үRcPT@5)⠺]=RAOլsugq_.mB$r/{Oq" D"KsfWJ[T$[UH'&͜(zhI6_I֛'54=򒔜Tc6ZuiJ])}'uÆKKEǤj=[<[K'd()DdAmbvU_EO}>S[xJ#U 䯎e};s[@}A$GmIRɩX:=$j/-o[Og?"%[=.L@<[VBQaPwSf'`O7 )nisIsOSlP s} QSҥ&I}(VXC >]]v\⵽TKg[&RфIZ4be]SywCU2@on"0(FtqJ<a\t4q^V^qRɖgy٥Bz(ٕ $7> -xJ/CʮDIVtExJ)OiEqoriKO"fhS_\Wٴ/bRKnҦ}L3җa2OЋ5L_,ej mO)B'RjVw X8t=Mx8H_-1ŸR$/')Ru tAڃP%"z-VE9m5&pt xJKU8@<^VS a;ai8T^Q'KeۃбA]{h^E*]BQCua#cۇ`y{NžuN6KS@1]SƱ ݸ-jS!1˫g,Uk:9Y!S!:=;)CQgZY+,|kYZ{>ؔVɵz/B_A϶(,[aI-#y,OrCW?p|ܬE7k Mmd EjOhFW]SF0Ċ Tϫ.}u5ED%=5G(+f_24e6Uׅ}IDiDgCԡvz_Iegnpߧ/hy EgS6qO |xI^r25Ew=s88r}&(BEeK%(]< BxwTOLhhS4k6Lk ͞3{[J:5qf,}>!N=CR,]EAVfUQ`c*RpX5G-/ E{4y}0beЇILX}H<ξzX"=pupM` JYJ؇ 2uV_<`.%XW-[>SAY [yyI!86y<SF?cSmV7A[b}i<%Ѕ~ wHYӉ=Zɕ\@1Kɕ\8G \FQ #ɍ"R[j[)J ʆH2aƖoX`g")d'*)NgVO#nOe,Hj'[p}kx_}p =Wے {6 чw.xO.=UTt,H:e dƽ*<V )sQgeZ)vzˤ,"E`JbSAY]ٓWzl(۴q5{ۀz+GA< W !D}3= RO|]rRւxJ/Lx$"`D SZQ8뮀$kYSio6rK]JZCdO|:_6"/EUtSC6O:J͊s*| x| 6q3a2z'wl[*Ϊo*{UH|AYeu^xOJe> 4ןdߧ;ɹZq,9/Y:DeuNMJfd1E^RE c4bOϘVǫR%̣ShgcVTnǤ.&5Sx*^~ wHY!\IG;`*b`A&s ~e{l=g!)u5Mb R"%`C:}&B= {ҁX6ՠ5m"ϽICχ}|ء1'(6 G(8x:xWU HnUWwma񔹨2{,ultSAY [yyIQ8檗A[b}i<ș<pqT>83Yəukx YəuksIs)Fik6gHƉzˆ1H)WBcڸЅ3ҨMnF3E,)nN!&.%m;2'])}DW!\$fTm\)@<˝֏?%MRjUz,CSxʜm~ wV)5+!3bx \ZSt-m/s ~'okz~m$φ*X`ߧ/"\?ۦW*aMZ`:}eS0uiOZ`χdX$> ֢(xJwzXxW])np-`Oq˯]O^r-0y+s]< bC^2| x9Z𤫟B_ۃh&_6td@)%KC&LsUJ&jt'=ݤ9#D%%砮=u"Qk(3}|˯AfFž$(|{1'y )؅Lx^a5@ruPJKZN~SOynT +[OiO$y"_Yc)=ZK[-3gৌ#O|g1,3+B mVխs$6欫mf-YsfԬlJ ٣)#ߨZ\KSx~8G ৈnY$F)gl&UT }x?"0iLx;$K$kTd&QtKV'%ڸgײq[&z6bh\~Z$wjQ4) -:i)yS!(OxJ텽IMh)eX)Gvo HB*) Ttn/ꔄ9O!0(!Un͍s>*e }#ջ]˓t"AYW]rN)*[>}F?t~-\sLѭtcESXRJ{ۅj5NC<p\dBshtO LQNrO.얥Oe dcnYIDAT>+0]v =eiSfd⤴i fĄHB.5!RQ@2[RttSC8* w0B2`AsIs) WK$4v %`kk$*{jqTo{8οJi3pY)p ~th/g[r XWjeVS*,"E`Jb8r +ؤyl2el]߂t#CӁ)3oC$I8.\tN(=R97Bx"6f;>GA!rC>-xIj&Mn*-Kߺzٙ5/dλ*b'%R2zzٙ5Z`s#-`]!}gٔ$lxS|8ϓD2 JU]EspBQaPwKxOO8G tS s\^$Ğ"APR[/h}H;0KXH2s 3.8uYkc(} г]xJ_4pб]-ET`QKFt)蒋~r}d}P8+ YN2~|ϐkR=U b/CgCy[4{B\$!HW3]!Q2&YT_D=)RoRrRl 1%e7*{ڷs}yCX}N1}:(lb)ՕY TZz㧸fn';_WWUsWxJ_.إ4~r%4pqki:~3?u; K7^We3wfhS7S^׵"pI ~C>ltdijw)k8O㺽٨ز)*XBޞv?eRCvq`o,9ȨR6.#" *ji/uHxJB弱SaPwS!~/:%7dژe#4o9Z>1lpԞ!=ҥDqzXq3[$kٓ}H+n1C0 I!=Ft$ECP{Oޒg}RTHPEsԾ\ON 0iOxcǾZCO: ~:(-3ON(x:-[u|gAǖ]!p?}kl"lȞӮ &7)fl-1Gu祁TW,0HBk+).xUO>~ wHYᝉ>XX(x~ ߫uЗ}s<)/dX%WQ\_RIE%_zp»h=ݳf-G%uJҶN8%qE%%pt]N5])7\L\`̑-ike뺫r%Y^RB1@E~Y>{33~q>6zT)!Xf;H6oS}F=')JОA ]N2O඼}kΧŠ$>OA= z~"}#@<T\4Mx-Gڲ,iS'HMlgS:p}`Sl xMO) 6<'`Sl xMO)z6t[[~O?^7 6J~~~VAz`MMi'! `Sl xBUS; kF+_Ob$bvϥVb$u 62rRh@Iob$UAeuéAiM$"$QH#h.$b$֎P kh*Fb$܂jӓIQaH*bp2c 1?pf̙999___@8g4MdMdر~0бLXppp@ g4BdBdر~0бppp@  <4!d!d<4BdBdL?  O  #EnVision Performance TuningPDavid Kurtz Go-Faster Consultancy Ltd. david@go-faster.co.uk www.go-faster.co.ukD ((F*(( *w0nVision  RPerformance Options Match Indexes to Analysis Criteria Oracle: choice of optimiser S y2 PS/nVision  ledger analysis - special processing drill down unroll roll-up reporting analysis by attribute attribute held in a tree TREESELECTnn generate matrixl1 1  x    5nVision ->options  mShow Report SQL See each SQL before it is executed SQL Trace Oracle Trace 3-tier PSQRYSRV from PT 7.54, 7.05H#(#( n 6Show Report SQL  @Window appears just before the SQL that is contains is executed. A 4 SQL Statement  pSELECT L1.TREE_NODE_NUM, A.DEPTID, SUM(A.POSTED_TOTAL_AMT) FROM PS_LEDGER A, PSTREESELECT06 L, PSTREESELECT06 L1 WHERE A.LEDGER='ACTUALS' AND A.FISCAL_YEAR=1995 AND A.ACCOUNTING_PERIOD BETWEEN 1 AND 12 AND A.BUSINESS_UNIT='M04' AND L.SELECTOR_NUM=214 AND A.ACCOUNT>= L.RANGE_FROM_06 AND A.ACCOUNT <= L.RANGE_TO_06 AND ( L.TREE_NODE_NUM BETWEEN 1156779659 AND 1158898302 OR L.TREE_NODE_NUM BETWEEN 1224576269 AND 1288135590) AND L1.SELECTOR_NUM=216 AND A.PRODUCT=L1.RANGE_FROM_06 AND L1.TREE_NODE_NUM BETWEEN 658854164 AND 2000000000 AND A.DEPTID IN ('21200', '21300', '21401', '31000') AND A.CURRENCY_CD= USD' AND A.STATISTICS_CODE=' ' GROUP BY L1.TREE_NODE_NUM, A.DEPTID A  w 8 Which trees  pSELECT L1.TREE_NODE_NUM, A.DEPTID, SUM(A.POSTED_TOTAL_AMT) FROM PS_LEDGER A, PSTREESELECT06 L, PSTREESELECT06 L1 WHERE A.LEDGER='ACTUALS' AND A.FISCAL_YEAR=1995 AND A.ACCOUNTING_PERIOD BETWEEN 1 AND 12 AND A.BUSINESS_UNIT='M04' AND L.SELECTOR_NUM=214 AND A.ACCOUNT>= L.RANGE_FROM_06 AND A.ACCOUNT <= L.RANGE_TO_06 AND ( L.TREE_NODE_NUM BETWEEN 1156779659 AND 1158898302 OR L.TREE_NODE_NUM BETWEEN 1224576269 AND 1288135590) AND L1.SELECTOR_NUM=216 AND A.PRODUCT=L1.RANGE_FROM_06 AND L1.TREE_NODE_NUM BETWEEN 658854164 AND 2000000000 AND A.DEPTID IN ('21200', '21300', '21401', '31000') AND A.CURRENCY_CD= USD' AND A.STATISTICS_CODE=' ' GROUP BY L1.TREE_NODE_NUM, A.DEPTIDO$}|  9 Which trees  Use selector numbers from query to identify trees select * from pstreeselctl where selector_num in(214,216) SETID TREE_NAME EFFDT VERSION SELECTOR_NUM SELECTOR_ T LENGTH ----- ------------------ --------- ---------- ------------ --------- - ---------- MFG MFG_PRODUCTS 01-JAN-00 44787 216 03-AUG-99 R 6 MFG ACCTROLLUP 01-JAN-00 45057 214 02-AUG-99 R 6T21=G    7Without performance options  :With performance options  = Security for performance options ! ;nVision Performance Options  < Resultant SQL  {SELECT L1.TREE_NODE_NUM, A.DEPTID, SUM(A.POSTED_TOTAL_AMT) FROM PS_LEDGER A, PSTREESELECT06 L1 WHERE A.LEDGER='ACTUALS' AND A.FISCAL_YEAR=1995 AND A.ACCOUNTING_PERIOD BETWEEN 1 AND 12 AND A.BUSINESS_UNIT='M04' AND ( A.ACCOUNT='400000' OR A.ACCOUNT BETWEEN '401000' AND '403000' OR A.ACCOUNT='410000' OR A.ACCOUNT='420000' OR A.ACCOUNT='499999') AND L1.SELECTOR_NUM=216 AND A.PRODUCT=L1.RANGE_FROM_06 AND L1.TREE_NODE_NUM BETWEEN 658854164 AND 2000000000 AND A.DEPTID IN ('21200', '21300', '21401', '31000') AND A.CURRENCY_CD='USD' AND A.STATISTICS_CODE=' ' GROUP BY L1.TREE_NODE_NUM, A.DEPTID2|   t >Appropriate Index  LEDGER single value FISCAL_YEAR single value ACCOUNTING_PERIOD range of values BUSINESS_UNIT one value ACCOUNT some values/ranges PRODUCT equi-joined to L1 DEPTID some values CURRENCY_CD one value STATISTICS_CODE one value grouped by L1.TREE_NODE_NUM, DEPTID  ?Appropriate Index  FISCAL_YEAR single value DEPTID some values LEDGER single value BUSINESS_UNIT single value PRODUCT equi-joined to L1 ACCOUNT some values/ranges CURRENCY_CD single value STATISTICS_CODE single value ACCOUNTING_PERIOD range of values grouped by L1.TREE_NODE_NUM, DEPTIDP129:H  @Oracle Optimiser Mode  lQueries are flat - no correlated sub-queries Rule based optimiser follows the links Cost based optimiser, sometimes doesn t GL nVision queries perform well under Cost Base Optimiser$|:  A$If using Oracle Rule Based Optimiser % yRename PSTREESELECTnn to PSTREESELECTnn_TBL CREATE VIEW PSTREESELECTnn AS SELECT /*+ALL_ROWS*/ * FROM PSTREESELECTnn_TBL,-M-Mx            DIf using Oracle 8.x  ?The Cost Based Optimiser in invoked by Parallelism Partitioning$'' @ CNon-Ledger queries  Query is defined in PS/Query  BnVision  oPerformance Options Match Indexes to Analysis Criteria Oracle: choice of optimiser non-GL queries are different p FnVision Performance TuningPDavid Kurtz Go-Faster Consultancy Ltd. david@go-faster.co.uk www.go-faster.co.ukD ((F*(( */Lz({),-/123456789:;=>?@AP ` ___f3f` ___3f` 999MMM>?" dd@,|?" dd@   " @ `"  n?" dd@   @@``@n?" dd@  @@``PR    @ ` ` p>>0 a Y   (   pF  q0a  q 0a2  C BUCENG HZI8Qf3? جU,جU,8`T,8`T q0a2  C BUCENG HZIDQD? U8U8D`T8D`T 2  C BUCENG HZIEQ[? U9U9E`T9E`T dn"   G/*d6?@33@@@sf 4  Z gֳgֳ ?  T Click to edit Master title style! !:  Tt gֳgֳ ?0  RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S    `gֳgֳ ?`  ?*    `gֳgֳ ?   A*    `T gֳgֳ ?   A*H  0޽h? ??0 ___f3f gttables.ppt     ` r (  pF  0    0 2  C BUCENG HZI8Qf3? جU,جU,8`T,8`T 0 2  C BUCENG HZIDQD? U8U8D`T8D`T 9Y 2  C BUCENG HZIEQ[? U9U9E`T9E`T "   G/*d6?@33@@@sf   Z$ۊgֳgֳ ?`  T Click to edit Master title style! !  T׊gֳgֳ ?0 `    W#Click to edit Master subtitle style$ $    `$Ҋgֳgֳ ?`  ?*    `Dӊgֳgֳ ?   A*    `ъgֳgֳ ?   A*H  0޽h? ??0 ___f3f 0 vn@(    TTjJjJ ?5   _*     TjJjJ ?J e5  a*   p  01 ?,8  :  Tgֳgֳ ?z /5Z  RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S  ZjJjJ ?*   _*     ZtjJjJ ?J e*  a*   H  0 eA? ? ̙33 0D( Ć    T4jJjJ ?5   ]*     TTjJjJ ?J e5  _*     ZjJjJ ?*   ]*     ZjJjJ ?J e*  _*   H  0 eA? ? ̙33H@ Pv(    3 r$؊gֳgֳ ?`    # lDيgֳgֳ ?  d2  c dڊgֳgֳvd @?UQl$ 000 < 2  d2  c ъgֳgֳvd @?@UQ< l$ 000 < 2  d2  c dъgֳgֳvd @? UQ l$ 000 < 2  d2  c DЊgֳgֳvd @?@ TP< l$ 000 < 2  B  s *޽h ? f3f3f ) p( )pM@ l  C     l  C 4 0  H  0޽h ? f̙33fff (A <4( h |`   3 r gֳgֳ ?     3 r؊gֳgֳ ?0  H  0޽h ? f̙33fffz -   ( b  r   S Њ   r   S ڊp 0  v   NA1?@P( H   0޽h ? f̙33fffz 3  (( E@ (r ( S dԊ   r ( S ؊p 0  v ( NA1? BH ( 0޽h ? f̙33fff , $(  r  S Պ   r  S Պ0  H  0޽h ? f̙33fff 1 H0( <``ܜA Hx H c $֊   x H c $Ԋ0  H H 0޽h ? f̙33fff 2 P0( M Px P c $Ԋ   x P c $ӊ0  H P 0޽h ? f̙33fff /W 4 (  4n 4 NA ??T` $ 00 r 4 S d׊   H 4 0޽h ? f̙33fff$ 4W \L( S \ \ NA ?? $ 00fr \ S ي   H \ 0޽h ? f̙33fff~ 7 |( XX "!  |v | NA1? Pr | S ϊ   v | NA 1?p6m H | 0޽h ? f̙33fff~ 5 l( S lr l S d   v l NA1?D v l NA1?8 , 0 H l 0޽h ? f̙33fff 6  t$( 1Iw! tr t S    r t S D0  H t 0޽h ? f̙33fff 8 00( i/7/@ x  c $D   x  c $0  H  0޽h ? f̙33fff 9 @0( t{` x  c $   x  c $0  H  0޽h ? f̙33fffr :  P( ? r  S d   r  S  0  n  NA  ??p    $ 00 0H  0޽h ? f̙33fff ; `$( S r  S    r  S 0  H  0޽h ? f̙33fff ? p0(  x  c $   x  c $0  H  0޽h ? f̙33fff >  ( S r  S    r  S 0  v  NA 1?P Pv  NA1?@1PH  0޽h ? f̙33fff =  (  l  C T   l  C 0  H  0޽h ? f̙33fffHA v(    3 r$gֳgֳ ?`    # lgֳgֳ ?  d2  c gֳgֳvd @?UQl$ 000 < 2  d2  c $gֳgֳvd @?@UQ< l$ 000 < 2  d2  c $gֳgֳvd @? UQ l$ 000 < 2  d2  c gֳgֳvd @?@ TP< l$ 0 00 < 2  B  s *޽h ? f3f3f$ 2 0 t(     N1 ?-7     # lgֳgֳ ?z /5Z   nVision is used very heavily within GL in Financials, but it is also used in other areas of the financials product and it can be used in HR too. In Financials a major use of trees in nVision. Typically you have report, usually of ledger data, and at least initially each value of data is a summation of various rows of data. And so you drill into the data, expanding a row or a column into the next layer of detail.. You expand a row or a column into a whole matrix of additional values. This is unrolling the roll up tree. The matrix of values is actually obtained by a few, fairly straightforward SQL statement. It isn t one statement per cell. Sometimes it is one statement per column. But one statement can produce a whole block of values. More of the financial reports are based on LEDGERs and so nVision builds the SQL a little differently.   4 H  0 eA ? ̙330 0 VN(  R  3 -7   T  C z /5Z   Performance Options - configuration options built into nVision that alter at least some of the SQL that is built If you analyse you data in a particular way then you likely to need to match the indexing to the analysis criteria For Oracle only, we tend to find that the cost based optimiser works better. I ll explain at least why I think that is the case. h H  0 eA ? ̙33L4 0  ( ` R  3 -7      C z /5Z   (Bu m64 - UK Operations - revenue) Here is a typical SQL statement. Produced on the demo database using BU M04 and report REVENUE   H  0 eA ? ̙33a5 0 !$(   $R $ 3 -7    $ C Dz /5Z   performance is nearly always about SQL performance, and nVision is no exception As ever with Tuning the challenge is to see the SQL that is hitting the database. Under nVision options click the show report SQL You could also use the PeopleTools trace You could enable Oracle trace for the session If you are using 3-tier all the queries submitted by nVision go the PSQRYSRV (from PeopleTools 7.54 and 7.05)  H $ 0 eA ? ̙337 0  8>(  8 8  N1 ?-7   p 8 # lğgֳgֳ ?z /5Z   This diagram illustrates the joins involved in the query. Its quite simple. The ledger table is in the middle and it is joined to the TREESELECT tables for each analysis attribute. If the attribute is 4 characters in length then it uses TREESELECT04. The PSLEDGER box has been represented by a large box because LEDGER can often be a massive table, and that is the source of the problem. The Rule Based Optimiser executes the query by joining the ledger table to one of the TREESELECT tables and the then the other. You would cut the query on the ledger table down faster by reading both of the tree tables first, and then reading the rows from ledger which match that criteria, which is what the CBO does when there are sufficiently large data volumnes. You also need to build an index on PSLEDGER which matches the query conditions. The nVision performance options assist this process    H 8 0 eA ? ̙338 0 Lb(  LX L C -7    L S z /5Z   d>The emboldened parts show where trees are introduced and used. Each tree select table indicates a roll-up reporting tree. Both trees have nodes with six character names. L is account, notice that it is selector number 214 L1 is product, it is selector number 216 Both of these are 6 character columns on ledger.  ? H L 0 eA ? ̙33$9 0 Tt(  TX T C -7    T S $z /5Z   v:This is how you relate selector numbers to a specfic tree  -   H T 0 eA ? ̙33 6 0 X](  XR X 3 -7    X C z /5Z   kEA windows with the report SQL appears just before the SQL is executed F H X 0 eA ? ̙33: 0 0`W(  ` `  N1 ?-7    ` # ldgֳgֳ ?z /5Z   The performance options break the query up and do the select from the tree first and take the results from that query and build them into the second query on the ledger table.  H ` 0 eA ? ̙33; 0 d\Pp( TTP pR p 3 -7   ^b p C z /5Z  ^ Select the nVision performance options under the performance tab in excel. Select the tree that you identified For Oracle at lease Use literal values where feasible. use static selectors - dynamic selectors mean that the tree select table is rebuilt at every execution. Use the between option. The SQL is shorter and neater. On Informix between used to, although it may not any longer, cause problems. There we used <= and >=. Makes absolutely no difference on Oracle  H p 0 eA ? ̙33L< 0  `x( @ xR x 3 -7   ^  x C z /5Z  ^ The effect is to remove the account rollup tree. You don t see the addition query unless you use one of the traces, but on large data volumes, where the ledger table is appropriately indexed I have seen reports run 60 times faster. I keep talking about what is an appropriate index. Look at the join columns on PSLEDGER C H x 0 eA ? ̙33= 0 @k(  R  3 -7   ^  C $z /5Z  ^ ySIn order to use the nVision performance you will need the relevant security access. T H  0 eA ? ̙33t> 0 4,p(  X  C -7   ^,  S Dz /5Z  ^ I keep talking about what is an appropriate index. Look at the join columns on PSLEDGER These are the join columns, currently in the same order as in the query  H  0 eA ? ̙33 ? 0 d \  (  X  C -7   ^\   S z /5Z  ^  Here I have changed the order. Fiscal year has moved to the top because it is queried by a single value, and in future years that key will become more important. From Oracle 8 you can partition a table by a particular column. Fiscal year is the best candidate. There will not be so many partitions that you cannot manage them. It makes it easy to archive old data. You just drop the partition. You always have a single year query. If you do partition by fiscal_year, you no longer need to index by it, because each partition will contain only a single value. DEPTID came next, the in list is treated as a number of individual values, and the query is grouped by DEPTID LEDGER has only a few values, most reports use the ACTUALS ledger, which contains the most rows. Doesn t cut the query down Same issues with BUSINESS_UNIT. Most of the business in one BU. Product equi-joined to TREESELECT06. Effectively a single value ACCOUNT limited number of values, but some are ranges Currency code and statistic code are not usually useful keys. Exceptions will be reporting in non-base currency. In EURO countries during the change over period, when dual currency reporting, currency code could become useful. Accounting period, might keep at back of index if doing quarterly reports. For single period reports another index with ACCOUNTING_PERIOD in second position.[[  [ H  0 eA ? ̙33b@ 0 "(  R  3 -7   ^   C z /5Z  ^ Choice of Oracle Optimiser The queries are flat. There are no correlated sub-queries, which can confuse the cost based optimiser. Rule based optimiser follows the links. Consider PSLEDGER is a big matrix. One tree defines rows the other defines columns. If you start with one tree then you have to get a whole row and remove the cell you are interested in with the other tree. If you evaluated both trees before going to ledger, you would have co-ordinates of the one cell you are interested in. Obviously that is faster because you don t have to fetch data only to throw it away. N H  0 eA ? ̙33A 0 tl(  R  3 -7   ^r  C dz /5Z  ^ Rename the table PSTREESELECTnn, and create a view of the same name pointing to the new name. You can put a cost based optimiser hint in the view. Any SQL that references the view will run under the cost based optimiser. The view is based on only one table, so you can update via the view. I would not use this trick on PS_LEDGER, that might affect all sorts of other processes. This may need to be done for more than one PSTREESELECTnn table.6     H  0 eA ? ̙33B 0 h(  X  C -7   ^  S z /5Z  ^ jDPerformance Options - configuration options built into nVision that alter at least some of the SQL that is built If you analyse you data in a particular way then you likely to need to match the indexing to the analysis criteria For Oracle only, we tend to find that the cost based optimiser works better. I ll explain at least why I think that is the case. For non-GL queries none of the above is still guaranteed.  H  0 eA ? ̙336 C 0 (  R  3 -7   ^  C $z /5Z  ^ nFor non nVision ledger queries the queries are simply defined in PS/Query, and as you can see the SQL is the same. Except for the highlighted bit. That is added by nVision. Where the rows in the query are in the part of the tree that you are interested in. You cannot change the correlated sub-query. I ve added an index on PSTREESELECT10 that leads on the columns reference in the sub-query. Consequently the performance options have no meaning here. These queries can be based on views, can contain sub-queries, and then nVision adds a correlated sub-query. None of what has just been discussed will necessarily work under these situations. If you use the technique on the previous slide then the whole of this query will also run under cost. That may not be appropriate. But, at least you can change the query, you can add hints, including a rule hint. All the usual SQL optimisation techniques are open to you because you can change the SQL.  H  0 eA ? ̙33]D 0 (  X  C -7   ^  S z /5Z  ^ sIf you specify a degree of parallelism on a table, ie you say that you want the table to be scanned by a number of parallel query processes, from Oracle 8 this forces use of the cost based optimiser, you cannot do anything about this, even a rule hint is overridden by parallelism. From Oracle 8.0 you can range partition a table. The tables is broken into different physical units, but logically it remains a single table. Partitioning is another form of parallelism. If you partition a table into n physical segments, then you could use n parallel query processes to scan it. Development on the rule based optimiser stopped with Oracle 7.3. A partitioned table can only be handled by the cost based optimiser. If you are going to partition PSLEDGER, I would recommend that you partition it by FISCAL_YEAR. One fiscal year per partition. Then if you only query one fiscal year, and you have seen that the typical nVision queries do exactly that. Oracle performs partition elimination, and only scans the partition with that FISCAL_YEAR. In which case there is no longer any need to index FISCAL_YEAR in the non-unique indexes. 3  > H  0 eA ? ̙33E 0 *(  ^  S W     c $ )<V     H  0 eA ? ̙33*F 0 z(  ^  S W   ^  c $d )<V   pJFell free to e-mail me if you wish. Mobile phone number +44(0)7771-760660 K H  0 eA ? ̙33BjxY XT^g MDDg@AI;/9 "x-@CEQ)O1šplVZbGL M 0Q=9fxy\^o{׷wSKۚ.i#C"[ ؋wnm6 + m.p  Pp xz}}jG `@0  st)l:=3yccՋXգ6<0S񆱖aCP}tL2DzPc:s]AtW>ז'A98buw翱~q<[6O/k?L;v7^*r+i:MfYvM삜"di[klk680oݐK/Kvm{|n* q_Aֽ!d+ܜ}6O"r!C+/9}|jZfZj[Y `iE.ȝW4mi r e/ȁ̌3M˃&'&H3+'?g~b# pn,FT.'h\Ʌ \ v}p4g^w,e*92&s_O>+eP) \p= V*Ëx2oQh|\9 _RbA9sNc;;eX'jsZ %:r{@ݢ®P~.Vd'+wʽR=8nS4eCE3;P^a?e߲c9ٷ6RQV';zZس|3?ĖMl6^~d7pIn;rxn5;[FqլgM@s"Rؚ ۼsЃI>_<_iW$zSź8d[8QsD _%‚F!|&|q(\NlUnۙ#}NyPa{ڠ7Y}T_ZW|riXWJ{?˜O,dBxXQφ@"O,3?Borџ dV?Y\87\!ȕq\?{v!\3?97/)M2O-(s8_ X(wV==rO]ޛS)r _nŸ3(qen"۪Uq1^1;xo@+8~BoU(ze ޠ+^P~|8P(,ʵ5Q(l8o 'ˢHY8& ;A|3}7|߃/U|!yOop^)w [F d1T4rwrV e.lxDAI>4p_\ws5[w-t"Up4 g/W~U">gcpb_zx1(@Y4!ri&R `DbO%Y WH{g)ѣ =z6B~+]Gc .a6ȞY*eE.g<*\^uAOUjWh1i=O,m'`mt3$ʹ4šwv.RQ/x `e]mb]1x>uat ]Bc IE7ٖGs-Js +[Hn\lW%&ųOĮMk;>k:9xZa1bvEefRzNAvN#?C4su3> Tт_Om̲g00'įaR:U&FQ Q/o,fbdaq;.;ǧ'ǥkC墽ʁY6ely;GQ]i?)eYl I#[bdT,B~8{z\+R|"*3<, ЀN>-͛7_@2̙(%%Ñ?^OX:48g^Nò'8St %>L l5#fx :Y Ca4fў,S{{pHQ0a4 ;T5fjfW3jF 7NՌqf\Ռ"R=ހnipB?ЏO$cII;4'݌}Ma̺~[j;irSp[&o279Z@}Y_ L|.A#3O<LFh_t^=*u2$24(^Ff [b:yoQ!ោudžQTͪ@A>Dh`@̰3}F+^Cs#(tOa.Jtf'Є"9%W`P J {_+4WS[zI8d4 !z-t7A# /ԕC$C:vs1?SO}RBgg>V W+ ۬w1G fqnfxd1,^H%ť)Sr"g2hBגQ9~_qs_Z!|- A%(P#FH.K^<^t@ \"n ύMJS/WS^&-Y}w3Sb4L>&HS#IS<< \Vo|¬ e_ҺrytmLbڼڪf) )jk?=\{ 2++WR?0TW~mӚ{[_~ZuWՕ4j4 j֢GT5OΑH7 QHs5aԕ/hܺoH`w/Ƭmնo*Z,B/]pM01e]{ͅw.p*|]y# x)=Ja'V S\TTrbUj=(rn[[VW z?uUsk{ԕ{R<~A =]z/9Fg g,7W;]:8$t-EKr^ `ss4rZ=z\G{+X㷿x9 $g6-Noѿ֖a c%M &=/맼|ײ&$+NV$cH^7eP98OdvԆiPKJ񺒵G[4Kgԍ=19<+;^I3e"j{$& AiӒu¸ }j !$t麛N\ !atHP2 DŽ폩 kP J,E>Q5_7BJ~Uj ppiD#E02kÚCF$; 2!u6ah:1:S`j=uUhjVmQ ֑Ɩ X Y;Оs~z%a~o)\ )FuȘn"/?"dju4g"IkO[D}hoXOSfh-[ kK6Jqm8D@j)ip-J]!i,lC܊M( Z`Pbevϩrhc~9 BnOZOilqO-v1õ*e"R@R(+/J *XJ ICHYyɶd? Lj%C(B:߱ٓ\. `f-Ydd 8֐N%Xs^a`%,6ov7frF3[07mFaAd(od㖕j|ޠ}ڪ%[;~c޲m%Ҡq'VaEO[4u]-(Ֆ ?-/,'"bǕ @qv(sCxB*N$&;d)=oe#xK@uhuO[pA Tc!tG#X 88TgҠ lA!\(}%׃~ U/ \ /RY~BBp@ /FNJ)<Ȥ0ۊar b|eKB,,TfDa(u0щS[A;XS:U/;R+tG}EDxĐޮO&"Pk Z=pB}H_죳R1t1a}\ bf 'NۻnqH#ŠgZh3OnWX;ب<)rX)"'flA2^[eq9&P588et3cƁ1XE<o"@h&qiO|I7èؐ 6:-2?9dnsf(&S.yiadBPCc2:|>PtȒ4U C3Mu5hOL؃~ȕ ߐT u )O!B>LT/Nìcq֣&-fl(U[ͩ8pJu ((G`W2ka*Z l V/Q @#m^@}&L L?ڰD`00Q n?uсɅfBV5'#A::6XETiV֟&Ғ.oϡ^ JCG}c FK+5Z ,U%}~K UAǮ3hG0/Fymvy@yIdqbWsaB<$,q3L;yiD2B[= d #9 ?f;77-KW^a65A/ry9Y!RZT;֟.ؽkz\,:vXq ]ʆ-\ٝ~.bk]PBѠXv66Dί'[yZV yQ;@>"[|BcLoKž`xYUhjH\ LM #OVhO6{cT-o{H݃ 1W`Qt%#UJtQyt.?܋a&6?pl1N()8+ٴ)/;7D/B=caf9v1?+/B~\'T c8bf[zYl@lHڋ*4+rxB)x}bXyB:fp5OݚH7X1 Q/pz!, z8ªs3I"Kd08fʠ{^}ҵ<8Ί1$Ӻ 5dN?GmXȸH Pc$~Ja®ptt8]i"Xox#Q\D#^H\f.)̫o4J8 9OI 4 O 6X928> _+ å`@mHH/|$GUT0188A#Ⱥ\9n^"~ᄕ(0arksh_}Ocզt3I;BA~.(1+S 4ũP1љ_"?HZFĉHYKzueϊko3]$P0 }P hͻT0DD`0_ 'D 8VhE Cʧ4+#t@0!Ąenh% ]4ۑ6-H1#I'-ђt,\>~ dtN?/mZFdrzi{;MmijãЇԢ\6q9=,LVJ T9Y3c{ބE#bK\IgpU̓3}*[GXe:SvJބ9mrY^ #ז$s|JT9f_4Cߋa BG@!O36p =pK`)~^A!PTAGq!%x:'A'}$'T}#S4,oU.W`BRmE WNW nv#.wj7I/ʓQ+J@lek ?!Qpr p_CN: 483)Kl}lTx;Iiou>=1*̣RΜ,Eu@7$(1ŕF&]\)T)\QIw٢J'}D"D>LH#LJLJד?#P#P$ k#PE| Wrs \1(@qF‚8 0}a 1l1̌1Lӄ>ަs&F1{3%GnnB  ݚ V1c|cQ cumcxg4R#٥o$1ɤmz>vhWb5!B֨;c0-< ԍO2TAt|WkY Jʛ︮1?(U5ɖ٨;aַt1E #lB51‡ɔm⁨.k7rF>qDTVit$sZL*.Z?*cY,#vжOʌAy)0fd}3l /IY*b+l)bʨP89n"܋<#X[B9"Τ@eo뻘¡z4t)Mp];ag~`bL;UOtV;1KG$9l9c"UOƴ3ر۠A].RI4qiO0=AnNQudMdҩs.}H $xL*xP x8 Cʴ&Hl,hdOId#> VkF0 ѐb+Mǡ8p獽<y,}; {ֈ~8!N&˕GBLm>? ? u/ ~ʄc:RLv==DZeVZ`6=QZɕV=/ҷ C=hO4d ؼw^- 3V6=1{ o=hm-ڮ.:GX`@v8N$(v`=&Ay6@xelvM;& ~P-BԹyc!G>>gW$yV1qZa8dqca3c!G;\ HN@;<6Q O8c#Dx)E?̋s9mv1 U8XRFhF9r hF!U&]'i&-oL?'PnaU&u&䢁zߓkOS"TctsCa'CB8gErY./h8՝xgZ:m0j4]{O9&5Bq TU!M[{X !< ɑjk3bv~,E}E ] -rm VO;}chxfܙ\R#"FQ*L _$-YV0#`]!x0(nE UM!y*P;&'>w lJ~*aO?i`.,dZބlòOYްRZPq{\*5s`ϰ$߸ fc<$C26#Tj`hugi(i܈_(UwQƲƆR@0wjkybOGZ j;z_SU:kyd^Y)WHT/+$* Q$ˀ<'p -BX;6\#eY|#aJ0=7|k'^,9FY ~-fΈMEn&kzEG WD=sQy&y9%qEG#rVp.Ԏb4 3XJZ[eK-Z[,X. /NTJ%OvHQ|LDXЧ]_ }ⅰOu-O7WBR/Q#LQ(}yrAK"AHQ%B 7Y+a?~n@J&5. @! |]xC1qS|T*rW@䦸?a +EufTWBHC&tDaØ7R#lrx#A/؏ آx-;bؔS Fia۠ gx RPkGR'09)yB+O&u}m ď!3̋ 1zeɔgZ3η"ETsԤb/錎{mp@r JL=RaJed?VUVB=uVV!ز'' ~X:D.b"=wHbcbƼ8f@k4p|9[\vFqYrqNdnXwKWҵT~v}7T._Ϻeig eFlټe9M!n{TZ#f>yo77̔_^w[ϷE=?% Io'%n6{Eja>drBc+~&Ҿn~qc?돗:8''[+ 5&)!cz˓ tkOaʅ>LWmXl$IziOo $nMUz$Tqf|M|^^rR~⹽gW(ЈcaKe; 48٣JMh6}iвW=u&1|ɳ4KzL6<м"ͭ #E$#EkdJoB7wؕa)SFք2DZ ٵ?TTk*r" _i)Z`(CK<*KZ*Z0"=: X}vȀT)1?nE'rn8cG 4Gv{v:u]t뷹%sp$0 _27byq#O[˜5<.YēwAXR]C۬J ɢ=qxx]>RX#wDn쁒41x+Ei"o%?m)=3$ -hQz$p45{~0*A+*E7B?oJ QSjO?:{D=~GpjhV?][?>R o`E+2^ 1LA9?"B,RS51>ieQ1 0:fI@.zk FC/f–;IJ댺.D8p)%7$pI= ISk M7SdSgDق{t*CaRCXUT~klvâK QnCEQoļHBAx0Pc? ATnط:G="01wdRWH); b&g-Oѓcё@d&]q5JJO*O+WjVgl>f^6;F\= @E[!CB=S唇LvܠBԠ yމș lܨިWި KPD}7,h yOG[%AOP1z#Hw~# mjS:y9 . ݝH7tThz~ ߄F)h*0ԛBMe!>hz.!׈(TFvG TSՑqQ)Ǟd?~Hè߈ ߌ?Ȫ[$gʬ<9HC L/nwm9 2בu;)XN(Ai4LϾzo,ve7}5x#o=:\r`x>+mǞ99zlzwtE-69y]p/q/^9̭¿%4@ExѻESLd6I`fn6%;GGAYanxq̴y\4 :{I ܼUgkfM{c 7͛oIqu(T}cuKdQ ' &>]wGC yzC:AkVm{OK:+.rӶNO_+՘Sud%7']3wm?}H>VN~pg u_s~DgO.K.^wꅛȓW6 hW_s9y]ZӭSJ\y੃k4&XrOut֔s@\]_" Us񕧿r++ _*~e=l]=sݧGNvݻnW6-oFܦ&v7_hݴrGK܄s `Be▽)r,%#nWBߕߚ(}_4U7uls\y~bQ(X[,7]VVY߃ ջ_xٯ.g7զׄ'LB\9B&L#L%nJ:?= -Du||7CT ӻc>;j7GF$Dl?JnEjlt)čB<'16E)FOG؜GGl|#ĺAEl*~b/cl(mA7=̇36ܣ:qea{~W49ŷOn6]Ut|峡+_`56, ! CIN]UȆ=77>YQ|0?6>ʀ:p@qUh@wCN*+t $w[0R`8Wh9$vLw='xǢ!g0H/K0dCmChvvN͞:#+;((D,)K!H2f"f1WL lG-4;YƜB1{>=7&2_Ob7h6{wrIy޿ Ce"zG# <6qL/"')n+Ȁ9p P?=~m_<A ,K'.H o{C_A:EԺR]Yp`pΕwWkV`E,)e9 Eɦ2e e岭8 /W6Km[.M2WMp#`nf 18)YGJ'\_g=}0]~xPx"HqӼa(; 㶦$2_18S\9Sz_ jn9;]__$ 7|-IVB3fO=E J/} f͞=*4ؙ=?pjEf&{#k6BXg g[rP.+:52.-*5*2c*fF>6v\GrxZ XSGڞ9sNrNrBh J(0) ^[@D[@TZw˲-ElzAj[]_BGlk]Z[o )*ݧys̙o;34Իny8rJ#A-9a #_X,bJ c %@. .=O^o@/7h~@?@@ 00x0  @$  qtLY G= n1h}\,4廃|t+ϑ4#h>ìnӱKvӲ[}'l{wJ n }gߧq) h%9ZR0mʼ|$-'?4Xj68]nȿn|n<֧*`ZYƣAvN ||e"7hl-yٔ`}5))qc$@ְ3-Y?s9Uً̥rf.͆LּY g.6{\mvn% % @ْ/݈4,۵4᥻9Bl(~Ԩ}JRBvܮ ^ޯpInj.I@[g*$%Ҥ尜y FRRȏh .FszQWt,PVVqhKW%T.婖TN}@7^)88W!>UñB)'<) *ؠpO*DBOJ<Px_)KJ8J凧 U~Q"AU,>ϫFa*.8rwYYTmqU%wPۣýz[MS}Es*t(6sG_p%/1Km/8(hN M\ȕ \pp~Urk=ܣ..m\<brnPy}C#hK{K%{'&b[`>SݐFs.VNK5aLSOk]"ےurܙ3pOol4 YJFTGKEX2|v 6XHlu=WuE2 o-aTMm,!@B4(}<0'=nاUܰ rs4n '9 yOVf>,GRTF+p̧`33 U#ML<9%ǘ"l%'Zri&L;D1K; ެa; _eD`? ?ԓfDjɗd+i%EKNxrs*sf.J{sLe~ W2I)>G3d>E ĭ|>Ts>stP "T/߿IDxD {>{w8?bq=f]cU6c ,ƸvXmlIH|w֝4.9%ʷ09 Tr[Wr %N(\oRi 0` m]7tJ|ԑ+z+ťvwe*uަil'XP5)Ѻxb;UliAKaDK$A6{Jy?2*Z$0]ɥ2iVyˬ'q2H tCvwi{slbQqѹ+Hm;K1g^O)6:ƉeG@B8zY# w'Fml'W)Oe[c4'29jz#sm]X[bΞ2'nY[;ރk2Yoxcd1z,Blvco++h2)#;,W!=y)ň|5"di5p嬬fH ureSjFwBՈWT_-01>$'GIdyA/WzY(gXΪƥU[9սXyUnDz'c~\b?Yb?yGQGa@t2v['zp:ϺL]o$sހ,y=¬$Uto(\>B ?72*8W>6yp٧{u5"o5;V#ίBCf5Z)cQo_=zⲯ歘ȏ".Ԏ ӌּΩ_A!~E<``̜u`J#6DAwWAF@.pSF:<ڗL'fXs ?Q:e!#,JxK'O7s'tkn.BSqX"<#?ԽL>dȸDbܐ&ᡲax1ÿL#&D_Q#Ya 0^-(y_fa:=gps"e+يeDVP$bjbׄ}7th숬nLtp, 5@-HBo?yD<ksrʚ q*Lu=̽{}7g97Ik~=PaI@+Q]TXXXQƏN-/c鳥kW ?"ckJ0__zB)WQ$gPBbŴ+Ӝ$'5%ڊ*0^OMryM2v~;,[U$7qwyҠ')Q Z;ڲUaʮ-kz6>GaA]S[׫<^>O{U{t Tوa?䮩~D+ حdiCЖ^?~\g`Wϵ跶Zj)[IyhΆ;;l٪M``ug8[}y֬i 5%=?Ko)[Ě"EKe/%@+:ievlZ)kJ Agy^gX1hVckAc5h9Zгĭw朆?u_KsKlлmB x]lH}!$"tB} !T룻{SuϢuuڿjuo~4X#72j`xxݘgSdnW:xPeD;-WrABpUPuda'LNpipϝ93eZf̜~D"gAXJ fW{poʎϓed mA5cr:J?20a`=E-'6[E a!4m24= 5{@Ӵ0ͨwM+Y,-֮;\gk),Xz&ҍS@[D;M~b'}_ZGPBLlCd&BXK$L˄hI2!NdajVB oӂf %V@BsJa0r|.g}*$fgky>X], W5Bq>" HH+=QRb4ĊOV&$+:,!2n8,!LdVߵChBh cB8r.ZEǧf7[HlߵD t4%`.MtDӳTVqkH QRI5BB@4e_pSA>D Hؤ@ z7 hqIQ IODʗV)Cj%+<t@`8IFN.J)Nƶ>flUN8ăEk eB Çt$ H?\E&Cf춡:bR咗0JJR8z)W8~[9am ܡNi !P8f>D_>ך Du܃Uۇ{nAID @ꥵI}M1"9qw A:8@oV\v̝ TD˃?`ؕ8[@0CJ!֚`MZt3([u /<ژF0l8(Evw@24խɭHЁShÒ)saDby-$5z3dR(oa\_#0pLHZBfbr33ٹ}f#EdD_qFܬ0W8z[|Ä0i)R(3N7w4W RCG<殍XTeЛY8'.H c0/u}vL Ґ,.3ǜ;?.o @vV P fZ[Q aM@ge?Jk7F /NIJkJJLg]d(;1u|wXRS+2x#uJ&)]%ʢ{+ Dmjldef,s/؜,Vñl_vFyMj{NblD)6=֔C7Қ^f =M5rcNZVr6avI5(&aSNnEѮ$]" ^R:); 6h;\'fmϵoaT [)dt 8p@\ gl2 \!Wj /?r|,\ % ؄P1,.h`ߢt-33bL2<ȴF z`S9BRH,d CHpcW$Rt /f+]8D[.2:"";\ L">Ӆ~%Rȼ)^B Ruh@ Vf!!⡃q?)GM{ "H"Y"h$$$W*VRʏuYt_`.gUx:Y%3 b!xH-lN=vEPZEߌ" ˑЊQ ZZ[f(B7×'F$+Q 4P)љߐQī@q4EגngguwԩA}G0 P"zR >6N6K8Ujj L&c]IlhK|U~GTp#JBMLZ4BVȣf-=X$J* EkԨ_>Q n 8OvIyMryFGccɟf߉ +#KfQ2c# 죗 rH$_Ҿzh/y}iaR cUT N9#E KT'`ԫJDwe< |:+22蒙iS͂?FE2&8,MG5|rt;!ʭ33;P7 R;YZ +Q`-5T1@j1f,Pwzf+=ݘoџ=GN_hW?T9G 65-Ĕ.)YT{ɺѝʋ5m᮷a|F $0ӂ6V!a 5(7)MY1IݎO7/`tSTTm`p凅):ۖ*]{.KeG]nơ؛1Ybqy:fl)c<Uo^MݟL _~;ǹ0G>Jr~tnŷޑ7;9/}uuJ?f\XqPV3,b6{̙9gYѹ̨:k`Ca&mɹOn(AŸ%p+V3C횳hG7-H sNC?Sxl/'(/}Җ..#Ize{ˑ㚭W&?iz؍+(pX^~395 r<r2|e\( )x fp;2͌;d -p#?&h"nLζePSM55 uJUζ#< dEay͑AhEF/ٴdFڽ$lj+Mwd*&WTVM L6dC[ P&Sxt=qZl7]C6EIA/d L6<.SM4d;&ʛ0oIO6e)daTaysuvځ3lHN9DE/h#̶͗MϨgv}vj2q<| 8c]0!m{W0_'GVatjuEw5=Z4O9혃옃^g[dnÒ\dTbC3%~C___FO%Xx1j\ -V;,S;/,yf`<:"v<鈳Q" ˛ Ifs6hS ަz>\B1(ǃ^ggH>#\"F^Sw}~I1(}OM"Ǡt½CqOM6(T_͇8>ć8>ć<~~df>Tǟ6ppeBffVNcMO\1X;)9 a0M01iZf\:caC9ly;8HTHoc(Cf=N+fH/pyYkcpDfAI9br29-(xn( lYc*m Ư9I!&YA<>Rk/Wkd"c љD/M#O 贬Ek c`E--u'l}U0μ$%$azϺd]9A,YGOvi,hz>- 6f&,0׌dD#Y@8mۻyf;X0˯K}X}pɽ}Ftc{q"V<)bfS eЗUzɐ7hOTgptLnG.:40`eעETޑGp<2\|$xo§r"!( ENdx Q[ovr ŞǷy^|֯NV6|"a|T3f~>ZocCLnƓqV\O`ѰR 㕏Z^ZE4FƨVjt.qMsm qӸk~e+7>"Yڑ3Ap՛:t8q8U[n\O@cfsV^:!7-J;2z)3fdާٛU%Ȧd7@:&A @Z~r,Y`,p X0 ɧcX>ds0@%zfV&+=T* x4 0MVi|l|O_j}]#-d gU 礫0>j9R2׶֌/q$0xEAHԌ_es$kkSڵ`eL`_l$E(x'yv"8tDW")U3f~[tte` V*0EdI|ZB<"2'9yYlVbϭ S<̾vtlRB&\R.Zam.cNؒ!Ii`8>^G'gB2Cpyu6Z6mWg#-0 :Q]՟.]vl› 7=z //HV\{1zh, ,XKQ焇5{AL|]nԐ}ZpAj)U`Jr>" ;l < 9KrD m`'1UZ;̈́("};!~a\\@Ǵl0e E JAe#geD΂pB%>~E",@xآ=BWƛ@*|r[y%'7A5FGGȺ0$t -l}> ƾuq*s>/ӹ& ]Pj{XżVLaXf Cb'0r@3ρx)p;+q+sO:)#u;`㹯\ncP |FQmFi Ojy$_Ֆ\{46 й=Ilv 1lfpm;WPcK0YuDCe2 eڦ/I:r=zo&=IG2}-=* 롾Eɾw‡'b.[-0Qx 1Tgt<11RuH Y.+\%|<}ݝK.v34jN3 O֫Qzz"9f=*x$+|ίM.n(졚J P&4:wqL9?3+2 괭?k̑lvs2y/.2qoLN[W&rp+tXcn`cyiۈVwm3ٌ= I4Ie@/iΞfZ8+=9'/> r4\e(3 @Ѕ)/Qu>pތH=({ǡ^Gʷ~9D>14 _;Bo<b shh7<ÄL! ULN xqL4[]7.7{»UϞzN|_M" c{h{5p#g %vUV:N2/<VҦ2MZO{Q&}( >wLsz,f8Ls#b AeX+zDEʷ-rWE46!V֞g/qAXO yzZUH ]wE=u<\G6@-+{_(PU ;Uȭcgidsָ8e&gc%|/Ef2YH N|$g9>EmL2{M2sFl*2Sl'WmA3ٜ"uQY&yH%aEG#s.yqn+Oc)jo RLE/u,XnֱtbC&T>D5bJ@Ԑ0 C}>7״8?Wn9KݿQ.E/{DuqF- E0&v.J܅q>lW3b/kU1o`p LiiV!ozD弞\r8*+JFQו_7ܠ Db!7!@֑6FO&SAZ I }~:9-l B$·x u/z \tUfo=:Gd\D)N2VJ<b"3<ĐcP[LY{ٰLK=9/X*@_0&;gt`a|x΢ɉq?)xVAgE:h^]{cPr-{lԃ wTztB: mL~|s gT^dnɦ'&dR} 2'V 6!GˆM 6+E"@?_9wccVUof~&87܀aIO^Nͭ?d*C+#=ey9 -{'G^ހW/u1ȉ6͉YX! 0z*!czK c {+NgȅA{>JRm\b8dHzOoٌ 2$,4{|ٛ![s .r͚ų$VPrмGel^XeM<׿E&.iNJzLXy Ѣ8, E2\$^~Ʈ`KeY v.!0!|0ؚZ_Ukr"e_Rge&WZY ̦"?/L`I54gK`BW%(A[o3l"w8GO1ZCVkVS>x۰<."{!y y oHrlkH đ=nRl xuJf ݆d+م0x}"?NII'Lx!J)x&DmM.A0#I)F%bDt 3mgaT:Q*E;ПDM䪨nHj_A9C 'qjT5VOU[+Rhd*}=C1 ,qLn)a8"gJMOTct{ 68T)f ar $i hYD%A_@ \~ ,VWW5qp1n w#u|R∯YR x s&CF.xp=TSSBUsh;CCO Ssꏺ/:ÔBQ#qbrЫ*J:!%pjȓޮC XR#bHu|p@gSDDn&VL3 JJrhtdáR]rЮz]^;tuT/xoa^~(xF8V6üiw(cp?V̪hqCh_Rz⬵YU)"BE'  ꋆA?k 9u{/OEB`Mr**GG(QrjBwAWv9-Xc*Rgv* >`S*#tDݭ]3]P S6Cnm)L W' @b,Lޤ2tMXc# E&[,JU"2wIUppb{@/ 5/b 8Q8k~t:2ߛ/5:,++bܮYbėcHwb܊X$ }54DNL:(s*іG6VQGG(>Q/׽[m *\^^4|g5_GRi_XL%V~144{ւkiI޿>VnxHp ,Y:!* ')0娟> }xxGBZR _g:V/85ͳ?͙w*dwvݿagn:H}TYuhu6rfɝ=&?>Y_5JlWNFM̭,iʭwLHQwx<>1m- >ڼ< Ղ=zv[ވq_eG~B܍-wh*#gS,H ߱qZ6Z|տD\LL6[ c+Pϋ/!kL7A<;iihOruVW D5H{\CJQX77lKÕ:-[F4mj鎨mhWñ?Z97A8祝s#V?Kkour{@9ʆ dzY(˓$/QrݼsdW?~_)̰ ~ At1  n\oRGkRu*Y(H~s7oB0p9NN1AA6`X%GmAY>@p|ng  Z#o0^})M9rlP45]M[K+adǃ5 TtLQ^W۳ш55kԡk w}[ˉ,[ѐHH6nXNo+u_!]>[z_s03[} l: :`+!툈:\w0y 'u݊Qn+nܣ t[ew`$Ec,[݈=Ү]qzhVIs?O&jlQ'-6 a}b<ύ0d1c1Ej'UP #~eZB6mTuXGgUI5iW_Ea ?4TSKemW/נk5j*[kUknP4p*Hgvf}%:q[oݾW|M#_mu d`sMq d7Նuyw9/0]/N\5/'%0G.~.ĭ,AMkGX=fwˎC |m5[=v q]䤷[DcIܧ#'Y>\Rt\s~M5?xCRo|N>O 9]TWWBܧ=S;4=GxP(/>0ԕ/VB{PO#eޱ jQ2M@rjIqYtLs;."1DSqxDže.lCaz>vƇD%}]: I|6%=# _aۏBcNf17SLtXCKQs32ԗ̜灢h'۵XHkJȬT769!;>%ݩ"j 5V(QK:MQ@aJW:gl"w~ߌ]/"!ݼP,e9.AاI`4*615ʜ,aLr5/}1~'71&ѝ)oF `VD tx23Ulah6O la|r;y(r|}+0ffgefר 9I X7Anշh ZVWj@gZ=Vhu.C@%;+~ԫO{[ X^W֫ CW@{|u]`zFU"_]6$g:<_=!_}'_횯Z ;; /++ŏI@ d8(b a7܀|I7臝43XYmRLțoחo@<޿iĢ;R+ka,T6S&{_NvPz ^`?)A&%k~vs3pɴRw q#`p#a8>-9G6䳀}#hw;;.Ost0jmz>nb =u^?3om*׸%H&@aGK{v^ ;ٯ^!))268A}rI4X`B~fL5@QfHVN@5k4[5SLxf뀽prUfةk뜁 N2g(F㶮yLWdw=1f+GYe8l@..્| V@437B_; ZcA&/ۭ:½e h&ufGci.çUšo{eJXHP/_[?^;Fzc^]zS4z5_.= #៫ղgFM 9%lV7_ChxY XT_g99":<LED- E$3%jjH½j4_IeeC ZCo@{<f>|9^{[{}N} ;NC4(JJڔ1vX ߷J(?UPmW!ۜG%BDNgD{{pC#:!<!<^.oDWD7E #|=~^ވ>D /"i3S"7 m 9x s/wMG_zыXkm۶]tk*(le a:dܗ̶I´Ͻ>Q8lqL-#ʗ@y:*_ne CN[y}7_kI'[n7NX3?wblmiu5 h~{RF&kôfdL[e}ISs30+/ެo߀7f܃VIM/=/ŕW~OqV*@^<|CHJqym{i)>G us$cRb{Ys {N(6U8Ƚ gu_|a3<',a1L:YhAiA=crA67[fNp]t΃˹9+aT6q mr@{vi8=4~6<)]|u:>iyK>[9c\r]آf.Wװ6cGlBw5F %%vKK!x5 ?*&˜K9FGMmuu/-li\w|<]/ \1"GX+2d`G6yxpNǺʝ kd n[㽭/\^7 g63ᬲ1X> 0?5j~/s&2 A(~P 弻r?H?%)eω%|o+lq-\"niq/X/oyIl@d 7\{@N\( zqX*" ŵBA7 -'nN);.ar0hv ;5B/l Q l.k|P× jgPX \A˝qmBUaܔB.̵s3$(,B|oe@;N\5w-t,GaQx-m}<ߦqTi>}<("3Y sJI^-$AcRHOf4ēl&11&| #N$Ĉ0D/H i%;'t4ɠ)YJ4ft%I95\E_z-4/`1(4fT,1tm% Ewi9M$!0f-ch6IG0hOH9&^[0 t% :Bh>^~ьx;^Hl%c_.>)VN:#{|Y@?^~x{bqʔsNKY$s~$t+ dlWkKȚό7Ckv 4yxYbzmA,pl2V +}',)@;dfVgvM2[#[C1.zXLtbtz;[m\I2H9y2M;Vqea1ѻDm#]xʇm\R?!17e;υ뇱!v޿>Yp?A,˱~k5V^$=k<gl+c;N)l CL|Ӆ%ޒ7P\W’toߟd m/$JLA:ʗr~({Oˉ[,Syx,[Wؽʗ9809vXoo}89YtjB#D؞BؓCo]z^3_eo/{(,xV  jkkܹs9rv W dJW[?]%O3'A禖FO[bSS`Np $hl)#OQM2e ౡl@ҡ1ı8˧f{ZZ" |WBNwf!DbZdhQ⩟+`JS 5&2ADZ\IR$%x)B0E r)R1d a\/g[T/Vz "I]5GB&cÄ{p/󏒅ZAWp +PP+ƈ U©\7rKµ\cm۠5J_5Wr1|K挛[O)l=V^ۃx &7wz*A9nOB +pY/Af)|K$X1r)L|d=O7pc\ ]ӣXW[J~R V /F@%.1Հzkv0j͐}==5C5YaFq8<3|ZѪе0AD ~:QH͎1}}"\S?e Iq$F {Vw]fwKa< WU u{SOG8q%_ e6 ?qj2D~w| Uf3AFhmE~eٷ~\ͧ\R?BgP4_2 ; (aÉOŸyKg rG&Wy8TNs|:\\r]Akn?oىxxnutvxutlz"륖n~M|vk'= z-=iN5kfs£ỏW9x~ +EPW|j1[Y+1WN\ec<.k*?p >"UDUȪԪ҅x{sz,`+.rU3fT̈́҅le_P@(sO?E:}xz*l+pg!ou%ԭ\ڠd\fwm jSQݗu rfē#76G7. _q`n1ͥ ׽s.rhҼWEԒO2DK {b3"R_m{X4[ CUKXUUyר_"S ܪ:7)]ecA"ɚ9h6l,xȵK沆:@ƈtIgFÕ#B^t".;4/(2h`;Aa]CJUmq\F>y؉ne5:kΠAjx}gةibFdžy' ڊHx6nAd1t  ?iv:ʎ OHW<3i ~[m+gԿ,1Skv v8b~ī57S&&Z 'CIO|=87&.Y1тI'M#&|Ih@F֗ɑ1n}bRצՏdƨdf(b5M0ôȴmSqyY1|aZlN2n1-ƻn2\;dF}R|]r 9S1+4=ephl-T|,%ϨL5|>ouLQթ! Cϲc(v])Spqz)!А82!9P ?*d̈́og ] R.n 0pSbA y+-R6A_-awF Pz3)]RX ^"+FrMiu@ }@}@ :HW{gԵ>CF$' 3'8ׄITے1 u`r,lmmpXV+֠:tR[3I@λO>zwZoN9 gkTO+Y,\GSi,XEկV;D;U@h󦹲E2@O\;F (!& 2Z!H"eB$Mt=VoB shA]h+IA e0=j@~hmLp46sׯJ: D•u+)G؅+Pt)k_! QRLGRdKYvPV+Av_8A `%B` HF=ɘn5r93k &#[mXCK1|.7Øs38K X,l>+f67~ e#FB9Nگ7mԓzV-b˭L6J2^Nj!m.Æhj[Rv[C3A\Gެ,"b ǭ(  VU@ Lk8pAA0tiz[8 MVq:2{+DRN/`G/AQP)bj d+6Sd'7%]ƍ%i('dfZHZxbuZS%*:Xt;)y BwR1z^DG=nחkcPy;~;|~*-bGw<4`K9 IlFzOI, w L3u0 |4KaFˠI3Iٔ_5] |K mmGv俴寙Ϯ`4?jPw׿=K!߯Q5DmѴ_p4)6q¨ƻ11K5x?! >[0ԁ ><  K{hǕהr5D"dS)y;dZ%j 2^6@;Yz U<׾I%~lS;76 *A%rȀ ~|* H8.X@J#@ P ]TƾBiggdxi]At߉1#cL6RH,d\ CHb!I(0/R a~Haw :k9e2z!"o~ғ S oKJ!rkEF '< @Z+WSC3(_! _A2*NDؤ+{V^'}]檠$ TؘϽEFI ݂OӚ cj8AU) Xr[=}iB=B)ѤD> @'SJF P%~FRĤrqj}._CtK"9&r(D~q^PyUbrÉ3yWg5uMO8lHI\,&WC.ifOߗw2 fK_6-ݜYVϨ2KsCx ?B[ߦoM\]~񡥔p*^=#hWFˉ n0(,ֱW4)y=ra}ws6ԃ~G,We$q`0JT)zO4S ߍQꃉ!߬0`Qxg.M2uቂڏmD\gD<}~>G ݍwm ǂ]s"` 0~h<gN~f3*n4^d=#]IzVq{Ɔ[W&}`72f`Q}9RLvuؤ<rJThP\ED\cUK0+dtqDXdfV29i _?iJd>Yq':Zk\C<0q7(VH:ZjjfP? MGAjNj}pM<iϒ^Y\ ;&Sx|Qu1)t郛v 7pC/i|D68# 7&6 7>Ɂv 7CxYD)ڒn) 7&ôPgD r2 g2-6Zf!Q&#`A-N9z;-7&388<3~z3Ҷcrz#2xdbNcVGJtГfMC$6$6: K${1g/IcfVC ۇ95z9|o zsNQ/Гx .K%Crwp|@ o3f4'rhc9Zڝ* ճ! o٣:YۨuLVb•ɞHB?V 5ga@zaРpz V('Ht BX}$y[rB8BjFre8 $_20? &7!4;UW"BF+=aW]=~E 9 ([g|a wy!N/k? ;pb@✄Fg tq!~ ۜZԂ9t PPP\o~|@q|@9’,@(p ^iͳ810@q!ƍagþ0-6fiD 9NY81Lb1q>CѴ߆Pn|xz_Ұh `>1s؆)1:61*3 )ґG r҈W hdaF>*1̴EN=ѝ≑ &F U'cԙ&.͞-6 ĬkchR]UlzIj i >L+`^270Z&,/Ym.L5U4!xz_X3T<"ܧ* 7e@|QA+ώ?Rz=nhRMƼd ѺQ7\?fGWD>_K[Ct `p'8`m eP`ۓXf F@ѐ n67lO@0L6iGCNNby8A_1l9sڙDavVWET9Ms#iP{o;Px]Dҩ.p ! yN)yP )^EEm᭄4|zF(,)Jl#U z<#9`<#(.)-c?#Pn@F<0LR)X+LEC<#;zW$D2BYO6$q,G?φM.Et@r:oѤK^zUL"a8 |1D~QZ (^oeA6$H?#ǪmΐՋ@>wѿ-v1ga1zq=+1#9uDSIe2Le/;r~b l<{\/z ׋} ][wFr3ǧaQ4bH-6cFʙx3 ͘:$5p¬   |Sw;ۅ:1]9!kw QerQyw݊KǑ$59P|Dd9˲/vʲjipKGX}!VUhRs&8 Mp9|o75 ,Bs2$c=" T2*߲ʉ>UF26]46a/r8ky<Z^hȯ~T|to)W, Jjͮ M\ (yN([*[%X:>vٹFeqfX.k`9;*ډ'KFD|. l3bSZ|Q3lhϜoCh<9N|FatN<1ke,ݭR_ɗEW);R|,|̄ʧz,R ߛskKߤx!C|Y#SS孥Hp7UTK) J_ܨ }f´6RMQ3pMVJ8@b |Mv%)W& Ǹw:”6k /xxC{<3nOJ`T84)+y?yA .C`=^o"%\ L$g c|\|]%40򏦊އm\{.MsQ{S;-x=y5jwmi+>J&؇]2WƖB 0.]ۣL ]1iNSK=`>=b>=p}zΩGB,,קGxz`:iXWVM"*sZu,Uc9|⨌F;UJ‰!Ԛ=Pm1!YO?ѭSM*ok^ Tc?n;crb[vȩW?.6EeJAfN੫0j)|vI];X%v=T)eu`2hʳd fsmPk"VSSyVtEDS:arL|!1=Rgx>”*H.z6z8BeON߾`WE` St=D曉Er>l|i `Ts7 i)8DuOCn/ƯHO][zwY;Ϗn_cܪvV\8Y9ӻ%gM+~zGEtZh ڜۥ+֬v`Ukg*Kr *v j <Տ n/ :Ih W{C7]E?% ab{yj2; _zgEG9D=9k҂c[9: B>wy|0l JFBoW?>U@)+KX[p/KrB3)@S>UިЬ<^< ėdTUh#A[/s Mp!6i`?в'XzL*{嚯B%U&H^Hv4-}X9V雑poQ晐6wC9,~*c~ "lpA0`B_/Y/W#okBʸ/~(iĸ;k]3!_ǒ{Pnw T?˂_Зm  (́ݖ΍X6b!a@a A{I(}]ãx'sVpҝ2ƑZ:'[{,5}.8*u?~G^)H#È]&R0ڊ/x<' ؂VWC3Ԣ^SE=^aiUU=CPT(Ո .zGIT^÷ڵJ(F)}7{ ک`="[`JMS:z]*64\) C zw"P@[^}q㐐L<ޤ*ϨQQ,9Qp)7<W2Q{= NS3A^WOmD:-6\ZкͶԟ]g`Ws.^Q=.` KWt)hL؃NƁi;̿F!7Cuz?y4a&GL}!e GxO~N-ԓHM풞@d&]v1] / TFvF}"PM±/Rŀe^z‡4oR>#Q(i'^ݜ9Sfu'|sW?5bIJ k_r']R~6O{Q W|Zm\qU[2:BS߶Zwu˾ԼQVk{U3M69ٮ-tOה13oӛcv,(1",_;?dMf)b-󠟬i8y̴j߂\toEjuT#ԴE{u+۱ś8xӦ#M!>v\l-U>XR-YcA*Fm~|>n8+ɟEqM% Z[ ݯmow?=_}c-3KU:Jyj/^ ~M ooێn~>7O~_k w[}~t}gϿ|.Pn9+7p9̷蛵آl3lklߦƯkcWOiL슯0f-)-)8&O$|eX] YM> o;qK/8Ju[o|#_k^u[)W6mk +.4ܸz;sPn |+y\mw{R(<0= n~ii/Nm7}hWUӛdO+.~UM}_Y~2 F[d]Wƨm)m?ue4gO). + F=`sQg -¡!;mdL M7kۮ0koV0hE-SWQ RYn:Vv3|,Z[!$*x^Rh {LKoI0H?x,'uw@շ~]= ܶ898r hfLۃa|Dp 8c,iR;^..(׸c{b JAuf ƀ`A="ǐ>-hʶe)I 1U l4抩;m6ۘW &cN_Z " `/HF Pf ]ǯ{` Ho*kѕqw kˀYw"4+]Ʈt%8ƴ(g?c!ۼ@ 1+l=!AnfQk6fT+9k1ε>|f@=%{h9&_{.qv42s8#fY@lQa E8bmFiomv8\xd8(gA؁PTV$׽dsmUBds$jTA P0?@;ʯ xSxr\쪊 XtSs*Med[dqx.P­Nϲ_y 4Q_BWGH|_r!;8@gI/w>Tr.ؗķwޱps9BېkwSuO~Կ4oV7 ö$|A /=~))~u ̵$wkkIeq u vQh?UTޠ`O㟔׮gy.pjUfFph0Ba}0nT cq!\IX4};$"գֶ^n#}Sfk(]Kn 6b vpmIvFC8.5姧1Q{@ׇ8rySv! _Uذ ,K(_ykDG+ܧc!w}s D0ڿ /S?=~Žqл韮$b={%\z`bp]m(^w /*N1fѹ^ᕫ7ϔgv s~{gIdJ c]}T_?wJ~=~NꌄԄq3}w^ r#r0NUwby0dޘ Plgjp renp[u <u^{ż}xqd*Pz6@V`C6\DZE:Oh+'0V 0< \ h t nVision Performance TuningVis David Kurtzaviavi(C:\User\kurzbyrn\go-faster\gttables.ppt David Kurtz73iMicrosoft PowerPointast@f;@֜z@p/i =@ 1(4O GUoM  * P& &&#TNPP0D & TNPP &&TNPP    --- !---&0&W&--&&- $WjjW- $j}}j - $}}"- $*- $3- $;- $C!- $K%- $R)- $X,- $**\.- $*==*`0- $=PP=b1- $PddPd2- $dwwde2- $ww&&&- &P$&[[\{ 0CUd$p,z3;DLU]zepmdtU{C0{\ZW\L&&-&& &&-&&P$&[[\{ 0CUd$p,z3;DLU]zepmdtU{C0{\ZW\L&&- $WjjW- $j}}j - $}}"- $*- $3- $;- $C!- $K%- $R)- $X,- $**\.- $*==*`0- $=PP=b1- $PddPd2- $dwwde2- $ww&- --&&&O &--&& - $O b bO - $b u ub"- $u  u.- $  9- $  D"- $  P'- $  [-- $  e2- $  o7- $  v:- $ " "|=- $" 5 5"@- $5 H H5A- $H \ \HC- $\ o o\C- $o  o&&&- &N$%T T s   (<!M'\,i2s8z?~EL~SzZs`if\lMq<w({sTROTL&&-&& &&-&&N$%T T s   (<!M'\,i2s8z?~EL~SzZs`if\lMq<w({sTROTL&& - $O b bO - $b u ub"- $u  u.- $  9- $  D"- $  P'- $  [-- $  e2- $  o7- $  v:- $ " "|=- $" 5 5"@- $5 H H5A- $H \ \HC- $\ o o\C- $o  o&- --&&&K!~z&--&&- $K!^!^zKz- $^!q!qz^z.- $q!!zqz=- $!!zzM&- $!!zz[-- $!!zzk5- $!!zzy<- $!!zzC- $!!zzI- $! ! zzN- $ !!z zR- $!1!1zzU- $1!D!Dz1zW- $D!X!XzDzY- $X!k!kzXzZ- $k!~!~zkz&&&- &N$%O!O!n!"#$&(+$.71I4X7d;n?vCzH|LzPvUnYd]XaIe7h$knpsuvwnxOxMxKxOL&&-&& &&-&&N$%O!O!n!"#$&(+$.71I4X7d;n?vCzH|LzPvUnYd]XaIe7h$knpsuvwnxOxMxKxOL&&- $K!^!^zKz- $^!q!qz^z.- $q!!zqz=- $!!zzM&- $!!zz[-- $!!zzk5- $!!zzy<- $!!zzC- $!!zzI- $! ! zzN- $ !!z zR- $!1!1zzU- $1!D!Dz1zW- $D!X!XzDzY- $X!k!kzXzZ- $k!~!~zkz&- --&&&0CqW&--&&- $0C:C:W0W- $:CECEW:W - $ECOCOWEW- $OCZCZWOW- $ZCdCdWZW- $dCoCoWdW- $oCyCyWoW- $yCCWyW"- $CCWW&- $CCWW*- $CCWW.- $CCWW2- $CCWW6- $CCWW:- $CCWW>- $CCWW@- $CCWW@- $CCWW @- $CCWW@- $CCWW@- $C%C%WW@- $%C4C4W%W@- $4CDCDW4W@- $DCTCTWDW"@- $TCcCcWTW&@- $cCsCsWcW)@- $sCCWsW-@- $CCWW2@- $CCWW6@- $CCWW9@- $CCWW=@- $CCWWB@- $CCWWH@- $CCWWM@- $CCWWR@- $CCWWW@- $CCWW\@- $C!C!WWa@- $!C.C.W!We@- $.C;C;W.Wj@- $;CHCHW;Wo@- $HCVCVWHWu@- $VCcCcWVWz@- $cCpCpWcW~@- $pC}C}WpW@- $}CCW}W@- $CCWW@- $CCWW;- $CCWW5- $CCWW1- $CCWW -- $CCWW')- $CCWW/%- $CCWW6!- $CCWW=- $CCWWD- $CCWWK- $CCWWS- $CCWWZ - $CCWWa - $CCWWh- $CCWWo- $CCWWv- $C&C&WW~- $&C.C.W&W- $.C6C6W.W- $6C;C;W6W- $;C@C@W;W- $@CECEW@W- $ECJCJWEW- $JCOCOWJW- $OCUCUWOW- $UCZCZWUW- $ZC_C_WZW- $_CdCdW_W- $dCiCiWdW- $iCoCoWiW- $oCqCqWoW&&&- &,$9C6D3F1I0L0L1P3R6T9UgUjTmRnPoLoLnImFjDgC&&-&& &&-&&,$9C6D3F1I0L0L1P3R6T9UgUjTmRnPoLoLnImFjDgC&&- $0C:C:W0W- $:CECEW:W - $ECOCOWEW- $OCZCZWOW- $ZCdCdWZW- $dCoCoWdW- $oCyCyWoW- $yCCWyW"- $CCWW&- $CCWW*- $CCWW.- $CCWW2- $CCWW6- $CCWW:- $CCWW>- $CCWW@- $CCWW@- $CCWW @- $CCWW@- $CCWW@- $C%C%WW@- $%C4C4W%W@- $4CDCDW4W@- $DCTCTWDW"@- $TCcCcWTW&@- $cCsCsWcW)@- $sCCWsW-@- $CCWW2@- $CCWW6@- $CCWW9@- $CCWW=@- $CCWWB@- $CCWWH@- $CCWWM@- $CCWWR@- $CCWWW@- $CCWW\@- $C!C!WWa@- $!C.C.W!We@- $.C;C;W.Wj@- $;CHCHW;Wo@- $HCVCVWHWu@- $VCcCcWVWz@- $cCpCpWcW~@- $pC}C}WpW@- $}CCW}W@- $CCWW@- $CCWW;- $CCWW5- $CCWW1- $CCWW -- $CCWW')- $CCWW/%- $CCWW6!- $CCWW=- $CCWWD- $CCWWK- $CCWWS- $CCWWZ - $CCWWa - $CCWWh- $CCWWo- $CCWWv- $C&C&WW~- $&C.C.W&W- $.C6C6W.W- $6C;C;W6W- $;C@C@W;W- $@CECEW@W- $ECJCJWEW- $JCOCOWJW- $OCUCUWOW- $UCZCZWUW- $ZC_C_WZW- $_CdCdW_W- $dCiCiWdW- $iCoCoWiW- $oCqCqWoW&- --&&&&G&k lwwgwk l - &y& "Arial Kwwgw K - . 2 d1 .--yH-- Times New Romanwgwk m - f..2 nVision Performance Tuning$$+!.--yl s-- fTimes New Romanwgw L - .2 N| David Kurtz   .Times New Romanwgwk n - ..2 ~|Go-Faster Consultancy Ltd.       .Times New Romanwgw M - .'2 |david@go-faster.co.uk '   . .$2 |www.go-faster.co.uku    .&9#eO&--vG-Nd#9yI-Lb#9L-Ka$:Q-I_&<W-H^'=^-G](>f!-E[*@n$-DZ+Aw'-CY-C~*-BX.Dޅ,-AW/E.-?U1G/->T2H1-=S3I2-;Q5K2-:P6L---&& &9`e&--vG-d`9yI-b`9L-aa:Q-_c<W-^d=^-]e>f!-[g@n$-ZhAw'-YjC~*-XkDޅ,-~WlE.-|UnG/-{ToH1-zSpI2-xQrK2-wPsL---&& &9e&--vG-d9yI-b9L-a:Q-_<W-^=^-]>f!-[@n$-ZAw'-YC~*-XDޅ,-WE.-UG/-TH1-SI2-QK2-PL---&& &9e &--vG- d9yI- b9L-a:Q-_<W-^=^-]>f!-[@n$-ZAw'-YC~*-XDޅ,-WE.-UG/-TH1-SI2-QK2-PL---&& --"Systemwf^  -&TNPP &՜.+,D՜.+,@    (0 8 u1On-screen ShowGo-Faster Consultancy Ltd.-[1 Times New RomanArialLucida Console gttables.pptnVision Performance TuningnVision PS/nVisionnVision ->optionsShow Report SQLSQL Statement Which trees Which treesWithout performance optionsWith performance options!Security for performance optionsnVision Performance OptionsResultant SQLAppropriate IndexAppropriate IndexOracle Optimiser Mode%If using Oracle Rule Based OptimiserIf using Oracle 8.xNon-Ledger queriesnVisionnVision Performance Tuning  Fonts UsedDesign TemplateEmbedded OLE Servers Slide Titles 0s{ _PID_GUID _PID_HLINKSTelephone NumberAN{D635E1DC-57DA-11D4-9F59-000000000000}A,0257,2,Custom Topic A258,3,Custom Topic B259,4,Vital Statistics260,5,Favorite Links to Visit257,2,Custom Topic A258,3,Custom Topic B259,4,Vital Statistics260,5,Favorite Links to Visit+44-118-9521320#_* David Kurtz  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Root EntrydO)Pictures PCurrent UserSummaryInformation(VPowerPoint Document(NDocumentSummaryInformation8