Ë
    ¡ëi… ã            
       ó*  — d Z dZddlZddlmZmZmZ ddlmZ ddl	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ ddlmZmZ ddl ­ dd	l!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z, dd
l-m.Z.m/Z/ ddl0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7 ddddddddddœ	Z8ddddddddddœ	Z9dZ:de:z
  Z; G d„ de5«      Z< G d„ de/«      Z=dPd„Z>d„ Z? G d „ d!e1«      Z@d"„ ZAd#„ ZBdQd%„ZCdRd&„ZDd'„ ZEd(„ ZFd)„ ZG ej�                  eG«      ZGd*„ ZIdPd+„ZJd,„ ZK ej�                  eK«      ZKd-„ ZLdPd.„ZMd/„ ZN G d0„ d1eO«      ZP G d2„ d3e@«      ZQ G d4„ d5eQ«      ZRdd6lSmTZTmUZUmVZVmWZW  G d7„ d8e/«      ZX G d9„ d:«      ZYd;„ ZZ ej�                  eZ«      ZZ eUd<«      Z[ G d=„ d>eQ«      Z\d?„ Z]d@„ Z^dA„ Z_dB„ Z`dC„ ZadD„ ZbdE„ ZcdF„ ZddG„ ZedH„ ZfdI„ ZgehdJk(  rd	 ddliZiddKljmkZk eijØ                  d$d xs dLgZlelD ]?  ZmemjÝ                  dM«      remndNemz  Zo  ep«       eo   «       Zq ekjä                  eqdOeoz  «       ŒA yy)Sz3.3.0z|Basic Pie Chart class.

This permits you to customize and pop out individual wedges;
supports elliptical and circular pies.
é    N)ÚsinÚcosÚpi)Úcolors)ÚisNumberÚisListOfNumbersOrNoneÚisListOfNumbersÚisColorOrNoneÚisStringÚisListOfStringsOrNoneÚOneOfÚ	isBooleanÚisListOfColorsÚisNumberOrNoneÚisNoneOrListOfNoneOrStringsÚisTextAnchorÚisNoneOrListOfNoneOrNumbersÚisBoxAnchorÚisStringOrNoneÚNoneOrÚEitherOrÚisNumberInRangeÚ
isCallable)ÚuSymbol2SymbolÚisSymbol)Ú*)ÚGroupÚDrawingÚEllipseÚWedgeÚStringÚSTATE_DEFAULTSÚArcPathÚPolygonÚRectÚPolyLineÚLine)ÚTypedPropertyCollectionÚ
PropHolder)ÚPlotArea)Ú_objStr)ÚLabel©ÚcmpÚwÚswÚsÚseÚeÚneÚnÚnw)	r   é-   éZ   é‡   é´   éá   é  i;  éÓÿÿÿgH¯¼šò×z>g     €v@c                   ó   — e Zd Zd„ Zd„ Zy)Ú
WedgeLabelc                  ó   — y ©N© ©ÚselfÚbas     úc/var/www/html/chat/reports/venv/lib/python3.12/site-packages/reportlab/graphics/charts/piecharts.pyÚ	_checkDXYzWedgeLabel._checkDXY,   s   € Øó    c                 ó4  — | j                   }|dv r‡t        | j                  dz  dz  «      dz  dz  }|dz  s0| j                  |z
  dz  }t        |«      dkD  r||dkD  xr dxs dz  }t	        | d	d «      xr t
        xs t        |   }| j                  |«       |S )
N)ÚautoxÚautoyéh  g     €F@r7   r8   é   r   r=   Ú_anti)Ú	boxAnchorÚintÚ_pmvÚabsÚgetattrÚ_ANGLE2RBOXANCHORÚ_ANGLE2BOXANCHORrG   )rD   rE   ÚnaÚdas       rF   Ú_getBoxAnchorzWedgeLabel._getBoxAnchor.   s¡   € Ø�^‰^ˆØÐ"Ñ"Ü�t—y‘y ‘} cÑ)Ó*¨2Ñ-¨sÑ2ˆBØ˜’GØ—i‘i "‘n¨Ñ+�Ü�r“7˜1’9Ø˜2˜a™4š; BÒ-¨#Ñ.�BÜ˜$˜w tÓ,ÒBÔ1BÒVÔFVÐXZÑ[ˆBØ�N‰N˜2ÔØˆ	rH   N)Ú__name__Ú
__module__Ú__qualname__rG   rX   rB   rH   rF   r?   r?   +   s   „ òó
rH   r?   c                   ó*  — e Zd ZdZ edei d eed¬«      “d eed¬«      “d eed¬«      “d	 eed
¬«      “d e e	ddd«      d¬«      “d e e	ddd«      d¬«      “d eed¬«      “d eed¬«      “d ee
d¬«      “d eed¬«      “d eed¬«      “d eed¬«      “d eed¬«      “d  eed!¬«      “d" eed#¬«      “d$ eed%¬«      “d& eed'¬«      “d( eed)¬«      “d* eed+¬«      “d, eed-¬«      “d. eed/¬«      “d0 eed1¬«      “d2 eed3¬«      “d4 eed5¬«      “d6 eed7¬«      “d8 eed9¬«      “d: eed;¬«      “d< eed=¬«      “d> eed?«      “d@ eedA«      “dB eedC«      “dD eedE«      “dF eedG«      “dH eedI¬«      “dJ eedK¬«      “dL eedM¬«      “dN eedO¬«      “dP eedQ¬«      “dR e ee«      dSd¬T«      “dU eedV«      “dW eedX¬«      “dY eedZ¬«      “d[ e e	d\d]«      d^¬«      “d_ e e	d`dadb«      dc¬«      “ŽZdd„ Zy`)fÚWedgePropertiesá,  This holds descriptive information about the wedges in a pie chart.

    It is not to be confused with the 'wedge itself'; this just holds
    a recipe for how to format one, and does not allow you to hack the
    angles.  It can format a genuine Wedge object for you with its
    format method.
    ÚstrokeWidthzWidth of the wedge border©ÚdescÚ	fillColorzFilling color of the wedgeÚstrokeColorzColor of the wedge borderÚstrokeDashArrayzZStyle of the wedge border, expressed as a list of lengths of alternating dashes and blanksÚstrokeLineCapr   é   é   z#Line cap 0=butt, 1=round & 2=squareÚstrokeLineJoinz$Line join 0=miter, 1=round & 2=bevelÚstrokeMiterLimitz$Miter limit control miter line joinsÚpopoutz How far of centre a wedge to popÚfontNamez"Name of the font of the label textÚfontSizez,Size of the font of the label text in pointsÚ	fontColorz#Color of the font of the label textÚlabelRadiuszpDistance between the center of the label box and the center of the pie, expressed in times the radius of the pieÚlabel_dxzX Offset of the labelÚlabel_dyzY Offset of the labelÚlabel_anglezQAngle of the label, default (0) is horizontal, 90 is vertical, 180 is upside downÚlabel_boxAnchorzAnchoring point of the labelÚlabel_boxStrokeColorzBorder color for the label boxÚlabel_boxStrokeWidthzBorder width for the label boxÚlabel_boxFillColorzFilling color of the label boxÚlabel_strokeColorzBorder color for the label textÚlabel_strokeWidthzBorder width for the label textÚ
label_textzText of the labelÚlabel_leadingÚ Úlabel_widthzWidth of the labelÚlabel_maxWidthz#Maximum width the label can grow toÚlabel_heightzHeight of the labelÚlabel_textAnchorz$Maximum height the label can grow toÚlabel_visibleú True if the label is to be drawnÚlabel_topPaddingzPadding at top of boxÚlabel_leftPaddingzPadding at left of boxÚlabel_rightPaddingzPadding at right of boxÚlabel_bottomPaddingzPadding at bottom of boxÚlabel_simple_pointerzSet to True for simple pointersÚlabel_pointer_strokeColorzColor of indicator lineÚlabel_pointer_strokeWidthzStrokeWidth of indicator lineÚlabel_pointer_elbowLengthz&Length of final indicator line segmentÚlabel_pointer_edgePadz!pad between pointer label and boxÚlabel_pointer_piePadz!pad between pointer label and pieÚswatchMarkerz!None or makeMarker('Diamond') ...©ra   ÚadvancedUsageÚvisiblezSet to false to skip displayingÚshadingAmountz"amount by which to shade fillColorÚshadingAnglez6shading changes at multiple of this angle (in degrees)ÚshadingDirectionÚnormalÚantiz2Whether shading is at start or end of wedge/sectorÚshadingKindNÚlightenÚdarkenzuse colors.Whiter or Blackerc                 óÀ  — d| _         d | _        t        d   | _        t        d   | _        d| _        d| _        d| _        d| _        t        d   | _	        t        d   | _
        t        d   | _        d| _        dx| _        x| _        | _        d | _        dx| _        x| _        x| _        | _        d	| _        d | _        d
| _        d | _        d | _        d| _        d x| _        x| _        x| _        | _        d| _        d| _         d| _!        tD        jF                  | _$        d
| _%        d| _&        d| _'        d| _(        d| _)        d | _*        d
| _+        d| _,        d| _-        y )Nr   rc   rd   rf   rk   rl   rb   ç333333ó?rJ   ç      à?çš™™™™™¹?Ústarté   rg   g@¤ß¾ @r’   ).r_   rb   r"   rc   rd   rh   re   ri   rj   rk   rl   rm   rn   ro   rp   rq   rx   r�   r‚   rƒ   r„   rr   rs   rt   ru   rv   rw   ry   r{   r|   r}   r~   r…   r   r   Úblackr†   r‡   rˆ   r‰   rŠ   rŽ   r”   r�   r�   r‘   ©rD   s    rF   Ú__init__zWedgeProperties.__init__q   sp  € ØˆÔØˆŒÜ)¨-Ñ8ˆÔÜ-Ð.?Ñ@ˆÔØˆÔØˆÔØ !ˆÔØˆŒÜ& zÑ2ˆŒÜ& zÑ2ˆŒÜ'¨Ñ4ˆŒØˆÔØ;<Ð<ˆŒÐ<˜œ¨Ô(8ØˆŒØnoÐoˆÔÐo Ô 6Ðo¸Ô9PÐSWÔSkØ&ˆÔØ$(ˆÔ!Ø$'ˆÔ!Ø"&ˆÔØ!%ˆÔØ!$ˆÔØ]aÐaˆÔÐa Ô 0Ða°4Ô3FÈÔIZØ 'ˆÔØ$%ˆÔ!ØˆÔÜ)/¯©ˆÔ&Ø),ˆÔ&Ø)*ˆÔ&Ø%&ˆÔ"Ø$%ˆÔ!ØˆŒØˆÔØ ˆÔØ"ˆÔØ (ˆÕrH   rB   )rY   rZ   r[   Ú__doc__ÚAttrMapÚAttrMapValuer   r
   r   r   r   r   r   r   r   r   r   r   Ú_attrMaprŸ   rB   rH   rF   r]   r]   :   s‚  „ ññ ò -
Ù" 8Ð1LÕMð-
á  Ð4PÕQð-
ñ # =Ð6QÕRð-
ñ 'Ð'<ð  C_õ  `ð	-
ñ
 %¡U¨1¨Q¨q£\Ð7\Õ]ð-
ñ &¡e¨A¨a°£lÐ8^Õ_ð-
ñ (¨Ð6\Õ]ð-
ñ ˜hÐ,NÕOð-
ñ   Ð.RÕSð-
ñ   Ð.\Õ]ð-
ñ ! Ð4YÕZð-
ñ # 8ð  2dõ  eð-
ñ   Ð.EÕFð-
ñ   Ð.EÕFð-
ñ # 8ð  2Eõ  Fð-
ñ  ' {Ð8VÕWð!-
ñ"  ,¨MÐ?_Õ`ð#-
ñ$  ,¨HÐ:ZÕ[ð%-
ñ& *¨-Ð=]Õ^ð'-
ñ( )¨Ð<]Õ^ð)-
ñ* )¨Ð7XÕYð+-
ñ, " .Ð6IÕJð--
ñ. % ^¸Õ<ð/-
ñ0 # >Ð7KÕLð1-
ñ2 & nÐ:_Õ`ð3-
ñ4 $ NÐ8MÕNð5-
ñ6 (¨Ð:`Õað7-
ñ8 % YÐ4VÕWð9-
ñ: (¨Ð1HÔIð;-
ñ< )¨Ð2JÔKð=-
ñ> *¨(Ð3LÔMð?-
ñ@ +¨8Ð4NÔOðA-
ñB  ,¨IÐ6WÔXðC-
ñD %1°ÐD]Õ$^ðE-
ñF %1°Ð?^Õ$_ðG-
ñH %1°Ð?gÕ$hðI-
ñJ !-¨XÐ;^Õ _ðK-
ñL  ,¨HÐ:]Õ^ðM-
ñN $¡F¨8Ó$4Ð;^ÐmnÕoðO-
ñP ˜yÐ)JÔKðQ-
ñR % ^Ð9]Õ^ðS-
ñT $ HÐ2jÕkðU-
ñV (©¨h°vÓ(>ÐDxÕyðW-
ñX #¡5¨¨i¸Ó#AÐGeÕfðY-
€Hó^#)rH   r]   c                 ó®  — | j                   rft        |||«      }| j                  sd|_        n5t	        |«      dk  s|dkD  r|dk  sd|cxk  rdk  rn nd|_        nd|_        ||_        d	|_        �n/|€t        | d
t        «      } |«       }||_        ||_	        ||_
        |j                  |_        | j                  s#|j                  |_        |j                  |_        nˆ|j"                  €| j"                  dz  }n|j"                  dz  }|j                  €||_        n|j                  |z   |_        t	        |«      dk  s|dkD  r|dk  sd|cxk  rdk  rn nd|_        nd|_        |j$                  |_        |j(                  |_        |j,                  |_        |j0                  |_        |j4                  |_        |j8                  |_        |j<                  }	|	€|}	|	|_        |j@                  |_!        |jD                  |_#        |jH                  |_%        |jL                  |_'        |jP                  |_        |jR                  |_*        |jV                  |_,        |jZ                  |_.        |j^                  |_0        |jb                  |_2        |jf                  |_        |j"                  |_        |jh                  |_4        |jj                  |_6        |S )NÚmiddler8   r<   éÂ  é>þÿÿéòþÿÿr›   Úendr   Ú
labelClassg      @r/   r3   )7ÚsimpleLabelsr!   Ú
sideLabelsÚ
textAnchorrR   rQ   Ú_simple_pointerrS   r?   ÚxÚyro   Údxrp   Údyrr   rO   rl   rq   Úanglers   ÚboxStrokeColorrt   ÚboxStrokeWidthru   ÚboxFillColorrv   rc   rw   r_   rx   Ú_textry   Úleadingr{   Úwidthr|   ÚmaxWidthr}   Úheightr~   r   rŽ   r�   Ú
topPaddingr‚   ÚleftPaddingrƒ   ÚrightPaddingr„   ÚbottomPaddingr…   rk   rm   rb   )
rD   Útextr³   ÚlabelXÚlabelYÚ
wedgeStylerª   ÚtheLabelÚsideLabels_dyr·   s
             rF   Ú_addWedgeLabelrÆ   –   s‚  € à×ÒÜ˜& &¨$Ó/ˆØ�ŠØ"*ˆHÕä�E“
