Ë
    ^ãjê ã            
       ó*  — 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>ç     €v@c                   ó   — e Zd Zd„ Zd„ Zy)Ú
WedgeLabelc                  ó   — y ©N© ©ÚselfÚbas     úe/var/www/html/metafoliadorv2/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Ú_ANGLE2BOXANCHORrH   )rE   rF   ÚnaÚdas       rG   Ú_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ÔØˆ	rI   N)Ú__name__Ú
__module__Ú__qualname__rH   rY   rC   rI   rG   r@   r@   +   s   „ òó
rI   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') ...©rb   Ú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   rd   re   rg   rl   rm   rc   ç333333ó?rK   ç      à?çš™™™™™¹?Ústarté   rh   g@¤ß¾ @r“   ).r`   rc   r"   rd   re   ri   rf   rj   rk   rl   rm   rn   ro   rp   rq   rr   ry   r‚   rƒ   r„   r…   rs   rt   ru   rv   rw   rx   rz   r|   r}   r~   r   r†   r€   r   Úblackr‡   rˆ   r‰   rŠ   r‹   r�   r•   r�   r‘   r’   ©rE   s    rG   Ú__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Ø 'ˆÔØ$%ˆÔ!ØˆÔÜ)/¯©ˆÔ&Ø),ˆÔ&Ø)*ˆÔ&Ø%&ˆÔ"Ø$%ˆÔ!ØˆŒØˆÔØ ˆÔØ"ˆÔØ (ˆÕrI   rC   )rZ   r[   r\   Ú__doc__ÚAttrMapÚAttrMapValuer   r
   r   r   r   r   r   r   r   r   r   r   Ú_attrMapr    rC   rI   rG   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ó^#)rI   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Ú
textAnchorrS   rR   Ú_simple_pointerrT   r@   ÚxÚyrp   Údxrq   Údyrs   rP   rm   rr   Úanglert   ÚboxStrokeColorru   ÚboxStrokeWidthrv   ÚboxFillColorrw   rd   rx   r`   ry   Ú_textrz   Úleadingr|   Úwidthr}   ÚmaxWidthr~   Úheightr   r€   r�   r‚   Ú
topPaddingrƒ   ÚleftPaddingr„   ÚrightPaddingr…   ÚbottomPaddingr†   rl   rn   rc   )
rE   Útextr´   ÚlabelXÚlabelYÚ
wedgeStyler«   ÚtheLabelÚsideLabels_dyr¸   s
             rG   Ú_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ÔØ€OrI   c                 ód   — | €dg|z  } | S |t        | «      z
  }|dkD  rt        | «      dg|z  z   } | S )Nr{   r   )ÚlenÚlist)Úlabelsr5   Úis      rG   Ú
_fixLabelsrÍ   Ô   sG   € Ø€~Ø�˜‘ˆð €Mð Œc�&‹k‰MˆØˆQŠ3œ˜f› r d¨1¡fÑ,�Ø€MrI   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 )Nrd   rc   re   r`   rŒ   ç       @)r`   rd   re   rc   )ÚslicesrÉ   rT   r   r%   )rE   ÚrowNor°   r±   rº   r¼   Ú	baseStyleÚstyleIdxÚstylerd   rc   re   r`   rŒ   s                 rG   Ú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rI   Nc                 óž   — 	 t        | j                  |   «      }| j                  st        | j                  |   dd«      }|�|}|S #  |}Y Œ2xY w)zreturn series name i or defaultry   r{   )r+   rË   r¬   rT   rÒ   )rE   rÌ   ÚdefaultrÁ   r¸   s        rG   ÚgetSeriesNamezAbstractPieChart.getSeriesNameì   sU   € ð	Ü˜4Ÿ;™; q™>Ó*ˆDð × Ò Ü˜DŸK™K¨™N¨<¸Ó;ˆEØÐ ¨ $Øˆøð	ØŠDús   ‚A ÁArB   )rZ   r[   r\   r×   rÚ   rC   rI   rG   rÏ   rÏ   Ü   s   „ òIô	rI   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   rh   g{®Gáz„?rg   rš   r�   rC   )ÚPÚQs     rG   Ú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ÐnrI   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]rg   éÿÿÿÿr   )rÉ   rÞ   ÚappendÚinsert)ÚBrÌ   Úwrapr5   ÚRÚjs         rG   Ú_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Œð	 rI   rg   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 Nonerg   N)rÉ   Úrangerç   )rã   rä   r5   rÌ   rå   s        rG   ÚfindOverlapRunrê   
  sK   € äˆA‹€AØˆ‚sÜ�q˜‘s“ò 	"ˆAÜ  ! DÓ)ˆAÜ�1‹v�a‹x šð	"ð rI   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 )Nrh   Úboundsrg   r   é   rà   ÚcxÚrxÚcyÚrygÍÌÌÌÌÌð?r�   rš   )rÉ   Ú	_origdataÚfloatrê   Ú_360rR   ÚmaxÚminrS   Ú_180_pir   r°   r   r±   Ú	getBoundsÚ	enumerate) ÚLr­   Úmult0ÚnLÚlrã   ÚOKÚRPÚiterÚmultrå   ÚnRÚrrX   Úr0ÚrLÚbiÚtaaÚaaÚbÚutaaÚntaaÚorigr´   ÚradÚl1Úorig1Úbounds1rÌ   rì   Údiff1Údiff2s                                    rG   Ú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 rB   )rõ   rö   )ÚArã   r°   r±   s       rG   ÚintervalIntersectionr  \  s;   € Ü
