From da2457d295adf2fddd538b698d35658c5f1b067d Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Thu, 28 Apr 2016 12:54:56 -0400 Subject: [PATCH 1/3] Add some kwarg normalization to plot()/fill(). --- lib/matplotlib/axes/_axes.py | 30 +++++++++++++++--- .../test_cycles/property_collision_fill.png | Bin 0 -> 24923 bytes .../test_cycles/property_collision_plot.png | Bin 0 -> 30456 bytes lib/matplotlib/tests/test_cycles.py | 24 ++++++++++++++ 4 files changed, 49 insertions(+), 5 deletions(-) create mode 100644 lib/matplotlib/tests/baseline_images/test_cycles/property_collision_fill.png create mode 100644 lib/matplotlib/tests/baseline_images/test_cycles/property_collision_plot.png diff --git a/lib/matplotlib/axes/_axes.py b/lib/matplotlib/axes/_axes.py index ab054599008a..e65d374fa126 100644 --- a/lib/matplotlib/axes/_axes.py +++ b/lib/matplotlib/axes/_axes.py @@ -1415,11 +1415,18 @@ def plot(self, *args, **kwargs): self.cla() lines = [] - # Convert "c" alias to "color" immediately, to avoid - # confusion farther on. - c = kwargs.pop('c', None) - if c is not None: - kwargs['color'] = c + kwargs = cbook.normalize_kwargs(kwargs, + { + 'color': ['c'], + 'linewidth': ['lw'], + 'linestyle': ['ls'], + 'facecolor': ['fc'], + 'edgecolor': ['ec'], + 'markerfacecolor': ['mfc'], + 'markeredgecolor': ['mec'], + 'markeredgewidth': ['mew'], + 'markersize': ['ms'], + }) for line in self._get_lines(*args, **kwargs): self.add_line(line) @@ -4537,6 +4544,19 @@ def fill(self, *args, **kwargs): if not self._hold: self.cla() + kwargs = cbook.normalize_kwargs(kwargs, + { + 'color': ['c'], + 'linewidth': ['lw'], + 'linestyle': ['ls'], + 'facecolor': ['fc'], + 'edgecolor': ['ec'], + 'markerfacecolor': ['mfc'], + 'markeredgecolor': ['mec'], + 'markeredgewidth': ['mew'], + 'markersize': ['ms'], + }) + patches = [] for poly in self._get_patches_for_fill(*args, **kwargs): self.add_patch(poly) diff --git a/lib/matplotlib/tests/baseline_images/test_cycles/property_collision_fill.png b/lib/matplotlib/tests/baseline_images/test_cycles/property_collision_fill.png new file mode 100644 index 0000000000000000000000000000000000000000..850373af30da2d2bf581162cf0448ca93f1f98b7 GIT binary patch literal 24923 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 VKXu|!15gs;?BHhq$NB3&{|~mWa_s;B literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_cycles/property_collision_plot.png b/lib/matplotlib/tests/baseline_images/test_cycles/property_collision_plot.png new file mode 100644 index 0000000000000000000000000000000000000000..2c962c843f64d35ddc8ff2b0e8e475aa062dc1ea GIT binary patch literal 30456 zcmeFZXH-*L7d1>%upn4~D>Z_G^s97`B1M{jA~hIL5Ru+{7qB6{sWeNF8hR)RO%S6X zE%Xi|y(IJw-#+o)`}jQX{r8o<@qgbRodgs$H~aZXw}t} zb;-ymVPs?!Ml?skpS;!&Lxhksb(SZN_XdXNRzaMi_Gj=5-qq`6NPo5>8X-!53 zBU4wtuIH7qFl_CW&|P`BY<5QRRXyy}6ZPkhUWl<#bQuZs!7rB;l?9r=z2AQPYaU}` zc97DMl(&sdFnAV9;l)vHhA=o1bxZI)(&&1I-os;8=+D4D)5lI9{*aSOCTmN);GHJx zC*Rwh>z2CyLp;dpa05PHW5J4ZrUFYMV}G`eg?^HCgpg5yA9W&B^w6(q7lNQ4#FOOE zKMS&=fkD4sQz9b=KgP~e&_KVo(JMedyq^5OkN#iUCfYqAGVv9b@gE<#2&T7YMW^^ zsiNue*>`xh`3nuRyZU(sI;*z?-o>8;(szKpJK`>D5gQ@gPZDIUO{`NPVEFMvDq z#g}w-cXa8!U{TMd*@FTOb>_Xm^g*W$8rTKo)Ij%Sl39K}0=sipYvxhM`y=vEaYPX* z2Kl%<%Ocqk>A38z*C{X3zh%E)w9>sRKzp7OWpvt)qj$26Evg+lRqET@y5$a^8gMF1 z-iA6z&LHq-u(_6W;q{pdi+$rY(_dIJm`sUz$Y(0hDOBj<6Hav`N#?I zx3@p!XuOfUjTwJ3Hf~W*WxYN(FizOB71by;Ggb&;0A6r<(s^A$ySRiD3(U)5UI9embp-J35x(JCUO$mDEI6znngTz$AH%OHPR^^_^#4!kf zPljH?#eCFB%C8pp+WJH8uFtN0y=vAN=_&4Kmg+G}>%q&u`|Bt^7PX38RGNVWfzQD5 z>;^8b&-2(1&(-i;YRtczk?Cv5)OzyQQp6bri+d_R)#KKCHCe>z^m7rW{Gh0N|{`WRQ^41W?;z00m~BEo&wL&xcG~cQySI2(1mGv zVBoGa#<>RS2<%Zhj`QcmyHkj#*-4;BBh}rFkLT4Lt-%LVF71AaD3OA($@mzuw9@@r zkM4``j0;Lg2L7QNQ_CiRJ|)S&Xsan0W4%Jcg4lJ?@#M3C);vgX=i8r%ky|mVfB_| zUlWcwM$%2klI;f<^eiTBY|4K7h7T9kfDSLy93AOFh>a_gq)1Y2OWP0%C7zZdJqS@x zKS9*_y;}pVuKM%cnqy~?-MJZM_SLzx>rtemLA-f8CO*#MQ@xh?`?bAQ-P(Y(gd=pn zmh{|x9=Tv=-NwEtYi$i4L#!K%851OJ>RVH(NKxCwu3SUn-^cX9uVcFY@%LjY>iSXC zr}W&}34}e7n)J%n&6^o*i?H4$yJ@G`kX6@sxf;M#g@0YOb#hXD7)wpZ;lE=Pj;L34 zBL&RcRy_mw?$CnW?AOzq{&C#u{DvC#173zKij<^{xyAFZ2UYO|>4wwxEzH@0f!T%a z{yIJwbf1>`a=uU~JL!gFDc~{uF>Z@!06~TK@g|O^d9L-gb+)KmR;k_V-Lz0D z>kYdTupng!g6gFDO4a9jbp|lq{yG{j5S1D_o8WqKzpj@j0DpjT4GD|-e$%?)Xg&3> zV5vKwofZ8hGT|s)VkEolep;WA^_<>pf+5lXRfVD({}rTLidc_+yQuZ~;mwPe)GI4> z2_qxjVZ;W~avsCc8gm0;URz(k7G_U{()pbx#k_Vd2L9%%%G{u#v{Rk`Xoa&lHPS*A zMDW&+St&Btun5MfG{18f|7R-92`>?$M`Zw5E*Z51U)+O;O}Do zT8;ebw5F^N6&;7MF&;}eBj@BGNq+451TM-joKesQHTm=BWgZ?}<_iGINPgk+a@G@! z6@=&EaqNM2F{|3V++VN*d$GyMxkE!kaNCTG3_1O?Qs#hx>eek?1H_6jIj8m>4Ri3o7%0-jS84kmbpGKw0E+W)Q zpVD>FLR+A4E+;3JTRYyN;yNF%^QgrA$E7~#t}>J-`a<#YQGlDUrgIGHQc{cpLl?O< zYIjo+EfjNSpo0N>k@p)6moQ?pv%!APe1Z@x=<=8(KF@d~lFMl856O1Lu_YveMGbw)@$wzd@KV(qo=PBrhO=1?Nr640KydYholTSiW`a+O)hT>2TMP7DA(Y3r70~ z4277l$+Xn89#`ZQ>BM4!n19`_=wU=xZLOZsObw6hFnr-7(#w#^iIcQpp;EtLu=q`% zdBJ+>y+-ITDg41NnDFFOLZYDSXk0X`CC#3kipWCRlAHGbg2D8^Fu1<`y-JU?gwfX5 z@A2YxFh5u+Y5nzTDq*4?d7@s0Zfi5Mo1edE+{x4^sNzK1OxpX`F^xm#P~lY{y7{4R zo*AKrhgZF+1x+5JaQO$64`3(r;FsJNnXmahc+jWkT2HNbp0toqeM8MVAJzPKHKk;(Yn(6Nx z38R;zUn1eJT=xIZ=_FqdBjK;yWxiM!7XhOR^_%f&fu?i4Z6(D)KB^GX5c@Fhx*lbv zR#CfYrJ}Y)$#3Qmh#)3X8W}r{i+R`*>$85GUG6AtakS!=!bQ@C)=^qo;-8(y|7cwD z{V|d8S|p?6L&mE=2sV^eB>2j*GAT0(A8tt=-gKLR0k}PX9_-uJub^MQEUYs(A`2d( z69->7BS%k5dWiM6#rT2ghgO=ZkrjkwQFVBwu1zP1Z!&ojWqBLPa88Z#sG4mrhG5;V z3$M7<^nEQ~2zHKiKIYori0K|4=-z*~o3`c#o+9=K0-=!g>ou}Dv0CrA%?{XxJdL{F zfGi*7_JjF2Q-El3O4HEHc&C(M**vs)@uFIZl?fU7d(zn$yY_EHfj)<{FHVtv5e3zU zA4~63j#Fk`hqh8ulYs%>SA-w?gzxx}IeM0bUn`ZbdgVn|PD1(my8y{Z02-tEp}(Le zB@BVJE5q%qFZssCB8To~dpZ*46!!;e5X=(V@S=KxMm-1Vom)NX=F7J29UGs>$+gRo z8t1yoD#IEJ)O^qN^mc)Vl=L_(enh(3@z` zEGbe&4({a?lP+v&sV?IIXr&gKF2nHdxUq2-PbAm=!6rWR7+ME|@l2X(Dd~*f^E;di zKbH~&GDOOk{|<*JHDZS<-m{i}*hLfOC+aBF^5zoC#0uiIWYBAQyyB8+s9+XY3 zkhK1CayBDrL5Z*4(7RF;fY*A#;BG22+Z9JO7 zHIE3C^dqK$2xgHl0i(8eU7iCTD8{O=Pojtl_`jJ9VBEC_DqA$3M~>ii0{IZ02$us_^Oof1Up@pD>^3bm0hQOD#&9QU`lSZwHL}i|5M)WsgW%_?d=S zYQ*EPs8Z3{>P;Gs@de_2>pid8|seyue9*yhvM0 zzf9WD(A~+YsUA4Lpde~Ouu0XVJYBwh=6vbk|_R-qYJ!xznoy+a#){942Uz*SIv* zvg9l67QM29e0dU_^Wp5g_<(i(+3~0LHL4LDdv)yTnaC|e777RoU_S&AHfQtcI6Ou> zGowl$#dLj)0JL|hYCTcZ<-uZ5e|{<`Oc<|8wH#-=rbrEnmRtxrM!YNlP4q4Sw6z&zdIOAJk4V3C@;73HGpu8;~go%(#QNOmz#Ssp(b1f8+K1B4Gg?jZ6aaI z-i}HRL|>4EV&<8oZI9aiu4Y)+k}tk<(T0&gQQwB+Fo_GQJ(Mj>e03Q_d&GIJ#>Q;} z=2lX1qwx7RW9d**SjyAU^5Fv|HKLh1WzZ>3o`*8re|>t;cqx~xwh!O=P!g?11WG=f!c ze*~a((DQV)0b&*O9v+0Ur#M2@#IJmu;Ip}rFO-tr@HB&(qjWsDyE}M2egCGdxe$Gz5SKuj7rxG+x+DM z@h(}2g#;DeLI`TT=3HN7x#sth#j4j0gw6eF?OB|B88?O4_=nqESm|;*x2 zv!qbIRXXN2|8QPjzSn26n)3kfkT5yz-ja>6OZh2C~fwH zlI=FWyPVH@@pbpmsP>KRY4OepTeDm?x#Hpl zOgEb+z1(|J-Mf_!ga=XeosKAE?3qpfv)pQqRrh&dGziD43;yf5c;P@^HkpUEsnW)E z-<#tG$~V#1wq6b$BO~+E*Lx6h#IV3)H15@9*~6-q7YZ{2|S;7 zOOz0~97}ee&s&^(-dUiNn8*#n9_4ZRO-^oxReHh_R)HJv+0=ym6oP7Tu$%;> z5vS=o1;w|R{hYnOq=;%{Uvi4WFw%46Sl*~#iR@Jl@tZFujcI+U{M>h-AT1}y{MX1w$UcVSFj|Iv~&azeEzG+|HvO)dW%E6`&&5t z;cj3sF(w)&yYdXt$mutB6Jjh1)j4^kxzZ9Nm)YbNewRfWUISF>;8QFy*p})g;(k|fF^qz-7`GUZrkokm->S4 zW0UT}Vw@fxta8YVOFHxUcYfUXx>q&`$c$6XmIVN^xz8W9fF^+dg=Bdw1|%d4_dlpy z+nT_aTH}i>g4YA~7f`CWNbodYNm}u=eFvxYXPViW+ncfg%l60VAYkea6E5>XYh97Q zB5CRtgFs^rd=BRnfBv8a&o603;%DOhLxO(4DhT1)n_D!O!ooIod$68h7aG+!hq(N= zE`UPpDO89#X?qY7i%T**N1T7jIs;GdhCZ3InJuqPSgJPU<2{zQIdebmd+mN81=q35X^G3GaO(TIPSsrHUEBH@Dod>J3_?x@|b)do-pX_)> zPEp19wcF;fZf`!i0SAx@#{rU=##WFgDNk7a9J{_-w=-b7Yo}CPjLzr)K%6(EhAW zFglcKmZ`RIljGPiu)8x~?y~^N%I3h&_bsb{-vdi^LXGAY%@JIbX6;Ub+x8^7L6tCq zr{++jyQZ)eR7+Y?roO3zBPf6W1~1WoDv}%{S?xIzb0ac-Bv8I^BSTod_5i)snZDv1 z+O7bBYGz-V7H0Xztl6QzfWTGc8sK^R;#$NCb)&SkwQgt!M)*v2FC=Awl|JHN6gwiv)!} zo>l_nZYObwtt!O3umbMr+jd&O?X3 z(Bhfm@AcNAMqAeHQpa^ocXZ4B%1zT`WiwD4AiY&=#wYYYS0$aox7Wcb9DIAdp1S^gpdUHeGm3~CR2Ke;i!wPe{4Fkn zOBKNDZknjosZ^Ze>Ga-K4u~N=Q;6i!N_Vg~0s0!m*+w}1w(jry%r^07EKh(WQ-5Od zqD?nnJvAp2>7W1k^ptw}knXN@+qW}k7FagkDOKm5_*kma~}5HjUzn(O_FDqQI6Y&EMu1-z^A|PKf-j?#y1|kdoNI& zf{7hKnfMvEv3q?>K@<`)>8JSkkVO_5pF%P|sOr@6h#S0-*7w=A%-{0Ley<30JPpmb zgO#MZ9a;$p@KG@n6Z^SzM3Tr!V*ya1zaK9{0M(sFtcz>LNHusG{OF-j1iO6$rLEh- zW!e4GwF!=01I95K=xEa1$u;QL&$;(^dDbBC_Spwjl>SA1Pe^kn+04 zd{xy28QEDtT~3W*u6hLkzYqHI6-Fq4@@0z**OPBitqJ=YK9w)gr#MYl}^ z1+LpqwR`*6(S)higql4|aBk|40U!^eUz^L_=&OR-L~UuHO{6(Rsi4z5#syTRw#465r7U?|q@zIwuN~DE57@-k!R_+gaBTPny1`@?GWT$BGJ|lS zK?XRBv>)hurOSzHVL^*(?ge+GMbtK-#zfi)R(R0jIKZ{K<~FK9$;s{rju%l4(p0OL zzkt3R{vv2=)vNk%6P0G)*dpI4QI3D`cJ&QkZ3{dj7qs&QqF?NnFGn9e8QqibKH6EF zQR?(A9>TefpEI{1o&Fn-;K`n?S)B~C{THwKf()Td*Ht2Bi#*uRs8`&Sot^a%)(5Ljh1{+K;ju%@6f!%kFHf7YM;fjlCeBACmaBSv=et7}3 zwzBAaH{n~mpXeyYx#ULjEB%S&#P<<%NKn1b8T_<<8nY{J9!KN%PugByI>Na=BhNIR$)piNY>grH) zDf+_qHL|@g5G|Yo%C2}hkh;HqFQvl)>B@a3x`j}&(ljt`vE?*75tWhb!0AW!jsz5J zS$|cYWe%E|XIX3!uS~sFY`U8UcQ{{9^woW77ETISWy!`2^b}OoVWcjbtn7XRF=I&@*K>Ivl6VFfN(7`~+io`vM4L zGs&?%2yP^)0g(e_m6EQH0VXl=rGLVz=6Qk4;nq`8oA^?1*Lx_03^t&Kf-IZfMbM!IZkUW4iLr+b7RML@%fW$V&f_<`}Wo)&TB0SXFl#IFO(xx4%m{KaAB} zodT^$=<_<)gIks>$0#1F`a^lc>B&@Exwat#!;&vhwU3-YPPKr3ajgGZ4Ct+`O(h4T zr&<Be0a( z6&G9Mz0YTLEiLc)*OB@9jpV0-&$~!Qu8kgQfCHw&)ZeY%B@dmb>vsQwi=6%Q1)3IL z`r2x~TuK5Ot!6J`+6?iG6{K-uG*VMIftmQc@6KKYIhj+DU!_)?5a`f!0x9FcF+=e= z#p}VTFhS!pM&VIOOO>i1DNp&5O@F8w%7-^Ls+%2L%}fX&J$-BrpKXDRJ)8&%-M+Lf zFUPqTdSG!PZECe!VQw?G?o}HKo7C>P0G|KgvS7l-VjQ#BkNe)2AZFdO@S zL0V*XUTHrYoxC05na$o9HK4vd=1h_%0OZsCIDw#?gm`!uL4>%Faz@p)*+i3tw2EXo zf22w{Qrx~Ommd$5KH00IrM!hbzofnc$=mh)(k`F#35_@tRsMsMVI0MrWUw4Pg8}#S zg@u0r7+1+BRF-Q$df)+yxi13@c~Nq)4plL9k&-fvjUG0}y5@Av!j+-&O5-m;d8g3z zuZSG;*%`@XS{PmaO9S+MFj9>L2lg5e*4_b$VdfD7FL-r9S;VPiM!DlBhBuL!CgH>J z=Kx+_G%4#-+J}^vzvV!S&dgvDv~7~xT2_3@cVe9ylr@z_K?eLDy@YM!cEFw&|IV%~ zVe=DVAM?KIE})9D%eck+P7$CH-CO&SjjuIjLhW$BU>{LE!6qt`Q=)O&ttT<`#?o)KN_zD9JBU zMR3TQ3c^dX(1~$zA5v0S)A=ZZh{aCtM9q~KU!Ub^{$7g1qu}0#h8MGPV$=K$Foyv$ z_j7=-DC(IHX@fwDxDB_tPqb$sU^sJp~_w)ap9zpj0}r}2A8VFd@pqmygV_@PZzWOFd%KqTt%fvyWHC~ z+uo!$S4zUqR3;E25uEk;h>e-;&vZB*O^sMa;WF|NNmtcKP{ZD9pv=vsoR{By9TtVW zII5xaYHRJzu4{b!xd9$_;!yys^cx2&Oh6)>ts~!*1?&_!CLo)JVTCK}>|~O?*I1ft z@Oraw`Mg2z-3c>$8oI&q!EX<+9&SqDWrL5G0YS^Ub764%9@7h4M2SHaEsKw#NyT7g z=VRQ;WH9Vo_4s_p{Q%+4@jXcOov zQSuHbuWi^`BdaRB^lN~ric0W$J|Y9utV_cH+ur3C-s0meIxmgDY$0gtPea?b@_Rc+ zGf}PD2RyjsZd)Kp-8>K@#n@}ki1QYAT7u6mj@T0(3sprMU?k=D=8urk;}eCGKsjCG z><*GaSdKvQ4bh>AbD#pWal&u z%xfnz`i+JjE8~$HNygOovpDw6e(6C4qqS3kbqe|YCQ$xpa&n3dFtOE(V+1A=^Q3oq z@dBB`YQ1i=Df|5S2Kz<+W-O*&|Ngt`Rii4&!k)LmVdd&^$d6jkGf%Fz*&n@Wm**Zk zA;>UC2|crJ52_@wfJb{o&KUj%xJb0t^Yfkb5caOO{!0#ZJEm0kPD%HAFfHv*e`->X zivA2M?&vV6wrCq%MV#LHXHA*xj*SG4KJ>{mVKTywQOrK)L7F%eIaUPk@1jy2N*+?t zc|8ROjEML>3naJ8`iS-_K9+L%{P9&=iuLA}?T}vyC@^)C#X%CFFZL{O+bZnBi19op zLQROVTtSlsHr#)=caEzH*9r`KB%?J^9U0*u^w&}eTLz4ZUnALcRl?j~+V-{*Z0J!? z0v!E0+3)_AOLb^-ZOJ|=b9-uJI3IyuEH@#`j)}fU_nlBP7!WZtDcRGJgMnkV%(HKE z0R$|CxY{*CV{5t(f$O#SG(uTJwgP~>J0c2Q?vP4vNUzLafEm+r1-dEW{83|8r&{nFlX{9Odt z>nzVmu9jE#d-JsyzPlBJUUX)9BD2Isewov_F)e0p}G(3S~q93ErEONtVBBBmn@(|Azr3T2S zK8tetFm`dVEsW{RHG0!6Lq@Wpro}zrG+qa>zd2Qyy#ys=>PXEN}DK^l< zIB;V1H450P*gx=GnDJDp>xXuHuCYE0wEcCxD|ger-<%C&f~-Zk{CD@(3pVm6$qeJ?t6XZE_IhJ4>GXxhF;jDmzEKOYJph6xN_5->M!^176rK z1y>60A6BIB>KuAwG|3DMNmfu{_{$ zjbJnJ6>t3Z8>f$FlNZ{blIZ!ClP6F(f-QGHiCwq~UErS}DLKb9?WqzZ5Ahrk15<}j z6P~rMq`uTa1v(UL(cLyV|n8k+0I&z%L4*|F={ zDkmOOJ4uUfQj%2waK?2=4AEcnyZH)+GS%9OUT}6Etr0()!R;q%&)4$mLiHy5I9Kdq zzr|u4i)i6kOv-|%iozpE19pP{$65Oqj4SG^gwdW#kw$M!?4|F0W=|J6ym(bA5}|V~ z;I7T6>0J9K!i%7G$W)VJJ}k{EGg#B%9+&tKm{uXfvue-#e4gGhlWn>k9 zX6GlCIiSrlk!qj}HKC)|hW7h#LK45w-}5P_81Fw?7c73a(E1L+=7dVRKliYI`Px%? zs-7P|78U`o~^&M@rT!#hJhx$(*KzwBe3HH%SG2JgGO z#ZOF*_%0SXM>zU7OPl&H+5$qhRFKLMl58NgbZduWp+iLtjQ8s!fgBXrsj#$ z>mRjxZfv5;DQpEz1{UJR8@6v;!?Q}l7DpX3jj8C~LOB!G1YADlL!6MwH`CJ*h&7PO zckZ|t5UxR^aDUElW31u}aK^07iW||#e0ZxM?WTqS#V7TxUhvfP8GQU101oK7KHYqC zQFbl5+WwhAK@DF73(w-vc_VN>t(Wf3`i`y^2z6Db%78>(&WI^ZI64Q}J>TED9xQq< zsMG_so0ce;5q2Wu`%UQ9z8h+uLl*>17>#WE+CL_b`WAF$#RQ_?ElEbUI07Yd$ufdv z7jc@tA6kGVgzC8GXE8d7e;bYY<5}e)XNp$Z-Cdi3%^IGT*Glu_YR-EVYu|V_=37(k zgJ3~BI5RP_XJ;ZUIx7f(&!<3qe#%gJzPxU}caUo}aG$@>V?4}5-+ruaX6b-|7pRY* zEp8i@oxPVvVG2-H;T$L@pPWMZC(JxJc1)b|0i?Vfzm$;yWEYS6amnEI7_JOejs)N~ z1`Y3s*fTQQwnML;P6nkz%O028s)H}|+_aZV{fEoHt9M3T(zNp$tMLzB2Q7hzK7R8i z;7wze`>n(aGN1^dKR#n{itIF`%nyPN#Dj+#EaJ*mTU$TR&SK_~DJcqDk3eI5Mg5lr z#i5No*}3y=@R6vW4{G@-U=XIA24XU>U}Cj@a*G@I{50yP$1t!p1p5hfr0LuoSSOg zd(PP$#ONYzYd&W0sH3aNs5qt<0X6}!G_vRHmg&?FPsEo>?0Y7u^RH2$O8^C`X4zt$meJ6H9Wz<1Ehny zyM;#Kb!W>4k^BX~SmjXNee~oh_U}*ooNmGSfTke=*S)idI#uha@Ds8zDH`35ad-I3 z$JJ8#wP__^s8%wP_V(U(8;V~yqEys+D?#+S1`p3-n0~Wuv2AZo_U09-PjUF4GqN2u_1UqW<&l5B7kJSH&P7~1rk&5Bv1@)dkZW&kfnq|&j1tF!AvF&xC&^4GY0Hj=+_Z?krwYJmavO4 zE)o0%@oC;SfWN&!oXYd(v+CtXeeENjPSQu}Xh${4f};5NQT`4d9-x0=9b4*R`QT|3 zoqT+LM5i&V`ua4V&7@&G6^7V^9J z4h9n-@x7|dB?H|vTq9f9Q&|H1glqeRT|=fJF#8eLT)TFOSE?TXL?{<%a|AtQ#lf3Q zeeJ=*?Oq{dUUU%wIXqIxaquU-+>eRHoPKH!;9iNCP)qkSH$>Sy^eVNR_0%V;X8>ya zSPWj*dghjO|J6;|W5+h8?n60YMOQx|)!}9eaE!1T9kzNRfeT6q;m1##2{O_Vx^LPa znTgrt3T$I$m&nF~wUUtm`$&`tkf)G+3At+icGdSoL|u^ko)O54z)=ani(Tkx?1~H4 zhJlGEUN0Zc#9}? zl*z6kiw(aZ8aEliyj%!ul|WHckOdP6OI4lutd-9rK$A@wL#X-6(l;gP@!l23wlVeL z3xi?b%_zsf!P!XE1 zTT0l+4B3e4`j(AF55?a6)O~6NCo#f%b90;Y8IlbDHd4<}v-6`m5QciAhJc%lt^j17 zd~xAC1b+m(p#2E2F!gHhv^Xx1%hA2w*Cz$chE)krY$}e{A)Jd!18es&&J%UK<1t(Z z-RB^!@D?>tPU1R$NjU!)HmaP)f5fq-e!ij22bTS_3Q%g$9|eBN ze3R9xQ20XiHu9avnv$HS=T#*}wA z`eAzCv>$o5orY?BC&s@tAZrg&L*O|yvfC&IX#0evM zz~krIFRTnmQBDH}l`6CNBH^O{tmcL#y&_aYwkqf+pnFrr1-HP2lbz1RA)fr4;^&jK zTPkBF%Ib67%{{`kL$w1?8yAgFSXkpdbC5zlJ+ZYskXg)Rb~Aj|2`Jt{!ngj%9EW{I zwY|OZYH!$+(iUZ+*_o*+G5USjx&XMJ{7YC^Y-YgOx@$K$FF3EKdiE@BxD{Uyv71tX5{v-{km<^90{;ceXZ;C&v!Z!} zn6+1OtX+P6Ha#!Lf@jdaF<$j zJ-S;YYcO-a`d5UfakGY(1;JD%%x3rvoyjvfeSPtBg;Q&2C2F8-2ihv`gKSfG4AdWt z*njGexU0Z?er~5vkxB&|3pe#dU-r>MnQHvWy|2Q5^I=MeaMq7cycyok*f1?}< zU+V=U>!x!oJz+cg#@6;q7Usy-)P~)*vrZp3mT3JdJ98KePkvw{r&7@4|FCfZr5OnX>(qX#Vt>4)K;24I|~3)8TBvuX>I^m z#XhKN1|Is}6TEU8I6s(0o;Z%p50aFqehauX{6Z|q(S+9*PxPfqUlBN)380hSofVgF zGVGb|j&K(7t5{p>9QT!|{nd;p!r7FcX>Cmm*tgC0_dT=;KN=PWru!*BVRQpa>!o$oEQd18-Xpb{3fJ|nw6A3o97 zurh%|X}RJe!JF%1!^LM2V1U@{8Wd!S!E zulv0bQB(w?#qeNVIQeT$fd9QkU_s?cj}O==A?{fncmJhf$(w*(*Nsmw#@@vh#dWr( zZf{aUg{#8nf$Bl_yS1y4yJ^Ua*!(VRIY6g`hNt#I-|p!2|A}S(rzsI`^z@YR{8T8_ zh$rkStK_}In1vTpmPy+tbnk&~te^}A_nN*P+mr9SS(N zVvzqWPZ5U{^bh;KcI?1heQPSzgl*9C(V!vsoxFgf&;J!e0<#?cJ8;jp<8 zm=f2_>eYKbBK6(V=_b>B-$tB~$UoiAy#t5`1(KTa`(&VArF#x&|FVkxeH@ z0}QW&gHa21>X-wdXm38AcG{V8$yL{pychtJJG1HXZe~1DxuX87)L$*N(ebbLoa8@8v?<$5*aw z5U566VXWZcLQyL&zRgAVf_KyY&Up>f$qK+CD-^$k;V0UEyy(7YQzD1)+ywjWvXhPh_v9T1{OLiajE|N;}qk7DZ>PQvjvq28A6k{z1suDDnQ)bnKz@fZF$rG9M@O0 zasT{uCQ_MCpp@U>nt-ZgR$iWe_1cecYsp~ZmqUI^dJj|oZuaCPs8Z_IgcpBSRFmA= zbDix_&A_q8MY5g9v$E_ri2?*5S5Vh)x|>PcAFzx{d&kFs)#Kl$FtJPOT0`oE$}>U=CQ5`818jJjP++8wIqu8R2c^P4Y> z*q==kh9bOuqu)x`I(r{uEb@fn$>V<}PEgxg^-|%^Dfd!W#xwpi7JsWZAF(e)O~b3A zB5vgLtCjNibbF6CuR#1#)gAb+Zpx9YZ*eHgKU*Uv`oyXyaEohM#v(wW(4LfJjJ9Qd z1V&s@@NJW`HGcqipV=!vAZWe;b4H5~by9Zxi$T#gizm*I-9gx=qL#42MElH(h+lT| zw#Tk_NbT-gZT0cAYl=Gh3A9JtSa;i0n2ek6!rnk{UH}&}^}XnnK|;dPE|`v6x}}xu zV>nppbLgKuTjYR%upsYFuV8s!-JdDdFOK^np=55bCB+%fD$57zynPu#A#I?JAH3wm z06Y&xLN=#o1HEzD5HBfJjX1uKdkswL=T={fEV8sSON}gjAKR^8VpfX`z|6w zHrZ${fd*kPC8IR6#FQ+x6DJ7X=n~6t_rL*YKol5HLAw$fzjMzw4KT(mieu*yAHc*C zkke#Fmr;3z9%Dg(vR3b2@Pg_2?PU9VbM}AZen%+@p+Gb+gd+YnMR{C}jRz9Pw0W-( zm?9Dk>QV#hvsUa9)S)Q>j&wHZ2OLW@>_iiHG-6*SVCcYeccb+C(N-z|P-sTZ>a3_!5ejY!UDv4>?wtFg?6ICoRHjgMH{5r*OrMYd z2VeRSZg(LxI&`7=`{pKYcXRP(;xXfgH6^kf(?9>HS-rICeCF!t=H{v?_`V7--1*7E z;)~HDuHOn5h|;*`%$gi=hQ=uKZAyw!0Zn#Je(S(P%`#W-wT?ZLqenx?s1$D6kJvFy zEhYQveAFuG$}7G~=;<~S6Dtc@Z8jSSD|x_l`2^Fz*ysBCzI@>rH#arV&z+u}975c% zTNvfId8DOH=OyE)!uzpa>7Z9mteWNUvOHJAtbC!WTbSvzt;INkq(M~igXdaTJOFv^ zVcz05dpa%FaM8nQMvIlHi_HaV7q zlnY9Era$&pt4$08{a2p5eY=F`IH12K4hGe25=tMP_FUS{DeLj5b8)#W@U(nj5cO!zd?Vh1bzfJt&2?LC!D~tMPv^fDL2Xr)ih9^; zUZg%{GzY&<9!y=;*?zCY!cT6{KKa_~VevX!Dj3fAhP$Q ztgRC}NBDT#x0VEUAGJ3UZQ%8F zueO=oE44Kw_QmriI;=-Hes(}C=VJzhjz2whiKy@sSYw8B{p48Y)Z57~ibD$m2qbE2 zFkQ2Q(0XmYDld2F-ImzR1Kh>(+t1gATt8U=MGVZA7$PjwKVV-RPoBSOP8Cee35FCG z2koix(~yHyL&Ln9k1R$J%KVU+u!e7Sy@GiorU@_CZfe_fK&aw7F6{qcN)+np`{P=` z&TJ1lyj4ne5Z$~&P>m`JSGrd?Ft9KcCKCtznY^dxwVbFyeewn(6i{h+gS+k^% zTb|(&SRy#IYvH59z?6?N9p3fUOd4=dtorE`xRVXSSv>hOD2?{lG7bD%5&Lg3($qYAazA`+UUje^2OTMdcLwN1Qb%QE4jwi%C5Q{q zC31H5JX~e?5)r;`6MY$|!aJ~ZV3&@4OQ~=O;*ch{=r(4C6NnY{=|JuRWrch63-=fo z*u7P?{F(voVrA4E1Y_1X%#+8Q@E53u3OdHfSv@EtrOs9c_ih@NkAtum<9 z$a!k{XouQVk91mEgNc{~%XPM*kqpJXoa~}Er*K859-TZwMLOvR+0_WBg*p*A(uO_o z$<27S&ej3EZM+NV{*2c=);gfMip*3-tb1dK($lC@6>& zAT_9aT(}Cf&Yk)3Ho(4m3X&dvCpsWx`@w|9!d38nA0fEnVmr)sx8dOMpdP3xT9*Hi zOR1wAmWmYPaPmBXi$v3r5zl}N*^daM`g=^zjv=&?A7&d{T7t*QjXVW_d@$Jh5e>Wi zqUd~ALesDpsNt&iJ3dTUtz7$|WRhI!n(4o^YP=fkb)Nn>Obom@-tW!=!#4d_lbzUG z!%&FIPZod?Aw2t?KI?tg_hhvm6yF_*;Lx$+qyi}pdp~yZlx`b2 zEDdZm?;P+CWWW_(ArK>@S3JVDxe8 zx;@nL1h^Xmh2_#k?Tl;)G!)Q@R5%V;A23kP#_80j-!XW|YuNeGyFC9^Bo|<8v~+HS zpBm!L6T#GWWvV&W4rO||U>K$1XQYRXE30i?d(T7p6CZAzb|X_e2`=@bzwpzO6XIfF z^3&f%>|c20c`yM(y-=mH&-Ub4(a>G+%{~2=x;I|zPvzv6!0e!~y@ODF$`FI)zIpG} z#h}k|=8h8zb2jz~i2_A>AD!@cq<(H5_eI8#Ik-v2phKKNK_VRf7}qA@ zW;L}hkJkVMu8s03dkgl~U0Qow5fv>n9T*fZ8c6-EU|O$SSOUNK9#T)a*l^ize5 z;$pUf0=(n~yy(5_W>!9^@C~YrjYm*g#p|*=S#I6>pJb|I!FTSgjfLQuYG)RG%rDUw zMgmn}_59aq9k$@0BdHE27Vx^eWI+#9!PVZqVV+HK1p~(?1GOFU*V>i9pzR2%dHoYL z7>*4*;PJ|Ps{s6k{LwmLdmClq*1H?`v;%#7@(ihjOG}M-M8ND;Q`6Q6rJ5{wgR%X^ zDsRO2CATYh?tJXqi)srTDX~;9UW?VwMGiWaJILh&+nWrbly~G?eo=?6{Z$cEO^5;J zTfxUKy0n+(AAGr`K$aazMy19Hyxs_(?C#T{BDRU84geWf0Gsb0P^A0-41>FbD8x86 z$;JjrNe#Z@2pog!Dq(tNj=?vsldnpV!OoG>L{q&BN@X-;@05|y zRXG_M+3S$VvF8YX-aVEMr%FNe~6Z#o(CIaR{u#p4ROO{=B8 z8M3xx|BZeVTQO^s_bCoVnlZZ;zGP=@SrKvFz5V{Xy<=lu8ZKQz+E^-N?ckiue^;7&kw9>s9IU$fDH_jb3KkvZoB zEJ^DIb3wG3$Mx21cuXDbqm{P*Hk#9Y^Er9hYEmZdDnZKaq~xD@W>!q)$p05N#?s3^x-ab9=x3-dVKjO_&l5iAZ%*JW4$vS=-h0ELMvuQXtX@B3J z(wa!1!6}4-C2-nca($`^wZYlGvnh35;lhP2M+e6uFJ3TO=>~!!*rbxcYd_UEn^*5h z%RJNrjC4B4THXK9+VF_cqV44#g9IV^& zqdhsh!i~^ucl~KB))?DFqUHNj8G_b^inS7y6t{@r(5eLRsZ%4QrK`)Sz2&8}(W2Jn z!HVvABdu({v&${JPm@S71qSt+57 z+*8N350G3+3T?p*CjJ#_N;ZY9-E~3?i%S;^MdqR0{zH*GNBP@}%ZC42mM6{bRuOZH zt}d;u&E^vL_VeAd`^}hnMb74zRr}_~2N3wta7VdHvi8$a>a?B5M9v9c;Cjmx!9WosVr|iVZTu}VzJ7?5Cic_uA@{I;#lq$6&4)V44ibvGa_4^H=VIg7ve`AYGcxoQ z9&r<8`bL}rcqN}{eMh36L3bUwFecWPA_ffEh8t*pUvg!2>qWM6LeV0jYPU_64Rj-l zA7#;~hgaTtxRIZ=WMzA2{Fuv*|8|9&#u#KBXh={YA4Q5K6%U0X)XQ}ud75s78@;{I z87qxe>Rr#!O~ZH|jZTtjhBnRtu)-3KmGMtXLQI8l`0ZE=5CTOaYD zj`DPH@b(|~ATU3epi>DvOHZ8%f^ zOMVwFb^itUy|am+28(CobG0y0{>xVGix%>^C7=)RPjLqnob9^=K|zGfa7lSLYDsf9o;40&29blxw4@=0oBAQF zyJc3c`0GzmvDT}y8%oGBeE9@hyXh16OnGq};ZP%=2L5-UJ;>l}71mg<08VEvM%#%o zHzOhj!Uwj>0-i6pUB83I-Ziv8hdL4GlULaFD3hnfqwOR;T^&PP8=IXwx@T(DFo96+ zT42cj_Bld*GLw)R->%p%p4K3{X$3>(V!VCk-MgCcX3nZFMI^fE@p;u!t`4V}xbsnA zG&Iz_rjNKq<}sMRA&Igx!xDD}X>D~CwfSdoIfZ zU!tYdzK^&~EA#cait6WNG?eygYg<;o{oX%dH^&&$%O4x>_WoF1ooqxk?fMl4LHWed zBWsKlbRByC)M<>@XQasx3EXD&D5;7M>!lc4&CfuN{r!ap?JwLc2!c2T$-?^t8bPa?EK(y_=6A{bg0^ z=TCvvBoK$0c)a-~h1n(68dd6NG7Je~OL~pU-(?M6zldpiYfE+(`LVVs%5M#BvYHRM zrE*odmnFb$ZjXC8JJCWv8`7*k_x5?Fa0*?3uFbo()l_W;cJ(u?4g_6C;`Y?@dbkxR zOre#Q?~*`IzwwYBiVem*03qd!`HwF6r6zI_^(mfe@bHu-c6N5|790~CXbU96Iw3ev z31{!Wth(U_IcT65nd_$A_gw^xc)FQOo~*pTUWTT9m*cdIKPJ}O8@DInel|$sN^!9! z&cm<{hE_Z!6(>cxgCkZcgQ%0g=I)dF?5@NK^L#k8DR|tIF)5E7=?O0+G8wr?I}HdbCgzt+!P8OE!1oVut(rb_;?j zhubDF)Kffg(?Zrgpj#!1_a+i^UpbdQSjMDhXG3&bCa}W1+S)}Ya`dyEF5XudD*5JN zZxE;1NG-Z~t&$M{ZY_=u8aTkfs$he(aD10@hYyUYPRx{98t~rU{oU zAL3_Z4ywz&`^T!jiD|X)xjb2D;ZrWp<712v1jN3V_vY&;87k&!@SyrKl?@-E;ECd- zq{xnUw4d7>=t%FAf(K0KV7Y1h(bhF+OZM$=l|+M&gU3m%S%c58ehWm~3Q|t5AqWm& zn3ee9@y-JWX=;3YH-|NVRZc7wR_rH_3&*4~3T3~0H=&SnODQ#L@R1nBo( zU~IxPjA}(W34>%9`%PZ~Ql6gAByrP!qs=Jn@^2Q(o=H!k(sU9NLs64tM)|nprS_Z! zC{~^#)aMqf$vL>c!;X8A98KW*wT3 zh_LV}`I_S=$;Ov9CHtwDg0-dUclNfk@B#kjX40JN3k5;XVXF3AyQdMx7~#J3RQI(? z7$^U+;*!Co8kMx|1CU_0b1d($CJi;erYsgKrL|MD4OK19X3-^HjBCRrw{}+tEGKi= zvfviTFmcA|Y)vvx3$hO^*7S@yqj`R>HI1DEcJ?QgQhQstAD_Tn3-WxtoR$^q5gTjG z2ocP4v{4Iig>M6%VX@SamX`fizMF0SPcF$dVyYy8n!SK};1 zL)mwu-&Hi0Uqqx&R~RN;VaYF#**Us@)DS{o^8ECJo#6wepu zI@{F2@qo!E69qu&67%BY#9!_*si}ozF<4t0`e`U+1~g@>)CFI`kR3+KHyl`yOv>8v z;C&z)+-8?@K3{dFMhXm|yHvi*?Dx_W$|Xnk-|s8SDRK7l+OM?{ z;*k^5*Vpp$IuQpTcvIJ^&@k(H5kX<@<*Tz!+~>-(qf@{|Sy1Ce#V-ffy7;$zL>>c0 z0{O=d`?Y&!dluJ!ELF2BNZGvT_5VACXV@eZC^<{MOTl%5Nkc}CMdt>cdpk9X zB&e^c@tfl~oE_&ol4o~(4?Uv%2#>VZT(kyQjZ37f9s<7!CN1f@JsI~em6nQYx0YYy zZSmxy)WMw>27@Kv=2?LX4KkR`dHcDmQ)pZ1k84cVbk#z3xrpb*+HP}%9a-_$L8gvV z(8b(vE25!{RD#iS%^kpg^hNUkQl)G}8&ky;y|&{c9!yf(*2d3x+8R>*L+->J64`h~ z;TOGXgr&Us;^KNWuS96wk&{PS3cL$DHnm8(%^m6RLeFwh9u<1|e>4zMbot7q&ar^j znEHr$I?di14!pKGfgo%i2YUpp93)%ROqE11F(?RSONKXbPW=IsPc)8Q6_z3mrnP%_ zUKP8Tk(+sxQt#gW{E`U?X*kUg^BDri2`R&?Y3KS|g|+pR25aRf#KeH((UKnLUT79D zOmicT#-S!k{>7?K2#}>AZ+99v>ee+dNE&fGkTe6TYP3*5Evt>>tWT?B+fU`FRUml5vNQn!zIm z2|^7rD$%C+(MK&)*p3VXm!R zy;XPk_-tlKPhX!+Etj0!0zMs$e*XOMR|=s+aLZ1#6i@_c#~Bp3%B&KMZ9i32)%cBq zBpyf!@71;mDB3y3eO?5wMA~Z0FcYi4{%U;JEYz2fut2F@C|~+LU657(-f+9^y*F?A z79-vrM_4#&KSy2UqTLq=&aV0xPqWSVCXRkH*PFUF=!t0uiZ^#LidXq zru|{?B~S^WyN(2x_l`N!Ok&0cx4i(cvcIb_zuYzETqKXmEtX%(b@A_>zi~#7cP%Dz zw&N7;ctU(U=aU&M794zoPvY^mbJpK;1*0n@Y)8yLLt>O(SpxR1b}DsX(8O)T^&nYC zLc@Fa*D~S60SrJ!pJ_4MKM!`e-vn`nhVf!cl5A(KL`6XD<33I$g-xo+4)<3%qM?)m z08>cORApstTdIW>CQ=|F2VZq{d>^fpkimaU)XrY23NCo+7Z7Un|IB5R8f&!ieBHp=wC$+VW^(? z4G~<`T}K$gzqyKjq0_;+L&W{e46HYS{d6i*9aBxu^>5wkm>U?WaFfK4MowbSZq3hU zuHxfU{G@hd2M1BvuJtr<4w1@n;uV>zf38(2*!P|nQHn${2LCg$n?yS$qkoght_#8F zscYH=lvAqO&sl?T^2zDV5hXl~$ZXzAE@=nL_`Utd>D|vR@hi2=&Gk!KJopwTCbzdS z{cC;Lg;+iv@%+~#h1D^iJ`3`H!SPR&-)CK~oME$XOK4BFvuQ6jiUfIT*^gUoZE+5< zDJi~~J6xQi?52fv*c{P{z5OTy?iPBq9hfDWM1 zm&p^0ZTrzkO*zUZB3}BJGNLjifT-RqE;aIN_9H)078YykdKV|g5OA-k@OI@CeImsa zJZzRCr~w-HOnrSr`O%%7?{o^>8Xz945stZg_u4VpD%WN6ivx_%be!|oaKJJmnm4KW zmq)-!3v`>Y3!MAEr1e?~A2T&H%yGFjm8&#=hYJr0ty)IDTu3GUl zw{2~MXcp2E%3QV;$sqpJmuVw{r&RvdZHtg*7Jav(MR#DWIb&m8!#JYv-05DeCB8Vq z@Q_30F!FFE4$*@Jh`Yw(I^M+L{%;05rBXyvYN&A)N17jbM}}4bp!1Ps&0KP~9vb`V z%xRMQv|3m&`xCX$Tlk>*m2Iq41G<*`Q-0Lw5kzJDXdwSQ6Hg)k#0MHGXV4TBQ=#6lu4J%aiS^ZujTrN*Oe_ zt&uu&IOwPUtGgh#fR+(@t+@(9a0|d?j=2R}k(!G);SEe4{rhJ2l4d5VC@8SH#yP@I z>#zj#L#v>`UYqhZ+N(1JVKZ%eL}dqRRgc2Yr=aasG@B^@r@>%Ixy8eCV3Ry&Od9oV zeb%*vyYL9}%h6#$*TvM-f;FzJWKif4=B&9PhwS>Sp;}1Ea}qQdl)b0as?3ff{3Wif z!A~8XOY5dPH5yW1rHGGuXBT_Al5sgMHRm9#b$55^fG0z3U&1(Bk-nl(M&z8yhU3D^ zAF_)cYnQG{cwNSPc);Cqd&xWD{j2yE=R?2mJ^x!!fucPQb^IcPehjkOx4ci9+CLi*HY>aLGPfPLY4Tr+| z-1{yFlF6%LQHTS9Fi0c@twXXMm$w&*+8&*3TU9HW84Wfs%g@}@94W1x#r2_v+vun( zm8HDh3H&@j7+pnzRe?6Bge+CYfOgo>0sIgWwud51N{tx5%=acg?*RZ1+-QpezG+5A zPVA?k?~9wdM6OP+f3)tWlpS{N0wLGqGUN_O-@a!%PVDIU3`ERSW24irBfpb$Dc|D7_lavi;@roYftQ(D1d0^6348fcFqlNND(@J-igf5OOyv_@XcAJ z)HcQR6hW`zGGo7Jd47p2vpkZ|3?Y2!Pgr7VWnl`chTJeky=xvIfK=Q_%et%8NAj4v z4NF)EFho$KzQzLkMr9o7^FZ0%Zij{!hZ&A|A@q`4t0Q_A%mcP^TNxQ2U1Htg=2e3U^lXB*Jk9l>>wQ=t6P`2zv?pX%pN{7Q!r}y;RD?v^CwR-ry5^vc_$`! zLVhzNAp?5}K~_K}_CWuxCdAd|)$;BoeZC5=ckt}sx_t+&yNd9K`0!r~5u3rny+xxd zQbtC1Y-|>c=Hw!>d@7!-Tee(IJQYVtk(fBi_A882>IJNa2n!7boj1g}yRQ!>3%|nr z14<~5J!{Xat#NzSXa8P{JlbDNxst$1jEhYa;c@%Bu3z~U8qMae>2XQko}~mab#yA8 zxJSQo8+J5ET;G2%U;9HzdA5xoW>M+X^kkNCalQ0u3;(ZYOlUW zX&bT`xu5@r7rxu3_^)7^gV~}XjJzm|S&BU@Teyek6O1Oy<+&3~BfM}d$J%IZ?N-fI=< z%z8U?i8@t~3Yo$WP>9!;3QYLmkih<*%PG+Z!EV=w&#-3`^rd(`xsPtNZ;RSvNEI#O z3qIXl7GhrAU2n%bKNWPI$<*!(E~!ewE$vRqNR4Oa=DGz=%Aoip>{-;E;qHA8tPf2~uaetNpacw!}aX>E@i$jEdMUAhzH;r(tP6!CEUaN{=g z!7bXjqpwWJtox-Z$Vw66?P-lfglJ$p1IY6*DGqbnS&75dy4x=scvof_!76&i-EO1S zXF1Jp@j=5|cF%=DLBOR5g6g;M$0FnlOy;Xr|B8MPWOb+(a$f^m%6BwR1qBw{yezi3 zPPjUmtE<>MG+(ppu{;1-SyarLW?Q#6YRg0g^>WeT!H>hGl0B01>Hh z&yCO(F*x28dF)}9q1X6$5;CO?T2 z7E~XgA+_+)Mz$r|svY*3cm6KZS15fHvKL;AxX%w6L0n9YzlX;>Bh3+NCuem>M{>*0 zRjia?tSK{sMETOG#EgJfGv0J)l?E#!eNWE)>;?f;uo8V7w(iPh)uT3^8@?WkxAx1^&AOghr`@;D+2#yv9rmB+sOJS(hfw66TM4(y~qp` z@6IF|f!gX9Pe=vB63EJ?`$S)Gyh@S~;%=F@7_r!dePQ|pULULlQ4VmVj`hX3N59(T zC-HM~1zTL>QKZ^hpB1R%Iu-4$9QPl1{RRN=imnzvdql5D8>e-an1Io$NczD~3)b#ViA6?0q8><9N4OhTKAZsrBi6aWjAM(m%`D1hx^}c(9Ea|V0 z&CR69nePVQEDrI)^Tf?Tp&0`NxW(ptuiw7B@>cZYa?VQvo*?MV);lZCYcSyoM=H{m z5)tbB;RgNjF;D)E-Ga^xv<7TThfrxCG1UJO1nY}Cuq78Q-(R{4oqG#1aizVTo%@@d z5ti6T!$S-B>(^Jzu90Nc6Dpo8r56@qM=uXBut$->rN2nC$G4B4PIilPWj_EH6>iphi27S(!=^ zHpe{v@di)|)XwP8dB{q`Y(^?ox?r{w6GSCjU2}es{?KT`i`S>CB@ff#E=!>EEzUDv zpoYj<>H7(%)0)*2Z|*f7*HFU1ehMi*nINlkkOv!H*Nd&&vi=6)jiFw znHr1mC=Bd+dRO+ov$FBV@xobLW24Zd^!m-P=TxIzVB$PH3z}w?OOLEJe!qH5Wx5t4 z<+FG!+%6O6N$(HAl!w;fMG=yK)9)B_?rvQw&mgaYp+5=CoqM{@&Umz?v2hk&sR-ZQ zl|#I9WnO5Wi1twLHy03V3r<>C_@XQf|M3(Tg=SLrho~QaN1FyzlUH?Rufs-o!;27E z?;v%xw{PeLv=Wsj*B#E9^PAtPGd6;=cK^_8lMiDug0NF)at~J-%56J+EWErUYiNif ztW+-<&flKZZ3bT4ke!AmB%5I8P^gk2lB#$9+#K&R{1u`Y{!0B59kiE=W!mpkhJ2P? z|Gor0g#bwZAA_bc-h=d)(&n|T4NL9%gv(7z>XD@3Rno9+k!q!XPoGhsgx4cNNb=YwkIvB1W3k-Xx_ltZ&xrNoC#tX*MzH_SGI zY3TR@oPsp8!n5wd6f#2~?~sj+p!!tOa)8uZSF4}j@~72yWx|pj^4l%fJ@H%Vc`|o`lFOQ5Y?BR%|t rJx2NA$H8u*u)zHPkNVc-D|m5&4d33>mIZo literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/test_cycles.py b/lib/matplotlib/tests/test_cycles.py index 074b68a276f2..ad878bde1ba0 100644 --- a/lib/matplotlib/tests/test_cycles.py +++ b/lib/matplotlib/tests/test_cycles.py @@ -123,6 +123,30 @@ def test_fillcycle_ignore(): ax.legend(loc='upper left') +@image_comparison(baseline_images=['property_collision_plot'], remove_text=True, + extensions=['png']) +def test_property_collision_plot(): + fig, ax = plt.subplots() + ax.set_prop_cycle('linewidth', [2, 4]) + for c in range(1, 4): + ax.plot(np.arange(10), c * np.arange(10), lw=0.1) + ax.plot(np.arange(10), 4 * np.arange(10)) + ax.plot(np.arange(10), 5 * np.arange(10)) + + +@image_comparison(baseline_images=['property_collision_fill'], remove_text=True, + extensions=['png']) +def test_property_collision_fill(): + fig, ax = plt.subplots() + xs = np.arange(10) + ys = 0.25 * xs**.5 + 2 + ax.set_prop_cycle(linewidth=[2, 3, 4, 5, 6], facecolor='bgcmy') + for c in range(1, 4): + ax.fill(xs, c * ys, lw=0.1) + ax.fill(xs, 4 * ys) + ax.fill(xs, 5 * ys) + + @cleanup def test_valid_input_forms(): fig, ax = plt.subplots() From 4657c8b5e8ff35e8c02010a518e979dc06437fcc Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Thu, 28 Apr 2016 13:24:15 -0400 Subject: [PATCH 2/3] PEP8 fix in test_cycles.py --- lib/matplotlib/tests/test_cycles.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/matplotlib/tests/test_cycles.py b/lib/matplotlib/tests/test_cycles.py index ad878bde1ba0..842b35af756e 100644 --- a/lib/matplotlib/tests/test_cycles.py +++ b/lib/matplotlib/tests/test_cycles.py @@ -123,8 +123,8 @@ def test_fillcycle_ignore(): ax.legend(loc='upper left') -@image_comparison(baseline_images=['property_collision_plot'], remove_text=True, - extensions=['png']) +@image_comparison(baseline_images=['property_collision_plot'], + remove_text=True, extensions=['png']) def test_property_collision_plot(): fig, ax = plt.subplots() ax.set_prop_cycle('linewidth', [2, 4]) @@ -134,8 +134,8 @@ def test_property_collision_plot(): ax.plot(np.arange(10), 5 * np.arange(10)) -@image_comparison(baseline_images=['property_collision_fill'], remove_text=True, - extensions=['png']) +@image_comparison(baseline_images=['property_collision_fill'], + remove_text=True, extensions=['png']) def test_property_collision_fill(): fig, ax = plt.subplots() xs = np.arange(10) From 8e0963de596395a541e039e5bdfbe0ded2ef9da3 Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Wed, 4 May 2016 10:37:05 -0400 Subject: [PATCH 3/3] Move the alias map dictionary into a common location. --- lib/matplotlib/axes/_axes.py | 37 +++++++++++++----------------------- 1 file changed, 13 insertions(+), 24 deletions(-) diff --git a/lib/matplotlib/axes/_axes.py b/lib/matplotlib/axes/_axes.py index e65d374fa126..e7e97330a27d 100644 --- a/lib/matplotlib/axes/_axes.py +++ b/lib/matplotlib/axes/_axes.py @@ -44,6 +44,17 @@ rcParams = matplotlib.rcParams +_alias_map = {'color': ['c'], + 'linewidth': ['lw'], + 'linestyle': ['ls'], + 'facecolor': ['fc'], + 'edgecolor': ['ec'], + 'markerfacecolor': ['mfc'], + 'markeredgecolor': ['mec'], + 'markeredgewidth': ['mew'], + 'markersize': ['ms'], + } + def _plot_args_replacer(args, data): if len(args) == 1: @@ -1415,18 +1426,7 @@ def plot(self, *args, **kwargs): self.cla() lines = [] - kwargs = cbook.normalize_kwargs(kwargs, - { - 'color': ['c'], - 'linewidth': ['lw'], - 'linestyle': ['ls'], - 'facecolor': ['fc'], - 'edgecolor': ['ec'], - 'markerfacecolor': ['mfc'], - 'markeredgecolor': ['mec'], - 'markeredgewidth': ['mew'], - 'markersize': ['ms'], - }) + kwargs = cbook.normalize_kwargs(kwargs, _alias_map) for line in self._get_lines(*args, **kwargs): self.add_line(line) @@ -4544,18 +4544,7 @@ def fill(self, *args, **kwargs): if not self._hold: self.cla() - kwargs = cbook.normalize_kwargs(kwargs, - { - 'color': ['c'], - 'linewidth': ['lw'], - 'linestyle': ['ls'], - 'facecolor': ['fc'], - 'edgecolor': ['ec'], - 'markerfacecolor': ['mfc'], - 'markeredgecolor': ['mec'], - 'markeredgewidth': ['mew'], - 'markersize': ['ms'], - }) + kwargs = cbook.normalize_kwargs(kwargs, _alias_map) patches = [] for poly in self._get_patches_for_fill(*args, **kwargs):