˜R’ e¨S¢j°U¸3²YÀDÈ%ÔDUÐQUÕDUØ&-�Õ#à&+�Ô#ØˆŒØ#$ˆÖ àÐÜ   l´:Ó>ˆJÙ“<ˆØˆŒØˆŒ
ØˆŒ
Ø ×)Ñ)ˆŒØ�ŠØ$×-Ñ-ˆHŒKØ!+×!;Ñ!;ˆHÕà×"Ñ"Ð*Ø $§¡°Ñ 3‘à *× 3Ñ 3°cÑ 9�Ø×"Ñ"Ð*Ø+�•à(×1Ñ1°MÑA�”Ü�E“
˜R’ e¨S¢j°U¸3²YÀDÈ%ÔDUÐQUÕDUØ%(�Õ"à%(�Ô"Ø#×/Ñ/ˆŒØ",×"AÑ"AˆÔØ",×"AÑ"AˆÔØ *× =Ñ =ˆÔØ)×;Ñ;ˆÔØ)×;Ñ;ˆÔØ×%Ñ%ˆØˆ= $˜%ØˆŒØ%×3Ñ3ˆÔØ#×/Ñ/ˆŒØ&×5Ñ5ˆÔØ$×1Ñ1ˆŒØ(×9Ñ9ˆÔØ%×3Ñ3ˆÔØ(×9Ñ9ˆÔØ)×;Ñ;ˆÔØ *× =Ñ =ˆÔØ!+×!?Ñ!?ˆÔØ#-×#BÑ#BˆÔ Ø"×+Ñ+€HÔØ"×+Ñ+€HÔØ#×-Ñ-€HÔØ€OrH   c                 ód   — | €dg|z  } | S |t        | «      z
  }|dkD  rt        | «      dg|z  z   } | S )Nrz   r   )ÚlenÚlist)Úlabelsr5   Úis      rF   Ú
_fixLabelsrÌ   Ô   sG   € Ø€~Ø�˜‘ˆð €Mð Œc�&‹k‰MˆØˆQŠ3œ˜f› r d¨1¡fÑ,�Ø€MrH   c                   ó   — e Zd Zd„ Zdd„Zy)ÚAbstractPieChartc           
      óŽ  — | j                   }|t        |«      z  }||   }t        |dt        |dd «      «      }	t        |dt        |dd «      «      }
t        |dt        |dd «      «      }t        |dt        |dd «      «      }t        |dt        |dd «      «      }|rt        |||dz  z   ||dz  z   |
«      S t	        ||||||	||
¬«      S )Nrc   rb   rd   r_   r‹   ç       @)r_   rc   rd   rb   )ÚslicesrÈ   rS   r   r%   )rD   ÚrowNor¯   r°   r¹   r»   Ú	baseStyleÚstyleIdxÚstylerc   rb   rd   r_   r‹   s                 rF   ÚmakeSwatchSamplez!AbstractPieChart.makeSwatchSampleÞ   sà   € Ø—K‘Kˆ	Øœ3˜y›>Ñ)ˆØ˜(Ñ#ˆÜ˜e ]´G¸IÀmÐTXÓ4YÓZˆÜ˜E ;´¸	À+ÈdÓ0SÓTˆ	Ü! %Ð):¼GÀIÐN_Ð`dÓ<eÓfˆÜ˜e ]´G¸IÀ}ÐUYÓ4ZÓ[ˆÜ˜u n´g¸iÈÐX\Ó6]Ó^ˆÙÜ! ,¨q°°r±©z¸!¸FÀ2¹I¹+ÀiÓPÐPÜ�A�a˜˜f°ÈØ$3¸iôIð 	IrH   Nc                 óž   — 	 t        | j                  |   «      }| j                  st        | j                  |   dd«      }|�|}|S #  |}Y Œ2xY w)zreturn series name i or defaultrx   rz   )r+   rÊ   r«   rS   rÑ   )rD   rË   ÚdefaultrÀ   r·   s        rF   ÚgetSeriesNamezAbstractPieChart.getSeriesNameì   sU   € ð	Ü˜4Ÿ;™; q™>Ó*ˆDð × Ò Ü˜DŸK™K¨™N¨<¸Ó;ˆEØÐ ¨ $Øˆøð	ØŠDús   ‚A ÁArA   )rY   rZ   r[   rÖ   rÙ   rB   rH   rF   rÎ   rÎ   Ü   s   „ òIô	rH   rÎ   c                 ó¤   — | d   |d   dz
  kD  xs@ |d   | d   dz
  kD  xs0 | d   d|d   |d   z   z  dz
  kD  xs |d   d| d   | d   z   z  dz
  kD   S )Nr   rg   g{®Gáz„?rf   r™   rœ   rB   )ÚPÚQs     rF   ÚboundsOverlaprÝ   ÷   sƒ   € Ø�‰t�A�a‘D˜‘I‰~Òm  1¡ a¨¡d¨4¡i¡Òm°1°Q±4¸¸aÀ¹dÀ1ÀQÁ4¹i¹È$Ñ8NÑ3NÒmÐRSÐTUÑRVÐX[Ð]^Ð_`Ñ]aÐbcÐdeÑbfÑ]fÑXgÐimÑWmÑRmÐnÐnrH   c                 ó   — t        | «      }|g}	 |d   }|dz   |z  }||v st        | |   | |   «      sn|j                  |«       Œ6	 |d   }|dz
  |z  }||v st        | |   | |   «      s	 |S |j                  d|«       Œ9)z find overlap run containing B[i]rf   éÿÿÿÿr   )rÈ   rÝ   ÚappendÚinsert)ÚBrË   Úwrapr5   ÚRÚjs         rF   Ú_findOverlapRunræ   ú   s£   € äˆA‹€AØ	
ˆ€AØ
Øˆb‰EˆØˆq‰S�!‰GˆØ�‰6œ q¨¡t¨A¨a©DÔ1°5Ø	�‰�Œð	 ð
 Øˆa‰DˆØˆq‰S�!‰GˆØ�‰6œ q¨¡t¨A¨a©DÔ1°5à€Hð 	
�‰��1Œð	 rH   rf   c                 óˆ   — t        | «      }|dkD  r2t        |dz
  «      D ]!  }t        | ||«      }t        |«      dkD  sŒ|c S  y)z>determine a set of overlaps in bounding boxes B or return Nonerf   N)rÈ   Úrangeræ   )râ   rã   r5   rË   rä   s        rF   ÚfindOverlapRunré   
  sK   € äˆA‹€AØˆ‚sÜ�q˜‘s“ò 	"ˆAÜ  ! DÓ)ˆAÜ�1‹v�a‹x šð	"ð rH   c           
      óH  — t        | «      }|dk  ry | D �cg c]  }|j                  d   ‘Œ }}d}g }d}t        |dz   «      }|}	|�s­|dk  �r¦t        |«      }
|
sy t        |
«      }||k(  ry |D �cg c]	  }||
v sŒ|‘Œ c}s|}	d}|
d   }|
d   }||   }t	        | |   j
                  «      x}}|
dd  D ]C  }||   }t        |t        |d   |d   z
  |d   |d   z
  «      «      }|}|| |   j
                  z  }ŒE |t        |«      z  }t        | |   j
                  |z
  «      }t	        |«      }||	|dz
  z  |z  z  }|
D ]Ÿ  }| |   }|j                  }t	        |j
                  |t	        |j
                  «      |z
  z  z   «      x}|_        |t        z  }|d   |d   t        |«      z  z   |_        |d	   |d
   t        |«      z  z   |_        |j                  «       ||<   Œ¡ |
}|	dz  }	|dz  }|dk  r�Œ¥y y |dk  �rt        |«      }
|
sy t        |
«      }||k(  ry | d   }|j                  }|d   }t        |
«      D ]Ï  \  }}| |   }|j                  }|d   }d}d}||dz
  k(  rŒ)||k(  s�|d   |d   kD  r|d   |d   k  r|d   |d   z
  }|d   |d   kD  r|d   |d   k  r|d   |d   z
  }||kD  r"|xj                  d|d   |d   z
  z  z  c_        n&||k\  r!|xj                  d|d   |d   z
  z  z  c_        |j                  «       ||<   ŒÑ |dz  }|dk  r�Œy y c c}w c c}w )Nrg   Úboundsrf   r   é   rß   ÚcxÚrxÚcyÚrygÍÌÌÌÌÌð?rœ   r™   )rÈ   Ú	_origdataÚfloatré   Ú_360rQ   ÚmaxÚminrR   Ú_180_pir   r¯   r   r°   Ú	getBoundsÚ	enumerate) ÚLr¬   Úmult0ÚnLÚlrâ   ÚOKÚRPÚiterÚmulträ   ÚnRÚrrW   Úr0ÚrLÚbiÚtaaÚaaÚbÚutaaÚntaaÚorigr³   ÚradÚl1Úorig1Úbounds1rË   rë   Údiff1Údiff2s                                    rF   ÚfixLabelOverlapsr    s¥  € Ü	ˆQ‹€BØ	ˆ!‚tˆVØ()Ö* 1ˆ�‰�XÓ	Ð*€AÐ*Ø	
€BØ	€BØ€DÜ�%˜!‘)Ó€EØ€DâØ�2‹gÜ˜qÓ!ˆAÙ�eÜ�Q“ˆBØ�2Šv�uØ!Ö,˜! Q¨!¢V’AÓ,Ø�ØˆBØ�1‘ˆBØ�2‘ˆBØ�2‘ˆBÜ˜A˜b™EŸJ™JÓ'Ð'ˆC�"Ø�q�r�Uò  �Ø�a‘D�Ü˜œC  !¡ R¨¡U¡
¨2¨a©5°°1±©:Ó6Ó7�Ø�Ø�a˜‘d—i‘i‘‘ð	 ð
 ”E˜"“I‘ˆBÜ�q˜‘u—z‘z #‘~Ó&ˆDÜ˜“:ˆDØ�$˜˜1™‘+˜dÑ"Ñ"ˆBàò %�Ø�a‘D�Ø—{‘{�Ü!% a§f¡f¨R´°a·f±f³¸b±Ñ-AÑ&AÓ!BÐB�˜œØœG‘m�Ø˜4‘j 4¨¡:¬c°#«hÑ#6Ñ6�”Ø˜4‘j 4¨¡:¬c°#«hÑ#6Ñ6�”Ø—{‘{“}��!’ð%ð ˆBØ�D‰LˆDØ�A‰IˆDðA �2ŽgðF �2‹gÜ˜qÓ!ˆAÙ�eÜ�Q“ˆBØ�RŠx˜Ø�2‘ˆBØ—L‘LˆEØ˜H‘oˆGÜ  “|ò )‘��!Ø�a‘D�Ø—{‘{�Ø˜h™�Ø�Ø�Ø˜B˜q™D“yØ! WÒ,Ø! !™9 W¨Q¡ZÒ/°G¸A±J¸vÀa¹yÒ4HØ$*¨1¡I¨g°a©jÑ$8˜EØ" 1™: f¨Q¡iÒ/°F¸1±I¸gÀa¹jÒ4HØ$+¨A¡J¨v°a©yÑ$8˜EØ  5š=ØŸCšC # w¨q¡z°'¸!±*Ñ'<Ñ"=Ñ=žCØ" eš^ØŸCšC 3¨°©
°7¸1±:Ñ(=Ñ#>Ñ>�CØŸ;™;›=�A�a’Dð!)ð" �A‰IˆDð3 �2ŽgùòW 	+ùò -s   –LÁ0	LÁ:Lc                 óŽ   — t        t        | «      t        |«      «      t        t        | «      t        |«      «      }}||k\  ry ||fS rA   )rô   rõ   )ÚArâ   r¯   r°   s       rF   ÚintervalIntersectionr  \  s;   € Ü
Œc�!‹f”S˜“VÓ
œS¤ Q£¬¨A«Ó/€a€AØˆ!‚t�DØˆQˆ3€JrH   c                 ó\  — | dz  } d| cxk  rdk  r&n n#|dk(  rdd| fddd| z   dff}n\d| dfd	dd
d| z   ff}nM| dk\  xr dxs d}|dk(  rd|dz
  | fd|dz
  |dz
  fdd| z   |dz
  ff}nd| |dz   fd|dz   |dz   fd|dz   d| z   ff}t        |D �cg c]  }|d   |d   k  sŒ|‘Œ c}«      S c c}w )NrL   r8   r<   Ú	clockwiser   )rf   é¦ÿÿÿr8   i˜þÿÿr  )rf   r<   r¦   r¦   rf   rg   )Útuple)ÚsaÚ	directionÚaÚoffss       rF   Ú_makeSideArcDefsr  a  sÿ   € Øˆ#�I€BØ	ˆ2„zˆc…zØ�kÒ!Ø�2�b�	˜* a¨¨R©° _Ð4‰Aà�2�c�
˜;¨¨#¨c°"©f ~Ð5‰Aà�3‰wŠ˜3Ò# !ˆØ�kÒ!Ø�4˜‘7˜2�  $ s¡(¨4°©7Ð3°Q°t¸B±w¸tÀC¹xÐ4HÐH‰Aà�2�d˜2‘g�  $ r¡'¨$¨s©(Ð3°Q°t¸C±xÀÀBÁÐ4GÐGˆAÜ˜QÖ,˜ ! A¡$ q¨¡t£)’!Ò,Ó-Ð-ùÒ,s   ÂB)ÂB)c                 ó>   — t        |d   |d   z
  | d   | d   z
  «      S )Nrf   r   r-   )r¯   r°   s     rF   Ú_keyFLAr   p  s'   € Üˆq�‰t�A�a‘D‰y˜˜1™˜a ™d™Ó#Ð#rH   c                 ó¨   — | D �cg c]  }|d   |k(  sŒ|d   €Œ|d   ‘Œ c}}|sy t        |«      dkD  r|j                  t        ¬«       |d   S c c}w )Nr   rf   ©Úkey)rÈ   Úsortr   )ÚxArcsÚsider  s      rF   Ú_findLargestArcr'  t  sU   € ØÖ@�!  !¡ d£
¨q°©tÑ/?ˆˆ1‹Ò@€AÙ�TÜ
ˆ1ƒvˆa‚x�—‘œG�Ô$ØˆQ‰4€Kùò 	As   …A“A™Ac                 ó’  — | j                   }|€8|d   }|d   }|€d}|}n'|€d}|}n |d   |d   z
  |d   |d   z
  kD  rd}|}nd}|}|d   }|d   }|sd| _        ||z   | _        |d   }nd| _        ||z
  |z
  | _        |d   }|d   |d   z   dz  x}	|d	<   t        |	t        z  «      |d
<   t        |	t        z  «      |d<   ||d<   ||fS )NÚliÚrirf   r   r¹   ÚedgePadr:   r™   ÚmidÚsmidÚcmidr&  )rñ   rQ   r¯   r   rö   r   )
rü   r¹   r&  Údatar)  r*  rË   r/   r+  r,  s
             rF   Ú_fPLSider0  z  s  € Ø�;‰;€DØ€|Ø�$‰ZˆØ�$‰ZˆØˆ:ØˆDØ‰AØˆZØˆDØ‰AØ�‰U�2�a‘5‰[˜˜A™˜r !™u™Ò$ØˆDØ‰AàˆDØˆAØˆW‰€AØ�9‰o€GÙØˆŒØ�a‰iˆŒØ�‰J‰àˆŒØ�a‰i˜'Ñ!ˆŒØ�‰JˆØ˜1™˜a ™d™ C™Ð'€Cˆ$ˆu‰+Ü�sœ7‘{Ó#€Dˆ�LÜ�sœ7‘{Ó#€Dˆ�LØ€Dˆ�LØ�ˆ6€MrH   c                 óN   — t        |j                  d   | j                  d   «      S )Nr-  )r.   rñ   ©r  r  s     rF   Ú_fPLCFr3  œ  s!   € Üˆq�{‰{˜6Ñ" 1§;¡;¨vÑ#6Ó7Ð7rH   c                 ó   — | d   S )Nrf   rB   )r  s    rF   Ú_arcCFr5     s   € ØˆQ‰4€KrH   c                 óÄ  — g g f}ddg}|D ]8  }	t        |	||«      \  }
}||
   j                  |	«       t        |||
   «      ||
<   Œ: d}| d gz  }d}|dz  }||z   }t        |«      }dD �]f  }
||
   }|�rYg }|j                  }g }|j                  }|j                  t        ¬«       d}||z   }|D ]í  }	|	j
                  }||||d   z
  z  z   }|	xj                  |z  c_        |	||d   <   ||d   |z  z   }|d	   }|d
   |d   z
  dz  }||z   |kD  r||z
  }||z
  |k  r||z   }|d   ||z
  |d   ||z   fx|d	<   } ||«       ||	_         |t        d||z
  |z
  «      «       ||z
  }t        ||d   |d   z   «      }t        |t        |d   ||d   z   z  «      |z
  «      }Œï  |||z
  «       d}t        |«      }|dk  �rt        |d¬«      } | snøt        | «      }!|!|k(  rnç| d   }"| d   }#|#dz   }$t        |d |"dz    «      }%|%t        ||$d  «      z   }&t        ||"|$ D �cg c]  }|d
   |d   z
  ‘Œ c}«      |$z   |"z
  ||"   d
   ||#   d   z
  z
  }'|'|&kD  rns||"   d
   |%|'z  |&z  z   }| D ]V  }(||(   }	|	j
                  }|d	   }|d
   |d   z
  dz  }|dz  }||z
  x}|	_        |d   ||z
  |d   |fx||(<   |d	<   ||z
  dz
  }ŒX |dk  r�Œ||z   ||
<   d}�Œi ||d   |d   |fS c c}w )Nr   rf   r™   )r   rf   r"  r¹   Úindexr-  rë   rœ   rg   r+  ÚpiePadÚelbowLengthrì   )rã   rß   )r0  rà   rô   r$  r3  rñ   r¯   r°   rR   rÈ   ré   Úsum))r5   rù   r¯   r°   r¹   r»   r&  ÚLRÚmlrrü   rË   r/   ÚmulÚGÚmelÚhhÚyhhÚmÚTrâ   ÚaBÚSÚaSÚpÚyhr/  ÚincÚlyr  Úb2rÿ   ÚnTrä   r  Új0Új1ÚjlÚsAboveÚsFreeÚsNeedr  s)                                            rF   Ú_fixPointerLabelsrS  £  sÔ  € Ø	ˆBˆ€BØˆQˆ%€CØò ˆÜ�q˜˜tÓ$‰ˆˆ!Ø
ˆ1‰�‰�QŒÜ�Q�s˜1‘v“ˆˆAŠðð €CØ	ˆ4ˆ&‰€AØ
€CØ	�‰€BØ
ˆB‰$€CÜˆC‹€AØó 6ˆØˆq‰EˆÚØˆAØ—‘ˆBØˆAØ—‘ˆBØ�F‰F”vˆFÔØˆAØ�6‘ˆBØò M�Ø—{‘{�Ø˜˜Q˜t G™}™_Ñ-Ñ-�Ø—’�s‘
•Ø#$��$�w‘-Ñ Ø˜˜f™ b™Ñ(�Ø˜‘N�Ø˜‘d˜1˜Q™4‘i ‘_�Ø�b‘5˜’8 " R¡%˜RØ�b‘5˜’7  2¡˜BØ&'¨¡d¨2¨b©5°°1±°b¸±eÐ%<Ð<��X‘ Ù�1”Ø�”Ù”3�q˜˜B™˜r™“?Ô#Ø˜‘U�Ü˜˜$˜y™/¨$¨x©.Ñ8Ó9�Ü˜#œc $ v¡,°°4¸Ñ3FÑ0FÑ"GÓHÈÑKÓL‘ð!Mñ" ˆr�!‰tŒHàˆDÜ�Q“ˆBØ�r“'Ü" 1¨!Ô,�Ù˜%Ü˜“V�Ø�r’6˜5Ø�q‘T�Ø�r‘U�Ø˜‘T�Ü˜Q˜u  1¡˜X›�Øœs 1 R S 6›{Ñ*�Ü°°"°R°Ö9¨1˜Q˜q™T ! A¡$›YÒ9Ó:¸2Ñ=¸bÑ@À!ÀBÁ%ÈÁ(È1ÈRÉ5ÐQRÉ8ÑBSÑT�Ø˜’; Ø�r‘U˜1‘X˜f U™l¨5Ñ0Ñ0�Øò '�AØ˜!™�AØŸ;™;�DØ˜X™�AØ˜A™$˜q ™t™) S™�BØ˜#‘I�BØ! "™uÐ$�B˜œØ-.¨q©T°"°R±%¸¸!¹¸RÐ,@Ð@�A�a‘D˜4 ™>Ø˜b™ 3™‘Bð'ð �r”'ð, �q‘SˆC�‰FØŠðm6ðn ˆc�!‰f�c˜!‘f˜cÐ!Ð!ùò :s   ÈK
c                 ó¨  — dt         z  t        | «      z  }| D �cg c]  }||z  ‘Œ	 }}d}g }|D ]  }|j                  ||dz  z   «       ||z  }Œ  t        | «      dz  }d}	t         dz  }
t	        d«      D ]H  }||
z  }t        |D �cg c]  }t        t        ||z   «      «      ‘Œ c}«      }||k  sŒ<|dk(  r| }	n|}	|}ŒJ |	dz  t         z  S c c}w c c}w )	Nrg   r   r™   g    €„.Ag      B@é$   r  r:   )r   r:  rà   rÈ   rè   rR   r   )r/  r  ÚfacÚdÚradsr  Úhradsr  ÚvstarÚrstarÚdeltarË   r  Úvs                 rF   Útheta0r^  é  sõ   € ØŒR‰4”�T“Ñ
€CØÖ �aˆAˆc‹EÐ €DÐ à	
€BØ€EØò ˆØ�‰�R˜˜#™‘XÔØ
ˆa‰‰ðô �‹I�c‰M€EØ€EÜˆt‰G€EÜ�2‹Yò ˆØˆe‰GˆÜ¨Ö. 1””S˜˜1™“X•Ò.Ó/ˆØˆu‹9Ø˜KÒ'Ø�b‘à�Ø‰Eðð �‰9”R‰<Ðùò) !ùò /s   šC
ÂC
c                   ó   — e Zd ZdZd„ Zy)Ú	AngleDataz/use this to carry the data along with the anglec                 ó@   — t         j                  | |«      }||_        |S rA   )rò   Ú__new__Ú_data)Úclsr³   r/  rD   s       rF   rb  zAngleData.__new__  s   € Ü�}‰}˜S Ó'ˆØˆŒ
ØˆrH   N)rY   rZ   r[   r    rb  rB   rH   rF   r`  r`    s
   „ Ù9órH   r`  c                   óP  — e Zd Z ed:i de“d eed¬«      “d eed¬«      “d eed¬«      “d	 e e	d
