§
    £”jJL  ã                   ó¦  — d Z d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 ddlT 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 dd
lm Z  ddl!m"Z"  G d„ de¦  «        Z# G d„ de¦  «        Z$d„ Z%d„ Z&d„ Z'd„ Z(e)dk    rJddl*m+Z+  e%¦   «         Z, e+e,d¦  «          e&¦   «         Z, e+e,d¦  «          e'¦   «         Z, e+e,d¦  «         dS dS )z3.3.0z£Doughnut chart

Produces a circular chart like the doughnut charts produced by Excel.
Can handle multiple series (which produce concentric 'rings' in the chart).

é    )ÚsinÚcosÚpi)Úcolors)
ÚisNumberÚisListOfStringsOrNoneÚOneOfÚ	isBooleanÚisNumberOrNoneÚisListOfNoneOrNumberÚisListOfListOfNoneOrNumberÚEitherOrÚNoneOrÚ
isCallable)Ú*)ÚGroupÚDrawingÚWedge)ÚTypedPropertyCollection)ÚAbstractPieChartÚWedgePropertiesÚ_addWedgeLabelÚfixLabelOverlaps)ÚPlotArea)Úreducec                   ó*   — e Zd ZdZ ee¬¦  «        ZdS )ÚSectorPropertiesa4  This holds descriptive information about the sectors in a doughnut chart.

    It is not to be confused with the 'sector 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 Sector object for you with its
    format method.
    )ÚBASEN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚAttrMapr   Ú_attrMap© ó    úq/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/reportlab/graphics/charts/doughnut.pyr   r      s2   € € € € € ðð ð ˆw˜Oð ñ ô €H€H€Hr&   r   c                   ó$  — 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 e eee	f¦  «        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dd¬¦  «        “d  eed!¬¦  «        “d" e ee¦  «        d#¬¦  «        “d$ eed%¬¦  «        “ŽZd&„ Zd'„ Zd,d(„Zd)„ Zd*„ ZdS )-ÚDoughnutr   Úxz-X position of the chart within its container.)ÚdescÚyz-Y position of the chart within its container.Úwidthz:width of doughnut bounding box. Need not be same as width.Úheightz=height of doughnut bounding box.  Need not be same as height.Údataz8list of numbers defining sector sizes; need not sum to 1Úlabelsz2optional list of labels to use for each data pointÚ
startAnglez6angle of first slice; like the compass, 0 is due NorthÚ	directionÚ	clockwiseÚanticlockwisez'clockwise' or 'anticlockwise'ÚslicesNz'collection of sector descriptor objectsÚsimpleLabelsz6If true(default) use String not super duper WedgeLabelÚcheckLabelOverlapzFIf true check and attempt to fix
 standard label overlaps(default off)é   )r+   ÚadvancedUsageÚ
sideLabelszAIf true attempt to make chart with labels along side and pointersÚinnerRadiusFractionzhNone or the fraction of the radius to be used as the inner hole.
If not a suitable default will be used.Ú
labelClassz,A class factory to use for non simple labelsÚ
angleRangez3total degree range for the doughnut defaults to 360c           
      óê  — t          j        | ¦  «         t          | d|                     dd¦  «        ¦  «         t          | d|                     dd¦  «        ¦  «         t          | d|                     dd¦  «        ¦  «         t          | d|                     dd¦  «        ¦  «         t          | d|                     dddg¦  «        ¦  «         t          | d	|                     d	d ¦  «        ¦  «         t          | d
|                     d
d¦  «        ¦  «         t          | d|                     dd¦  «        ¦  «         t          | d|                     dd¦  «        ¦  «         t          | d|                     dd¦  «        ¦  «         t          | d|                     dd¦  «        ¦  «         t          | d|                     dd ¦  «        ¦  «         t          | d|                     dt	          t
          ¦  «        ¦  «        ¦  «         t          | d|                     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         _	        d S )Nr*   r   r,   r-   éd   r.   r/   r8   r0   r1   éZ   r2   r3   r6   r7   r:   r;   r5   r=   éh  é   é   é   é   é   )r   Ú__init__ÚsetattrÚpopr   r   r   Údarkcyanr5   Ú	fillColorÚ