Œc�!‹f”S˜“VÓ
œS¤ Q£¬¨A«Ó/€a€AØˆ!‚t�DØˆQˆ3€JrI   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 )NrM   r8   r<   Ú	clockwiser   )rg   é¦ÿÿÿr8   i˜þÿÿr  )rg   r<   r§   r§   rg   rh   )Útuple)ÚsaÚ	directionÚaÚoffss       rG   Ú_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 )Nrg   r   r-   )r°   r±   s     rG   Ú_keyFLAr!  p  s'   € Üˆq�‰t�A�a‘D‰y˜˜1™˜a ™d™Ó#Ð#rI   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   rg   ©Úkey)rÉ   Úsortr!  )ÚxArcsÚsider  s      rG   Ú_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Úrirg   r   rº   ÚedgePadr:   rš   ÚmidÚsmidÚcmidr'  )rò   rR   r°   r   r÷   r   )
rý   rº   r'  Údatar*  r+  rÌ   r/   r,  r-  s
             rG   Ú_fPLSider1  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€MrI   c                 óN   — t        |j                  d   | j                  d   «      S )Nr.  )r.   rò   ©r  r	  s     rG   Ú_fPLCFr4  œ  s!   € Üˆq�{‰{˜6Ñ" 1§;¡;¨vÑ#6Ó7Ð7rI   c                 ó   — | d   S )Nrg   rC   )r  s    rG   Ú_arcCFr6     s   € ØˆQ‰4€KrI   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   rg   rš   )r   rg   r#  rº   Úindexr.  rì   r�   rh   r,  ÚpiePadÚelbowLengthrí   )rä   rà   )r1  rá   rõ   r%  r4  rò   r°   r±   rS   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Úyhr0  ÚincÚlyr	  Úb2r   ÚnTrå   r  Új0Új1ÚjlÚsAboveÚsFreeÚsNeedr  s)                                            rG   Ú_fixPointerLabelsrT  £  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 )	Nrh   r   rš   g    €„.Ag      B@é$   r  r:   )r   r;  rá   rÉ   ré   rS   r   )r0  r  ÚfacÚdÚradsr  Úhradsr  ÚvstarÚrstarÚdeltarÌ   r  Úvs                 rG   Ú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 rB   )ró   Ú__new__Ú_data)Úclsr´   r0  rE   s       rG   rc  zAngleData.__new__  s   € Ü�}‰}˜S Ó'ˆØˆŒ
ØˆrI   N)rZ   r[   r\   r¡   rc  rC   rI   rG   ra  ra    s
   „ Ù9órI   ra  c                   ó:  — e Zd Z ed8i 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¬«      “ŽZdZd1„ Zd2„ Zd3„ Zd9d4„Zd5„ Zd6„ Zd7„ Zy):ÚPieÚBASEr0  z7List of numbers defining wedge sizes; need not sum to 1ra   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.rg   r�   ÚcheckLabelOverlapgš™™™™™©?zFIf true check and attempt to fix
 standard label overlaps(default off)ÚpointerLabelModeÚ	LeftRightÚLeftAndRightr{   Ú	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 labelsc                 ó2  — t        j                  | «       d| _        d| _        d| _        d| _        g d¢| _        d | _        d| _        d| _	        d| _
        d| _        d | _        d| _        d| _        d x| _        x| _        | _        d| _        d	| _        t)        t*        «      | _        t.        j0                  | j,                  d   _        t.        j4                  | j,                  d   _        t.        j6                  | j,                  d
   _        t.        j8                  | j,                  d   _        t.        j:                  | j,                  d   _        t.        j<                  | j,                  d   _        t.        j>                  | j,                  d   _        y )Nr   éd   )rg   gffffff@g333333û?gÍÌÌÌÌÌ@r8   r  rg   Frr  r›   rh   r�   é   rN   é   ) r*   r    r°   r±   rº   r¼   r0  rË   ri  r  r¬   rl  rm  rp  rq  rt  ru  rv  r­   rx  r(   r^   rÒ   r   Údarkcyanrc   Ú
bluevioletÚblueÚcyanÚpinkÚmagentaÚyellow)rE   Úkwds     rG   r    zPie.__init__   s-  € Ü×Ñ˜$ÔØˆŒØˆŒØˆŒ
ØˆŒÚ#ˆŒ	ØˆŒØˆŒØ$ˆŒØˆÔØ!"ˆÔØ $ˆÔØˆŒØ ˆŒØAEÐEˆŒÐE�t”| dÔ&>ØˆŒØ #ˆÔä-¬oÓ>ˆŒÜ#)§?¡?ˆ�‰�A‰Ô Ü#)×#4Ñ#4ˆ�‰�A‰Ô Ü#)§;¡;ˆ�‰�A‰Ô Ü#)§;¡;ˆ�‰�A‰Ô Ü#)§;¡;ˆ�‰�A‰Ô Ü#)§>¡>ˆ�‰�A‰Ô Ü#)§=¡=ˆ�‰�A‰Õ rI   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	  ÚcrX  r3   Úfrš   r�   rh   ç      ü?r   rg   r{  rN   r|  )r   rg  r°   r±   rº   r¼   r0  rË   rÒ   r`   rk   re   ro   r   Úredrn   r}  rc   r~  r  r€  Ú
aquamarineÚ	cadetblueÚ
lightcoralÚadd©rE   rX  Úpcs      rG   ÚdemozPie.demo<  sG  € Ü�C˜Óˆä‹UˆØˆŒØˆŒØˆŒØˆŒ	Ú%ˆŒÚ-ˆŒ	à!ˆ�	‰	ÔØ ˆ�	‰	�!‰ÔØ#$ˆ�	‰	�!‰Ô Ø()¨! uˆ�	‰	�!‰Ô$Ø#'ˆ�	‰	�!‰Ô Ü!'§¡ˆ�	‰	�!‰ÔÜ!'§¡ˆ�	‰	�!‰ÔÜ!'×!2Ñ!2ˆ�	‰	�!‰ÔÜ!'§¡ˆ�	‰	�!‰ÔÜ!'§¡ˆ�	‰	�!‰ÔÜ!'×!2Ñ!2ˆ�	‰	�!‰ÔÜ!'×!1Ñ!1ˆ�	‰	�!‰ÔÜ!'×!2Ñ!2ˆ�	‰	�!‰Ôà	�‰ˆbŒ	ØˆrI   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 rB   )ÚcenterxÚcenteryrt  ru  r0  ÚluÚru)rE   rŸ  r   rt  ru  r0  r¡  r¢  s           rG   r    z*Pie.makePointerLabels.<locals>.PL.__init__Z  s3   € Ø&�”Ø&�”Ø&�”Ø&�”Ø �”	Ø�”Ø�•rI   N)r   r   )rZ   r[   r\   r    rC   rI   rG   ÚPLr�  Y  s   „ ôrI   r£  rh   r   rg   r{   r:   r�   ro  g{®Gáz”?)	rì   rº   r¼   r*  r+  r8  r,  r9  r:  rš   )r'  )rº   r¼   rÉ   rÒ   rá   r  ri  r  rÚ   r€   r�   rÇ   rø   r  r(  ÚdictrŠ   r‹   r‰   rò   rõ   r°   r±   rt  ru  rp  rö   rQ   rT  )&rE   ÚanglesÚplModer£  rÂ   rÃ   r5   ÚnrÚnlÚmaxWÚsumHÚ
styleCountrú   ÚL_addÚrefArcsrÌ   r  ÚsnrÖ   rý   r	  r/   Úhr  r+  r*  rt  ru  rŸ  r   ÚaonRr'  r?  r¡  r¢  r@  Úx0Úx1s&                                         rG   ÚmakePointerLabelszPie.makePointerLabelsX  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                 ó  — t        t        t        | j                  «      «      }t	        t        |«      «      x}| _        |dk7  rd|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   r>   rg   )rÊ   ÚmaprS   r0  ró   r;  Ú_sumra  )rE   ÚkeepDatar0  r1   r‘  r°   s         rG   ÚnormalizeDatazPie.normalizeData§  sy   € Ü”Cœ˜DŸI™IÓ&Ó'ˆÜœc $›iÓ(Ð(ˆˆDŒIØ˜’dˆD�ŠF ˆÙØ.2Ö3¨”I˜a ™c !Õ$Ò3Ð3à!%Ö&˜A�A�a“CÒ&Ð&ùò 4ùâ&s   ÁA=Á.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 )Nrw  rg   rM   r  rà   )r·  rs  gñhãˆµøä>r#  r   rh   r{  )rT   r­   r_  r0  r  rÒ   r€   ri  rù   r¸  rq  rS   r%  r6  Úpoprá   ÚreverseÚ_ANGLELOra  rd  )rE   Úwrri  ÚwhichWayr  ÚDÚWrD  rÌ   r  r´   ÚendAngler  s                rG   Ú
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š   rw  Fc                  ó   — y©Nr{   rC   )rÌ   s    rG   ú<lambda>z Pie.makeWedges.<locals>.<lambda>ö  s   � rI   c                 ó(   •— ‰j                  | d«      S rÅ  )rÚ   )rÌ   rE   s    €rG   rÆ  z Pie.makeWedges.<locals>.<lambda>   s   ø€ ˜D×.Ñ.¨q°Ó4€ rI   rÑ   )ru  Úradius1Úyradius1)ru  rg   r–   r“   r   )ÚvalueÚlabel)	r°   r±   r´   rï   rñ   rî   rð   rì   r¥  r.  r/  )r`   rd   r8   r<   r§   r¨   r©   ©r°   r±   r´   rï   rñ   rî   rð   rì   )rû   g      Ð?)DrÂ  rá   r­   rÉ   rÍ   rË   rT   Ú_seriesCountrÒ   rm  r³  rt  ru  rŸ  r   r0  rº   r¼   r°   r±   rp  rö   rl  r   r—  rv  r�   rS   rk   r÷   r   r   Ú_ANGLEHIr    r   rc   rd   r`   ri   rf   rj   re   r•   ró   r‘   r   ÚWhiterÚBlackerrQ   r�   r’   ré   rd  r€   ro   rÇ   r¯   Ú_aaxÚ_aayrø   rò   r‰   r&   rˆ   r‡   rx  r  r'   )HrE   r¥  Ú
halfAnglesrÌ   Úa1Úa2Ú	halfAngler­   r5   rË   r½  r«  r¦  rl  r£  rt  ru  rŸ  r   ÚPL_dataÚgSNÚgÚg_addrú   r¬  rv  rÄ   r  rî   rð   rÁ   rk   ÚaverageAngleÚaveAngleRadiansÚcosAAÚsinAAÚtheWedgeÚshaderÚnshadesr�   ÚdshÚshf1ÚshdaÚshscÚishÚsha1Úsha2ÚshcÚshWedgero   rï   rñ   rÂ   rÃ   rý   r0  ÚsinMÚcosMÚlXÚlYÚlpelÚlXiÚlYiÚslices_popoutrC  r´   r  ræ   r²  Úy1Úx2Úy2sH   `                                                                       rG   Ú
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ð. ˆrI   c                 ób   — | j                  «       }| j                  «       }|rt        ||«      S |S rB   )ÚmakeBackgroundrö  r   )rE   r?  r/   s      rG   ÚdrawzPie.draw¶  s/   € Ø×ÑÓ!ˆØ�O‰OÓˆÙ”U˜1˜Q“ZÐØˆrI   rC   )F)rZ   r[   r\   r¢   rÏ   r£   r	   r   r   r   r   r   r   r   r   r   r¤   rk  r    rš  r³  r¸  rÂ  rö  rù  rC   rI   rG   rg  rg  	  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ð%
€Hð( €Oò1ò8ò8M;ó^'ò'òR[ózrI   rg  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 legendra   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)rh  Ú
drawLegendÚlegend1ÚlegendNumberFormatÚlegendNumberOffsetÚpieAndLegend_colorsÚlegend_namesÚlegend_datar¾   r¿   r½   rÀ   c                 óÄ  — t         j                  | «       d| _        d| _        d| _        d| _        g d¢| _        d | _        d| _        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   rz  )g333333C@g33333³4@gfffffæ2@gÍÌÌÌÌÌ.@gffffff@r  é   éH   zPANTONE 458 CV)ÚspotNameéA   rí   zPANTONE 288 CVéK   )r  Údensityrˆ  rg   rh   r�   r{  rN   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)+rg  r    r°   r±   r¼   rº   r0  rË   r  r   Ú
PCMYKColorrž   r   rÒ   rc   r`   rd   rÿ  rþ  r  Ú!reportlab.graphics.charts.legendsr  rý  ÚdeltaxÚdeltayÚdxTextSpacer²   r³   ÚcolumnMaximumÚ	alignmentr  ré   rÉ   ÚcolorNamePairsrá   rl   rm   Ú_legend2r¾   r¿   r½   rÀ   rü  )rE   r  rž   ÚlegendOffsetr  r‘  s         rG   r    zLegendedPie.__init__Í  s:  € Ü�‰�TÔØˆŒØˆŒØˆŒØˆŒ
Ú1ˆŒ	ØˆŒØ$ˆŒÜ"×-Ñ-¬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×$<Ñ$<ˆ�‰Ô!àˆÔØˆÔØˆŒØˆÔØˆ�rI   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É   r0  r  r   rÒ   rc   rá   Ú
IndexErrorr  rþ  Ú
isinstanceÚstrÚhasattrÚ
ValueErrorÚasciirg  rù  r—  r°   rÿ  r±   r  r  r³   r  Úshiftr¾   rÀ   )rE   r‘  ÚldfÚlNFrH  s        rG   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 rB   )r¿   rü  rý  r°   rÿ  r  Ú_calculateMaxWidthr  rÀ   r¼   r½   )rE   ÚtxÚtys      rG   Ú_getDrawingDimensionsz!LegendedPie._getDrawingDimensions9  sz   € Ø×ÑˆØ�?Š?Ø�$—,‘,—.‘. ×!8Ñ!8Ñ8Ñ8ˆBØ�$—-‘-×2Ñ2°4·=±=×3OÑ3OÓPÑPˆBØ×Ñ §¡Ñ+¨D¯O©OÑ;ˆØ�2ˆwˆrI   c                 ó†   — |s| j                  «       \  }}t        ||«      }|j                  | j                  «       «       |S rB   )r(  r   r—  rù  )rE   Údrawingr&  r'  s       rG   rš  zLegendedPie.demoA  s9   € ÙØ×.Ñ.Ó0‰EˆBˆrÜ˜b "“oˆGØ�‰�D—I‘I“KÔ ØˆrI   rB   )rZ   r[   r\   r¡   r¢   rg  r£   r   r   r   r   r   r¤   r    rù  r(  rš  rC   rI   rG   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òAòF'òRôrI   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_   rc   r{   ra   ÚfillColorShadedrn   rl   rm   rr   r…   zpadding at bottom of boxrs   rv   rt   ru   rp   rq   r~   rz   rƒ   zpadding at left of boxr}   r„   zpadding at right of boxr†   zset to True for simple pointersrw   rx   ry   r   r‚   zpadding at top of boxr€   r�   r|   ro   rk   Úshadingrd   ÚstrokeColorShadedre   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Ó?rg   rd   re   rl   rm   rc   r™   rK   rš   r›   rœ   )#r`   r0  r�   r1  r/  rc   r"   rd   re   rk   rl   rm   rn   ro   rp   rq   rr   ry   r‚   rƒ   r„   r…   rs   rt   ru   rv   rw   rx   rz   r|   r}   r~   r   r€   r†   rŸ   s    rG   r    zWedge3dProperties.__init__v  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Ø 'ˆÔØˆÔØ$%ˆÕ!rI   NrC   )rZ   r[   r\   r¡   r¢   r£   r
   r   r   r   r   r   r   r   r   r¤   r    rC   rI   rG   r.  r.  I  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&rI   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   rM   rš   )ÚloÚhir-  rS   rÎ  Únot360)rE   r6  r7  s      rG   r    z_SL3D.__init__‘  sL   € ØˆaŠ4Ø�#‰IˆBØ�#‰IˆBØˆŒØˆŒØ�r‘E˜3‘;ˆŒÜ˜"˜R™%“j¤8Ñ+ˆ�rI   c                 ó8   — d| j                   | j                  fz  S )Nz_SL3D(%.2f,%.2f))r6  r7  rŸ   s    rG   Ú__str__z_SL3D.__str__š  s   € Ø! T§W¡W¨T¯W©WÐ$5Ñ5Ð5rI   N)rZ   r[   r\   r    r:  rC   rI   rG   r4  r4  �  s   „ ò,ó6rI   r4  c                 ó(   — t        | d   |d   «       S ©Nr   r-   r3  s     rG   Ú_keyS3Dr=  �  s   € Ü��!‘�Q�q‘T‹Nˆ?ÐrI   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.ra   zdepth of the pie.zThe view angle.)rh  ÚperspectiveÚdepth_3dÚangle_3déF   é   r:   c                 ór   — | j                   |   j                  xr | j                  |   j                  xs dS r<  )Ú_sl3dr8  rÒ   rk   )rE   rÌ   s     rG   Ú_popoutzPie3d._popout¬  s.   € Ø�z‰z˜!‰}×#Ñ#Ò=¨¯©°A©×(=Ñ(=ÒBÀÐBrI   c                 óÀ   — | j                   |xr | j                  xs dz   | j                  |«      t        t	        | j
                  |   j                  «      «      z  z   S r<  )Ú_cxÚ