d«      d¬«      “d edd¬«      “d ee
d¬«      “d eedd¬«      “d e e edd«      e
f«      dd¬«      “d e e	ddd«      dd¬«      “d ee
dd¬«      “d e e	d d!«      d¬"«      “d# eed$¬«      “d% eed&¬«      “d' eed(¬«      “d) edd*d¬«      “d+ ee
d,¬«      “d- eed.¬«      “d/ e ee«      d0¬«      “d1 eed2¬«      “ŽZdZd3„ Zd4„ Zd5„ Zd;d6„Zd7„ Zd8„ Zd9„ Zy)<ÚPieÚBASEr/  z7List of numbers defining wedge sizes; need not sum to 1r`   rÊ   z2Optional list of labels to use for each data pointÚ
startAnglez#Angle of first slice; 0 is due Eastr  r  Úanticlockwisez'clockwise' or 'anticlockwise'rÑ   Nz&Collection of wedge descriptor objectsr«   zœIf true(default) use a simple String not an advanced WedgeLabel. A WedgeLabel is customisable using the properties prefixed label_ in the collection slices.Úother_thresholdz.A value for doing threshholding, not used yet.rf   rŒ   ÚcheckLabelOverlapgš™™™™™©?zFIf true check and attempt to fix
 standard label overlaps(default off)ÚpointerLabelModeÚ	LeftRightÚLeftAndRightrz   Ú	sameRadiiz,If true make x/y radii the same(default off)Ú	orderModeÚfixedÚ	alternate)r�   ÚxradiuszX direction RadiusÚyradiuszY direction RadiusÚinnerRadiusFractionz$fraction of radii to start wedges atÚwedgeRecordzcallable(wedge,*args,**kwds)r¬   zDIf true attempt to make piechart with labels along side and pointersÚsideLabelsOffsetzWThe fraction of the pie width that the labels are situated at from the edges of the pierª   z,A class factory to use for non simple labelsÚ
angleRangez3total degree range for the doughnut defaults to 360c           
      ó°  — t        j                  | «       t        | d|j                  dd«      «       t        | d|j                  dd«      «       t        | d|j                  dd«      «       t        | d|j                  dd«      «       t        | d|j                  dg d¢«      «       t        | d	|j                  d	d «      «       t        | d
|j                  d
d«      «       t        | d|j                  dd«      «       t        | d|j                  dd«      «       t        | d|j                  dd«      «       t        | d|j                  dd «      «       t        | d|j                  dd«      «       t        | d|j                  dd«      «       t        | d|j                  dd «      «       t        | d|j                  dd «      «       t        | d|j                  dd «      «       t        | d|j                  dd«      «       t        | d|j                  dd«      «       t        | d|j                  dt	        t
        «      «      «       t        | d|j                  dd«      «       t        j                  | j                  d   _	        t        j                  | j                  d   _	        t        j                  | j                  d   _	        t        j                  | j                  d    _	        t        j                  | j                  d!   _	        t        j                  | j                  d"   _	        t        j                  | j                  d#   _	        y )$Nr¯   r   r°   r¹   éd   r»   r/  )rf   gffffff@g333333û?gÍÌÌÌÌÌ@rÊ   rh  r8   r  r  r«   rf   rk  rl  ro  Frp  rq  rs  rt  ru  r¬   rw  rš   rÑ   rx  rL   rg   rœ   é   rM   é   )r*   rŸ   ÚsetattrÚpopr(   r]   r   ÚdarkcyanrÑ   rb   Ú
bluevioletÚblueÚcyanÚpinkÚmagentaÚyellow)rD   Úkwdss     rF   rŸ   zPie.__init__!  sv  € Ü×Ñ˜$ÔÜ��S˜Ÿ™ # a›Ô)Ü��S˜Ÿ™ # a›Ô)Ü��W˜TŸX™X g¨cÓ2Ô3Ü��X˜dŸh™h x°Ó4Ô5Ü��V˜DŸH™H VªOÓ<Ô=Ü��X˜dŸh™h x°Ó5Ô6Ü��\ $§(¡(¨<¸Ó";Ô<Ü��[ §¡¨+°kÓ!BÔCÜ��^ D§H¡H¨^¸AÓ$>Ô?Ü�Ð(¨¯©Ð2EÀaÓ)HÔIÜ�Ð'¨¯©Ð1CÀDÓ(IÔJÜ��[ §¡¨+°eÓ!<Ô=Ü��[ §¡¨+°gÓ!>Ô?Ü��Y˜tŸx™x¨	°$Ó7Ô8Ü��Y˜tŸx™x¨	°$Ó7Ô8Ü�Ð*¨4¯8©8Ð4IÈ$Ó+OÔPÜ��\ $§(¡(¨<¸Ó":Ô;Ü�Ð'¨¯©Ð1CÀCÓ(HÔIÜ��X˜dŸh™h xÔ0GÌÓ0XÓYÔZÜ��\ $§(¡(¨<¸Ó"<Ô=ä#)§?¡?ˆ�‰�A‰Ô Ü#)×#4Ñ#4ˆ�‰�A‰Ô Ü#)§;¡;ˆ�‰�A‰Ô Ü#)§;¡;ˆ�‰�A‰Ô Ü#)§;¡;ˆ�‰�A‰Ô Ü#)§>¡>ˆ�‰�A‰Ô Ü#)§=¡=ˆ�‰�A‰Õ rH   c                 ó–  — t        dd«      }t        «       }d|_        d|_        d|_        d|_        g d¢|_        g d¢|_        d|j                  _	        d|j                  d	   _
        d
|j                  d	   _	        d
d
g|j                  d	   _        d|j                  d	   _        t        j                  |j                  d	   _        t        j                   |j                  d   _        t        j$                  |j                  d   _        t        j&                  |j                  d
   _        t        j(                  |j                  d	   _        t        j*                  |j                  d   _        t        j,                  |j                  d   _        t        j.                  |j                  d   _        |j1                  |«       |S ©NéÈ   rz  é2   é
   éP   ©r‹  é   rì   é(   rŠ  é<   ©r  r  ÚcrW  r3   Úfr™   rœ   rg   ç      ü?r   rf   r{  rM   r|  )r   rf  r¯   r°   r¹   r»   r/  rÊ   rÑ   r_   rj   rd   rn   r   Úredrm   r  rb   r€  r�  r‚  Ú
aquamarineÚ	cadetblueÚ
lightcoralÚadd©rD   rW  Úpcs      rF   ÚdemozPie.demo@  sG  € Ü�C˜Óˆä‹UˆØˆŒØˆŒØˆŒØˆŒ	Ú%ˆŒÚ-ˆŒ	à!ˆ�	‰	ÔØ ˆ�	‰	�!‰ÔØ#$ˆ�	‰	�!‰Ô Ø()¨! uˆ�	‰	�!‰Ô$Ø#'ˆ�	‰	�!‰Ô Ü!'§¡ˆ�	‰	�!‰ÔÜ!'§¡ˆ�	‰	�!‰ÔÜ!'×!2Ñ!2ˆ�	‰	�!‰ÔÜ!'§¡ˆ�	‰	�!‰ÔÜ!'§¡ˆ�	‰	�!‰ÔÜ!'×!2Ñ!2ˆ�	‰	�!‰ÔÜ!'×!1Ñ!1ˆ�	‰	�!‰ÔÜ!'×!2Ñ!2ˆ�	‰	�!‰Ôà	�‰ˆbŒ	ØˆrH   c                 óž  —  G d„ d«      }| j                   dz
  }| j                  }dx}x}x}x}	}
t        | j                  «      }g }|j                  }t        | j                  | j                  «      }|D �]…  \  }}|d   €Œ| j                  |d«      }|sŒ"| j                  ||z     }|j                  r|j                  sŒM|dz  }t        | |d|||«      } ||«       |j                  «       }|d   |d   z
  }|d   |d   z
  }|D �cg c]  }|d   t        ||d   |d   f«      f‘Œ }}t        |d«      }t        |d«      }|r]|r[|d	k(  r|d   |d   z
  |d   |d   z
  k  rd }n<d }n9|d   |d   z
  d
|d   |d   z
  z  k  rd }n|d   |d   z
  d
z  |d   |d   z
  kD  rd }|r|dz  }|r|dz  }t        |||||||j                   |j"                  |j$                  ¬«	      |_        t)        ||	«      }	|
|dz   z  }
�Œˆ |s’| j                   dz  }| j                  dz  }| j*                  |z   }| j,                  |z   }| j.                  r| j.                  }| j0                  r| j0                  }| j2                  rt5        ||«      x}} |||||g «      S ||k(  }|
| j                  k  r|s||k(  rt7        |«      }nd }t9        t        |«      || j*                  | j,                  | j                   | j                  |¬«      \  } }!}"}#|d	k(  rt)        |!|"«      x}!}"| j*                  |!z   }$| j*                  | j                   z   |"z
  }%|%|$z
  dz  }| j                  dz  |#z
  }|$|z   }| j,                  |z   |#z   }| j.                  r| j.                  }| j0                  r| j0                  }| j2                  rt5        ||«      x}} |||||| |!|"«      S c c}w )Nc                   ó   — e Zd Zdd„Zy)ú!Pie.makePointerLabels.<locals>.PLc                 óf   — || _         || _        || _        || _        || _        || _        || _        y rA   )ÚcenterxÚcenteryrs  rt  r/  ÚluÚru)rD   r¡  r¢  rs  rt  r/  r£  r¤  s           rF   rŸ   z*Pie.makePointerLabels.<locals>.PL.__init__^  s3   € Ø&�”Ø&�”Ø&�”Ø&�”Ø �”	Ø�”Ø�•rH   N)r   r   )rY   rZ   r[   rŸ   rB   rH   rF   ÚPLrŸ  ]  s   „ ôrH   r¥  rg   r   rf   rz   r:   rœ   rn  g{®Gáz”?)	rë   r¹   r»   r)  r*  r7  r+  r8  r9  r™   )r&  )r¹   r»   rÈ   rÑ   rà   r  rh  r  rÙ   r   rŽ   rÆ   r÷   r  r'  Údictr‰   rŠ   rˆ   rñ   rô   r¯   r°   rs  rt  ro  rõ   rP   rS  )&rD   ÚanglesÚplModer¥  rÁ   rÂ   r5   ÚnrÚnlÚmaxWÚsumHÚ
styleCountrù   ÚL_addÚrefArcsrË   r  ÚsnrÕ   rü   r  r/   Úhr  r*  r)  rs  rt  r¡  r¢  ÚaonRr&  r>  r£  r¤  r?  Úx0Úx1s&                                         rF   ÚmakePointerLabelszPie.makePointerLabels\  s  € ÷	ñ 	ð —‘˜A‘ˆØ—‘ˆØ$%Ð%ˆÐ%ˆBÐ%�Ð%�d˜TÜ˜Ÿ™Ó%ˆ
Ø
ˆØ—‘ˆÜ" 4§?¡?°4·>±>ÓBˆØó 	‰DˆAˆqØ�‰tˆ|˜XØ×#Ñ# A bÓ)ˆBÙ�xØ—K‘K  *¡Ñ-ˆEØ×&Ò&¨e¯mªm¸XØ�‰FˆAÜ˜T " S¨°°uÓ=ˆAÙ�!ŒHØ—‘“ˆAØ�!‘�Q�q‘T‘	ˆAØ�!‘�Q�q‘T‘	ˆAØFMÖNÀ�1�Q‘4Ô,¨Q°°!±°Q°q±T¨{Ó;Ò<ÐNˆBÐNÜ   AÓ&ˆBÜ   AÓ&ˆBÙ‘bØ˜>Ò)Ø˜!‘u˜R ™U‘{ 2 a¡5¨¨A©¡;Ò.Ø!™à!™à˜!‘u˜R ™U‘{ 4¨¨A©¨r°!©u©Ñ#5Ò5Ø!™Ø˜Q™%  1¡™+ tÑ+¨B¨q©E°"°Q±%©KÒ7Ø!˜Ù�2˜‘7�2Ù�2˜‘7�2Ü a¨a°q¸BÀ"È1ÐUZ×UpÑUpÐx}÷  ySñ  ySð  `e÷  `ñ  `ô  @ˆAŒKÜ�q˜“;ˆDØ�A�a‘C‰KŠDð=	ñ@ Ø—j‘j ‘nˆGØ—k‘k #‘oˆGØ—f‘f˜W‘nˆGØ—f‘f˜W‘nˆGØ�|Š| t§|¡|˜WØ�|Š| t§|¡|˜WØ�~Š~¬s°7¸7Ó/CÐC˜w wÙ�g˜g g¨g°bÓ9Ð9à�1‰uˆØ�—‘Ò¡¨¨QªÜ�T“‰DàˆDÜ'¬¨F«°A°d·f±f¸T¿V¹VÀDÇJÁJÈtÏ{É{Ð`dÔe‰ˆˆ"ˆR�Ø�>Ò!Ü˜"˜R“jÐ ˆB�Ø�V‰V�B‰YˆØ�V‰V�D—J‘JÑ˜rÑ!ˆØ�b‘5˜#‘+ˆØ—+‘+˜c‘/ #Ñ%ˆØ�W‘*ˆØ—&‘&˜‘. Ñ$ˆØ�<Š< 4§<¡<˜Ø�<Š< 4§<¡<˜Ø�>Š>¬3¨w°wÓ+?Ð?˜7 7Ù�'˜' '¨'°!°B°rÓ:Ð:ùò_ Os   Ä	 O
c                 ó6  — t        t        t        | j                  «      «      }t	        t        |«      «      x}| _        |dk7  rt        d| j                  «      |z  nd}|r|D �cg c]  }t        ||z  |«      ‘Œ c}S |D �cg c]  }||z  ‘Œ	 c}S c c}w c c}w )Nr   rL   rf   )
rÉ   ÚmaprR   r/  rò   r:  Ú_sumrõ   rx  r`  )rD   ÚkeepDatar/  r1   r“  r¯   s         rF   ÚnormalizeDatazPie.normalizeData«  s…   € Ü”Cœ˜DŸI™IÓ&Ó'ˆÜœc $›iÓ(Ð(ˆˆDŒIØ*+¨Qª$ŒC��D—O‘OÓ$ QÒ&°AˆÙØ.2Ö3¨”I˜a ™c !Õ$Ò3Ð3à!%Ö&˜A�A�a“CÒ&Ð&ùò 4ùâ&s   Á%BÂBc                 ó  — t        | dd «      }| j                  r2t        | j                  | j                  «      }d| j
                  _        n| j                  dz  }| j                  dk(  xr dxs d}t        | j                  |¬«      «      D �cg c]  }|‘Œ }}| j                  dk(  rØ| j                  sÌ|D �cg c]  }t        |d   «      dk\  sŒ|‘Œ }}|j                  t        ¬	«       g g g}d
}|rL|dk  r|j                  d
«      }n|j                  d«      }||dz     j                  |«       |dz  }|dz  }|rŒL|d   j!                  «        |d
   |d   z   |D �cg c]  }t        |d   «      dk  sŒ|‘Œ c}z   }g }	|	j                  }|D ]^  \  }}
||
|z  z   }t        |
«      t"        k\  r||k\  r||f}n	||f}n|d f}|rt%        |d
   |
j&                  «      |d   f}|} |||f«       Œ` |	S c c}w c c}w c c}w )Nrv  rf   rL   r  rß   )r¹  rr  gñhãˆµøä>r"  r   rg   r{  )rS   r¬   r^  r/  r  rÑ   r   rh  rø   rº  rp  rR   r$  r5  r~  rà   ÚreverseÚ_ANGLELOr`  rc  )rD   Úwrrh  ÚwhichWayr  ÚDÚWrC  rË   r  r³   ÚendAngler  s                rF   Ú
makeAngleszPie.makeAngles´  s  € Ü�T˜-¨Ó-ˆØ�?Š?Ü §	¡	¨4¯>©>Ó:ˆJØ()ˆD�K‰KÕ%àŸ™¨3Ñ.ˆJØ—>‘> [Ñ0Ò7°RÒ<¸1ˆÜ! $×"4Ñ"4¸bÐ"4Ó"AÓBÖC�1ŠQÐCˆÐCØ�>‰>˜;Ò&¨t¯ªØÖ1�q¤ Q q¡T£¨D£’Ð1ˆAÐ1Ø�F‰F”vˆFÔØ�B�ˆAØˆAÙØ�Q’3ØŸ™˜a›‘AàŸ™˜b›	�AØ�!�A‘#‘—‘˜aÔ Ø�Q‘�Ø�Q‘�ò ð ˆa‰D�L‰LŒNØ�!‘�Q�q‘T‘	¨Ö< 1¬S°°1±«Y°t«^šQÒ<Ñ<ˆAØˆØ�H‰HˆØò 	‰HˆAˆuØ" e¨hÑ&6Ñ7ˆHÜ�5‹zœ8Ò#Ø Ò)Ø! *Ð,‘Bà# HÐ,‘Bà Ð%�ÙÜ  1¡ e§k¡kÓ2°2°a±5Ð9�Ø!ˆJÙˆq�ˆf�Ið	ð ˆùò? Dùâ1ùò =s   Â	G4Â9G9ÃG9Å!G>Å8G>c                 ó¦  ‡ — ‰ j                  «       }g }|D ]&  \  }\  }}|€|}nd||z   z  }|j                  |«       Œ( ‰ j                  }t        |«      }t	        ‰ j
                  |«      }	t        ‰ dd «      }