bluevioletÚblueÚcyanÚpinkÚmagentaÚyellow)ÚselfÚkwdss     r'   rG   zDoughnut.__init__;   sX  € ÝÔ˜$ÑÔÐÝ��S˜Ÿš # a™œÑ)Ô)Ð)Ý��S˜Ÿš # a™œÑ)Ô)Ð)Ý��W˜TŸXšX g¨cÑ2Ô2Ñ3Ô3Ð3Ý��X˜dŸhšh x°Ñ4Ô4Ñ5Ô5Ð5Ý��V˜DŸHšH V¨Q¨q¨EÑ2Ô2Ñ3Ô3Ð3Ý��X˜dŸhšh x°Ñ5Ô5Ñ6Ô6Ð6Ý��\ $§(¢(¨<¸Ñ";Ô";Ñ<Ô<Ð<Ý��[ §¢¨+°kÑ!BÔ!BÑCÔCÐCÝ��^ D§H¢H¨^¸AÑ$>Ô$>Ñ?Ô?Ð?Ý�Ð(¨¯ªÐ2EÀaÑ)HÔ)HÑIÔIÐIÝ��\ $§(¢(¨<¸Ñ":Ô":Ñ;Ô;Ð;Ý�Ð*¨4¯8ª8Ð4IÈ$Ñ+OÔ+OÑPÔPÐPÝ��X˜dŸhšh xÕ0GÕHXÑ0YÔ0YÑZÔZÑ[Ô[Ð[Ý��\ $§(¢(¨<¸Ñ"<Ô"<Ñ=Ô=Ð=å#)¤?ˆŒ�AŒÔ Ý#)Ô#4ˆŒ�AŒÔ Ý#)¤;ˆŒ�AŒÔ Ý#)¤;ˆŒ�AŒÔ Ý#)¤;ˆŒ�AŒÔ Ý#)¤>ˆŒ�AŒÔ Ý#)¤=ˆŒ�AŒÔ Ð Ð r&   c                 ó4  — 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         _        |                     |¦  «         |S )NéÈ   r?   é2   é
   éP   ©rW   é   é   é(   rV   é<   ©ÚaÚbÚcÚdÚeÚfç      à?rC   rB   g      ü?r   r8   rD   rE   rF   )r   r)   r*   r,   r-   r.   r/   r0   r5   ÚstrokeWidthÚpopoutÚstrokeDashArrayÚlabelRadiusr   ÚredÚ	fontColorrJ   rK   rL   rM   rN   Ú
aquamarineÚ	cadetblueÚ
lightcoralÚadd)rR   rb   Údns      r'   ÚdemozDoughnut.demoU   s.  € Ý�C˜ÑÔˆå‰ZŒZˆØˆŒØˆŒØˆŒØˆŒ	Ø%Ð%Ð%ˆŒØ-Ð-Ð-ˆŒ	à!ˆŒ	ÔØ ˆŒ	�!ŒÔØ#$ˆŒ	�!ŒÔ Ø()¨! uˆŒ	�!ŒÔ$Ø#'ˆŒ	�!ŒÔ Ý!'¤ˆŒ	�!ŒÔÝ!'¤ˆŒ	�!ŒÔÝ!'Ô!2ˆŒ	�!ŒÔÝ!'¤ˆŒ	�!ŒÔÝ!'¤ˆŒ	�!ŒÔÝ!'Ô!2ˆŒ	�!ŒÔÝ!'Ô!1ˆŒ	�!ŒÔÝ!'Ô!2ˆŒ	�!ŒÔà	�Šˆb‰	Œ	ˆ	Øˆr&   c                 ó~   ‡— t          |¦  «        }|dk    rt          d| j        ¦  «        |z  ndŠˆfd„|D ¦   «         S )Nr   rA   r8   c                 ó   •— g | ]}‰|z  ‘ŒS r%   r%   )Ú.0rb   rd   s     €r'   ú
<listcomp>z*Doughnut.normalizeData.<locals>.<listcomp>t   s   ø€ Ð"Ð"Ð"˜��!‘Ð"Ð"Ð"r&   )ÚsumÚminr=   )rR   r/   Úsrd   s      @r'   ÚnormalizeDatazDoughnut.normalizeDataq   sK   ø€ Ý�‰IŒIˆØ*+¨Qª$¨$�C��D”OÑ$Ô$ QÑ&Ð&°AˆØ"Ð"Ð"Ð"˜TÐ"Ñ"Ô"Ð"r&   c                 ó   — | j         }t          |¦  «        }|rjg }g }|D ]N}|                      |¦  «        }|                     |¦  «         |                     t	          |¦  «        ¦  «         ŒOt          |¦  «        | _        n+|                      |¦  «        }t	          |¦  «        }|| _        | j        }g }|j        }	| j        }
|
€'g }
|sdg|z  }
n‡|D ]}t          |
¦  «        dg|z  z   }
Œnk|s/|t	          |
¦  «        z
  }|dk    rt          |
