+
    ŒvjõÇ  ã                   ó^  € R t Rt^ RIHt ^ RI5 ^ RI5 ^ RIHtHt ^ RI	H
t
HtHtHtHtHt ^ RIHtHtHt ^ RIHt ^ RIHtHtHtHt ^ RI5 ^ R	IHtHt ^ R
IH t H!t!H"t" ^ RI#H$t$H%t% ^ RI&H't' ^RI(H)t)  ! R R]4      t* ! R R]+4      t, ! R R]4      t- ! R R4      t. ! R R4      t/ ! R R]/]"4      t0 ! R R]/]4      t1^ RI2H3t3  ! R R]34      t4 ! R R ]44      t5. R3NR4NR5NR6NR7NR8NR9NR:NR;NR<NR=NR>NR?NR@NRANRBNRCNRDNRENRFNRGNRHNRINRJNRKNRLNRMNRNNRONRPNRQNRRN. R3NRSNRTNRUNRVNRWNRXNRYNRZNR[NR\NR]NR^NR_NR`NRaNRbNRcNRdNReNRfNRgNRhNRiNRjNRkNRlNRmNRnNRoNRpNRqN.t6 ! R! R"]44      t7 ! R# R$]74      t8 ! R% R&]44      t9 ! R' R(]94      t:R) t; ! R* R+]44      t<R, t=R- t>R. t?R/ t@R0 tAR1 tBR2# )rz3.3.0z9This module defines a very preliminary Line Plot example.©Úcolors)Ú*)ÚflattenÚisStr)ÚDrawingÚGroupÚRectÚPolyLineÚPolygonÚ_SetKeyWordArgs)ÚTypedPropertyCollectionÚ
PropHolderÚ
tpcGetItem)ÚLabel)Ú
XValueAxisÚ
YValueAxisÚAdjYValueAxisÚNormalDateXValueAxis)ÚuSymbol2SymbolÚ
makeMarker)ÚGridÚ
DoubleGridÚShadedPolygon)ÚstringWidthÚgetFont)ÚPlotArea)ÚFillPairedDatac                   ó(  € ] tR t^t]! ]! ]RR7      ]! ]RR7      ]! ]RR7      ]! ]RR7      ]! RR^R7      ]! RR	^R7      ]! RR
^R7      ]! ]	RR7      ]! ]
! ]! RRR4      4      R^R7      ]! ]R^R7      ]! ]! ^ ^^RR4      R^R7      R7      tRtR# )ÚLinePlotPropertieszWidth of a line.©ÚdesczColor of a line.zDash array of a line.z,Color of infill defaults to the strokeColor.NzWidget placed at data points.©r!   ÚadvancedUsagezShader Class.zFiller Class.zName of the line.ÚlineÚ
joinedLineÚbarzWhat kind of plot this line isz2Percentage of available width to be used for a barTFzIf true flood fill to x axis)ÚstrokeWidthÚstrokeColorÚstrokeDashArrayÚ	fillColorÚsymbolÚshaderÚfillerÚnameÚ	lineStyleÚbarWidthÚinFill© )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚAttrMapÚAttrMapValueÚisNumberÚisColorOrNoneÚisListOfNumbersOrNoneÚisStringOrNoneÚNoneOrÚOneOfÚisNumberOrNoneÚ_attrMapÚ__static_attributes__r2   ó    Úg/var/www/html/daimler-pipeline/venv/lib/python3.14/site-packages/reportlab/graphics/charts/lineplots.pyr   r      s¶   † ÙÙ" 8Ð2DÔEÙ" =Ð7IÔJÙ&Ð'<ÐCZÔ[Ù  Ð5cÔdÙ˜dÐ)HÐWXÔYÙ˜d¨ÀqÔIÙ˜d¨ÀqÔIÙ˜NÐ1DÔEÙ ¡©¨f°\À%Ó(HÓ!IÐPpð  @Aô  BÙ Ð4hÐwxÔyÙ™e A a¨¨$¨uÓ5Ð<ZÐijÔkô
„HrB   r   c                   ó*   a € ] tR t^'t o RR ltRtV tR# )ÚInFillValueNc                ó<   € \         P                  W4      pW#n        V# ©N)ÚintÚ__new__ÚyValue)ÚclsÚvrJ   Úselfs   &&& rC   rI   ÚInFillValue.__new__(   s   € Ü�{‰{˜3Ó!ˆØŒØˆrB   )rJ   rG   )r3   r4   r5   r6   rI   rA   Ú__classdictcell__©Ú__classdict__s   @rC   rE   rE   '   s   ø‡ € ÷ò rB   rE   c                   ón   a € ] tR t^-t o ]! ]]! ]RR7      ]! ]! ]	^^R7      RR7      R7      t
R tRtV tR# )	ÚShaderzIf true shade to x axisr    )ÚloÚhiz(AxisColor, LineColor))ÚBASEÚverticalr   c                óÀ   € R R .p\        V RV4      ;'       g    TpV^ ,          '       g   \        VR\        P                  4      V^ &   V^,          '       g   WF^&   R # R # )Nr   r*   )Úgetattrr   Úwhite)rM   ÚlpÚgÚrowNoÚrowColorÚrowÚcs   &&&&&& rC   ÚshadeÚShader.shade3   sP   € Ø�$ˆKˆÜ�D˜ !Ó$×)Ð)¨ˆØ��tŒtœG B {´6·<±<Ó@�Q�q‘TØ��tŒt˜H�q“T‰trB   r2   N)r3   r4   r5   r6   r7   r   r8   Ú	isBooleanÚ
SequenceOfr:   r@   ra   rA   rO   rP   s   @rC   rS   rS   -   s:   ø‡ € Ù˜HÙ 	Ð0IÔJÙ™j¨¸!¸qÔAÐH`Ôaô
€H÷
%ð %rB   rS   c                   ó&   a € ] tR t^9t o R tRtV tR# )ÚNoFillerc                ó   € R # rG   r2   ©rM   r[   r\   r]   r^   Úpointss   &&&&&&rC   ÚfillÚNoFiller.fill:   s   € ÙrB   r2   N)r3   r4   r5   r6   rj   rA   rO   rP   s   @rC   rf   rf   9   s   ø‡ € ÷ð rB   rf   c            	       óv   a € ] tR t^=t o Rt]! ]! ]RR7      ]! ]RR7      ]! ]RR7      R7      t	R t
R tR	tV tR
# )ÚFillerz#mixin providing simple polygon fillzfiller interior colorr    zfiller edge colorzfiller edge width©r*   r(   r'   c                ó   € Wn         R # rG   ©Ú__dict__)rM   Úkws   &,rC   Ú__init__ÚFiller.__init__D   s   € ØŽrB   c                ó„   € VP                  \        V\        V R V4      \        V RV4      \        V RR4      R7      4       R# )r*   r(   r'   çš™™™™™¹?rn   N)Úaddr   rY   rh   s   &&&&&&rC   rj   ÚFiller.fillG   s;   € Ø	�‰Œg�fÜ˜d ;¨xÓ8Ü  ]°8Ó<Ü  ]°3Ó7ô9ö 	:rB   rp   N)r3   r4   r5   r6   Ú__doc__r7   r8   r:   r?   r@   rs   rj   rA   rO   rP   s   @rC   rm   rm   =   sB   ø‡ € Ù-ÙÙ  Ð5LÔMÙ" =Ð7JÔKÙ" >Ð8KÔLô
€Hò
÷:ð :rB   rm   c                   ó   € ] tR t^MtRtR# )ÚShadedPolyFillerr2   N©r3   r4   r5   r6   rA   r2   rB   rC   r{   r{   M   ó   † ÛrB   r{   c                   ó   € ] tR t^PtRtR# )Ú
PolyFillerr2   Nr|   r2   rB   rC   r   r   P   r}   rB   r   )ÚAbstractLineChartc                   ó¾  a € ] tR t^Tt o Rt]! ]]! ]R^R7      ]! ]	R^R7      ]! RRR7      ]! RRR7      ]! RR	R7      ]! ]
R
R7      ]! ]
RR7      ]! RRR7      ]! RRR7      ]! RRR7      ]! RRR7      ]! RR^R7      ]! ]R^R7      ]! ]R^R7      R7      tR t]R 4       t]P                  R 4       tR tR tR tR tR tR t]P.                  ^R3R ltRtV tR# ) ÚLinePlotz}Line plot with multiple lines.

Both x- and y-axis are value axis (so there are no seperate
X and Y versions of this class).
zIf true reverse plot order.r"   z,Distance between a data point and its label.Nz(Handle to the list of data point labels.r    z9Formatting string or function used for data point labels.zHexplicit array of line label values, must match size of data if present.z.Color used for background border of plot area.ú0Color used for background interior of plot area.zHandle of the lines.zHandle of the x axis.zHandle of the y axis.z2Data to be plotted, list of (lists of) x/y tuples.z<list of callables, will be called with self, xscale, yscale.z If true use separate line group.z#If true use draw grids before axes.)rV   ÚreversePlotOrderÚlineLabelNudgeÚ
lineLabelsÚlineLabelFormatÚlineLabelArrayr(   r*   ÚlinesÚ
xValueAxisÚ
yValueAxisÚdataÚannotationsÚ
behindAxesÚ	gridFirstc                ó  € \         P                  ! V 4       ^ V n        \        4       V n        \        4       V n        RR.V n        \        \        4      V n
        ^V P                  n        ^V n        \        P                  V P                  ^ ,          n        \        P                   V P                  ^,          n        \        \"        4      V n        RV n        RV n        ^
V n        RV n        . V n        ^ V n        ^ V n        R# )é    N©)é   r“   )é   r”   )ç      @r“   )é   r–   )é   é   )©r“   r”   ©r”   r–   ©r•   r”   )r–   r—   ©r—   é   )r   rs   r„   r   rŠ   r   r‹   rŒ   r   r   r‰   r'   ÚjoinedLinesr   Úredr(   Úbluer   r†   r‡   rˆ   r…   Ú_inFillr�   rŽ   r�   ©rM   s   &rC   rs   ÚLinePlot.__init__l   sË   € Ü×Ò˜$ÔØ !ˆÔä$›,ˆŒÜ$›,ˆŒð 2Ø1ðˆŒ	ô
 -Ô-?Ó@ˆŒ
Ø!"ˆ�
‰
ÔØˆÔÜ$*§J¡Jˆ�
‰
�1�Ô!Ü$*§K¡Kˆ�
‰
�1�Ô!ä1´%Ó8ˆŒØ#ˆÔØ"ˆÔð !ˆÔð
 ˆŒØˆÔØˆŒØˆŽrB   c                ó4   € V P                   P                  R 8H  # )r%   ©r‰   r/   r¢   s   &rC   rž   ÚLinePlot.joinedLines“   s   € à�z‰z×#Ñ# \Ñ1Ð1rB   c                ó<   € V'       d   R MRV P                   n        R# )r%   r$   Nr¥   )rM   rL   s   &&rC   rž   r¦   —   s   € ç/0™|°fˆ�
‰
ÖrB   c                óÎ  € \        R^È4      pRR.p\        4       p^2Vn        ^2Vn        ^}Vn        RVn        W#n        ^Vn        RVn        \        P                  Vn        \        P                  VP                  ^ ,          n        \        R4      VP                  ^ ,          n        \        P                   VP                  ^,          n        \        R4      VP                  ^,          n        ^ VP"                  n        ^VP"                  n        ^VP"                  n        ^ VP*                  n        ^VP*                  n        ^VP*                  n        VP-                  V4       V# )z Shows basic use of a line chart.é�  é,  ú%2.0fÚFilledCircleÚFilledDiamondr’   ©r™   rš   r›   )g      @r˜   rœ   )r   r‚   ÚxÚyÚheightÚwidthrŒ   rž   r‡   r   Úblackr(   rŸ   r‰   r   r+   r    rŠ   ÚvalueMinÚvalueMaxÚ	valueStepr‹   rw   )rM   ÚdrawingrŒ   r[   s   &   rC   ÚdemoÚLinePlot.demo›   s  € ô ˜#˜sÓ#ˆð 2Ø3ðˆô
 ‹ZˆàˆŒØˆŒØˆŒ	ØˆŒØŒØˆŒØ$ˆÔÜŸ™ˆŒä"(§*¡*ˆ�‰��ÔÜ'¨Ó7ˆ�‰��ÔÜ"(§+¡+ˆ�‰��ÔÜ'¨Ó8ˆ�‰��Ôà!"ˆ�‰ÔØ!"ˆ�‰ÔØ"#ˆ�‰Ôà!"ˆ�‰ÔØ!"ˆ�‰ÔØ"#ˆ�‰Ôà�‰�BŒàˆrB   c                óâ  € \        V P                  4      V n        \        \	        \        \         V P                  4      4      4      V n        \        4       p. P                  pV P                  P                  pV P                  P                  pV P                  p\        V4      p\        V4       Fú  w  rx\        V\        4      '       d]   VP                  p	^ T	u;8:  d   V8  d/   M M+W—8X  d   \!        RV,          4      hVP#                  Wy34       M\!        RV: RV	: 24      h. P                  p
\        V4       FV  w  r¼V^ ,          pT
! \%        V4      '       d   V! \'        \)        V4      4      4      MV! V4      V! V^,          4      34       KX  	  V! V
P*                  4       Kü  	  VP*                  pV F  w  ry\        W',          V	4      W'&   K  	  \        V4      V n        W n        R# )zmWorks out where they go.

Sets an attribute _positions which is a list of
lists of (x, y) matching the data.
z)data row %r may not be paired with itselfz	data row z! is paired with invalid data row N)ÚlenrŒ   Ú_seriesCountÚmaxÚlistÚmapÚ
_rowLengthÚsetÚappendrŠ   Úscaler‹   Ú	enumerateÚ
isinstancer   ÚotherÚ
ValueErrorrw   r   ÚmktimeÚmkTimeTupleÚ__self__Ú_pairInFillsÚ
_positions)rM   ÚpairsÚPÚxscaleÚyscalerŒ   Únr]   r_   rÆ   r$   ÚcolNoÚdatumÚxvs   &             rC   ÚcalcPositionsÚLinePlot.calcPositionsÂ   sz  € ô   §	¡	›NˆÔÜœd¤3¤s¨4¯9©9Ó#5Ó6Ó7ˆŒä“ˆØ�I‰IˆØ—‘×&Ñ&ˆØ—‘×&Ñ&ˆØ�y‰yˆÜ�‹IˆÜ# Dž/‰JˆEÜ˜#œ~×.Ò.ØŸ	™	�Ø�e–:˜A—:Ø”|Ü(Ð)TÐW\Õ)\Ó]Ð]Ø—I‘I˜u˜mÕ,å$ÓY^Ò`eÐ%fÓgÐgØ—9‘9ˆDÜ )¨#¦‘�Ø˜1•X�Ùä7<¸R·y²y‘Fœ6¤+¨b£/Ó2Ô3ÁfÈRÃjÙ˜5 �8Ó$ðöñ !/ñ ˆd�m‰mÖñ% *ð& �J‰Jˆó "‰LˆEÜ% a¥h¨uÓ5ˆA‹Hñ "ä ›JˆÔØŽrB   c                ó¦  € V P                   pV P                  V,          V,          ^,          pVf   RpM‹\        V\        4      '       d,   VR8X  d   V P                  V,          V,          pMSWV,          pMJ\        VR4      '       d'   \        VR4      '       g
   V! V4      pMV! WW#V4      pM\        RV,          4      hV'       dˆ   V P                  W3,          pVP                  '       g   R# V^ 8”  d$   VP                  W4V P                  ,           4       M"VP                  W4V P                  ,
          4       VP                  V4       V# RpV# )z*Draw a label for a given item in the list.NÚvaluesÚ__call__Ú__labelFmtEX__z6Unknown formatter type %s, expected string or function)r‡   rŒ   rÅ   Ústrrˆ   ÚhasattrrÇ   r†   ÚvisibleÚ	setOriginr…   ÚsetText)	rM   r]   rÒ   r¯   r°   ÚlabelFmtÚ