|‰ _        t        ‰ j                  «      }‰ j                  }|rd }|rTd}‰ j                  ||«      }|j                  }|j                  }|j                  }|j                  }|j                  }d„ }n—‰ j                   dz  }‰ j"                  dz  }‰ j$                  |z   }‰ j&                  |z   }‰ j                  r‰ j                  }‰ j                  r‰ j                  }‰ j(                  rt+        ||«      x}}‰ j,                  }ˆ fd„}t/        «       }|j0                  }g }|j                  }‰ j2                  }|D �]è  \  }\  }}|€Œ‰ j                  ||z     }|j4                  sŒ,t7        ||z
  «      }||}} ||«      }|j8                  }|s|rB||z   dz  } | t:        z  }!t=        |!«      }"t?        |!«      }#|r|t@        k  r|||"z  z   }|||#z  z   }|rtC        ||||||||z  ||z  ¬«      }$n)|t@        k\  rtE        ||||«      }$ntC        ||||||¬«      }$|jF                  |$_#        |jH                  |$_$        |jJ                  |$_%        |jL                  |$_&        |jN                  |$_'        |jP                  |$_(        |jR                  |$_)        |jT                  }%|%�r<|tW        |jX                  «      z  }&|&d	kD  �r|%d
k(  rtZ        j\                  ntZ        j^                  }%d	ta        |&«      z   }&d	|jb                  z
  }'|jd                  dk(  rd	|'z
  tW        |&d	z
  «      z  }(|'})n|'d	z
  tW        |&d	z
  «      z  }(d	})||z
  tW        |&«      z  }*|jF                  }+d |$_#        tg        |&«      D ]n  },||,|*z  z   }-||,d	z   |*z  z   }. |%|+|)|(|,z  z   «      }/|rtC        ||||-|.|||z  ||z  ¬«      }0ntC        ||||-|.|¬«      }0|/|0_#        d |0_$        d|0_%         ||0«       Œp  ||$«       |
r |
|$|jh                  |¬«       |jj                  s�ŒÌ|�s.|r�|jl                  }1||1z  }2||1z  }3||2"z  z   }4||3#z  z   }5to        ‰ | |4|5|«      }6 ||6«       |s&|6jp                  r|||"z  z   |6_9        |||#z  z   |6_:        |s�Œ;|4|5| |2|3|||6jw                  «       ||fdœ	|6_<        �Œ^|s�Œbs�Œf||   }6|6s�Œo|6jx                  }7|7d   }8|7d   }9|||9z  z   }:|||8z  z   };|jz                  }<|:|<|9z  z   }=|;|<|8z  z   }> |t}        |:|;|=|>|6j$                  |6j&                  f|j~                  |j€                  ¬«      «        ||6«       �Œý|s�Œ‰ j                  j8                  }?d}@|D ]  \  }}A‰ j                  |   jF                  r@d	z  }@Œ%|@z  }B‰ j                  |B   jF                  ‰ j                  |   _#        ‰ j                  |B   j8                  ‰ j                  |   _        Œ� tg        d@d	z
  «      D ]8  }C‰ j                  |C   j8                  |?kD  sŒ ‰ j                  C   j8                  }?Œ: |jl                  }1||1z  }3t7         «      dk  s| dkD  r| dk  sd| cxk  rdk  r2n n/d	‰ j‚                  z   ‰ j                   z  ‰ j$                  z   |?z   }4d}2n+‰ j$                  ‰ j‚                  ‰ j                   z  z
  |?z
  }4d}2||3#z  z   }5to        ‰ || |4|5|«      }6 ||6«       |s||"z  z   |6_9        |||#z  z   |6_:        |r|4|5| |2|3|||6jw                  «       dœ|6_<        |6jw                  «       \  }D}E}F}G�Œë |r|rt…        |||¬«       |D ]
  }6 ||6«       Œ |�s}|D �]w  }6|6jp                  rV|sT |t‡        |6j$                  |6j&                  |6jr                  |6jt                  j~                  |j€                  ¬«      «       Œf|sŒi|6jw                  «       \  }D}E}F}G|6j$                  d	‰ j‚                  z   ‰ j                   z  ‰ j$                  z   k(  rã |t‡        |6jr                  |6jt                  d|6jr                  |6j$                  z   z  |6j&                  dGEz
  z  z   j~                  |j€                  ¬«      «        |t‡        d|6jr                  |6j$                  z   z  |6j&                  d|G|Ez
  z  z   |6j$                  |6j&                  d|G|Ez
  z  z   |j~                  |j€                  ¬«      «       �Œ— |t‡        |6jr                  |6jt                  d|6jr                  |6j$                  z   z  |6j&                  dGEz
  z  z   j~                  |j€                  ¬«      «        |t‡        d|6jr                  |6j$                  z   z  |6j&                  d|G|Ez
  z  z   |6j$                  |6j&                  d|G|Ez
  z  z   |j~                  |j€                  ¬«      «       �Œz |S )Nr™   rv  Fc                  ó   — y©Nrz   rB   )rË   s    rF   ú<lambda>z Pie.makeWedges.<locals>.<lambda>ú  s   � rH   c                 ó(   •— ‰j                  | d«      S rÆ  )rÙ   )rË   rD   s    €rF   rÇ  z Pie.makeWedges.<locals>.<lambda>  s   ø€ ˜D×.Ñ.¨q°Ó4€ rH   rÐ   )rt  Úradius1Úyradius1)rt  rf   r•   r’   r   )ÚvalueÚlabel)	r¯   r°   r³   rî   rð   rí   rï   rë   r§  r-  r.  )r_   rc   r8   r<   r¦   r§   r¨   ©r¯   r°   r³   rî   rð   rí   rï   rë   )rú   g      Ð?)DrÃ  rà   r¬   rÈ   rÌ   rÊ   rS   Ú_seriesCountrÑ   rl  rµ  rs  rt  r¡  r¢  r/  r¹   r»   r¯   r°   ro  rõ   rk  r   r™  ru  rŽ   rR   rj   rö   r   r   Ú_ANGLEHIr    r   rb   rc   r_   rh   re   ri   rd   r”   rò   r�   r   ÚWhiterÚBlackerrP   r�   r‘   rè   rc  r   rn   rÆ   r®   Ú_aaxÚ_aayr÷   rñ   rˆ   r&   r‡   r†   rw  r  r'   )HrD   r§  Ú