¦  «        dg|z  z   }
n:d}|D ]}||z  }Œ|t	          |
¦  «        z
  }|dk    rt          |
¦  «        dg|z  z   }
|
| _        | j
        dz  }| j        dz  }| j        |z   }| j        |z   }| j        dk    rd}nd}t          ¦   «         }| j        }t	          | j        ¦  «        }| j        }|�rçt	          |¦  «        }|€|dz  |z  }|dz  |z  }n
||z  }||z  }||z
  |z  }||z
  |z  }t'          |¦  «        D �]˜\  }}t'          |¦  «        D �]�\  }}|||z  z   }t)          ||z
  ¦  «        } | dk     r|}Œ)||k     r|}!|}"n|}!|}"|}| j        |||z  f         }#||}%}$|#j        dk    rF|!|"z   dz  }&|&t,          z  d	z  }'|#j        }(||(t/          |'¦  «        z  z   }$||(t1          |'¦  «        z  z   }%|||z  z   })|)|z   }*|||z  z   }+|+|z   },t	          |¦  «        dk    rt3          |$|%|,|!|"|*|+|)¬
¦  «        }-nt3          |$|%|,|!|"|*|+|)d¬¦	  «	        }-|#j        |-_        |#j        |-_        |#j        |-_        |#j        |-_        |#j        }.|.�r_| t?          |#j         ¦  «        z  }/|/dk    �rA|.dk    rtB          j"        ntB          j#        }.dtI          |/¦  «        z   }/d|#j%        z
  }0|#j&        dk    rd|0z
  t?          |/dz
  ¦  «        z  }1|0}2n|0dz
  t?          |/dz
  ¦  «        z  }1d}2|"|!z
  t?          |/¦  «        z  }3|#j        }4d |-_        tO          |/¦  «        D ]”}5|!|5|3z  z   }6|!|5dz   |3z  z   }7 |.|4|2|1|5z  z   ¦  «        }8t	          |¦  «        dk    rt3          |$|%|,|6|7|*|+|)¬
¦  «        }9nt3          |$|%|,|6|7|*|+|)d¬¦	  «	        }9|8|9_        d |9_        d|9_        | (                    |9¦  «         Œ•| (                    |-¦  «         |dk    rÏ|#j)        rÈ|#j*        rÁ|  +                    |d¦  «        }:|:r©|!|"z   dz  }&|&t,          z  d	z  }'|#j,        };||;z  }<||;z  }=|d| j
        z  t/          |'¦  «        z  |;z  z   }>|d| j        z  t1          |'¦  «        z  |;z  z   }?t[          | |:|&|>|?|#¦  «        }|r"|>|?|&|<|=|$|%| .                    ¦   «         dœ|_/         |	|¦  «         �Œƒ�Œš�no|€|dz  }|dz  }n
||z  }||z  }t'          |¦  «        D �]G\  }}|||z  z   }t)          ||z
  ¦  «        } | dk     r|}Œ)||k     r|}!|}"n|}!|}"|}| j        ||z           }#||}%}$|#j        dk    rF|!|"z   dz  }&|&t,          z  d	z  }'|#j        }(||(t/          |'¦  «        z  z   }$||(t1          |'¦  «        z  z   }%|dk    rt3          |$|%||!|"|||¬
