ࡱ> n {ߡwיЁPNG  IHDR0 ܤsBIT&C`PLTE!!9)ޭJ91޵!{ZRkcKVtRNS@fbKGD IDATx횉HYC!m@t#39vD2N9^򒗼%/y'/W>OuS%,3d?wHu;',3$ ~%?OBvR::eVCkvԩ0 $ T"fZPv.I/g ]w]Eu pW38 ! )8:3 eB Lѩ 4攉(;|5E(tɡؿn5ϕ\<4;لfdV9p1Ǯ 4=f-EG0xpNT Yԅ%kq#ƠDhFD0(0fUk#SȮQ 5;`Pqa;Y[_vL0],JdPGhԵg@-pllK]xSGj$PZtlb IfqQO\sjS8-9%@ۥ!U=≆n,PJC&xArmJojLd㩖dP"I0Jz2Vˉ.f`^/F3 xP@ K)x͍:,@oѫ¶#A^x\e-B(vȬvhN6갣ݠK$Wg|KZb}:QI>f褶\{VR]n-h"w®ac2 ߊRWf e'"F! 7#d$l=DIRcɨ ܰ(J~/LZ*Xr4rZ5rC$AZ`>v(Y=պ_A4%]HC >=407R5bgV Ȣ'Y3sx|b7Q#HUkȪ*!%@v9$GC.]LuVSf# &J]m=];qON\tʄH"4(C?O2^wy/gY`4Νnnջ$|Y~H5"w(|>x,'wo }z#+t#5%5hc>"|_@ƙlD>d-b gdKBޫqDJQgY葍:6jG#2<&;GH#!-W^lG3/~܎O=ȁQ ՗3о:{q1*s. 5d=)@( rT\^ )ꪞ[YNk)?RgD%EZelrbU+=gpA`̪_@azmƬ 6~(`ѨW x$cS&ŸMpWl^^_*C)rFY&"-2mRm]?J#N@GoGoO= дpY#3y5(Xn?81qXU3 kSpVR;z"4+Iw1MR(t7<"ç˸>Ї9аâ)B]ȷ:ѐ蟋G?O#-@:r!Xh. DcyoFjz#B|G*"2 |c l xJPFel#+t"Fxfa Gii)?J]ÆFʒ\2IENDB`@= EqUtOj>}S0(:a*3 x[ol{~v) Uĉ F7!KiB@M(# M";8A!DHUR>h7;~ݽglrgݙٙٹGDj-lNP0bQ5wy4V3Du,Β FuEͱB@l} o5pP68=a kggڍ1KEfG7arE̓藱Gy!cA_3>@ ` q8l` 050A;Md2 uyc[̯@{ u(Fy5[(~Km=xTUѷ*zw)JE_m6Ww;oٟb+V~IEðf>=T3yJg=]|kݞ8F{ :6Bsjbץ\#bR瘑>hۚy w{#C Ԓ=YFjD۽b9nW7uzhy]sB_ԥ9zu>G y ? ֠/TKBlۢKPEߩ;}oU.ERRۨ|6'{ϥTE@џQgQ~RY^.GϨܯַJ񽘸J͇R$ˈӷ։uX/;Yx}l`CGO8ti }>煔ːyH҇}HG}Tl;jJ2(_T2dޯdޯdT2*}*_]˝s3t,֦Ĵaq >2/UY&uO:wQ{Rgn@9c0}LwPIt<xpS0{Ad*u1c^(0{cAX*u_r9V1`Ρ0gry*u@!՞?YG.'.>jte wX$.NnˏSqju#NcV?Xt9cu9b]$_#d bčjeyL<5l_V>UsDc8@&zَLZQ?c؝_9ӨYJye֑-(+\"qָ͔,9}^DC?gTc?|o=Dޯu>eWŬv}̳{쵝86D7aT_Mxn P:pW̗ZcRu:;}ܹRzeqTrUQi9ڨedr 9sBϽ x. kyٛ"- cM<[C\ky <ny³=%!rXْRTk1釀ߒywfR>y;aYC^EmGPGw#)/*ƦnXՍg2r(Mk9>Zs<+~10+&W4rw>9'Դ=W#uN`sX>x sroI?{+Ӣ[͌llaeL$I|sif*{-;G^[,jvYiv,O9*KQzWg/ɹ¨ue KV|Kzg%̸}בG]LG\o\ة-\.{/{}eNY367GΡ{=v";l>D|J\Y7nh JbOQ r 5eJ}26m}.m{z&vgֳbL v/GMό:[ {V"Wwýaq@a-^֙:g,ǝ~g$U?δ Rnhs!(SkI_nPNG  IHDR0gAMA pHYsj IDATx?%GUrŮfdyc6T cH01f+!x^njv]k7۽ͭbo4M~%RKWGVf{YU雋{}nnfN``sY:r@ʨ_ Orဈ"ߘ'o׫&.Gj^fi`cKWzk7I)2ZUf[ߨ[?ؚvcNoHoMn@4ۭ 5^r4uf)3kom_M;l[{sԜ9m췮ms<6W'eډ^ا7[zahuq5":ֵ6FmM:kWv9/ʴf9;׾t;סsmF|j5wJsWnm]Vd^־7 ҺkxJ/"s1k1o6l6mZ{Sw>S_Md܏[iMn-8{sW浺1o=St;UmOswO3pR,?{_Uk"Z-z+k|[Cm!r.éoErAw^|˛l~c{pI1}"aDz7ǖg1-݁ixǥl;kF_o/ۭxWo/ۨig a6}QFeZ: mEE!~Q^.4z9^ Z,M_({^&WW>7fq#=]hOSs/>6dRȑ|zK+"T+2{tyu٧>]6Wʃ>:=>n_Z=?_>v3ab[4ƾޒn Z])H4R#ܒ~R#Yo'^SJ|szy ty[~_ohju@ty:i̭jS z]0llGԜ)ƃoGeR\ڔjj]o3оV_W6}wjngͽԞ5Dؑk\u#ǯb}wsmJ|JD?xѲ7x۔xONMoK"zcۛǯmӕe^^'o~چ="~C?#ßnj<iE{O>% /f]n3cPkǛu3D}{wT2AOٝẘ3[D !G{WNN7;o:{7ON uǼyx|U 鵼y[=I<5mk\oߜ7O~ok[͇:xM?J{۴Gy1J]T:}}b}*޾rӏNW:;W͑^;"z)Q3evտ7Oj_qǟ?}1kyO?Z7>YQs?jD]m'@o}`7lx׮8\V2/4|<)TL 3r+IDo竫f?>oۭ|w?\%x3O2uxQňVD?f~?Z]Ծg=ZlGtvw]^߽6G޽{{G}{G/{1?Fw}8R["z7tE K3v_/0ɍ6h۹]oPqӏ'( ^}2j{ۏqmeDzWuJe_G_ѱ6t{yuҍ_;~1d;O/8jId+Q?/WoKGnε^;j *>iLMX~,=O}qko|r'\{"zGxӳͳ;Ǣw'TM=iCSY.Vlg<.J^7)zӿ7u;#ءoo_2oycZZ᷷?8k}}T+i~љ6?Kyc66EKZ)s|l2;&Fxݝ7>9RƜωwpk̹2F_ƜsNDkk* 1#v]kF}Mx|zxRѼi6Gټi6h:4k<^atLi&__|`ۑ{Itx{ͮ2^qgou8gv{uǧjo9x뵠U֕nF?lsLJ6?;tvkKo~m"Rκ_|Gx3FN#]b.xJl--hVVΚ'QD?G7-iоr}ƻw}}?n뵿Rx<1/G;Ӟ'>ݮ Kg<.Ӄ~(&iM{i'Wom~mo+g-ʉטjvz;1./-Cy%0_]5]دO6W1[u3Ni7bS+)e#<|T/㗇?7]jNS:7oJjp<ޥu̗)OD;o~5Sg~Ռ&}Ut'S-DjL{2e׶ZaہmVc<;59o30}kgx|aҫloG/SP:fWn76x޳6zx"rmlEԬpʹ5{orդ+W~ 8?^?|{kc#G٪==p36oxJn3ODmL?ޝQa8{/6yըh|cmݍRZ^u/ǿ?'?;DLSauy{VDC޽lmcgAfJ6#ݦ^iشsig w210h]s5}<|y wx#Ix]VRϭ93lg<^_'dn-^_ 'UIsm] ΚdgμcH/x?~u_|}^~OWn[Wnִ;uМvZĜaGD/wO}>/vʼn]FK7zs<~鵣S5645V~|k3北?oͤVk 4osM:5x듧giw=n}ѫ{=tEf] /Nd.^lcJ~xL4xkwAׅmYN{7B}+CjN+xE^{xr9 xH`<>.Yr{2Uv<=e/c`yQSȹN6Z@m>76s7or=lֽZS3Wo;f|C|i</ r!3ymj3mM7o4j7lͱ(!-#cxQjw1v 侏o^T6(rm}}o\&xLJ K.M<& m>'m47-=xo^ߺzz"J๷W׋#f܃o{'уxJ{ީ,޼%=o05'>}mzfbkyRG'ۃ_[@YTŃF{gl}ћk #O-#6̨s&W7}867FLx|ЛX7ԢI=6փo>=/WC%}zv ?s׶Y+ďד?~LW?o{Dc{i2+j\j69t}nnf[25t{nLK#s_?Qv.>m=Hď߶9ws\o]+j]y!~qmF|j5wJsWnm]תEWt/kz5^C}t˾o\eɷe)s%[7|s!`6'<ɴ*gfS%bu.yeKi˗R;Uqdf$(U0W?j/5uc3p^pKB;x¬^8I3VʴI62dq1IvJ"g)lzRqpkB c`(TJS}?/6~,ϕgISq::}yFkߔgYE^ZAq0@?ukLJ/eIKTЅa~ m|4'<Ik<ᣡ@wnoe{0i0̓_(O"¿8bNBUH8^Kw}t^3pynz+J>\aFTQ:/Q^5ok<" 06+k/.ämnOfuꠤza|jr褋XW<łr]oqO]|ꏈwḮ%LnW.,K~B:A?ƃg^2z#cBvu54<+7]렊ʻ%î xא{|%uG*JDٓzMͷ|TFWk"Z,7<miiKyb&óٗwB^ zJo{|)=]xj[}ys2DdyOQ!+X5ǾbEtx^?͛O}7BYwba,DDiwUQ.ke_yE'w$W|iN~5^q~|Ct}kAah ^(_,uD~z]ˏWSrP0j][3% ;.ږè#mw?XƏ7 vY~< lHwγb(::{<:^1'k/<''yHD;JHc{_[yt/"ud^)YoFD{tk:7s211@lqSdmo k"bG1<=3 `tx Z2t_D IDATc׋bM3=":t ѡ7b0A?NbMŚN{^T+͏hA Qm5waxZl:GSnM pu2`TXHР?=ZDtzA{n4^kcoxSL!SW9q_[)a״X)m?9x|B ^apRY.zPyS {mbj]b^G|xeɰԣ F_=U"w>&RphygֺQ{U ^<%;z=8ZD]yݵC) fJ80U{ʺ/'a&NhBPf@;b$7K۹͊A50t 6 ܼgl0.čFT)Ɩ?]A@~,O}!yt:)S9w WC_#t|^VKx'<> LJ[5w'ԴG9ũzxB2yNG sǢ[ϲDtb*8 j[- *)J_r't$=>{Ljy>w%=l{JGjP cF:֣/ӏl&=Ld2ɍIR)H%K+l HyӛEdU \yE"ف_Q^[~P,K 7εPOy"Źq廉CyLreB1ʌ q[xoyVn<E'gNW#Ҷ>q1[^c}^>cn<{DGdO¯*٥f<&۹185,,UjhFw 5wg..ŖRy*KUCK0]L x uf6"w)iTvX9̘ǻqy$DRFX&DW%6 3my!ŲZR޼ׄ.z%+Wlv5NԋzC0&0Mϟ=}Url2ZGN/^")a.2o2{c@U!7_;/Ͽ<_*Gwm=3r UU'Z:\I5h,~ƯI;JoWV=8?>ĩ˦/3}B|~By!|oTNSxt^;#f.o$>^d<\*#^UU6{ tO.k6''`W$+ ]wiHc]T綩wn^KHH|^!f4O:w!}X- ?C$+Do˫UG|%ZLڣ03s>Lm1VE$^7pT>WIS 5IYy}N_è G<o2Yv W.,*SHeKZߋ܅PL FݼVۖ~y:(MMrI, _w}eWhLlNSjB5w\\:$qI(W)XE?>tL/m9D.dC:y-4s KaM\̕˦{{\ާiu}h8(𿒯tYׁ!$߻:/7] BimU|om;."5f/5T);JvTUT7D>J^(B9|VlUjD[KIΣ7YZU]T/yH**Ȩf(Ϙ1e$IRK^k+&4[%Ѳ܎ U0;]I"Ss$Ճ(Pm^dKw.1qݘU\%ygɀUl W$zX]͌m)C򋷉-I}]|Cy+F^s!UyيHI~^Sx™vF^7P>:%x1jtU>YXPeV@xٯS濒ȧaڼI8ew2HGK쮏D^yR5,3$dHX\%\v!)P|<+}uLJgz/%`Aqxiyz]"Oq>nޤ,cڢFuuk(6wP03w ^zH-yꙿ3c(uЕ-ūU^kߺL$ZyfAnzS lP-xUzIڄA=IZ gHb9c4G,]K'zRj=)A"̬D=qϯ7v01黔5q<_#L)|#Sh-\$ǕakE#Ozt\|k#,М;$w^0 {wԡ7qAqRפ =.Q5+ /k/q5R\+x 8:(S#|;;wrhf3 4̺~ ֏g2kk%7Qdޔ 9:hx|qS+Řu"3ʎَ3ێk]>[7XIM2 +ELPE.k5R'ʬHQyjWB F[`hlsj,u6tzeo3l>S Zx"GDpxzt1ȟwRSn^ٌ%3j35cYB1et*P\+_e8lLJ0'd1&ʋ|C"iۂ-a…k\!#}=pK+y% -i (T:ƴv^S($-LފoiZ,jz ?ElIԏqBFՇTJ,:_C$Rį_h 5Qo3h1u%yU`4<{(#cAȘU [-u-,C]UժN¨* u՘7^vя`ǩtd<~(bDKO܄(*)X&yP`..ӏ/|y7[Drrڹzoyv0fȧ&f0CH5-тD/#~O$Z%+doF)3zBZ1% k/"?q!$'Q~IbGxď㋡U(L g.DnʧwG5NJoKP&r:wwOJ}̣TbsHfmoYY,0,UJ*`~x|GbBˤ[%Qke7n[N0tb Y4OP>d J-urOf#LI` ~|IhoIѻDO2)SV2_c穑hBm5ďW?C!-&h^qrt'Y(oyT~)@=>{LcZVНَ3-~ !٥KCbo Q!^k<|ըd}Jx#]W1i:-!ZZ.yKjQ|Fޯ{-؅-}_O,,m[iAjfhcV4TH^x&.{֏ mzb.0䮐hYҽDU a^N˫DrT5NW<Q5CByDNn/6'O!^XCia5"u/%s:sjOѓHAvkȑ' TW)cb9wD?7S=b&~5%Zٽ2-)CyG,ܚWRwތnB5zy3Z2њUxgKsewTMSc4+z<SDUJUQ)~;G^PO@6}f_]9%2=ThH=az'KaިV$ݭݔ#iCoL2.䳤U)$hӗz\{zͫs_kj]`Qkc(MĆ t31c 3'#[X)$ʻC:UfNej OD(xa ")B٥^y@E?'4_DWC㡒n;Pj^?Ugd0eFf7Cu~df^QCIͭv<RĉU{ `gIQCھ6qJSGRXaĨgez uUb~ЄIz3{o:0k~<ǃ]&9eڭ}~.NU$6j: +_[<5RpHWs~y$ avя$~GR.X\//\-eQ?5/tQz^c*KfΒqqECUA(;˵~||.b]EGZuiđӹ"5Bn|Z>sY%t$ZYa-em/=!CFdqa#^p=^;2}v+yӄN\TIzM9ŏߑyC!S^uW$o{BǴKkysge;3|3y̶{x/nH1W13Mէ%%3*=*ޅ{cz& #Q/,cyUz'($lZUR3U|j|jR+$U5䘭?w`IECe2.yS>jʚH6Mȗ%ϋ64ԫ0Cfbw0Iz€7]!ܽ ~x'B"ErW‹Ϲ( ŏWdfFͫ7\IS"T$NyM?Ke ?^qZEw/Oރ]:5x#uY{kc 3V +$ʻyhxIo3K[yϔxW+8Ofg.z"af;O3"dA*g^fgP,"o?.{gu{d Odee2C0 H˃fxll91HzTIpgzfKj[ZYggd`)}FYϻ;pdN&32LH 5yS>޹$ytӬ]?erC%wJSD%kYk ܰbLH˫U/az|$/U;KG?@8'd-[&  TJ*Ykv/+G2xZ{0 e =q2ӄ<)Rw^Raң-/gLJtH]̛](C=63SxiȃPΫ8RcP)]bըOe㭫^B{ `i%w+#Ը;z*.w{Ud*NR(^vJ{)6kU{yFFW٪}zvRYz] rn\f.F P!W^OԼk '_k ՠD2*YRL)T.$o=J],˘P>!TsMg a:\=3ט&lo*LKz=0dZ~l)֓M`={s*ZiRuu}3##}\" {⨲`~J4FX,dkzkcYzV5xiUܱfոw_5/dDF<-ФEj5vPڙV}ySnz\dWkܝ+jɑ )ߖww [)4б_z#$#0v8t=VV=|"OޑT2/ǛW*/%ZDܨ |^ICByQ/*3_̎2k,>jZM×g׫-S_^V^W|oJ]CPX 8 9Dx) r_,nFמ M?T:0Zɑu[x8Z > 13F?>e>#fU0,3%"<LJX"gH<6<u jhoV.IxUF7OS R[jStaKJDy0jsLZ3W^kԷoQ]G4G2'\9egr&GӌKZ=Tb rpL222Q?Ex>餸J;u+Y8*2|ԅ`YT'5{Y/Q;;gfy֏g}*fGz h'EO&,ۤ_֏Tmm*ghpfY)mu맔(reeo WL/Լ!mR@tbO2=(%LZ;LF2C zB,L20ԗgF1F5 ŝxr|D4H UAL첲bG j_Cԋ;g(Im̐D |1| zkSm <8zC %{Eu?`.ſվUU?Xw*j}Ff1)Ν53ok.BL@w=R:ʒ7`GMjPP[W$g-?jt=PrGxB%? ""p}EѝECUu\CꫢJ̿|z:wwxď_6`ު:dn%Mc4 .n++!|^#r?fMjx/x(ll׹Ax0 jj\^#2nbx9]do.md)#+ϼuIOZ(:@O_̎釉I3'?{y[ufW#EU?`yelIߤRꤼn2>cHꙡS{Aj`v_%N)vԏwǏGj̣kĝ -SVd={x(K}©X]ܕz{)tFF!Þ8io.`GǕP#~|x<_kԒ2 #[?{D"V 8L^|I)%楑粒zR~|7BxAjTzyQb+-HT~3?`*Pޜ9;`2ZbTG}ʳ~<Ӣ?|&T *? Q܏NPщ}v 6tۭ,]BW)^i̋\IUw !i̲ Pȯ>?LJ~6YGBj):=|RHlSҦx*K>)}6].4wT]-{7wtag=$CK3PF7mBK$vVkGuqJ6D>%,V*W:0~jlvяU0 `j g<> z$:470q7D[d>#z&4`KjHaW1F{D#suR*k3UV$ŏw)&ޕbǗ<jq%y^y7|T Ѽ4qS)`رx_p) c f@ǖb3c}I ih<?3BSx3Vpap\W#EfS曷\+LXP1ivc#J|RZ}}s{Sg~/)fv@WHWMPH4>5IfaRo% }H yʏw@S˃w fxhv2,$9="**<ŘS<B͙dr}BՈJV6jάP9hW耡c`V~ EG2eR3!OFˬ~xMm+sJ]((%l;|=Oҽi)3s#~3Ja]?ʎ3?_?PƝ˩mD%Ci`Ay^&Ə܏`>6!Q?˄TCq?3UVOz^%`J;Xf2" <!x:.ZWJHBI1Te@w$_vFAj 2V{gX~|DUV#K%?^X"ҝ K!9ezWOkW4}o <rN/jD='F*[͒y ?]eXBj$.ĻgNhWa4 fYqoStOk(Z5\="+$ΔR#[~bya1"x݄.|LF3ñhc$0J8Ѷy-[Ȩ vHp*EA¡x|CJ J00|w'tI%V/U)vLˑ!0JX8ISѯVBxUR4AY%`*}RVz:wAUw[+}d77V+>T м̷ͩɉMeƖʽp'멚!0U0FGTzϞR0;=QBN}FTf'Bb#rS9|S ԜI&'\hahS/I`^}èTu?AHj^֏x|կW76^[ko?9E.tD21V=?X %,(;WYu1>5/87j8FL ᜻l'=zӒ٥g'Φl),5N:D\5u(ߐjQ;KNx~we~<  TuZ E֘\{d?UUY>& _87UP꺳|A!L޾Pz>%CJ+?>;Z_8^hALvxHktWRPŔVDN╉x@6oSՎeIlQ̂Tw; OBvzI^eZd?npw7x%%"'du=mS)g/q4ƏOj" A9ʛs?w\SA9)Jl0 Q5e*$b%,T)x@6XaB~<  R`<~|lsď? DV].si UAl7Z;~EVX]/I*4aq&9%!K(G^yY¢c ~9 MCxBlF? g =Q ?z+ׁ+}<$̫Xg=X,TG_c;F x@6Wz@6cGPvd3Ꝙb3t`xoP{tza)Jj}e0x@6UKy[V._r@Jnx ztC{zW _cgp2W/Tad=\5ǛKr2kV ʾGh58 LzQU!墄J **g? ֲfjgM7t W\7Jil> . x@6WFDPwiQ *=ez&V: x@6׹1] BY!NS$._T_n]y]Rs+ .ʌbK UUhCUfJ 5PygHI7oCx@6U%}&IDATzqpۤI(T@9+\y f6~q=ۓ`p0 Ǐt~<@H]x< ̫``^= dSr;8zxf0bYO ,GdBJe*扝.3&W}N@kY%ȫd?HIM"x&aXшVFs+TiaS ]6AdìsWoaଢ଼qW$yCy FdFrgA戤Σ Pjx^kxqj`TYW+G!O?MƯ%YxEh 2Z%Qq`<۹ݡMXPlQCIdtf祧ٌe]Fx.inPyک!ńEFO-7JDx(pqv$ E7$Jk0Qw bxg֢,ЄA.R( <|̫!ď`ZAxT?iT?MxT}yT#jYQȦӪ~ apcl!5Q$Mڃ9aVī]Iyl$zRsjHG4H$isVႲVnE=)6 ?Ou4}w K"3G;4]BG5 {CLRSIysCKoZ\uRtT'Ϧ7W=zq;v9)l*~% ?.ę/"޼dS%\Rcƥ:;fd:"J ˯@9қJjN|:wRyQhw=tr!1 z?IxEܹ`1$Kyl?KF+$σ9?x74-σ9?xs ?|.g=|T)ť UČ^vȦ:wg$坵wk<>z=ͼ m;zԕ`kj z.?|ďANku[yd3x䵿y-i1a/A噅r$V[fnZ&1֗Pxj%bH~< i`:7WonPE02_&,cƴ+|Y9EnR2xz3)bC"ClF7M?e<l~uPZz;K]P28O^_tB5~< َ3R%McGK@WYhȻzîgL[R;;Bys& ) fd6dy?ledaݐkLTHhqVE3 Y̊mvf$_nȌ q2AlScw .* E/T27#$}^`*2WHWď!ďϐ))*{$[xA=4w 3mKp*j)B}ȩizENnlf8~$.d8^HȵvAz@63% 1t\9F%+օ;ߍoXWIYRZ 4z LwN kr?+z!@B9}xNKQm=jTfQܮ `Z,?{r}2y y/Ͽ<_>{q̏b>:|x&&2z`LޏGx˴xBL؏'}sd>./@RDFk\w52m?ޥ0s1P^ʰY+w=^jzs"gkT0a?T/UPͥ0[Aaͨa<3;T޷npq3%$ʜ/vsbݪ1Zy҄Fs ʑ\9"f$/o^+ME< < s9wС:Z DXG\9J ;nl94څ*M\ * a~<͐u$Ty"\!~w~r1MDݛ7ٟ?3a]{-+9j}(sW?L.^}\ )hY5ӽcc~|=@. ȫ_iBIE]v}kFUܷ| cqN/^"ux_㶇RH-t]#l^J7n&is2V9'}۟Z@]x꺝6IMLm>ܴzSuT+GA]xZ_fbID :wL6D[^GS/_epS8_vGzF.w,=3یm.ހW RwP7nb ?[T&ݹ"gcJݱ4-zŏm{6oYFw,{Apc P]xq2{K}nw1\fls*#69[Q2{톛z7ŏmƖ9{9W'!cޱ}hw1\flC'Txwln]c ?[ٔ߿oDb ^;v 7N1ی{*\&Rw,=0یm&AXŏmƶyWA_mh??5=EýM hʷ̎oormyqbZd nj@t<[fQ[oq7U0 s̓=`,^?Z{IENDB`@=R[⊻jP>+cThpa*3 x]}U?oG?mqmbkA4Q[kQtnbte؅#55RMZZ#iM&&&&F, MmHE=s;ݝN^r{ܹ39~!L9KWg^YDǦ\6(C7%Zr,S=х+{-Ki ߞha:ޟdNgҳÕ&qبgt:JKzv:U?iB_g}ަ2_?Sg咷WRmӸ:wn gSW˫JWoy>Ϩ '^4i68ိS x>E<Ӗ^?cObRa3E'ry#osח7]_r%՗XKt](b6mŗ^zP<򵨧㨧6}W2DxK>lPS2]C iCFni4z&:Oz&Zhn|2F3p Ek81˙t‹N%^73\xJ.)4;g+"mlvxaZ‹ie/L+\xDѷE~r%^]‹|*oH8*7)n ;)뼟:笠ηS\)s-/:rKۜZ[(-y/uKqo7S\ڦ:%ۼZQ\Q\':$?ziN\ˡcmkk^\ˋ}yumFxm6\8rXۜZ:6!ֹ){(Go?.b'YDv2m(ͽbcJmQd39Sq}e PJ~=Mu3\2+lLo小[ "Fi}gm19u\oۃ( LL)I| "F0_Wém® 1J·qś3i72no2|xS'V9<],>Da|aϜI9 "F+0>tV9&quw|yIjװ|C(c6}gb1sτ˃(N)ǽBQ'g.b~ X!b CLWX9>1&\$F04MoXG8MN}c0 1ʜL\L_8fSq̻&8H2vm).߫ɪrZ6r})ݥ1P4c6=9oG7]-;a }Qd7!by>0[!b9In厀 s;-\ Nw2 K`CV!b9t+z `̃?X=E&|X0µ1YGaZXdLJeVX!b)I0=D,Â>C1dGvqL}+>n;Jc 3m_1kc}-3m彵j܁[fPFeL'k>|1b֤],܇O֤}0> YvY]Xτɚ_ף9nbdOmv9fmL5^>Ç Xac`>&܇Oda>VY~ɞ,'=s1 øcAg{>ÇƇXn13 !=I>|?m6K s/2>D|ʇoq!I{;[X܇OaVY|/z}d^}68fwԾRZk,r)9QSuZ[,Js>JsMMun p^IBE*4E~g8ʡӞ[B ht疐疐6R&ڇ>Z}Ч(S9M=C*h/3:JcDw_Xɰ063֗R?UZC7Q'`8~[*ogɍd63ǯMLqm( ><'tS\I>bY7j,si5(WoW IҹL``IQdžy?J6c[6:y,7JK$'5浨B^sSu~Zm^_WkXOO1u$ lCe?h\vcm7^6|f ! /0P dƖwpO38K߼s~xM"G-?ϟ}bf<:r 95b~ߠ+))."ݛ^ T#YQ86*W~#;n}_*#<[TG?@WwI< 4K(*| c_'ٗ+R} c4Lܗj_FQ/a=nܗpK|GTKIKs7kܗƠ_/ ח+үܗ{Ji|i&]@hiܗj_F?| 㾄+\_Kr_z,nf7Rˈ/a/ ח+kTKQ:_B$kT2b㾄+\_KXw}Η昙ONBY*\ccZoPWH&xCZy\q&o=(7{_dJkeZMQ -.s7tz[a-%t=m]QԻ|+z#VԤJFU6Bf ry>6k"۬Mw;n=PjQo=Z#]_][B+Ӌ)$^{=! PXSnhRdIܼn^}L|hdKҾ6P8+W)lpԯ>(G~ b~-%hM}@r~e3SjGyS2o-Uw4αi-/vѠ'J˴9s&˙,I{Sݶ/f<Bd'[cKw| c1,~,mÖ%,$;mc4vNq;_vm'W$;otE{R'Jm+)GO3SOSd=Q"RqaKeq۾NfiLPO|y6FVC vRg:bYOk8k [ᕙ7\\s>Bܛ>P(f&V[b^Ös+;Jj9ݲN&P]?8Ҩ0I}%tZ-w @= %: )55$:cu3j x[}lnJM8?*&hRK.1vC唫 J" ˧DA*QBPETU 5B}o|vo;Zsc͛yof#>@ ѻTV@tD-wtIѵݞ"j ujܿҔ!EQkzXo<@4.[ ꛃ2L'ss CJC;☾{O_arLhboוuwuw [/eO8Q&/ S ^]m۵Ww= [oOѕ|>_f#j^Itt{&֩nf\u=D{8F{; FK|ݜua1D&. +2L4Loѷ\Mі,-NѺyll^Θoew4βv#lZ?etOχy>0/߻`Jޯnܻᨡs/>ήyߧ?7DzK0yȯ E?c Sw*|)z_ ߮mTi;NU_W= G_VŸVx aAj8kww\ ^=kGagl0M3\]l3EAng?qI?B"΋yyyyy gS==r|FmҍיyImQ]dwVA a zrW"ema@q=@!|82_mS's OuܖHFMcW݁D,>GrOʱz?_C_];1/3%Je|?OѣCvA z哘=J>k=D#J>SOHc}~=3T|81;\O|Ie."%+ZWd^Łfj gd)AYF׿?į9]k^9G,W +x+ذ>]; cs!~72ϙ?CYxh!aT_Cw Fл Ǵ ]@Sc\jlh]=>=>i6Z\'dzwYvSp]dEsd1h4 9[,́[b\@s14\ei@sU hZ?  K3I$^FXjLf؊ol4~@_pswo c9@xGĜc),`)8cL9V@k?Jv"(N~Ь>-8 {~m!݅slo/) 8us%~Mzʥϣ$97c=e؞u_+e`WdgW4|933{c*?֣n}'G=7?_'ۆ~s=?Es6w;ƶ?})Xֵ죸<ɽR\si)gQ*&ǃmO~el6&64%J[tr={I=7FxX X.o;uk&=GYeyٝ0^j琼mnx9^&;FhضEƙ(\j*ԯA6Z{/=(7Nlf}ʟQ+~|=@lXg#u[K{>G\}Tܮx'ж SY(FAoY8rW_\m74J<5:xoJ>A~Grvj3 B+GoQFz\|:ݞygrϪ1U|^XV*Gfg_ʋ\X^t^a~ԉeAq@a=o^Yg.]~_ud ܱQYmeV64wX@=%e^!loK{><qcu3j x]}p]E?7y/P0&qP4BNkiRSL@VH?($MNSa(ӱ*cgPA30CD;t C-vݼBW&s{w{ٯbֈ]MtDL6QD5ˈ."&J1U]ueo(X%DuϚj}ӗ&0{v8_qX3vvW/0[ニWN!tFT-U^6i\;Y7sko.Wz|&>!2Ll[t%wX<娧>al!xg1w' 6[i-P];&TѦw~5^~>_M~vɩGji#(y55Pg 9Js~xk@eJzxA2fuXL}3X"ҾxË|9K.Ȼ)>^^(,"eɅL+,"nɅy"`Z`Ʌ \K.1Ͱ‹tK.ȏ _H%m:Lqo7Q\(>뼏:ݎ)y/uKq6+))((;);)z|-u:隸λ)s{L?FIy?unˡc&un˗;r߶m6!s[͑CǶoܖrYGuбms:mJx[M oܖpйJ-vۏyy"_?6n29yuG+HLZ>Yާrzʞoe/ԧod6Sj1mz>S 1Jx=:="Y̩q*\$FW0NmrZ0,_1ȇq5Fk nYǩ9f o|ano2cs>QmAb1#!>@z>ViW0*w)>D2a|MU[_aW(>D2WaIziTZ]|;Yޮ1fIw|w3Ȅueccp,VAb9LW3`8<«(NƗ0=qc^ԃ Q>o0]J{938}^"=WH-Op&˧+>D%ȗO3pL]4_1p葉r߷p`{r:]w(c9|X0guE|X07%E|X0f1D,&ò`Y0Y?a Mb^̝~v"Ya 7=E}X0ZSF!bɒycXL}`n6{X; 0X |߄eoU=D,}ʇs1C"|X0+2[(w!d=Iws(7{M39 3ᾜr6\J4@}3,|F|`1ndݣC'ߤ} N rdiy䛺^߇9fsp">cPJ~_E ij=`10i[dO;Kf8s1>D|ćooZ}SLh=CVb7g3C>Sš@"<=5l.:ҙ\si:?w ne+\@rY|YJ7s)Fo:9U[Wp,x?.RpbOc%-W1[8Ul۪PBLILʔʐGc}<1HhxV'䁽IM#Hr/5y(53O^'%j2y}#O^M*+$,E;h`wX+(Ԗ8 !ß4)8N;{)Tr-e oWC2;F 箷gpjҐo[]0:$ 9?.?91_}|g\>FqFZW?%).=_^{>|Wؑ|oIS86*W~ti? >~ԔL7RT?ʘ(\?³O~ tsP܏s*M 61?q_*G1ނ/[/lK| /Aė0v=q%i_wq_/AW%\_ydc)4e> p} /F$s<ʳq_* K4Kt_')/M~|q_*OڗѸ/K|MKd^IRy7Ҿ}"㾄+\_Kh_K|Y}rʒ7=7o ͇r%.巄Оtڇb+l'}n {kHfZLQ#]w3h}^]#VYFфRrk~g|(]ڊFڊڿ:/o_.\#gMxuU'j07ʳQ9ٍGhٓF! $X+Q}hhKz*[CB֪޵n2^v q2/IZEد\ƪrvUSyG99,:޻X07d9.όVQ35֊d+KWLSC ggj,LR__vZ+D;p?F@=F `Er0Kl8cu3E  xmlTEp^zES&QQSm5Ѩ& jˇ="5FZJԐhh111ThDhٷӛ^Lμ=ZJ-,q H PUMLzX~kOqȾJ|`&A8۾ODH !\;U6rבmȶ=RiS42j 7җXuJ,~㧗F3&;5'%l_W//f{{{ma\O57# nƒA7w|o4BdaQg>o<[^;1]#P3L; xPWZݡxSu V7(|*|m)ǣ'?l~dǶfƀE-_k=t:=ҖXqGisqȷ>)z,w~X% p43iטO껗N}%-VUBV,YԭȱŤєm9HBMX7a&Iy<HߐѾfeƒmHݍ%]&}92<${/ |l-5/`.w|e"H/o  1}&Ey 0RV#Xr`a.B=o2:N=bz+|ekO0>k:AC^w/dL-;?]wY^wWFXe)pמ(,@Œ} Y޳|aYx$ #| MFQBKw,/ ֹ-Q%*})v оtq;b{KrŌq&U)lbۜvb*c$#[܍q/7 qS ŸbD㎇x}Hg p,a? [FwzƝn,]>.j" zXVbZoC\{j+w eeW1e [Vf?}Xqa5\|-UQ^y /p)0|Nd\l |?i?Xg\<Mb}m,m6{QY!䨱m\FM6划G/AcW߄qAcn3A[%$:s£i+ 9K ;HyL?Ϋ1 =R qh{\{F<}^j,m:,|LޖB'e-o X_~Y!,+X7{)@=׮/0Ȕ45cu3j x[olU]@"j ~ A R[ VTQE9$H 6&j MH hLH* ѐp齝vJ+7oyfg hDU1{cw=Y9YqBe΄!Q t*TtPb{ܛveTvvH:g, Md՞Us,n2Ms6?ɇ[㈴p'lAKACbxIEqXod,N_t}ܼ+y~y)>0=1L"$6z%A_:mY_ 4{Lzs&ԥ7:lKvMk<pEO <%wE-xk^# W-fuym!gW |7 | qͷ,l}35ay9'i_bH[w>%šf)&ևM&H.c+$u+4@KmH[v"tĚغk@>KHkm7F,;h^QGs^:+N:ԮtÚغkNeK udU) +XXs,#-} ٻL߻Ú\tWΈ8jnxFϥ\ƎditiRXt٦t`]8±.'.?Xtt@]"H?e+ oK"EN|$s`7ǡ>n//.w`HGnQk(_mb)GˁQ{ʁQ[XpC瑭}P6b{@I+},R#31F +I# Sq+˰-j0\² -*ݙH߱8yR*)Ƌ(,ORm{(^b3 ,MWW#Qvչ"-"yųSd,ǃ,ւn| LG,Fſ݁/LɁ2gxȿ@ށ_Lt_L+sOAZA7гu~Xc^2sLԤڵ9lɳ&rɘ! =~O%~_n\T<`}/q$8.{ׂ.e,yMbd.ں>·k:lƕ#!}CnZ"}5p_#|ZV?gȜh2؛cv=ɇܷ4甫л9g_AξE":"}1HƬ5h]u'NVebKf}72g n-Sy_1ӿo/`/*no]_]L>J/}/6WC= VN!ꈿzoTżҬwK_G σsM\2"rĘ?^V~0og;ņH ;toj Q%J&wmғy)bj5fE{Ai(3pr==v{/̲x O?&bӟisLCc= .c|e^3ት_\ߖߖ+lD߿L?  2Xcq0otzcQ3 `Qw&2oƺȼ]F?7Ft^ϠVlLǞg>6^{W{e7{; /Yc_|m[řW=V{A@0yku>D;>/űk`!=Bu:לnm/=-fdVpw~_;hY7C,ÒPVY(>?ljufg6ۻ^or[^?A[縯wxyz-ǽw-f̭ۖ=>H!fl;!@߀W- YR-͊Y+zEU^EJ۷mʖOMUE>ESgYECPC~H]RQù[ossL ;A6Z)1KU:3_h9@LBxԢK[ȷ61T,/ߧtEJJJJ? qߖyX>\HDx8%:x } ^0:j&p\Zr=Q9q/ҙ/c'DevM.rG>ku#JM|@/K.;E>:q}PuѾF# FK9r\xcKjnsp}p,A\O~G8jtth6Փ˲%9h ywƫ w/hNu]>p?/vC`)p^eƺ]xs^J9{~s_+)Y.q5m{sF-q3@Sqoy<E7k0Ah*+)P;c{aKH{hυ׺ܖ ,;z'8\kodFMkMR& ߬ >LuIuS/U8{UzƸ0_jx O)BKUu߶E[>C}1d yŐ3B;b|$J,l}5gūU7-jcv6 /47'`c> c$Wq8=50#I6)*Uպ~pt,1WcxoX>Qyj.毀>k'Υ}r7²@NP{ԫͥ!dX.;:KGIZsSf* w)}Eœ{?[ЇYg82mjguGYZuEOϽrƏS,oy(.d:C&BΥP>o-ǝ]~1CӨT|6&4%~ z֑yZ/_;^^0;~}3(HC%F&Kߒ=7xe#3nŇr y)< A~ZTIƹ0\Msigl*trN~ζSΝű'N]yeKUc!C yZm7a]EnWl7l>[,rMEož √K 9ך&k,ǞߌWXfj}5̩1:(   V*Worksheet Excel.Sheet.802Microsoft Excel Worksheet+Worksheet Excel.Sheet.802Microsoft Excel Worksheet,Worksheet Excel.Sheet.802Microsoft Excel Worksheet-Worksheet Excel.Sheet.802Microsoft Excel Worksheet.Worksheet Excel.Sheet.802Microsoft Excel Worksheet/Worksheet Excel.Sheet.802Microsoft Excel Worksheet0Worksheet Excel.Sheet.802Microsoft Excel Worksheet/ 0DArialrns/(0(B 0 DArial Black/(0(B 0 " DTimes New Roman(0(B 0 0DTahomaew Roman(0(B 0 "@DMonotype Sorts(0(B 0 PDCourier Newts(0(B 0 1`DSimSun Newts(0(B 0 pDArial Narrows(0(B 0 "DComic Sans MS(0(B 0 BDCourierns MS(0(B 0  1@ .  @n?" dd@  @@`` H@(d0 -)C-'?*+,(=-F__ y!"#$%&%-F__z<M<<S   * ./0b$ɿ(a>+, "$EqUtOj>}S0  b$!(SkI_nps$"$R[⊻jP>+cT="$%: )55 8"$%e^!loK{><"$`Er0KlN '"$׮/0Ȕu"$r In4u8C a 0AA@8g4CdCd@B 0ppp@  <4BdBdlhG 02ʚ;ʚ;<4ddddl%F 0X___PPT10DSimSunķ0ķB 0DArialķ0ķB 0 ? %)%Querying XML streams in DB2 XVanja Josifovski Marcus Fontoura Knowledge Management Dept. IBM Almaden Research Center YYIRCAgendaMotivation and background SQL/XML, XPath, XQuery, XML streams TurboXPath (TXP) TXP role in DB2 Design Evaluation results Conclusions and future work Other research areas t$*1$*1 >" bVG MotivationCurrent trends in DBMS: New XML data type and a set of new XML-related operators XML-enabled integration system Queries over locally stored XML data and XML data streamed from external sources Web services and business-to-business applications Querying XML (streams) is essential 6%%WHSQL/XMLSQL - Part 14 - XML related specifications (SQL/XML) http://www.sqlx.org New XML data type Publishing functions XMLElement, XMLAttribute, XMLAgg Querying functions XMLContains, XMLExtract, XMLTable (shred)t5'"*5'"* @,     SDXPathXML query language defined by W3C working group Operates over a single document (no joins) Single extraction point, returning a node set XPath examples //customer //customer/@id //customer[birthdate= 07/25/1970 ]/name //customer[address[state= CA ]] p0Yb0Ya ,/ 5TE XQuery (1/2)Also defined by W3C working group Extends XPath for Processing several XML documents (joins) Constructing XML results Can return multiple node sets FLWR (flower) is the most common type of expression65`45`4+UF XQuery (2/2)XQuery example FOR $c IN document("doc1.xml")//customer FOR $p IN document("doc2.xml")//profiles[cid=$c/cid()] LET $o := $c/order WHERE $o/date = '12/12/01' RETURN {$c/name} {$p/status} {$o/amount} FZ$( XI XML StreamsrApplications need to store XML documents in relational databases as XML as relational data Example Web services&f f TXP role in DB2 (1/3) ZKTXP role in DB2 (2/3)fTable accesses in traditional query evaluation pipelines Returns virtual tables of XML columns ExampleYJTXP role in DB2 (3/3)TurboXPath (TXP)Processing of multiple XPath expressions: One pass over the XML document Document order (pre-order) traversal No need to build a DOM tree in memory Results emitted as found in the document Efficient over: XML streams Pre-parsed XML documentsL*%*%"TXP Features (1/2) Forward axes (child  / , descendant  // ) Backward axes (parent  .. and ancestor) Query rewrites over streams Predicates (Boolean and positional) /a/b[c + d > 5 or .//e] //a[5] - currently being implemented  Any node test //contributors/*/nameS$QS$<  #TXP Features (1/2)Multiple extraction points (tuples): //customer[name and address and phone] return tuples Subset of FOR-LET-WHERE over a single document Very common case in the XQuery use doc Current supports most of XPath 1.0 Recursive XML input documents%A$ 0WA"&TXP Architecture TXP internals: evaluatorParse tree - static Structural tree Predicate trees Work array - dynamic State of the evaluator In-lined tree document Buffers Results (copy or reference) Predicate evaluation (copy) Discard when not needed .P .P  B2Execution example (1) C3Execution example (2)D4Execution example (3)E:Execution example (4) G<Execution example (4)F;Execution example (5)I=Execution example (6)6&Recursive execution example (1)7'Recursive execution example (2)8(Recursive execution example (3)9)Recursive execution example (4):*Recursive execution example (5);+Recursive execution example (6)<,Recursive execution example (7)=-Recursive execution example (8)>.Recursive execution example (9)?/ Recursive execution example (10)@0 Recursive execution example (11)A1 Recursive execution example (12)( Predicate evaluationSeparate parse tree for the predicates, attached at an anchor node in the structure tree Evaluated when anchor node closed Predicate parse tree leafs point into the structure parse tree Predicate tree is traversed and evaluated275%Predicate PushdowngSingle value predicates can be evaluated before the anchor node is closed: Example: /x[a>b and c = 5]hgK +Tuple construction using buffer annotations,+$)!Evaluation (i)XMLContains (Boolean query) 2"Evaluation (ii)%XMLExtract (single column extraction) 3#Evaluation (iii)*XMLExtract (over large files, outside DB2)  4$Evaluation (iv)_XMLTable (varying the number of columns) Optimizer should generate plans that benefit from that W'Conclusions and Future WorkTXP efficiently evaluates XPath/XQuery subset over XML streams and pre-parsed XML Low memory consumption Fast response time when compared to Xalan Tuple construction mechanism is useful for efficiently evaluating predicates and FLWR expressions Returns values (copy) or references (XID) Works both over indexed (stored) XML and streamed XML using the same control structure Deliverables for DB2: XMLWrapper, XML Storage, XML Loader/Shredder <RA-RA-, e *[LOther research areas_SQL/XML Automatic generation of taxonomies Lotus Discovery Server Text indexing Intranet SearchL++\M#Automatic Taxonomy Generation (1/2)Unified model for taxonomy Each node (including intermediate nodes) model features that are common for the tree below All features (including stopwords) are modeled in the taxonomy Hybrid bottom-up and top-down scheme Algorithm Start with an initial feasible solution (one level taxonomy) Merge nodes as appropriate (needed) to discover more abstract topics Split nodes as appropriate (needed) to find more refined topics [?0ZZ[?0 ]N#Automatic Taxonomy Generation (2/2)  ` ^WN̙f` ^WNff3` 999MMM` ^WNf` ff33` ff33` ^WN̙f>?" dd@(?zdd@ y x@" `  n?" dd@   @@``@n?" dd@  @@``PR   @ ` ` p>> (( Q P ( ( s *Ο  `  T Click to edit Master title style! !  ( c $П  @  RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S ( s *Dן Tt  ^* 2  ( s *ܟ Tt   `*(2  ( s * T@t  `*(2 j ( BA paint<@.Z ( B޽h))? ? ^WNff3 2Contemporary Portrait.pot  IA@,( PR , , s *x0 @@ 0 T Click to edit Master title style! ! , c $8{0  @  0 W#Click to edit Master subtitle style$ $ , s *l0 T 0 ^* 2 ^WN , s *0 T  0 `*(2 ^WN , s *40 T@ 0 `*(2 ^WNj , BA paint@rZ , B޽h))? ? ^WNff3 0(  l  C 0,@@ 0 l  C 0,   0 H  0޽h ? ^WNff3  P`(  `l ` C 0( `  0 l ` C $0( @ 0 H ` 0޽h ? ^WNff3  `p(  x pl p C p0( `  0 l p C 00( @ 0 H p 0޽h ? ^WNff3  pt(  tl t C (0( `  0 l t C 0( @ 0 H t 0޽h ? ^WNff3  d(  dl d C 0( `  0 l d C <0( @ 0 H d 0޽h ? ^WNff3  h(   hl h C ( `   l h C (   H h 0޽h ? ^WNff3  l(  ll l C d ( `   l l C $ (   H l 0޽h ? ^WNff3]     x ( .XAP4-4 xq 8  <x x< x` x 0 < xT P P  x# @ , @ x 0(PpP  b TurboXPath" P   x 08"P P p ^XQuery"P x 0X'P P p BXSLT"P  x BP-   F Streamed XML    x BT1X   =DB2 2  x 65 <  @ Web Services   rB  xB BD , 2  x 62<  @ Applications   rB xB BD , rB xB BD p, rB x BD , `2 x 0, `2 x 00, `2 x 0`, l x C >( `   l x C x?( @  H x 0޽h ? ^WNff3U    , - (     C r jJ.  Z @ XML Storagex  c $s( `     s *x0e 1"`N8 v XPath-based Interface$b    c $d jJ"`Y : RB  s *DjJppRB  s *DjJ8 G RB  s *DjJ:Y Y G   S  jJ"`H 5Z < XML Indexing  2  BENGIFuH^ Ij?QjJ  ʓ}Q ʓ}Qj?`T}Qj?`T"`* / RB  s *DjJ??  C  jJ"`. h ~  3TXP  C  jJ0  \ @ Textual XMLLB  c $DjJ:11I LB ! c $DjJ:I { " C " jJ0   3TXP # C # jJ. Z M XML Streams Web Services{ $ C ܤ$ jJ. U~  3TXPLB % c $DjJ:I LB & c $DjJ: $I  ' <  Kcontext(0 ( <Y HXML Enabled Runtime0 ) <̫ `xml fragments/ column values(0 + <h +  P XPath/XQuery( 0 LB , c $DjJ\ \ H  0޽h ?  3380___PPT10.?$z  ~v(  l  C c( `   l  C c( @    Bh333))?m 1(} |FOR $c IN document("doc1.xml")//customer FOR $p IN document("doc2.xml")//profiles[cid=$c/cid()] LET $o := $c/order WHERE $o/date = '12/12/01' RETURN {$c/name} {$p/status} {$o/amount} P( H  0޽h ? ^WNff3  ()|N(  |l | C D+( `   .L  0  |# p w Z | s * 0  | <0M  @doc1//customer | </< Q  Ocid | <2 $  6name | <l  7order  | <9` g  8amount  | <0  y  6datefB  |B 6Do  fB  |B 6Do  fB  | 6Do ` fB |B 6Do ` @ fB | 6Do`  @  | 0,@ wp  Qcid | 0D wp  8name | 0|H w p  :amount7L p `   |#  'Z | s *p P   | <A   ? doc2//profile | <P0 E  Ocid | <(O`   8statusfB |B 6Do 9 fB | 6Do T9  | 0`h  (  l  C T(Q`   l  C (( @  H  0޽h ? ^WNff3  (  l  C ܤ( `   l  C ( @  H  0޽h ? ^WNff3u   %   ( t $ l  C 豉( `   R  s *@&  0  E  BExpression parser  0෉ E  BSAX Event Handlers  0軉 a%Tuple constructor/ Buffer management &P%  <\^^x  PInput path expressions^B  6DE   <Ɖp * J XML stream " ^B  6DW IJ^B  6DK   <ˉQm K I Output tuples    <Љz ?TXP   0 Չ  C Evaluator    0ى E  ?Document Walker  <݉^d JPre-parsed XML (stored)^B  6DW " # H  0޽h ? ^WNff3.  E.=.0L8--( v 8l 8 C ( `   l f8 C (Y0    g8 < @P  X Query: /a/b[$c + d > 5 or .//$e]!0!A+F 0   h8 P0 #`B i8 0Dq 0q 2 j8 0i : 2 k8 08y   : 2 l8 0 p 0 ;r2 m8 0  P ;a2 n8 0X  p ;b2 o8 0   ;c2 p8 0$   ;d2 q8 0D I9 ;e`B r8B 0D pY fB s8 6D pI t8 < ` E I I(c +d > 5 or e)  u8 0I 3r v8 0I @ ?T"  w8 0dI@  ?0"  x8 0I 3a y8 0 I ` ?T"  z8 0 &I`  ?1"  {8 0*I 3b |8 0#I  ?F"  }8 0,I  ?2"  ~8 0PJI0 3c 8 0MI  ?T"  8 0 RI 0 ?3"  8 0U0IP 3d 8 0YI0  ?T"  8 0L^I P ?3"  8 0bPIp 3e 8 0`IP  ?T"  8 0HeI p ?*"  8 <h D work array  8 <r l D parse tree fB 8B 6D @fB 8B 6D `fB 8B 6D  8 0wvJ 5... 8 0z0   @c1"  8 0~0  @ @c2"  8 00 @  @c3"  8 0<0  `  <  8 0  @e1"  8 0@ @e2"  8 0t@ <  8 0(`  <  8 0|` `   Aoutput buffers `B 8 0D  `B 8B 0Dp  8 0 5... 8 00  0 @c1"  8 0h0 0  @c2"  8 0ث0  P @c3"  8 0 0 P  < `B 8B 0D @  8 0Գ @ 0 @d1"  8 0\ 0@  <  8 0 @ P <  8 0P P@  < `B 8 0D @  8 <K   Npredicate buffers  `B 8B 0DP`B 8 0DPP`B 8 0DP`B 8 0DP 8 0Hȍ  ? sibling group `B 8B 0DP`B 8 0Drr 8 BG H?@I rr 8 BGxH I rb 8 BGv/H8IH  0rb 8 BGv/H8IH`rb 8 BGv/H8IHH 8 0޽h ?_888 8 8 ^WNff3E  @"$ ( @  r   S P( `   XB  @ 0D | 2   0P0) l. : 2   0x0Q k>  ;a2   0`D i<  ;c2   0dU i ;bXB  @ 0D U ^B   6D U    0iQ   C (c and b)     <m -  D Parse tree  2   0qg j=  ;r   Hu))?@P  `$ c1 b1 ... %$    <{P[ C Input XML     0~>9 3r   0X>a ?F"    0a9 ?0"    0싓>^9 3r   0>^ ?F"    0H^9 ?0"    0x9^4  3a   09^ ?F"    0t^4  ?*"    <V =r    <С)  LQuery: //a[c]//b    <<~/ Ib buffers: none ^B   6D4 a ^B   6D4  ^B   6Dy2    <İ ~  Nparse tree pointer 0  !  <G   Jdocument level 0  "  <yF &  G status flag 0  ^B # @ 6D> $  <Te  ]!initial work array with one entry "0" H   0޽h ? ^WNff3|  ,$P+,(   , H0ē))?@P  `$ c1 b1 ... %$ r  S Ǔ( `   XB @ 0D | 2  0p˓) l. : 2  0yQ k>  ;a2  0PғD i<  ;c2  0|דU i ;bXB @ 0D U ^B   6D U    0pݓQ   C (c and b)     < -  D Parse tree  2   0g j=  ;r  <P[ C Input XML    0>9 3r  0h>a ?F"   0a9 ?0"   0D>^9 3r  0>^ ?F"   0 ^9 ?0"   009^4  3a  09^ ?F"   0 ^4  ?*"   0>Z 9 3r  0>  ?F"   0! 9 ?0"   0$&9Z 4  3a  0@$9  ?F"   0( 4  ?*"   014 Z 0  3c  064   ?F"    0t:  0  ?2"  ! 0>0 Z +  3b " 080   ?F"  # 0@  +  ?*"  $ <DV =r  % <Oa V =a XB & 0D 00 XB ' 0D 0Z XB ( 0D 0Z ^ ) 63foGiY * <$T e LQuery: //a[c]//b  + <XY~/ Ib buffers: none H  0޽h ? ^WNff3#  ##`;E1#(   E H(\))?@P  `$ c1 b1 ... %$ r  S dp( `   XB @ 0D | 2  0s) l. : 2  0TwQ k>  ;a2  0{D i<  ;c2  0U i ;bXB @ 0D U ^B   6D U    0DQ   C (c and b)     < -  D Parse tree  2   0g j=  ;r  <ȓP[ C Input XML    0>9 3r  04>a ?F"   0ęa9 ?0"   0>^9 3r  0ܦ>^ ?F"   0x^9 ?0"   0|9^4  3a  09^ ?F"   0^4  ?*"   0>Z 9 3r  0\>  ?F"   0Ĕ 9 ?0"   0ɔ9Z 4  3a  0P̔9  ?F"   0є 4  ?*"   0Ք4 Z 0  3c  0Ӕ4   ?F"    0ݔ  0  ?2"  ! 0pؔ0 Z +  3b " 00   ?F"  # 0  +  ?*"  $ 0> 9 3r % 0> Q  ?F"  & 0H Q 9 ?0"  ' 0$9 4  3a ( 0D9 Q  ?F"  ) 0 Q 4  ?*"  * 0 4 0  3c + 04 Q  ?T"  , 0 Q 0  ?2"  - 00 +  3b . 0x0 Q  ?F"  / 0L Q +  ?*"  6 < V =r  7 <$a V =a  8 <)e  V =c XB 9 0D 00 XB : 0D 0Z XB ; 0D 0Z XB < 0D XB = 0D XB > 0D ^ B 63fo> C </ e LQuery: //a[c]//b  D <4~/ Ib buffers: none H  0޽h ? ^WNff3#  ##p;;,4#(  , , H>))?@P  `$ c1 b1 ... %$ r , S ?( `   XB ,@ 0D | 2 , 0D) l. : 2 , 0\DQ k>  ;a2 , 0LD i<  ;c2 , 0OU i ;bXB  ,@ 0D U ^B  , 6D U   , 0TQ   C (c and b)    , <Z -  D Parse tree  2  , 0h^g j=  ;r , <cP[ C Input XML   , 0g>9 3r , 0l>a ?F"  , 0ia9 ?0"  , 0tf>^9 3r , 0v>^ ?F"  , 0`{^9 ?0"  , 0dz9^4  3a , 09^ ?F"  , 0^4  ?*"  , 0p>Z 9 3r , 0>  ?F"  , 0 9 ?0"  , 089Z 4  3a , 09  ?F"  , 0X 4  ?*"  , 0(4 Z 0  3c , 0,4   ?F"   , 0ɖ  0  ?2"  !, 0Ö0 Z +  3b ", 0ϖ0   ?F"  #, 0DՖ  +  ?*"  $, 0ٖ> 9 3r %, 0ז> Q  ?F"  &, 0 ܖ Q 9 ?0"  ', 0ߖ9 4  3a (, 09 Q  ?F"  ), 0P Q 4  ?*"  *, 0d4 0  3c +, 04 Q  ?T"  ,, 0 Q 0  ?2"  -, 0D0 +  3b ., 00 Q  ?F"  /, 0  Q +  ?*"  0, <V =r  1, <ha V =a  2, < . V @c /c XB 3, 0D 00 XB 4, 0D 0Z XB 5, 0D 0Z XB 6, 0D XB 7, 0D XB 8, 0D ^ 9, 63fo> :, < e LQuery: //a[c]//b  ;, <L!~/ Ib buffers: none H , 0޽h ? ^WNff3#  ##;;47#(  4 4 H$)))?@P  `$ c1 b1 ... %$ r 4 S 4,( `   XB 4@ 0D | 2 4 00) l. : 2 4 0h2Q k>  ;a2 4 0H7D i<  ;c2 4 0x;U i ;bXB  4@ 0D U ^B  4 6D U   4 0?Q   C (c and b)    4 <D -  D Parse tree  2  4 0\Jg j=  ;r 4 <TOP[ C Input XML   4 0S>9 3r 4 0W>a ?F"  4 0\a9 ?0"  4 0_>^9 3r 4 0c>^ ?F"  4 0f^9 ?0"  4 0xk9^4  3a 4 0do9^ ?F"  4 0$n^4  ?*"  4 0w>Z 9 3r 4 0{>  ?F"  4 0 9 ?0"  4 0u9Z 4  3a 4 0<9  ?F"  4 0ȋ 4  ?*"  4 04 Z 0  3c 4 0T4   ?F"   4 0@  0  ?2"  !4 0ܕ0 Z +  3b "4 00   ?F"  #4 0l  +  ?*"  $4 0<> 9 3r %4 0@> Q  ?F"  &4 0, Q 9 ?0"  '4 0ȫ9 4  3a (4 09 Q  ?F"  )4 0X Q 4  ?*"  *4 04 0  3c +4 04 Q  ?T"  ,4 0 Ę Q 0  ?2"  -4 0ǘ0 +  3b .4 0И0 Q  ?F"  /4 0dԘ Q +  ?*"  04 <x٘V =r  14 < ݘa V =a  24 < V Bc /c b XB 34 0D 00 XB 44 0D 0Z XB 54 0D 0Z XB 64 0D XB 74 0D XB 84 0D ^ 94 63fo+ :4 << e LQuery: //a[c]//b  ;4 <l~/ Jb buffers: 1. H 4 0޽h ? ^WNff3t-  $--KL0,(  0 0 H0))?@P  `$ c1 b1 ... %$ r 0 S ( `   XB 0@ 0D | 2 0 0) l. : 2 0 0Q k>  ;a2 0 04D i<  ;c2 0 0` U i ;bXB  0@ 0D U ^B  0 6D U   0 0 Q   C (c and b)    0 < -  D Parse tree  2  0 0g j=  ;r 0 <P[ C Input XML   0 0D>9 3r 0 0">a ?F"  0 0!a9 ?0"  0 0`%>^9 3r 0 0->^ ?F"  0 03^9 ?0"  0 0P79^4  3a 0 0p59^ ?F"  0 09^4  ?*"  0 0P=>Z 9 3r 0 0E>  ?F"  0 0 J 9 ?0"  0 04O9Z 4  3a 0 0Q9  ?F"  0 0V 4  ?*"  0 0\[4 Z 0  3c 0 0`Y4   ?F"   0 0Lc  0  ?2"  !0 0]0 Z +  3b "0 0j0   ?F"  #0 0xo  +  ?*"  $0 0s> 9 3r %0 0q> Q  ?F"  &0 0@v Q 9 ?0"  '0 0y9 4  3a (0 089 Q  ?F"  )0 0 Q 4  ?*"  *0 04 0  3c +0 0,4 Q  ?T"  ,0 0 Q 0  ?2"  -0 00 +  3b .0 0ĕ0 Q  ?F"  /0 0 Q +  ?*"  00 <LV =r  10 <<a V =a  20 <D g V Bc /c b XB 30 0D 00 XB 40 0D 0Z XB 50 0D 0Z XB 60 0D XB 70 0D XB 80 0D  :0 < e LQuery: //a[c]//b  ;0 <~ Qb buffers: 1. b1 ^ <0 63fo+ =0 0컙@ 9 ; 3r >0 0l@9  ?F"  ?0 0ę9 ; ?0"  @0 0ə; 9 6  3a A0 0̙;9  ?F"  B0 0@9 6  ?*"  C0 0ϙ6 9 2  3c D0 0י6 9  ?T"  E0 00ܙ 9 2  ?2"  F0 04ۙ2 9 -  3b G0 02 9  ?T"  H0 0` 9 -  ?*"  I0 <@ h V >/b XB J0 0D g g XB K0 0D g XB L0 0D g H 0 0޽h ? ^WNff31  11RR<21(  < < Ha))?@P  `$ c1 b1 ... %$ r < S ?( `   XB <@ 0D | 2 < 0<) l. : 2 < 0dVQ k>  ;a2 < 0QD i<  ;c2 < 0VU i ;bXB  <@ 0D U ^B  < 6D U   < 0<[Q   C (c and b)    < <_ -  D Parse tree  2  < 0]g j=  ;r < <jP[ C Input XML   < 0Ln>9 3r < 0q>a ?F"  < 0@va9 ?0"  < 0xt>^9 3r < 0x>^ ?F"  < 0^9 ?0"  < 0 ~9^4  3a < 0؈9^ ?F"  < 0<^4  ?*"  < 0P>Z 9 3r < 0x>  ?F"  < 0h 9 ?0"  < 09Z 4  3a < 09  ?F"  < 0< 4  ?*"  < 0ઠ4 Z 0  3c < 04   ?F"   < 0  0  ?2"  !< 0l0 Z +  3b "< 00   ?F"  #< 04  +  ?*"  $< 0<à> 9 3r %< 0> Q  ?F"  &< 0Š Q 9 ?0"  '< 0PϠ9 4  3a (< 0<ɠ9 Q  ?F"  )< 0͠ Q 4  ?*"  *< 0dՠ4 0  3c +< 0ޠ4 Q  ?T"  ,< 0< Q 0  ?2"  -< 0l٠0 +  3b .< 00 Q  ?F"  /< 0 Q +  ?*"  0< <tV =r  1< <da V =a  2< <P g V Bc /c b XB 3< 0D 00 XB 4< 0D 0Z XB 5< 0D 0Z XB 6< 0D XB 7< 0D XB 8< 0D  9< < e LQuery: //a[c]//b  :< < ~/ Kb buffers: 1.  ^ ;< 63fo{k9 << 0l@ 9 ; 3r =< 0@9  ?F"  >< 0P9 ; ?0"  ?< 0|; 9 6  3a @< 0h;9  ?F"  A< 0!9 6  ?*"  B< 0L&6 9 2  3c C< 0P%6 9  ?T"  D< 0+ 9 2  ?2"  E< 022 9 -  3b F< 062 9  ?T"  G< 0T; 9 -  ?*"  H< <p9 h V >/b XB I< 0D g g XB J< 0D g XB K< 0D g  L< 0C@B ; 3r M< 0DH@  ?T"  N< 0G ; ?0"  O< 0J;B 6  3a P< 0\R;  ?T"  Q< 0W 6  ?*"  R< <[B V >/a H < 0޽h ? ^WNff3  rj( Ow@ r  S b( `   XB @ 0D | 2  0 f) l. : 2  0eQ k>  ;a2  0LmD i<  ;c2  0|qU i ;bXB @ 0D U ^B  6D U   0wQ   C (c and b)    <{ -  D Parse tree  2  0g j=  ;r  H`))?@P  E c1 b1 b2 ... FE   <P[ C Input XML    0~>9 3r  0>a ?F"   0Da9 ?0"   0X>^9 3r  0윢>^ ?F"   0 ^9 ?0"   0H9^4  3a  0h9^ ?F"   0Ԩ^4  ?*"   <HV =r   <\ e LQuery: //a[c]//b   <p~/ Ib buffers: none H  0޽h ? ^WNff3  ME+,(  r  S Ѣ( `   XB @ 0D | 2  0Ԣ) l. : 2  0<ԢQ k>  ;a2  0ۢD i<  ;c2  0U i ;bXB @ 0D U ^B  6D U   0Q   C (c and b)    < -  D Parse tree  2  0ڢg j=  ;r  H`))?@P  E c1 b1 b2 ... FE   <P[ C Input XML    0>9 3r  08>a ?F"   0< a9 ?0"   0>^9 3r  0>^ ?F"   0h^9 ?0"   0|9^4  3a  0L9^ ?F"   0^4  ?*"   0<%>Z 9 3r  0X#>  ?F"   0 9 ?0"   0/9Z 4  3a  0,39  ?F"   07 4  ?*"   0<4 Z 0  3c  0:4   ?F"  ! 0D  0  ?2"  " 0L?0 Z +  3b # 0xK0   ?F"  $ 0P  +  ?*"  % <UV =r  & <8Sa V =a XB ' 0D 00 XB ( 0D 0Z XB ) 0D 0Z ^ * 63fo@P@ + <,^ e LQuery: //a[c]//b  , <b~/ Ib buffers: none H  0޽h ? ^WNff3)  ((DED((  r  S j( `   XB @ 0D | 2  0l) l. : 2  0dpQ k>  ;a2  0$tD i<  ;c2  0yU i ;bXB @ 0D U ^B  6D U   0T~Q   C (c and b)    <0 -  D Parse tree  2  0|g j=  ;r  Hԋ))?@P  E c1 b1 b2 ... FE   <܎P[ C Input XML    0t>9 3r  0H>a ?F"   0a9 ?0"   0>^9 3r  0<>^ ?F"   0^9 ?0"   0@9^4  3a  0t9^ ?F"   08^4  ?*"   0>Z 9 3r  0 >  ?F"   0¥ 9 ?0"   09Z 4  3a  0ɥ9  ?F"   0Ԭ 4  ?*"   0`ͥ4 Z 0  3c  0\ե4   ?F"  ! 0ڥ  0  ?2"  " 00 Z +  3b # 0H0   ?F"  $ 0  +  ?*"  % 0(> 9 3r & 0D> Q  ?F"  ' 0 Q 9 ?0"  ( 0(9 4  3a ) 09 Q  ?F"  * 0 Q 4  ?*"  + 0$4 0  3c , 04 Q  ?F"  - 0 Q 0  ?2"  . 00 +  3b / 00 Q  ?F"  0 0| Q +  ?*"  1 0+ &  3c 2 0+ Q  ?F"  3 0% Q &  ?3"  4 0($& "  3b 5 0X& Q  ?F"  6 00 Q "  ?*"  7 <5V =r  8 <89a V =a  9 <>e  V =a XB : 0D 00 XB ; 0D 0Z XB < 0D 0Z XB = 0D XB > 0D XB ? 0D XB @ 0D XB A 0D XB B 0D ^ C 63fo` D <HE e LQuery: //a[c]//b  E <J~/ Ib buffers: none H  0޽h ? ^WNff3k7  77]^6(  r  S   ;a2  0[D i<  ;c2  0`U i ;bXB @ 0D U ^B  6D U   0xeQ   C (c and b)    <j -  D Parse tree  2  0(g j=  ;r  H\s))?@P  E c1 b1 b2 ... FE   <yP[ C Input XML    0}>9 3r  0X|>a ?F"   0$a9 ?0"   0>^9 3r  0썦>^ ?F"   0ȑ^9 ?0"   0Ȁ9^4  3a  0D9^ ?F"   0Н^4  ?*"   0ț>Z 9 3r  0\>  ?F"   0 9 ?0"   0䧦9Z 4  3a  09  ?F"   0t 4  ?*"   04 Z 0  3c  0й4   ?F"  ! 0<  0  ?2"  " 00 Z +  3b # 04ʦ0   ?F"  $ 0q  +  ?*"  % 0Ӧ> 9 3r & 0֦> Q  ?F"  ' 0ڦ Q 9 ?0"  ( 0٦9 4  3a ) 09 Q  ?F"  * 0 Q 4  ?*"  + 0L4 0  3c , 0l4 Q  ?F"  - 0 Q 0  ?2"  . 0L0 +  3b / 00 Q  ?F"  0 0 Q +  ?*"  1 0+ &  3c 2 0d + Q  ?F"  3 0 Q &  ?3"  4 0& "  3b 5 0& Q  ?F"  6 0 Q "  ?*"  7 0L> M 9 3r 8 0>M  ?F"  9 0%M 9 ?0"  : 0h!9 M 4  3a ; 0+9M  ?F"  < 00M 4  ?*"  = 0.4 M 0  3c > 0<74 M  ?F"  ? 0; M 0  ?2"  @ 0:0 M +  3b A 0|D0 M  ?F"  B 0H M +  ?*"  C 0L+ M &  3c D 0P+ M  ?T"  E 0U M &  ?3"  F 0Z& M "  3b G 0\& M  ?F"  H 0a M "  ?*"  I <PfV =r  J <|da V =a  K <he  V =a  L <,m W V =c XB M 0D 00 XB N 0D 0Z XB O 0D 0Z XB P 0D XB Q 0D XB R 0D XB S 0D XB T 0D XB U 0D XB V 0D { { XB W 0D { XB X 0D { XB Y 0D { { XB Z 0D { XB [ 0D { ^ \ 63fo0@0 ] <pz e LQuery: //a[c]//b  ^ <`|~/ Ib buffers: none H  0޽h ? ^WNff3n7  77]^6(  r  S h( `   XB @ 0D | 2  0) l. : 2  0hQ k>  ;a2  0 D i<  ;c2  08U i ;bXB @ 0D U ^B  6D U   0,Q   C (c and b)    <( -  D Parse tree  2  0Хg j=  ;r  H))?@P  E c1 b1 b2 ... FE   <(P[ C Input XML    0X>9 3r  0>a ?F"   0$a9 ?0"   0쳧>^9 3r  0<ħ>^ ?F"   0ȧ^9 ?0"   0ǧ9^4  3a  0|ѧ9^ ?F"   0է^4  ?*"   0٧>Z 9 3r  0ݧ>  ?F"   0 9 ?0"   09Z 4  3a  09  ?F"   0 4  ?*"   0P4 Z 0  3c  04   ?F"  ! 0   0  ?2"  " 00 Z +  3b # 080   ?F"  $ 0<   +  ?*"  % 0h> 9 3r & 0> Q  ?F"  ' 0 Q 9 ?0"  ( 09 4  3a ) 0d9 Q  ?F"  * 0h! Q 4  ?*"  + 0%4 0  3c , 0#4 Q  ?F"  - 0d( Q 0  ?2"  . 0|10 +  3b / 050 Q  ?F"  0 0(: Q +  ?*"  1 0<+ &  3c 2 0A+ Q  ?F"  3 0E Q &  ?3"  4 0dJ& "  3b 5 0L& Q  ?F"  6 0Q Q "  ?*"  7 00V> M 9 3r 8 0LT>M  ?F"  9 0XM 9 ?0"  : 0a9 M 4  3a ; 0]9M  ?F"  < 0dM 4  ?*"  = 0Tl4 M 0  3c > 0tq4 M  ?F"  ? 0u M 0  ?2"  @ 0z0 M +  3b A 040 M  ?F"  B 0 M +  ?*"  C 0ą+ M &  3c D 0+ M  ?T"  E 0 M &  ?3"  F 0샩& M "  3b G 0X& M  ?F"  H 0 M "  ?*"  I <읩V =r  J <(a V =a  K <He  V =a  L < V @c /c XB M 0D 00 XB N 0D 0Z XB O 0D 0Z XB P 0D XB Q 0D XB R 0D XB S 0D XB T 0D XB U 0D XB V 0D { { XB W 0D { XB X 0D { XB Y 0D { { XB Z 0D { XB [ 0D { ^ \ 63fo0 ] < e LQuery: //a[c]//b  ^ <8~/ Ib buffers: none H  0޽h ? ^WNff3F  FFxx:F(  r  S   ;a2  0tD i<  ;c2  0dJU i ;bXB @ 0D U ^B  6D U   0|`Q   C (c and b)    < r -  D Parse tree  2  0Pvg j=  ;r  Hy))?@P  E c1 b1 b2 ... FE   < P[ C Input XML    <4~/ Kb buffers: 1.    0܈>9 3r  0>a ?F"   0܏a9 ?0"   0>^9 3r  0>^ ?F"   0h^9 ?0"   09^4  3a  09^ ?F"   0^4  ?*"   0>Z 9 3r  0X>  ?F"   0䲱 9 ?0"   0ķ9Z 4  3a  09  ?F"   0俱 4  ?*"   0dı4 Z 0  3c  04   ?F"  ! 00̱  0  ?2"  " 0\ɱ0 Z +  3b # 0α0   ?F"  $ 0ұ  +  ?*"  % 0Hֱ> 9 3r & 0\ڱ> Q  ?F"  ' 0ޱ Q 9 ?0"  ( 0l9 4  3a ) 09 Q  ?F"  * 0 Q 4  ?*"  + 04 0  3c , 04 Q  ?F"  - 0 Q 0  ?2"  . 00 +  3b / 00 Q  ?F"  0 0\ Q +  ?*"  1 0+ &  3c 2 0+ Q  ?F"  3 0 Q &  ?3"  4 0& "  3b 5 0& Q  ?F"  6 0$ Q "  ?*"  7 0 > M 9 3r 8 0L+>M  ?F"  9 00M 9 ?0"  : 049 M 4  3a ; 0 39M  ?F"  < 0x7M 4  ?*"  = 0:4 M 0  3c > 0pC4 M  ?F"  ? 0G M 0  ?2"  @ 0L0 M +  3b A 0dO0 M  ?F"  B 0(T M +  ?*"  C 0X+ M &  3c D 0V+ M  ?T"  E 0` M &  ?3"  F 0[& M "  3b G 0g& M  ?F"  H 0m M "  ?*"  I <PqV =r  J <poa V =a  K <se  V =a  L <w V @c /c  M 0{>J 9 3r N 0>  ?F"  O 0( 9 ?0"  P 0,9J 4  3a Q 09  ?F"  R 0 4  ?*"  S 04 J 0  3c T 0 4   ?F"  U 0 0  ?2"  V 00 J +  3b W 00   ?F"  X 0D +  ?*"  Y 0+ J &  3c Z 0+   ?T"  [ 0` &  ?3"  \ 0з& J "  3b ] 0(&   ?F"  ^ 0t "  ?*"  _ <,ġ LV =b XB ` 0D 00 XB a 0D 0Z XB b 0D 0Z XB c 0D XB d 0D XB e 0D XB f 0D XB g 0D XB h 0D XB i 0D { { XB j 0D { XB k 0D { XB l 0D { { XB m 0D { XB n 0D { XB o 0D XB p 0D J XB q 0D J XB r 0D XB s 0D J XB t 0D J ^ u 63fo@0P v <ӡ e LQuery: //a[c]//b  w <ء  Ib1 buffer open ^B x 6D" H  0޽h ? ^WNff3hU  UUT(  r  S ( `   XB @ 0D | 2  0) l. : 2  0LQ k>  ;a2  0D i<  ;c2  0U i ;bXB @ 0D U ^B  6D U   0Q   C (c and b)    < -  D Parse tree  2  0Dg j=  ;r  H))?@P  E c1 b1 b2 ... FE   <@ P[ C Input XML    0p>9 3r  0>a ?F"   0ha9 ?0"   0l>^9 3r  0 >^ ?F"   0 !^9 ?0"   0l&9^4  3a  04$9^ ?F"   0(^4  ?*"   02>Z 9 3r  0.>  ?F"   04 9 ?0"   0\<9Z 4  3a  0|A9  ?F"   0E 4  ?*"   0J4 Z 0  3c  08M4   ?F"  ! 0Q  0  ?2"  " 0V0 Z +  3b # 0Z0   ?F"  $ 0^  +  ?*"  % 0b> 9 3r & 0f> Q  ?F"  ' 0hk Q 9 ?0"  ( 0i9 4  3a ) 0r9 Q  ?F"  * 0hq Q 4  ?*"  + 0Pu4 0  3c , 0~4 Q  ?F"  - 0L Q 0  ?2"  . 0,0 +  3b / 0 0 Q  ?F"  0 0 Q +  ?*"  1 0\+ &  3c 2 0䐲+ Q  ?F"  3 0蕲 Q &  ?3"  4 0p& "  3b 5 0& Q  ?F"  6 0 Q "  ?*"  7 0(> M 9 3r 8 0䮲>M  ?F"  9 0M 9 ?0"  : 0x9 M 4  3a ; 0|9M  ?F"  < 0hM 4  ?*"  = 04 M 0  3c > 00Dz4 M  ?F"  ? 0̲ M 0  ?2"  @ 0в0 M +  3b A 0β0 M  ?F"  B 0\Ӳ M +  ?*"  C 0ֲ+ M &  3c D 0T߲+ M  ?T"  E 0 M &  ?3"  F 0& M "  3b G 0H& M  ?F"  H 0  M "  ?*"  I 0>9 3r J 0>@ ?F"  K 0@9 ?0"  L 094  3a M 09@ ?F"  N 0@4  ?*"  O 04 0  3c P 04 @  ?F"  Q 0 @0  ?2"  R 00 +  3b S 00 @  ?T"  T 0$ @+  ?*"  U 0 + &  3c V 0L++ @  ?T"  W 00 @&  ?3"  X 04& "  3b Y 0 3& @  ?T"  Z 0x7 @"  ?*"  [ <:V =r  \ <?a V =a  ] <Ce  V =a  ^ <(G V @c /c  _ <KV >/b  ` 0O>J 9 3r a 0T>  ?F"  b 0dX 9 ?0"  c 0\9J 4  3a d 0h`9  ?F"  e 0d 4  ?*"  f 0lh4 J 0  3c g 0q4   ?F"  h 0hu 0  ?2"  i 0|z0 J +  3b j 0}0   ?F"  k 0ԁ +  ?*"  l 0+ J &  3c m 0+   ?T"  n 0 &  ?3"  o 00& J "  3b p 0\&   ?F"  q 0 "  ?*"  r < LV =b XB s 0D 00 XB t 0D 0Z XB u 0D 0Z XB v 0D XB w 0D XB x 0D XB y 0D XB z 0D XB { 0D XB | 0D { { XB } 0D { XB ~ 0D { XB  0D { { XB  0D { XB  0D { XB  0D XB  0D J XB  0D J XB  0D XB  0D J XB  0D J XB  0D  XB  0D  XB  0D  XB  0D  XB  0D  XB  0D  ^  63foP  <H e LQuery: //a[c]//b   <8  Ib1 buffer open ^B  6D"   <~ Qb buffers: 1. b1 H  0޽h ? ^WNff3_  __ 8_(  r  S @( `   XB @ 0D | 2  0) l. : 2  0pôQ k>  ;a2  00ǴD i<  ;c2  0 ̴U i ;bXB @ 0D U ^B  6D U   0`ѴQ   C (c and b)    <մ -  D Parse tree  2  0۴g j=  ;r  Hlߴ))?@P  E c1 b1 b2 ... FE   <tP[ C Input XML    0 >9 3r  0>a ?F"   0,a9 ?0"   0@>^9 3r  0>^ ?F"   0^9 ?0"   09^4  3a  0d 9^ ?F"   0^4  ?*"   0`>Z 9 3r  08>  ?F"   0 9 ?0"   0|9Z 4  3a  0!9  ?F"   0& 4  ?*"   0$4 Z 0  3c  0.4   ?F"  ! 0`1  0  ?2"  " 050 Z +  3b # 050   ?F"  $ 0>  +  ?*"  % 0B> 9 3r & 0hG> Q  ?F"  ' 0K Q 9 ?0"  ( 0 N9 4  3a ) 0S9 Q  ?F"  * 0 M 9 3r 8 0t>M  ?F"  9 0ؒM 9 ?0"  : 09 M 4  3a ; 049M  ?F"  < 0M 4  ?*"  = 04 M 0  3c > 04 M  ?F"  ? 0䩵 M 0  ?2"  @ 00 M +  3b A 00 M  ?F"  B 0P M +  ?*"  C 0 + M &  3c D 0$+ M  ?T"  E 0õ M &  ?3"  F 0& M "  3b G 0ɵ& M  ?F"  H 0<ϵ M "  ?*"  I 0xӵ>9 3r J 0`͵>@ ?F"  K 0յ@9 ?0"  L 0,ٵ94  3a M 0Xݵ9@ ?F"  N 0@4  ?*"  O 0$4 0  3c P 0|4 @  ?F"  Q 0 @0  ?2"  R 00 +  3b S 00 @  ?T"  T 0H @+  ?*"  U 0 + &  3c V 0H + @  ?T"  W 0 @&  ?3"  X 0& "  3b Y 0& @  ?T"  Z 0X @"  ?*"  [ 0>=9 3r \ 0>= ?T"  ] 0< =9 ?0"  ^ 0#9=4  3a _ 0(9= ?T"  ` 0P,=4  ?*"  a 0074 =0  3c b 0l;4 =  ?F"  c 0? =0  ?2"  d 0=0 =+  3b e 0F0 =  ?T"  f 0L =+  ?*"  g <DPV =r  h <dNa V =a  i <Re  V =a  j <V V @c /c  k <ZV >/b  l 0_>J 9 3r m 0c>  ?F"  n 0lg 9 ?0"  o 0$k9J 4  3a p 0po9  ?F"  q 0s 4  ?*"  r 0tw4 J 0  3c s 0{4   ?F"  t 0  0  ?2"  u 0ă0 J +  3b v 00   ?F"  w 0\ +  ?*"  x 0+ J &  3c y 0`+   ?T"  z 0 &  ?3"  { 0d& J "  3b | 0&   ?F"  } 0 "  ?*"  ~ < LV =b   <V 4/aXB  0D 00 XB  0D 0Z XB  0D 0Z XB  0D XB  0D XB  0D XB  0D XB  0D XB  0D XB  0D { { XB  0D { XB  0D { XB  0D { { XB  0D { XB  0D { XB  0D XB  0D J XB  0D J XB  0D XB  0D J XB  0D J XB  0D  XB  0D  XB  0D  XB  0D  XB  0D  XB  0D  XB  0D jj XB  0D j XB  0D j ^  63fo   <辶 e LQuery: //a[c]//b   <Ķ  Ib1 buffer open ^B  6D"   <Hɶ  Jb1 buffer close ^B  6D    <hζ~ Qb buffers: 1. b1 H  0޽h ? ^WNff3xi  (i i0h(  r  S ̶( `   XB @ 0D | 2  0ض) l. : 2  0ܶQ k>  ;a2  0߶D i<  ;c2  0U i ;bXB @ 0D U ^B  6D U   0Q   C (c and b)    <p -  D Parse tree  2  00g j=  ;r  H))?@P  E c1 b1 b2 ... FE   <DP[ C Input XML    0>9 3r  0>a ?F"   0 a9 ?0"   0>^9 3r  0$>^ ?F"   0^9 ?0"   09^4  3a  0$9^ ?F"   0#^4  ?*"   0(>Z 9 3r  0&>  ?F"   00 9 ?0"   0D+9Z 4  3a  0p79  ?F"   0< 4  ?*"   0A4 Z 0  3c  00?4   ?F"  ! 0C  0  ?2"  " 0G0 Z +  3b # 0O0   ?F"  $ 0S  +  ?*"  % 0X> 9 3r & 0[> Q  ?F"  ' 0L` Q 9 ?0"  ( 0e9 4  3a ) 0 c9 Q  ?F"  * 0 m Q 4  ?*"  + 0g4 0  3c , 0s4 Q  ?F"  - 08y Q 0  ?2"  . 0t}0 +  3b / 0{0 Q  ?F"  0 0 Q +  ?*"  1 0t+ &  3c 2 0+ Q  ?F"  3 0D Q &  ?3"  4 0X& "  3b 5 0& Q  ?F"  6 0Ğ Q "  ?*"  7 0> M 9 3r 8 0>M  ?F"  9 0M 9 ?0"  : 0 9 M 4  3a ; 0L9M  ?F"  < 0M 4  ?*"  = 0컸4 M 0  3c > 0 4 M  ?F"  ? 0x M 0  ?2"  @ 00 M +  3b A 0pʸ0 M  ?F"  B 0θ M +  ?*"  C 0Ӹ+ M &  3c D 0dָ+ M  ?T"  E 0(۸ M &  ?3"  F 0߸& M "  3b G 0ݸ& M  ?F"  H 0 M "  ?*"  I 0>9 3r J 0>@ ?F"  K 0@9 ?0"  L 0P94  3a M 0p9@ ?F"  N 0T@4  ?*"  O 04 0  3c P 0T 4 @  ?F"  Q 0 @0  ?2"  R 0T0 +  3b S 00 @  ?T"  T 0D @+  ?*"  U 0\+ &  3c V 08#+ @  ?T"  W 0' @&  ?3"  X 0,& "  3b Y 04*& @  ?T"  Z 0. @"  ?*"  [ 02>=9 3r \ 0:>= ?T"  ] 0H?=9 ?0"  ^ 0L>9=4  3a _ 0G9= ?T"  ` 0xK=4  ?*"  a 0XP4 =0  3c b 0,T4 =  ?F"  c 0xX =0  ?2"  d 0]0 =+  3b e 0 `0 =  ?T"  f 0d =+  ?*"  g <iV =r  h <ga V =a  i <8re  V =a  j <@l V @c /c  k <tV >/b  l 0x>J 9 3r m 0~>  ?F"  n 0| 9 ?0"  o 0L9J 4  3a p 0`9  ?F"  q 0 4  ?*"  r 0p4 J 0  3c s 04   ?F"  t 0 0  ?2"  u 00 J +  3b v 080   ?F"  w 0 +  ?*"  x 0+ J &  3c y 0+   ?T"  z 0 &  ?3"  { 0& J "  3b | 0X&   ?F"  } 0 "  ?*"  ~ <ƺ LV =b   <˺aWV 5 bXB  0D 00 XB  0D 0Z XB  0D 0Z XB  0D XB  0D XB  0D XB  0D XB  0D XB  0D XB  0D { { XB  0D { XB  0D { XB  0D { { XB  0D { XB  0D { XB  0D XB  0D J XB  0D J XB  0D XB  0D J XB  0D J XB  0D  XB  0D  XB  0D  XB  0D  XB  0D  XB  0D  XB  0D jj XB  0D j XB  0D j ^  63fo  <Xغ e LQuery: //a[c]//b   <Hں  Ib1 buffer open ^B  6D"   <  Jb1 buffer close ^B  6D    <| a|  Hb2 buffer open   <@~ Xb buffers: 1. b1 2.    0>a 9 3r  0H>  ?T"   0 9 ?0"   09a 4  3a  089  ?T"   0<  4  ?*"   04 a 0  3c  04   ?F"   0 0  ?2"   00 a +  3b  0d0   ?T"   0h! +  ?*" ^B  6D; 33   <%P >/a H  0޽h ? ^WNff32a  ``@r`(  r  S ,( `   XB @ 0D | 2  0ܺ) l. : 2  01Q k>  ;a2  0(5D i<  ;c2  0T9U i ;bXB @ 0D U ^B  6D U   0<>Q   C (c and b)    <A -  D Parse tree  2  0 Gg j=  ;r  HdK))?@P  E c1 b1 b2 ... FE   <lNP[ C Input XML    0U>9 3r  0X>a ?F"   0$]a9 ?0"   0a>^9 3r  0e>^ ?F"   0j^9 ?0"   0`9^4  3a  0r9^ ?F"   0v^4  ?*"   0tp>Z 9 3r  0|>  ?F"   0؁ 9 ?0"   09Z 4  3a  0ȉ9  ?F"   0 4  ?*"   0$4 Z 0  3c  04   ?F"  ! 0D  0  ?2"  " 0H0 Z +  3b # 0|0   ?F"  $ 0  +  ?*"  % 0(> 9 3r & 0D> Q  ?F"  ' 0 Q 9 ?0"  ( 0(9 4  3a ) 09 Q  ?F"  * 0X Q 4  ?*"  + 0(»4 0  3c , 0T4 Q  ?F"  - 0ɻ Q 0  ?2"  . 0Ļ0 +  3b / 0л0 Q  ?F"  0 0ֻ Q +  ?*"  1 0Lڻ+ &  3c 2 0lػ+ Q  ?F"  3 0ܻ Q &  ?3"  4 0L& "  3b 5 0& Q  ?F"  6 0 Q "  ?*"  7 0> M 9 3r 8 0>M  ?F"  9 0 M 9 ?0"  : 09 M 4  3a ; 089M  ?F"  < 0< M 4  ?*"  = 0 4 M 0  3c > 04 M  ?F"  ? 0 M 0  ?2"  @ 00 M +  3b A 0d0 M  ?F"  B 0h! M +  ?*"  C 0%+ M &  3c D 0#+ M  ?T"  E 0d( M &  ?3"  F 0|1& M "  3b G 05& M  ?F"  H 0(: M "  ?*"  I 0<>9 3r J 0A>@ ?F"  K 0E@9 ?0"  L 0dJ94  3a M 0L9@ ?F"  N 0S@4  ?*"  O 0 X4 0  3c P 0(V4 @  ?F"  Q 0Z @0  ?2"  R 0 ^0 +  3b S 08b0 @  ?T"  T 0f @+  ?*"  U 0|o+ &  3c V 0=9 3r \ 0>= ?T"  ] 0<=9 ?0"  ^ 09=4  3a _ 0@9= ?T"  ` 0=4  ?*"  a 0D4 =0  3c b 04 =  ?F"  c 0ܢ =0  ?2"  d 00 =+  3b e 0઼0 =  ?T"  f 0, =+  ?*"  g <䲼V =r  h <0a V =a  i <|e  V =a  j <ȿ V @c /c  k <ļV >/b  l 0`ȼ>J 9 3r m 0̼>  ?F"  n 0м 9 ?0"  o 0Լ9J 4  3a p 0ؼ9  ?F"  q 0( 4  ?*"  r 0Hݼ4 J 0  3c s 04   ?F"  t 00 0  ?2"  u 0(0 J +  3b v 00   ?F"  w 0 +  ?*"  x 0+ J &  3c y 0D+   ?T"  z 0  &  ?3"  { 0& J "  3b | 0l&   ?F"  } 0 "  ?*"  ~ <  LV =b   <gV 9/a b /bXB  0D 00 XB  0D 0Z XB  0D 0Z XB  0D XB  0D XB  0D XB  0D XB  0D XB  0D XB  0D { { XB  0D { XB  0D { XB  0D { { XB  0D { XB  0D { XB  0D XB  0D J XB  0D J XB  0D XB  0D J XB  0D J XB  0D  XB  0D  XB  0D  XB  0D  XB  0D  XB  0D  XB  0D jj XB  0D j XB  0D j ^  63fo0   <X- e LQuery: //a[c]//b   <-  Ib1 buffer open ^B  6D"   <6 j8  Nb2 buffer open/close ^B  6D; gg   <<  Jb1 buffer close ^B  6D    <,A~ ^$b buffers: 1. b1 2. b2%$ H  0޽h ? ^WNff3f  yfqfP f(  r  S LI( `   XB @ 0D | 2  0K) l. : 2  0OQ k>  ;a2  0SD i<  ;c2  0WU i ;bXB @ 0D U ^B   6D U    0H]Q   C (c and b)     <a -  D Parse tree  2   0deg j=  ;r   Hi))?@P  E c1 b1 b2 ... FE   <oP[ C Input XML    0t>9 3r  0w>a ?F"   0@a9 ?0"   0`>^9 3r  00>^ ?F"   0L^9 ?0"   0H9^4  3a  0X9^ ?F"   0Ԏ^4  ?*"   0H>Z 9 3r  0\>  ?F"   0 9 ?0"   0l9Z 4  3a  09  ?F"   0 4  ?*"   04 Z 0  3c   04   ?F"  ! 0T  0  ?2"  " 0 0 Z +  3b # 080   ?F"  $ 0ľ  +  ?*"  % 0pʾ> 9 3r & 0\ξ> Q  ?F"  ' 08Ҿ Q 9 ?0"  ( 0LȾ9 4  3a ) 0ؾ9 Q  ?F"  * 0@޾ Q 4  ?*"  + 08ܾ4 0  3c , 04 Q  ?F"  - 0 Q 0  ?2"  . 0T0 +  3b / 0P0 Q  ?F"  0 0 Q +  ?*"  1 0|+ &  3c 2 0+ Q  ?F"  3 0 Q &  ?3"  4 0 & "  3b 5 0@& Q  ?F"  6 0  Q "  ?*"  7 0|> M 9 3r 8 0>M  ?F"  9 0DM 9 ?0"  : 0"9 M 4  3a ; 0|9M  ?F"  < 0*M 4  ?*"  = 0$/4 M 0  3c > 024 M  ?F"  ? 0h- M 0  ?2"  @ 0\50 M +  3b A 0>0 M  ?F"  B 04C M +  ?*"  C 0d9+ M &  3c D 0F+ M  ?T"  E 0O M &  ?3"  F 0lJ& M "  3b G 0\R& M  ?F"  H 0\ M "  ?*"  I 0`>9 3r J 0V>@ ?F"  K 0b@9 ?0"  L 0f94  3a M 09@ ?F"  N 0r@4  ?*"  O 0q4 0  3c P 0 {4 @  ?F"  Q 0y @0  ?2"  R 00 +  3b S 0H0 @  ?T"  T 0 @+  ?*"  U 0+ &  3c V 0L+ @  ?T"  W 0 @&  ?3"  X 0웿& "  3b Y 0 & @  ?T"  Z 0x @"  ?*"  [ 0졿>=9 3r \ 0p>= ?T"  ] 0=9 ?0"  ^ 0г9=4  3a _ 0d9= ?T"  ` 0(=4  ?*"  a 04 =0  3c b 04 =  ?F"  c 0ǿ =0  ?2"  d 0¿0 =+  3b e 0ο0 =  ?T"  f 0Կ =+  ?*"  g 0Pؿ>:9 3r h 0pֿ> ?T"  i 0ڿ9 ?0"  j 0P޿9:4  3a k 09 ?T"  l 0 4  ?*"  m <4V =r  n <a V =a  o <e  V =a  p < V @c /c  q <V >/b  r 0`>J 9 3r s 0>  ?F"  t 0d  9 ?0"  u 09J 4  3a v 09  ?F"  w 0T 4  ?*"  x 0t4 J 0  3c y 0#4   ?F"  z 0( 0  ?2"  { 0,0 J +  3b | 0*0   ?F"  } 0H/ +  ?*"  ~ 02+ J &  3c  0@;+   ?T"   0B &  ?3"   00H& J "  3b  0K&   ?F"   0 F "  ?*"   <,N LV =b   <4RgV 9/a b /b  <V\^ 4/a  <Z  Ib1 buffer open ^B  6D"   <d j8  Nb2 buffer open/close ^B  6D; gg   <di a  Xb2 removed b1 emitted, removed ^B  6DD   XB  0D 00 XB  0D 0Z XB  0D 0Z XB  0D XB  0D XB  0D XB  0D XB  0D XB  0D XB  0D { { XB  0D { XB  0D { XB  0D { { XB  0D { XB  0D { XB  0D XB  0D J XB  0D J XB  0D XB  0D J XB  0D J XB  0D  XB  0D  XB  0D  XB  0D  XB  0D  XB  0D  XB  0D jj XB  0D j XB  0D j ^  63fop  <lv e LQuery: //a[c]//b   < |  Jb1 buffer close ^B  6D    <~/ Ib buffers: none H  0޽h ? ^WNff3k  Ck;k`j(  r  S L( `   XB @ 0D | 2  0P) l. : 2  0Q k>  ;a2  0XD i<  ;c2  04GU i ;bXB @ 0D U ^B   6D U    0TQ   C (c and b)     <X -  D Parse tree  2   0$^g j=  ;r   H|b))?@P  E c1 b1 b2 ... FE   <eP[ C Input XML    0l>9 3r  0o>a ?F"   0^9 3r  0{>^ ?F"   0^9 ?0"   0x9^4  3a  0|9^ ?F"   0h^4  ?*"   0>Z 9 3r  00>  ?F"   0 9 ?0"   0Н9Z 4  3a  09  ?F"   0\ 4  ?*"   0У4 Z 0  3c   0T4   ?F"  ! 0  0  ?2"  " 00 Z +  3b # 0H0   ?F"  $ 0   +  ?*"  % 0> 9 3r & 0> Q  ?F"  ' 0 Q 9 ?0"  ( 0h9 4  3a ) 0X9 Q  ?F"  * 0L Q 4  ?*"  + 0x4 0  3c , 04 Q  ?F"  - 0 Q 0  ?2"  . 00 +  3b / 00 Q  ?F"  0 0 Q +  ?*"  1 0$+ &  3c 2 0+ Q  ?F"  3 0D Q &  ?3"  4 0D& "  3b 5 0& Q  ?F"  6 0  Q "  ?*"  7 0H> M 9 3r 8 0>M  ?F"  9 0 M 9 ?0"  : 09 M 4  3a ; 09M  ?F"  < 0!M 4  ?*"  = 0$&4 M 0  3c > 0@$4 M  ?F"  ? 0( M 0  ?2"  @ 010 M +  3b A 060 M  ?F"  B 0t: M +  ?*"  C 0>+ M &  3c D 00B+ M  ?T"  E 0= M &  ?3"  F 0D& M "  3b G 0M& M  ?F"  H 0R M "  ?*"  I 0W>9 3r J 0U>@ ?F"  K 0_@9 ?0"  L 0]94  3a M 0f9@ ?F"  N 0j@4  ?*"  O 0i4 0  3c P 0\s4 @  ?F"  Q 0v @0  ?2"  R 0{0 +  3b S 0t0 @  ?T"  T 0 @+  ?*"  U 0d+ &  3c V 0+ @  ?T"  W 0 @&  ?3"  X 0& "  3b Y 0& @  ?T"  Z 0 @"  ?*"  [ 0>=9 3r \ 0>= ?T"  ] 0,=9 ?0"  ^ 009=4  3a _ 0Я9= ?T"  ` 0\=4  ?*"  a 0<4 =0  3c b 04 =  ?F"  c 0 =0  ?2"  d 00 =+  3b e 00 =  ?T"  f 0\ =+  ?*"  g 0@>:9 3r h 04> ?T"  i 09 ?0"  j 0(9:4  3a k 0T9 ?T"  l 04  ?*"  m 0 >9 3r n 0x>0 ?T"  o 009 ?0"  p 0|94  3a q 090 ?T"  r 0D04  ?*"  s 04 0  3c t 04 0  ?F"  u 0 00  ?2"  v 0l0 +  3b w 0D0 0  ?F"  x 0 0+  ?*"  y <V =r  z <<"a V =a  { <@'e  V =a  | <+ V @c /c  } </V >/b  ~ 0$4>J 9 3r  0h2>  ?F"   0 9 ?0"   0?9J 4  3a  0C9  ?F"   0G 4  ?*"   0L4 J 0  3c  0J4   ?F"   0T 0  ?2"   04O0 J +  3b  0`[0   ?F"   0` +  ?*"   0e+ J &  3c  0 c+   ?T"   0g &  ?3"   0k& J "  3b  0s&   ?F"   0w "  ?*"   <| LV =b   <gV 9/a b /b  < \^ 4/a  <0^ 3aXB  0D 00 XB  0D 0Z XB  0D 0Z XB  0D XB  0D XB  0D XB  0D XB  0D XB  0D XB  0D { { XB  0D { XB  0D { XB  0D { { XB  0D { XB  0D { XB  0D XB  0D J XB  0D J XB  0D XB  0D J XB  0D J XB  0D  XB  0D  XB  0D  XB  0D  XB  0D  XB  0D  XB  0D jj XB  0D j XB  0D j XB  0D  XB  0D  XB  0D  ^  63fopP@   <l e LQuery: //a[c]//b   <\~/ Ib buffers: none H  0޽h ? ^WNff3  p>(  l = C ( `   l > C (  H  0޽h ? ^WNff3  8<0(  R  s *@ e R  s * U ^B  6DjJ@ p XB  0D  2  0!p 0  ;r2  0! P  ;x2  0! h  ;a2  0! p  ;b2  00 5%p  ;cXB @ 0DP u ^B  6DP e XB  0D  XB  0D` u XB  0D  ` XB  0D`  2  00p U E 0  ;apb  HZGpHIX p u pb  HZG!Hs{IP  p pb  HZGHpI2 U: \ 2  0 0 %  P  ;b2  00 u  A>$F 2  00 u  A=$F ^B  6DjJ u XB  0D u@ XB  0D e@ 2  00@ eU  ;52  0d0@   ;cXB  0D ] ] 2 # 0#0p 0  ;r2 $ 0(0 P  ;x2 % 0,0 p  ;a2 & 010 p  ;b2 ' 0070 h  ;c2 ( 0(<0 eP  Gand(FXB )@ 0DP E ^B * 6DP u 5 XB + 0D e XB , 0D` E XB - 0D U` XB . 0D` U 2 / 0dB0p %0  ;apb 0 HZG!Hs{IP u p pb 1 HZGHpI2 0 h 2 2 0G0 P  ;b2 3 0K0 E  A>$F 2 4 0P0@   A=$F XB 5 0D ` 2 6 0N0` ue  ;52 7 0Y0` %  ;cXB 8 0D u` pb 9@ HGH4ITp ppb :@ HGH'I=jJ  r ; S ]0( `  0 r < S |^0( @o 0 2  0`0 P  Gand(FH  0޽h ?019(: ^WNff3&  I&A&6BD%(  Dl D C (`   T D H`))? @   1 2 3 4 5 6 7 8 9 10 11 12 ...  D < G C Input XML   D H))?  HFragment$    D H))? P  M Ancestor sets$    D H))?  <2   D H))?  = 12    D Hp))? P  IASt={1}&    D H4))? P  JASt={11}&     D H8))?  HFragment$     D Hd))?` P  M Ancestor sets$     D H))?   54  D H))?  p  58  D HT))? ` P  RASt={1}; ASa={3}&   D HD))? ` P p  TASt={1}; ASa={6,7}&   D H))?   HFragment$    D H))? ` P  M Ancestor sets$    D HL))?  p 55  D HT))?p ` 59  D Hd))? ` P p RASt={1}; ASa={3}&   D HT))?p` P ` RASt={1}; ASa={7}&   D <t 7  Jg output buffers  D <8  Qb/text() output buffers  D <  i  Qc/text() output buffers  D H))?` P 59  D H())?`` P P RASt={1}; ASa={6}&   D H!))?` P`P  Hc/text()$    D H#))?P P`@ C5&   D H-))?@P`0 C9&   D <1 M  @Result   D HX6))?0P`  D10&   !D H:))?` PP  Hb/text()$    "D H @))?P P@ C4&   #D HC))?@P0 C8&   $D HH))?0P  C8&   %D HHL))?` P  Ag$   &D H(Q))?P @ <2   'D HhU))?@0 <2   (D HO))?0  <2  XB *D 0D}2 ,D 0]m# : 2 -D 0a]SC ;r2 .D 0e}SC= ;t2 /D 0D@ 0D]XB @D 0Dp2 AD 0|P  : 2 BD 0 0   ;cH D 0޽h ? ^WNff3  $( e@ l  C Ȉ( `   l  C ( @  ~  BA ??^  ~  BA ??+  H  0޽h ? ^WNff3  $(  l  C ( `   l  C ( @  ~  BA ??X W ~  BA ??@ h@ H  0޽h ? ^WNff3  $( P l  C L( `   l  C ( @  ~  BA ??L b ~  BA ??L j H  0޽h ? ^WNff3^   (  o.w ~  BA ??o9 l  C |( `   l  C P(   H  0޽h ? ^WNff3  (  l  C @( `   l  C ( @  H  0޽h ? ^WNff3  ( ( l  C t( `   l  C ( @  H  0޽h ? ^WNff3  (  l  C ( `   l  C ( @  H  0޽h ? ^WNff3  tl(  l  C  ( `   X  0A?E{H  0޽h ? ^WNff3'x< Uŕ4͇^Ϧ(-[kZEi6bMg:1QBcpB8v$cDelK{}n{Vխ ;Ts}_rᮘk8C|>ե]=X #Q@  PPC@ P/qT H P PP PP P0`PN0 0`$(cN8 `,84B8&L 0 38s 0 `: \-F .`%0`@3@ |d( >mbL\)x?HEMw):mGCgz԰f\HZsJj"H,9ˏbh} s#\[2mx~WjhGY_75_4qS˸]rQ`y>-Yd~[jy- S4-k6u4Ͱ ZZچN:Q8Pc׼,k_Ck27w ~l;#xDkRsz6[6}n7-byjʒmKV,krߎfzV2cQeOGMi7M| X Wx>`O};*Pp,YXD9oo a$jP|ot]=_8-PǚZ1171+~ePՠ++ӳUf _{KD`#g9(H&IOmf#~HJ,gɆb mf6TXUc,=Mkq<')m֨U9Ps܍ܕ^H!P}G7/AA'o?ހ#Anw >n=-V-jvGh=Եv%Kq#i/ M A}<{9fԍ `0le% MېQ0[{pQ'0 ,waÓ(׉;w]k 8}E; |gDŞ$SEaoakxPA1) [R[WΙ0sM iLtm6hh~R8iŗIFyS>a;lXt%vT<`8'GIߧ+sGo.ܸ?Ʊxr4:\ېi{uΖ'M %}޵<ʱWm\.\א.qW3㔢oQDZ-M_"C[D; 50 eS||ƕƁ^TvK|x҉m;ĥ5!F9PI0~I {,`,<7#<\Ohm u[qӀ1zGum ;Wn]|W7kHQ)'IS~h (v~?Hۤ>S֩xXTM//4H8|7 #y3;o4jO$װ<;9ɸp0)0~z5Z NJ$L}cA bAsRY#hMG Y d"|Դzn4Y@! ;=Y(.qJ̐D2iKSazDqM,tӒc3 f(d,A4G,6EH8"42\zĢ2ޝhUIN)W |nO%dK p#76w]{JYr@ꖂg_s[uބ/KAF*̕Tᇢ"Y@TE J-d` CrUY_@Apڢ ͋`'3vY7nx1 m^y>p 1F'^oL~ՉsV&ÂCwA| 1QrʀFtQblyltnrZ{{ޛZGG=!^b*+M\yӼDK(a{~m{nea{Ul.t/g:{mܻ8yyVꀽqMeԁ_ n.nkO-^.S '0 ̀㣅|%񲬺1# c0ڔ(Sb,hּ>10fY3ZYSô\lCϭ侥_wdo+־7IdzIOǎg91Op=pV{, ޝab#8~e\w_EPQrBbkSo;C!x]S (O=#]@1Pd ZŠ52PE.Y#Pi~X`h=Nw@MV kPO Vk;~Ġ|zmqI=J#'$uU` ?|D&mY&BpHUd&bM6bv *UXy7b ,)wג[JFf6h*&H XEW"U"LW"UɢLWrHi0}KGž'u>5!7Z(i4T)K YĠZv}i3;5$bDn:=HZGGI9?zVdzGGn:ht1e)t\ry*bHW!OHR71RsJ1VtcgeLW:Xe9Y[7 A,W2q2;N]\Q8a;]"f@2 q2N?DXf\x̀dY. ʶX0MpI7s I(t^y؜f<2/{<nc L7Ak,Ǟ>Ǟ 3_Tb gkDb,wc9#\C+ 3ci_K2!ifH`I0F ŠL7C",%nkDOd}( hYY, ,z~'c-ƺ4R@?Uq9Oߖ9뢉>/$!kЅ0 tO;m`=L<|nx @yWb,m@!Ϣb<+ּ^1D( y^n_I<0r]}%J=í_w-1+gpXf~7`ǧp a'u!<+|x/`HggE0@oOeXF>WE%f & gR";v7Pd*s{rEv&GVd?v6K~l5cfv.E6y~r}{ &$C<'e큯"÷[ 73 V\+zǞ)kT5}^֨jbjbX ƼP]^ָuk}j1^a[֭NĘpb:(kL!n`֪ҞoU J NTS,GS,GS,GSg] L>nTL`tt9+ȁ+tq^SQY}t;TqSi6|8//*wꝣr;˲Q2Y*W5RA~|J\_+d 2FYL@Γ_pT ϩR>'Lc2jnTx"nhdƒ9G(|Gq2 e$&hJ np3ě~xj7CwiJk<2gD % dUC]DĭnPșnPܿ#;QVX[؍uQ8<,/yoπ+dT&9(N~8ejh 6^8p;cP鎫SOM)yI7Lp?9+( ]lp(Pxo=b D|]$ ~xI"@XbP"w=$Qؕ(,IqCv逬qCJD7?5䈱G$b;ڏp9OFI)87.u#n?*nQ]4j94͛2yZQ94e|{ޫKˡ*J";r #D 4X-܏cr,H LbA93H2x0%AC^f 4p0+7äLX 2x&|id%,qqDlyv􄏼_ jԸ j -As+D[խVd"2{J3ZP,2N"ߛdi`" A D45j"(~V $U0̜8w>5fwܹs3;3aQ㍤@-E܄ /-[}UgE׀6_;`џry"Vs||(IΛ'$ӝ)m0ߦKkC4n^?5K /m 8v]Ro%qۭbpp]" HicFO>1"QoN=λӱftN].ߐ%j I_F(;l0.]b=(3v !fI3:,֥unQK%b{P:p%z}M)v7ޣk{EDFNmNvν>_gic!)m,$hڧK[7uic-icA;%Sl3{? w/f;R9.>շ~Ksr9h˘/ϡϮ`?\=e{Ab>\=u|kro$m-sQ.ĞC5h!`Xs>*jx;D;~QjEINlI>;`~(^Ĩ ?rY2J/u2ȹf7u: ȹW\M_2As>qNP_#Il5@i!6'(óEtm_5M>o(U RTT5 JUCjjjm( _5bYwTw=(t׃A?Sv=(]F{@ Ii5_3vs#"v=Hq׃,|)bsm׃V`qQwu^|.*1ܲc'zpm9],Ju׃sĸWfvz/ĸ''cObGYR瀂>WU PMu6}of`B4恂 b( @Aê4M(@Aê6(l p@(XJPp.DfK,(8 ׼ ~c^B0(x5ppPP?`PЮ\7s@Au^|.*  ߀{g@F;@} na+1 ga@P~4<.8'*$bq@PE * W,n@Y&` C-(5mVr)G 1FF*FƄ{LzQ#ê4M52& P#V^OhzP52!ƚ[Oj%'Y_z]F< }p\Ox,=~f߼?t=DVH?D**XKqJ$ тBWH兆b R"ir%L P^hx %QDRN R"i %HPP^h %<%V)%BC)4 eDҐ% Do"*44 MD@Fӷ%2^14 GV"R,JJd]rȧDvEN͂QZT4|12v+[ħO9 ]U<4-*޷f(52jUn2W2z4Sgz ZUoU BUzA]d=@pcX =@pcXfڼmyq ;r_K%xw<*Kٝ6c K{`M&ūdrBݲ`w dPXR&l]0oAL0 &Ct0YhB1daU&+etKC1ُ֐8 'mջ X\g&/b~Tv:x~T#|. r}fBYX7KݖK2α> W}nA :㠃ώ9,W['ҿ7Ow>y:<]Rt4y5h \E󐧻n;AE}Eܟ/:d{zq9BϱꙜsi)F-uW^{tuw%ٹCznhq-;Gw2&,|O0∺<7 q)&67b߄F9غy{B 23;@̧f&Ļ=ݹ^ѵp;qt=krviS $c>̞;)I 7?מ˷/de`[@0|>,~0-@8eh[x[(x\ tUŹ8rN!9 (Pugm(u!P⪭UoRJuYl^ZֶjեV|T5PPT {>; ^.2g'g{g3ζ?lׅ/$ q'& IB{zzl/K@6#@QP((((]@TT 4h`2!@@@i@@U@@5@@u@@À: h@2@ @t б@ぎ:h @'RMj4h TN:4Ӂj:ht@3f5t6зZ:@:h\Vy@ڀځ]hl4S,OIؼ:]|{'G<1&CXr1iR\蚪ϡ+v@%b91O\xBQCϓ5E_ef/u?ߤ4I?7h 8}yiV.[Бf~+:5.Z`<%3rŞ~oҋpx%㜗c}?0bDݯ_Vugϕq.\.xlzZ6YFx=<,͏ϔo6ߝQn{~sΦqL|4Vq9ԁyzw﯍V?xM=rwݺt[cPl䋿7]<9\G#}2O)d~;xTAjf(e?ЭLf}*mỹxn,{3C}$~L{7}+i ]EiWx"|dnM\:7sR\N¾RNnۺ_n1;lЖ)N#,dM"|al,3 ^'\TRD!*/.<ВŒTgp !|֩,s1 7v@XR:$t [КE p;d4/-"ahJ+JR ф+CD NaTrǡ7*ht9MK7z&X6u9p5,w̸ ˽a/̛ECR95p4Ԡh9CbnG~)-};Dޯ% SDD! TJDAt-uCr݇(r]A׻xnw-wܵ wnr˛w};^~<_Bg-w܄g2^厗?l"mߖ/l|˻-w/ieɎה2^ rܖ.~dku굅xB}lDnrk~𓥅r\f}fEdKHkt VAPX&>-'` (XE5'Bzh= 8[tog >OWWiS~#TK7uy]I(f~E64."Ucb4fSul1wru,Y=:N&z{X=@pDDLǽ+$Wc3`6 q < S96%b8n~KxYUw*OM~]CgʼnMy)%5_$KP b*bz:X-ƼRY:e;#%;R_K}/#;}3NKx&,U\j_<狇;o/V I`&e3bn,|{*) r^;֠/9H>5d̑)w4>Ssʣ8gm2 eHTɣD(9/1 ꫜ:ɠq*'r7NgJ<5B?s(}*WQPdP_ @!PԱb SEiC,ѝdyvs]%wM~m~8eZhlLy];;Pѹθm kQ_aVp% D7_#ˢD|df#(!²Q"0I&cQ#QX %ӥ}lDt޴sH}6Brmy%JDWe#N;ܢ=hTbhQ"(IUYZbK$cgnaeQ"/7A2/^ɡ(!-Ab!YQ~].pA9hHa]}p\U#$&i&6M۴$m RҦB|XlRڅv&-R # : 3:3:㌎ h{;}o?D78}޽s %⛐DoB&g-,1%} 5%ifk{,7 78o}]B7x^) *Og ۤ鸃Cv[əAkByV0 rAL4ԟRNJݵ:H÷_P:f(QH"L&:3 i HoP"75&o&W d5H" a{$" ԡ\3T(6ތmlJd~ q$"`Ҋ'^ZVsmцy0`^ ?#x'WDs*88ojk XS_'1) 0nj0C4pv7[jk~~`aj Xx8_oSwaNk4- 6̸nt17 >H.ڠ;.˛ֺDݞ!%ǿ~ؗq#1nSB3h71PKE2XyEX RE1*PXdc:t[RaNu#QcE#O|2{Mm}υ/f\ (Cw}ŞNq{^.FТrkb,Uq'Nɿw/=z;:]F~aKryh˄m/cϮ?(l;esC>,l;u5yC[+l;' PC s _q9x 5ilgԏPӏ5Yqia:UP_C(Cߋ^jYj O#'n=/3?KmK2ÿ/Wcȹ^srÿPsj_a ?#v)Aÿ$Q\0f(_GϰO<{*?dt(A5萩p0iPpdJaÿ4Ն_4w#s.876{l slMWW)=;դSM!R88xRNQ(U+-5GRsZZZۥҎR"QΕdGIxyr$qYEɘɈx[UɘW< Dɘ>Xm܌)bdLa"{"1%Td1SH4܌)?m\YMEdL)Ќ)#GJ+Fi4%<+/KUΘ"feƔq!nMɻ@jhkM;Uoe3wxqZhs;d-T O恂<#omB4 D1$r\uJ Dy!PmA0Y$,(&Te"`9u7Ba;#}}PpBUy|g$PG%NjH PP5)_nq] = AKPw?s @{   gPpCAX/k@pz=,Yԁ]puDW':$bi@PG :tT  ;@ ؂@p@ X'hז;Ւ '5G9]ϴp/B NڽkQ ]Pˤ/t:AI'<#(Dguus~,O:9?cj+ň1 DBǧSO+5|z-ǞPɗhΜo?RJQ0$IQx]~( ZC~?Ea;P!N}4$ŏN--XZhiKK[Zmk)vFk)˯1Z:𤥥0YC&BKj1Y{"ݢ0 |[d3RPky `2!`a2"O& i*Ё*.. dWB“q@W.bqhL_X1lP5¨lg 0 ҬDeG ?a =6`j-nV޻uX.6[-Mͼڿ>ܬb)! YaW˿6bvu]] vu]]zvu'Wqvu7L<.zSugGK: iÛ! ;# [VV>W%BF͓O +?>e3q MI1\2(7Q>|՜La?ʐ-sIV9?syJ?{囂xlN ˜}=:#.*A{%>w ^lS${\(1HU~S63m:}Mv"o|짎e^Zۑ4A}-`|`6{lq?n9oѨ~ӧ}d F! "S>"ܼ9iEݠ;|gU^v1s #wTo4,_GIJ"[%mT~<& 2&i[/Nk'x< Tŕ>ip (Qk:͠A[!]qWGY11lVeTլI$ ~"S^דԜ[Uuօ-ٹDVġj8C|>ӣ=}o|Xa;|Ca@ PPPC@$J p @ J)!Cjj p,q#H4 0`, '8 dJc[ 0`"$Sp:438 l3f phps.<- ,PbX+:q$ A*l_Oi3v l`%+Qa>[L'K cO@Qm߄Wo3÷TG?C8?>*e_)/ovaF屟=qhl_r:RS.l[eeDoF^1rwҿbx92YMø嘀xO_纰QWpEdk%{\ W+^IߴyueիRS/Xzev6;I_ԣO `@||:m"Hn1PS00nBt=4SAnVL>^n= -V~t;iwigE@Fؕ<10 y 3 15kAg/L!`Fw n>1aYA B]J?:“H+灼(UЖ:Ѩg΂Dc-x*հ^l=lJ 'Ҋi뗦3bsPobSw}&nO׶Yi!ĩRDmu{*੤6  ̭Hsϔx|x5!^Xv+ s6C\J\r aÞ ܜ c'kDz{9ch>Y^ `ֻg'n^4l^sh|ؽ -InFK[6߄簔hx1x\Ahӿ2vHa}pSDBl//4GH8|7; #y3;o4MnO,װ<;msxT8̉w '^N{±b^fb4nAk\YhMއ1Y d" |Դzgn Y@C.XwfX]B |Ea]xh-i LRAgpX61 LӒc3摢(a,I4<#Hԗ) " 3J+*XR kaxoMGCTǑ&\q8s/.$&*rxO6kYtt76B.x 'rZ)h $~AW40Uta $|U6l=mQIp.JjosBDž6ټ8†̘ 7Rb6ZOřb"lAl r`cOm0QʀEtablylt nrZggޟZWW=!~b:+|yӼJKH=?i[AX^/ *ٳ@w|^{g>ɲ7^L&z k7-> 8S '0虍<%񲬽6#cfa Q~93 ;%Y-}=c`,պ?%fgkx6&Ò9Mfr;3t#z[ ~V#qߔFpKA"H:+L|8n7=A]F4W zdL<݀n)[ki+qqs #_n3Kps뗧>ӕk݀<tq\~>XAyVyMQ{\42R,ԕ-/:; _G=#@9BZe0<{7ֆmq>efF=Cƅצ< cRgshk@*xFU| )5̮"CU\qj;:h"l 5T,4K* 2T Xh3Y PEUtC}" bYWJ XǗ]r6Xinׯ0 D&;;}Y&BpHVd&b5.7bv`mTb݈%*ϱ8'Ő+_!_Ko1,E =0Ut-RN۵N" )2]aVC$ +2]aU"gPL\T=#O6+ZQ}8knXh3Szjx6)B8IYJєIY0v,temRV=,temWY]G#UEIQA(=~Q)쟽LbPa-祤p@*\.fpf~9-VAgE p&,[$ )2])HVdW):)p1r(!rr(!rwqȡ,CCqȡ<9saRor)ĠR7 H t[>\+vM8MY0)p *2Yn:hîu)t\rٲ*]}@rD1#AmHiDJGHi)EXi$ӕd90+dwtGru$YG}:J&ݺEH `1$%v}ےk@rEduL7C̠zp7TdY.Oy뢉>/'!Ѕ0tuO;G q{xB m[XڀB%Y<yм-&'/ ?3?@ Al!1Z(! ކ[ ^acjWrwI ጱXXebh\13)"rcwUy=yp5"7vW'FU'rcwC|C?E6SÚ1h3};"<~?9!=xTA쓓A{k.}Vo *b:kcSMꔁ55>_(kP 5tF @k}dcj./HKukݺu>CQ]5u խs \SbLm8n=}I ׊ɰi"F)on3"ܭr+mlNS{6rb(̓2 7H±a;}җWҗ[w+}W;-VYP0+ȟ4>.M;E;E;E;el"Y1b&**H\WˁdaX<8/ߩ$, pTEEiyN|,=&>:SJy&7W*`߸"7WjJa7Ÿ̄Qd& I/8O*+ϩR1|Nʎx"nhTƒ9G(|Gq;dRC7>KLX2PJ7nRwiJ<2gD % dUC]D nPRFL7Q()#eϝg(X,-FȺ(~@C<7e2hKuYY?2= 4Je\/u;cP莫[OMIʼ`!?˜.yp(PCxoݰOELaP".Ge?A<$]]ƠD|>It% ~RP"]: п9h99bf"$%4eyΓQq %ʺ!.-nMR^gTMoh94xt8}_J LH]r{YF˲jeIKva3[d8AYBfVDKpReĠ%(bAi؟UṆpqpzDxwITJT]D([DbB*0(9I"?KE$<]0RbP".H]YDEDE,$e A8}TbrA25C(&ĠD\Bbk(s}Wnݖv] Hv+a m $!j QFMi51@"1[]oߙ޻fls3gΜoafDG=%PbE?v`PP|kZ,?SV_考64&J{ I`|3ͷsO͒K[0Nɺ]h;DI\+V9h;C7I.`GڨQSG($H[SOpttY:iSר7%uqſ~җ6JV)KXO'J }D "iA'źnߤ-JyҰG%Ş5zܺɭd_F=^Q#1pѓ@ѓs.78hhH @iJ :Җ%M=g}FrKFAq(̞x?`}>w/=f;R9.>շҍ~rr9h˙+!Ϯd?\9U{Ab>\9M|kso$msQ.DCN5!`Xs1*jx;D;~QjEIgI>; Dav(B_ĨJ ?rY2J/+t2ȹf7+t:JȹO\]_2As䄸j?WasA#WeB3l>{e:nСrtj!]మA_$k| z/ο6hR_Jf^ssh&3F)NA? 2}:]w^՟UIx$U)Mrb[ϛ}9%cR2r\F˾1+&|8!NM3e^LJ-.#S Pn 4ݯDӝt¨.tSSS\k@zmL_cg,EaFxX8&&Z^3ʙTf^; `} R;<[\8OEk߳R^UQ(UMeMUETUjjjߩ܊R,@Qʍv7H~$Ŷ wf6"F<^y*{̃<4c` b`՜aU+5Ϡ͟.!.A]`.AYv\[8 y`][-M QƘY]>RDs-A+8@W)__j yT ^`<1N0 E K&)d5ʁ@9g3,{[ofgar.{ra(_Tyswᯪᯊϔ ] ;KPp'ᚗrxدK(x.G ^ :\+3|>X0נ`'8PPW)__j  ߯ýy@j+e*FCNw ,@!e-׉/ vA@~5` r&..|b]r|&,V J/J*E X5nVpfzMkM@pyAU5&8<'S% .(3x kvk~y;gaM&\Maf`1 x}5+ M3JK"5ų([H!5ų(NAM, AM, AM, yYOPQ<0WI҄JSY6~#)q?b:51O蛅;~£ 1#FX U!*D)U!UTTZ"/tw)HXPW,AB$uE\ "/ԽJIݨI "`:N "/AJI`PH[Bo>$HLPW&AB$uY@&_\!&B] m)FWL);4HAAȸ"/~Y׶{*6v~- {S 7LVBWD2OeWMY8JZU=G 4Ԣ陪B爖a՛iѲP~E']U )Z~v"Eˎ2?G)jvhp= -yfJ|Ctm~̈7 r'LAH 1*@y"[.۞7`CWp'2 Ex'4"(FE'4g3<&*c6܁HHdc9Rr ߁ž_> _9̂G^x3b<"GO -6oa o-<..3xv"x<),q8xLKm.esiAKgKw7&؂^1RFPlLV/) &{ Lԇ}0'd:y0c0/8 d dxoUi: Ё n. d?B~@*7W*`sQBP+Q΀:zK3˕zf$6{(mfb,w[jo> 6[jq}|v6Q`3?qnA :㠃ώ9,W[/ҿ7Owy:<]Rt4y5h \E󐧻n軯۝KF9]gGzqyM,gቛ'yIqۨ<@26CDIIl1^m|WmO~C4s rEpy7G9ʶ}X>Àdm> V+(@ c쮀 _(x< TՕ/vU R+Plbumi5!ieD(j&f::ѣxVDqm{U9pKo<Drb}r<D@>@@!@@_b~T$  0`(q 0`h1'0$p*m!,4x &Lp:gp69Lh0`@#y|   0{0`\y.X*ƆLKc1Y,m2q4/dX'|'ߞ惧zN3d\HRs DX |u?@Hs@mq+#Cr?^[ƏqO7>>[-Yd~{rʹ&'.hnk6u4ΰ k6V9p$;Ѧksy* z[ܵ Ck>olx;-YKu,Xf}s˒S,n_^=R%,SeG@=^ en05T- u$PTKmEcI+hGyʟrր6fR+<o#AO%wGw=UՏ1y{-7K;AU*LjU]Icu bam{K 5!Fq|:жI0~I },{`.ѝ_M!Crn'>4a݊?b{;h=nmܱd[ilӐmkz/AD%RwB#X]c|C;dzM"cy2;z{]877ljSZ5ge5_tv"*$Ə]V¹%'-bOMML6uJd#Ջ(б۝ PπzxRqr:!7$Ѕ&Z6)LK܃j9b<a"DvXAm; n Lv~-a[8j(Nmw,iNW_%X@Kmbc7K}%rh݇Q.20p[-0JJue`t&ȵ^b (ʛ-0ӏH}Dί$F>L%F>Lme`t'%F>2zFb `摧w__]k/-=5[,^p\{cSrCۂn˵OoXeOnɏrb/^3"J[-^rBytYk<3?[S/?\{i:/}z˳*\{~–-^>ys{(sk/2~Ca=!Z1%|i.6tE3Ln .<̈́ {嶑,}Dqpq##.Q,m~DzynmgSo+7K+owC#Rmy+<S/$SNW1ePNT6k$|0XHi#k7E1ߍz2.ǃ#+wbqI 2rFBi"Ain~+p-g&ЩwNj( 47X]4j('|8y TvP5Z#x(%F;G:Xr >T^A+_?u9)1:Iɽ 0Uquw6&9H+t@vj:lIoHq  oiXA8q'‰k-$%ܚY4H`|E7 ,bU`^uU T sPrP]Mp6H_/=+W& {Nx9.8&.Zh6iK =ESF[&a)N$a9Bv5UXT-lWS5aM28 K٩I |9(~f-tN. RRwt5 c0ZFgEcW8@~V T$pLzm>ja*p8@s2`[1C=;PCe8!|9ԳCe8!8CYr(C{r#m}dK u+|'A(+S H84ab:aG7A:a@#ZYt#n:B?+-qlB~@RD6#$4}JҐиTЮSXM:saBGp֑ g8(`zL<2'%1vHIAj# WAυGX XMUCQC4ÅG=.e`5U9 r2{Ncy{Ԁ~B-.Bxkl1%tsZ$UdRC S#5Ё^H.hWS{P!YMUCQC,2}nO>B7|:# 53ca7K~r?y9O߆mQ KA:rbAjiZO <>e1 4|4=vxctac&yy~,LǷhgDӢYP (6΀lY }Pྞgu_uz@M > -BtYwDb!ŊdbAŒ*fE'Lc2yXAct@#ӆ92eDI35=s.FV"j:yYbJ%Cyy;JEC#P_ SFt!SA,3|2Qy%y$ O~13ul̃C-D˶ȍz@N<-A2hk)-SӜ@c`2AY'/rtե&8/oV8"$'2g_a sPCE=-rGf69=QPb8rDh;`>+rdrlj.mCNߦO9h99K빯yZBDk(<#Nq!Gt|6䌣M-,܃F%y9u">=ۭدo{Wqg^:~-8vP$N!( %!!qBCjEЂZ@P!>WWU"ZH)iDU;眙;{-ܹ瞹3 s͑1%͓:8mc|q˹Y}T= e|hGa |(sp|ࣸ[pM>K]$ eabA2c1&؄gaɘCs,KLmIs#cø{Ojc`l+hKkC?oΞRvUm`V&@\VSGqʮeE$e # EIurS7$2bܦەyDx{1pTOZ+ j'*3 i pȑnGhtqnW;͊-+p@I3ko[%%<+Cf:#ܿSjQoJNB)D/Ks4g/[|k`h K 鯝[U(pЊ8dU;aMI]f:fd#P&nߤЍXLmM FZ=f@Һ[JZ=ȞTXx70"G<~Ikj }Pq-Yeg!>S[oPTl#x~kP΋m{џG97~q{ߵ:]Fa+rYh΢Ϯ?$l=mkB>"l=4KYB l=< PS s%dǨov`;ç ɊJ S̀e> ֩CA{ 0Yvh{/zMid)?h,W7cMolJE+RCQңb(vT *GrT}PJJٙR(I߷*_n,R}5,R*8ȓ|) k=x_&6͗dʕ/X-Y/_T>R5f|)mb9MRyK)*g1yR ]*4 )m9ʛv%/eCB{S %t"d _I>%ߏ/%R˗"Exd^ΗG.7_ qJv}SRG"t(y'#2$%/_vqj[aR.9B(/q$e(u βJ4@aT,[D-El) PreR %(:\'@ΓBDgdy2āpD3dx2e<`LtO&:ޖ'Z˓BYϽ'b-G˶0$.ʑg,ڗua<㵅/fG!k<(x& ߷Z on hӘ &XP 5( &9 ]ۂ. hٙ$,(bm>P"Z]PkPpDtH(>,r>.RB 5%oH>)ߏ<,5(2A}' Կ#W_k} (o|L(`u@`.y 觔>RAѓ pa@PIdC"uAԑ<{A ` B` -YyDL4߆_ r^@|}@iQC3'p ʡ(_iv Xr(Xge`)ĚCB 6qM WhM,jf\l(1|kA5t5" ^r >%< XF@k,ʕ,~J4@dQgQ֎5cwezOއeQ_|Xe_CzXeNeQn_cwXeMreQ_tXe wˢp,ɘ w2ˢ݃E(s7^/܍7,2w]mò(swXz;l,ajd, |~BȄ'~޺R{ՐV#}c[Ol[lX|2j䑈ԀYjd|jdc tmKt4O52yăFX[2':L$lZFT~BKCE'yXjj$O[~w OlڡS %D)%RUZ S"y/|w)LXP,aJ$BE\q)G1jAjT-Q-X((չU? Ol{|]Z#Qq;HENkkqB![ ٮ˗^wNłSv^TĢY:'jdLtPO&<#(Ʉg%茠LxϸI&:<&˶NEd݁H*\})sJsu@t ߷nxq7ha#G l1-<(1x|Kǣ K )9XjHlF ~Z!~*j#1> = %s# XL6_t--+g[)wL]) Rd9) ۻ7Akq$hǡ(g6hA I "0..%KJ=XRҒҎf4sВҮ JifoPJJ btYKJr`ڲ-e@Q1YZ$샼0%>6҇Ť8Z?dBydD&sdtm X&+ft+jsu#ejs<6W X ݘȍkr,ZyW_#a#8b> Uc.?[ww;^̵xvw3ep/ivwh]h ¶#EM > L2SxD(wMɞUhf4"5ZocsB~=N݉}('ecHD#pdׇ'usIy;)t2/ؑq^:wz}~|<']9;Ov7=DJ\:W&%-DpK G> >"Q4r0fN`"1l$X^sU:swlɩ,mhO&jwn>{xj2'7:uNg߱wOCilLd 25˜QM>g~\s74w~ Dr!u䙟:.K~\G$!igIT^II!?o/uX%(x\ TՙoP(6EA_иl6h&a 4hE D$vQ`<#r23.6Mq=j%\QP}^ 8q<9W޽gP{)<aT0M|>ký*Z,۰@!0P( **. JJ@  t P9 @Ia@@U@@5@@u@@ÁF:8Q@R@c4x&t$@'SJMj 4 h:Щ@tЙ@g5 4h&,@s:[@-@@}h.@4 hBvE@ߕmbוfm(JNI=  ռSNfɘ\BZsJ]TXr,qP?@Tp oA+{_#emO}P_6~ٟӸ+Yr@^`D{>M W._|QWqŽ%ɩVvQk\h"%z3j⎎QŞӋpd%㜗c}ͻ?8bd}|s'ʺӂJ8o {ԫe5[a;ʪcRO[o?^aXz3U¢iH6Ө5y H/؃Z]!x8T0(1Yy=| Z>ӢbWsam{ai_\OgL;t$Wu^ԑ?a8lZږ--3sנۘ]+VwAEcU{3V\]1aGUqSwhټv+fX<p'tGIߧ+ZqI3an{Z=T%b74y2lYg&-jO/}.c˸RbMk22˛Seޔ'lB]R><H+R灼(Pwl'jPY.&(d]Pnk95xt9rldH1ҋ Pf`hRn˾; >^,xHo fw JA٦!1St\>9RtR}Dkn3A< |>9iqbDu||kw%5!bs8kC{lNp')1큾c>4Ws9ԁy/y\æ5O>f5wR1 G〽xEZcb#_}Uũ- SsXʉ8mS~vSL<*z~RH<t,SDOa[^ `忘Ia>,xI~>7y+ OȧNkXm}xTXǴ{OOBZS}Edz>e-r6h8ZSxLS&>rg6=GG.XvVPI8BK6 %0mLD̬8 ad? 4d oauHQuXb 5>"w"iNU~"MbmqԳ&\10?+>^m2ΜfKNd,ց 㸖DZQ M@B;Cnnv`z6(4$^SHB d.#Q10vha Y~E}Pе #xʠ>\.RrFSY zyq<צêb~XŃOǼ\t=H~dYJC]ab)IP/Vzu @9 sd2} ynzB *W/~ yѨɩP$ +>GPG'sFwM?ۧ|z\Ƶ~sJhńiV 0 |f0 zC. ®z9_Za@,ʷT|9ئ56VЇ_'_KƊ}lP>z c |e>z ws6ħlC]6+הG1¾eDw!  |3Ϧ}0 )q' 싵ԛ4*kօ,IPƱLR܊IBOk l&)UlIʮWTv3c'`礵P |{,,*e_B օ,bNOο+M"qU_iBv6U)G^9)[Φ*p\`Hcvȡq!Cyroq!C8C>9.&CR4ߕ*˩?Y?JZͻ{b&qnAV:L O7A;apC#6tqa_7qHHg%/gΖ%Po}SH(f~a-!q*!N)Jc6UYYi̦*qzw$YGru嬣diجDh rElWz( :!nT&$#g"n=9jD]U=;Yd3[36SsIϓÈǝHyCOK0ݷ[1:og81W#<՞=O5wX)QUMD .(vՒl̛P- lSe:*kwNxO3l;EJy9`{/Vs=cti iCDI;51q4$q_qmy%,7./ˆvEQi$ehYڎI^%{'[eY %j!| n./o}9Brod oZAb!YD9+6e#FPR8@F^n3K?aQ㍴@-E\ /-[CUԆƧЀ6_;`88I*%`-4ͷCJR=4Lmv=Es <߿j{hn5u&Q *)fc'gе MDmh9ؑ5fx3 :I;kNgZMIG゚daö #pJk[e>bb{}1][WhR F[")6qI'.-n=nOJdbݚyH l(k$>k$PX{ xf8k,$4eX{tmB"󤞵6kl#pS%kl#蠸HvmbAU?bw=/ϗ+Y퀿xU6{/ɡ-e,>z~?s92ms9ʭP/ĞCN5h!`غcT&4vΈvzEm|59ATuF{ &1Zv({/|Mid.ߧQR8@1*T_*ˣz,T_/GD-TrY~(WM_^rnq.Y__˯yuWdFRW+e2lߣ=J]~nU iUVhB bQ.?PA]~.6E58q.[C@4mq h'AvKΫSnF5bTL`TF5ȒR -H̼Q e Δ$/ Ŋ ζ`bMa/!jFq&t x2~7Iul:ڀMInc?t L$N4 =6hoS<1%b*/H#}'m(" PT[M(@Zlx.c"2رo5=Pl~V/ķ fɟ~ 0)|du}.ָ_0k62#Zw73t'h׀B3'f8Bٯ$X)+N~^Ȍ4On ."7lˍ 7}3FP#__ju掽,]1nWNZ*pG%aTqj\6N}P șAz%)M , dДiJG\@SB2H\)@SB-)yT"#@D!22QٌLT6#j;gF&* zcd"`F&*NedBk*7眅b 4"KbolBiS8PI9( @A},M egPyp@Jk BRB8V7\dAq8})7H(x6 ^:T+3|'( <6(  }=T#__ju _kO䁂w0k-ysvzdU`R BT hdB\TqLTH†"* W,{ ,vӑ@Ta!g-W/ nA@1愾5` r&)N|b?CbOmp+qR ,> ^Adɖcm+&K&x5Y (qMpN'KXym@uY윁5 `sM5k'k ^*}A/lpPz8)E!B8)E!~BjJ`Q@jJ`Q?jJ`Q"}|HQM , ;*KIQM , DJ`QH{饓6giJ`QjY֜)E1MQ֙4%(D?C ,J9K;;J`QY!1PBz4s(VDT\%Q=zD@<,*Q޼k*uPt/Uc._g/M u[쬠j9ϫZjŴk6&UoמjˤjHղ%QlS-GS]ӥZjy6j'fTvKTjF $uΘE 2G![ .g۞w^łR^T̡T:H#jeBLTP#eB3LTFP#3}@p 9w R<>X\;CpqA[WrƂCqضڐb6@ RڑR#nGJ)Hi-M&:RfKin[Jl)ߖҾG)Ƀ+aL edoPXoے&l]0 &cl!y*˖Lci* о n.bխ8 8 _QBPKQَZp=ɕzf%6{ `Jmnֻ-5Xb-^6N`/yA gqgG|ݭ6ww.;ZEhrwWep-CqrwCohO8kTwLQYr"E͠ ᯮVɧ0PPl*N-q| 0 E( X:18qzςn\Zè/s'Q9D>v{}zoQG}ʋ<4|iv֪?=E--dxw1YKܚ +>mqǙȩNku;sޱkg6~xִ{O3;W>tq|\+>n޿wȹA#}hq^j\\6.g fRd$u3/:˶;?!m|8> 0 l|a<Oق2-y={p(x< tTU/T*)IAV@¢(/ hGņ@`5Y֠=thQQi=6N+{F1.QGqף_ApC^έ}{}mh}Gxʩ""4 TB@WW)Pe?Ew<Db P P@_c((H PP PP PP 0`0c 0 P0`HQ0D p @`,8&p:gp6@$SLp?h8| f\Cfhh+Æ#Y}1A,b8 <  'Jڈ5Li`w+Qk>ZD% lqa1:>ϖ/?g}W-7G7{ʑ/O[^`Dc灆s.^xn[j9 R5/m#7KfymCG'Ǐŋc e88嘀m[{ۮ&ϋ{}X 8"x|Ѳ=΅Kkϋ*<мte-^n;R礆{1JQ􏄁{0 v% =-un45- c^_]O.N,vbidM4u0?r\K^.>Ƃ'͇n8ot]oy{0ѦҮ~jsXV8"=sИÌAe\/rh ,g|j |RyI`{[3je6bqmf&T AXUa$wc,=MiҲ,]ZҨ]?6+%#x>4~xq5yu?n_5y u=-^18k(C\0(q!:q (k4~; |fD8Saqpk}f:(`8Akjխڳ \SEiztKM^޶dy44\\Gؿa8y.ㆻy4P>nZ6\R_ûD "  l:m0w>֯OF r(t۶1%:Sn4hxB>Ķ»v|G ĞH}_.f]՘.zkz-2 w)|0"Y>E-l3`?P ^/C|kA͑a'%m#Mx<l['T;O&ۏi!]jxےZIiHL0ρEN4m.`!>_~njbJmv <ք!<pֆج_ n'%_x鉬5؇f\O(m U<^~ų~#Gc=rpܲt[ilPl䋿m4qNc}xK9v+iJ/isvB#/Y~N&c[d- Q6ƾX`㿚I#Txn 7)׆>8Uy OQLkXmmBčxTXǜxl?=]O5g;7s@l#u Z551<}(AD=$:9Nʃq ֤0ƋmaGiAF# !}3$EQ ίC Q48ɀCIsUQϪx r'딘6gN%rvjRK2C@߅wMq\̌x* S@rGm- Oe9-pɿْJLp h> D]WdB. PWշkwl ͯw,e~ '@67.GXhaU)1~_Po,^kAd^ 3v@5:t nd<Z]HPnwX߸oL -A8%`#`NwpP$3]8p p[vt֟<6bn WCW/CW䒅q _G^>mvᘮG>>up~|tSGrnga})P }݅1÷l*>=`R{, ً[Mdzmqy.ez\+ %3p5T3D=!dDC'OC`Bߺh+I o[s0(] 6k3X!p"WX("P,k>Cq(YpmwYѝ) O湝3YrbxnIA8b'z@{Hy@9 L?_ATkE<%0)j{&= H^v/@NK $q$|[ ,ƨ\{Ki.*uRa1F1O$OJ[QgctGN1i{'#Wg_%^IUH 'fX1yנ%p_$_EͰb {,W#3B?q|ec+1YC#g+O̡x\uNɚYYrrc_`>7_K sNY|U,~ᡟxOJh\1fgR"n=9Uܳj3{vW+gwhSd3ۭ6Ss)cPrwH ؋fOf$[ѽV7F Ίs1S8TN*Wj5Xj.&٘7ǡjRjn5Tv<`+X8uk]U.1.8n-}U5׉zX4OdDLz'qSLlLS{&TR( П &P?/8+?֓KOSO9ZJOSw'ߩSzJO9PgZ3~WzD'4>.w;E|">N^kjSsft89Pvu'Fu6\$(/]|>Bw*%ܡbJ|Hpټ'ߩO.ǥ/ק1>2svT\)/r_ +5`RMp'3)7 s󤦫'9T)>'LyeԒUNTR^{|dqNN7 |4/ILXQ2PJ͓{ ҈3ȫyN 2i7xb&(B"{̭ūL$ %剜$ % |L*p :';d]Fd >A<-7eT$9(N~8erhlLs.wlNA.;N56'&)*NMR~.sVPټ [KpCunY%+3un((N$ĠD|Xb JDAG'JķK{eݐsosCf|h99bz"ν$%4'cK)8Yn(]>_O 9hs ECӲɡIҌC^]J {[.J5>@,[n}җ#$M&|$2x0%A`͎prА2d L9&Id3LvD2t̮mLر&|IIǜP>x8c_1zƾLH]8r{IFɲj;"s{<%ÂGp2m Y'IAKP݅p<嫜|#!O8Ai8=@bwIH]D([HbB,dcP" ~D< H"JypĠD|]$1(}e8D<*)NOH J,!S3$Bo^KK JDYK/&$&;K3.00_Q#ȳx)Y9j'\ qd޵U>rj6I6MoӴMK&i ^J*Rf& ?t:20 "#:03)8 80 hv}|gܛ=wηgwCZZOԪB$Phƪ4"j{)I `|3ͷZKO͒k#NɺUhDM*$Il4@LOPj{KUu4,TP5JUUCj(U=GգzG X? } Om#[ϧcU$R)c-T5ϷRC{٪G{,CRXF< 1PGAVb1NjJshJ. +Aux Iw| (4sns~/`0 b<)M*"+d%_xC<Ŧ4tQvH^y|FߗDپwՑ/D: Gd^b?= sy'-ys-Gj&RKs%|E+ Coԗ8YҔ.!InM , t% 4%($¿t% 4%(dN:ߒ@+22QLT"#Da32ȁpfd7F&* fdx[F&* Yx{}Y*0N3t\xqg6;@9`mՅՇ`C$|yS]Mߟ^(6y`J "9)B@y(v)B, "6(t p@(XJ^(' ]K-(8 φ9@+@Bue/"l (7s@A:vQGP5\{"(Xkɛ`Ov Aޫ@pz Q* pQ@PI42Q!*H|F&*^@0;.` LG^[PyDͽZYw !7')gdMۘ7IqB4ylh[ɈK l@d(T/"kNRkӽ&\5&/\5CPdṷ J dks ?]šl|ͯ=Ϛ` ^$k > l^^gM21_y`xғAM , AM , "pPSB"pPSB!pPSBCrjJ`QH\^2giJ`Qj}=-)1Xh^zYXZsƩ5giJ`QLSnu,M ,J=%%P`Ύ1XFsvH9^; J@(U:k/UhATzcuB_'ۗrMꐎE0x *Pt/3c_/ԕ uByBݭPi/ʷ\EBPf/Wd:cQi(`Hz"yF uBx(o3_-jFŧMa0''4L~BB'j(KY~5rnHq6?F~B.[|8!h@ 9jdrjdBxڎcijdB8jF"cmZ*0߫Ff⸟p X3s S|yeV#`0H_Йg?sn 'ˌ9ג7oF'TȪTHVQ%Rk)N!Zݥ(%bBCD)4 rŧD_hx(%QI*TBD)4@  %JP@(QJ$ xRK-)"8R"i(/4IIC4EWI$QJ$ tO4}ZQ"3J R,|DPl%2)ʢD~U"Z7@Cƶз!%=z/rr⢑闰p(^Cw朗HGMyklRcCssJ{S4Sgu稖>[ljZjŴk6&Uoמj+jHղ%QlS-GS]ӥZjjm~̨k7 rL5"@Hk1eإ@e![ .Z^łR^T̡T:H#jeBLTP#eB3LTFP#3}@p9w R<>X\; CpqQxǗ?7LHGc b<؛"x D@#G{mQAyq rH KxcqQ%xZbˇN\ocLض͸sjܠ GL>r]'H^~cu2:sȾ3|Șx[<꽳۝k882rt|2׉ƹྱA)+}xq^l\\7.Q YdHyoge:˷;?,~+h![u]>l hCcyʳeh[zv{D(x< Uŕ{CoEQgwkZaFڰ1&J4D$vQq#r23.6MpףF\"c(=wzO]߻ֽnݪwvoSᎍwCʉ]1p* !LyݭݽX"ǰ~C8(@  P& JJ(*TTT  0 HH0` 88q@-0`"$Sp2)p:43fh8Lps>< ,hhX pV)VbXPJE A2jOUSG=lXxm3M.%Y 9v%B?_&V y>9By=}8#]]rܔjv[6eW.>h`XqueѪW,nMN^yirZ&,^+N ^+ZR\\Ok V-j[by늶U #~FrĀ'b}|NXCbw铑'l-y>@v _<VR#|)֊%bY+ſ!cӜ=5-V7鷨ݦvA% 6CHA Q$L 31g0.p sa_X4oCk$u+^F%(KB0,qj5JtA7*0\+ (^QP#aJuɺS' .XgOWg [}rZ[ʶVh\ ף5N_jusƤ #4 @5^N)׮矑"nGS1pd|ۤ(>9cbicCc =쵥z|`EB/*|}gx4B}HpӚvYo7I:;"̳ch]*rY/SKҨ{̂x)ˤͰ]m 7FV7R>U/^,ϟ~zqMm>{v@}Hk NW+<ǰ4_N#bhx|/w[(Tc蜐3!:i ^_1JZuRoH}t <ׄ! }ӡ~I s,{{ij {)g&lZ$GoZs(|lGV_G HNFx}yӅ-So}Tx>Y h~?h<P&u 4u$Rd ۔?V$7$R8:RXqlܷHΤS/9t)}o|$_%OE!o29GI<j|wڊ HcKlwnu\ J@m<ȕ0L @GM{lw:FC= }>HHKDgv^5ئ6+{FXЫ8,,XYM? `֒k冰y$.4ٽ:(L`91cd3n1{ިaςANj{OMs@J`DrGE[cH&ҴD4K P#>W]A{Jw_8FwZ\U6F.6&2zI~n(O5taUlM {D:NfAy\T{ S:"tg"lӌ) SWN*&n6 `#D?4Bdϫevv%::: yJ%"[Ae4o'.@B rQʄY\ =*YNEbޘzgjc^7Vu\r6B$ 8gL[8 6FI1O5]t*Bi&dI,kH36]n#c0Ub h#c0#cjfNNzc]]Sv<ܺlw<^?_ďV;tro]iӮg!={5Hhd'[`Z)t<<w<<ܲjU_:N1s;ʹhƅVxom\nyׅD+w=Ӱp3C ?Bvm]mY)&SC[o-K`U}|.{Y;Ҏ y{Ɣ0g"xg8(gښ!ą|߈e#5.LJCf7? ŵDz.nNHኲW쫷i*J}8O>fmZowKoO,m˳\gf_, PS$qin,Z$0UQ7 ,b]`䮩oET5]`z͛T-[ =fgpȑ  8H!Gzvȑ  8Hqr$CdqQCP}!GI(=,%~=Kw~ĠXv~y3;L5$Dn:#[@GI!g\oª>р@#Z릣Ytcn:F?$- [n?]@W| g 4$4n"uc$b,4VӅuj1׺c:>g'La,$Usuc>}I5$"qRÃw-FՀt5I 8#waUMWCs9$t%r.1ӎ0ՐL{Ui*!bSXUUpqVVU 'ñd8\c%5_DbP kuXc9#TC*2Kjli̟(!ԐKj%Ҹ jr%juՐs3}~O jES PZusC|RU$%8>N~[dm*NXYġܩ@ zhB!Bm[XA!"<+Ҽ-MԶhS[YY3bMLh3]YD (JY@iV (Ͱ&`g#J  }‹?7i(# C aZ$ΑjTi7+R==CT32u|{AS>"e>n!EIM3~ar)1l"$*|~!X\T }"6a宻mKD4ۀ-agjrwII䌱<2g0h/#wxyfr)' B9ĵp]CYY3 c`=/$is.Y|Q/~axK]yS|.,2"9j4ύb8Ş<`|&)2cwDf2K* ZdjĨjEfߖt~t̚13};$D4~ * }IinA{OVl>ͥx݃\IT?C17"کmLQ6%uz^1Ea_OfyVk (3RmN߼;å;TzzKo-û|7N˴|&lUoU JNTS,KS,KS,KSgY qa17*LTTX\V9P/\/7K,g8/ߩ0 /Ez;TqSI>J}8//*wꛥ2;˼,<ճUK*W*HgWBdJ\)&S0Lfbf,1|N 9a*× P+/pJt@#Ӗ9eD35=s:FV?C^9ju %?s3J[]hr>7CwhJ<2g2G@ 9dΟWCDkDR3DRW;QZZ؍?DnC,N{ytmmQE\:ᔖiiNQ<vY'(JAΣ3N=&7TU$RD 7tN3\G!ȥuu9#3A|qt GtvE G09sQX>65N5䈱F8b=䈳؏p9OFq)85//FqTԢ;hrh6940,rhJOC*#;R %"G~jQ#M.erh/m#>72 Q|t52֛ |Д2߹&2fJV0C۽'s(dfK-ڙj&>rq>Ը j -~s+DյKm̻pG撴eUE)UMZs " J2eM'UK j28n+)Iey Y]GI rZQQst}&rDJUqW!APF,iGtpADPb#ud3G?(k]_$1/KLTxY.Hڻຊ2Gn^ͣI4ަi&MRA-P-ZJhjiR AQFuFPgVs#&qrO&={߷=iNp$oNH HX-()fJ8УI0K/ xi^m7F ϊ--lfjU!bq?qXU(K4cUAb][oo=e󇄤xz0iətmz%zI-{} 'fdݬkjM-&n}QRN-Dۢk[$r%m(.'ft\"j-Ԫ'8:x:,δ֪9jMIm#nwϺ0Baۆ8%ږDA4Op1?A^_$m IJTEmVH yTRI]KC  Fix70w NmNΝ.eCic!.m,$ڥk[' ic icAeSl{~{?}og_GU,v%uXweaWdz2V2W_A]\=z X{s go mz S s21m9M5SnQjEMN4J>t;`~(^Ĩ _rY=|JQb‡]:حif:Tp؋ڢGV13F¥0t t:6mhb|sN8`ӥbnzz5] /35Hp  Ot"; HK>I^-bI: 'MYW R3[\8?5&h TP|(JeCQ>G(ca6bR&C{/'B—!!)UX< o=7yy xdT(bW/?F6!BՊrϙfE͵"~EdHiqX:άO CFB͈0'Z,Jk= 7a0؍&Ȉ(bF)##|ˈ/};fDP#[_juf"DN0UH/K<#(ԲSJ~1N + Wdd DF&*8fdBm'D332QAoLTD#Dʼn12QLTh-#V>60lagʸ0ɅXu h6;@`UU`M |yKU-ߟ](6Y`B "9.B@y!P@0f²3(<8P0@ k59BB}pmХo(̂p΋Jo.H(x.G ^ :*2| ml?Gپ Ց/:r7SY@JK[^U0 ?PUD#1? ADFCnw X/.@T`!e ׈/ nN@` r&.N|bC:YSp+)qB`([^$,9RX "kN0f{Mku@peC5s&7/ .*2Tk6 5,ks&x\Ⱦ&3@֒Fxm xm5~~9 k DjgQHCjgQDY?YYH8PQ<0gI҄9KS刻/vUI$iQ֋@!L9je{34Sg 稖aͶjZBrIjyڄT-]PMVIroeKUKS5Z>ThTK:fK|Ctev̨͖wk r7Lٵ"@H 1e@e![ .gw`CgtF&42ʄ E|F&4#(ʄfEF&4g(3<&Jc 6g܁HHDm1Rs ߁hťo> _>Gx3R<"EA#xD> '<7m%4ok OHؒ‡zĤ8![?L-ȂydH & e+LL0Y!=%\]~,7Ww9`|]nޑ*Ea3>wǸώ;,W o|rw K2"wG*Z5T8Bc@M{)jEUUTw F|l :X Z`ei2|/D@H׉.)Ǡsࣗy~Dp1k?O#sy&d[ؑiF! /p{}$90m)-a4u?vƄ݌+bmpLE5y7 ;Jm(ة&O8p&ij4؜&A]\cA4΅Od5.Y#7LbQS:ɢed&NJ7{?Qhߞ.bǰ ml;D[FCB@v ax*am?Ļur b :D a B" $%$Jt5#i4|%GLMFn2`lvobr%9'R&PKfBI?RLQSdUMODWtqvxhz4e]Oh+'04U hp ,8 X d p|&Interface between Runtime and Storageos IBM_User be[C:\Program Files\Microsoft Office\Templates\Presentation Designs\Contemporary Portrait.pot IBM_USERm F59_Microsoft PowerPointoso@y@Z08@ _J GSg  )'    """)))UUUMMMBBB999|PP3f333f3333f3ffffff3f̙3ff333f333333333f33333333f33f3ff3f3f3f3333f33̙33333f333333f3333f3ffffff3f33ff3f3f3f3fff3ffffffffff3ffff̙fff3fffff3fff333f3f3ff3ff33f̙̙3̙ff̙̙̙3f̙3f333f3333f3ffffff3f̙3f3f3f333f3333f3ffffff3f̙3f3ffffffffff!___wwwff4'A x(xKʦ """)))UUUMMMBBB999|PP3f3333f333ff3fffff3f3f̙f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙33333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffff3fffffff3f̙ffff3ff333f3ff33fff33f3ff̙3f3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3ffffffffff!___wwwzYzYzzzzzýzYz1YYYYYYYXzYYXYYYYzÚàzàzzYYzYzYYYYYYzYzYYYYYYYSYYY2YYY2YYY2YSYYYYYSYYY2YYY2YSY2Y2Y2Y2Y2YYY8YSYYYYYYYYYYYYYzYYYYYÚzzzzzzzzYzYzYYzYzYYYzYzzzYzYYzYzYzYzYzYzYYYzYzYzYzYXYYYYYYYYYYYXYYYXYYYXYRYRYXYXY1YXYYY7Y1Y1Y1Y1R1Y1Y1Y1Y8Y1YXYXYYYXYYzYzzzzzzzzzzzzYzYYzYYzYzYYzYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXY1YXY1YXY1YYYYYYYYYYzYzzYzXzzÚzYYzYzYzYzYzYYYYzYYYYXYYY7YYYXYYYXYYYYYYz՜.+,0X    On-screen ShowIBMf. :Arial Arial BlackTimes New RomanTahomaMonotype Sorts Courier NewSimSun Arial NarrowComic Sans MSCourierContemporary Portrait.potMicrosoft Excel WorksheetQuerying XML streams in DB2 Agenda MotivationSQL/XMLXPath XQuery (1/2) XQuery (2/2) XML StreamsTXP role in DB2 (1/3) TXP role in DB2 (2/3)TXP role in DB2 (3/3)TurboXPath (TXP)TXP Features (1/2) TXP Features (1/2)TXP ArchitectureTXP internals: evaluatorExecution example (1) Execution example (2)Execution example (3)Execution example (4) Execution example (4)Execution example (5)Execution example (6) Recursive execution example (1) Recursive execution example (2) Recursive execution example (3) Recursive execution example (4) Recursive execution example (5) Recursive execution example (6) Recursive execution example (7) Recursive execution example (8) Recursive execution example (9)!Recursive execution example (10)!Recursive execution example (11)!Recursive execution example (12)Predicate evaluationPredicate Pushdown,Tuple construction using buffer annotationsEvaluation (i)Evaluation (ii)Evaluation (iii)Evaluation (iv)Conclusions and Future WorkOther research areas$Automatic Taxonomy Generation (1/2)$Automatic Taxonomy Generation (2/2)  Fonts Used Design TemplateEmbedded OLE Servers Slide Titles. _㤘IBM_USERIBM_USER  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Root EntrydO)Pictures%Current UserSummaryInformation(dUPowerPoint Document(hȘDocumentSummaryInformation8