halfAnglesrË   Úa1Úa2Ú	halfAngler¬   r5   rÊ   r¾  r­  r¨  rk  r¥  rs  rt  r¡  r¢  ÚPL_dataÚgSNÚgÚg_addrù   r®  ru  rÃ   r  rí   rï   rÀ   rj   ÚaverageAngleÚaveAngleRadiansÚcosAAÚsinAAÚtheWedgeÚshaderÚnshadesr�   ÚdshÚshf1ÚshdaÚshscÚishÚsha1Úsha2ÚshcÚshWedgern   rî   rð   rÁ   rÂ   rü   r/  ÚsinMÚcosMÚlXÚlYÚlpelÚlXiÚlYiÚslices_popoutrB  r³   r  rå   r´  Úy1Úx2Úy2sH   `                                                                       rF   Ú
makeWedgeszPie.makeWedgesÝ  sS
  ø€ Ø—‘Ó"ˆàˆ
Øò 	)‰IˆA‰gˆr�"ØˆzØ‘	à  B¡™K�	Ø×Ñ˜iÕ(ð	)ð —_‘_ˆ
Ü�‹KˆÜ˜DŸK™K¨Ó*ˆÜ�T˜-¨Ó-ˆàˆÔÜ˜Ÿ™Ó%ˆ
à×&Ñ&ˆÙØˆFÙØ %ÐØ×%Ñ% f¨VÓ4ˆBØ—j‘jˆGØ—j‘jˆGØ—j‘jˆGØ—j‘jˆGØ—g‘gˆGÙ‰Cà—j‘j ‘nˆGØ—k‘k #‘oˆGØ—f‘f˜wÑ&ˆGØ—f‘f˜wÑ&ˆGØ�|Š| t§|¡|˜WØ�|Š| t§|¡|˜WØ�~Š~¬s°7¸7Ó/CÐC˜w wØ $× 6Ñ 6ÐÛ4ˆCä‹GˆØ—‘ˆØˆØ—‘ˆà"×6Ñ6Ðð  ó L	4‰IˆA‰gˆr�"Øˆz˜8ð Ÿ™ Q z¡\Ñ2ˆJØ×%Ò% xÜ�R˜‘U“ˆBð ˜g�ˆBÙ�q“6ˆDØ×&Ñ&ˆFÙ‘vØ " 2¡ s™{�Ø".¬wÑ"6�Ü˜OÓ,�Ü˜OÓ,�Ù˜b¤škà  6¨%¡<Ñ/�BØ  6¨%¡<Ñ/�Bá"Ü   R¨°"°bÀ'Ø 'Ð(;Ñ ;ÀWÐM`ÑE`ôb‘ð ”x’<Ü& r¨2¨w¸Ó@‘Hä$ R¨¨W°b¸"ÀgÔN�Hð ",×!5Ñ!5ˆHÔØ#-×#9Ñ#9ˆHÔ Ø#-×#9Ñ#9ˆHÔ Ø&0×&?Ñ&?ˆHÔ#Ø%/×%=Ñ%=ˆHÔ"Ø(2×(CÑ(CˆHÔ%Ø'1×'AÑ'AˆHÔ$à×+Ñ+ˆFÚØœu Z×%<Ñ%<Ó=Ñ=�Ø˜Q“;Ø.4°iÒ.?œVŸ]š]ÄVÇ^Á^�FØ¤ G£™n�GØ$% j×&>Ñ&>Ñ$>�MØ!×2Ñ2°HÒ<Ø  ™´°g¸a±iÓ0@Ñ@˜Ø,™à,¨Q™´°g¸a±iÓ0@Ñ@˜Ø ˜Ø˜r™E¤5¨£>Ñ1�DØ%×/Ñ/�DØ)-�HÔ&Ü$ W›~ò '˜Ø! C¨¡H™}˜Ø! S¨¡U¨D¡LÑ0˜Ù$ T¨$°°S±©.Ó9˜Ù.Ü&+¨B°°G¸TÀ4ÐQXØ,3Ð4GÑ,GÐQXÐYlÑQlô'n™Gô ',¨B°°G¸TÀ4ÐQXÔ&Y˜GØ,/˜Ô)Ø.2˜Ô+Ø./˜Ô+Ù˜g�ð'ñ �(ŒOÙÙ�8 "§(¡(°Õ6Ø×'Ô'Ú!ÙØ&0×&<Ñ&<˜Ø$ [Ñ0˜Ø$ [Ñ0˜Ø!# b¨¡h¡˜Ø!# b¨¡h¡˜Ü*¨4°°\À&ÈÐPZÓ[˜Ù˜aœÙ%¨!×*;Ò*;Ø%'¨°©Ñ%5˜AœFØ%'¨°©Ñ%5˜AœFÛ,Ø17¸VÈlØ24¸2ÀBÈRØ67·k±k³mÈrÐRTÈgñ+.˜AžKó  £GØ# A™J˜ÛØ#$§;¡;˜DØ#'¨¡<˜DØ#'¨¡<˜DØ!# g¨d¡lÑ!2˜BØ!# g¨d¡lÑ!2˜BØ#-×#GÑ#G˜DØ"$ t¨D¡y¡.˜CØ"$ t¨D¡y¡.˜CÙ!¤(¨B¨r°#°c¸!¿#¹#¸a¿c¹cÐ+BØ0:×0TÑ0TØ0:×0TÑ0Tô#Vô Wñ " !žHãØ(,¯©×(:Ñ(:˜Ø˜Ø(.ò N™H˜A˜uØ#Ÿ{™{¨1™~×7Ò7Ø ! Q¡¡à$% a¡C Ø;?¿;¹;Àq¹>×;SÑ;S §¡¨A¡Ô 8Ø8<¿¹ÀA¹×8MÑ8M §¡¨A¡Õ 5ðNô "' q¨¨1©£ò F˜AØ#Ÿ{™{¨1™~×4Ñ4°}ÓDØ04·±¸A±×0EÑ0E¡ðFð '1×&<Ñ&<˜Ø$ [Ñ0˜Ü Ó-°Ò2¸ÀsÒ9JÈ|Ð]`ÒO`ÐfjØ ,ôg3Ø.2õg3à&'¨×(=Ñ(=Ñ&=¸t¿z¹zÑ%IÈDÏFÉFÑ%RÐUbÑ%b˜FØ!"™Bà%)§V¡V¨t×/DÑ/DÀdÇjÁjÑ.PÑ%PÐS`Ñ%`˜FØ!"˜BØ!# b¨¡h¡˜Ü*¨4°°\À&ÈÐPZÓ[˜Ù˜aœÙ%Ø%'¨°©Ñ%5˜AœFØ%'¨°©Ñ%5˜AœFÙ,Ø17¸VÈlØ24¸2ÀBÈRØ67·k±k³mñ+.˜AœKð '(§k¡k£m™˜˜2˜b¢ðYL	4ñ\ ¡Ü˜Q 
Ð2CÕDØÒˆA‘E˜!•HÐâØó O�Ø×$Ò$©ZÙœ$˜qŸs™s 1§3¡3 q§v¡v¨a¯f©fØ$.×$HÑ$HØ$.×$HÑ$HôJõ Kò  Ø"#§+¡+£-‘K�B�r˜"˜Rà—s‘s˜q ×!6Ñ!6Ñ6¸¿
¹
ÑBÀTÇVÁVÑKÒKÙœd 1§6¡6¨!¯&©&°°a·f±f¸Q¿S¹S±jÑ1AÀ!Ç#Á#ÀtÈRÐPRÉUÁ|ÑBTØ(2×(LÑ(LØ(2×(LÑ(LôNô Oñ œd 3¨¯©¨q¯s©s©
Ñ#3°A·C±C¸¸rÀ"¹u¹Ñ4FÀqÇsÁsÈ1Ï3É3ÐPTÐVXÐY[ÑV[ÑP\ÑK]Ø(2×(LÑ(LØ(2×(LÑ(LôNö Oñ œd 1§6¡6¨!¯&©&°°a·f±f¸Q¿S¹S±jÑ1AÀ!Ç#Á#ÀtÈRÐPRÉUÁ|ÑBTØ(2×(LÑ(LØ(2×(LÑ(LôNô Oñ œd 3¨¯©¨q¯s©s©
Ñ#3°A·C±C¸¸rÀ"¹u¹Ñ4FÀqÇsÁsÈ1Ï3É3ÐPTÐVXÐY[ÑV[ÑP\ÑK]Ø(2×(LÑ(LØ(2×(LÑ(LôNö Oð'Oð. ˆrH   c                 ób   — | j                  «       }| j                  «       }|rt        ||«      S |S rA   )ÚmakeBackgroundr÷  r   )rD   r>  r/   s      rF   ÚdrawzPie.drawº  s/   € Ø×ÑÓ!ˆØ�O‰OÓˆÙ”U˜1˜Q“ZÐØˆrH   rB   )F)rY   rZ   r[   r¡   rÎ   r¢   r	   r   r   r   r   r   r   r   r   r   r£   rj  rŸ   rœ  rµ  rº  rÃ  r÷  rú  rB   rH   rF   rf  rf  	  sè  „ Ùò 
Ñ,ð 
Ù˜OÐ2kÕlð
áÐ3Ð:nÕoð
ñ " (Ð1VÕWð
ñ !¡ {°OÓ!DÐKkÕlð	
ñ
 ˜dÐ)QÕRð
ñ $ Ið  5Sõ  Tð
ñ ' xÐ6fÐuvÕwð
ñ )©±?À4ÈÓ3JÈ9Ð2UÓ)Vð  ^gð  vwõ  xð
ñ (©¨d°;¸~Ó(NÐUWÐfgÕhð
ñ ! Ð1_ÐnoÕpð
ñ !¡ w¨{Ó!;È!ÕLð
ñ ˜~Ð4HÕIð
ñ ˜~Ð4HÕIð
ñ +¨>Ð@fÕgð
ñ # 4Ð.LÐ[\Õ]ð
ñ  " )Ð2xÕyð!
ñ" (¨ð  8Qõ  Rð#
ñ$  ¡ zÓ 2Ð9gÕhð%
ñ& " (Ð1fÕgð'
€Hð* €Oò1ò>ò8M;ó^'ò'òR[ózrH   rf  c                   ó  — e Zd ZdZ ee eed¬«       edd¬«       edd¬«       eed¬«       ee	d¬«       ee
d	¬«       eed
¬«       eed¬«       eed¬«       eed¬«       eed¬«      ¬«      Zd„ Zd„ Zd„ Zdd„Zy)ÚLegendedPiezUPie with a two part legend (one editable with swatches, one hidden without swatches).z#If true then create and draw legendr`   NzHandle to legend for piez;Formatting routine for number on right hand side of legend.z:Horizontal space between legend and numbers on r/hand sidez&Colours used for both swatches and piezNames used in legend (or None)z/Numbers used on r/hand side of legend (or None)zPadding on left of drawingzPadding on right of drawingzPadding at top of drawingzPadding at bottom of drawing)rg  Ú
drawLegendÚlegend1ÚlegendNumberFormatÚlegendNumberOffsetÚpieAndLegend_colorsÚlegend_namesÚlegend_datar½   r¾   r¼   r¿   c                 óž  — t        | d|j                  dg d¢«      «       t        j                  | fi |¤Ž t        j
                  t        j                  }} |ddddd¬«       |dd	dd
d¬«       |dddddd¬«       |dd	dd
dd¬«       |dddddd¬«       |dd	dd
dd¬«      g| _        | j                  d   | j                  d   _	        | j                  d   | j                  d   _	        | j                  d   | j                  d   _	        | j                  d   | j                  d   _	        | j                  d   | j                  d   _	        | j                  d   | j                  d   _	        d| j                  _
        || j                  _        d}d| _        d| _        | j                  | _        ddlm}  |«       | _        | j&                  |z   | j$                  _        | j*                  | j$                  _        d| j$                  _        d| j$                  _        d| j$                  _        d| j$                  _        d| j$                  _        d| j$                  _        d| j$                  _        g d¢| _        t?        tA        | j                  «      «      D ]C  }| j$                  jB                  jE                  | j                  |   | j<                  |   f«       ŒE d| j$                  _#        d | j$                  _$        || j$                  _        d!| j$                  _
         |«       | _%        d| jJ                  _        d| jJ                  _        d| jJ                  _        d"| jJ                  _#        d | jJ                  _$        | j$                  j                  | jJ                  _        d| _&        d| _'        d| _(        d| _)        d| _*        y )#Nr/  )g333333C@g33333³4@gfffffæ2@gÍÌÌÌÌÌ.@gffffff@é   éH   r   zPANTONE 458 CV)ÚspotNamerz  éA   rì   zPANTONE 288 CVéK   )r  ÚdensityrŠ  rf   rg   rœ   r{  rM   g      è?é   é3   z%.1f%%)ÚLegendg®Gáz®@g×£p=
W,@gHáz®Ç&@é   Úright)zAAA:zAA:zA:zBBB:zNR:zHelvetica-Boldr|  r™   zHelvetica-Oblique)+r}  r~  rf  rŸ   r   Ú
PCMYKColorr�   r  rÑ   rb   r_   rc   r   rÿ  r/  r  Ú!reportlab.graphics.charts.legendsr  rþ  r¹   r¯   r»   r°   ÚdeltaxÚdeltayÚdxTextSpacer±   r²   ÚcolumnMaximumÚ	alignmentr  rè   rÈ   ÚcolorNamePairsrà   rk   rl   Ú_legend2r½   r¾   r¼   r¿   rý  )rD   r†  r  r�   ÚlegendOffsetr  r“  s          rF   rŸ   zLegendedPie.__init__Ñ  s&  € Ü��V˜DŸH™H VÒ,IÓJÔKÜ�‰�TÑ!˜DÒ!Ü"×-Ñ-¬v¯|©|�Eˆ
Ù$.¨r°"°R¸ÐCSÔ$TÙ$.¨s°2°a¸ÐDTÔ$UÙ$.¨r°"°R¸ÐCSÐ\^Ô$_Ù$.¨s°2°a¸ÐDTÐ]_Ô$`Ù$.¨r°"°R¸ÐCSÐ\^Ô$_Ù$.¨s°2°a¸ÐDTÐ]_Ô$`ð$bˆÔ ð "&×!9Ñ!9¸!Ñ!<ˆ�‰�A‰Ô Ø!%×!9Ñ!9¸!Ñ!<ˆ�‰�A‰Ô Ø!%×!9Ñ!9¸!Ñ!<ˆ�‰�A‰Ô Ø!%×!9Ñ!9¸!Ñ!<ˆ�‰�A‰Ô Ø!%×!9Ñ!9¸!Ñ!<ˆ�‰�A‰Ô Ø!%×!9Ñ!9¸!Ñ!<ˆ�‰�A‰Ô à"&ˆ�‰ÔØ"'ˆ�‰ÔàˆØ"$ˆÔØ"*ˆÔØŸ9™9ˆÔõ 	=Ù“xˆŒØŸ™ LÑ0ˆ�‰ŒØŸ™ˆ�‰ŒØ"ˆ�‰ÔØ#ˆ�‰ÔØ#(ˆ�‰Ô Øˆ�‰ŒØˆ�‰ŒØ%&ˆ�‰Ô"Ø!(ˆ�‰ÔÚ<ˆÔÜ”s˜4Ÿ9™9“~Ó&ò 	dˆAØ�L‰L×'Ñ'×.Ñ.°×0HÑ0HÈÑ0KÈT×M^ÑM^Ð_`ÑMaÐ/bÕcð	dà 0ˆ�‰ÔØ !ˆ�‰ÔØ#(ˆ�‰Ô Ø#&ˆ�‰Ô á›ˆŒØ$%ˆ�‰Ô!Øˆ�‰ÔØ")ˆ�‰ÔØ!4ˆ�‰ÔØ!"ˆ�‰ÔØ$(§L¡L×$<Ñ$<ˆ�‰Ô!àˆÔØˆÔØˆŒØˆÔØˆ�rH   c           	      ó�  — | j                   r"g | j                  _        g | j                  _        t	        t        | j                  «      «      D �]n  }| j                  d k(  rV| j                  |   | j                  |   _
        | j                  j                  j                  | j                  |   d f«       nc	 | j                  |   | j                  |   _
        | j                  j                  j                  | j                  |   | j                  |   f«       | j                  d k7  sŒÜ| j                  |   }| j                  }|�|€nLt        |t         «      r||z  }n6t#        |d«      r	 ||«      }n!t%        dt'        | j                  «      z  «      ‚| j                  j                  j                  d |f«       �Œq t(        j+                  | «      }| j                   �r!|j-                  | j                  «       | j                  j.                  | j0                  z   | j                  _        | j                  j2                  | j                  _        | j                  j4                  | j                  _        | j                  j6                  | j                  _        | j                  j8                  | j                  _        | j                  j:                  | j                  _        |j-                  | j                  «       |j=                  | j>                  | j@                  «       |S # t        $ r’ | j                  |t        | j                  «      z     | j                  |   _
        | j                  j                  j                  | j                  |t        | j                  «      z     | j                  |   f«       Y �Œ«w xY w)NÚ__call__z6Unknown formatter type %s, expected string or function)!rý  rþ  r  r  rè   rÈ   r/  r  r  rÑ   rb   rà   Ú