labelValueÚ	labelTextÚlabels	   &&&&&    rC   Ú_innerDrawLabelÚLinePlot._innerDrawLabelí   s  € ð ×'Ñ'ˆØ—Y‘Y˜uÕ% eÕ,¨QÕ/ˆ
àÒØ‰IÜ˜¤×%Ò%Ø˜8Ô#Ø ×/Ñ/°Õ6°uÕ=‘	à$Õ1‘	Ü�X˜j×)Ò)Ü˜8Ð$4×5Ò5Ù$ ZÓ0‘	á$ T°¸Ó:‘	äÐUÐW_Õ_Ó`Ð`çØ—O‘O U NÕ3ˆEØ—=—=�=¡&à�1ŒuØ—‘  t×':Ñ':Õ#:Õ;à—‘  t×':Ñ':Õ#:Ô;Ø�M‰M˜)Ô$ð ˆð ˆEØˆrB   c                óH   € VP                  V P                  W#WE4      4       R# )zDDraw a label for a given item in the list.
G must have an add methodN)rw   rä   )rM   ÚGr]   rÒ   r¯   r°   s   &&&&&&rC   Ú	drawLabelÚLinePlot.drawLabel  s   € ð 	
�‰ˆd×"Ñ" 5¨qÓ3Ö4rB   c                ó8  € \        4       pV P                  pV P                  p\        V R R4      pV'       d-   \	        VP
                  VP
                  4      pVP                  pV P                  pV P                  p\        V RR4      p	V P                  p