¦  «        }-n|dk    rt3          |$|%||!|"|||d¬¦	  «	        }-|#j        |-_        |#j        |-_        |#j        |-_        |#j        |-_        |#j        }.|.�rX| t?          |#j         ¦  «        z  }/|/dk    �r:|.dk    rtB          j"        ntB          j#        }.dtI          |/¦  «        z   }/d|#j%        z
  }0|#j&        dk    rd|0z
  t?          |/dz
  ¦  «        z  }1|0}2n|0dz
  t?          |/dz
  ¦  «        z  }1d}2|"|!z
  t?          |/¦  «        z  }3|#j        }4d |-_        tO          |/¦  «        D ]�}5|!|5|3z  z   }6|!|5dz   |3z  z   }7 |.|4|2|1|5z  z   ¦  «        }8|dk    rt3          |$|%||6|7|||¬
¦  «        }9n|dk    rt3          |$|%||6|7|||d¬¦	  «	        }9|8|9_        d |9_        d|9_        | (                    |9¦  «         ŒŽ| (                    |-¦  «         |
|         r½|#j)        r¶|#j*        r¯|!|"z   dz  }&|&t,          z  d	z  }'|#j,        };|d| j
        z  t/          |'¦  «        z  |;z  z   }>|d| j        z  t1          |'¦  «        z  |;z  z   }?||;z  }<||;z  }=t[          | |
|         |&|>|?|#¦  «        }|r"|>|?|&|<|=|$|%| .                    ¦   «         dœ|_/         |	|¦  «         �ŒI|r|rta          |¦  «         |D ]}| (                    |¦  «         Œ|S )NÚ r   g       @r4   r8   éÿÿÿÿg      @gñhãˆµøä>g     €f@)ÚyradiusÚradius1Úyradius1T)r}   r~   r   ÚannularÚlightenÚnormalre   )r*   r,   ÚangleÚrxÚryÚcxÚcyÚbounds)1r/   r   ry   ÚappendÚlenÚmaxÚ_seriesCountr7   r0   Úlistr-   r.   r*   r,   r2   r   r1   r5   r;   Ú	enumerateÚabsrg   r   r   r   r   rK   ÚstrokeColorrf   rh   ÚshadingKindÚfloatÚshadingAngler   ÚWhiterÚBlackerÚintÚshadingAmountÚshadingDirectionÚrangero   ÚvisibleÚlabel_visibleÚgetSeriesNameri   r   Ú	getBoundsÚ	_origdatar   )@rR   r/   ÚmultiÚnormDataÚnÚlÚtr7   ÚLÚL_addr0   ÚmÚiÚtlabÚxradiusr}   ÚcenterxÚcenteryÚwhichWayÚgr1   Ú
styleCountÚirfÚndataÚyirÚxirÚydrÚxdrÚsnÚseriesrƒ   ÚendAngleÚaaÚa1Úa2ÚsectorStyler†   r‡   ÚaverageAngleÚaveAngleRadiansÚpopdistanceÚyr1ÚyrÚxr1ÚxrÚ	theSectorÚshaderÚnshadesr—   ÚdshÚshf1ÚshdaÚshscÚishÚsha1Úsha2ÚshcÚshSectorÚtextri   r„   r…   ÚlabelXÚlabelYs@                                                                   r'   ÚmakeSectorszDoughnut.makeSectorsv   s®  € àŒyˆÝ*¨4Ñ0Ô0ˆØð 	"àˆHØˆAØð !ð !�Ø×&Ò& qÑ)Ô)�Ø—’ Ñ"Ô"Ð"Ø—’�˜Q™œÑ Ô Ð Ð Ý # A¡¤ˆDÔÐà×)Ò)¨$Ñ/Ô/ˆHÝ�H‘”ˆAØ !ˆDÔð !Ô2ÐØˆØ”ˆà”ˆØˆ>ØˆFØð 5Ø˜ ™��àð 5ð 5�AÝ! &™\œ\¨R¨D°1©HÑ4�F�Fð5ð
 ð 
5Ø•c˜&‘k”k‘M�Ø�Q’3�3Ý! &™\œ\¨R¨D°1©HÑ4�Føà�Øð ð �AØ˜A‘I�D�DØ�˜V™œÑ$�Ø�Q’3�3Ý! &™\œ\¨R¨D°1©HÑ4�FØˆŒà”*˜S‘.ˆØ”+˜c‘/ˆØ”&˜7Ñ"ˆØ”&˜7Ñ"ˆàŒ>˜_Ò,Ð,ØˆHˆHàˆHå‰WŒWˆà”_ˆ
Ý˜œÑ%Ô%ˆ
ØÔ&ˆàñ C	å˜‘I”IˆEØˆ{Ø˜s‘{ EÑ)�Ø˜s‘{ EÑ)��à˜c‘k�Ø˜c‘k�Ø˜3‘; Ñ%ˆCØ˜3‘; Ñ%ˆCÝ& xÑ0Ô0ð Z%ñ Z%‘	��6Ý(¨Ñ0Ô0ð Y%ñ Y%‘G�A�eØ *¨e°hÑ.>Ñ ?�HÝ˜Z¨Ñ0Ñ1Ô1�BØ˜$’w�wØ%-˜
Ø Ø! HÒ,Ð,Ø'˜Ø%˜˜à%˜Ø'˜Ø!)�Jð #'¤+¨b°°:±¨oÔ">�Kð % g˜�BØ"Ô)¨QÒ.Ð.à(*¨2©¨s¡{˜Ø*6½Ñ*;¸EÑ*A˜Ø&1Ô&8˜Ø$ {µS¸Ñ5IÔ5IÑ'IÑI˜Ø$ {µS¸Ñ5IÔ5IÑ'IÑI˜à˜b ™f™*�CØ˜s™�BØ˜b ™f™*�CØ˜s™�BÝ˜6‘{”{ Q’�Ý$)¨"¨b°"°b¸"ÀbÐRUÐ`cÐ$dÑ$dÔ$d˜	˜	å$)¨"¨b°"°b¸"ÀbÐRUÐ`cÐmqÐ$rÑ$rÔ$r˜	à*5Ô*?�IÔ'Ø,7Ô,C�IÔ)Ø,7Ô,C�IÔ)Ø0;Ô0K�IÔ-à(Ô4�FØñ 0Ø"$¥u¨[Ô-EÑ'FÔ'FÑ"F˜Ø" Qš;™;Ø6<¸iÒ6GÐ6G¥V¤] ]ÍVÌ^˜FØ&'­¨G©¬¡n˜GØ,-¨kÔ.GÑ,G˜MØ*Ô;¸XÒEÐEØ'(¨¡½¸gÀa¹iÑ8HÔ8HÑ&H Ø'4  à'4°Q¡½¸gÀa¹iÑ8HÔ8HÑ&H Ø'( Ø$& r¡E­5°©>¬>Ñ#9˜DØ#.Ô#8˜DØ26˜IÔ/Ý',¨W¡~¤~ð 0ð 0 Ø')¨C°©H¡} Ø')¨S°©U°D©LÑ'8 Ø&, f¨T°$¸¸S¹±.Ñ&AÔ&A Ý#& v¡;¤;¨q¢= =Ý/4°R¸¸RÀÀtÐUWÐadÐorÐ/sÑ/sÔ/s H Hå/4°R¸¸RÀÀtÐUWÐadÐorð  }Að  0Bñ  0Bô  0B HØ58 Ô 2Ø7; Ô 4Ø78 Ô 4Ø !§¢ h¡¤  à—E’E˜)Ñ$Ô$Ð$à˜Q’w�w ;Ô#6�w¸;Ô;T�wØ#×1Ò1°!°BÑ7Ô7˜Øð %Ø,.¨r©E°3©;˜LØ.:½2©o¸eÑ.C˜OØ*5Ô*A˜KØ!(¨Ñ!4˜BØ!(¨Ñ!4˜BØ%,°°d´jÑ0@Å3ÀÑCWÔCWÑ0WÐZeÑ0eÑ%f˜FØ%,°°d´kÑ0AÅCÈÑDXÔDXÑ0XÐ[fÑ0fÑ%g˜FÝ .¨t°D¸ÀfÈVÐT_Ñ `Ô `˜AØ0ð .Ø5;ÀÐR^Ø24¸2ÀBÈRØ67·k²k±m´mð/.ð /. ¤ð "˜E !™HœH˜HùñsY%ñZ%ð| ˆ{Ø˜c‘k�Ø˜c‘k��à˜c‘k�Ø˜c‘k�Ý$ XÑ.Ô.ð Tñ T‘��%Ø&¨%°(Ñ*:Ñ;�Ý˜ HÑ,Ñ-Ô-�Ø�d’7�7Ø!)�JØØ Ò(Ð(Ø#�BØ!�B�Bà!�BØ#�BØ%�
ð #œk¨!¨J©,Ô7�ð ! '�B�ØÔ%¨Ò*Ð*à$& r¡E¨3¡;�LØ&2µRÑ&7¸Ñ&=�OØ"-Ô"4�KØ  ;µ°_Ñ1EÔ1EÑ#EÑE�BØ  ;µ°_Ñ1EÔ1EÑ#EÑE�Bà�q’5�5Ý % b¨"¨g°r¸2ÀwÐX[ÐfiÐ jÑ jÔ j�I�IØ˜’T�TÝ % b¨"¨g°r¸2ÀwÐX[ÐfiÐswÐ xÑ xÔ x�Ià&1Ô&;�	Ô#Ø(3Ô(?�	Ô%Ø(3Ô(?�	Ô%Ø,7Ô,G�	Ô)à$Ô0�Øñ ,Ø ¥5¨Ô)AÑ#BÔ#BÑB�GØ ’{‘{Ø28¸)Ò2CÐ2C¥¤ ÍÌ˜Ø"#¥C¨¡L¤L¡.˜Ø()¨+Ô*CÑ(C˜Ø&Ô7¸ÒAÐAØ#$ ]¡?µE¸'À!¹)Ñ4DÔ4DÑ"D˜CØ#0˜D˜Dà#0°¡?µE¸'À!¹)Ñ4DÔ4DÑ"D˜CØ#$˜DØ " 2¡¥u¨W¡~¤~Ñ5˜Ø*Ô4˜Ø.2˜	Ô+Ý#(¨¡>¤>ð ,ð ,˜CØ#%¨¨D©¡=˜DØ#%¨¨Q©°©Ñ#4˜DØ"( &¨¨d°S¸±W©nÑ"=Ô"=˜CØ  1šu˜uÝ+0°°R¸À$ÈÐV]ÐgjÐuxÐ+yÑ+yÔ+y  Ø!" A¢ Ý+0°°R¸À$ÈÐV]ÐgjÐuxð  CGð  ,Hñ  ,Hô  ,H Ø14˜HÔ.Ø37˜HÔ0Ø34˜HÔ0ØŸEšE (™OœO˜O˜Oà—’�iÑ Ô Ð ð ˜!”9ð  Ô!4ð ¸Ô9Rð Ø$& r¡E¨3¡;�LØ&2µ2¡o°eÑ&;�OØ"-Ô"9�KØ$¨¨d¬jÑ(8½3¸Ñ;OÔ;OÑ(OÐR]Ñ(]Ñ^�FØ$¨¨d¬kÑ(9½CÀÑ<PÔ<PÑ(PÐS^Ñ(^Ñ_�FØ  Ñ,�BØ  Ñ,�BÝ& t¨F°1¬I°lÀ6È&ÐQ\Ñ]Ô]�AØ(ð *Ø-3¸È,Ø.0°rÀÈØ23·+²+±-´-ð'*ð '*˜œð �E˜!‘H”H�Hùàð 	  ð 	 Ý˜QÑÔÐàÐÐˆA�A—E’E˜!‘H”H�H�Hàˆr&   c                 óp   — t          ¦   «         }|                     |                      ¦   «         ¦  «         |S ©N)r   ro   rÒ   )rR   r­   s     r'   ÚdrawzDoughnut.draw�  s.   € Ý‰GŒGˆØ	�Šˆd×ÒÑ Ô Ñ!Ô!Ð!Øˆr&   r%   rÔ   )r   r    r!   r#   r   ÚAttrMapValuer   r   r   r   r   r	   r
   r   r   r   r$   rG   rq   ry   rÒ   rÕ   r%   r&   r'   r)   r)   &   s¨  € € € € € Øˆwð 
ð 
ð 
Ð,Ð,ð 
ØˆL˜Ð(WÐXÑXÔXÐXð
àˆL˜Ð(WÐXÑXÔXÐXð
ð �˜XÐ,hÐiÑiÔiÐið
ð �˜hÐ-lÐmÑmÔmÐmð	
ð
 ˆ|˜H˜HÐ&:Ð;UÐ%VÑWÔWð  _Yð  Zñ  Zô  Zð  Zð
ð �Ð3Ð:nÐoÑoÔoÐoð
ð "�\ (Ð1iÐjÑjÔjÐjð
ð !�L   {°OÑ!DÔ!DÐKkÐlÑlÔlÐlð
ð �˜dÐ)RÐSÑSÔSÐSð
ð $�| IÐ4lÐmÑmÔmÐmð
ð )˜L¨ð  :Cð  RSð  Tñ  Tô  Tð  Tð
ð "�\ )Ð2uð  FGð  Hñ  Hô  Hð  Hð
ð +˜l¨>ð AðBñ Bô Bð Bð
ð   �<   zÑ 2Ô 2Ð9gÐhÑhÔhÐhð!
ð" "�\ (Ð1fÐgÑgÔgÐgð#
€Hð(1ð 1ð 1ð4ð ð ð8#ð #ð #ð #ð
Ið Ið IðVð ð ð ð r&   r)   c                  óR  — t          dd¦  «        } t          ¦   «         }t          dddddd¬¦  «        }t          j        |_        d|_        |                      |¦  «         t          ddddd	d¬¦  «        }t          j        |_        d|_        |                      |¦  «         t          dddd	d
d¬¦  «        }t          j	        |_        d|_        |                      |¦  «         t          dddd
dd¬¦  «        }t          j
        |_        d|_        |                      |¦  «         | S )z-Make up something from the individual Sectorsé�  rU   é–   r   éx   r?   )rª   r«   ÚradiusÚstartangledegreesÚendangledegreesr~   Néð   i  rA   )r   r   r   r   rj   rK   r�   ro   ÚgreenrM   Úgray)rb   r­   Ús1Ús2Ús3Ús4s         r'   Úsample1rå   ‡  s  € õ 	��SÑÔ€AÝ‰Œ€Aå	�s C°ÀqÐZ]ÐgjÐ	kÑ	kÔ	k€BÝ”€B„LØ€B„NØ‡E‚Eˆ"�I„I€IÝ	�s C°ÀsÐ\_ÐilÐ	mÑ	mÔ	m€BÝ”€B„LØ€B„NØ‡E‚Eˆ"�I„I€IÝ	�s C°ÀsÐ\_ÐilÐ	mÑ	mÔ	m€BÝ”€B„LØ€B„NØ‡E‚Eˆ"�I„I€IÝ	�s C°ÀsÐ\_ÐilÐ	mÑ	mÔ	m€BÝ”€B„LØ€B„NØ‡E‚Eˆ"�I„I€Ià€Hr&   c                  ó¶   — t          dd¦  «        } t          ¦   «         }d|_        d|_        d|_        d|_        g d¢|_        |                      |¦  «         | S )zMake a simple demorØ   rV   é,  rY   )r   r)   r*   r,   r-   r.   r/   ro   ©rb   rp   s     r'   Úsample2ré      sY   € õ 	��SÑÔ€Aå	‰Œ€BØ€B„DØ€B„DØ€B„HØ€B„IØ!Ð!Ð!€B„Gà‡E‚Eˆ"�I„I€Ià€Hr&   c                  óÐ   — t          dd¦  «        } t          ¦   «         }d|_        d|_        d|_        d|_        g d¢g d¢g|_        g d¢|_        |                      |¦  «         | S )zMake a more complex demorØ   rV   rç   rY   ©rW   rZ   r[   r\   r^   )	r   r)   r*   r,   r-   r.   r/   r0   ro   rè   s     r'   Úsample3rì   °  so   € õ 	��SÑÔ€AÝ	‰Œ€BØ€B„DØ€B„DØ€B„HØ€B„IØ"Ð"Ð" M M MÐ2€B„GØ)Ð)Ð)€B„Ià‡E‚Eˆ"�I„I€Ià€Hr&   c                  óÞ   — t          dd¦  «        } t          ¦   «         }d|_        d|_        d|_        d|_        g d¢g d¢g|_        g d¢|_        d|_        |  	                    |¦  «         | S )z2Make a more complex demo with Label Overlap fixingrØ   rV   rç   rY   rë   r^   T)
