diff --git a/doc/images/barchart.png b/doc/images/barchart.png new file mode 100644 index 0000000000000000000000000000000000000000..e5ee2c356f37d39d926ce71e9d55f3785b8fbeb7 GIT binary patch literal 17128 zc%1FKi91y98$Uh^h8bHjwrnY6W-KX+B9zLSFvl^LW=OV@EESR&OodX>NK#R6(#*lJ zN68pz87e7D3K1z=Q7Q@FGxhmizuzD6?Yib-&OFXM=YH<{wcO8Bnw#q`8N3=Eg+j?V z?B3yyLZL4pFN!1vxf0M7#X)|cquqDep~{}Ce@5Pj1>3sVqEHp*34a*k$a|^C-QLkC zlx&OWg?@avWIqaJm*}v=*7Lak)V0r9>W?pu&12$ati{?truf_L`z_VG@6o|n)JU(} zfvkhi?&h!9QF%u$#q8>$>48hfS=eFHcQo_v;o-HusDAmrShlre)Ti!z1zy2M@`~!(j?`0*n*mmX}sIK11+Xleh`q5*3BrorWmg|P9W`S7-27p1xF z8Ou&DHq8ePi!D5FjA}={*Y;(~6x^34D&6CTo7S?{| zbRbV!=x6>x|0_%H@tW=If^4xIvDDS#TVO4(TRt~lyzo#y5`5zMT%y5#lcHb2M*oHO z`ZXsJPbQ7C7gcgj6~t}2#vA2`?S~eoo2uutPki|?Cbm^$L)W#LU9QH1aY&dN4ySl- zOnjHy{6+nHf%c=BJam4y{f{ooH#f__pxR#ULdE?4d7$ZxVv>aJQuNfer<+vb>VLf& zEy_CfHe!(xvyXT2oe4U8t=6T4t7<;|m)zv`ZUCO8?zO6ugC2r4aLD$K-O6LJqfTdV z`a3a}&NFX<2UA*1&1$-We;HpE%PD;&IQBNIIp)88y!xg?nC^E;JD$sw85?pxXR5Gw zu78tn8UpXCxw3Y4L+KswKfg(`MRS?r^36u!n9!NsFP{GK`g|aK`u>XsYV6*z6_=a7 zI<1P}e!4CZs{Cccm%1cYMWS5or$q&L=g;P2wh{Ky32PTT1QG7tr!zPBjlb(?dT`v= z`l0{hKj%)*HimjB$84(DxJ>=7+dx){JrF?+e3@u*T!QqmT5n)*teBR6;n;+M^|uE* zf9m#DZgS@Lz1C{nX7Kj);mZT>ihrWe;T}m3#UPi(nTY01yZC*{T9%DLvwYCXhOaiE zzw4)qW^XdGoQIm_t__&R(IMpbb933Z7WCu}+R8a=f!VD_ez1>iow@hH<~=NA2y^R& zQPv%dlkO<^_5gO_O=ZM2R~-Z;YV&Z#c*?Zz@xuN--Fscu==dfCN^ELz2V^OC8lckJ zH+8Q1Sx6=LJi~6l<;2|W3+R6Pc2Cm<Y!?PkZ&UoyQ8%b{GUQFlV0rA1 z);{c$>7x_xZ@Z2@ap=n@+6luG$s;^HS+R!o#VuialOmBqpEh^K2LT$2Ayr zi3`W)YJ=*m{i(GT@fmN^4{zE8M4VKtm3#AevGI1@s=%hQ6JLjfIJtzQABG%XXhQEk zy`9661v%w|a=pK2YcBNrJkXmYg&ezFPCGg}U0J!M&C7R7%&2T#TV2c1iH=d9(*wAv zkA*)C@5Ov`3)WI^7Ok3F=qtwa1k!1MW1HWteO_pBO0h=~B(PLwA z)q<$|YnU7s=@GQHRFNyFChZ`mc%1=)N&*zyY>0t?I#r`oP!b@?OGAd(d6vH0Psgx= zUXs#CJIlnlDgt2$(GD5L1TKena8Hv?m11aqH+(6#y8v8HW9*GxrS9G`>L6UJ!wABL zzY{n~vCj{{hv2xI}-(OxDWV%5enG2mLryb3mTV)03Z?qIdzx*oKTp?KaI&I)9h7)3pW zEf931=U^7!vE$Bxs*IpYC2jgeSb>}(MU(NvZ(KoMgG5RaEaE#JFoYqpup-QrH>*x2 z>BBa^$f_KlT_+;nhEs z*<6A<`SGZAls;mwc3l5H{Kk0hvB)2@Ba=bx$FDuA|8~7wet_?M4^!%r{J~o^?Qpp& z8vZ+r`1k5HjpQ_|cE90dN7&t)fcErblw_I9NHY8b5Atso@jt%e*E+ElX#`65fUePg zEbkz81DOvK+YEO^K{|r;!tnwVY3Jf2)5n?iE0BlFd*ohV3`tkbGO0Uxr9Kg>vjRsk z69@JGMryM}hDy%5aC-sQqV#|sqzIQ`*F#H}U}@@F=yjRRw#UNrNSy8Yf}rQD4zXuN2C=O7KYdhgdL7SW!P6XyODsMLS^7nYj1T;vN?Aelu>{xcQ+`b0ARo` z8_244hBr3+To1Wfd@uyHV>~G0zXihf1r%L8Ty;aby-+n9RwF^1OP@!EOWnu{Kfe-W zSKky)5J}~iN5N4~{}&QURR6k(a$aY_lZWD*8hY``ZnW~hwD5@Q=-&&nOVpxA=bjls z7w{RW)Lh_+Iyo0mqavS|j(i-`gz=$Ba+a~F=J0ONWe<2!VE2lPL#pN?Y+90cB$IeU zq4=oy&fBSLp<)uW5jNtSeVg+_b-Oh00Hkk3_G#VNV?^*Uapktf9Agn}kv!as=j948A@&wPR}}O+-#ywUg`0BQc>TZFl^Lv-;&~Iub$jXM z?~>mTbJNRPo=z|YQ7rpWrKk|j)j;C^swAOQG*sR59NnPflfkk!9?4RR5{%IByQ$rR z1#rLs_MlQCiuUTt8V&C}xKOpL5Q)fW2Y0lLpCfR*kb&!I;p;Fs+j)8ao@5Q|1||b? zwiCKWkkzloTH|g_o1@DaH4Eo&{h05w47pKS>T~q)w@nQ5M$8&3FE&nhlDcjx}~Dzb@w zK+tA;J{N;T=&Bp2i!7hxv2!mBb&6oALZKMF3+|BAz+l<8Y&;dpfD^~do;|P84Lm@W; zx_4N20+hMQvFU2|P|h6^1%J%Cv~UkO9Xw>s2x>TN%g@-I#>6SMGjA=idDaw@F@G#b{;e zCQlTK(&sbb?=9BFB}R{c-W!_fvz8(Re03I7b^V<3P4`3XX!J*`PeusFkgusVsIoa1 zyiSadVcT5&2kQYcc%--1&Uwow{KX-53!YJL(Fy|xe@jX8(#Tji8Hb-W963?-+g_>OTE_uo(Ibv@}V8O(V{u^ z40q>U^1bbmuE)f0rc!0$lS|)jERPxwu8%Xb46Ivxbz{jB)h1ky$$atr8r+BH5ASd< z2++p-dNs3q`P!nE%~gwX91=3?(w%oj^dd!3Dob~k^6nk~a%+*XNvo)9E1p-1qFlA! zs}Q@t4U15tiy;EaU?x=stn1BPE?@q=g}y4`x=+Wp7gKLgFIZalzm5x{m+R4fRX^-| zpJ{FW_Mk%6KbnG|)$>v3gxhhhttvT&JeBNZg*MCbs|v}%(QE{estDvNMHQ4%d0^|K zKg$afgT8NjzfB6FzZ@)i{G##qMD&tH^RDL`=vT%t$}bu`yOCRev5s=gd#DuL{rZ?V zW`aq%>_-t-v+CNm`PloB0}|cY`i&-3dRefGx}gdA%v`eXcS4*^0`uJb;ikp#LGyu= zM;V{1ztNYW!CU(*07GCy$4>nYrzAXoil?_fGs9pH_ z6pLVLoLS3AtWk}-AU%|a)xWDNWjeZ&hRVoTXVx11{nEFI{d=F9fJbL$P37T|*?8H~ zJY`8kpTG0VIie0Ok1a111y9^NHrd-~r0JWKz53MR)`gFj3v=z{alWPX{J4M|Jo0MK z{mQRGhk1Po(h>2acc$x+>Hcxczj8Ozde^?x#)kr)e*RU(CP%u}vf#O2Q=AVby!PqD zjD_|tPI1=(T#l?mEc%XS8s&lm#m8fJB<3?3;Wb%q*bn?h!$Z!abGz%s5eTbPRJn6s z6W4v?!BTDT&w+slaLoOLuix7UFCH8@e=SgUGVn*i*7@&kTLvDGjz zPxaj&{@5$mHqF=!O8ufOF8ulJBLM}Uyt_EBeDW!C?#EE}f*+k)a=$Fg?ps#Rnib?# zRG(c8>dLf45v&(>{YvHJ(CUWyzdv{lexG{nMA+ir6sWnesqg%;$903f%{FV6$z_2z ze!QQXA{c8#Yo?aBTyHZHJoNtlXP{J#zPJhn3B~P(o>&?yW=ocBK?-u5pH|f+5nV*6 z$yERv%=RAfbe3`eM+?Frfg>uzSX_eHy6^^GzdWk7G}-&CM|E>fCin3k)02xol(vj5 z9ac>oSgGGs_fYTPaPzjLxQWuKx0n6<%90kbTap+H6F<9dypCAb0>)zJ%waps-NCVeDjkU#|+MX9C8cYicKhG@;+jbwc*neN@o1zW^TUY#9 zwsgN?{6y7@Ce0A?7Uh%mmfv;6e|F%y(-tA=^$&u!_I5t<^fzv+m|X*$@(_b)BB^n3 zJow-SNuC(Iquj>)@_UE23%ADvJ7^N7PzHi&N!hw29Ww^ZC5A6U$c=r!dXg4oBq?i4)kMNBeOpxisss03KfJ3y&$uI^6BjZR z#cU;2Z#{8$=IQNy=bnooJn3T-i*I)`EdB4|&uncb96AjhN154BCT|Sk5?@v`{ zS+BUtduO-yuM%}l!)p5C0zhBJ%*mNb=HTz&E$7ZRsSv7qODk99i2u>1uMRcy`ztsE zuxGKE*s935{<>)^S|fStRYCv!ezTA!pT;$lwTHFJ2bOaC+qd11?onCj>fnk|KN!o0 z)opg6`YTT`0}SL%YZN8X8Lu4kC>PuDf#?3Sn~k0Xg3|WydF*P!$=}AtR?Eoi z+lSyS3ool)@M}L@(F%GicWmpegIk;m1#kC&9gb0mu6_(>ehCiE4^F*5UYNcZe*|!1 z=>-I(648Xyq_|pl(2C~b1Fk=$`wWLr2T7!MWGF0Bs04U#;9U!|XtMS4b-BLs>q#rB zuf1sM-BkP8IMf(E$7;ItsMB`gN4d0fLB*MSk`3YXXLYa+or58}lFe`j&15!K2UIm} zgtHQL)&&$5r-sRfxN%T9N`N_hRBKDyS+vueRS8F%f84k?ApfJ`@R!N>#=}jC!Iw?_ zz0tLU_n*~@nFfYVTtBkb{_M+i?8FHBL2ceHB=OZGp(|2k4e#?9#5ksdu`dyMZp#jm zB4Z)!So!*u?Uq#wjnZ4<4;*{p`o+4hZq4muWDm{{=ckR+@4p%V;kIgTTi(^JJgjBi z90h5AxM2DyBnVBgSv1co{Qg zQScHl4M(E@1;j|1rgFS-sm!8ez}-ic=3?Z3!}m;Y%~Ns4n8v-niBMXh7rjxYJzDRd zBP*UQxOc&;z9c|O2CJZ~O^dYv?I{8>dwvsfr93d;Z0a798b zj+m>E1?Po56h@{q%~0S|3%V17Ev6(z&Q?>CE_-`nJkuDn9#Ju$t=hSr*GbKqZ-}49 zKzk$$d5TE(Q?FyWrRFCysg8_`aAj5R%j$sDq$I}@79tDpt-M@PKTv*O)1dA`l}G{2 zKUoUA?fB?W+gN)-hgI#1VmI*4j*jCGh2q^VCZAkakdt^WXs+kZ5EQ6bksQ(miZJ<~ z9aI8eDFEbn1Cs)z%w&jw-aR}@$x!^LpX+UrYaI9hU^s|d(}x{HsOzA1OKmYqI>^}t zjg;BEtz;2}w1Og=y=VNWr}mC2=~w_u&K;6u2P8b1jrVnuJ>m<+sL*e_8vvK$?4_<3 z?4^yO#O(a!t1LM;F$Sg)yb*_$gPGI(sL9=*N!5haK7#X_B_3_Z{i7juWZ6SKSHO|g zSyyi)@JWSTZVaLaXaqmH7AXFo?H!CXF$#JeR!~RoaK*WxdG+w@VH75Z`Z#RF0+0Y7 zz&dPpF;x!KE#a<#kf|1S`4V{BFH?`GNP@5A5w~W7hfWEE-x;oGf_K#6c7Y>yV*k^- zhvxIwKNLN!3m8gIRJpE@=>uMg(~^clo?5l5cbo&~EdVs#Oc{vd_t6mkoLF0x^VOjK z$2%;q+9qVb7v1$Cw`uH@h*izvMOMa)hF(G5_85=p-k8ckDGd@;+(4hbe*rGid2~HR z1uTquG{+`x?@B*IwdHqKkN=KfuZnz@=(Ng)QO_s6s4(TRE{?>ifYTBmPl@obwgh(P zTRP$iDHKTr8YjBgod2lOpi$|g6&15&wcAXp4UfVI8aG1m^CIfmDsU7b^|_M(f%XwPW}G%v1RTm|$&-0lwO ztf=!uA5uAJfPf9}ApIN_yh9^gJ}i!W895&ox`9C@4W<^WNV3?T3JkM`%H~LPOT9aD zDCx&K#cqn|-FEF$#86dZ9iXk}%jrXj^Ry?^hWl0?C05^S^D?{_byOK}n^{$2$ z-V|=VtBLBCB$fB1gR1{1?j@p-hH8r&`_21-tCf1~-m7v~)8neu3Sr@AML8wOXAUAe zRh)AK1A14Jkl#uT#2`ZwgrJOPEOA%AbvyB>_-_j!(JH8R6dSR=92Psf`7@x_j&J4B)x-3JB}@iCpYfqciCgTr*)y*9|or6!j<`b1``G z4jy84$q)|(({>^&Z+gfjklz;|2wT3mQji(=Xkz2@YYPSUJXB9D=A8v+vJ%?u3=dW6 zAaZFvU3V`66ThQvYW2Xw1|6b45*i6ym^LH^ACI&`LAy^hX2OoBa3?(Z6e;wdFcF7t zS^_~U5dJ?Nso@6BJY;hP>5UEFUg;Vs+9TiZ&TkM~M;Rk7W+lWXh}-eGO(M`kQxL_X z2m~@llc30zA45eWb?A(B+!sU-J1f=vi*P_m)<-PwXeQMeoG(B5NvILQ-QP7uKVg-C zt=i^$R zmL`9j8fqx$3ZA?X=HkigRY#myD42wR`T;fu$k1yKrOQ02NS7oVlwb62x6>&V+#i>W{`+umaDU~TnuUK!r}kBM-?D12jv8gj4}P%oy4XKXj*4PEo1g z6}@&8{Bb)twJqx4G9yCQEp$G=mY+wlYv3kq^XBK3ijajtH&YU!E*F-NBCmzj%o!3) zHl>b!RQ#g|UKFZ_E4V0loIqabeVW>M zQ;;;J*!_A9fKW2R8Uy^Zd;Cu;=Jc;QNpCvtuf0*D1*7)(@-FDlZxbeeXlnJ@8U^6M zhN>hiuEBL?Y_1|g^+r4GNr*uGio$aM5tlW4RPxrHyV0Qt?op{wEIKQwEb89BR|;k> zx%1Pfsu&B0g|&SJ6JQaO;lr(@p@W`7Y)*g5gw{ZP_}PAEgvO3OZS)_Fm4?IcWTToLk$!{x@HV-g2g~1& z{+MX4I^Sfr@ADVU1cOPAPu~s})dReODMZ}f4usbZ+0qN8!nWC>c+;8(s^Q@gh2}XF zTp5Z8wn`SYa5ml?CK1RUao76!KbIHRFJn~bi9h=5&Vv?i2PXC{Ohkn@;p6Y|EL zUXVxJhnGh29>As+f8rSMy-u$!+3EL}TXo<5QVkJHS>Z=ReMLaJHkb zq+a>L|E$36F11Y}@;W+UFjR01h31_FMg_v^bS6vuds>LQ_C^$hp@~m`qZpodIUfb* z)&>mfIPhv+a#Q$@k9yAEc$NmvzoCk{$U&TUuNpBPCFzH1(mEaQkhcGwej=Sy7*+zO zquYvz{vdmkN!ybfiysU`>)Oc=dzWfa1ovKY!}7A=C?zx+fmKe0Vn|)}%r@XQZTnml z0dNnwEIa-TO?@cbNi?9Sm-fC7M?ewE|zQR&iZ%YUFG@9t@r@4to1lKw1TE5Lxqu?#!FGLm%|pmqptZU8x9l zThSd$6ag28t^nK`XC(vqdXAbi9-)w^q=}Y&VENTC8Z~igYGolJ6NKyJ@j+fQ8+j)1 zR?pRJjz)D0 z*1{xD{})(5m0L;cgIBrnQisFavwq21|9*brR{j0)kgor{=qQkwN|XRs)9&nKxn@gx z$5|b`7^*EVk~d8D&O3Pu!*0}lB6O06FSz6e>i&FZ3B2KRyF2x;U{JNN^#1f9Grh7d z4fM8jG87Su134#>7u^ zgXBw#^&u7Re+;_mx#-7ONPviiQVmlS; z{CWhjp*C`0zsR0k25#=9U-M^$(y0nSgU5+XLD<_=3mM2%n6p!=nv$!u=SL*e&~y0>|HfK;h`0>_`F>S4EsK|K_@QVdZjY&S5)r*8xk z-i;)tnLOz7x9_(G+VLeQ0x6K2L|2fAB9|{HO=w*#31njdD@M_`o=AmY`T@W+!pAyzI%WEV<7OvD5lh@Gqg=USyhn1hEy=<|KoX>H z@>e>A0;mjKCUIP`TrIMh`jeSFks=bAqR5ZTNzZ0_3%-3&IzGf9+K@jJKQ;Mk!rVE$Gl?=L zyP$#n_It;UW8#P-emVHM1}zXCs|*#icS729`?q@XlUmD4EuNxS9wzCD=m<4#vu{LT_? zc3@XC*@m3X7=l{^|4x&G%5f}BW)^kYuID4OtYJ|HIwj;NuUZ~itb^`rN_4x4_LcI- zDwVO}h_JDT!cb&hCe{0)@Tx-DzkRJlj){6%Lz6EFn)G#(1N}sNDj~&-=aUqH19dWL zpr6yKRp6*dR^Cev^4lQc|9~F;A+AfOFg9myWSQ94~3ZSz6ZpJsTHXS?3b8u zCd|b_cmY=d7P6^Uh}`4tzJ0u#Y~uF(F6^Z(O=(n=bd};slEtAl`VwRc8XBs`zd(yu ziIwKm4@Gt^O|HlAOaeyrjcja>6~Ulo$SJ`%=UtWX3o&MJIL&K@8LoZG%oC(yfZd=y zspYN(fHJ1jIY04Y%phH(Uz;vC@g^~a+gWDnRLeE5_sLJX6@}JZX0q)}7GnAh7&43? z{qhtKyDRsvOXN_sV^m6imGO1xRCyqUh1}L&F-N}~&*r2-+xg=P%E-!9DP3s9@Gwqu zXYT_*-n$Suf_}GR4%tW``!ms@K<~@t5137nDZG}BG$W;m6TJOo_ z88L2?GItF>WOvziSzo2k#yc`N1Rj^K_PVoJ0sdNIhZhMEz(C{!&=k(y_n0=4Y>F6w zE{z{mg71Ib+?xJ%Xm9Jd&*zcYNty4zO~yJ&z+;j$l7mQ$5uSk1l&z(eqP?_Gdg-rH{SG=3}cl^WIn>lbmU%F}=rgZ@Ix>I6B#rSA>21pgrA5|9K ze_B%iY=~~9oB~k%V}MSd3*|WD42eL(Wv`-|UGme!kD8$Eq1FWPn?ges29*ekS0_(^ zj5r25`~rgiBryO9ZVqNOJ?Iswd^UdFsUTXP4WFwG<)O$9JhX^QKa^~}`WQyhr97Lf z1!fFQ2+5emH-P?7C`qn5jg)S2 zCdZ(zV+&tdQXC;g>UB7MqyI;KrxU9K5l3X+0?;58EsmI1Dq=pYs!1|`3GqyEDxzAv z@zPkt8WjhEW~rPvEoVpB1Zcn0RWL}!T=#@l0@mcVyAx|`3~@K^9Hwo8e|811p6;DS zFo7$hp{Tqa(&9PO52%;!7G(7V?JV)eDdI?fd&Iod2RQ<+0pu*|Q~1qVDuC?2pm23_ zShrYqNo5XZ!Hlv0yW=5x85SymXHWCKop~GNWB`RN4zmmxis1A41E*b%F)8viEXYM) zZiBdp@(E{q|7|_Zdx3LojzNGp*6DW20W3L{L^m*TkCkg96d_CHC`Fc~RFLHpuw?>a z$^A@?GMl^H-5`-nscUF^c~Z{k#Aqyp%U_k7_pe*iOIGae5bZ+D5>hezN|ACwYK23F z)^cZ4ssDMLxSve7eTd)U>qlQL@{Y4MdPa9|Iv7x>kyd*%g($+`$AoZ*B3<*Zx4}!b zu?T$UPXEv0AzjoE=^)FKBlYkg%b)c|z{PggdUbc*{{E|HTkrLe8Vqm>Hr;X%Zt426 zlA$aa>$9FfVjalAVELUII_{b#3ArspB;cZzd)qISZmbl&HH4~AVVbW)?-Dg>5ciQS zI(kuIu-cU|$1;PYHfVyM_1Z5YtbNHEObSZ8b|l^DY*NF_$WUMH?dy(Y%80x6(Ytw; zKts^hhSEE)QdKcI4!(Ce-}y`K3|;(}89M?fCnoa2E8tTiC)~*&o?u4MQZPy{ymmWE zd#HZwKrw>wsoiKLe-O?8-P{*13lCQ(=U^&Yx?WePt%G!~4O6j34-`Yt(Qa)nBb751BTr$e(6@Co_-u2`793Q{a z8ua>-{G@!dmb8*&t85QVbmZyU-3#AsT!)i;^ly4;D^8%5MXlKceR6_+Tl?R0T+bIt zh0}^(j+w_ENV15wDJ*Tk6w1R5B4rpR$@}9v6G6jf+*w6d2K|6Xj zl&!yOpVNcH{pB_fo=R--4VU7nzzrLDD;?x)`04i0AH5Zz+CJhY z-qTpTlo`F;0#F z%HUH{2UuOe0Axmu8MCWU&s8U-YAd}< z3Fu;(?Es}Na=Hu#t|x@3u}$2=F5Ekk3A$igrVW- zb2c^%GiAUB2f7Dcak$YGiCS{7`jnLaT{4cj)x<~6IdH~!!Hia_AfcDA`hx9xV{bVp zFI&){@?@GJn2g6bhhhkA}j{bY%QL8G( z=Qa^Jj8hmV&r@l{(*`vB_uQh8ny0LwV1spz-fJr>)qdT6lmc{br+2jN1r0o#omdZG z)7Bp+=oW*wf0x5G#C(ZvB|r>P$aSC> zxv`Z1HSmOniM6gR2~uEC2OfL&RLs_{$6YmP;ddgE??4a>s9x6z=m0~k6(J#FasIP85So5>Cj-2gH^pJNpne!#`^4TF8r z)Pu_|XMpTRT;n3?ldbQ(lv&C&=dcT;kmqjFVOvM;7*|YkQV)(DowMR zvpZb|Q9Bf88BwdxjLDG)N=0oPFYTE3kun(ay&@NoF;i+DN|(7sHKS8)sCM9b&&IY% z6qRth%#LQ*VcI?Os(37BGW-gXvS!&xN(_UB5469}~Wv7VmiXLEFe^LfcKx!xT^?gi1hlA$PTM5j~z#h*5Xt3c4gooUq+V-h!hd_G>?Z+ z@hl#pUrS#UBKTsE?9hZmit={c{Y*%U>F^buTqr!ek3n4t6x)32FeoHIwl2AC$XtxC z>l%}K!6sxOMH~X%p+g9Vf{LiB@MnPSxjyB(Y+4TjaHHs1Z zQKF>ACst>STeWCY6tl}LZ8w&j#%02t_;ABf^edd$lI(Y8m;3(?GDovV zG32#SfowbFnpIzCu^N&b!Vm$48T&ztN}ZduF1D@`^w*Kd6npZHa{lYcM10NVSNO7T z!zLDnhm!dUQotMjut5PcsJhxAPJ2e<>(w0(Gg^+nva!M`S^$Y2S;B&Jt;yReN)o<_ zbYeT2!3Y`$yU;)u5Xb2uqsU#U7SfciPKnkGBnEee(s96b*ffYir+<#=kfw{faTI_B zz*B>F31`YQBmRGx`3~1#`n))-i;a^m>xmi0PjTsX=209Mb&huzg-vH#<=2OT>(S!(Ver$``sJS2^> zA{-@8;xO@!H6!U?@Ee~_Sctkt{EgbFap&f7Kq4bZ=!Muk?KQ7g0!x>>1{w~Y%jwCf z3IHvc$aHaY?%HBd*=FacyTvRH_x^RYGLX(LW+A}7mp(Hdf8<H@7PbR3#V95H$K;pgU3ZE;<&ba&u{A4Di)_l$xXn84q2 z_#=_$(B$$WmmiU%{g1NLHpo|}&mn%msixW%MP3sy>V0R~4VDZ<6gvNHD79Jp zS<6foI#N#^(ND2QYKu&f1QFQ7fEg?I`|uS@@B6b*@NdII7uHj(w49}Qiw(2!KOzmW zK!a%a&nV6+ZPJy|8bS;Y&Hjp--6DS-dteld#kZ|QFx*|#H$kAP+Ka9Np71K@QarzD zqsutquE+hb2>eexBnNF}5I-w!`%lw*AEPK#w+DSqYfGFJ0kjtgUspJyc;PZv<}{d5 zwuYWT#-fw^LyDsPz=DTt9no3X(qe%S#7m=`rWmf7IW}6a$_hAk;9aR`(j;t%}-duHIZsp2N!<) z-^1y)$MpBvE?GK*E=C9@5t*FT5cE*|=S0|H`lDIFHHA}%<9Q&9=8T(q^%qMj!8fPUPsXVL1fj6@rFJy zjqu#6H&G|6rOPF}BO}Fu(WM5?_tznEO1E6!%8i0JCNTpxy)@E|nK#Fjt`CiaMB=Z1_5)HiK($>Y&C70jI z>RBwZ*@tAT1d8YWP#Ec`<*QKwZ>8&6UbVyX$aPHdoF0Rv`^VRIiwK+=flk2A3&NVp zf_#tN{YXG+Mt}%@Oku2*{GC9m(qFs9!SGmcUcOf>w3Y7NYL)rm(NbRTvmV{bU^7O9 z9JFKQM}$I_f~DYrEu2rvgNVL9b{9`)tBKDdprVZcH|<+?&)!DNM0~+Dggg2k|KpB# zcgUYJW5P6fhh&UP?u4vYNvQz^YIoO`rtnT4Q3n$}>n#9_ z|J{_!Bo2h#!hn|H%{Q6 zd(k<=>ukrvMs)ZJQJ+QbZ2YA%oH+MV=UR__(p%_pg-T-Ci^FE62oOl&dsoTx5iMGrbL7Etw6HCN9#rV4 zL{pKZj18Vm)@zToay3d51;Xptor;LZ*K1lr8y}o)yj_7O^Q1P2K@k(CIm&wX zgqFKEG9(oLWgSSX$eD>f%|j_A1J9W3kZ@WLwrdTLNT2GjI(GPPwOU~bSovWb!WcU;bW^DxTxZ6_;H{qCq5`nvBZa1jA-pnvFdb=MXXdhwGSDf(u_P-Z zw}uA%{p5a$+u?RX6#9{WjcgAAq2Rt9McmXi^q%|AiB3YYN549qpbdrOKFa|n>5eKzZ?a5I$dqhWNv!%Bx*8ORICoP zskqCoayLPxd#djd2TAHJ@197|TFa-}vPiCrW^Vh&@-_T+lmPk)}| z0a0F}e#n0IfNk}@6a7PBUZ2q zX`HA@RAjrj3eISupAJXdSj}0aTq&i!4^8k86~eh!V;T-4JarpUdCAEWEB>9(Splx2 zP&KM=2nKY^-+B`Q%uG7TU!(fV2@qG%h#_Oi=San+4Ul-GW60t1X4xKD&_Hy&re|(j zW$9;zC_W+V*1A5r)ddTgYBF-&28h&H`ETcNJLk@3wZX7#C$e8$<8+TW3aFNfRs_f3 zTe@ZtvcRrNLKGt7Kbh&3z3d?Iw&G`kN$}-3?MX!l9^M&~>h5*`nj*1RWiv&YZ zl`;yLCAjE|{%5Sm4;!cE)CWIKtb_QM_`rii?j%uA%y{ zRbt&MGb!`f+hzrWGFGguHk!S!HFFJN^P2F_&n_Z2tFf}-bEoz;XvQ(OcC=%~paW$^ wgzW$K!TrCtbXT^n-f#3h3i;HU0v|HAJ$z8yzLV&-|Cx$o;buk$>w>vrGL{FD@084ZKM zq|Tf^aUKSPM}dDe#1Y_kF7dq?;6HGm^QVr%vKlszfd3J3F)}lP!Ez!ce^W%k|4Upu zZQ}!jt$PRkh1YmxUWUO;+|HaZvI?*tPpHeatMTp8Gfm$hrSn1K&OfW-R_WL!bH|M-79wNFhc3UlQqN|r4GY+BoWhWZ5lk@}GeGc6Mbzv8uCHl*g`RT&~!@MYrM zZ-)ghH$#a4wln9>BttI-UyA&HFa7_#lpka0FFpRn-_^f9|E|3#26J<{(ZG1m8+-6Q zV}pJcS@j8-U2WOFPQ9Q|X}%?;1DZIe<9oiu!{J09=ENff&kq`M@*LX)l$TchT$iw~cE+_3ZtsKT0ogJ}lR)~w(e5h|v z;84S(P}k6|?3jL^@}`pZa<%2+wB9iy=fZ;}3n{JiTNb~9*A(a{%6BZ_pBFq^4P6*` zEXjTjhquOd*bQ_BrFM)k4^oCN)0~E0oV<5S=IEqz!L8EJgyIij+M6`(!h4>SwV$2q zTlv*qwyVs0;nJ+C#IxMWGGI$qN4rPVdt+b-@xBG|suMg0U$ z{F!8JWW|e;%=ezI*JEKr#^(a?l5B|`tD0XuICs<9>gD}u>fYhl<^I7Pe;MhOD1SVI z@c6r=*(>FPi&xTGIxdv#Jwj8GAxoY8Zf{@f=z)59t?EEh>RztNJUW+W!f!-yN%ma` zwxw(OZ!;r3Nw>vu1iSS2n@7ub2=?{Dt~lJd%AvmfPoKYj5yM2+?WyTH(pECFRrAqd z5t?nq4y{LIBkvFPE>l&1S-6xNynR{R|Kqvdt%2S+EW7s0c>jT+R0k0)$uad^5@IVM?1ATs#pEst<|CXw;@ce?fERflJp?6K-y)p zB^Wt(HWWU8Hj->nW2-yk^(=Fu8VtsXY74^Z&W}91Sa9d;mMUtKb|}5wq@%_w+GIdj zjN6X%cLU$)KO%;^6@9tSv!2(<>(rCE8n>?D>ByDl5SNa1J_kYzzj-~uJZRvB^Sn2C z9N`W>P#SMDO;TEE`#8HD`Gi)CMdA>qLvBT<5)n@q+S*aR+V{g@ zZJ;CRpXz0oTm3cT^PiTkf1g`+@mxEi)3dawq`z9R&Ua;P`d!=7-Jr?mwzr0AdJ_xf z9voPk`?Y`d`>(jdsp{VN&;fmIYD@OoewE3@(C&v9vddXD9{YRrW=YOeczn>{F3*zR zPcL|O9i4rxva4mPdHktXDSi_fw#%zbPgScdu=&A8t+I29#k=fdP>Q_!W7!FBSKSXi za=1l^^vM3FrmiNt^ycryXBDtV4l7MlIKM7TO#>sYBH;Q^VRHawNKa=^#z1w$;HFK+ zIJx>nxCd!AU!hxyt8AGbLr7;F=bvC*=V6=NB?#ff<1|LHdn!SN5be-+r717gGF?T- z(&?ipDk`0zL_ky4b7Tv7u<*R1))Oo^kJ&g{m4I8xTMB^Vj)Z!>uqwKr@|t6W#AS2T zD0p*uVt9ROzr(fL@OyDf4969s3P0!mg=qVl$Y5_tuXx>j_EOlYMlQSwpTdSxyF z;K13gQh!U}#MmyPz~-tiq}nc#x#v#3b%CFG%9|2Ih{h%9XXv?n518 z?HHA{2@b54OmT9fBUw{KGM4>Y#{gN*eprCGK*6H{{k-W+Wdyt0miG0kQQdBR&tZ6| z2>8P@7NXMjhgM5e$gty{qA$VgnNX{?Wt{^ylLkFSn-NiAd`mLlOH`gZo7+;njXJ2i z=Vus0tkvO8?hXXev+dX!;Nf{dbCZI+D;@?&3H}uahB<~za7|w4Z6MDgSVbO2<3-`~ zfN}imP1z;TN*yJ+S#`jtE4^|@U+`a9*T7jOEC2{3cO!J7U>;>2f7u~P6k{YNnfq_; zcn;|#g9un(r;Co0V)7Wa$U~GJy#AEhvd-OXEGMSY-I)A*JUPNKl`l@7O*3g4{fyg2 zB^VPdbGA~PRJzV1zZqjRbUCf(fU9{$OgHc`OAjAoWp1EXIY*=9eP)6pxFktHj%1vv z{DO<-)$-filrqmbL7#^}k_%&`^AD0|lWYHGw|(}(~5JVHNLD{xY6X|K56ydu35 zl-Z_HyfIFaZP7D-qSta#ipoF9f)Vc87$C~SB)G9|1OR!mzG%C@gkInIB&UH_hS5+c zpft+B09e|+;FO>$eYx2^tg;s2(V1^~g7L)qz${EhM&a{uZ{q@li!UyMd7bBeoS?z} zrDUkX!-(+QPcnKPjiHc8Pb$1&Ce?7WJEF~V>CN3~`1fI}zDf@7ZR>=kleFfYUPeo4 z<>;>oi*Xn-hFW!saSkwmBTui>DS(oWPt7-ENf4BQw(E58p-%u0QA8b1C%9G&SVRpu zjeDs@bd|${0qZ#@VIC=EiLamx!LaQ~4^i^R0S<~y1S1t(;MLRQo5vf+b6y|jREEo4 zci+s7Jy*4!h$ht3_x;;G>rkqXmdpZ1ocb<{>ztr4sDxC;M&ddk`yE=+kdaSUdcke4 ztc95#en*9COy;18w|&6t=C9)-NDMkbT;s)P`IU7o0k}p@39UjWwI(RGf4<<}MdK>v z588TvQHTwbdk)axjdy3i(F&!9y+k{gid1_l+!eV&VRD5URHdH~yiDgDichi|fZBg(LdUF;*=9#Q15Jn@^OC`#sdt%+tqMY!%BjYjwPPp%!3dwUHR zg(bc+QvV={WUEk&j}pl+IQNp3FM<8{h3^$J?mwM>EM@mBC`T9QB(`AnTyiZhMn1hiw(LsW9LO#n`W!43hv?b8(rf0^EO=!=#k{-NsGz(M`0e z3MaVBpr^N{5{_44^L0?jpFCv^_I^%clVga;ROmZD1nVi$=Z@vIqQua&3&7)M zd9avG3M4wXX}X-PWZzV*7W=_eqTgM32Ce|wZslt<_I zfF>owCuW zg`N-TS|S&N25VnGfqnjtWt74kY^E}c?w)O^P0f+RZ6JQHAmCfWEI#EQPyvid|9AVfr!7akfs(-_=WWTuvhyxvUcU=R{#~H)_TMqKJ+1FX!sytA>!n>C z``emPnB)lJVGn84v@I0npK$3EL5vRfFo8N)s; z6qHU>6Oq5O{v<$u_$*~diakc&mERhs^v(Fc*m!Q_>ZH`J0VZsgFzL{AJODf#b2LGN zX}p4Bqb%-L z5Dj1mVk6CF_K{%u6ulvs*)G^MGk*!4PP80xAUZ5)$M8~>PZ(G&r?5mf(@ioRc&kEN z8lAYlQwaU$>hMj_y%Pxps6U)ZlG%!nv`qGV+)d@S`d_h4VMY2_J; z)J6y$&D&y#N33ih3YbC2=eRY8DPfY|Vjc+BwPiNo3x`LKo+87(zT#bU>fU7%gZ>vPHtRFdejFrv)HYLMQfPQ88MR^`8hFP?2KPUT>rSFe^A9wD~ zA1WmQ1Ctx7^G4swz3nSmXKwvJ&|U`+tab=L;CG(8Jn^z5(!7nnB}I=Q_eE(_9mw}z zGnwM7CJ1pgIN&~rY@!biGIF|Rj>o;bjLMbJIcR4@l5#Ei@kx7^l-aAleA3gUVrUSg z=PPqbbh(a7Hd5mx1Q*YZhSddp3j5YHlO~#Gf|sdpSGv=Jm)03@EIw6$O#=Q?PB|-l##m;Blm!qTxE=Ea`cFP&n3R!|Uhi zM@_Ft#VCL~ir)a7wSpj?x|tIj#&=KXzwf{)MO2KqL$v7_lyflP-@Nd+6I8e%m=(`L z9usT!*gIQvGJ3fq#{RE$s&RtS7;%Q;+vI*RW1%&iVJ}f_w$%z1mDKgf(te}!wIX+t zap|*>B2rOC8X9OLuR`wm4PDd4 zvkfT(OFowUp$7fU7!EwxSx<(6N@6NUzdqxc;>_mW^HjE?13yyj|AUkHHS?_TTcV3?l&QFluOuc4K#!R@keHgb)% zj7qpZ>g<&G@ru~2F)K(|N+7O+l0l9U3ps9C7GZmH5H6+#P*f`diNvdNtj}t)^;9@9 zQkd2-put<~_1`0ML=^CeS+TRW)~nrzY&MPkUAOst>egq!kAn)oor+;UQ0p0-R|aS$ zXe2=qC)=I>z(j02`-88v?7eW$qZ1)t|jB43Lswr0p55c=r*k8n)zrzwsO3*504$_7rcwk|9?tq4Pmf zN+Xw|uaX`*^&AS$h&=aEIq?R0X?830F%QWC>Csc?o{AG(r8Vbyn1f`z;Fj7{4A(ub zO#w^vQ#zfu6oWK%+}(Vx!u;Nke=8yQg;KSouMs<0vJTZpCA2%r&GunItjwi1Xb+L9 z56q%Bi?BB^M?uDeaV6uM-1i9fm3&1=gx}adpb=8#Y@rYOA;MFLVI?L*PTpr`nrZuD6?D76L@_T=mu2bcTHj=yFi zryziXMRrpH+}!RUJhC`XoXDJXse`sfbVB>?GOxJepl9eFygf0v)lD0$pT^_L zoNxhlMuN{)>tm8uyYBlxb}NH%((I{9cXh5JwA(j8r6FJ~2W|IrZ%jHV|JYg2tqdO| zG`HR$=9rALc(5WmMECC7u(JKpI5<%{D8I7vUj(bH#@(Gq@N`2?SE`T`t3U56gGwwc zfs&Xl;!!yoHlK5hMlfcKR-|tsn+!NbDRft2FK*bnA)AX~OR{8u)3CwusV4d_jlWd45Cm{)dG z6D7s04{+8}d%w8F7S67y1kpDDmrcSE@25>g)~JJ3g>;-U3(~3#4{o?N+4c7Ci{%w7-PO2HoTu7I!J^7qj@ro9zz{1?7J#Dn9(LIs ztZ5`E8Dd&=n0{t>u;^`Gt#A0PJA9ms2(f^>kJsFw-FHLELevjWDTAY;8kq#(u_i{* zP?S*rU%_-D`AV?zsf4RaNs3`vNOlpI#F_Gb+sk~l+&X+&VO!BU#RQgih0 zOiKa}`{PBeN?zXm*b~WUoS4QOhi3(XtRdtrp@2>`*>6=ZxXeuKehLctL0!Xnqq7xd z&_ArfOSHQ5>ef4rqGbK0;k4eR)&kGovX!{rUpE7fKAHdBuTUPaJYGO(#|C_2o6K`k z&~<5Oc~E#;99?<*;`-NTp1+|=WB162HZK!5d{PNczNp0ehxN&7PA85+F@ zees&TSm5>7)&j&AT6wCh6m-O2Y!Y?$-mQgu<-Z5B|0(G#N~v63>0MjNgj*Lv)*Z|yfstLJ4vT0Cvk|5K{&uKpV|nZ!AOpAbq+}g$ z>DjGCGv}_*U#80|pPs3dCWM%+ejF+*TQgl7@|%cF(@LfK{_6KRmE`@dYhykBe!x<# zB3W-4JLGZXFz@Wp75VV7BG*9zVIf(d`^+3RxRW1(oUfz+!TsgeI5%OdriJERg0?Uw zA=gGdt3^4=l8<1o&5zwmi2M>6dVTF#Xuuc!wI6NeQ&*N^`*ohlafeHvM;x$Yj%-B( zk@1JT?p3r7K6$nm&Bii+zvAs6Ert_n+4!$5KI5R?Vh}I*FK{oEgj^hvJ17faD8`%^ zBl~Yu{&oSvs~wSRH)1g>mwvu;s2P~s=FoL(c%{7n=eSJ~M_TNJezYi&Ut^Vv;ak%9^ z_hL2U?uU0?oeE!S3RKJd*HR)@#}&%U)_PRSC~GaozUxtB~jJ2tZ-kZbA?)5ae1NRk0*dl}&$S`&^TljS`*n=htc|OW; zkeK7ME*#0e#83`D@@$#3(6WUUyV*}JDmSEW z*I0yvtljz4Uf>XLZS9Ul#~R3=vXb}UOa0eMd)IOTodyrB;#aqhTK`yEqT57$PeK8= zQmZ!u_CQn0;Ci027G$P0rio!a%3Kc9_{Ul8TRtxU6}(Yd;&B=n$d%P~NhOo_%Tit| zsB7pl*^zwknWpYYr%f$w6Ps5(WT3zJ3%OjrP};`#7&ck}^xYhO|3c0mosJFZv(MHF zUZt%_$7_`y2(VvkUJ)ywe;K)bxw!wJ!Ga}xOs9NiQ5>L8*lKeZ^03zI(|@CRj?Znk%@R!zexgp)wvKT9s!dX8IU%?4)0wE|eh$s|*R3 zWr{HD^0j-n5+6P*WAUyJ#|N+OuF9S)VcXAC`^$zTYHNk|N0GSCcdac>I)pCtRUE$+ z+PF5O`gv?#_4mZ434_A1M&sJHz2)XB?lV0d-gZHj)bhOuFNORE9hmfwyew-Z&+H%829+~^w-jS^Vr#Pu*%M~)l5pI z`tp_r3>LpTgibzwY9UKaPoSXG!E{Ckvw!?+RDk*AVR(!Y_|r=0e^|a7P2oQgmi{1e zj?mi>IFrn~PLS86ED*w4$gvEAW!UCjlf7#$8I2J)-Y3&$za*{Is@}>M*O+wl{ZuCA zzk=yqnQN;rTf1le*2OcFxTZ5-pJ6fCQyAEn7+mr!M@Rf$wn*_G@7Lb$9k!YIS|E20 z+DSn+Y64tDX!k*;CB%2HZdhM5p@|$z@bA4>Jv$k)I@4Rc&i=*NI0{I@!NBA%9^y6J z*V@SFS+35I4xQ`TvRt20w$hW}Bke{GS$r9iy!whB8GlI4j{y@5k3 zSyQ79H|;eyORrYVmK7YITrxNIUPmAyB9`J>ttB>A-HT>@5BV>i@{>t zRZ29PAbLgW_f~R3xs|v5yprXW<}srSJhZ9xul7Bgq(d+D$BMqs_M~t1h!XlkiksEh zj|EI=L>b8nz+I~d+=Ai3Jw_GQl*h%TR5c)9>V_n%y1K4)tBsQ5)%(Y%pIK#sUpLhv z$BHB45Bi_z{!o_}-q@gx0#2|LfxPWE(*1Gyn6|S7)6)4?t;w4UZye+vZ6vAy3IRHP zE7o50N|5JQ9(@@SSHds;?4OQhN5`H}RK-OpOr47h0&|~_MMrF7E7Rm`okG6$t_}6B z`mc?YuY6fsuyy|(xAxP4Fn4sOSZr}XGHJ0}>*ja=E=z@T&qg;LqV}$qI9)hoRb{8p zy*BT!+JLNE1fCa%5p4?}?=ITNy*V4Q4wRy`u(8|9W840o-=wPw+$Cne*j65x05Z34 z#(z9bFo?dRabQ^kV_17P`-Q{JE-I@%ERb?0MsZn>ygv7H@U6*PJqD`t-D|<~E6=w$ zJdZS3sSTM)*>g#veedUBO@_(wCaf6ygWCRfesV@up+tvKGfyc*}dewQk*Pk5|Z$SknUQ zRGCxt0iA)bUaJJ>%!o$OLg~-Jd|g((cKlXS723m7ruHN6MWx2S{9uK6O0<6%sHCyh zP5Yu;!TTaXWrY%FT{o?K>j^ou)2X&X{xz+_O28RYoT#(6mE%X2=oUB6M`$RImKq!k zZhEMraO>Ll-G^14M@mM<7ykS(^5bCko(=X-XMs}d@k^04dW4+wVd#5U@^fWkPhi4R z8j+lzTHA}RPc@O1k0g%rNfa|)|9FnOt6SRPDo4DAGz4joBdbI9g&2?eB+2z^Wqo{B ztj+$svViY_`iW)kHBI$zy?>41PH8#U_|#Uli^$l$SxFi#9j*U&e}lsz_x67t-6!5R zQrAJQ&pl6PbZXW=>fDdU?Rwo{A{B9*0|U0v8Rvk`8gzV?=NTZKP$=~I4Vgl{@fUX~ zR{Kti?@;q>f@#~2VTd~RMeaZFD?$shKgFMgA?f_4T!s3BpM-iztLRfag@h#*Ek`SV z<~h%iLH+{ysvudo4F|}+!oCrghlXqyzdhw-v4eJ!ndg7Hdnm2#?+ma(;yOxHevmT@ z^58l$SH)(tf^(SOPy_^B%=50A<$5}ubE>g7{Cno`8#Hj?x*egzi?w&w{$)+Pz^+fo zeeQM1by!Xu)#vIv&c9K9`_{{5$hw~*su9>Xx@*(iWw}dXjEM@TAko_;>Q}`y32c=% z)5;H^7EE?8(B{B53H{v7;Y)3?J5n4lL@!ZYN!)8XJi{X}j^L4Ps13{AW_8t4{b3Mf z3chhl-jkJ)xsO)_H*Yg1iC#6UfO&s0($cbGH={0+VVpX{a-WctG8Irb%frC@a!6|g7#q+Rntrnvt(ist}MrMnZEFDPtEK-XLDcD4qm8qRu1JXapj)*<`N7{d;# z!d~TxqN0#QLzX>d2ii2n{nX;a#iWpXc^*poKIC2ZUc&&S&;_vDM!p`#cZVwEWl5wn z)x3SXv`LAJ`SR!EwcU(y7Vr>u$uxmEiftvW4=uyzIkMWyyg4mI2JzfjqG`XLq>+4Li7HSZZf4s$GNS3KkZ~kd$Q9UX7Ge4vbTfu6r zFQ_K_G>E{t%0I@u^U#(AdEx+-f0lK7W=WhZ#R3B9gCInBGus+>%U<-Ea;iwT*U#XK zQ}UfN0$6WI#a^_Mn9;GKLGMGOka3D2PeCIBzP`WOl%87sgKh^44t*#BQau;gX6v2 zLAkb_3#LQ~?4sv}>yn=pJ_d0KLQ~M3useYO86QYgpDwWDi_y3WYw>3tFTo|dCC0sn zNHLD~O^Gx4k=;K&*0aPioz0J6~ z3;io33&Y*8d=Y*61hr%3oZ1o2jRfGn_{6A;X94wr-1HIIIHzN`I&&7xGW zxW>P`=LfvxTMO{}6QS}C;zkBbOkN1Zh8T^zLVvPDFV2rbumTpZN=eT7svhaRChW*$ zO6$NqI<40qyjAq&pI2!r`JxX#b-cYw>s( zQ%$Uh2`QHty}a(W{XWEKOIw1G=#C&kw$##$b;J;bKZ%H?}+|nm$YH*+&n_= zrsu%1r`%XLuHAa?qU>^le8g3_3$H)9HqllE&Ylv^k=!A|fv4RFF~W0unwnNuw_)ik zcinzG`7;$K@I`r}hWyVsnTs-_ywMcKGzo?TdK~lB*vH6K%h-!zE#wSi1e>c#7S}im z%@N2^(%pPX(mfCC*7(71w|`sPt4E$~!uB?!1RY%nY;QDSN9Dw)Qyry-^8_}|AL7ZF zU|stitL(1%Ml_E%dW^3|mqXSq1B3F^*1gUYrC}?%Cc*P!*hj78; z*)C+ar_v`^s3uMk$pN;O2J1BDd9Yy&NHVh`#@vT%gF=VPY>SyrX1{#Kn*A@4odc(voC)0X%H;4*#a6}wqCJ= zNNWCVf$Gh@<~!7&3mZG-zUFesGvW7R)dO;gl}(*tO5a2iD2b$Moj7fX{Rx>61S%2) zV+c(2xY2D?8g~>yOwlBpu=X)Qh?50Y@@lO>?I^(wI?eF_j#%L(Sl7|4JdDOK^x2XJ zr(hB1a!jO-8QJGGF+XoVc39BxbY}u)l~^P@D@5*j6*-Q(^_i$5&~Q`V_wK8S91|Sz z{cd=xI$27FI6$kCC9-aWTkD&R_kmm?kV3^Lt8 zujTa%Y-VKZZjiC_nB$#aUQSds%h z8s95bcW82o#LiT+>@-crkfOjrq$UuZ(h1D^Dnz#%&mPIUcMDJ$_$es zi*8xj0fCHxv+_A^jm^#)+z&P3KjeRJG4zko>warEJNwUnv|w;cik;9timGI$)cWh1 zU1_U;T`9y)C`|f=$tz#`H=(U!L^%=tL%`*zRSLw zvz8x9(n@L}ZRSeWf4l{<#pzB7ZKnu={0qoLM~A_=TtOc!)W%2BkdTEXf;^;gJ&%-3 zD799Lq5aA5?cSIqPVtBM!5hi>Xk5YeBN46K z_&1eqjAWDOuq)1mJ1BC5Lg6TlmIp#37xQgD#a;~X6-XTv$&CRux-SVJr%23M4Mnto zT|9y~s4FZcGkdc08L-MAaL z2nERba(!)B%_|It6fF7(CZ9y4hcm1}iMs0-@Z8`>o!2(5rC=!GS-vd*l4(JE%}NtC zK0K_D9m3{;d~kiOAn6h+!!gGwtni>WraV)b`d&J8c17ce3seFv=KxqP||$L2SFCj zUWD3gBqzG!;=pC zpS)zO1^Uu0NTk@NhnP8p8$w21m45?Zy8jMsG;EFI9%qg?Y?nk%_SIsD7Uuf`Z zGxt$MWk1zap?e7JK^1sHZw`|4o3Y+v`B~sQ*Jl*P3JWziP9lRI{rLlh_1apdZWK}#G=rAP&y&`^e6qx zbE}Oy2MjzMW=2|y{XJFQ4kf;EA`5(6g^G@TYWf$gFXy}}kK}@a=mX57kmGhq291h( zZ1w%LPcWoF1rvCSfE2RTlHx@5J^u$~9VibKh+qk`2wB!out&5$^GaNJozlFkeD0y` zWXM2^n8DOwoIj@UXz)bCL_xW;YGzyJl5=utVkVKunL>Nq2H{qB9;_>5vx{g2@cm{O#;&y#0i% za0E#LI7^X3m{v8e=!nUeOX$SV_Hn^9PUVqK2{1W!VuQ2po}YrrI0b5Y9%E@G6rPzL zEp^Jkageb!7EV0I!Z9yafz-1hI^C%+RXBzt#oj|Pelym0;~~}Q&F;%Jw`UH;&^B`e zz_7$zHe=U6ePBzo%Gqiz!95Abz2wif4U@^8tycQEUAt0Wa_gToO6+kcZ6-ZnlFCDI zmx;HTZ{gO}TV&%kt5O*mg#0t__2)OAcK4gGAiB=s1~18dY8)+`&IIdB1`8?gAedxW zFYuB-?~$oD6j1yG^oxJT@@lYs|F9qmanN|O>3_3W`Qq#|X9Jy$37WG#1);t}?~;@r zgUk(tq%(|CGr%mNU;0PAhaal3i0nV{(suVVR)A?9b`JfZ@}ev%{KXMYjNwY%r*AIWy>iAX}-L^oSSo%7_7(Ju!|nde_`B?6&6oy=Ad zsKG1=wZsvv-&`j={F07jdY%~mB5Bo$vz|ipn1U?H@JJx$N9%SE>MWnk{@+-!(%&@v zSzt?#USPmbm~#ALkwSL&LUGuEYUn-Zd*%F}HNGHuNa6KXBA=;DnZ3J~_O5)j1#e!3 zov3Dm_`4P;EkIIT_zC>sQ@G;bcij={#HoEe_l<(7E^ALH3h6ZdZuW;N#d^cbg+q4p z2txX1g)ZT|_fi1TW4`g|+IYLaYa5t&S z$g15D8nZluXHTE5=k6qx#-h@A(J;HXE{IX7=LUv z6&g77&i`x^SW!O&Zi&xIsT>6vR;ZYFCi+mEZeAW-NBhksdc`2m68mn?ER~7*hvSQ70XI1dB+Cf+H}1sQkgdEC6J9@55|l+X zvbfEr#|AJ+XWpTA)B?n-OFMYA61(~d-0i<2-Ve``C>%8b0myn^EdQC}>}PvnGpIoJ z9VMpl9(wpuq&!l>=PURnZ``kXphHFGU_Llb>dyLxIz=&JQDDLwjYbad)nxSUJX@>h z*X8SZ8<ZQVk70D(KAWBgCC6AwCMdG=)?WC5F&BN%#+8&K~IO{Icx~rN#?=5gT9Z)PIkOYJ-qg*k=Kl1 z?mq;nKq-X$AJyIes4-S3+VJdo$T##|XL6J7PXYb!x?6HFsrqMUMl zncB_03tQqvWkl zh@_vDG63hq()n+XzI+qJCqbJ09GP%#@K9W$R-n?Ik{BvsTp=lqPgRaS;1KzNV1sI< zGmbH~2;nem$5%zlAk}y9RNs}a0!?Aqx8PItZHI+<26%1#Jdk&uQis@|3#=kitzCBX zQRj(G3d%vEkKkbGb%N}J964M*Di6dW{_$P_DjSz&&<)Wdz>nyujao0CR$oZkTYg&O z%Q+ip1`6C0Bi08s+27(Au6HI=f|cfyunY4c;-?ikR0QEyjS=u?s#xOXMpF59h+&ECR5wIVoJ&8sLF>k%{k==#1>(2SVofRX+F z9<+vDHtQ*s48utXhNV=2=PP5+g>1EBAH+X=xU7oFD~<8q22wAlRgWa46MV7_WdUCj z0Zbg#3P{hN|MvPQQB7+f?-G=j>d1)e&|v|DKo{p%#v(yMby3W@4QhQU#cOT^iF>$U z_OnD?3uzlHdK(_2Q~&AOa+O6^u*F3Y1B8@@c~!Wqyi(Zhl0Gmr{4KSq2yW~gkS>So z|0npGl{>KcS`|-ur$GN`-ngsRy<#15_I^mh7n@!!j|FkhX`t^L%+G&MQad6+x6%gag z)T%3Bof1*wd~R}zQcwn@3J^YT#u}h;7gVb@s3c|=1PvEmRbYTlXs?l-(j5_?-E`${ zXbKw2XFcwMSxg&TJ`Dm5W76{p+k8mPs{nWCe8*F&1$U57K~_Bn8yhwK=Ex|N$gCyg z3j}yWw5Ra#e=B`&6^^EA!y|SJMW7y?Z^+`kM`MyP>i80Sevz;-^MCMSi|Krtkocdj`vdPZ3LM*4<4cQpSD!CWI*=7 z|DEg64U_PVHh8x=K6i>R7e>^xx?kDfRNKAdq7gJpXrB}T&5K1T1e%W!>je|hDwA@= zZv|rJZ7@J8FShs&^UeAqO||K#FctxLJf<@Jg&*w03;!Wc5*#l0491NN@GguY7Cj*w z$>$=-*M&o-VA-H#1YE9saq8+1opB)|drhM1GcEubKb2cY z==#Jgv9?Q3#eZ&7(;9dlDK|zWTNO#L%7Ynh3Oqgq zKGs_~Rvsv!sRUq)uqt`yp*v$CZiVFX!f|7BNg&sDsi4_d&iC$u?|#*NSN^Dat71-* zIV2gP3UI)X&M&}Vq>dSpt2P;Fow{oFB}nvkZo01$;0H1Q?atBrZa=@o-iC|t`Xz8z zOI!rUl&<1WLNb7se_Jqo`9&E)#)E|Du;b6VSQzVbYhF8~;xm|g%=OLqA%;G}MNWQz zE&XHv6>w8^Kq!-J&<-L1J?lrKX&;rNEN9yvZ*%`u{{`QhJLNC&Jg&_)jPFX$Z^8~a zVM1+?;zU<6u+r0)k%t5UMF zK=ell4hEELzjB;VXd$xTl&(`x51ld=O7FegAP6u-68af0UZ+O0EXb zc{}aCe>!WE=?s;7vqBN=r_LUQnEO^$7M$nJIm<6&Udx+9iHc3Z zq9F?f-Qa_l_2ffZ)p3TCyrN-UHGS~tdNS7Y+7Q2A z`$-C2C&9aiF=`9zMR=nr{I3ZEWY{;SBSdi1WXOAUvva}PjFh(!NIfUB$jbBSu zRQTBgB6@Ya#*HWp)fQq26|g@|5=^1oX*t%ly$kJM-$kk%?GohM%Qh~lLEFFJfvSjb zG#w3X(vB@LT5p%B5g}U>QOL{*Ql{>G81ioc!^qV^A%|^ISc>tz=n5EdgK(TPc=pN9 zLUu_IZJqYEm3|7@7tP{cI5HhF%Nre5m<$r#T5ebB9~ens5KY`^@UxI91x-&!!HMad zS4BFC9ZGlLie$aR1B-V$p@V6Hc_9RQZ=UkGchfxgafMq>-^rq(Hbatz>C8^S89(Gt zUQv{rQg3UBB*qZQ3TIY9+u}o>g7V~73-+y?B3ooj#%8X{(;a__+1#&GzKb1`J#>W_HPvG*o;37byD$&pdzMoE3X8M}BSwVu}1lr?1QP8Q?BTqr8{0|Mkg`Ak;o+1#Y zPPBX8`=A<66oH;KhW5V` z5^-;H-AbXp3QQyMzsos7a{y`QZzM&XDB1VE)8F*~B^JV+h|1CS9YbKgTi;I8JtDlq z<4PfWCBsC?_#2SUBf|>Kr$%=sZ!v>rDULwx0_Y6d_vm1|0z?a=FD>%uT;}4)?m_lq zV&u;~6d3#P*MX5wcwT=Cb0>R0_kj*(!A`FgCp_PQkiP&$VuOjbRAx9B|4QnABpin9 z*RXTqUDs!jXQ(l=b>;!5gHB%Sg1~J)Hs?$g4Goy~`$)Y^4nVcap8etBb+;0$A<=Q` zVTlp+>oHh5Ki4BXNMh096aK#62P2kcvN)=B*FiG#?|*C7N;H&$~#rRK|cr_wsE#WAS%J#=fWqZv--D)gmK=If!q37b(UcFO?n zTPd^{wCE4o|H~ImE-8HI{bxRGYQ_g&j~O2+Jn#0Ucx6l82c7jNyuL%L)opATnV<^e z=14e+oCB%9L43*s|isZZ;^9rmj4!>{9E ze|K1YeD~u9x@*7khlq=HudXzV>#3_wR6IBy>XeZ8*S#yvxcR=#>*hR*rsai-?=Edy z3O26i*j}78zMU_eqn3ujUT{$W6r`;&bDC#9UOtx4xU=)%A&b#<2dy$}X*$oW>aLay zhckY;pIjXfE-@uY+58T@;M$K@elDSm>Bz&kfk`xuv_ zw8P-HgTAJAc0?nZHrt@x*tgz$dCq~O@~u$(xIrTOmG+TCQ1112wIraO160j}6h~qC}b5*bKRgDJq!+?;e ziN9mpBT#B%X8pY~E6tTUFABq~Y@pv)YMJ(BwS;Wx_ZkNQBt3YMb#y;W-OF^AOfO(pJJ>H&pahqoV8;Y#~`Y&`z)z-@H% z+k4B0`iwRWZpg}vPi}r1F6esrH8HJa`q|jw{2&*x#lP7%zYix)h28l*^n*N*HFRYP zM1=1DxODQsgOXLB#nJgQ0s=tXl7bjG|7)rVy=sE&Ry+N6Y=5Q*!3av^q7SCuYVC$3 zQ{i-K{5G@2Ngz`NiR?b`4&2Zt}6b1*A7hW=P^;vt_503YSg!@ps8z|DTD5oE1 zss{Hi#EyN)nP^z{)m$%A_f`|MrAQPwt3PPZ88x4Z+mcXWm#>4WMFaJM&+d!We4Br< zSC(#$N3n!Sh8p6Zh}E@ze>Xry#kLXXPQHW}QqYSlI@bN-_Sq9NhgZ+cloZWRzqq{= zJv(~sQEuJhbkfb{m(>Z&Q=)_M?ni&DEZJ4AyiHoz_b~l|Uv8aD^+a=@a-aUG@-KZ4 zn+IYR3QznAKV17RzOrhf-@LgusZZGaM_u%CuGGo6b$x%HeblS2jgN2ajgMZ|efwcw z|NgXQru>&BIbyPxh={o8B8D1P zjVo~6%Ccs)t5zqw7J)o#mS?Sg&D-%SLZrImACIln*5y3+Jwh3)$q->l1MPC8{Hk7> z7Pn2Cphqoo4eVEAgFh2uB>^PU4p>UDdJ9J8+;KFegJ&0TfR@N$nx3KIEz@{Cy<~tsf#wbdn=wk_a5! zmL9DDqc-1{pL(b&!ES+l*yYlxxK>U0LlvTUJ<5wh>r4kan%M~6ua>0@e+`vaxImiG zHaPeYbWz3+c^rm5!EyDj5y3m*kt94A@9+o^B&{p^K43)psV!|t;^@F@ z9-3b2QmE*GFR_zSQ{b40-PCii)se>I>XdJBb-W-A03@?zZo-CP!u2F6CR&P_rDfgqT0efgPt0wp30$ zViz>hy`lw$ZVL4Laa(_gZ4G#lqtM+?)j!wBk?hQcnpyQZq{r|h!12MYPh3nbLOQ7n zM&A~ivBD&#VntZTIOM!Rlv{vV1>^pp?aM;WB_DO-#aDhL3G_863aXU7(C#o}EiwBT z8OY4&3mYVRdbNZ0axrYhOETHU7hmZ4R>(lnK@n8XJ4?3rl9Rx37gh!aZ&0Zz=_$n? z6U9pqMg#0qtzSG#)@BO;CLWK?2x+(%z!U?zKAuF;JpkRc&Mu{66jSf)od4fmDhLAp z(tT;9S_fbn89FUgaE6oY#)y$GrDfb1|GAh&3{|eReC72=mGq+Xx8!z_gOi0E55Sbt zJ}*LV`L!2 zE;2WK+X?*yRkH4G;7FqKVI>@>fM@4NpHZZwGoZ|zZKz4@&-+3Mb$m`>UwZZKRO{Rb zG3+J-OWnMCeY2*#JN~LDz=)mpG#PJcW`{hzSXSWM_@Y9pmG~xfMEAKfS~)SJ2)fd< z4;05Mu?3D)7M--sK08U~QZBVr881yz z2eQI9K3IK|;tGX0U9#N;>WLV6TDPm@>XLFt< zE76faWg4+D@!$_kVi9p#EX(KAUc5eA9MrqltzlEQA4s4mlLwza2p;Bk&iO6Qx93jO z&wtlP63=iPU294;JC1S;tC@|P*;2Eu`4Eg|l2kFF z_h4|m;yB%wSg{wNr(q-N&T+}NK$HgFUm$4yeKiJ;RFEV-ap$H!xP!qz(kT$i#LHG{ zQv;6_sSv3({DctSrCP24ILVV5Ic-0v^XszRBCV}6v^kshbU z&?DkIX4CHc>}nk8;|Z=~JB!ueMz5((C5{B2$xxyT0GD6PrGs6o7A5O~8p}s|YxXyU zGFk}i=npI5hdpXm}PH>pAq@nxPs^t!P&0fLBRqK~q)3d6k z<~D{L!B*#mvO^sEq&G?&9y~`Z2>-y+Q&OL z2NK0tog8K%wq1qAJ>golubN3(F9&8b_!;!1%e%JY`fD_6&W!?Ie;ko41>g&@Rp2>W z`WcMa7Ip)YB}vRxtnj?kmc#gm&a+=D);!q|iV?d~MYsOkk@c^WcTvY^Ew_ArXtJ~E z3`LR<5c|u3%DbkeU*)9+b^^_HHOdTxYC&#OCXL_Y9r6wHH>9!#I@O0B|s9;xYjYh&RpP1?>9mlg9h{?k7yl%`U zNzX!XJh&!^+lFv5e(jI2(il3XEg(``-F_jOz189 zSl_wKEnqlQ6HlUa(okC*TjiiFO>qZ~P;#3}$-ec_{F#E8VWFd66;P~(6B}1U1 z&_oytb_DQj&WZgJo^7v|xr`_*2|RKG4eaqCir^W{!}~VADSGlkOn`L%qG>VjH{9!> z(lOIIRLmPs#Qp|kHX`D(r*^IbBy+Bd5zH!BlFRQ8&(|779Ye9ZP%Pua**Y5dcZHlJ zGW`%`!x1dIvh9_?WhktD-kiR{zAvkzb;m<{I49%YHdWQ&3KCxM_7vkUeKajx-d& zLjn@j4H8@^UoLYoJ_^~imJ}wm1&?4ftg5!fu$oFiA)UL3A{zGfvqx^X9&;-uXf3)B zT2#M5;XxJGsQyIkHn5|d^FXshl@pTBGa|NbKI+=YWy|&?%amnXzB?O z>#s6&$=)N)n`D3uXCYYfBEM&QZus_nrRS!Gpo>X`+#JKHd~{|a9n_3(>QMi@Zr8(T zv;y#$%Q)I}`e&u)?)+maCd94_Oc?b!fpj+5AcEJe==|D!C3ELtSz3|%giN5}-UWk| zJk^R5-}T1wUUl{B6yTNIDmAyS!W}$%vyw`p>_z;F+xklMwdw|6_pS@QNGW!gYWO3O zZFta8E38{PAn@?Hf+VaJ7*tGu!(^BoDf&VyS0+#CPy|`>)vg9#9W#vtHnpj0G-jLy zvY{GiWftF+h^X^d(EGHF^iGRz>uJ{tyYyu4_sz@P}M|p)DFH=f^hM;XLP8VyVT8;)kxQ2EYd^<8!S=|&b zX99uSZYoy6_gH%!tLkLe;0qRadpPs%<*k(s%R*A1f;QU>Ew-Qy+OZD1v|pFr1@R{f zZt`)*V0lt1GnTA#R3^!^i66a6^h+-047-#=W`pA*1W9Vq81KlS!DtlrS@~JXc4tvj zh+kxGC9j7XI`Q&DRFc{y8qXu~MlW3+h_uhn1ySBghG1_GPh0>uhHR?;3QR# zL?PLuw>b4ln@Un7wY@=_g`%ZadPd%4xY5NE5W|uv{`P_-jsM9Fk{w=%+EN7KpkBaD76YJdn@mmO zgeZ`9Q;!^0(gZVM7*7*nKYiRrUUxWJ(8U7g^x=@!z_5>yGkO4L5tc8fP1omA@EC)5 znDSDL1^zS)^xEa~%!4?9@g~ld#ZuHPPXFxx_;w3WUv&eXYj!Zv*Kec1)-=@U z0hx50U@b5&cKqItgw;Pgj(=Ewdwb8vQexinx02g`m%mtf4w7;;XcIx)jEBPW(Bll=x&iQWoIb8#NP8oxHXjV5J) zW+P|WIC|0DWR+zjzpqi|pH~*F>Q?{$k?W5d<9H8bcoH5%#yz4t=JDtTc4)FVg+d=xgfJy!i6? z-(jg$hZn3CBi>X+!pel4y(Vs>fhgettY;u$sc@wy$Wf{8dwps~^aUN`ePz~~`dwwl zZ~5TVi$t>(VB&a&!xhC>fW9o%a$MM4Nz32TPGOG9xTecQ!_RTy4DZaPxw_#}}#Gv(vBNr#!gaCP>;%5dtFPvR5Ll zYgM;9mrtB(WMcfPVQ$aY4M7#CRInIebs=r__`tE9 zQ9oMG?*DM|hu`Vn>0;luww%(#Q6AUdNbx+#9M{AE`&APdwCGy6eYH? z^L`$wpYKD5W|Fc^hn}BEd!7PNHzZ<}en4sD4%BIOh;z8Gt};SQEHtkMK$nU5(b_#* zxMN~9CO&lZ!`}K^8tg3$ARo&H(@S>0TEC{72)oMxWvI+H)mZ!=E zaga<*pi~C3Ey{%C@S6JIS|sR7fCwB34+?QhkGlsI+x=tbO2E5vtC&}MM@nXnEmu{-t)^l`(Ljt(>^AS);{dM8^slT7{;^Oazei&G(v`t;AUwHO#{IO`XZ1`d zyX$`y)HL32;rr8WBQ8vV3Y@<2Ld`lOh0o)$DjG8B96&@_}qwt8eQeicvlecf?(a z?YH{*RN?$mn!L#am->ZQxcHTy5>Xuwtvr6kbgM2;X6Ar5b|frJ>`?#MoG|h5&x%z- z;gyfQtA(cqD+Z#5G{+{g)7&+}IwjJi{2UG%ah6V;qP*9Y(E7z;>MC0qiJ7}E!=ZLu!*O2{C~Qoy?o%T-N%3-I+CGVY-f@$d%OPuc2LVz?m!~4e?Nyep3TG}|M+P2?=$DAvgSX@IVRs%AL7GGu5~W`eDaamDP_toERoc4ek#gF zmF2)RKoxXJ;&RvHg$Yn&7H4lQ`^MbPsH&(7ZsywPCTz$5agp+mK1l&zv`1@oBB9pQJZPlEpv z&>`Abn|}X`_2nYlVjQy(EEj-EFETXg*7Q;i(0#gLaVL)$n$8ZM)0n(}p_1FxX^`<; z?+bWNXTxo9hGTYqUFAxeZz9)UfpjKg_4T}ba$XM5?u`yFsclLkhn*XGQIp?xSi8yuV9ZoC(pz|5i z2=xcceOLeCg#K~KfE@-8KPy%|QDJR|xq72XAvr-{cqes*9vD0q)HkxcsL6ef2&v{J`-`@G)nlL;~e!O#wWt}T8UPPAXnk-zCI~*40KhS9rG14Jt{yv&~@YAd2 zh`O?Sk-QI_y4+Y>cb$G0GWiHausrV6U`@J5s%7Z!&g;?p_N$mwdgnMi~LRbDlF_&~L0b%97E9(;GTn-lw)krfs9 zSF2w#u&-#>D?hW7di}l@hn8n|&h~8S&oT4#(ifll6;spdSVn$s^ipT=oqOZ+jlUX^ z-8K58UARMD7=j*kj23m^1fUfDO{c&exV4t<;qF{7at0p;cFG-v(w+pM!MKvUTyC!LZr1Rhi5s=`9{29SNNT+AmXPooI zmU(PlCq!91NH?Xt%&HbGNqlJa+hy#~Yjq(^%0WQKyz=u2gYcr0{0#n)Gc z%)c)QaA5N~fQ)U{eltEkZ$J2(M%*EM#)fxE>Sp7z~w7;dA@vD)r5e^G!_xeVhp!?;wr;v9~98{oLI+5R6CNhn||xSeTO&5Y;AdHH@UrQqMWhhyVu z$4k;AOFB^t>H~UTb%wvh|4e^0ieOjx&e{fSE*Yg6)rN1#Lz_`sFfhdriaW!BAo-%p z&Qo6#kEvzvYS^?5Jn45oxFI9Z9Sim{GPZqq7=0cIICC*aso6A!0u0}&)_1@lxYs<; z_o;a);hFJBSzduXOF9r5VqYXgxpFaRwdP45J#Z+n1Ib1Z z_i@|0#ybTvi3h#3jP{9cljC~VzB>{?ju2si2Q0LPb6E1nd89BecS%ak+OJSZFdX(Z z9Fc&d_r29$FWIY|NPIp~FThBs+cZ`(v={r8zUE^nQlqw@+i}({#f0m3K0X-x=My1` zW|!|Lu*cox`!!Evt&UfsE4Q!R-YtnqAp%kEKn>S%zv$&OERl-MJg**8|6oZW!uFE_ zfb9k(&NtbR)nBc{uiy#4UdDW3F3>3!%37$ubCNfRn8 zip=?&h;!fpeaW0w3DxnrB~<9C(6?6lzc5bwrB{AQAD9`w`PlCh%|1?Egx@882VO2o zV+sWPu9!S?%oShx~P!2x&M*_Yk1`PCu8Gcd&Ho{+`{DmPU8Ebgy9(K>9 zwKyRWRM{`e%5uEYLA=FHR;(yVL%CDO4k~O1UH@Eu_FXU2^|e9ieG-X@_B*yR%^6W# zo7BC=a8xE03`*O2mE|t7;#5i%iI>SfXIVb@t84nS$XK_3_au~E(r~hO`fZ-^kG-6+ zF)I(aX)0V22&-;0uYi^n>L!$JhJpRH z9Sc%;|3~UOnwP9Jjos5eETcB*Mp zeffv_t=kW37#xMW!V~Pgft1#0I()YxG~ylN^-4zx+axt@UEy3TiPGrs$-aTN*_kE$ z+^j@TBR!jRIV<7e5WoRE@?I7y|Tweh5Cjl+a0gdcLH5KBITVQrUSmp!uo z#6Xf#_yZ~7&7?%h4xB>L>&^)~UvZ8tJa5d{Co}EZ$owi3`UmDHGedldfT}PUR0gpyrt)rb4K-s==BExCAev{lo`Kw zplgxUEcD!M#cTX2m9WLBIm3M^AWY_ASiT&tB6ag_D26lJ9zR}x{dr0oe@6LKlCq6- zuW)NEH^&-l3-{y;Yb`$#IOh1A@0!E&wIIcc!Vp1Ob7>uRF|6J`(HT&w{Erjo(|McN z;`NZY!h^l=jP(WIFr1Jg#8U-tW+px1p&|UqKV(sfmIO}2{A}On^VgJF)%SJM740e5 z_8ex7XS$7cC0eeU$;LhxAOumPe*WIuZ(!inQrV6qO%!q8w8*1GR4)9)|gxq zA9wOgUP^*{&vuEn99i?LT^MiJ428EvYc#1*3C$wIvw=#q4v1r5uU8k~2tNYF*Bx8l zc{B4rH&7C`VwGO7Ov!;zo-~Shme*pbB(?nILy8r`EzVz9$7N!+{%6mABdwDlK&a$P zah}B7It`&I9!U}_8B#3+i#-#K*W!he?^b2D@?)=tpimjufTGh6<1O!T*s$%0H~6q| zhKm%_XP?LzDfn$aCB|EvRs}DRDs8kC!PATkZMMP*K@Rg^;}s?p9yp0TlVh0h)fIrK zxsh2Y_ZzieGcm*m@b4~e=>d39lIvO)I52N<7$SdX z__*Jef4c(^z&F@kQpu5Fh!5I z56&q+@#C}yRA<#E;zV~*-WZbZ!AK%VBz6ErFpMZsjPgUm2RBN3dc<4mgfdg0_+KSZ zE3kYZ>;sE(K9)(8ZOa8f2no$}@gRt$ebcEr`F&PbbKlmhdmoPUh%d^f=+)8^=W z1i?-w2%?)s#Cmv>M;T&=cSmJ^35ClC%_gqr++#;SzKIPboz}J)PQRNRgA<)mUC)UG}124Y+ ze&~v)ZtCoW-k`eo_pL~=H0EBY412HqA9w9H4HD%L;7S2}W9{j1AAy~ZP^?6&K+lpx zfVIG=#|07uvZgdf3GWuv$IO`CVji)1Rdy6N2H$a(`Hq1V$t2BfZ8Gz%J48gJT~x$98fsfYikAH6cQ?rOU)S3t&%RiUu8QIu0|s|;kU3GJd$faG3DUFuo6Fv zhRa>>S%;h=tS=BlQG0f|_pd`mf@F#xe9&d7+%;b1Gws8PS6J$1*=^mVVDddkrw!*2 zd~d%1isIv*N~Vrs{~=+#pGw~K4!fU*l8Z3{zPr)Kg2%*dx3PLlg2&VaZCf#kJbK}? zu!*$w16$aZU~=EMS`)AJ2R{hQ_x-oQB_#*`ES-Th22Gd#xkaF?m7DBG9d-+}SJ;Xg z70vJ4a*4o&m@ukL1Xf$4+U%3URZT+-8)6;_E?xbJtA0Im$R{L77NLRDWI^9nNKZl} z9}c+rkUR-r_M6Vo4|NnGq02rqGSJ;JZm?p#`v;(I<%jZ$f-t1M0z(AJ;WGNb(MddWq&vme5xk`B9g}j zdlzqQa0^^VV<%15MWy=&mB^3 zNN{I!RX>7Ff(JRd)LvQ(jx7#exz}xYEH1C=F9wP%)Xnj$-Z|>Uj}EH?HGJSf!o|aU z6m{cyiU`!t`K4NoVHLPMJ$Nciy=b54+<4*v78Cm%4XM%p0qZ!wDUJlwEj!!7sUlEm{|e?DBplh%_>rxU?(5w;nXS9PHAOV3fu zb))dHA2QWQ1n>FP!yItSG7^X9McSc`Futo($DY^d?mZ>`7)6P|;63&K&aAWGIJy%3 z@K-IgQoo$%ahcmdJ@xWJEE>WQBhSPeztw)4!gb8)>NH?;plb_1NK@Qg95!3A<9z;GPNcu*_|1V>L+Zjs(s~Vd0Wm>HhMp#?+)IL?p`@ zcw8LlF97ZM)-nSK+-0)KHMCd2<=~pyl0>?X%65-C;7s!g>0LN+Qy=)$hdTYe_$!JuiI^$;3D2m0>0`Lyz+Mb)C1F_)millu`;}}Mx3&o z=Z43UHzNc;=Zt%|c4n9AS2yN(*BOL8bZHcfMpuPG1>c)68*aM^JegQ6WwO4 z$Xb1(CFYj4tc|L!IuKQQU@WY)bK;?0WQGzD%W^JvrIfoQ)(&ih`hOYR|7&S`@C;pl z0deqFZe={(r{-!W@}>C|Qk*JKd+c$Spnip>?6(BF20ZZX>RG@91(DO4G}M+`JqwoA zQW;j|`7|Os;*OTzSXoN_po5u`)Fxe25cbWKo&`9s4@O1%^DSq|dm=z>fZG>U6_FnH(LN(oGp*^dzht*cVKcU-KT` zwsAB?@gQTv6$PlVVM(sM3nt{{>yTi(HIX+@FVG9UlnHLp8pT6fdmK4QmF(6Vg0#}{ z$4bC&&5lEqngU2@>Uda|^=-QY8a&4#QgATYGn5by4VQ5co1{j^p+gzGp$3OZnkOL2 zWIDD!G%NNyw&Iq1+c$s+byOvoJ!`VW;6q2VT*rboWBzgK_8i$65xg+lsX}IT_5*?a zTb}e}yMdvImSoTJcF-1htZqG`8~m?HH?R8UM`?aKfjmej4go2~>BIijL$vmG`F- z2PCalI)?ea@Z4?L88Q4Z%J7k~vk>DG368o~CbF#(jRrp-$*4H|M2c`oCP-5sw{|KF zma8_fxbBwQsoUd=0&&rT41rO>fCa!+xhQg{m{#hHID zxB8t6x*hgCQX%pObEF%j8W?prugA9+`C6naqG6w7ZT!gq0l|0RdbTCQOMdhb$hL!9-Ky}+6avBta_1?|Z9%G#le%)kFMZXl%o$?_J1RWDtSV^-&pfS-b`Dd4n%>A{6ZBV#0*RHN&QrlcO7& zqm($0RJg;|NmpbzPBVXHRy-PWYJFC%0_7K^U;PzGkcOUfkp3>0iDqZ{O3h4cqVmsj zL6G5=yS4Fr{>LXiH(^)lJ$&Sa(&(UCZpt9qusA2udg+E>P+~@vsO5=Uy~wtIUxkQx zryf?ExS?cnLbWUhs!V>doa46N>VBK5i={ z8S_nqZ^^A`lUwdmQJH=+ououi{X%g)77d`%cXW_279}FDxhQ`sY;+zm!Xiu<+3G=i8>#V6H8iTLj@?>{U zl#MgslRp;k)T{hAhdFX5^{AQ#7g2g-Hv~t#@ zf-8Ky9>Qtng_6V#V2-+AF>LYxG;EgNqf{nV$wYp%t&ZvQ4;rqqEWwfB$FSsa^%rJy zRSGfga545iQ6*GiFoGocAx+q_3Gy6zTF4n5&R2vMHiV!Ks|fbF!FYuF@{>@e`D$)o zuE<}K$0j322FY!9v7Sk9WbyBal^QcNE+BFX)iY*3(o(})+DPuE{x z2PpakzBOHIr2n`Rzg+0@W-fL6Aocu(g~%J=L#BCM7sEZ*JHmYc_UlWG4c0wmbS1kw zuntLzl*TR%*{t=@?!P+JTYggiOw=vMc6Vlr0#Vg%G0L;Z_CmNh!(h{~58ckijK7yQ zAEFr*W1-@$L`xpPc?Pa~1UrxFfc-%` zT+x565~%INUQH$1rs(vX^lM{*vg@6i(G-M&I+1ip#@uzLQWL{JA|T`$tzX~?6~= zH3r_B&h^qofM>+T!2XjbnD=2%sjONhm32ui+Xib0)v?oCeoZ!H35MC*XUu)r2)`Zx z37(QOepIPQ4|+Y*w-HKJ7_J(4K|aYb<*@w*3pFCdhbOItfNg=!&tTK*dBb;NIh_CN z`9=_dGg5%v0)|Yq_^Bv!rJLCSE;=5>Hz6RfKAMA`*jIdLS(VA&CeAmxN-=y3vJ(CL z2&FY9x0gO*$a=rrkRX}uf~J%9Tk5*oir<%Iv|PZsFo;g9RCDd=_C5lebDBS?i6(DF zgl3W=Va@U1SxETKs!C@<*~M-}!B8U@YGXffJh;#|GZC;FH5y=_E8Bf11maD_i8kXQ zdd+!J!dh1{gQzW@I_g>cv4zY}Z&aGI75~MnXo@)7iyWB9L*De0TC=4jU_8qKyeMw* zl2V+8caVUa`8MuT0)BQIGbHI${p+qk6+M1!V){_H0n|~3tXXT#Q2NhN18&>v@gqF` zdqJVA*IzfBS2_Rs?m@NW7QgKk`qp^)p=9VLK4Q^qQ4cI5g9NlHL)__TYlr}0tj2nh zgJ3uO3p-pc&a zS^Eo%mw31rg*t}u4S5-`IG6}qme!Jd|5@@nooL6iVJb7>?C>d8w}(Dr7F zl01y(G9f1P3D*)TCG?ibZ*+8cB7PqV%=7ivvny4K6Zc!LTwgr0ckGwN7vr5;;_$!{V9yD1X0oC95F_dEFhHA$k` zA=K#oqHJ#!ulX&_Y~)JMb5Z!s{k$ujDZ%bM$+G1L=tsmU0Rdn@CSzi+z$Vn7=6cS! z0=XWvv)1IOA(0BF?8aiD4_ViWh=2_Yk{$uNQn-UPtwqhPJ`eiPYh4tIeXJlu%nADT zfQ&RH!oj0_3-qCrDKrGjJ9v!y|6St$FE3$2xwm?4GxX&>0^L@qRgI)5FWcG~BX diff --git a/example/barchart/main.cpp b/example/barchart/main.cpp index b97060f..5a812b3 100644 --- a/example/barchart/main.cpp +++ b/example/barchart/main.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include QTCOMMERCIALCHART_USE_NAMESPACE @@ -14,8 +15,8 @@ int main(int argc, char *argv[]) //! [1] // Define categories - QStringList catecories; - catecories << "Jan" << "Feb" << "Mar" << "Apr" << "May" << "June" << "Jul" << "Aug" << "Sep" << "Oct" << "Nov" << "Dec"; + QStringList categories; + categories << "Jan" << "Feb" << "Mar" << "Apr" << "May" << "Jun"; //! [1] //! [2] @@ -27,16 +28,16 @@ int main(int argc, char *argv[]) QBarSet *set3 = new QBarSet("Larry"); QBarSet *set4 = new QBarSet("Zak"); - *set0 << 1 << 2 << 3 << 4 << 5 << 6 << 7 << 8 << 9 << 10 << 11 << 12; - *set1 << 5 << 0 << 0 << 4 << 0 << 7 << 8 << 9 << 9 << 0 << 4 << 2; - *set2 << 3 << 5 << 8 << 13 << 8 << 5 << 3 << 2 << 1 << 1 << 3 << 5; - *set3 << 5 << 6 << 7 << 3 << 4 << 5 << 8 << 9 << 10 << 5 << 2 << 7; - *set4 << 9 << 7 << 5 << 3 << 1 << 2 << 4 << 6 << 8 << 10 << 1 << 6; + *set0 << 1 << 2 << 3 << 4 << 5 << 6; + *set1 << 5 << 0 << 0 << 4 << 0 << 7; + *set2 << 3 << 5 << 8 << 13 << 8 << 5; + *set3 << 5 << 6 << 7 << 3 << 4 << 5; + *set4 << 9 << 7 << 5 << 3 << 1 << 2; //! [2] //! [3] // Create series and add sets to it - QBarSeries* series= new QBarSeries(catecories); + QBarSeries* series= new QBarSeries(categories); series->addBarSet(set0); series->addBarSet(set1); @@ -60,8 +61,14 @@ int main(int argc, char *argv[]) chartView->setChartTheme(QChart::ChartThemeIcy); //! [5] + //! [6] + chartView->axisX()->setAxisVisible(false); + chartView->axisX()->setGridVisible(false); + chartView->axisX()->setLabelsVisible(false); + //! [6] + window.setCentralWidget(chartView); - window.resize(600, 300); + window.resize(400, 300); window.show(); return a.exec(); diff --git a/example/percentbarchart/main.cpp b/example/percentbarchart/main.cpp index e19e1a9..7545902 100644 --- a/example/percentbarchart/main.cpp +++ b/example/percentbarchart/main.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include QTCOMMERCIALCHART_USE_NAMESPACE @@ -16,7 +17,7 @@ int main(int argc, char *argv[]) //! [1] // Define categories QStringList categories; - categories << "Jan" << "Feb" << "Mar" << "Apr" << "May" << "June" << "Jul" << "Aug" << "Sep" << "Oct" << "Nov" << "Dec"; + categories << "Jan" << "Feb" << "Mar" << "Apr" << "May" << "Jun"; //! [1] //! [2] @@ -27,11 +28,11 @@ int main(int argc, char *argv[]) QBarSet *set3 = new QBarSet("Larry"); QBarSet *set4 = new QBarSet("Zak"); - *set0 << 1 << 2 << 3 << 4 << 5 << 6 << 7 << 8 << 9 << 10 << 11 << 12; - *set1 << 5 << 0 << 0 << 4 << 0 << 7 << 8 << 9 << 9 << 0 << 4 << 2; - *set2 << 3 << 5 << 8 << 13 << 8 << 5 << 3 << 2 << 1 << 1 << 3 << 5; - *set3 << 5 << 6 << 7 << 3 << 4 << 5 << 8 << 9 << 10 << 5 << 2 << 7; - *set4 << 9 << 7 << 5 << 3 << 1 << 2 << 4 << 6 << 8 << 10 << 1 << 6; + *set0 << 1 << 2 << 3 << 4 << 5 << 6; + *set1 << 5 << 0 << 0 << 4 << 0 << 7; + *set2 << 3 << 5 << 8 << 13 << 8 << 5; + *set3 << 5 << 6 << 7 << 3 << 4 << 5; + *set4 << 9 << 7 << 5 << 3 << 1 << 2; //! [2] //! [3] @@ -60,6 +61,12 @@ int main(int argc, char *argv[]) chartView->setChartTheme(QChart::ChartThemeIcy); //! [5] + //! [6] + chartView->axisX()->setAxisVisible(false); + chartView->axisX()->setGridVisible(false); + chartView->axisX()->setLabelsVisible(false); + //! [6] + window.setCentralWidget(chartView); window.resize(400, 300); window.show(); diff --git a/example/stackedbarchart/main.cpp b/example/stackedbarchart/main.cpp index 32b189c..298fde2 100644 --- a/example/stackedbarchart/main.cpp +++ b/example/stackedbarchart/main.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include QTCOMMERCIALCHART_USE_NAMESPACE @@ -14,8 +15,8 @@ int main(int argc, char *argv[]) //! [1] // Define categories - QStringList catecories; - catecories << "Jan" << "Feb" << "Mar" << "Apr" << "May" << "June" << "Jul" << "Aug" << "Sep" << "Oct" << "Nov" << "Dec"; + QStringList categories; + categories << "Jan" << "Feb" << "Mar" << "Apr" << "May" << "Jun"; //! [1] //! [2] @@ -26,16 +27,16 @@ int main(int argc, char *argv[]) QBarSet *set3 = new QBarSet("Larry"); QBarSet *set4 = new QBarSet("Zak"); - *set0 << 1 << 2 << 3 << 4 << 5 << 6 << 7 << 8 << 9 << 10 << 11 << 12; - *set1 << 5 << 0 << 0 << 4 << 0 << 7 << 8 << 9 << 9 << 0 << 4 << 2; - *set2 << 3 << 5 << 8 << 13 << 8 << 5 << 3 << 2 << 1 << 1 << 3 << 5; - *set3 << 5 << 6 << 7 << 3 << 4 << 5 << 8 << 9 << 10 << 5 << 2 << 7; - *set4 << 9 << 7 << 5 << 3 << 1 << 2 << 4 << 6 << 8 << 10 << 1 << 6; + *set0 << 1 << 2 << 3 << 4 << 5 << 6; + *set1 << 5 << 0 << 0 << 4 << 0 << 7; + *set2 << 3 << 5 << 8 << 13 << 8 << 5; + *set3 << 5 << 6 << 7 << 3 << 4 << 5; + *set4 << 9 << 7 << 5 << 3 << 1 << 2; //! [2] //! [3] // Create series and add sets to it - QStackedBarSeries* series = new QStackedBarSeries(catecories); + QStackedBarSeries* series = new QStackedBarSeries(categories); series->addBarSet(set0); series->addBarSet(set1); @@ -59,6 +60,12 @@ int main(int argc, char *argv[]) chartView->setChartTheme(QChart::ChartThemeIcy); //! [5] + //! [6] + chartView->axisX()->setAxisVisible(false); + chartView->axisX()->setGridVisible(false); + chartView->axisX()->setLabelsVisible(false); + //! [6] + window.setCentralWidget(chartView); window.resize(400, 300); window.show(); diff --git a/src/barchart/barchartmodel.cpp b/src/barchart/barchartmodel.cpp index 2807cdc..1af7615 100644 --- a/src/barchart/barchartmodel.cpp +++ b/src/barchart/barchartmodel.cpp @@ -52,28 +52,14 @@ QList BarChartModel::legend() return legend; } -int BarChartModel::countSets() +int BarChartModel::barsetCount() { return mDataModel.count(); } -int BarChartModel::countCategories() +int BarChartModel::categoryCount() { - int count(0); - for (int i=0; icount(); - if (temp > count) { - count = temp; - } - } - return count; -} - -int BarChartModel::countTotalItems() -{ - int total = mDataModel.count() * countCategories(); - return total; + return mCategory.count(); } qreal BarChartModel::min() @@ -165,7 +151,7 @@ qreal BarChartModel::categorySum(int category) qreal BarChartModel::maxCategorySum() { qreal max = INT_MIN; - int count = countCategories(); + int count = categoryCount(); for (int col=0; col legend(); - int countSets(); // Number of sets in model - int countCategories(); // Number of categories - int countTotalItems(); // Total items in all sets. Includes empty items. + int barsetCount(); // Number of sets in model + int categoryCount(); // Number of categories qreal max(); // Maximum value of all sets qreal min(); // Minimum value of all sets diff --git a/src/barchart/barpresenter.cpp b/src/barchart/barpresenter.cpp index 2bbcf4e..0309969 100644 --- a/src/barchart/barpresenter.cpp +++ b/src/barchart/barpresenter.cpp @@ -10,7 +10,7 @@ QTCOMMERCIALCHART_BEGIN_NAMESPACE BarPresenter::BarPresenter(QBarSeries *series, QGraphicsItem *parent) : BarPresenterBase(series, parent) { - mBarDefaultWidth = 15; + mBarDefaultWidth = 5; } void BarPresenter::layoutChanged() diff --git a/src/barchart/barvalue.cpp b/src/barchart/barvalue.cpp index 27e1fcb..9b43e41 100644 --- a/src/barchart/barvalue.cpp +++ b/src/barchart/barvalue.cpp @@ -52,8 +52,10 @@ bool BarValue::belongsToSet(QBarSet *set) void BarValue::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { - painter->setPen(mPen); - painter->drawText(boundingRect(),mValueString); + if (isVisible()) { + painter->setPen(mPen); + painter->drawText(boundingRect(),mValueString); + } } QRectF BarValue::boundingRect() const diff --git a/src/barchart/qbarseries.cpp b/src/barchart/qbarseries.cpp index cebdffc..11a0ffa 100644 --- a/src/barchart/qbarseries.cpp +++ b/src/barchart/qbarseries.cpp @@ -46,7 +46,7 @@ QTCOMMERCIALCHART_BEGIN_NAMESPACE */ /*! - Constructs empty QBarSeries. Parameter \a category defines the categories for chart. + Constructs empty QBarSeries. Parameter \a categories defines the categories for chart. QBarSeries is QObject which is a child of a \a parent. */ QBarSeries::QBarSeries(QStringList categories, QObject *parent) @@ -76,7 +76,7 @@ void QBarSeries::removeBarSet(QBarSet *set) */ int QBarSeries::barsetCount() { - return mModel->countSets(); + return mModel->barsetCount(); } /*! @@ -84,7 +84,7 @@ int QBarSeries::barsetCount() */ int QBarSeries::categoryCount() { - return mModel->countCategories(); + return mModel->categoryCount(); } /*! @@ -127,12 +127,12 @@ QString QBarSeries::label(int category) void QBarSeries::setFloatingValuesEnabled(bool enabled) { if (enabled) { - for (int i=0; icountSets(); i++) { + for (int i=0; ibarsetCount(); i++) { QBarSet *set = mModel->setAt(i); connect(set,SIGNAL(clicked()),set,SIGNAL(toggleFloatingValues())); } } else { - for (int i=0; icountSets(); i++) { + for (int i=0; ibarsetCount(); i++) { QBarSet *set = mModel->setAt(i); disconnect(set,SIGNAL(clicked()),set,SIGNAL(toggleFloatingValues())); } @@ -147,12 +147,12 @@ void QBarSeries::setFloatingValuesEnabled(bool enabled) void QBarSeries::setToolTipEnabled(bool enabled) { if (enabled) { - for (int i=0; icountSets(); i++) { + for (int i=0; ibarsetCount(); i++) { QBarSet *set = mModel->setAt(i); connect(set,SIGNAL(showToolTip(QPoint,QString)),this,SIGNAL(showToolTip(QPoint,QString))); } } else { - for (int i=0; icountSets(); i++) { + for (int i=0; ibarsetCount(); i++) { QBarSet *set = mModel->setAt(i); disconnect(set,SIGNAL(showToolTip(QPoint,QString)),this,SIGNAL(showToolTip(QPoint,QString))); } diff --git a/src/barchart/qpercentbarseries.cpp b/src/barchart/qpercentbarseries.cpp index d9bb00d..a1c3eb3 100644 --- a/src/barchart/qpercentbarseries.cpp +++ b/src/barchart/qpercentbarseries.cpp @@ -22,7 +22,7 @@ QTCOMMERCIALCHART_BEGIN_NAMESPACE */ /*! - Constructs empty QPercentBarSeries. Parameter \a category defines the categories for chart. + Constructs empty QPercentBarSeries. Parameter \a categories defines the categories for chart. QPercentBarSeries is QObject which is a child of a \a parent. */ QPercentBarSeries::QPercentBarSeries(QStringList categories, QObject *parent) diff --git a/src/barchart/qstackedbarseries.cpp b/src/barchart/qstackedbarseries.cpp index 7fda0de..bb8b54c 100644 --- a/src/barchart/qstackedbarseries.cpp +++ b/src/barchart/qstackedbarseries.cpp @@ -22,7 +22,7 @@ QTCOMMERCIALCHART_BEGIN_NAMESPACE */ /*! - Constructs empty QStackedBarSeries. Parameter \a category defines the categories for chart. + Constructs empty QStackedBarSeries. Parameter \a categories defines the categories for chart. QStackedBarSeries is QObject which is a child of a \a parent. */ QStackedBarSeries::QStackedBarSeries(QStringList categories, QObject *parent) diff --git a/src/qseries.cpp b/src/qseries.cpp index 01fc4a0..73469e3 100644 --- a/src/qseries.cpp +++ b/src/qseries.cpp @@ -47,6 +47,11 @@ used by the series. Returns true if the model is valid for the series. */ +/*! + \fn QList legend() + \brief Returns the legend of the series. If series is empty, empty list is returned. +*/ + QTCOMMERCIALCHART_BEGIN_NAMESPACE #include "moc_qseries.cpp" QTCOMMERCIALCHART_END_NAMESPACE diff --git a/src/qseries.h b/src/qseries.h index 0b5fafc..13116df 100644 --- a/src/qseries.h +++ b/src/qseries.h @@ -24,7 +24,7 @@ public: }; // Helper class to contain legend and color for it - // TODO: This as private class? + // TODO: This as private class? Or should we expose this to user of API class Legend { public: QString mName; @@ -40,6 +40,7 @@ public: // TODO virtual bool setModel(QAbstractItemModel* /*model*/) { return false; } + // TODO: should this be internal? virtual QList legend() { QList l; return l; } };