IndexErrorr  rÿ  Ú
isinstanceÚstrÚhasattrÚ
ValueErrorÚasciirf  rú  r™  r¯   r   r°   r  r  r²   r  Úshiftr½   r¿   )rD   r“  ÚldfÚlNFrG  s        rF   rú  zLegendedPie.draw  s÷  € Ø�?Š?Ø*,ˆD�L‰LÔ'Ø+-ˆD�M‰MÔ(Ü”s˜4Ÿ9™9“~Ó&ó 	@ˆAØ× Ñ  DÒ(Ø+/×+CÑ+CÀAÑ+F�—‘˜A‘Ô(Ø—‘×+Ñ+×2Ñ2°D×4LÑ4LÈQÑ4OÐQUÐ3VÕWðJØ/3×/GÑ/GÈÑ/J�D—K‘K ‘NÔ,Ø—L‘L×/Ñ/×6Ñ6¸×8PÑ8PÐQRÑ8SÐUY×UfÑUfÐghÑUiÐ7jÔkð ×Ñ 4Ó'Ø×&Ñ& qÑ)�Ø×-Ñ-�Ø�; # +ØÜ ¤CÔ(Ø ™)‘CÜ˜S Ô,Ù˜c›(‘Cä$Ð%]Ô`eÐfj×f}Ñf}Ó`~Ñ%~ÓÐØ—‘×,Ñ,×3Ñ3°T¸#°JÖ?ð-	@ô. �H‰H�T‹NˆØ�?‹?Ø�E‰E�$—,‘,Ôà"Ÿl™lŸn™n¨T×-DÑ-DÑDˆD�M‰MŒOØ"Ÿl™lŸn™nˆD�M‰MŒOØ#'§<¡<×#6Ñ#6ˆD�M‰MÔ Ø#'§<¡<×#6Ñ#6ˆD�M‰MÔ Ø#Ÿ|™|Ÿ™ˆD�M‰MÔØ*.¯,©,×*DÑ*DˆD�M‰MÔ'Ø�E‰E�$—-‘-Ô Ø	�‰�× Ñ  $×"4Ñ"4Ô5Øˆøô7 "ò JØ/3×/GÑ/GÈÌ#Èd×NfÑNfÓJgÑHgÑ/h�D—K‘K ‘NÔ,Ø—L‘L×/Ñ/×6Ñ6¸×8PÑ8PÐQRÔSVÐW[×WoÑWoÓSpÑQpÑ8qÐsw÷  tEñ  tEð  FGñ  tHð  8I÷  JðJús   Â7A"L*Ì*BOÏOc                 ó6  — | j                   }| j                  rX|| j                  j                  | j                  z   z  }|| j
                  j                  | j
                  j                  «      z  }| j                  | j                  z   | j                  z   }||fS rA   )r¾   rý  rþ  r¯   r   r  Ú_calculateMaxWidthr  r¿   r»   r¼   )rD   ÚtxÚtys      rF   Ú_getDrawingDimensionsz!LegendedPie._getDrawingDimensions7  sz   € Ø×ÑˆØ�?Š?Ø�$—,‘,—.‘. ×!8Ñ!8Ñ8Ñ8ˆBØ�$—-‘-×2Ñ2°4·=±=×3OÑ3OÓPÑPˆBØ×Ñ §¡Ñ+¨D¯O©OÑ;ˆØ�2ˆwˆrH   c                 ó†   — |s| j                  «       \  }}t        ||«      }|j                  | j                  «       «       |S rA   )r)  r   r™  rú  )rD   Údrawingr'  r(  s       rF   rœ  zLegendedPie.demo?  s9   € ÙØ×.Ñ.Ó0‰EˆBˆrÜ˜b "“oˆGØ�‰�D—I‘I“KÔ ØˆrH   rA   )rY   rZ   r[   r    r¡   rf  r¢   r   r   r   r   r   r£   rŸ   rú  r)  rœ  rB   rH   rF   rü  rü  À  s¢   „ Ù_á˜CÙ! )Ð2WÔXÙ˜tÐ*DÔEÙ)¨$Ð5rÔsÙ)¨(Ð9uÔvÙ*¨>Ð@hÔiÙ#Ð$?ÐFfÔgÙ"Ð#>ÐEvÔwÙ" 8Ð2NÔOÙ# HÐ3PÔQÙ! (Ð1LÔMÙ$ XÐ4RÔSô
€Hò;òz'òRôrH   rü  )Ú
_getShadedÚ_2radró   rö   c            	       ó  — e Zd ZdZ ed/i d eed¬«      “d eed¬«      “d eed¬«      “d eed¬«      “d eed¬«      “d	 eed¬«      “d
 eed«      “d ee	d¬«      “d eed¬«      “d eed¬«      “d eed¬«      “d eed¬«      “d eed¬«      “d ee
d¬«      “d ee
d¬«      “d eed«      “d ee
d¬«      “d eed«      “d eed«      “d eed¬«      “d eed¬«      “d eed¬«      “d eed¬«      “d eed «      “d! eed"¬«      “d# ee
d¬«      “d$ eed¬«      “d% eed¬«      “d& eed¬«      “d' eed¬«      “d( eed¬«      “d) eed¬«      “d* eed¬«      “d+ eed,«      “ŽZd-„ Zy.)0ÚWedge3dPropertiesr^   rb   rz   r`   ÚfillColorShadedrm   rk   rl   rq   r„   zpadding at bottom of boxrr   ru   rs   rt   ro   rp   r}   ry   r‚   zpadding at left of boxr|   rƒ   zpadding at right of boxr…   zset to True for simple pointersrv   rw   rx   r~   r�   zpadding at top of boxr   r€   r{   rn   rj   Úshadingrc   ÚstrokeColorShadedrd   r_   rŽ   zset to false to skip displayingc                 ó&  — d| _         d| _        d| _        d x| _        x| _        | _        t        d   | _        t        d   | _        d| _	        t        d   | _
        t        d   | _        t        d   | _        d	| _        dx| _        x| _        | _        d | _        dx| _        x| _        x| _        | _        d
| _        d | _        d| _        d | _        d | _        d| _        d x| _        x| _        x| _        | _        d| _         d| _!        d| _"        y )Nr   g333333Ó?rf   rc   rd   rk   rl   rb   r˜   rJ   r™   rš   r›   )#r_   r1  rŽ   r2  r0  rb   r"   rc   rd   rj   rk   rl   rm   rn   ro   rp   rq   rx   r�   r‚   rƒ   r„   rr   rs   rt   ru   rv   rw   ry   r{   r|   r}   r~   r   r…   rž   s    rF   rŸ   zWedge3dProperties.__init__t  s#  € ØˆÔØˆŒØˆŒØIMÐMˆÔÐM Ô!5¸¼Ü)¨-Ñ8ˆÔÜ-Ð.?Ñ@ˆÔØˆŒÜ& zÑ2ˆŒÜ& zÑ2ˆŒÜ'¨Ñ4ˆŒØˆÔØ;<Ð<ˆŒÐ<˜œ¨Ô(8ØˆŒØnoÐoˆÔÐo Ô 6Ðo¸Ô9PÐSWÔSkØ&ˆÔØ$(ˆÔ!Ø$'ˆÔ!Ø"&ˆÔØ!%ˆÔØ!$ˆÔØ]aÐaˆÔÐa Ô 0Ða°4Ô3FÈÔIZØ 'ˆÔØˆÔØ$%ˆÕ!rH   NrB   )rY   rZ   r[   r    r¡   r¢   r
   r   r   r   r   r   r   r   r   r£   rŸ   rB   rH   rF   r/  r/  G  se  „ ññ ò #
Ù  °BÕ7ð#
á& }¸"Õ=ð#
ñ ! °BÕ7ð#
ñ   ¨bÕ1ð	#
ñ
   ¨bÕ1ð#
ñ # 8°Õ4ð#
ñ +¨8Ð4NÔOð#
ñ ' {¸Õ;ð#
ñ *¨-¸RÕ@ð#
ñ  ,¨M¸rÕBð#
ñ  ,¨H¸"Õ=ð#
ñ   ¨bÕ1ð#
ñ   ¨bÕ1ð#
ñ $ N¸Õ;ð#
ñ % ^¸Õ<ð#
ñ  )¨Ð2JÔKð!#
ñ" & n¸"Õ=ð##
ñ$ *¨(Ð3LÔMð%#
ñ&  ,¨IÐ6WÔXð'#
ñ( )¨¸BÕ?ð)#
ñ* )¨°rÕ:ð+#
ñ, " .°bÕ9ð-#
ñ. (¨¸"Õ=ð/#
ñ0 (¨Ð1HÔIð1#
ñ2 % YÐ4VÕWð3#
ñ4 # >°rÕ:ð5#
ñ6 # 8°Õ4ð7#
ñ8 ˜h¨BÕ/ð9#
ñ: ˜x¨RÕ0ð;#
ñ< # =°bÕ9ð=#
ñ> )¨¸BÕ?ð?#
ñ@ 'Ð'<À"ÕEðA#
ñB # 8°Õ4ðC#
ñD ˜yÐ)JÔKðE#
€HóJ&rH   r/  c                   ó   — e Zd Zd„ Zd„ Zy)Ú_SL3Dc                 óŒ   — |dk  r
|dz  }|dz  }|| _         || _        ||z   dz  | _        t        ||z
  «      t        k  | _        y )Nr   rL   r™   )ÚloÚhir,  rR   rÏ  Únot360)rD   r7  r8  s      rF   rŸ   z_SL3D.__init__�  sL   € ØˆaŠ4Ø�#‰IˆBØ�#‰IˆBØˆŒØˆŒØ�r‘E˜3‘;ˆŒÜ˜"˜R™%“j¤8Ñ+ˆ�rH   c                 ó8   — d| j                   | j                  fz  S )Nz_SL3D(%.2f,%.2f))r7  r8  rž   s    rF   Ú__str__z_SL3D.__str__˜  s   € Ø! T§W¡W¨T¯W©WÐ$5Ñ5Ð5rH   N)rY   rZ   r[   rŸ   r;  rB   rH   rF   r5  r5  Ž  s   „ ò,ó6rH   r5  c                 ó(   — t        | d   |d   «       S ©Nr   r-   r2  s     rF   Ú_keyS3Dr>  ›  s   € Ü��!‘�Q�q‘T‹Nˆ?ÐrH   r<   c            	       óœ   — e Zd Z ee eed¬«       eed¬«       eed¬«      ¬«      ZdZdZ	dZ
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚPie3dzA flattening parameter.r`   zdepth of the pie.zThe view angle.)rg  ÚperspectiveÚdepth_3dÚangle_3déF   é   r:   c                 ór   — | j                   |   j                  xr | j                  |   j                  xs dS r=  )Ú_sl3dr9  rÑ   rj   )rD   rË   s     rF   Ú_popoutzPie3d._popoutª  s.   € Ø�z‰z˜!‰}×#Ñ#Ò=¨¯©°A©×(=Ñ(=ÒBÀÐBrH   c                 óÀ   — | j                   |xr | j                  xs dz   | j                  |«      t        t	        | j
                  |   j                  «      «      z  z   S r=  )Ú_cxÚ
_xdepth_3drH  r   r-  rG  r,  ©rD   rË   rW  s      rF   ÚCXzPie3d.CX­  óJ   € Ø�x‰x˜Ò.˜tŸ™Ò3°!Ñ4°T·\±\À!³_ÄSÌÈtÏzÉzÐZ[É}×O`ÑO`ÓIaÓEbÑ5bÑbÐbrH   c                 óÀ   — | j                   |xr | j                  xs dz   | j                  |«      t        t	        | j
                  |   j                  «      «      z  z   S r=  )Ú_cyÚ
_ydepth_3drH  r   r-  rG  r,  rL  s      rF   ÚCYzPie3d.CY¯  rN  rH   c                 ój   — | j                  ||«      | j                  t        t        |«      «      z  z   S rA   )rM  Ú_radiusxr   r-  ©rD   rË   ÚorW  s       rF   ÚOXzPie3d.OX±  ó(   € Ø�w‰w�q˜‹|˜DŸM™M¬#¬e°A«h«-Ñ7Ñ7Ð7rH   c                 ój   — | j                  ||«      | j                  t        t        |«      «      z  z   S rA   )rR  Ú_radiusyr   r-  rU  s       rF   ÚOYzPie3d.OY³  rX  rH   c                 óh   — | j                   }t        t        ||z
  «      t        ||z
  dz   «      «      S )NrL   )Ú_3dvarõ   rR   )rD   r  r]  s      rF   Úrad_distzPie3d.rad_dist¶  s-   € Ø—
‘
ˆÜ”3�q˜‘w“<¤ A e¡G¨C¡KÓ 0Ó1Ð1rH   c                 ó|  — t         j                  | «       t        t        «      | _        t
        j                  | j                  d   _        t
        j                  | j                  d   _        t
        j                  | j                  d   _        t
        j                  | j                  d   _        t
        j                  | j                  d   _        t
        j                  | j                  d   _        t
        j                  | j                  d   _        d x| _        | _        d| _        d	| _        g d
¢| _        y )Nr   rf   rg   rœ   r{  rM   r|  i,  r‰  )g      )@gš™™™™4@rÐ   g      6@g      @g      2@g      *@)rf  rŸ   r(   r/  rÑ   r   r  rb   r€  r�  r‚  ÚazureÚcrimsonÚ
darkvioletrs  rt  r¹   r»   r/  rž   s    rF   rŸ   zPie3d.__init__º  sÎ   € Ü�‰�TÔÜ-Ô.?Ó@ˆŒÜ#)§?¡?ˆ�‰�A‰Ô Ü#)×#4Ñ#4ˆ�‰�A‰Ô Ü#)§;¡;ˆ�‰�A‰Ô Ü#)§;¡;ˆ�‰�A‰Ô Ü#)§<¡<ˆ�‰�A‰Ô Ü#)§>¡>ˆ�‰�A‰Ô Ü#)×#4Ñ#4ˆ�‰�A‰Ô Ø&*Ð*ˆŒ�t”|ØˆŒ
ØˆŒÚ=ˆ�	rH   c                 óÜ  — | j                  |«      }|| j                  | j                  |   j                  «      k  r°| j                  |d«      | j	                  |d«      | j                  |d«      | j	                  |d«      | j                  ||d«      | j                  ||d«      | j                  ||d«      | j                  ||d«      g}|j                  |t        ||||d¬«      f«       y y )Nr   rf   ©rc   rb   r_   rh   )	r^  rG  r,  rM  rR  rW  r[  rà   r$   )	rD   rù   rË   r³   rc   r_   rb   ÚrdrG  s	            rF   Ú	_fillSidezPie3d._fillSideÉ  sÍ   € Ø�]‰]˜5Ó!ˆØˆd�m‰m˜DŸJ™J q™M×-Ñ-Ó.Ò.Ø—‘˜˜1“˜dŸg™g a¨›lØ—‘˜˜!“˜TŸW™W Q q›\Ø—‘˜˜% Ó" 4§7¡7¨1¨U°1Ó#5Ø—‘˜˜% Ó" 4§7¡7¨1¨U°1Ó#5ð7ˆAð �H‰H�bœ °ÀyÐ]hÐxyÔzÐ{Õ|ð /rH   c                 ó"  ‡ — ‰ j                   }‰ j                  }t        |dz   «      x}‰ _        t	        |«      }‰ j
                  }t        |«      |z  ‰ _        t        |«      |z  ‰ _	        ‰ j                  ‰ j                  dz  z   ‰ _        ‰ j                  ‰ j                  ‰ j                  z
  dz  z   ‰ _        ‰ j                  ‰ j                  z
  x}}‰ j                   r‰ j                   }‰ j"                  r‰ j"                  }|‰ _        d‰ j&                  dz  z
  |z  x‰ _        }‰ j+                  «       }‰ j,                  }	‰ j.                  }
‰ j0                  }‰ j2                  }‰ j4                  }‰ j6                  }‰ j8                  }t;        |«      x‰ _        }g x}‰ _        tA        «       }t        ‰ jB                  «      }‰ jD                  dk(  xr dxs d}|D ]4  }||z  }|||z   }}|}|dkD  r||}}|jG                  tI        ||«      «       Œ6 tK        ‰ jL                  |«      }|}|d	z   }g }g }g } G ˆ fd
„dtN        «      }‰ jP                  }tS        |«      D �]E  }||   }|jT                  sŒ||   } | jV                  x}!}| jX                  x}"}t[        |"|!z
  «      }#|#t\        k  rŒOt_        |j`                  |jb                  |jd                  «      }$t_        |jf                  |jh                  |jd                  «      xs |$}%|jj                  }& |