_xdepth_3drG  r   r,  rF  r-  ©rE   rÌ   rX  s      rG   ÚCXzPie3d.CX¯  óJ   € Ø�x‰x˜Ò.˜tŸ™Ò3°!Ñ4°T·\±\À!³_ÄSÌÈtÏzÉzÐZ[É}×O`ÑO`ÓIaÓEbÑ5bÑbÐbrI   c                 óÀ   — | j                   |xr | j                  xs dz   | j                  |«      t        t	        | j
                  |   j                  «      «      z  z   S r<  )Ú_cyÚ
_ydepth_3drG  r   r,  rF  r-  rK  s      rG   ÚCYzPie3d.CY±  rM  rI   c                 ój   — | j                  ||«      | j                  t        t        |«      «      z  z   S rB   )rL  Ú_radiusxr   r,  ©rE   rÌ   ÚorX  s       rG   ÚOXzPie3d.OX³  ó(   € Ø�w‰w�q˜‹|˜DŸM™M¬#¬e°A«h«-Ñ7Ñ7Ð7rI   c                 ój   — | j                  ||«      | j                  t        t        |«      «      z  z   S rB   )rQ  Ú_radiusyr   r,  rT  s       rG   ÚOYzPie3d.OYµ  rW  rI   c                 óh   — | j                   }t        t        ||z
  «      t        ||z
  dz   «      «      S )NrM   )Ú_3dvarö   rS   )rE   r  r\  s      rG   Úrad_distzPie3d.rad_dist¸  s-   € Ø—