r   r)   r*   r,   r-   r.   r/   r0   r7   ro   rè   s     r'   Úsample4rî   À  sw   € õ 	��SÑÔ€AÝ	‰Œ€BØ€B„DØ€B„DØ€B„HØ€B„IØ"Ð"Ð" M M MÐ2€B„GØ)Ð)Ð)€B„IØ€BÔà‡E‚Eˆ"�I„I€Ià€Hr&   Ú__main__)Ú
drawToFilezdoughnut1.pdfzdoughnut2.pdfzdoughnut3.pdfN)-Ú__version__r"   Úmathr   r   r   Úreportlab.libr   Úreportlab.lib.validatorsr   r   r	   r
   r   r   r   r   r   r   Úreportlab.lib.attrmapÚreportlab.graphics.shapesr   r   r   Úreportlab.graphics.widgetbaser   Ú#reportlab.graphics.charts.piechartsr   r   r   r   Úreportlab.graphics.charts.areasr   Ú	functoolsr   r   r)   rå   ré   rì   rî   r   Úreportlab.graphics.renderPDFrð   rb   r%   r&   r'   ú<module>rü      sa  ðð €ð	€ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  ð/ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð $Ð #Ð #Ð #Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø AÐ AÐ AÐ AÐ AÐ AØ sÐ sÐ sÐ sÐ sÐ sÐ sÐ sÐ sÐ sÐ sÐ sØ 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø Ð Ð Ð Ð Ð ð	ð 	ð 	ð 	ð 	�ñ 	ô 	ð 	ð^ð ^ð ^ð ^ð ^Ðñ ^ô ^ð ^ðBð ð ð2ð ð ð ð ð ð ð ð ð" ˆZÒÐà7Ð7Ð7Ð7Ð7Ð7Øˆ‰	Œ	€AØ€Jˆq�/Ñ"Ô"Ð"Øˆ‰	Œ	€AØ€Jˆq�/Ñ"Ô"Ð"Øˆ‰	Œ	€AØ€Jˆq�/Ñ"Ô"Ð"Ð"Ð"ð Ðr&   