|d«      }' ||d«      }( |
|d«      }) ||d«      }*|�r|jm                  to        |)|*||!|"||%|&|$d¬«
      «       |!|cxk  r|"k  rn n|}|!|cxk  r|"k  rn n|}tq        |%|$|&d¬«      }+|+js                  |)|*||||d¬«       |+ju                   |||d«       |||d«      «       |+js                  |'|(||||d¬«       |+jw                  «        ||k  r||k\  rd},nty         ||«       ||«      «      },|jG                  |,|+f«        ||||!|%|&|$«        ||||"|%|&|$«       |j`                  }$|jf                  xs |$}%|jG                  to        |'|(||!|"||%|&|$d¬«
      «       |#tz        k\  rt}        |'|(|||%|&|$d¬«      }-nto        |'|(||!|"||%|&|$d¬«
      }-|jG                  |-«       ||   }.|j~                  s�Œy|.s�Œ}|j€                  }/‰ xj$                  |/z  c_        ‰ xj(                  |/z  c_        | j‚                  }0 |||0d«      }1 |||0d«      }2t…        ‰ |.|0|1|2||¬«      }3|jG                  |3«       |r@|1|2|0‰ j$                  ‰ j(                   |
|d«       ||d«      |3j‡                  «       dœ|3_D        |‰ _        |‰ _        �ŒH |j‹                  tŒ        ¬«       |r|rt�        |‰ j�                  «       |D �4cg c]  }4|4d   ‘Œ	 c}4|z   |z   D ]  }5|jm                  |5«       Œ |S c c}4w )Nr8   rÐ   ç      ð?g      Y@r  rß   rf   r   r:   c                   ó.   •— e Zd ZW ° j                  Zd„ Zy)ú Pie3d.draw.<locals>.WedgeLabel3dc                 ó�   — |d   dk(  r>t        | d«      s1| j                  | _        | j                   | j                  z   | _        y y y )Nr   r5   Ú_ody)r  r²   rl  rQ  rC   s     rF   rG   z*Pie3d.draw.<locals>.WedgeLabel3d._checkDXYÿ  sB   € Ø�a‘5˜#’:Ü" 4¨Ô/Ø$(§G¡G˜œ	Ø#'§9¡9 *¨t¯©Ñ">˜�ð 0ð rH   N)rY   rZ   r[   rQ  rG   rž   s   €rF   ÚWedgeLabel3drj  ý  s   ø„ ÙŸ™ˆJó?rH   rm  )rt  rc   r_   rb   rh   rd  )rt  ÚmoveTo)rt  r¼  )rc   r_   rb   rh   )rª   rÍ  r"  )IrÑ   rC  ró   r]  r-  rB  r   rK  r   rQ  r¯   r¹   rJ  r°   r»   rP  rs  rt  rT  rA  rZ  rº  r¸  rM  rR  rW  r[  r^  rf  rÈ   rÎ  rG  r   rh  r  rà   r5  rÌ   rÊ   r?   rk  rè   rŽ   r7  r8  rR   r½  r,  rb   r0  r1  rc   r2  r_   r™  r    r#   ÚaddArcÚlineToÚ	closePathrõ   rÏ  r   r   rn   r,  rÆ   r÷   rñ   r$  r>  r  r¬   )6rD   rÑ   Ú	_3d_angler]  Úa0rB  ÚradiusxÚradiusyr/  r:  rM  rR  rW  r[  r^  rf  r5   rG  rÚ  Úlastr]  Úangle1Úangle0rÊ   rÕ  rC  rE  rù   rm  rk  rË   rÕ   Úslr7  r8  r  rb   rc   r_   Úcx0Úcy0Úcx1Úcy1rG  re  rà  rÀ   Úratr,  rÁ   rÂ   rü   r1   r¯   s6   `                                                     rF   rú  z
Pie3d.drawÒ  sÛ  ø€ Ø—‘ˆØ—M‘Mˆ	Ü! )¨B¡,Ó/Ð/ˆ�”
Ü�5‹\ˆØ—=‘=ˆÜ˜b›' (Ñ*ˆŒÜ˜b›' (Ñ*ˆŒØ—6‘6˜$Ÿ*™* S™.Ñ(ˆŒØ—6‘6˜4Ÿ;™;¨¯©Ñ8¸#Ñ=Ñ=ˆŒØ ŸH™H T§V¡V™OÐ+ˆ�'Ø�<Š< 4§<¡<˜Ø�<Š< 4§<¡<˜ØˆŒØ#&¨×)9Ñ)9¸%Ñ)?Ñ#?ÀÑ"HÐHˆŒ˜Ø×!Ñ!Ó#ˆØ�i‰iˆà�W‰WˆØ�W‰WˆØ�W‰WˆØ�W‰WˆØ—=‘=ˆØ—N‘Nˆ	Ü # D£	Ð)ˆÔ˜AØÐˆ�”
Ü‹GˆÜ�D—O‘OÓ$ˆØ�^‰^˜[Ñ(Ò/¨RÒ4°1ˆØò 	/ˆAØ�‰GˆAØ! 1 T¡6�FˆFØˆDØ�!Št f¨f˜V�VØ�L‰Lœ˜v fÓ-Õ.ð	/ô ˜DŸK™K¨Ó*ˆØˆØ�s‰]ˆØˆØˆØˆö	?œ:ô 	?ð !×2Ñ2Ðä�q“ó A	(ˆAØ˜1‘IˆEØ—=’= (Ø�q‘ˆBØŸ%™%ÐˆB�ØŸ%™%ÐˆB�Ü�R˜‘U“ˆBØ”(Š{˜HÜ" 5§?¡?°5×3HÑ3HÈÏÉÓWˆIÜ$ U×%6Ñ%6°u×7NÑ7NÈuÏ}É}Ó]ÒjÐajˆKØ×+Ñ+ˆKÙ�Q�q“'ˆCÙ�Q�q“'ˆCÙ�Q�q“'ˆCÙ�Q�q“'ˆCÚà—‘”e˜C  G¨R°¸GØ,7ÀKÐZcØ/0ô2ô 3ð ˜”<˜R•<¨" Ø˜”<˜R•<¨" Ü¨¸yÐU`ÐpqÔr�Ø—‘˜˜S ¨°¸wÈa�ÔPØ—‘™˜A˜f Q›©¨1¨V°A«Ô7Ø—‘˜˜S ¨°¸wÈq�ÔQØ—‘”Ø˜5’= V¨U¢]Ø‘Bä™X fÓ-©h°vÓ.>Ó?�BØ—‘˜"˜Q˜Ô Ù˜!˜A˜b ¨[¸ÔCÙ˜!˜A˜b ¨[¸ÔCð Ÿ™ˆIØ×+Ñ+Ò8¨yˆKØ�H‰H”U˜3˜s 7¨2¨b¸Ø(3ÀÐV_Ðopôrô sà”8Š|Ü" 3¨¨W°gØ(3ÀÐV_Ðopôr‘ô !  S¨°°B¸wØ(3ÀÐV_Ðopôr�à�H‰H�XÔà˜!‘9ˆDØ×"Ô"£tØ×'Ñ'�Ø—’ Ñ$•Ø—’ Ñ$•Ø—f‘f�Ù˜A˜c !›�Ù˜A˜c !›�Ü   d¨3¨v°f¸UÈlÔ[�Ø—‘˜”Ù$Ø)/°VÀcØ*.¯-©-¸d¿m¹mÑRTÐUVÐWXÓRYÑ`bÐcdÐefÓ`gØ./¯k©k«mñ#&�A”Kð !(�”Ø '�–ðCA	(ðF 	
�‰”7ˆÔÙ¡Ü˜Q˜tŸ™Ô/Ø!"Ö#˜A�1�Q“4Ò# AÑ% aÑ'ò 	ˆAØ�E‰E�!�Hð	àˆùò $s   ×Xc                 ó^  — t        dd«      }t        «       }d|_        d|_        d|_        d|_        g d¢|_        g d¢|_        d|j                  _	        d|j                  d	   _
        d
|j                  d	   _	        d
d
g|j                  d	   _        d|j                  d	   _        t        j                  |j                  d	   _        t        j                   |j                  d   _        t        j$                  |j                  d   _        t        j&                  |j                  d
   _        t        j(                  |j                  d	   _        t        j*                  |j                  d   _        t        j,                  |j                  d   _        t        j.                  |j                  d   _        d| j                  d   _        d| j                  d	   _        d| j                  d   _        d| j                  d   _        d| j                  d   _        |j3                  |«       |S rˆ  )r   rf  r¯   r°   r¹   r»   r/  rÊ   rÑ   r_   rj   rd   rn   r   r•  rm   r  rb   r€  r�  r‚  r–  r—  r˜  rŽ   r™  rš  s      rF   rœ  z
Pie3d.demoQ  s—  € Ü�C˜Óˆä‹UˆØˆŒØˆŒØˆŒØˆŒ	Ú%ˆŒÚ-ˆŒ	à!ˆ�	‰	ÔØ ˆ�	‰	�!‰ÔØ#$ˆ�	‰	�!‰Ô Ø()¨! uˆ�	‰	�!‰Ô$Ø#'ˆ�	‰	�!‰Ô Ü!'§¡ˆ�	‰	�!‰ÔÜ!'§¡ˆ�	‰	�!‰ÔÜ!'×!2Ñ!2ˆ�	‰	�!‰ÔÜ!'§¡ˆ�	‰	�!‰ÔÜ!'§¡ˆ�	‰	�!‰ÔÜ!'×!2Ñ!2ˆ�	‰	�!‰ÔÜ!'×!1Ñ!1ˆ�	‰	�!‰ÔÜ!'×!2Ñ!2ˆ�	‰	�!‰ÔØ!"ˆ�‰�A‰ÔØ!"ˆ�‰�A‰ÔØ!"ˆ�‰�A‰ÔØ!"ˆ�‰�A‰ÔØ!"ˆ�‰�A‰Ôà	�‰ˆbŒ	ØˆrH   N)rY   rZ   r[   r¡   rf  r¢   r   r£   rA  rB  rC  rH  rM  rR  rW  r[  r^  rŸ   rf  rú  rœ  rB   rH   rF   r@  r@     sx   „ Ù˜CÙ" 8Ð2KÔLÙ Ð/BÔCÙ Ð/@ÔAô
€Hð
 €KØ€HØ€HòCòcòcò8ò8ò2ò>ò}ò}ó~rH   r@  c                  ó²   — t        dd«      } t        «       }d|_        d|_        dg|_        dg|_        d|j                  _        | j                  |«       | S )ú1Make a degenerated pie chart with only one slice.é�  r‰  é–   rŠ  r‹  r  rf   )	r   rf  r¯   r°   r/  rÊ   rÑ   r_   r™  ©rW  r›  s     rF   Úsample0ar…  s  sS   € ô 	��SÓ€Aä	‹€BØ€B„DØ€B„DØˆd€B„GØ�€B„IØ€B‡I�IÔà‡E�Eˆ"„Ià€HrH   c                  óÎ   — t        dd«      } t        «       }d|_        d|_        d|_        d|_        dg|_        dg|_        d	|j                  _	        | j                  |«       | S )
r�  r‚  r‰  rƒ  rŠ  éx   rz  r‹  r  rf   )r   rf  r¯   r°   r¹   r»   r/  rÊ   rÑ   r_   r™  r„  s     rF   Úsample0brˆ  „  sa   € ô 	��SÓ€Aä	‹€BØ€B„DØ€B„DØ€B„HØ€B„IØˆd€B„GØ�€B„IØ€B‡I�IÔà‡E�Eˆ"„Ià€HrH   c                  óž  — t        dd«      } t        «       }d|_        d|_        g d¢|_        g d¢|_        d|j                  _        d|j                  d	   _        d
|j                  d	   _        d
d
g|j                  d	   _	        d|j                  d	   _
        t        j                  |j                  d	   _        | j                  |«       | S )zFMake a typical pie chart with with one slice treated in a special way.r‚  r‰  rƒ  rŠ  r�  r‘  rf   rŽ  rœ   rg   r”  )r   rf  r¯   r°   r/  rÊ   rÑ   r_   rj   rd   rn   r   r•  rm   r™  r„  s     rF   Úsample1rŠ  —  s§   € ô 	��SÓ€Aä	‹€BØ€B„DØ€B„DÚ&€B„GÚ.€B„Ià€B‡I�IÔØ€B‡I�Iˆa�LÔØ €B‡I�Iˆa�LÔØ$% a 5€B‡I�Iˆa�LÔ Ø#€B‡I�Iˆa�LÔÜ#ŸZ™Z€B‡I�Iˆa�LÔà‡E�Eˆ"„Ià€HrH   c                  ó6  — t        dd«      } t        «       }d|_        d|_        g d¢|_        g d¢|_        d|_        d|_        d|j                  _	        t        j                  |j                  d	   _        t        j                  |j                  d   _        t        j                  |j                  d
   _        t        j                  |j                  d   _        t        j                   |j                  d   _        t        j"                  |j                  d   _        t        j$                  |j                  d   _        t        j&                  |j                  d   _        t        j(                  |j                  d   _        | j+                  |«       | S )z"Make a pie chart with nine slices.r‚  r‰  é}   rE  )	g×£p=