‘
ˆÜ”3�q˜‘w“<¤ A e¡G¨C¡KÓ 0Ó1Ð1rI   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   rg   rh   r�   r{  rN   r|  i,  r‡  )g      )@gš™™™™4@rÑ   g      6@g      @g      2@g      *@)rg  r    r(   r.  rÒ   r   r}  rc   r~  r  r€  ÚazureÚcrimsonÚ
darkvioletrt  ru  rº   r¼   r0  rŸ   s    rG   r    zPie3d.__init__¼  sÎ   € Ü�‰�TÔÜ-Ô.?Ó@ˆŒÜ#)§?¡?ˆ�‰�A‰Ô Ü#)×#4Ñ#4ˆ�‰�A‰Ô Ü#)§;¡;ˆ�‰�A‰Ô Ü#)§;¡;ˆ�‰�A‰Ô Ü#)§<¡<ˆ�‰�A‰Ô Ü#)§>¡>ˆ�‰�A‰Ô Ü#)×#4Ñ#4ˆ�‰�A‰Ô Ø&*Ð*ˆŒ�t”|ØˆŒ
ØˆŒÚ=ˆ�	rI   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   rg   ©rd   rc   r`   ri   )	r]  rF  r-  rL  rQ  rV  rZ  rá   r$   )	rE   rú   rÌ   r´   rd   r`   rc   ÚrdrH  s	            rG   Ú	_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Ð{Õ|ð /rI   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à   rg   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³   rk  rP  rD   s     rG   rH   z*Pie3d.draw.<locals>.WedgeLabel3d._checkDXY  sB   € Ø�a‘5˜#’:Ü" 4¨Ô/Ø$(§G¡G˜œ	Ø#'§9¡9 *¨t¯©Ñ">˜�ð 0ð rI   N)rZ   r[   r\   rP  rH   rŸ   s   €rG   ÚWedgeLabel3dri  ÿ  s   ø„ ÙŸ™ˆJó?rI   rl  )ru  rd   r`   rc   ri   rc  )ru  ÚmoveTo)ru  r»  )rd   r`   rc   ri   )r«   rÌ  r#  )IrÒ   rB  rô   r\  r,  rA  r   rJ  r   rP  r°   rº   rI  r±   r¼   rO  rt  ru  rS  r@  rY  r¸  r¶  rL  rQ  rV  rZ  r]  re  rÉ   rÍ  rF  r   ri  r  rá   r4  rÍ   rË   r@   rl  ré   r�   r6  r7  rS   r¼  r+  rc   r/  r0  rd   r1  r`   r—  r    r#   ÚaddArcÚlineToÚ	closePathrö   rÎ  r   r€   ro   r-  rÇ   rø   rò   r%  r=  r  r­   )6rE   rÒ   Ú	_3d_angler\  Úa0rA  ÚradiusxÚradiusyr0  r;  rL  rQ  rV  rZ  r]  re  r5   rF  rÙ  Úlastr^  Úangle1Úangle0rË   rÔ  rD  rF  rú   rl  rl  rÌ   rÖ   Úslr6  r7  r  rc   rd   r`   Úcx0Úcy0Úcx1Úcy1rH  rd  rß  rÁ   Úratr-  rÂ   rÃ   rý   r1   r°   s6   `                                                     rG   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   rg  r°   r±   rº   r¼   r0  rË   rÒ   r`   rk   re   ro   r   r“  rn   r}  rc   r~  r  r€  r”  r•  r–  r�   r—  r˜  s      rG   rš  z
Pie3d.demoS  s—  € Ü�C˜Óˆä‹UˆØˆŒØˆŒØˆŒØˆŒ	Ú%ˆŒÚ-ˆŒ	à!ˆ�	‰	ÔØ ˆ�	‰	�!‰ÔØ#$ˆ�	‰	�!‰Ô Ø()¨! uˆ�	‰	�!‰Ô$Ø#'ˆ�	‰	�!‰Ô Ü!'§¡ˆ�	‰	�!‰ÔÜ!'§¡ˆ�	‰	�!‰ÔÜ!'×!2Ñ!2ˆ�	‰	�!‰ÔÜ!'§¡ˆ�	‰	�!‰ÔÜ!'§¡ˆ�	‰	�!‰ÔÜ!'×!2Ñ!2ˆ�	‰	�!‰ÔÜ!'×!1Ñ!1ˆ�	‰	�!‰ÔÜ!'×!2Ñ!2ˆ�	‰	�!‰ÔØ!"ˆ�‰�A‰ÔØ!"ˆ�‰�A‰ÔØ!"ˆ�‰�A‰ÔØ!"ˆ�‰�A‰ÔØ!"ˆ�‰�A‰Ôà	�‰ˆbŒ	ØˆrI   N)rZ   r[   r\   r¢   rg  r£   r   r¤   r@  rA  rB  rG  rL  rQ  rV  rZ  r]  r    re  rù  rš  rC   rI   rG   r?  r?  ¢  sx   „ Ù˜CÙ" 8Ð2KÔLÙ Ð/BÔCÙ Ð/@ÔAô
€Hð
 €KØ€HØ€HòCòcòcò8ò8ò2ò>ò}ò}ó~rI   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  rg   )	r   rg  r°   r±   r0  rË   rÒ   r`   r—  ©rX  r™  s     rG   Úsample0ar„  u  sS   € ô 	��SÓ€Aä	‹€BØ€B„DØ€B„DØˆd€B„GØ�€B„IØ€B‡I�IÔà‡E�Eˆ"„Ià€HrI   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  rg   )r   rg  r°   r±   rº   r¼   r0  rË   rÒ   r`   r—  rƒ  s     rG   Úsample0br‡  †  sa   € ô 	��SÓ€Aä	‹€BØ€B„DØ€B„DØ€B„HØ€B„IØˆd€B„GØ�€B„IØ€B‡I�IÔà‡E�Eˆ"„Ià€HrI   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�  rg   rŒ  r�   rh   r’  )r   rg  r°   r±   r0  rË   rÒ   r`   rk   re   ro   r   r“  rn   r—  rƒ  s     rG   Ú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à€HrI   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‡  é}   rD  )	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‚  rg   r   rh   r�   r{  rN   r|  r  é   )r   rg  r°   r±   r0  rË   rº   r¼   rÒ   r`   r   Ú	steelbluerc   ÚthistleÚ