\        V
4      pV	'       g_   V P                  '       gM   \        \        V4      4       Uu. uF'  p\        W¬V,          ,          RR4      '       g   K%  VNK)  	  up'       d[   \        V	RR4      pVf   VP                  pMVP                  V4      pVP                  pWãP                   ,           p\        V RV4      pRp\        V RV4      p\        \        V4      4      pV P"                  '       d   \%        V4      pV EFî  pWŒ,          pWË,          pV
V,          p\        VRR4      p\        VR	R4      p\        VR
V4      p\        VRV	4      p\        VRR4      p\        VRR4      p\'        VR	4      '       d   VP(                  pM!\'        V
R	4      '       d   V
P(                  pMRpVR8X  Ed±   VEf!   \+        \-        \        V4      4      ^,
          pV^ 8”  d   V P.                  V,          ^,
          MV P.                  p\        VR\1        ^24      4      pV P                  pVP                  ^ 4      p \+        VP                  V 4      p!\	        VP                  VP                   ,           V 4      p"V P                  P                  p#V#V P                  P                   ,           p$\3        V\0        4      '       d   VVR,          ,          pM	VR,          pV Fƒ  w  pp%Tp&V%X 8  d   X"MX!p'VV&^,          ,          pVX#8  d   V&V#V,
          ,          p&T#pMVV&,           X$8”  d   V&V$V,
          ,          p&VP5                  \7        VV'V&V%V',
          VVVR7      4       K…  	  EM8VR8X  Ed1   \9        V4      p(V'       g   \3        V\:        4      '       d´   \        VRR4      p)\3        V\:        4      '       d.   V(\9        \%        VVP<                  ,          4      4      ,           p*MXX.V(,           XV.,           p*V)'       d   V)P?                  V XVVV*4       M1XP5                  \A        T*TVV8X  d   TMRT;'       g    RR7      4       V'       d   V^8X  g   VV8w  d?   \C        V(V^ ^R7      p+V'       d   VV+n        V'       d   VV+n"        VP5                  V+4       \'        VR4      '       d   VPF                  p,M!\'        V
R4      '       d   V
PF                  p,MRp,V,'       dá   V'       d   V PH                  V,          p-\K        V4       Fµ  w  p.p/VV.3V
9   d   \        V
VV.3,          RV,4      p0MT,p0V0V,J d   T,p1Tp2MT0p1\        V1R
V4      p2\M        \O        V1V.4      V/^ ,          V/^,          V24      p1V1'       g   Kr  V'       d+   XX-V.,          ^,          X,          R,          ,          V1n(        VP5                  V14       K·  	  MÑV'       d   V PH                  V,          p-\K        V4       F§  w  p.p/\        V
VV.3,          RR4      p0V0'       g   K&  \        V0R
\        V0RV4      4      p2\M        V0V/^ ,          V/^,          V24      p1V1'       g   Kd  V'       d+   XX-V.,          ^,          X,          R,          ,          V1n(        VP5                  V14       K©  	  \K        V4       F  w  p3p4V4w  p5p6V PS                  WV3V5V64       K!  	  \        VRR4      p7V7'       g   EKÚ  V7PU                  WVVV4       EKñ  	  V# u upi )Ú_bubblePlotNr¡   r1   FrJ   Ú_inFillGÚ_lineGr(   r'   r*   r)   r/   r&   r0   g{®Gázt?ç      à?)r'   r(   r*   r%   r-   rv   rn   )r(   ÚstrokeLineCapÚstrokeLineJoinr+   r,   )+r   r‹   rŠ   rY   ÚminÚ_bubbleRadiusÚ
_bubbleMaxr‡   rÌ   r‰   r»   rË   ÚrangeÚ_yrÃ   Ú_xÚ_lengthr„   ÚreversedrÜ   r'   r½   r¿   r²   Ú
PercentagerÅ   rw   r	   r   r   rÆ   rj   r   r
   r)   r+   rŒ   rÄ   r   r   Úsizerè   ra   )8rM   r\   ÚyAÚxAÚ
bubblePlotÚbubbleRÚ	bubbleMaxrà   rÎ   r¡   r‰   Ú
styleCountr]   ÚinFillYÚinFillX0ÚinFillX1ÚinFillGÚbwÚlGÚRr_   Ú
styleRowNoÚrowStyler(   r'   r*   r1   Údashr/   r²   r¯   r0   Úy0ÚbyposÚbynegÚxminÚxmaxr°   ÚwÚ_y0ri   r-   Úfpointsr$   ÚuSymbolÚdrowÚjÚxyÚjuSymbolr+   ÚsymColorrÒ   rÓ   Úx1Úy1r,   s8   &                                                       rC   Ú	makeLinesÚLinePlot.makeLines  sc  € Ü‹GˆØ�_‰_ˆØ�_‰_ˆÜ˜T -°Ó5ˆ
ßÜ˜"×*Ñ*¨2×+;Ñ+;Ó<ˆGØŸ™ˆIà×'Ñ'ˆà�O‰OˆÜ˜$˜y¨Ó.ˆØ—
‘
ˆÜ˜“Zˆ
ß�t×(×(Ð(Ü$)¬#¨a«&¤Mó L¡M˜5Ü" 5¨zÕ)9Õ#:¸8ÀE×J÷ �¡M÷ Lð Lô ˜g h¨tÓ4ˆGØŠØŸ%™%‘àŸ(™( 7Ó+�Ø—u‘uˆHØ§*¡*Õ,ˆHÜ˜d :¨aÓ0ˆGØˆÜ�T˜( 1Ó%ˆä”#�a“&‹MˆØ× × Ð ¤h¨q£k !ÜˆEØ•(ˆCØÕ+ˆJØ˜ZÕ(ˆHÜ! (¨=¸Ó>ˆKÜ! (¨=¸Ó>ˆKÜ ¨+°{ÓCˆIÜ˜X h¨wÓ7ˆFÜ˜8Ð%6¸Ó=ˆDÜ ¨°TÓ:ˆIä�x ×/Ò/Ø ×,Ñ,‘Ü˜ ×.Ò.Ø×)Ñ)‘à�ð ˜%ÕØ“:ÜœC¤ A›J›¨!Õ+�AØ/0°¬s˜$Ÿ*™* Q�,¨Ö*¸¿
¹
�BÜ& x°
¼:Àb»>ÓJ�HØŸ™�AØŸ™ ›�BÜ §¡ R›L�EÜ §¡ Q§Y¡Y¥¨rÓ2�EØŸ?™?×-Ñ-�DØ $§/¡/×"9Ñ"9Õ9�DÜ! (¬:×6Ò6Ø˜h u�nÕ,™à% c�\˜Û‘D�A�qØ�Aà#$ R¤4™%¨U�CØ˜˜1�•H�AØ˜”vØ˜T A�X�˜Ø ™Ø˜1�˜tœØ˜T A�X�˜Ø—E‘Eœ$˜q  Q q¨¥u¸ÐQ\ÐgpÔqÖró  ð ˜LÕ(Ü  ›�ßœZ¨¬N×;Ò;Ü$ X¨x¸Ó>�FÜ! #¤n×5Ò5Ø"(¬7´8¸A¸c¿i¹i½LÓ3IÓ+JÕ"J™à#+¨GÐ"4°vÕ"=ÀÈ'Ð@RÕ"R˜ßØŸ™ D¨°°yÀÕIàŸ™¤G¨G¸iÐcnÐpyÔcyÑT_ð  @Dð  QV÷  Q]ð  Q]ð  Z]ô  %^ô  _ß ¨¤¨k¸9Ô.DÜ# F°{ÐQRÐbcÔd�DßØ+0˜Ô(ßØ/3˜Ô,Ø—F‘F˜4”Lä�x ×*Ò*Ø"Ÿ/™/‘Ü˜ ×)Ò)ØŸ,™,‘à�çß d§i¡i°Õ&6˜tÜ% cžN‘D�A�bØ" 1�~¨Ô.Ü#*¨5°¸A°Õ+>¸xÈÓ#P™à#*˜Ø 7Ó*Ø!(˜Ø#.™à!)˜Ü#*¨6°+¸kÓ#J˜Ü+¬J°v¸aÓ,@ÀÀAÅÀrÈ!ÅuÈXÓV�Fß‘vß%Ø*1°4¸µ7¸1µ:¸iÕ3GÈ#Õ2MÕ*M˜FœKØŸ™˜fžò +÷"  d§i¡i°Õ&6˜tÜ% cžN‘D�A�bÜ& u¨Z¸¨\Õ':¸8ÀDÓI�Hß#¡XÜ& x°¼GÀHÈ]Ð[fÓ<gÓh�HÜ+¨H°R¸µU¸2¸a½5ÀÓJ�Fß‘vß%Ø*1°4¸µ7¸1µ:¸iÕ3GÈ#Õ2MÕ*M˜FœKØŸ™˜fžñ +ô  )¨ž~‘��eØ‘��BØ—‘˜q¨°°BÖ7ñ  .ô ˜X x°Ó6ˆFßŠv�v—|‘| D¨5°¸S×AñY ð\ ˆùò}Ls   Ã"^Ã7^c                ó
  € V P                   pV P                  p\        V R R4      '       d   ^;Vn        Vn        VP	                  V P
                  V P                  V P                  4       V'       d   W!n        V'       d   Wn        VP                  V P                  4       VP                  ^ 4      pW0P                  V P                  ,           8”  g   W0P                  8  d   V P                  pMTpVP	                  V P
                  W@P                  4       VP                  V P                  4       V P                  4        \        4       pVP                  V P!                  4       4       V P"                  '       g   V P$                  '       d‰   VP'                  4        V P"                  '       d+   \        4       V n        VP                  V P(                  4       V P$                  '       d+   \        4       V n        VP                  V P*                  4       VP'                  4        VP'                  4        VP,                  ;'       d    VP.                  .;'       g    . pVP,                  ;'       d    VP0                  .;'       g    . p\        VRR4      pVR8w  dV   VR	9   d-   VP3                  VP0                  VP4                  ,           4       VR
9   d   VP3                  VP0                  4       \        VRR4      pVR8w  dV   VR	9   d-   VP3                  VP.                  VP4                  ,           4       VR
9   d   VP3                  VP.                  4       V P6                  '       d=   VP9                  WPVP:                  VR7       VP9                  WPVP:                  VR7       VP                  VP=                  4       4       VP                  VP=                  4       4       V P6                  '       gg   \        VRR4      p	\        VRR4      p
V	'       g   VP9                  WPVP:                  VR7       V
'       g   VP9                  WPVP:                  VR7       \        V R. 4      pV FD  p\        VRR4      '       g   K  VP                  V! WP                  VP                  4      4       KF  	  VP                  V P?                  4       4       V P6                  '       gM   X	'       d   VP9                  WPVP:                  VR7       X
'       d   VP9                  WPVP:                  VR7       V FD  p\        VRR4      '       d   K  VP                  V! WP                  VP                  4      4       KF  	  V# )rë   NÚskipGridÚnone)ÚparentÚdimÚexcludeÚdrawGridLastFr�   ÚbeforeLines)ÚbothÚtop)r%  Úbottom) r‹   rŠ   rY   rë   ÚsetPositionr¯   r°   r±   ÚjoinAxisÚ	configurerŒ   rÃ   r²   rÕ   r   rw   ÚmakeBackgroundr¡   rŽ   Ú_joinToAxisrì   rí   ÚvisibleAxisrõ   rö   rÂ   r÷   r�   ÚmakeGridÚgetGridDimsÚdrawr  )rM   rû   rü   ÚxAxisCrossesAtr°   r\   ÚxAexÚyAexr  ÚxAdglÚyAdglr�   Úas   &            rC   r0  ÚLinePlot.draw¤  sº  € Ø�_‰_ˆØ�_‰_ˆÜ�4˜ d×+Ò+Ø./Ð/ˆBŒN˜Rœ^Ø
�‰�t—v‘v˜tŸv™v t§{¡{Ô3ß˜RŒ{ß˜RŒ{Ø
�‰�T—Y‘YÔð Ÿ™ !›ˆØŸf™f t§{¡{Õ2Ô2¸ÏÉÔ8OØ—‘‰AàˆAà
�‰�t—v‘v˜q§*¡*Ô-Ø
�‰�T—Y‘YÔØ×ÑÔÜ‹GˆØ	�‰ˆd×!Ñ!Ó#Ô$Ø�<�<ˆ<˜4Ÿ?Ÿ?˜?Ø�N‰NÔØ�|�|ˆ|Ü %£�”Ø—‘�d—m‘mÔ$Ø��ˆÜ#›g�”Ø—‘�d—k‘kÔ"Ø
�‰ÔØ
�‰ÔØ�~‰~×)Ð) 2§5¡5 '×/Ð/¨RˆØ�~‰~×)Ð) 2§5¡5 '×/Ð/¨RˆÜ˜2˜j¨Ó0ˆØ�TŒ>Ø˜>Ô)Ø—‘˜BŸE™E "§*¡*Õ,Ô-ØÐ,Ô,Ø—‘˜BŸE™EÔ"Ü˜2˜j¨Ó0ˆØ�TŒ>Ø˜>Ô)Ø—‘˜BŸE™E "§*¡*Õ,Ô-ØÐ,Ô,Ø—‘˜BŸE™EÔ"Ø�>�>ˆ>Ø�K‰K˜¨"¯.©.ÀˆKÔFØ�K‰K˜¨"¯.©.ÀˆKÔFØ	�‰ˆb�g‰g‹iÔØ	�‰ˆb�g‰g‹iÔØ�~�~ˆ~Ü˜B˜~¨eÓ4ˆEÜ˜B˜~¨eÓ4ˆEß˜"Ÿ+™+ a¸¿¹Èt˜+ÔTß˜"Ÿ+™+ a¸¿¹Èt˜+ÔTÜ˜d =°Ó4ˆÛˆAÜ�q˜ t×,Ô,Ø—‘‘a˜ŸX™X b§h¡hÓ/Ö0ñ ð 	
�‰ˆd�n‰nÓÔØ�~�~ˆ~ß�b—k‘k !°B·N±NÈ4�kÔPß�b—k‘k !°B·N±NÈ4�kÔPÛˆAÜ˜1˜]¨4×0Ô0Ø—‘‘a˜ŸX™X b§h¡hÓ/Ö0ñ ð ˆrB   Tc                óÜ   aaaaa
a€ ^ RI Ho
Ho \        V R. 4       Uu. uF  p\        VRR4      V8w  g   K  VNK  	  ppV
VVVVV3R lp	Win        VP                  V	4       W€n        R# u upi )r‘   )r   ÚLiner�   r.   Nc                 óh  <€ V! S4      pV! S4      pS! 4       pVP                   pVP                  S	! VP                  WFP                  VP                  ,           VS
SR 7      4       VP                   pVP                  S	! W7P                  W7P                  VP                  ,           S
SR 7      4       V# ))r(   r'   )rÊ   rw   rö   r÷   rõ   )rM   ÚxScaleÚyScaler¯   r°   r\   rü   rû   r   r9  r(   r'   rÔ   Úyvs   &&&     €€€€€€rC   Ú
annotationÚ)LinePlot.addCrossHair.<locals>.annotationì  s‡   ø€ Ù�r“
ˆAÙ�r“
ˆAÙ“ˆAØ—‘ˆBØ�E‰E‘$�r—u‘u˜QŸu™u R§Z¡ZÕ/°¸kÐVaÔbÔcØ—‘ˆBØ�E‰E‘$�qŸ™˜q§¡ r§z¡zÕ!1¸kÐVaÔbÔcØˆHrB   )Úreportlab.graphics.shapesr   r9  rY   r$  rÂ   r�   )rM   r.   rÔ   r=  r(   r'   r$  r6  r�   r>  r   r9  s   &&ffff&   @@rC   ÚaddCrossHairÚLinePlot.addCrossHairé  se   ý€ ß9Ü")¨$¨}¸RÔ"@ÓaÑ"@˜QÄGÈAÈfÐUYÓDZÐ\`ÑD`—q�qÑ"@ˆÐa÷	ò 	ð "-ÔØ×Ñ˜:Ô&Ø&Öùò bs
   žA)·A))r¡   rì   rí   rË   rÌ   rÀ   r¼   r�   rŽ   rŒ   r�   rž   rˆ   r‡   r…   r†   r‰   r„   rŠ   r‹   )r3   r4   r5   r6   ry   r7   r   r8   rc   r9   r:   r@   rs   Úpropertyrž   Úsetterr¸   rÕ   rä   rè   r  r0  r   r³   rA  rA   rO   rP   s   @rC   r‚   r‚   T   s2  ø‡ € ññ
 ˜HÙ'¨	Ð8UÐdeÔfÙ% hÐ5cÐrsÔtÙ! $Ð-WÔXÙ& tÐ2mÔnÙ% dÐ1{Ô|á" =Ð7gÔhÙ  Ð5gÔhÙ˜TÐ(>Ô?Ù! $Ð-DÔEÙ! $Ð-DÔEÙ˜DÐ'[Ô\Ù" 4Ð.lÐ{|Ô}Ù! )Ð2TÐcdÔeÙ  Ð1VÐefÔgô
€Hò$%ðN ñ2ó ð2ð ×Ññ=ó ð=ò$òN)òV òD5ò
Nò`CðJ 28·±È!ÐX\÷ 'ò 'rB   r‚   c                   ó¢   a € ] tR tRt o ]! ]]! ]RR7      ]! ]RR7      ]! ]RR7      ]! ]RR7      R7      tRt	Rt
^
t^tR	 tR
 tR tR tRtV tR# )Ú
LinePlot3Diù  zdx/dzr    zdy/dzzdepth of an individual serieszz gap around series)rV   Útheta_xÚtheta_yÚzDepthÚzSpacerî   c                ój  € \         P                  V 4       V P                  pV P                  pV P                  pV P
                  P                  R 8X  d   W,          V^,           V,          ,           pMV^V,          ,           pV P                  V,          V n        V P                  V,          V n
        R# )Úparallel_3dN)r‚   rÕ   r¼   rJ  rI  rŠ   ÚstylerG  Ú_3d_dxrH  Ú_3d_dy)rM   ÚnSeriesrJ  rI  Ú	_3d_depths   &    rC   rÕ   ÚLinePlot3D.calcPositions  s‚   € Ü×Ñ˜tÔ$Ø×#Ñ#ˆØ—‘ˆØ—‘ˆØ�?‰?× Ñ  -Ô/Ø�¨°­	°6Õ'9Õ9‰Ià  6¥Õ)ˆIØ—l‘l 9Õ,ˆŒØ—l‘l 9Õ,ˆŽrB   c                óœ   € V P                   pV P                  P                  R 8X  d#   WP                  V,           ,          V,           pV# TpV# )rL  )rJ  rŠ   rM  rI  )rM   r]   rJ  Úz0s   &&  rC   Ú_calc_z0ÚLinePlot3D._calc_z0  sF   € Ø—‘ˆØ�?‰?× Ñ  -Ô/ØŸ™ FÕ*Õ+¨FÕ2ˆBð ˆ	ð ˆBØˆ	rB   c                óf   € WV P                   ,          ,           W#V P                  ,          ,           3# rG   )rG  rH  )rM   r¯   r°   Úzs   &&&&rC   Ú_zadjustÚLinePlot3D._zadjust  s#   € Ø�4—<‘<•Õ  T§\¡\¥>Õ!1Ð1Ð1rB   c                ód  € \        V R R4      pV'       d   Q R4       hV P                  pV P                  p\        \	        \        V4      4      4      pV P                  '       d   VP                  4        \        V RR4      pV'       d   Q R4       hT P                  pV P                  pV P                  pV P                  p	^ RIHp
 V
! 4       p^ RIHpHp V P"                  P$                  R8w  d’   \        V R^4      p\        V R	R4      '       do   ^ R
IHp \        \)        Wó4      4      pV! VVR7      pRpV F?  w  ppppVV8w  d   Tp^ pM	X^,          pVV,          P+                  VV,           VV34       KA  	  RpMTpMRpTp\        V P,                  4      pV EFF  pVV,          p\        V4      pV P,                  VV,          ,          pVP.                  p\        VRR4      pV P1                  V4      pVV,           p \3        VR4      '       d   VP4                  p!M5\3        V P,                  R4      '       d   V P,                  P4                  p!MRp!V P6                  '       da   V'       dY   VV,          p"V"^ ,          w  p#p$\	        ^\        V"4      4       F*  p%V"V%,          w  p&p'V! VV#V&V$V'VV W‰VRVRRRRR7       T&T'p$p#K,  	  \3        VR4      '       d   VP8                  p(M5\3        V P,                  R4      '       d   V P,                  P8                  p(MRp(V('       d`   V FY  p)VX%,          w  p&p'V! V&V'V4      w  p&p'\;        V(V)^ ,          V)^,          V4      p*V*'       g   KB  VP=                  ^VVV&V'V*34       K[  	  \	        V4       FQ  p%VV%,          w  p&p'V! V&V'V4      w  p&p'V P?                  VV%V&V'4      p+V+'       g   K:  VP=                  ^VVV&V'V+34       KS  	  EKI  	  VPA                  4        \C        4       p,VPE                  4        F  p-V,P=                  V-R,          4       K  	  V,# )rë   Nz$_bubblePlot not supported for 3d yetr¡   zinFill not supported for 3d yet)Ú
_FakeGroup)Ú_make_3d_line_infoÚfind_intersectionsrL  Ú_3d_tilewidthÚ_find_intersections)Úcopy)Úsmallr)   r'   rv   )ÚfillColorShadedÚ	tileWidthr(   r'   r)   Úshadingr+   éÿÿÿÿ)#rY   r‡   rÌ   r¾   rô   r»   r„   ÚreverserI  rY  rG  rH  Ú$reportlab.graphics.charts.linechartsr\  Ú!reportlab.graphics.charts.utils3dr]  r^  rŠ   rM  ra  r¿   Úinsertr‰   r(   rU  rÜ   r'   rž   r+   r   rw   rä   Úsortr   Úvalue).rM   rý   rà   Ú	positionsrÎ   r1   rI  rY  rG  rH  r\  ÚFr]  r^  rd  ra  Ú
fpositionsÚIÚicÚir  r¯   r°   Újcr   r]   r_   rÑ   r	  r^   r
  rT  Úz1r²   ÚfrowÚx0r  rÒ   r  r  r  r  r+   ÚLr\   rL   s.   &                                             rC   r  ÚLinePlot3D.makeLines  s¾  € Ü˜T -°Ó5ˆ