×Ó?g‹lçû©ñÂ?gÙÎ÷Sã¥»?gÛù~j¼t³?gL7‰A`å ?g¸…ëQ¸ž?gÛù~j¼t“?gTã¥›Ä À?g333333Ã?)	Ú1Ú2Ú3Ú4Ú5Ú6Ú7Ú8ÚXrƒ  rf   r   rg   rœ   r{  rM   r|  r  é   )r   rf  r¯   r°   r/  rÊ   r¹   r»   rÑ   r_   r   Ú	steelbluerb   ÚthistleÚ
cornflowerÚlightsteelbluer–  r—  r˜  ÚtanÚdarkseagreenr™  r„  s     rF   Úsample2r�  ®  s#  € ô 	��SÓ€Aä	‹€BØ€B„DØ€B„Dò#€B„Gò >€B„Ià€B„HØ€B„IØ€B‡I�IÔä#×-Ñ-€B‡I�Iˆa�LÔÜ#Ÿ^™^€B‡I�Iˆa�LÔÜ#×.Ñ.€B‡I�Iˆa�LÔÜ#×2Ñ2€B‡I�Iˆa�LÔÜ#×.Ñ.€B‡I�Iˆa�LÔÜ#×-Ñ-€B‡I�Iˆa�LÔÜ#×.Ñ.€B‡I�Iˆa�LÔÜ#ŸZ™Z€B‡I�Iˆa�LÔÜ#×0Ñ0€B‡I�Iˆa�LÔà‡E�Eˆ"„Ià€HrH   c                  óŒ  — t        dd«      } t        «       }d|_        d|_        g d¢|_        d|_        d|_        d|j                  _        t        j                  |j                  d   _        t        j                  |j                  d   _        t        j                  |j                  d	   _        | j                  |«       | S )
z(Make a pie chart with a very slim slice.r‚  r‰  rŒ  rE  )éJ   rf   rE  rƒ  rf   r   rg   )r   rf  r¯   r°   r/  r¹   r»   rÑ   r_   r   r—  rb   r˜  r™  r™  r„  s     rF   Úsample3r   Î  s–   € ô 	��SÓ€Aä	‹€BØ€B„DØ€B„Dâ€B„Gà€B„HØ€B„IØ€B‡I�IÔÜ#×-Ñ-€B‡I�Iˆa�LÔÜ#Ÿ^™^€B‡I�Iˆa�LÔÜ#×.Ñ.€B‡I�Iˆa�LÔà‡E�Eˆ"„Ià€HrH   c                  óX  — t        dd«      } t        «       }d|_        d|_        g d¢|_        d|_        d|_        d|j                  _        t        j                  |j                  d   _        t        j                  |j                  d   _        t        j                  |j                  d	   _        t        j                  |j                  d
   _        t        j                  |j                  d   _        t        j                   |j                  d   _        | j#                  |«       | S )z/Make a pie chart with several very slim slices.r‚  r‰  rŒ  rE  ©rŸ  rf   rf   rf   rf   é   rƒ  rf   r   rg   rœ   r{  rM   )r   rf  r¯   r°   r/  r¹   r»   rÑ   r_   r   r—  rb   r˜  r™  rš  r–  r—  r™  r„  s     rF   Úsample4r¤  å  sØ   € ô 	��SÓ€Aä	‹€BØ€B„DØ€B„Dâ"€B„Gà€B„HØ€B„IØ€B‡I�IÔÜ#×-Ñ-€B‡I�Iˆa�LÔÜ#Ÿ^™^€B‡I�Iˆa�LÔÜ#×.Ñ.€B‡I�Iˆa�LÔÜ#×2Ñ2€B‡I�Iˆa�LÔÜ#×.Ñ.€B‡I�Iˆa�LÔÜ#×-Ñ-€B‡I�Iˆa�LÔà‡E�Eˆ"„Ià€HrH   c                  óx  — t        dd«      } t        «       }d|_        d|_        g d¢|_        g d¢|_        d|_        d|_        d|_        d|j                  _
        t        j                  |j                  d	   _        t        j                  |j                  d   _        t        j                  |j                  d
   _        t        j                   |j                  d   _        t        j"                  |j                  d   _        t        j$                  |j                  d   _        | j'                  |«       | S )zMake a pie with side labels.r‚  r‰  rŒ  rE  )r  rf   rf   rf   rf   rg   ©Úexample1Úexample2Úexample3Úexample4Úexample5Úexample6rf   rƒ  r   rg   rœ   r{  rM   )r   rf  r¯   r°   r/  rÊ   r¬   r¹   r»   rÑ   r_   r   r—  rb   r˜  r™  rš  r–  r—  r™  r„  s     rF   Úsample5r­  þ  sæ   € ô 	��SÓ€Aä	‹€BØ€B„DØ€B„Dâ €B„GÚX€B„IØ€B„Mà€B„HØ€B„IØ€B‡I�IÔÜ#×-Ñ-€B‡I�Iˆa�LÔÜ#Ÿ^™^€B‡I�Iˆa�LÔÜ#×.Ñ.€B‡I�Iˆa�LÔÜ#×2Ñ2€B‡I�Iˆa�LÔÜ#×.Ñ.€B‡I�Iˆa�LÔÜ#×-Ñ-€B‡I�Iˆa�LÔà‡E�Eˆ"„Ià€HrH   c                  ó¸  — t        dd«      } t        «       }	 d|_        d|_        g d¢|_        g d¢|_        d|_        d|_        d|_        d|j                  _
        t        j                  |j                  d   _        t        j                  |j                  d   _        t        j                  |j                  d	   _        t        j                   |j                  d
   _        t        j"                  |j                  d   _        t        j$                  |j                  d   _        t'        dddd«      }| j)                  |«       | j)                  |«       | S )z=Illustrates the pie moving to leave space for the left labelsr‚  r‰  r   rE  r¢  r¦  rf   rƒ  rg   rœ   r{  rM   )r   rf  r¯   r°   r/  rÊ   r¬   r¹   r»   rÑ   r_   r   r—  rb   r˜  r™  rš  r–  r—  r'   r™  )rW  r›  rü   s      rF   Úsample6r¯    s  € ô 	��SÓ€Aä	‹€BØ'Ø€B„DØ€B„Dâ"€B„GÚX€B„IØ€B„Mà€B„HØ€B„IØ€B‡I�IÔÜ#×-Ñ-€B‡I�Iˆa�LÔÜ#Ÿ^™^€B‡I�Iˆa�LÔÜ#×.Ñ.€B‡I�Iˆa�LÔÜ#×2Ñ2€B‡I�Iˆa�LÔÜ#×.Ñ.€B‡I�Iˆa�LÔÜ#×-Ñ-€B‡I�Iˆa�LÔäˆQˆq��3‹€Aà‡E�Eˆ"„IØ‡E�Eˆ!„Hà€HrH   c                  ó”  — t        dd«      } t        «       }d|_        d|_        d|_        d|_        g d¢|_        g d¢|_        d|_        d|_	        d	|_
        d|j                  _        t        j                  |j                  d	   _        t        j                   |j                  d   _        t        j"                  |j                  d
   _        t        j$                  |j                  d   _        t        j&                  |j                  d   _        t        j(                  |j                  d   _        | j+                  |«       | S )zCase with overlapping pointersr‚  r‰  rŠ  rƒ  rz  )rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   )r§  r¨  r©  rª  r«  r¬  Úexample7Úexample8Úexample9Ú	example10Ú	example11Ú	example12Ú	example13Ú	example14Ú	example15Ú	example16Ú	example17Ú	example18Ú	example19Ú	example20Ú	example21Ú	example22Ú	example23Ú	example24Ú	example25Ú	example26Ú	example27Ú	example28rf   r   rg   rœ   r{  rM   )r   rf  r°   r¯   r¹   r»   r/  rÊ   r¬   rk  r«   rÑ   r_   r   r—  rb   r˜  r™  rš  r–  r—  r™  r„  s     rF   Úsample7rÇ  9  sü   € ô 	��SÓ€Aä	‹€BØ€B„DØ€B„DØ€B„HØ€B„Iâb€B„Gòk€B„Ið €B„MØ€BÔØ€B„Oð €B‡I�IÔÜ#×-Ñ-€B‡I�Iˆa�LÔÜ#Ÿ^™^€B‡I�Iˆa�LÔÜ#×.Ñ.€B‡I�Iˆa�LÔÜ#×2Ñ2€B‡I�Iˆa�LÔÜ#×.Ñ.€B‡I�Iˆa�LÔÜ#×-Ñ-€B‡I�Iˆa�LÔà‡E�Eˆ"„Ià€HrH   c                  óˆ  — 	 t        dd«      } t        «       }d|_        d|_        d|_        d|_        g d¢|_        g d¢|_        d|_        d|_	        d|j                  _        t        j                  |j                  d	   _        t        j                  |j                  d   _        t        j                   |j                  d
   _        t        j"                  |j                  d   _        t        j$                  |j                  d   _        t        j&                  |j                  d   _        | j)                  |«       | S )úCase with overlapping labelsr‚  r‰  rŠ  rƒ  rz  )rf   rf   rf   rf   rf   rì   rŠ  rf   rf   rf   rf   rf   rf   r�  rŽ  r‹  ©r§  r¨  r©  rª  r«  r¬  r±  r²  r³  r´  rµ  r¶  r·  r¸  r¹  rº  rf   r   rg   rœ   r{  rM   )r   rf  r°   r¯   r¹   r»   r/  rÊ   r¬   rk  rÑ   r_   r   r—  rb   r˜  r™  rš  r–  r—  r™  r„  s     rF   Úsample8rË  [  sö   € ð eä��SÓ€Aä	‹€BØ€B„DØ€B„DØ€B„HØ€B„IâA€B„Gò*€B„Ið €B„MØ€BÔà€B‡I�IÔÜ#×-Ñ-€B‡I�Iˆa�LÔÜ#Ÿ^™^€B‡I�Iˆa�LÔÜ#×.Ñ.€B‡I�Iˆa�LÔÜ#×2Ñ2€B‡I�Iˆa�LÔÜ#×.Ñ.€B‡I�Iˆa�LÔÜ#×-Ñ-€B‡I�Iˆa�LÔà‡E�Eˆ"„Ià€HrH   c                  óˆ  — 	 t        dd«      } t        «       }d|_        d|_        g d¢|_        g d¢|_        d|_        d|_        d|_        d|_	        d|j                  _        t        j                  |j                  d	   _        t        j                  |j                  d   _        t        j                   |j                  d
   _        t        j"                  |j                  d   _        t        j$                  |j                  d   _        t        j&                  |j                  d   _        | j)                  |«       | S )rÉ  r‚  r‰  rŒ  rŠ  )é)   rŽ  r�  é   rŽ  rì   rŠ  rÎ  rE  é#   rE  rŽ  rì   r�  rŽ  rì   rÊ  rf   rz  r   rg   rœ   r{  rM   )r   rf  r¯   r°   r/  rÊ   r¬   rk  r¹   r»   rÑ   r_   r   r—  rb   r˜  r™  rš  r–  r—  r™  r„  s     rF   Úsample9rÐ  {  sö   € ð _ä��SÓ€Aä	‹€BØ€B„DØ€B„DâN€B„Gò*€B„Ið €B„MØ€BÔà€B„HØ€B„IØ€B‡I�IÔÜ#×-Ñ-€B‡I�Iˆa�LÔÜ#Ÿ^™^€B‡I�Iˆa�LÔÜ#×.Ñ.€B‡I�Iˆa�LÔÜ#×2Ñ2€B‡I�Iˆa�LÔÜ#×.Ñ.€B‡I�Iˆa�LÔÜ#×-Ñ-€B‡I�Iˆa�LÔà‡E�Eˆ"„Ià€HrH   Ú__main__)Ú	renderPDFr“  Úsamplezsample%sz%s.pdfrA   )rf   )Frh  )sÚ__version__r    Ú	functoolsÚmathr   r   r   Úreportlab.libr   Úreportlab.lib.validatorsr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Ú"reportlab.graphics.widgets.markersr   r   Úreportlab.lib.attrmapÚreportlab.graphics.shapesr   r   r   r    r!   r"   r#   r$   r%   r&   r'   Úreportlab.graphics.widgetbaser(   r)   Úreportlab.graphics.charts.areasr*   r  r+   Ú$reportlab.graphics.charts.textlabelsr,   Ú	reportlabr.   rU   rT   r½  rÏ  r?   r]   rÆ   rÌ   rÎ   rÝ   ræ   ré   r  r  r  r   Ú
cmp_to_keyr'  r0  r3  r5  rS  r^  rò   r`  rf  rü  Ú!reportlab.graphics.charts.utils3dr,  r-  ró   rö   r/  r5  r>  Ú_270rr@  r…  rˆ  rŠ  r�  r   r¤  r­  r¯  rÇ  rË  rÐ  rY   ÚsysÚreportlab.graphicsrÒ  Úargvr  Ú
startswithÚnameÚglobalsr+  Ú
drawToFilerB   rH   rF   ú<module>rê     sŒ  ðð €ð	€ó ß Ñ å  ÷@÷ @÷ @÷ @÷ @ñ @÷ HÜ #÷ E÷  E÷  Eñ  Eß MÝ 4Ý 5Ý 6Ý à˜D S¨d¸ÀÈ3ÐUYÐ`dÑeÐ Ø˜T c¨t¸À$ÈCÐVZÐaeÑfÐ à€Ø�hÑ€ô�ô ôZ)�jô Z)óx<ò|ô�xô ò6oòó óGòRò
.ò$à
ˆ)×
Ñ
˜wÓ
'€òóòD8à	ˆ×	Ñ	˜fÓ	%€òóD"òLô2�ô ôuÐ
ô uônD�#ô D÷L OÓ NôE&˜
ô E&÷N6ñ 6òà
ˆ)×
Ñ
˜wÓ
'€áˆc‹
€ôPˆCô Pòfò"ò&ò.ò@ò.ò2ò6ò@ òDò@ð@ ˆZÒðó
 Ý,Ø�8‰8�A�Bˆ<Ò ˜C˜5€DØò 7ˆØ—L‘L Ô*‰q°
¸Q±ˆØ!‘'“)˜D‘/Ó#ˆØˆ	×Ñ˜W h°¡oÕ6ñ7ð rH   