From 2c549b2678f0e1366fe6a9c2dc7a74899ddc6505 Mon Sep 17 00:00:00 2001 From: Robert Paskowitz Date: Wed, 25 Jan 2017 09:51:14 -0800 Subject: [PATCH 1/2] Fixes #1324 which occurs due to a collision in the datafn. In the example Jan 11 is at x = 0 while Jan 1 is at x = 10. Concatenating the two results in both being "Jan 110". --- src/plots/cartesian/axes.js | 2 +- test/image/mocks/tick-datafn.json | 46 +++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 test/image/mocks/tick-datafn.json diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index f93fbd660fa..747cfe3da61 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -1604,7 +1604,7 @@ axes.doTicks = function(gd, axid, skipTitle) { var axletter = axid.charAt(0), counterLetter = axes.counterLetter(axid), vals = axes.calcTicks(ax), - datafn = function(d) { return d.text + d.x + ax.mirror; }, + datafn = function(d) { return [d.text, d.x, ax.mirror].join('_'); }, tcls = axid + 'tick', gcls = axid + 'grid', zcls = axid + 'zl', diff --git a/test/image/mocks/tick-datafn.json b/test/image/mocks/tick-datafn.json new file mode 100644 index 00000000000..6bbff3354ab --- /dev/null +++ b/test/image/mocks/tick-datafn.json @@ -0,0 +1,46 @@ +{ + "data":[ + { + "x":[ + "Jan 11", + "Jan 10", + "Jan 9", + "Jan 8", + "Jan 7", + "Jan 6", + "Jan 5", + "Jan 4", + "Jan 3", + "Jan 2", + "Jan 1", + "Dec 31" + ], + "y":[ + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1, + 0, + 1, + 2, + 3 + ], + "type":"scatter" + } + ], + "layout":{ + "xaxis":{ + "ticks":"outside", + "tickcolor":"#000" + }, + "yaxis":{ + "ticks":"outside", + "tickcolor":"#000", + "gridwidth":0.1 + } + } +} From b21756630ae9e9a2de01176bc931c4f62bf4a513 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Tue, 31 Jan 2017 11:51:29 -0500 Subject: [PATCH 2/2] add tick-datafn baseline --- test/image/baselines/tick-datafn.png | Bin 0 -> 26786 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 test/image/baselines/tick-datafn.png diff --git a/test/image/baselines/tick-datafn.png b/test/image/baselines/tick-datafn.png new file mode 100644 index 0000000000000000000000000000000000000000..476fa13cedb590887f439770cbbe045b93dd7162 GIT binary patch literal 26786 zcmeFZXIxWDyFRR97evKEXRC+>14>nCDov@P0zxPvO-d5!Aqe(hp@=jA0TC&RA=Csy z0%8=9-U9@Jks=T}1ffi}-p!L4i7 ztl_zMLF4k8HS5T0)~uc0yb=7S+w52Onl*o|xu|jOD%xr!o~OXrD{^^XWyV&Ww+Ak7 zNnw7`SiZ!({*I?3C^;~_zlI7Qn09yj`+;@*R&uMeKoefNxsIQ4J}vs$gTE*GIR0j3 z8Jrc}JJ0uVeD4{Gh49}~ufgu)f!4XYR)pn~TU9|lM8ZrG1#{fS(zu_d>E{zNAp|a$B7+X(ZX<9cKTeB3qFtXeE zt>PBAyE<<53CSyEYB*qtCj`e$?w%woG*ZVqZrNjLAsMEG+at*2EvPyfL$Uh^nSRA% zvSb5~AGizG(TImwWnDP>x<%YeyNmLuW%@8$eocE_i?N65bI`8^r;<$HxC>*VdhvCG+@5d|1|`|9zI zfwfm0sK&{kT0>xAbP%|BU;6xXk7RFZ9P&lHl24`T!tlX;7PsyN3CbT+B+a!CIrdE| z-I0u2&XW{ua?<7rcd0vbMzJSDZU;Bs5_5u_1>1S4=Pon9fh)BdD+xqMGE51K8gQ<|n<5ybAFE0TF*O!a)w2~-Pz*O91{MhZoiX8$AeSRI)NT*BDiMI>%mcCVV24(l0 zJwf(juW z=c*lhTj8ikK7&(9P1#jZu<))TADW&i%n%t?hEi)Aye+2edS`C*^cb%F)Qg0QxTACe z0xox@6=>qyX!EJ1NL+wW_AJAXw%F-pu$eB`{9Pp3bzx>i(tm#XiO*S)+4Ds2aT~Y= zfr4S@6cvc>h!J3HzgWz~3fVQK>brM1rD>MUQpJAVvhyCJ%rXqzPyPDY<8mzQuyvbM zxn=%`rqjzqmg>E&9_2L8;};FexKX>zzs|5{Z0@(evYXS-QH1eaym^SeuS=pQ(hk)o zk@Th541_33^?pO|(t0PWq(dFhyr;gcnOpp!CcQ9PgxXtnE|fAru>KkvK*{#6?kckH zcrq5{#K+5n$-Gp0f}C{0JLCcL5#q@jEX`osOPRJ~Yk{^(xu_nrMORJEe19fgskzTm zJlCP-h5Gi>8l%MvNV9@lNfvjO*oE_$qPb{RFQZ)X>$wGX^tq*l${OCq{iLViTD*~` zgS9JPubrFM;iI~k3X}I-4|)*4_XL^XItbKWS3irX(_9OpSbM#^!#;hLk?vm)MdvNy z1ix*QCSPLA)%x`7sP$>ym?PCR%H2sJFIKuVo^X9$?Ig^%q$n+frAhJeTeSgwhmIZ? zfLh21XnYy>&bXKFLaQ__p4?M7)8S(O?c=>1w;rt+RewyLjyfY?cXRdy*S4I4GL%r2 zT=`gLON>?gL=6=ftEzR_ePARdp6h5ExWPv_CBH5KFMEPY-*2rp-w@iHSv308#Jb*k zi1nUl%&&XFJ-S6F@hNc>ZR`MZic~UJ(CCR*n8>o2X5T=M^!DJ^$i~^GZ7>&fg{%@a zI`%p>a>Z(O?Rnxmi;Hg8HBWXy2rF4QBs5;46wXT!o=3~06-Xd^5Lre&JZL^>*1T75;xuJYl|d)iI@r?~MV zNN#D@lVoqfj~qS3-!qS2ONC1|-mBxIjYk zrPRI=4P<)7w&!gq5cQ{k)ra{?esuD3(avI3aJ*Z@eI%m5`D$B7_91sa$OAsDxGbKB zCpw*b_Td`wG->{{W5|;Z;SUPj_&sKK#=Ps^z?Ggx0)ZcS>}OY{vrYl?TB7aNA?FqE zx!FkEK^ht9JBtt9oX#}vamltp!_td)^7X8t?^%~^E$rb-lhM3>VaMc05E&1Ma&GQSGxV;}D z(ul*4t21L6Sepm;vpPh(rS-F-E#c=IM)&W=ElAe`stJ^yR)Xrd!jj{Ogc?>wa15}Q* zDe;`3Zlk-eV+`T^XKsUIWJy{hlJjNAm~|tp`0QK8o>B-zMF$O>8ea@?o$EV#eS}Jm zJytPqE8}q>*l^$^R?PVs<40a=TZ+8P4;2=+lofdPAakcD_4W9`ZN{^@4{Q_s}HAp8{-;dd{Lm zyU@!2Hy~uJF3w;PyUd5<9<9MDZljzLg|iMAF=$Ewy*r!|loe($kXR)FOTbZz%J#;m zw$#Gbx}4*tOdP|Zu=RlGGa!L2nB7nE{zxFZ9$`K&+CG__pVvP6>y)R1XohhTa%6ILoY#sY@qM2x~jy;LEvCE|fV zCt*C^g0EB768hGYTi^@Bb7#0@$;Fc`3LO|BE0GHFLTlCVAzZ^t13{Im{c@sa*(;lk z+Hi`O6dcDB>gwe5IIhcXA&G8Belg5L7td=`+y>JBy%;ZL1?k^r);`Y)U;OrlLC;GA z7G%X9es73qXuO`h30ScL=Vo#<{gmki{m1G@yHtT57FB*1eFS!auDs_P58PWLl?Yz1 zogNB8Ie`fANi}?JZ8$Q+{>wqQ13JTAzN;je?%DZWcmw@ZMBCx@VDimRy&i`V4}OTQh=JASe3v z;Ph<8rtSVNneTqYAhd6Zaze~WN1$4gsnsEpu88(s@dAwVH~$(-)w90rRtw{;O2y&x zdQ@CX)=qv*5v%mtK3Pi;hNji|&(q3M;ru-4BOk+2m>JR#w&t|BrcBsU$4CYYuaQqR&0d=9#}!~9Q? zMDf#W))!q1t^VhwAIF+rdFxLJj};5Dx_t8X_!?k!Yh5Y-^QV~c;8Wj`@urUGd`jt! z|K;KR+^D0*t^O3wsUUCs>y@7eE03}NU$(g(Y_kc2Mqdp--~P`>7xReO(u`=!QIGA% z2eq@j-0Z)wg^S3wrUhyGII3wA}H2i{^t*Own58BR?!e4 z=E9y72Jm73<2E_lqvhkx{ujwZKjYKQkH9ZJ zV8RZSn6JtmT@a{uqyPXgvQ|{l$>~@_&&|vVfI-(F|JwcI~Jks(mM} z^A^16=Yaj5lI{Yt?V>W5=4V-PeqLxf`|0x?6;F+UBcIGKS_wHYAU0-feOfS8t7Jd% z{Y#DuP3rV$LC@QF?~eMAO2@GmpFrc@4BNv}&|cd;6Sa1-d7IK(z`j(Z9Tq+i9e*4B zl21UhbX@SB*F5zYW(8H6#DxZL2QiA!)_~+2Xr*3c!yC;U=ayqJCvCCAMPtQ2{U%{DX=N@S~JWDn+M^eY<1fnA%8+E_EvJ|+6X zI@7oKO6-qUrzJ2jH&I0(XHba$1pMdLmxy*ZAV%;vkXXZdCMphwRv?I75~h}3#`JD0 zkY>Lb;SLl_z>7)SpsC%Jbnjvb)1~Pxg|koe-RlFm?9L{t*thec_^->8oo`POY|tYz z-&dm!6BLD=Ftxu;iwI@f@9qT)DOT<=wP?unx9P}pa{o2=qpFC(&a`kU2Zwlq3fH-H znyv{GvMc*!+@Lm?@t7U?ne@=iN&&1lFfJGaA|Phv@wb2CUpSA&?TIh$-=7?={CYU? zc!nuH3V*v#GHmT=(_uA2J54flw#*VRi=SIq^_^cpz&vIAY_yZ5VOD<18$I+CmvTxp2~i9sFKG#t48zGfx0dqP|{+%+C$C*#jNR+wzB zK3%?&a;PYRu+ty1O#cC`T#d8fVMm@ajSG9<;c3Z7lLKj~1ND&Vn_c)1Y0y1pzOIEZ z!FLd(!X1MjSK_T5X%cO(PWxUBCH1M_npF1Ca0d#}TkY=lkhsp`tpMZ2n#p=v6}4v6 zd%6O+Y6x6_v)5ciFO)HuNot^4A=rZpZMq&|@m#D%4$zD@?_20XiBZXn#; zUPFbk2OY=Gqz-J$2j&$xa>X~X32U2dgsk_YLLr*88~63fJ`nY~KQm~4!` zIw1MvZ=B`+k-FrgJfvsL7S+>-<13 z=EQ+1&Fg5{gTpd+R~%328;Q1{<{zOj5dNoZ{2s-39ZP#B3Vn|<6)u(iJ8&*>Ucr@~ zJN?;d8z?-?eg4l>1KMfxT#6q%x4{+VL}47~q_QGtJCO7Si+*r9Ut#3e3=_Mre(dfw z%bn0n3IMrqK-0Iuu3Ag;Di#T~9RxvauqZJ10eKF|TqxjF?{}wzu&{8-gz8sqbzyiVX{BS9?b2&kZKy%b}(Kewp${U zJHNZ>=SD*dmW#;@2qI#1b=BFgQroF;{R24WKX44p z!fP#Ebs3c$pT8ep7sS**EC7(3=EdvNwger23dnGIiJs=^-n-SzGqjE@mH1^4`5DuN zqoWr9;`{f(fx{YnlnMps(N(r}uEBcv;*f%78Vk3^4>-%7kKCyFg%3psq2mkQ3Rfa% zAPv`0Syy*LY>Z-2{j}F-pFG#c>-0~1YuMdx88056^gez4)@;UUJ2k(Tn;D+Zm^|UL zAx1x6bC`v_1n>2?wab8gN>l{Y0M9|W6|`x$E3oc4h#xLF_6r%4renefWDNyi$=e0_ z`!%$T$b(QmvR*G{CC?9aML7L@7Q$pl=idAbDYN3M`aJxsSmvFxR=#Yu_c?7Ikt1sH zGo`l<%RKJYC-Pfy?L4u~iHj|5G?sbs+{lZb&rYUWj`HKQR~#1*(U|7p+)hB;w!H-^b0d3OrsuMxG_ zA7gOt4yIv~UGurQkss_-kT_F^TBicHnC#2u1fY^e5c>h(GU#x5B=Ztg=Rdrfr9>H= zTQ#u)xc=wmHE~GbPL55U@(WoFTqTW8k{>nP<-8?Lp^N@fGaLUFK3T1cuh>c5`1PP6 zB20}kNs{9h688`+*I2Hh_e0+-w1GqHEOx}lUQgQq;$DETT+u{J?gIam6e$!4K%5Ir zi;)Nxdq@vo`?KF^Diu<1z}tYdgY0dgl9Qjplm?lzb?uv-eh@<_l;kD1eg4H$GhK6f z>u=QRQe1f2;~_91WB0`nx6N3^jc+50J}Mk4;1Be*73z6`X_f-YH#oy_uIE|r*VL`% zF7a}PAan-ufx{sYwNWa^NHw)t8JqusSu$6s#n!GM>ZDg(^4`E`YhRe+>Pr;x(n}b4 zsSIC~Y~xZM1;Xv~AlwcEYF?4qVe0D3Vu3^8M)`ZXc(hI%H6SqFEg=sP^5+-*j;yO5 z#~v{2IkiG5{?!6NZ{vkONXEuhB;#St-S-;M82Dhl?*py<)q`)|{0mTPWtkc;KA);y z&1QJsx((lo0ii_=ZDkEhUM{lt?Z6uTD-_A%eB|dBpT~zbk6JCc%F*FNzx~g3*@CS` z6pru*za`}hXfCD?D5z$<_4}l7^yG}8?iy-bltp~#l!-VvwEGurh0PU_!Fpqm8ato? z927ZmFtCj~OZ_T}1T0*|fnX#;YnSvfQgHdv8mlaQ^UUB(Zo9a#|x=)L%% zPw=&6;~kr88pnqotIw`Hmxfdi73{)F%sVJ^_6x@IsGegK^26funXq8G)U3ZZO2#gG*2_ zFQGeEEytc9)h~Sz=K3$MBZTwtK9{E+G=#Q;FzGKqP#rSI(;&O1*mp{MH&zm{EWuPh*`D)$I)aUIF=)-!E@Qluq##IBuQT##yFW3T>gZT1HvRl zB`Qf{MVe&Z5#26y&{)v7-563BG)|(w{rr85m;UoZo2(E3rWFFblsY(e<3b7pYl=U1 zaYdq^WzfYax9fGuL_{5E|X~3imwzse^tSl*7ncs?%6XH+t5Dbj~9O#H=1GFd@ z0oh|ELJHPBHW!ekUmJ9=5s-1IJtnisD*|dac>}GR>eKq76-Y~(zOr7bzH(mIBR`;X z#Gj;Kk4FOv+fzIjJ}QVPhUgdojeBJ#6|$-rU&EO&OXi=@+$+k|(NCAfkq_dJ0YZ_a zCQ;!`{Xco1RT~R3MrqizPl22c<5N zIsOaYr{{XZPm%>t>tVb289_UWPAQLVxOS%+0CVsF0qf=RpSSy~!Hf zsJm}{c7CF-e?UY@{5)ZkW_h6GBBL$`ZI zjoUPj_s1jVj5Cn=4!$u=c3JBc$|J;2%TeWLjN^&Ri$D5e zT{6Sskfe(ce!z_?iz}t;31Ag%KPd?_BAF_`vbcKtJ<1-bn0>s-4k$Q8+0Bi*d}CrZ zP2#g-q^Dt9*)#C9-(iH-Zul8$;ctzaq5$e7vOKv|AsMbL@b!R+9V#5)1gKwVA{x2ceAPMJLY{v|@C&^K<8Whff%mx#97F5G4~ zGen0cv`xEvUX(RNJU_}eIm@LW?OGMg1!C_)+6jArpB-}@Y1<`0rKfC^qD)`*9nLO) zJDq=T=G;i(j|BI|i-*60VR zar4l#At(Yi3+Wjh!7*g0LW;RxXQoW}URYXA%z|pAIAK|;Q2$1t_}tocvgE$p=Y1s= z#UR%KDf@dc!YVh?wpMpXJDnOFgvehXg54Mdhv;s;tWQ*M)Zf>VjP#w*AX#`^l>zyJ9oapXNCXK$ewe{dG2}CI zg^CYfGU)RVCt@89QX)GD(5wSl8(?z&bqUxli!Nt~;fMr$kVsg&aTA1o^L&!oH4AB15&_b32I-|%$#GK`QY(0g7~rM;4-*M?wPxUHP##(1AEiZ9 zIQUK!d`%1!mtZiay&zIZXQhjJRdJ(m#*MOdP%!~O51?1` z5@v2SLCkd(9k3<%g9PBjR@T-J2^lbm{~^bP%HhsWncP($G+FVrn};H7wI2(1*T+H0 zU;Q!kK`TyR;?LPC;@-+{!XWkqQ4Qx!)>mG|m279d_hQBV2FWL0TXHXPUcJ93FfO$pHt>PU6xaYy zfxftmij$#nSmxPmM}n3t`Ak!WZ1F_}=u9ul2;Z>=c$Wa7)F67AA@T6H^+ zXknexodC)Nf!E{5fpD)(rv;Aenb6c@RXEzyWLG$UlHq)wEjeW72g0;|`k&3rj7Bzr zcy2`lhEnKqraeYPU?;xHm5U#`%hcC7et5x;quTY6K z3SW(Vn}L#Cl&LOu0DxM<5>i*lLU%90)&^+2>EO?aoegrO%O+XD1C#GrJb5><^1cp}Nwn3&I678e{J= z<=03a;2066*DX4A`S3Q;+m{o32lpt-?^oW?y_3U;u1Fu2$y4P8N_pl!-BCHFWaUq> z{5BgZe1K>uA~s`pFWCmo#Rc02fS4O-sxvb!R8{haKmLoQ{$}0MJ95B~3j=@$GUNbo z_fT0#-7{I0e`k32&$NC1XSGD+jx28B()>KWah=(IfD{3AB;(O4ejwl@zyJ7#wVhL?cKusi`UY&J{HT9T+d zzRA~yF6B#GyHFu3U3`GfK3UX(8(bJGZgquynO`IJ;_@_ z(wZg25_W1_JDs8C9hdL-YB@HP z>rk;eKcHc0FPJdJ?If$;Y`*7Zz~<9-{ji4y`veV^O1sba;n-E6JpWuN>kg`Lvbg~< zTS&yjC7eGQ`WfI>87p=+mV+cm20bW_83}2uu3Mqb6~5~8@1e%+xOTtm*=zdxXn2$5 z)Mpd@%vei#inBK=5u;axawoUYVxB1W83 zKahzi;3VGQ#am4RF-TCKG_MI#<)rDbsZSb zfb^03Q!aci4P*v$>UN;&ZtvNatlEwG&H*9^Z6~9 z{ay+;FHgDq4#(gcT%QvZn=?QuQrzONCw>|Yo6IpVKUSARzLuk49BFWLnD=y-}mtX7~8Qt}I zmRXk-T-%MZt%;5Km<;0Hxk+KjLi(|f?Q*(hgKoO?%qNJmEH@s!Lk0taPSLY^v6QDD z=yJ;EMX&G@+~&PNVNLF<&};mR+r9fIjtm)z@8X@5-o!DM0m4`!gmt{Nfiq|stm#@O z;VZe&Hg)Kks@1|N`jh8y^DXpIBNu|(0vL$ki`Vw#MyaH4I^~FarV+K@7M)wq`qd_v zT8)%zIq27f5bSwv9i~uY-QG%5N}ITF+G)Ce=$6drJ!Z}3tT?LQedNf1msp{RYreHl z*_-Z)u8hRsjS&ta2o#%Ob-IS-dy?#1qZjGc^8UiZj}MqU=d#_oQ5)LgkWKtnH4&;7 zjxZ+#9PiWdnQGVZS$*W;Uk8AgkX1B^-s_7(EVdEmYpQ}YGdip!+d1@u9$={%o^h??Q8FpIB7>&sq`~9(+8J|BFV{owOdLJE9Ef?vK%OnNPSk)PDYdZdfY<{NQCYGM?A)~tt0-PGlMQGC6sg7;Ee|L4 zh7nE;U?@=#*HE0U5@*5A=bgS~_Ov zghADToq}7iigFE#Js=`xcnWzbqLVX zx%=Dp0z)E~v{&=f)(u$N(+`h1B9X+6KlYJRljxJkw(IIJ@;~T)laMs;C20w)lS{l3 zYT_iBAu|&_ftA`7#Sd!DJvo}l2owev|#f{VH4`(NmO zwfBuR_(k*-Mzd_Z_1W#RDPa9q+czA@Lmk4S!MI09a}V&)6)T2#ou)@zK{;Fh*TFj% zu2k;9(sc5fj{8TnIy_3)F+R(f7|PFJvBwE*w_aO#^uPQ|OuWjY4{^WrvZJW2En3B) z=9|l3x}Zk5qk#=YIwAcw2xrL-%Pm5Lb6)k@mMz76l1ErMLznzu<^w^FWLmK$3$0l`RgnDKDffIO&z^p)|20HjE>(dY2lyzg+H+J%x2C}6_$go zw8+gGX~SnYm_{$Olcyj*E!h2t?tT znKFXteAU!xpbfPKindcLNHPfWD1)t}l%(WiXJ*)pRyoy~4`4(4MS&@I)2}2%Es^-G z=w#YKP--dK%=M}%&h6v)#tWE7JAiM_6wJ4BWhXK6UTd0spbJ}ezLG81sERhGpCGqv zPFeN=3fL;v+!!9*Ery%@Vx}mCH!G3CD(ad{`5wnACi=cRa}0`(;qoc(ywjtP>dIdW z#GPWxZ6|$x5#W^(Cuk*K+=bw0+9(&vu@^L@PR=q}$vxu`?ARe>M~%A zi|XnTOKn3cCjfwVbIq98X$>%(!q0h<8y*;{U_VP0do?ha9tb&sv}~?{h&Vc^9W@TF zMar+%j;IV2LFLzA!v*(rwFcq@yBg<7B#T5Tx@lbvoPs-?p_~9pXv;r*<`0K_UT|3R z?xGb#v5A_I^SBA9qP`o~7v=R`W$Pnv5OrLYW`Hga4P5gdK5CFSumifMrDF;L!VZU8Yfo-`$t%r+tCRufpcPP9 zQ{$_Qru1zi(NGz)!tBd(Oq_O?cVzrz?DMn$OKyDE(p5a*0AwbeMUfP?$y|F~fCRqe z7fIN?V!w?4yl4BJ8z^4FOf-~vC|dX_3l>qI=}}ff$;KTeabUweM5;V`>PV#b`KIzPz6O#o#xLv zekF_P8Yf>mc~AkhIHV%VjWXM46)5bX0nB-pM%R`x31f@eti#p#I7GCtpV)8n#Yz8$3M-4gPM?K zv#Hx@8IOxb^F&HB5Bk}_c@;!!pD;%xbW4_(#`@l8WWEqW7M$y^OYC;4%dJy|dyg?J zqm^xihqI`A3BHL;nElNWk2^2IfAvJi@AB?2+EmqfaV~DZBu{gk+iQu3xGk20Ge4=@ zpU2e+?1MtZ7B~?!xokztt4Qw#c+0D9FPi0>)LGCm5@i@L86H2gIOuKejd?gmngICO&%4 zyf7&oEM_;l6;E0ls-0I={UtIeMc%0GdmYZjjWoQ+#62fPTVamM6#aqO=nOF3t=b%IUW9?|XzOdJ}!MS~+F^K325%RW(xn zyG?@fb*}kiw}(IpX))4c{q>*UD0bASkuap1|L}#v?_=AETzr4IC$w)YAb$!3ZC4kv zRi8^24a>~6m8(jW3w!7xH++NmV#M2Cj+Nd-ggQ?Wj4O{8IsScujL)XczpZ#i_$mqu3V%0Y&tTKV*h-&r34j}kufF( zN~*1o1=NNxVO1?qFV$1Y%;#lgS}`YV&S&NhaOUn^nfox6?k2(jEiL<&hOQA;TYt22 zi+$Vbah7{0D`rMp)~Bjte%AujRR(F6JYn#oL9E(amdj~mIk35Ty%KE4D(EP-{IlGB zB%kIzzrT%EJR>h4?|d~guZKg6^@f)R!hK8uy_mp*?>|>^2DwsL;@H$L7xGopT6$%7 zQGenIscSSEWikTmEk;h?;%)xdKUt+JIu+Mp3`)R!s2Ou@S%6oMg z`|$`@+duRnvvzbSb*cACh)BcWr+5EloGL18w8ggxv6CC$uT@hHP=>-mmL}0{>}Br) zkX#UwAZ++S8TFTENfP39C$--mJgcj|f|o(;7IpEnYh zFE!Zq&*A~#`11n_>?vDOBv=j;)^|BNs1g6h%SBj8d0w8v#!v;zIKKx4>p<&I7dYk(Ed&o5LC2c-KdTecpp^LKvPP$C@rBh1Jf0dLl%^ zV*j(X=X)u(+@3Dy@(HqJP=Y9(yRT&8MmV3)_TBPDPO3+Y_=fY&+WmuUQVIgC8o@(h zh?0P%w}y$Hs4E#9^lb@*RnwObD6vyQU26!oC7Hzpb8G8(?W9ap%dh3sbl~BGThq5pOjcU`z0(}7i?1p$ z?#pA!AR$eFak-YA;k;C74k3piBz*0DmUzyMu+8C%Ny*w%tg^ls=(N0j54(GTqaO-# zFAQ8YQ!UgQhr9y}Px=+0Io8oHV?kdMr~(7Y`4#p}lg3@7d=k~w-0kW%*}a)hH!l4O zQ|~SNYWu+H-fFeLYLzU+y~+LFjwn%vj<}Zz{&)S%xAZ~%dCA+L$w|wl)Fc?`=Cfn`XEBJ9r(i&=6rt zR}D>?$28!&ETbcF_8{J)NsVb_0#F(rZzMH4&IvnZD(7$I3K-K?UN{}SpYuX|^dp?t zfA_*9c)@6v^8);IVn_GscfN(nGu5pF<*xH*zKi=)23ki)b*TihwW;>rH-<{1doJ^R ze{rMa0{}$LwzLkSSN1MKj#n`*?DI2Dsm18jd;Gy-P>Gn=1Q2MAGR0af5+W@OFB8t# zs(F>_G(_tRgf<})F+m`3l_d|lR~p#>W|?~HgYWJYbq;$A#xwdH${BB{5H>a^tmgh$ zuKZf^o-UIgvEHHLuJS&)(Rl=l-uIbz%vSRdr2yyi7MF*kBS90DWa$}^)f0Hp3$_px zH$Yn`Bwcbw_td+&(t$&JsGE47_a7@6(k4z6q_#^+!R1L)qkcUIjAM|96m5M#oK2a2zJKYB%mhh*Qr<9vQEMmX*vSkD%m z@W^T<#g!4J161$I<_1m(;hyOhIuL@OEP#BEOMXAnpKFRoO{I$*=Npi4=i5%Q}CY)BWaLkShwQg$@fOfHf;O z#cE7Da5{rFl$By7Wyv-LLzhjRF@VvnbyB_zy1SbDh6~GiojdSKwhgG>(Uv-`EiLvv zo^u7t2%ruL68w`9Ka_(uP~!rRzvX`b`3e27UjD%AXxp)>G z_vX@^o)%i)AdKGokQ!K7@(O*elDlQ}gfx5RP6FC0V7z`=(>0V|^_mF+ZIp*H1F4)j&uH3BuJGuqWUrAF*0$(kAh=~QP>dEG~Mfi zm#>Ksc|%2yDe8#|?bZ5rQ*>zLPq&ig9CH)T)9OsAebMDLT=ZRvAXNyR%lz^31eyId zk=eR7xPPv%7G`F%~H;b9A7wjSZ@9}k@)Hr*-E z8AbO76B&^xpQWkwrza5$8(v@M`@{v9CjC(tkv+e`KyX>XZ!nN!;YHzsm9m~tyH`$m zA}b|(ltH)Lt{=fTqS*yd z44TKX!Or$CEJKxuqwBBtzvGdyKVKZ6XRKO5rmY`oig&M~P7b%4c4UhXy4U!AYvgU; zEOn`woC_<_<3_!HOFPPqB^rFoO=yLO0Rq#dOj2x&6Xt<%76j_Xd#v4lBu_5wG1R)x zK%Euybt`u{kOLPi-yUkRlV9$2Xid$F{muzq8C4~NaZS_Z_dv`m2`7v_&76L|-|uU* z!JW|C-|C4D1?~&#Q`Ll?7ElN{(>~?3ksFV{ogWM)1);)9iU>9<7@6qjROEV_Y3Sbk znCs11q7%pS=0;Sx=s--7za|HxRuKsnqc-P1rj50IwWJhwA9&zR{aK~ z?+~lz3Z*657odbW2!G4?7Vvk^^43wQucD_7T{A3$K^i`S!E}^B&{yX_zu5upf`|KW z$SmG!N+eIS`!$JuOC%D6arq-W=Ct&)8a|Zsmj3Qs5t1cieXBqOSbJ#l)-woW6>Z1- zY%mw@c}^^5C^tXUSt3OSeEVTU{LuL#Q_JlSMe8HF^_B&Hp4{g{k+;=EkzZrJsC+s| ze*=)bFsSe1pZy#LxiM}YFYG1=#8LmqJ1TPA(L9dHd`;pS1?} z*RQm=`W765?gt2UeP)N2H-!qPR&b3JWNnP?8-+k~6#G39vjkvmGR}Io@`|=8B_I?O z+_aiEs7&1k%$YCVbgjXIZPYldIoTFn@TDihK^lzafY$YGN+C{5`gb*tzn{SMnS^38 zWILTfJ=Sl>`auB68R>G3%B%$#sSvNd*5KJzs4$J)gDx<3jPT|KBLOflkhDI!I0Xl~ zMhT~yhYsz@&m>}S9c8cS3)lG*}{^Dgt#9mLiRr>as`aMf#~ zNN}OVc=2(wS9*X%CPuL#muXG>P?dYAJ$(ywPXbMdZf9z`NP)Ohi>h_6_Uwc_Rc7cc zgcU{Ee|61^(%hAgxp}C-%{H{wR z*qE0HaH^m(95#=EdBFpC=4GDH(;Qg(+rP9*OvNXg=kWORFxs%i0b>(@_K_XHT>$(F zL}>$*_au3ahN}%Ra1J;Dnxnx50B=wCJ8!(0S*=3^ez}soz_{lBJt&)+te9rsmA=Jn zi?{zjTC9Xn=CajsAPT%u0q`|f*wt~Z>V)y+{LBHTW!BsNzDWo*6kx=p$z8R?D_oQ~ z&oU{8VETcK`(E1$i%-b!zvvJ?!U{&@WJvyEfRjDF-SRH%WPRgx?UlN202=1Gq|gVq znSK?43B5UI$SKTHcir!mA=?N-{|La}R;(tRpUtfmN4>6P2mAecyYR>^Zo2d0>};9B zAbXGh9biwn{UmpRO8h@YNUaML$6*_BA^LQFPpqOw2{L6Ev{lJv7*YOi0l(>Vq8gqa z7{}Z}KM!!Oto$pQhDfJ@3-X@UsLfyi7BJGIX$P|Yc~CZw*I8ufrh$G3xs?uc#*F#q zc3NBt!+eIdw=}}u#>HpWG-Mdi6tRX3P%2R4hb8eR5)YiyeGt52$3U|L5!vEeYu?xa zP<_OA8yUp+q$kqHa7eFI-?BHxZSC6`K>sqr4-l(QoI}{z1m4xrU657^7MmlegJ$x9-GBL&lKEjmt)~tU30Ar z1qo(#F*9hCYm=3uQ79FVQ6Gp0N`cM(ZDBzH9cleFP}B>?S&c)oO|>t)r-M#`O3-3^ z08J_$jZBjhmuWLgzrvRT*otc?*O3c9gMygs7)4Ok|B?v8LTb`go)O#{D#2Oj%Gg<6 zl$R%I_e+l5=FsphgaT5_-mSpIwp(_2n#oy;;-Y}j4k7&A-v@5&IDv8#Lt@n*i*&%( zViCj55{#WxAzriCV#X;Fga*U7=Se;0D1ZcfXSDq>_WV{<@)zF%fdo~fn*d=YJZX%( z>Bx;bV9_Ay-!sEDX+lsS%>JbO{+R7AhDU-CFI-q#7H$BYEi_+S+hjkHEMMfx0V#EP z@xk6xZ{YIp=e-G+tx;3Gm1@UX21NESIGv7x+>CVJ1_T06I^_s$WD2Ns4{dc_LBTnN zcr7ODP4$$%mU9)b@v~i4CBH2QX|?+K|9v(8=8g< zb{%nN1U-l~m8U>0(wVn7!NI3EH3e2Wd})H-yg`!QN~82wpUe(e+`HMDXfs(x=#am{ z_kQR1ZuOlX|5Pc1(wB8iCR9QX)fm*IZnD(TgYWi)l4WyyoBF$|BNF_czPTVe22yF9 zn^ESIPLN$It!ly4w0kFxp z3eLFPlXq23WQ7Jp+pk?l)vi#K81G*Iezn7puNt|eT$f^!25*L-Eo?DGCI z4NrJBJp~-+XWtHTjLZ-sq4~;i_H}Tf%)$?~WiwUwJ42|_>qt*oaJbSK`HHA-@6Nf# z=;8>aJu9VO7aj-3tu+5*t^@9k{^av$m&}NUzoy#~h}i9)fRxnox17SN=slroQZ(y3 z6brwR{D$sP1_iDPu577<5jzj?sx971;}*NKI03p4-;?aDcLre%@c$2AM4QP>NcU7>PU^>*jw%s@OgU!vEN$Rd!B?OUD> zPGC%qRB$bPjaJPou{|Mxa-}P2|iVa>X$#2avcwY{6I!rZF#OPS)fZ-s_^Xy zO1j|Ny3+uz>?2Rrveu*8bL?eo%YsN1I?p;p{f74gIQ2cWsHO2Hdjy8NT7^fDv(;y-7#ah6HL?VAQE+){EywF$4RdUPbz^ z8QH|SAPdh1O&RCrbc>5$FmG14SldmAVKjvZO3)I# zJln$8hx8kPs=|*4{<6@7cI&tcEi-cYXXx^C(BLUG4_|tkm7Q$_AZux^P1~y@9|G!V zaJ&p^poF32p#B3`=j=}{0R_9)L7i&Wb@y~kSztUXp{`x|occxHk-E9*G&NY_(y$}l z#0mZF-lpE6418@o5=bR*SK^E> z|B>Kl!1y&o)E?nc58Pe@bq+$s@nAg)7L=9SD!_$m7#aJl{D$NIZ0gA03Bq2^O;_Nu zG(fzp%n-OGE@*DGVvU3EfFcndQ#_|z80w=-&=YV)$mw#fgjub2R)L;?igEF-z+*H# zBs#{V@$xAMObLO`VW{0o9IWL$V7hLxouLG>;Q{E9`WjK%s+Fr@zk0U`G`C_0bS2bHXP4WQkD>KxLFxQJH@)=l{#@{D-Skc@Ki_nx=<|w?1ug?~638oG2Gd zT#zgPwZ!(Ipf<;~J*P9&c++NhkzDCsg3euF(74(_OZ?rj3J_V%ftxlCZ6{;_nRHr1 z$bua{OUZBHYUmb+Fu09RA6kCDz74Jy6TcDs;Kt)NKDLTk1KRUsPS|@tc>r?-H;M?} z1wY6H!M_06c}ehNM0*O~pW(pyJKqJDH~jPB+Ip@n^^Nsh;kAd1Ob>qv{IpUoK#kmezvBcQzA4>Eaz{|jk z0rONP;?ud`hvDn^-Q!n}+OOo>ODyZ?rP*$^iEK-e*C^|SA=8p$XA~^ch1k7km6LC>$lRdYOS@QL6s)6^B(Pww#{$%y%Uezj$_= zWx52CG$_&FHU_vYPKA29QS$vDMLBwCz;yB((h&sIJf4!2bS|@aeyF-9|9ZxQ#s#PU z)b~DhP5$gn0_Z#r89mhE>QppBpxc3a+G>@pBnfA-_F19N)vC;PULbZ@i{02(Lr6){ z+S&E zkJ?&t4{W(kkp?`68bRbuT?E9Jxep`-N^EKBD{hf{-SP9&zT&^qUb#PAq^d2dKlj)r zE&viB8LQHn?UtWCuRq%hd$CFE_ND3k7tU{Wv8LNz#eRcYo23ILo>fdsbe-Rq4Jx*+ z9BN+)#0bF7_hDzdmzTQj2kMiIPGUfRb#ImRFL%4P>2og}wyDg_P5sceE&loaS#n^u z>ha8i?@#}FB%3ECH|rShWioAJ-vP)d-~@-MB0h@{?d!&)43X|C>$ zXbW6E6i!42^IKyEQ`~PP=!xtHpyQ%L@`tcS6qza{JE| zRg&$_g;rwmAzqc~=jrDf+KE+CMS7UoQP>%-GfC@ptPJ*H$ErD*^4K+g8Ata!Lq(zo)L2v;KS!^H! zX+(7^{90SWVkYt6IMXVsvC*V3gf>C1)B zL;86*h%Pdv$?VJ$m)8U{etUDbPf!X<*VjW_DLj;UAg?AegHH@9w`pF$%W3X1 z@Ye_yM7NxkvSI-*QToyu3qs#22&QS2F`w|8kRSfkJT!PE<^>l%B3)UY?{SDtFZj#w zOoE5t@g0*v!DFlrVx^AoHh1|*!S8@kVLhSqo^6lL7L})afsfKx@VzX_kF)?b+qn|+ zTXBCvs0(QM@2b5nU%gMf+2810wif>tsoo9ZFJ_vE1ag{3~zFLv)pBuL|Y~btkmH9pR$PxPA$eGS^SvsXZwBd5RqXQxu zJfP5`1ZX0oZ(PT|36h6WM)%a%fn6XdSwU&r=yhdl!ZS#$d9U^NzwWOxjWr`xE5+mL z&8K4&7tIAMnnvD&ap-&(;tzM}j0I*bI2RkgrpS0FD@IBCaoMJ=xJ!| zkR|qc34L`!^Vbm>NDe5NyxIqCHMth~!D4{yR~kN4^?MwVn6s{C@Oo*DIgi-4sjDKz z0ZoWcePa_$C=t6eV_-&Mh@evZS+E7`S=U2d7f4FWDX zKU6q!v;)AmU9Ub_JcOi|(oQq+z-h}L z2_6#$-0H-iWtd4UE*BWL_}cE!d@3pxEw(c)rp$;FM>t_CitrUuaP^)B81xnjCztF~ z!LE`ZiT&wuF{ujNaYVrdDVeu4N?j(vZ40FtV`Z!(Qq`vm#nM(8nWe9-zsFZ*UoM7& zAmsBtCF?K0_oG=$E)7F;=`b<$7AvIA6GZbEAaj!EhCA)vf)-r9_-b+tBT#xP)Gl&Y zv(~<`A7I391gr<-mR?h9gnoonDi{vD{$M;XT!pYoN8aY<7W9+29=O#a_+4%yby4y& z!&lM~lCaG!C-lZguoi(1`z#ho73>QhWZ`YB!_BH)9Ba8HkzOAdS*D7__L9m1I%*&z z)i^NXewI1tRDE_#8aZu>mwaaQRi!AFMKzf|lHGT|-*LRmca7kgdLIWj1=M??+8_jU zT@Za-71U5}rI&d9exUU+mK1QRfX)U0VDMFOCWS$#5P_ zl6JA-sbB#qh)N{|dtTHgF?sLBedY*hYvp|Bs#UrkYK;IOiHWQR65mA_otn9$I->LZQ7XAMWUIag! z%H`qXPNmj|egZ*DH<~qsDNt3re@n>tuVW5=N{v0<$f^=BSqE0`UJp*P=2&%VsC~$M zpW?f*b>)VyW{n1&jlxtSCM0?4agb)(;uO!TPNk|8wE|L|ZX&z(Kz%B_g=Xhqa`QXI zPa>EuGkl#Kimb;zClK@$zS&r%doE62igf}h@Oy_>usTvQ~ z%QKem%yT|4wLy|w7lA`rFhLXs;ytfL6)(>`C1%cDh|OEcLdhA{xTiN)LArveT4hiX z=Ztmsr5jEo{011^q2#?dd#CCe+K)XqIsTD0sE;+N55TnO2}jxN=f#$*W0*fK2dwx_ zLshI-IH~eo%Ha>u;N3OG!+uc>Ob@1E!`kE>HVwpk-S}#~ zVSpwXJc_-}(9kS0Fp_t8l!h-{+usN*7DE3aa+QJOsWOXSIJmDEqIo;pE@-#9PWh$LKQkfz1J4CwQb;X~OsZT7(yIuD zy*s#`fs1dkVDXEf6plyqhqi3<(|ooIkc<>+U_rwueD59;K{f+xS@ZWOx`KksY~I6J6d-NE7BU?@_eT1sJMXzJxnrKt>Vs3B~mZq(&gKL8*ER^e7b8CBa#AYL#n z24(WJZ95yEZtT=hdwezV6mADd$S1tKmz%Qr`a>_Ulr|=KP%En*P!yFeoB600&WR2F z31gN~@!>O^w7(V^{?8&c!ICinEOb9*H!oxAm@d1HEY8(p^>COg{5#);o?cWiR} zlaJ1i+HEf P9$Mw?;qT6Ni@5wRORbXa literal 0 HcmV?d00001