ßÐEÐEÓEˆ~ð ×'Ñ'ˆØ—O‘Oˆ	ä””s˜9“~Ó&Ó'ˆØ× × Ð  !§)¡)¤+Ü˜˜i¨Ó-ˆßÐ<Ð<Ó<ˆzð —‘ˆØ—=‘=ˆØ—,‘,ˆØ—,‘,ˆÝCÙ‹Lˆç\Ø�?‰?× Ñ  -Ô/Ü  _°QÓ7ˆIÜ�tÐ1°$×7Ò7Ý%Ü!¤# dÓ"5Ó6�
Ù& z¸	ÔB�Ø�Û ‘G�A�a˜˜!Ø˜1”uØ˜Ø™à˜A�˜Ø˜q•M×(Ñ(¨¨2­¨q°¨eÖ4ñ  !ð !‘	à&‘
àˆIØ"ˆJô ˜Ÿ™“_ˆ
ÜˆEØ˜EÕ"ˆCÜ�C“ˆAØ—z‘z %¨*Õ"4Õ5ˆHØ×+Ñ+ˆHÜ˜8Ð%6¸Ó=ˆDØ—‘˜uÓ%ˆBØ�f•ˆBä�x ×/Ò/Ø ×,Ñ,‘Ü˜Ÿ™ ]×3Ò3ØŸ
™
×.Ñ.‘à�ð ××ÐßØ% eÕ,�DØ! !�W‘F�B˜Ü!& q¬¨T«Ö!3˜Ø!% e¥™˜˜BÙ*¨A¨r°2°r¸2¸rÀ2Ø 'Ø (¸$È)Ø,0¸dÐTXØ(+õ	-ð
 "$ R˜B˜™Bñ "4ô �x ×*Ò*Ø"Ÿ/™/‘Ü˜Ÿ™ X×.Ò.ØŸ*™*×+Ñ+‘à�çÛ�BØ  �Z‘F�B˜Ù% b¨¨BÓ/‘F�B˜Ü+¨G°B°qµE¸"¸Q½%ÀÓI�Fß‘v˜qŸu™u a¨¨2¨b°°FÐ%;Ö<ñ	 ô ˜qž�Ø˜U�‘��BÙ! " R¨Ó+‘��BØ×(Ñ(¨°°r¸2Ó>�ß‘1�a—e‘e˜Q˜r " R¨¨1Ð-Ö.ô	 "ñ[ ðf 	
�‰ŒÜ‹GˆØ—‘–ˆA˜AŸE™E ! B¥%žL‘ØˆrB   )rN  rO  N)r3   r4   r5   r6   r7   r‚   r8   r9   r@   rG  rH  rI  rJ  rÕ   rU  rY  r  rA   rO   rP   s   @rC   rF  rF  ù  sl   ø‡ € Ù˜HÙ˜x¨gÔ6Ù˜x¨gÔ6Ù˜hÐ-LÔMÙ˜hÐ-BÔCô	
€Hð €GØ€GØ€FØ€Fò
-òò2÷jð jrB   rF  c                   ó*   a € ] tR tRt o RtR tRtV tR# )ÚSimpleTimeSeriesPlotiÉ  zkA customized version of LinePlot.
It uses NormalDateXValueAxis() and AdjYValueAxis() for the X and Y axes.
c                ó‚   € \         P                  V 4       \        4       V n        \	        4       V n        \        V n        R # rG   )r‚   rs   r   rŠ   r   r‹   Ú_monthlyIndexDatarŒ   r¢   s   &rC   rs   ÚSimpleTimeSeriesPlot.__init__Í  s*   € Ü×Ñ˜$ÔÜ.Ó0ˆŒÜ$›,ˆŒÜ%ˆŽ	rB   ©rŒ   rŠ   r‹   N)r3   r4   r5   r6   ry   rs   rA   rO   rP   s   @rC   rz  rz  É  s   ø‡ € ñ÷&ð &rB   rz  c            	       óp   a € ] tR tRt o Rt]! ]]! RRR7      ]! ]RR7      R7      t	R t
RR	 ltR
 tRtV tR# )ÚGridLinePlotiÓ  a§  A customized version of SimpleTimeSeriesSPlot.
It uses NormalDateXValueAxis() and AdjYValueAxis() for the X and Y axes.
The chart has a default grid background with thin horizontal lines
aligned with the tickmarks (and labels). You can change the back-
ground to be any Grid or ShadedRect, or scale the whole chart.
If you do provide a background, you can specify the colours of the
stripes with 'background.stripeColors'.
Nz3Background for chart area (now Grid or ShadedRect).r    z&Scalefactor to apply to whole drawing.)rV   Ú
backgroundÚscaleFactorc                ó&  € ^ RI Hp \        P                  V 4       RV n        \        4       V n        RV P                  n        ^ V P                  n        ^V P                  n	        RV P                  n
        VP                  V P                  n        R# )r‘   r   NÚ