cornflowerÚlightsteelbluer”  r•  r–  ÚtanÚdarkseagreenr—  rƒ  s     rG   Ú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à€HrI   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‹  rD  )éJ   rg   rD  r‚  rg   r   rh   )r   rg  r°   r±   r0  rº   r¼   rÒ   r`   r   r–  rc   r—  r˜  r—  rƒ  s     rG   Ú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à€HrI   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‹  rD  ©rž  rg   rg   rg   rg   é   r‚  rg   r   rh   r�   r{  rN   )r   rg  r°   r±   r0  rº   r¼   rÒ   r`   r   r–  rc   r—  r˜  r™  r”  r•  r—  rƒ  s     rG   Ú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à€HrI   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‹  rD  )r  rg   rg   rg   rg   rh   ©Úexample1Úexample2Úexample3Úexample4Úexample5Úexample6rg   r‚  r   rh   r�   r{  rN   )r   rg  r°   r±   r0  rË   r­   rº   r¼   rÒ   r`   r   r–  rc   r—  r˜  r™  r”  r•  r—  rƒ  s     rG   Ú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à€HrI   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   rD  r¡  r¥  rg   r‚  rh   r�   r{  rN   )r   rg  r°   r±   r0  rË   r­   rº   r¼   rÒ   r`   r   r–  rc   r—  r˜  r™  r”  r•  r'   r—  )rX  r™  rý   s      rG   Ú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à€HrI   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  )rg   rg   rg   rg   rg   rg   rg   rg   rg   rg   rg   rg   rg   rg   rg   rg   rg   rg   rg   rg   rg   rg   rg   rg   rg   rg   rg   rg   )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Ú	example28rg   r   rh   r�   r{  rN   )r   rg  r±   r°   rº   r¼   r0  rË   r­   rl  r¬   rÒ   r`   r   r–  rc   r—  r˜  r™  r”  r•  r—  rƒ  s     rG   Úsample7rÆ  ;  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à€HrI   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  )rg   rg   rg   rg   rg   rí   rˆ  rg   rg   rg   rg   rg   rg   r�  rŒ  r‰  ©r¦  r§  r¨  r©  rª  r«  r°  r±  r²  r³  r´  rµ  r¶  r·  r¸  r¹  rg   r   rh   r�   r{  rN   )r   rg  r±   r°   rº   r¼   r0  rË   r­   rl  rÒ   r`   r   r–  rc   r—  r˜  r™  r”  r•  r—  rƒ  s     rG   Ú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à€HrI   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Í  rD  é#   rD  rŒ  rí   r�  rŒ  rí   rÉ  rg   rz  r   rh   r�   r{  rN   )r   rg  r°   r±   r0  rË   r­   rl  rº   r¼   rÒ   r`   r   r–  rc   r—  r˜  r™  r”  r•  r—  rƒ  s     rG   Ú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à€HrI   Ú__main__)Ú	renderPDFr’  Úsamplezsample%sz%s.pdfrB   )rg   )Frg  )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.   rV   rU   r¼  rÎ  r@   r^   rÇ   rÍ   rÏ   rÞ   rç   rê   r  r  r  r!  Ú
cmp_to_keyr(  r1  r4  r6  rT  r_  ró   ra  rg  rû  Ú!reportlab.graphics.charts.utils3dr+  r,  rô   r÷   r.  r4  r=  Ú_270rr?  r„  r‡  r‰  rœ  rŸ  r£  r¬  r®  rÆ  rÊ  rÏ  rZ   ÚsysÚreportlab.graphicsrÑ  Úargvr  Ú
startswithÚnameÚglobalsr*  Ú
drawToFilerC   rI   rG   ú<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�ô ôqÐ
ô qôfJ�#ô J÷X 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ð rI   