horizontalrî   )Úreportlab.libr   rz  rs   r‚  r   r�  ÚorientationÚuseRectsÚuseLinesr'   r³   r(   )rM   r   s   & rC   rs   ÚGridLinePlot.__init__â  sd   € Ý(Ü×%Ñ% dÔ+ØˆÔÜ›&ˆŒØ&2ˆ�‰Ô#Ø#$ˆ�‰Ô Ø#$ˆ�‰Ô Ø&)ˆ�‰Ô#Ø&,§l¡lˆ�‰Ö#rB   c           	     óÞ  € ^ RI Hp V'       g   \        R^È4      p\        4       p^2Vn        ^2Vn        ^}Vn        RVn        \        Vn	        ^Vn
        VP                  Vn        VP                  ! ^d^A^ ^R^dR7      pWCP                  ^ ,          n        ^VP                  ^ ,          n        RVP                  ^ ,          n        VP                  ! ^ ^O^[^ R^dR7      pWSP                  ^,          n        ^VP                  ^,          n        ^^.VP                  ^,          n        ^
VP"                  P$                  n        RVP"                  P$                  n        R	VP"                  P$                  n        RVP"                  P$                  n        ^ VP"                  P$                  n        RVP"                  P$                  n        R
VP"                  n        RVP4                  n        ^VP4                  n        ^
VP4                  P$                  n        \;        4       Vn        VP>                  VP@                  .VP<                  n!        RVP<                  n"        VPG                  VR4       V# )r‘   r   r©   rª   zPANTONE 288 CV)ÚspotNameÚdensityNzPANTONE Wm Red CVÚstartr  z	{mm}/{yy}z%5d%% rW   ÚplotiÓÿÿÿiøÿÿÿ)$r…  r   r   r€  r¯   r°   r±   r²   r|  rŒ   rž   r³   r(   Ú
PCMYKColorr‰   r'   r)   rŠ   ÚlabelsÚfontSizeÚ
textAnchorÚ	boxAnchorÚangleÚdxÚdyÚxLabelFormatr‹   ÚlabelTextFormatÚtickLeftr   r�  ÚpinkÚ	lightblueÚstripeColorsr†  rw   )rM   r·   r   r[   Úc0Úc1s   &&    rC   r¸   ÚGridLinePlot.demoí  sÌ  € Ý(ßÜ˜c 3Ó'ˆGÜ‹^ˆØˆŒØˆŒØˆŒ	ØˆŒÜ#ˆŒØˆŒØŸ™ˆŒØ×Ò˜s 2 a¨Ð5EÈsÔSˆØ"$�‰��ÔØ"#ˆ�‰��ÔØ&*ˆ�‰��Ô#Ø×Ò˜q  B qÐ3FÐPSÔTˆØ"$�‰��ÔØ"#ˆ�‰��ÔØ'(¨ eˆ�‰��Ô#Ø(*ˆ�‰×ÑÔ%Ø*1ˆ�‰×ÑÔ'Ø),ˆ�‰×ÑÔ&Ø%(ˆ�‰×ÑÔ"Ø"#ˆ�‰×ÑÔØ"$ˆ�‰×ÑÔØ%0ˆ�‰Ô"Ø(0ˆ�‰Ô%Ø!"ˆ�‰ÔØ(*ˆ�‰×ÑÔ%Ü›ˆŒØ&,§k¡k°6×3CÑ3CÐ%Dˆ�‰Ô"Ø$.ˆ�‰Ô!Ø�‰�B�vÔØˆrB   c                óø  € V P                   V P                  r!V'       d   W!n        V'       d   Wn        VP                  V P                  V P
                  V P                  4       VP                  V P                  4       VP                  ^ 4      pW0P
                  V P                  ,           8”  g   W0P
                  8  d   V P
                  pMTpVP                  V P                  W@P                  4       VP                  V P                  4       V P                  p\        V\        4      '       Edk   VP                  R8X  d¥   VP                  '       d“   \!        \#        VP                  VP$                  .VP                  ,           4      4      p. p\'        \)        V4      ^,
          4       F.  pVP+                  Wh^,           ,          Wh,          ,
          4       K0  	  Wun        EMÂVP                  R8X  d£   VP                  '       d‘   \!        \#        VP                  VP$                  .VP                  ,           4      4      p	. p\'        \)        V	4      ^,
          4       F.  pVP+                  W˜^,           ,          W˜,          ,
          4       K0  	  Wun        EM\        V\.        4      '       Ed÷   V P                  VP0                  n        V P
                  VP0                  n        V P                  VP0                  n
        V P                  VP0                  n        V P                  VP2                  n        V P
                  VP2                  n        V P                  VP2                  n
        V P                  VP2                  n        VP0                  P                  R8X  d®   VP                  '       dœ   \!        \#        VP                  VP$                  .VP                  ,           4      4      p. p\'        \)        V4      ^,
          4       F.  pVP+                  Wh^,           ,          Wh,          ,
          4       K0  	  WuP0                  n        MÇVP0                  P                  R8X  d­   VP                  '       d›   \!        \#        VP                  VP$                  .VP                  ,           4      4      p	. p\'        \)        V	4      ^,
          4       F.  pVP+                  W˜^,           ,          W˜,          ,
          4       K0  	  WuP0                  n        VP2                  P                  R8X  d®   VP                  '       dœ   \!        \#        VP                  VP$                  .VP                  ,           4      4      p. p\'        \)        V4      ^,
          4       F.  pVP+                  Wh^,           ,          Wh,          ,
          4       K0  	  WuP2                  n        MÇVP2                  P                  R8X  d­   VP                  '       d›   \!        \#        VP                  VP$                  .VP                  ,           4      4      p	. p\'        \)        V	4      ^,
          4       F.  pVP+                  W˜^,           ,          W˜,          ,
          4       K0  	  WuP2                  n        V P5                  4        V P                  V P                  V P6                  rËp
V'       d   V^8w  d   V^ ^ V^ ^ 3Xn        M
\;        4       pVP=                  V P?                  4       4       VP=                  V P                   4       VP=                  V P                  4       VP=                  V PA                  4       4       V# )r‘   rW   r„  )!rŠ   r‹   r)  r(  r¯   r°   r±   r*  rŒ   rÃ   r²   r�  rÅ   r   r†  Ú_tickValuesr¾   r¿   Ú	_valueMinrô   r»   rÂ   Ú
deltaStepsr   Úgrid0Úgrid1rÕ   r‚  Ú	transformr   rw   r+  r  )rM   ÚxvaÚyvar1  r°   ÚbackÚxposÚstepsrr  Úyposr²   r±   r‚  r\   s   &             rC   r0  ÚGridLinePlot.draw  s¾  € Ø—?‘? D§O¡OˆSß˜s”ß˜s”à�‰˜Ÿ™ §¡¨¯©Ô4Ø�‰�d—i‘iÔ ð Ÿ™ 1›ˆØŸf™f t§{¡{Õ2Ô2¸ÏÉÔ8OØ—‘‰AàˆAà�‰˜Ÿ™ §:¡:Ô.Ø�‰�d—i‘iÔ à�‰ˆÜ�dœD×!Ó!Ø×Ñ :Ô-°#·/·/°/ÜœC §	¡	¨C¯M©M¨?¸S¿_¹_Õ+LÓMÓN�Ø�Üœs 4›y¨�{Ö+�AØ—L‘L ¨¥c¥¨T­WÕ!4Ö5ñ ,à"'–Ø×!Ñ! \Ô1°c·o·o°oÜœC §	¡	¨C¯M©M¨?¸S¿_¹_Õ+LÓMÓN�Ø�Üœs 4›y¨�{Ö+�AØ—L‘L ¨¥c¥¨T­WÕ!4Ö5ñ ,à"'”ùÜ˜œj×)Ó)àŸ6™6ˆD�J‰JŒLØŸ6™6ˆD�J‰JŒLØ#Ÿz™zˆD�J‰JÔØ $§¡ˆD�J‰JÔØŸ6™6ˆD�J‰JŒLØŸ6™6ˆD�J‰JŒLØ#Ÿz™zˆD�J‰JÔØ $§¡ˆD�J‰JÔð �z‰z×%Ñ%¨Ô3¸¿¿¸ÜœC §	¡	¨C¯M©M¨?¸S¿_¹_Õ+LÓMÓN�Ø�Üœs 4›y¨�{Ö+�AØ—L‘L ¨¥c¥¨T­WÕ!4Ö5ñ ,à(-—
‘
Õ%Ø—‘×'Ñ'¨<Ô7¸C¿O¿O¸OÜœC §	¡	¨C¯M©M¨?¸S¿_¹_Õ+LÓMÓN�Ø�Üœs 4›y¨�{Ö+�AØ—L‘L ¨¥c¥¨T­WÕ!4Ö5ñ ,à(-—
‘
Ô%Ø�z‰z×%Ñ%¨Ô3¸¿¿¸ÜœC §	¡	¨C¯M©M¨?¸S¿_¹_Õ+LÓMÓN�Ø�Üœs 4›y¨�{Ö+�AØ—L‘L ¨¥c¥¨T­WÕ!4Ö5ñ ,à(-—
‘
Õ%Ø—‘×'Ñ'¨<Ô7¸C¿O¿O¸OÜœC §	¡	¨C¯M©M¨?¸S¿_¹_Õ+LÓMÓN�Ø�Üœs 4›y¨�{Ö+�AØ—L‘L ¨¥c¥¨T­WÕ!4Ö5ñ ,à(-—
‘
Ô%à×ÑÔà%)§Z¡Z°·±¸d×>NÑ>N�{ˆß˜;¨œ>à&¨¨1¨k¸!¸AÐ>ˆA�Kä“ˆAà	�‰ˆd×!Ñ!Ó#Ô$Ø	�‰ˆd�o‰oÔØ	�‰ˆd�o‰oÔØ	�‰ˆd�n‰nÓÔàˆrB   )r�  r‚  rG   )r3   r4   r5   r6   ry   r7   r‚   r8   r?   r@   rs   r¸   r0  rA   rO   rP   s   @rC   r€  r€  Ó  sE   ø‡ € ññ ˜HÙ! $Ð-bÔcÙ" >Ð8`Ôaô
€Hò
	3ô"÷HTð TrB   r€  c                   ó0   a € ] tR tRt o RtR tR tRtV tR# )ÚAreaLinePlotig  z@we're given data in the form [(X1,Y11,..Y1M)....(Xn,Yn1,...YnM)]c                ó^   € \         P                  V 4       ^V n        ^V n        . ROV n        R# )r“   N))r“   é   éd   é   )r”   é   é2   é   )r–   r¶  éF   é(   )r‚   rs   r¡   r„   rŒ   r¢   s   &rC   rs   ÚAreaLinePlot.__init__i  s&   € Ü×Ñ˜$ÔØˆŒØ !ˆÔÚ=ˆŽ	rB   c                óÒ  €  V P                   p\        V4      p\        V^ ,          4      pV^ .,          p. V n         \        ^V4       Fv  p. p\        V4       FG  pWG,          W,          V,          ,           WG&   VP                  W,          ^ ,          WG,          34       KI  	  V P                   P                  V4       Kx  	  \        P                  V 4      Wn         #   XT n         i ; i)r‘   )rŒ   r»   rô   rÂ   r‚   r0  )rM   ÚodatarÑ   ÚmÚSrr  ÚDr  s   &       rC   r0  ÚAreaLinePlot.drawo  s·   € ð	Ø—I‘IˆEÜ�E“
ˆAÜ�E˜!•H“ˆAØ�1�#•ˆAØˆDŒIÜ˜1˜Q–Z�Ø�Ü˜qž�AØ�4 %¥(¨1¥+Õ-�A‘DØ—H‘H˜e�h q�k¨!­$Ð/Ö0ñ "ð —	‘	× Ñ  Ö#ñ  ô —=‘= Ó&à�Iø˜ˆD�Iús   ‚CC Ã	C&)r¡   rŒ   r„   N)	r3   r4   r5   r6   ry   rs   r0  rA   rO   rP   s   @rC   r¯  r¯  g  s   ø‡ € ÙJò>÷ð rB   r¯  c                   ó&   a € ] tR tRt o R tRtV tR# )ÚSplitLinePloti€  c                ó*  € \         P                  V 4       \        4       V n        \	        4       V n        . RNRNRNRNR	NR
NRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR NR!NR"NR#NR$NR%NR&NR'NR(NR)NR*NR+NR,NR-NR.NR/NR0NR1NR2NR3NR4NR5NR6NR7NR8NR9NR:NR;NR<NR=NR>NR?NR@NRANRBNRCNRDNRENRFNRGNRHNRINRJNRKNRLNRMNRNNRONRPNRQNRRNRSNRTNRUNRVNRWNRXNRYNRZNR[NR\NR]NR^NR_NR`NRaNRbNRcNRdNReNRfNRgNRhNRiNRjNRkNRlNRmNRnNRoNRpNRqNRrNRsNRtNRuNRvNRwNRxNRyNRzNR{NR|NR}NR~NRNR€NR�NR‚NRƒNR„NR…NR†NR‡NRˆNR‰NRŠNR‹NRŒNR�NRŽNR�NR�NR‘NR’NR“NR”NR•NR–NR—NR˜NR™NRšNR›NRœNR�NRžNRŸNR NR¡NR¢NR£NR¤NR¥NR¦NR§NR¨NR©NRªNR«NR¬NR­NR®NR¯NR°NR±NR²NR³NR´NRµNR¶NR·NR¸NR¹NRºNR»NR¼NR½NR¾NR¿NRÀNRÁNRÂNRÃNRÄNRÅNRÆNRÇNRÈNRÉNRÊNRËNRÌNV n        RV P
                  n        ^ V P
                  n        ^ V P
                  n	        ^ V P
                  n
        \        P                  ! R4      V P                  ^ ,          n        \        P                  ! R4      V P                  ^,          n        \        P                  ! R4      V P                  ^,          n        R# )Íé‰¤1NiÌ3  iÿÃ™ i3 Ì )rÃ  çffffffî?çš™™™™™©?ç        )ií¤1rÄ  rÅ  rÆ  )iQ¥1rÄ  rÅ  rÆ  )iµ¥1rÄ  rÅ  rÆ  )i¦1rÄ  rÅ  rÆ  )i}¦1rÄ  rÅ  rÆ  )iá¦1rÄ  rÅ  rÆ  )i¥É1rÄ  rÅ  rÆ  )i	Ê1rÄ  rÅ  rÆ  )imÊ1rÄ  rÅ  rÆ  )iÑÊ1rÄ  rÅ  rÆ  )i5Ë1rÄ  rÅ  rÆ  )i™Ë1rÄ  rÅ  rÆ  )iýË1rÄ  rÅ  rÆ  )iaÌ1rÄ  rÅ  rÆ  )iÅÌ1rÄ  rÅ  rÆ  )i)Í1rÄ  rÅ  rÆ  )i�Í1rÄ  rÅ  rÆ  )iñÍ1rÄ  rÅ  rÆ  )iµð1rÄ  rÅ  rÆ  )iñ1rÄ  rÅ  rÆ  )i}ñ1rÄ  rÅ  rÆ  )iáñ1rÄ  rÅ  rÆ  )iEò1rÄ  rÅ  rÆ  )i©ò1rÄ  rÅ  rÆ  )ió1rÄ  rÅ  rÆ  )iqó1rÄ  rÅ  rÆ  )iÕó1rÄ  rÅ  rÆ  )i9ô1rÄ  rÅ  rÆ  )i�ô1rÄ  rÅ  rÆ  )iõ1rÄ  rÅ  rÆ  )iÅ2rÄ  rÅ  rÆ  )i)2rÄ  rÅ  rÆ  )i�2rÄ  rÅ  rÆ  )iñ2rÄ  rÅ  rÆ  )iU2rÄ  rÅ  rÆ  )i¹2rÄ  rÅ  rÆ  )i2rÄ  rÅ  rÆ  )i�2rÄ  rÅ  rÆ  )iå2rÄ  rÅ  rÆ  )iI2rÄ  rÅ  rÆ  )i­2rÄ  rÅ  rÆ  )i2rÄ  rÅ  rÆ  )iÕ>2rÄ  rÅ  rÆ  )i9?2rÄ  rÅ  rÆ  )i�?2rÄ  rÅ  rÆ  )i@2rÄ  rÅ  rÆ  )ie@2rÄ  rÅ  rÆ  )iÉ@2rÄ  rÅ  rÆ  )i-A2rÄ  rÅ  rÆ  )i‘A2rÄ  rÅ  rÆ  )iõA2rÄ  rÅ  rÆ  )iYB2rÄ  rÅ  rÆ  )i½B2rÄ  rÅ  rÆ  )i!C2rÄ  rÅ  rÆ  )iåe2rÄ  rÅ  rÆ  )iIf2rÄ  rÅ  rÆ  )i­f2rÄ  rÅ  rÆ  )ig2rÄ  rÅ  rÆ  )iug2rÄ  rÅ  rÆ  )iÙg2rÄ  rÅ  rÆ  )i=h2rÄ  rÅ  rÆ  )i¡h2rÄ  rÅ  rÆ  )ii2rÄ  rÅ  rÆ  )iii2rÄ  rÅ  rÆ  )iÍi2rÄ  rÅ  rÆ  )i1j2rÄ  rÅ  rÆ  )iõŒ2rÄ  rÅ  rÆ  )iY�2ç…ëQ¸í?ç
×£p=
·?rÆ  )i½�2rÇ  rÈ  rÆ  )i!Ž2rÇ  rÈ  rÆ  )i…Ž2rÇ  rÈ  rÆ  )iéŽ2rÇ  rÈ  rÆ  )iM�2rÇ  rÈ  rÆ  )i±�2rÇ  rÈ  rÆ  )i�2rÇ  rÈ  rÆ  )iy�2rÇ  rÈ  rÆ  )iÝ�2rÇ  rÈ  rÆ  )iA‘2rÇ  rÈ  rÆ  )i´2rÇ  rÈ  rÆ  )ii´2çìQ¸…ëé?çR¸…ëQÈ?rÆ  )iÍ´2rÉ  rÊ  rÆ  )i1µ2rÉ  rÊ  rÆ  )i•µ2rÉ  rÊ  rÆ  )iùµ2rÉ  rÊ  rÆ  )i]¶2rÉ  rÊ  rÆ  )iÁ¶2rÉ  rÊ  rÆ  )i%·2rÉ  rÊ  rÆ  )i‰·2rÉ  rÊ  rÆ  )ií·2rÉ  rÊ  rÆ  )iQ¸2rÉ  rÊ  rÆ  )iÛ2rÉ  rÊ  rÆ  )iyÛ2ç
×£p=
ç?çìQ¸…ëÑ?rÆ  )iÝÛ2rË  rÌ  rÆ  )iAÜ2rË  rÌ  rÆ  )i¥Ü2rË  rÌ  rÆ  )i	Ý2rË  rÌ  rÆ  )imÝ2rË  rÌ  rÆ  )iÑÝ2rË  rÌ  rÆ  )i5Þ2rË  rÌ  rÆ  )i™Þ2rË  rÌ  rÆ  )iýÞ2rË  rÌ  rÆ  )iaß2rË  rÌ  rÆ  )i%3rË  rÌ  rÆ  )i‰3çö(\�Âõà?ç®GázÞ?rÆ  )ií3rÍ  rÎ  rÆ  )iQ3rÍ  rÎ  rÆ  )iµ3rÍ  rÎ  rÆ  )i3rÍ  rÎ  rÆ  )i}3rÍ  rÎ  rÆ  )iá3rÍ  rÎ  rÆ  )iE3rÍ  rÎ  rÆ  )i©3rÍ  rÎ  rÆ  )i3rÍ  rÎ  rÆ  )iq3rÍ  rÎ  rÆ  )i5)3rÍ  rÎ  rÆ  )i™)3ç)\�Âõ(Ü?çìQ¸…ëá?rÆ  )iý)3rÏ  rÐ  rÆ  )ia*3rÏ  rÐ  rÆ  )iÅ*3rÏ  rÐ  rÆ  )i)+3rÏ  rÐ  rÆ  )i�+3rÏ  rÐ  rÆ  )iñ+3rÏ  rÐ  rÆ  )iU,3rÏ  rÐ  rÆ  )i¹,3rÏ  rÐ  rÆ  )i-3rÏ  rÐ  rÆ  )i�-3rÏ  rÐ  rÆ  )iEP3rÏ  rÐ  rÆ  )i©P3ç
×£p=
×?rî   çìQ¸…ëÁ?)iQ3rÑ  rî   rÒ  )iqQ3rÑ  rî   rÒ  )iÕQ3rÑ  rî   rÒ  )i9R3rÑ  rî   rÒ  )i�R3rÑ  rî   rÒ  )iS3rÑ  rî   rÒ  )ieS3rÑ  rî   rÒ  )iÉS3rÑ  rî   rÒ  )i-T3rÑ  rî   rÒ  )i‘T3rÑ  rî   rÒ  )iUw3rÑ  rî   rÒ  )i¹w3ç333333Ó?ç=
×£p=Ú?ç�Âõ(\�Ò?)ix3rÓ  rÔ  rÕ  )i�x3rÓ  rÔ  rÕ  )iåx3rÓ  rÔ  rÕ  )iIy3rÓ  rÔ  rÕ  )i­y3rÓ  rÔ  rÕ  )iz3rÓ  rÔ  rÕ  )iuz3rÓ  rÔ  rÕ  )iÙz3rÓ  rÔ  rÕ  )i={3rÓ  rÔ  rÕ  )i¡{3rÓ  rÔ  rÕ  )iež3rÓ  rÔ  rÕ  )iÉž3ç¤p=
×£Ð?rÑ  çR¸…ëQØ?)i-Ÿ3rÖ  rÑ  r×  )i‘Ÿ3rÖ  rÑ  r×  )iõŸ3rÖ  rÑ  r×  )iY 3rÖ  rÑ  r×  )i½ 3rÖ  rÑ  r×  )i!¡3rÖ  rÑ  r×  )i…¡3rÖ  rÑ  r×  )ié¡3rÖ  rÑ  r×  )iM¢3rÖ  rÑ  r×  )i±¢3rÖ  rÑ  r×  )iuÅ3rÖ  rÑ  r×  )iÙÅ3çš™™™™™É?rÓ  rî   )i=Æ3rØ  rÓ  rî   )i¡Æ3rØ  rÓ  rî   )iÇ3rØ  rÓ  rî   )iiÇ3rØ  rÓ  rî   )iÍÇ3rØ  rÓ  rî   )i1È3rØ  rÓ  rî   )i•È3rØ  rÓ  rî   )iùÈ3rØ  rÓ  rî   )i]É3rØ  rÓ  rî   )iÁÉ3rØ  rÓ  rî   )i…ì3rØ  rÓ  rî   )iéì3ç¤p=
×£À?ç®Gáz®×?rî   )iMí3rÙ  rÚ  rî   )i±í3rÙ  rÚ  rî   )iî3rÙ  rÚ  rî   )iyî3rÙ  rÚ  rî   )iÝî3rÙ  rÚ  rî   )iAï3rÙ  rÚ  rî   )i¥ï3rÙ  rÚ  rî   )i	ð3rÙ  rÚ  rî   )imð3rÙ  rÚ  rî   )iÑð3rÙ  rÚ  rî   )i•4rÙ  rÚ  rî   )iù4rv   çš™™™™™Ù?rî   )i]4rv   rÛ  rî   )iÁ4rv   rÛ  rî   )i%4rv   rÛ  rî   )i‰4rv   rÛ  rî   )ií4rv   rÛ  rî   )iQ4rv   rÛ  rî   )iµ4rv   rÛ  rî   )i4rv   rÛ  rî   )i}4rv   rÛ  rî   )iá4rv   rÛ  rî   )i¥:4rv   rÛ  rî   )r¯  rs   r   rŠ   r   r‹   rŒ   ÚrequiredRangeÚleftAxisPercentÚleftAxisOrigShiftMinÚleftAxisOrigShiftIPCr   ÚtoColorr‰   r(   r¢   s   &rC   rs   ÚSplitLinePlot.__init__�  sÔ  € Ü×Ñ˜dÔ#Ü.Ó0ˆŒÜ'›/ˆŒð xMÐ+ð  xMÐ,Dð  xMÐE]ð  xMÐ^vð  xMð  xPð  xMð  Qið  xMð  jBð  xMð  C[ð  xMð  \tð  xMð  uMð  xMð  Nfð  xMð  gð  xMð  @Xð  xMð  Yqð  xMð  rJð  xMð  Kcð  xMð  d|ð  xMð  }Uð  xMð  Vnð  xMð  oGð  xMð  H`ð  xMð  ayð  xMð  zR	ð  xMð  S	k	ð  xMð  l	D
ð  xMð  E
]
ð  xMð  ^
v
ð  xMð  w
Oð  xMð  Phð  xMð  iAð  xMð  BZð  xMð  [sð  xMð  tLð  xMð  Með  xMð  f~ð  xMð  Wð  xMð  Xpð  xMð  qIð  xMð  Jbð  xMð  c{ð  xMð  |Tð  xMð  Umð  xMð  nFð  xMð  G_ð  xMð  `xð  xMð  yQð  xMð  Rjð  xMð  kCð  xMð  D\ð  xMð  ]uð  xMð  vNð  xMð  Ogð  xMð  h@ð  xMð  AYð  xMð  Zrð  xMð  sKð  xMð  Ldð  xMð  e}ð  xMð  ~Vð  xMð  Woð  xMð  pHð  xMð  Iað  xMð  bzð  xMð  {Sð  xMð  Tlð  xMð  mEð  xMð  F^ð  xMð  _wð  xMð  xPð  xMð  Qið  xMð  jBð  xMð  C[ð  xMð  \tð  xMð  uMð  xMð  Nfð  xMð  gð  xMð  @Xð  xMð  Yqð  xMð  rJð  xMð  Kcð  xMð  d|ð  xMð  }U ð  xMð  V n ð  xMð  o G!ð  xMð  H!`!ð  xMð  a!y!ð  xMð  z!R"ð  xMð  S"k"ð  xMð  l"D#ð  xMð  E#]#ð  xMð  ^#v#ð  xMð  w#O$ð  xMð  P$h$ð  xMð  i$A%ð  xMð  B%Z%ð  xMð  [%s%ð  xMð  t%L&ð  xMð  M&e&ð  xMð  f&~&ð  xMð  &W'ð  xMð  X'p'ð  xMð  q'I(ð  xMð  J(b(ð  xMð  c({(ð  xMð  |(T)ð  xMð  U)m)ð  xMð  n)F*ð  xMð  G*_*ð  xMð  `*x*ð  xMð  y*Q+ð  xMð  R+j+ð  xMð  k+C,ð  xMð  D,\,ð  xMð  ],u,ð  xMð  v,N-ð  xMð  O-g-ð  xMð  h-@.ð  xMð  A.Y.ð  xMð  Z.r.ð  xMð  s.K/ð  xMð  L/d/ð  xMð  e/}/ð  xMð  ~/V0ð  xMð  W0o0ð  xMð  p0H1ð  xMð  I1a1ð  xMð  b1z1ð  xMð  {1S2ð  xMð  T2l2ð  xMð  m2E3ð  xMð  F3^3ð  xMð  _3w3ð  xMð  x3P4ð  xMð  Q4i4ð  xMð  j4B5ð  xMð  C5[5ð  xMð  \5t5ð  xMð  u5M6ð  xMð  N6f6ð  xMð  g66ð  xMð  @7X7ð  xMð  Y7q7ð  xMð  r7J8ð  xMð  K8c8ð  xMð  d8|8ð  xMð  }8U9ð  xMð  V9n9ð  xMð  o9G:ð  xMð  H:`:ð  xMð  a:y:ð  xMð  z:R;ð  xMð  S;k;ð  xMð  l;E<ð  xMð  F<_<ð  xMð  `<y<ð  xMð  z<S=ð  xMð  T=m=ð  xMð  n=G>ð  xMð  H>a>ð  xMð  b>{>ð  xMð  |>U?ð  xMð  V?o?ð  xMð  p?I@ð  xMð  J@c@ð  xMð  d@z@ð  xMð  {@QAð  xMð  RAhAð  xMð  iAAð  xMð  @BVBð  xMð  WBmBð  xMð  nBDCð  xMð  EC[Cð  xMð  \CrCð  xMð  sCIDð  xMð  JD`Dð  xMð  aDwDð  xMð  xDPEð  xMð  QEiEð  xMð  jEBFð  xMð  CF[Fð  xMð  \FtFð  xMð  uFMGð  xMð  NGfGð  xMð  gGGð  xMð  @HXHð  xMð  YHqHð  xMð  rHJIð  xMð  KIcIð  xMð  dIzIð  xMð  {IQJð  xMð  RJhJð  xMð  iJJð  xMð  @KVKð  xMð  WKmKð  xMð  nKDLð  xMð  EL[Lð  xMð  \LrLð  xMð  sLIMð  xMð  JM`Mð  xMð  aMwMð  xMˆŒ	Ø(,ˆ�‰Ô%Ø*+ˆ�‰Ô'Ø/0ˆ�‰Ô,Ø/0ˆ�‰Ô,Ü$*§N¢N°8Ó$<ˆ�
‰
�1�Ô!Ü$*§N¢N°8Ó$<ˆ�
‰
�1�Ô!Ü$*§N¢N°8Ó$<ˆ�
‰
�1�Ö!rB   r~  N)r3   r4   r5   r6   rs   rA   rO   rP   s   @rC   rÁ  rÁ  €  s   ø‡ € ÷=ð =rB   rÁ  c           	     óô   € \        V \        \        34      '       g   V 3p V  Uu. uF  q3'       g   K  VNK  	  p pT ;'       d0    \        \        \	        \
        W3R lV 4      4      4      ;'       g    ^ # u upi )z0return max stringWidth for the list of strings Tc                 ó   € V! WV4      # rG   r2   )ÚtÚsWÚfNÚfSs   &&&&rC   Ú<lambda>Ú_maxWidth.<locals>.<lambda>’  s   € ÑPRÐSTÐXZÔP[rB   )rÅ   Útupler¾   r½   r¿   r   )ÚTÚfontNamer‘  Ú_fs   &&& rC   Ú	_maxWidthrî  Ž  sd   € ä�aœœt˜×%Ò%¨A¨4 qÙÓ‘a�›2�ˆ‘a€AÐØ×`Ð`””Tœ#¬+¸Ó[Ð\]Ó^Ó_Ó`×eÐeÐdeÐeùò 	s
   ¤	A5²A5c                   ó´  a € ] tR tRt o Rt]! R,/ R]bR]! ]RR7      bR]! ]RR7      bR	]! ]	R
R7      bR]! ]
RR7      bR]! ]R^R7      bR]! ]RR7      bR]! ]RR7      bR]! ]RR7      bR]! ]RR7      bR]! ]RR7      bR]! ]
RR7      bR]! ]
RR7      bR]! ]RR7      bR ]! ]R!R7      bR"]! ]R#R7      bR$]! ]R%R7      b tR& tR' tR-R) ltR* tR+tV tR(# ).ÚScatterPloti”  zA scatter plot widgetrV   r²   z!Width of the area inside the axesr    r±   z"Height of the area inside the axesÚouterBorderOnz/Is there an outer border (continuation of axes)ÚouterBorderColorzColor of outer border (if any)ÚlabelOffsetz.Space between label and Axis (or other labels)r"   ÚaxisTickLengthszLenth of the ticks on both axesÚaxisStrokeWidthzStroke width for both axesÚxLabelzLabel for the whole X-AxisÚyLabelzLabel for the whole Y-AxisrŒ   z#Data points - a list of x/y tuples.r(   z#Color used for border of plot area.r*   rƒ   ÚleftPaddingzPadding on left of drawingÚrightPaddingzPadding on right of drawingÚ
topPaddingzPadding at top of drawingÚbottomPaddingzPadding at bottom of drawingc                ó˜  € \         P                  V 4       ^ŽV n        ^MV n        ^V n        \
        P                  V n        RV n        ^p^pRpRV P                  n
        RV P                  n        RV P                  n        RV P                  n        RV n        ^V P                  P                   n        RV n        ^V P                  P                   n        . ROV n        ^ V n        ^V n        ^
V n        ^V n        ^V n        V P*                  V,           V^,          ,           V n        V P2                  \5        \7        V P                  P                  4      V P                  P                   P8                  V P                  P                   P"                  4      ,           V n        V P0                  V,           V,           V P                  P                   P"                  ,           V n        V) V P                  P                   n        W P                  n        W0P                  n         RV P                  n!        V) V P                  P                   n"        W P                  n#        W0P                  n         RV P                  n!        RV n$        ^V PJ                  n        RV PJ                  n&        RV PJ                  n"        ^ V n'        \Q        R	^R
7      V PR                  n*        \Q        R^R
7      V PR                  ^,          n*        \Q        R^R
7      V PR                  ^,          n*        \
        PV                  V PR                  ^,          n,        R# )éŽ   Nrî   z%szX LablezY Labler%  z%.2fÚer¬   )rú   r­   ÚFilledSquare)))g¸…ëQ¸ž?g=
×£p]O@)g‹lçû©ñ²?gX9´Èv.K@)gÛù~j¼tó?gX9´Èö1@))gÃõ(\�Âõ?gË¡E¶ó='@)gþÔxé&1ö?gÅ °rhI@)g+‡Ùö?g¢E¶óý<Q@))g´Èv¾Ÿ÷?gF¶óýÔ¸U@)gªñÒMbü?g
×£p=ÊA@)g¨ÆK7‰Aü?gfffffB@éþÿÿÿ)-r‚   rs   r²   r±   rñ  r   r³   rò  r�  r‹   r´   rµ   r¶   r˜  rö  rŠ   r�  r‘  r÷  rŒ   rž   rø  rù  rú  rû  r¯   rî  rÛ   rì  r°   r–  ÚtickDownr'   Ú
rangeRoundr•  r™  r‡   r†   r“  r…   r   r‰   r+   Úgreenr(   )rM   Ú_labelOffsetÚ_axisTickLengthsÚ_axisStrokeWidths   &   rC   rs   ÚScatterPlot.__init__ª  si  € Ü×Ñ˜$ÔØˆŒ
ØˆŒØˆÔÜ &§¡ˆÔØˆŒàˆØÐØÐà#'ˆ�‰Ô Ø#'ˆ�‰Ô Ø$(ˆ�‰Ô!Ø+/ˆ�‰Ô'àˆŒØ*+ˆ�‰×ÑÔ'àˆŒØ*+ˆ�‰×ÑÔ'ò
&ˆŒ	ð ˆÔàˆÔØˆÔØˆŒØˆÔà×!Ñ!Ð"2Õ2°LÀµNÕCˆŒØ�v‰v”i¤ D§O¡O×$<Ñ$<Ó =¸t¿¹×?UÑ?U×?^Ñ?^Ð`d×`oÑ`o×`vÑ`v×`Ñ`ó  Aõ  AˆŒØ×#Ñ#Ð$4Õ4°\ÕAÀ$Ç/Á/×BXÑBX×BaÑBaÕaˆŒà%1 Mˆ�‰×ÑÔ!Ø#3�‰Ô Ø&6�‰Ô#Ø#)ˆ�‰Ô"Ø%1 Mˆ�‰×ÑÔ!Ø#3�‰Ô Ø&6�‰Ô#Ø#)ˆ�‰Ô"à#ˆÔØ#$ˆ�‰Ô Ø$'ˆ�‰Ô!Ø)+ˆ�‰ÔØˆÔÜ$ ^¸Ô;ˆ�
‰
ÔÜ'¨¸QÔ?ˆ�
‰
�1�ÔÜ'¨¸AÔ>ˆ�
‰
�1�ÔÜ$*§L¡Lˆ�
‰
�1�Ö!rB   c                óŒ  € V P                   V P                  P                  ,           V P                  P                  P                  ^,          ,           V P
                  P                  P                  ,           pV^\        \        V P                  P                  4      V P                  P                  P                  V P                  P                  P                  4      ,          ,           pWP                  ,           V P                  ,           pRV P
                  P                  ,          pV\        W P                  P                  P                  V P                  P                  P                  4      ,           pV P                  V P
                  P                  ,           V P
                  P                  P                  ^,          ,           V P
                  P                  P                  ^,          ,           pW0P                  P                  P                  ,           V P                   ,           V P"                  ,           pW3# )r”   z%.2f%%)rø  r‹   r™  r�  r•  rŠ   r‘  rî  rÛ   rµ   rì  r²   rù  rû  r  r–  r±   rú  )rM   Útxrä  Útys   &   rC   Ú_getDrawingDimensionsÚ!ScatterPlot._getDrawingDimensionsì  sx  € Ø×Ñ˜dŸo™o×6Ñ6Õ6¸¿¹×8NÑ8N×8QÑ8QÐRSÕ8SÕTÐUY×UdÑUd×UkÑUk×UtÑUtÕtˆØˆq”œ3˜tŸ™×7Ñ7Ó8¸$¿/¹/×:PÑ:P×:YÑ:YÐ[_×[jÑ[j×[qÑ[q×[zÑ[zÓ{Õ{Õ|ˆØ�j‰j�=˜×*Ñ*Õ*ˆØ�D—O‘O×,Ñ,Õ,ˆØŒy˜ŸO™O×2Ñ2×;Ñ;¸T¿_¹_×=SÑ=S×=\Ñ=\Ó]Õ^ˆØ×Ñ §¡× 8Ñ 8Õ8¸$¿/¹/×:PÑ:P×:SÑ:SÐTUÕ:UÕVÐX\×XgÑXg×XnÑXn×XwÑXwÐxyÕXyÕzˆØ�o‰o×$Ñ$×-Ñ-Õ-¨d¯k©kÕ9¸$¿/¹/ÕIˆàˆwˆrB   Nc                óŽ   € V'       g   V P                  4       w  r#\        W#4      pVP                  V P                  4       4       V# rG   )r  r   rw   r0  )rM   r·   r	  r
  s   &&  rC   r¸   ÚScatterPlot.demo÷  s5   € ßØ×,Ñ,Ó.‰EˆBÜ˜b“nˆGØ�‰�D—I‘I“KÔ ØˆrB   c                ó<  € \        V P                  P                  P                  4      P                  P
                  pV^ 8X  d   RpWP                  P                  P                  ,          p\        P                  V 4      pV P                  pV'       d§   \        4       pV P                  V P                  ,           R,          Vn        ^ Vn        V P                  P                  P                  Vn        V P                  P                  P                  Vn        VP                  V4       VP                  V4       V P                   pV'       d®   \        4       p^ZVn        ^ Vn        V P                  V P$                  R,          ,           Vn        V P&                  P                  P                  Vn        V P&                  P                  P                  Vn        VP                  V4       VP                  V4       V P(                  '       dh   VP                  \+        V P                  V P                  V P                  V P$                  V P,                  V P&                  P.                  RR7      4       VP1                  V P2                  V P4                  4       V# )r‘   g`åÐ"Ûùæ?g       @N)r(   r'   r*   )r   rŠ   r�  rì  ÚfaceÚascentr‘  r‚   r0  rö  r   r¯   r²   r°   rß   rw   r÷  r”  r±   r‹   rñ  r	   rò  r'   Úshiftrø  rû  )rM   r  r[   rö  Úxlr÷  Úyls   &      rC   r0  ÚScatterPlot.drawþ  sÅ  € Ü�t—‘×-Ñ-×6Ñ6Ó7×<Ñ<×CÑCˆØ�1Œ9ØˆFØ—o‘o×,Ñ,×5Ñ5Õ5ˆô �]‰]˜4Ó ˆà—‘ˆßÜ‹wˆBØ—F‘F˜4Ÿ:™:Õ% sÕ*ˆBŒDØˆBŒDØŸ/™/×0Ñ0×9Ñ9ˆBŒKØŸ/™/×0Ñ0×9Ñ9ˆBŒKØ�J‰J�vÔØ�F‰F�2ŒJà—‘ˆßÜ‹wˆBØˆBŒHØˆBŒDØ—F‘F˜4Ÿ;™; s�?Õ*ˆBŒDØŸ/™/×0Ñ0×9Ñ9ˆBŒKØŸ/™/×0Ñ0×9Ñ9ˆBŒKØ�J‰J�vÔØ�F‰F�2ŒJð ××ÐØ�F‰F”4˜Ÿ™ §¡¨¯
©
°D·K±KØ%)×%:Ñ%:Ø%)§_¡_×%@Ñ%@Ø#'ô)ô *ð
 	�‰�×!Ñ! 4×#5Ñ#5Ô6àˆ	rB   )r�  rû  rŒ   r±   rž   rø  r‡   r…   rò  rñ  rù  rú  r²   r¯   rö  r°   r÷  r2   rG   )r3   r4   r5   r6   ry   r7   r‚   r8   r9   rc   r:   ÚisStringÚ
isAnythingr@   rs   r  r¸   r0  rA   rO   rP   s   @rC   rð  rð  ”  sS  ø‡ € Ùáò ™Hð Ù(¨Ð8[Õ\ðá)¨(Ð9]Õ^ðñ %1°ÐArÕ$sðñ (4°MÐHhÕ'ið	ñ
 #/¨xÐ>nÐ}~Õ"ðñ '3°8ÐBcÕ&dðñ '3°8ÐB^Õ&_ðñ *¨(Ð9UÕVðñ *¨(Ð9UÕVðñ (¨
Ð9^Õ_ðñ #/¨}ÐChÕ"iðñ !-¨]ÐAsÕ tðñ #/¨xÐ>ZÕ"[ðñ $0°Ð?\Õ#]ðñ ".¨hÐ=XÕ!Yðñ  %1°Ð@^Õ$_ð!€Hò&@1òD	ô÷'ð 'rB   rð  c                 ó8  € \        R^È4      p RR.p\        4       p^2Vn        ^2Vn        ^}Vn        RVn        Wn        ^Vn        \        P                  Vn
        \        R4      VP                  n        ^VP                  ^ ,          n        ^VP                  ^,          n        ^ VP                  n        ^VP                  n        ^VP                  n        ^ VP&                  n        ^VP&                  n        ^VP&                  n        V P)                  V4       V # )ú2A line plot with non-equidistant points in x-axis.r©   rª   ÚUK_Flagr’   r®   )r   r‚   r¯   r°   r±   r²   rŒ   rž   r   r³   r(   r   r‰   r+   r'   rŠ   r´   rµ   r¶   r‹   rw   ©r·   rŒ   r[   s      rC   Úsample1ar  '  sã   € ô �c˜3Ó€Gð 2Ø3ð
€Dô
 
‹€Bà€B„DØ€B„DØ€B„IØ€B„HØ„GØ€B„NÜ—\‘\€B„Nä  Ó+€B‡H�H„Oà€B‡H�HˆQ…KÔØ€B‡H�HˆQ…KÔà€B‡M�MÔØ€B‡M�MÔØ€B‡M�MÔà€B‡M�MÔØ€B‡M�MÔØ€B‡M�MÔà‡K�K�„Oà€NrB   c                 ó  € \        R^È4      p RR.p\        4       p^2Vn        ^2Vn        ^}Vn        RVn        Wn        ^Vn        \        R4      VP                  n
        RVn        \        P                  Vn        ^ VP                  n        ^VP                  n        . ROVP                  n        RVP                  n        ^ VP(                  n        ^VP(                  n        ^VP(                  n        V P-                  V4       V # )	r  r©   rª   ÚCircler«   ú%2.1fr’   r®   ©r“   r”   r•   r–   r—   r˜   )r   r‚   r¯   r°   r±   r²   rŒ   rž   r   r‰   r+   r‡   r   r³   r(   rŠ   r´   rµ   Ú
valueStepsr˜  r‹   r¶   rw   r  s      rC   Úsample1br"  M  s×   € ô �c˜3Ó€Gð 2Ø3ð
€Dô
 
‹€Bà€B„DØ€B„DØ€B„IØ€B„HØ„GØ€B„NÜ  Ó*€B‡H�H„OØ €BÔÜ—\‘\€B„Nà€B‡M�MÔØ€B‡M�MÔÚ3€B‡M�MÔØ$+€B‡M�MÔ!à€B‡M�MÔØ€B‡M�MÔØ€B‡M�MÔà‡K�K�„Oà€NrB   c                 ó`  € \        R^È4      p RR.p\        4       p^2Vn        ^2Vn        ^}Vn        RVn        Wn        ^Vn        \        R4      VP                  ^ ,          n
        \        R4      VP                  ^,          n
        RVn        \        P                  Vn        ^ VP                  n        ^VP                  n        . R	OVP                  n        RVP                  n        ^ VP(                  n        ^VP(                  n        . R
OVP(                  n        V P+                  V4       V # )r  r©   rª   r¬   r  r«   r  r’   r®   r   )r“   r”   r–   r˜   r�   )r   r‚   r¯   r°   r±   r²   rŒ   rž   r   r‰   r+   r‡   r   r³   r(   rŠ   r´   rµ   r!  r˜  r‹   rw   r  s      rC   Úsample1cr$  q  sñ   € ô �c˜3Ó€Gð 2Ø3ð
€Dô
 
‹€Bà€B„DØ€B„DØ€B„IØ€B„HØ„GØ€B„NÜ# NÓ3€B‡H�HˆQ…KÔÜ# HÓ-€B‡H�HˆQ…KÔØ €BÔÜ—\‘\€B„Nà€B‡M�MÔØ€B‡M�MÔÚ3€B‡M�MÔØ$+€B‡M�MÔ!à€B‡M�MÔØ€B‡M�MÔÚ.€B‡M�MÔà‡K�K�„Oà€NrB   c                óp   € V  Uu. uF%  p\        V^ ,          4      V^,          ^d,          3NK'  	  up# u upi )z=Convert date strings into seconds and multiply values by 100.)Ústr2seconds)Úseriesr¯   s   & rC   ÚpreprocessDatar(  –  s2   € ñ 4:Ó:±6¨aŒ[˜˜1�Ó  !¥ S¥Ó)±6Ñ:Ð:ùÒ:s   …+3c                 óð  € \        R^È4      p R.p\        V^ ,          4      V^ &   \        4       p^2Vn        ^2Vn        ^}Vn        R	Vn        Wn        ^Vn        \        R
4      VP                  n        \        P                  Vn        \        \!        R4      4      p\        \!        R4      4      p\        \!        R4      4      p\        \!        R4      4      p\        \!        R4      4      p\        \!        R4      4      p\        \!        R4      4      p	W2P"                  n        W’P"                  n        W4WVWxV	.VP"                  n        \*        VP"                  n        RVP"                  P.                  ^,          n        RVP"                  P.                  ^,          n        RVP2                  n        ^dVP2                  n        ^nVP2                  n        ^VP2                  n        V P7                  V4       V # )r  r©   ú
25/11/1991ú
30/11/1991ú
31/12/1991ú
31/03/1992ú
30/06/1992ú
30/09/1992ú
31/12/1992rª   r­   z%4.2f))r*  r“   )r+  gea««Òð?)r,  gaÃÓ+eð?)z
31/01/1992gvqà-ð?)z
29/02/1992gÆm4€·@ð?)r-  gÔÀ²yìTð?)z
30/04/1992g­ )É
kð?)z
31/05/1992gcÈŽæø{ð?)r.  gïyë,�ð?)z
31/07/1992gQ è×¦žð?)z
31/08/1992g[B>èÙ¬ð?)r/  gYÎ)�ºð?)z
31/10/1992gñÎ~ý@Ìð?)z
30/11/1992gùÆ30àð?)r0  g`åÐ"Ûùð?iìÿÿÿiÝÿÿÿ)r   r(  r‚   r¯   r°   r±   r²   rŒ   rž   r   r‰   r+   r   r³   r(   rÈ   rÉ   rŠ   r´   rµ   r!  Úseconds2strr˜  r�  r–  r‹   r¶   rw   )
r·   rŒ   r[   r�  Út0Út1Út2Út3Út4Úends
             rC   Úsample2r8  œ  s†  € ô �c˜3Ó€Gð	ð
€Dô& ˜T !�WÓ%€Dˆ�Gä	‹€Bà€B„DØ€B„DØ€B„IØ€B„HØ„GØ€B„NÜ  Ó1€B‡H�H„OÜ—\‘\€B„Nä”;˜|Ó,Ó-€EÜ	”˜LÓ)Ó	*€BÜ	”˜LÓ)Ó	*€BÜ	”˜LÓ)Ó	*€BÜ	”˜LÓ)Ó	*€BÜ	”˜LÓ)Ó	*€BÜ
”˜\Ó*Ó
+€CØ"‡M�MÔØ ‡M�MÔØ %¨2°2¸3Ð?€B‡M�MÔÜ$/€B‡M�MÔ!Ø!$€B‡M�M×Ñ˜ÕÔØ!$€B‡M�M×Ñ˜ÕÔà$+€B‡M�MÔ!Ø €B‡M�MÔØ €B‡M�MÔØ€B‡M�MÔà‡K�K�„Oà€NrB   c                  óŽ  € \        R ^È4      p \        4       pV P                  V4       \        VP                  ^ ,          ^4      VP                  ^,          .Vn        \        \        P                  ! R4      ^ RR7      VP                  ^ ,          n	        RVP                  ^ ,          n
        RVP                  ^,          n
        V # )r©   z#9f9f9fN)r*   r'   r(   )r   rz  rw   r   rŒ   rm   r   rà  r‰   r-   r(   )ÚdÚcharts     rC   ÚsampleFillPairedDatar<  Ø  s�   € Ü��CÓ€AÜ Ó"€EØ‡E�Eˆ%„LÜ  §¡¨A¥¨qÓ1°%·*±*¸Qµ-Ð@€E„JÜ!¬F¯NªN¸9Ó,EÐRSÐ`dÔe€E‡K�K�…NÔØ!%€E‡K�K�…NÔØ!%€E‡K�K�…NÔØ€HrB   N)i‚¼0ç      Y@)éŸ¼0gq"Uoè
Y@)écß0gôt	âdY@)éÄß0gÀ˜ˆŒY@)é+à0gŸ=öŽhY@)éŽà0gÞkRæ°Y@)éóà0g#ïÁÞºY@)éVá0g™Þ´Ï™ÐY@)é»á0gþrwçÐY@)éâ0g_iÏ]^Z@)é‚â0g¯#ÙÀT[@)éçâ0g/+^vÿ[@)éJã0çÿbÈº[@)é¯ã0rJ  )és1g¶ŠYŠ?ÿ[@)éÔ1g”åÚ¤r[@)é;1gaž:{�[@)éž1g'šQ=c›[@)é1gÿì¢C»U[@)éf1gãL¸ü[@)éË1gÑ–Îâ �[@)é/	1gæ`‘ºø½[@)é’	1gñ ‡R\@)é÷	1g%^OÏ.\@)éZ
1g¦cÎ3v\@)é¿
1g’+«Ÿm\@)éƒ-1gÄè^Ì;»[@)éå-1gªÕP´¡[@)éK.1gœ&}kñS\@)é®.1gó©ÜßÂ[@)é/1gøU¹Pùì[@)év/1g|\ÀpSe\@)r>  r=  )r?  g333333Y@)r@  g     €Y@)rA  gš™™™™yY@)rB  ç     ÀY@)rC  r^  )rD  çfffffÆY@)rE  r_  )rF  g33333³Y@)rG  gffffffZ@)rH  g33333[@)rI  gfffff[@)rK  gš™™™™ù[@)rL  gfffffF\@)rM  gÍÌÌÌÌŒ[@)rN  g33333ó[@)rO  g33333\@)rP  gfffff†[@)rQ  g33333S[@)rR  gÍÌÌÌÌÌ[@)rS  gÍÌÌÌÌì[@)rT  çfffff&\@)rU  gÍÌÌÌÌL\@)rV  çš™™™™y\@)rW  gš™™™™Ù\@)rX  gÍÌÌÌÌ,\@)rY  ra  )rZ  g33333ó\@)r[  gÍÌÌÌÌ\@)r\  r`  )r]  gfffff¦\@)CÚ__version__ry   r…  r   Úreportlab.lib.validatorsÚreportlab.lib.attrmapÚreportlab.lib.utilsr   r   r@  r   r   r	   r
   r   r   Úreportlab.graphics.widgetbaser   r   r   Ú$reportlab.graphics.charts.textlabelsr   Úreportlab.graphics.charts.axesr   r   r   r   Úreportlab.graphics.charts.utilsÚ"reportlab.graphics.widgets.markersr   r   Ú reportlab.graphics.widgets.gridsr   r   r   Úreportlab.pdfbase.pdfmetricsr   r   Úreportlab.graphics.charts.areasr   Úutilsr   r   rH   rE   rS   rf   rm   r{   r   rh  r€   r‚   rF  r|  rz  r€  r¯  rÁ  rî  rð  r  r"  r$  r(  r8  r<  r2   rB   rC   Ú<module>ro     s´  ðð
 €ØG€å  Ü &Ü #ß .ß ^× ^ß YÑ YÝ 6ß fÓ fÜ -ß Iß LÑ Lß =Ý 4Ý !ô
˜ô 
ô�#ô ô
%ˆ_ô 
%÷ñ ÷:ñ :ô 	�v˜mô 	ô	�˜ô 	õ Côc'Ð ô c'ôJM�ô Mð^Ð'ð Øðàðð ðð ð	ð
 ðð ðð !ðð ðð ðð ðð ðð ðð ðð ðð ðð  !ð!ð" ð#ð$ !ð%ð& ð'ð( !ð)ð* ð+ð, ð-ð. ð/ð0 ð1ð2 ð3ð4 ð5ð6 ð7ð8 ð9ð: ð;ð< ð=ð> ð?ð@Ðð Øðàðð ðð ð	ð
 ðð ðð ðð ðð ðð ðð ðð ðð ðð ðð ðð  ð!ð" ð#ð$ ð%ð& ð'ð( ð)ð* ð+ð, ð-ð. ð/ð0 ð1ð2 ð3ð4 ð5ð6 ð7ð8 ð9ð: ð;ð< ð=ð> ð?ðA?Ð ôB&˜8ô &ôRÐ'ô Rôh�8ô ô2=�Lô =òfôQ�(ô Qòf#òL!òH"òJ;ò:ôxrB   