+
    Œvj–3  ã                   ó²   € R t Rt^ RI5 ^ RIHt ^ RIHt ^RIHtH	t	 R t
 ! R R4      tR	 tR
 tR t ! R R4      t]R8X  d   ]! R4       ]! ]4       R# R# )z3.13.0zXSuperclass for renderers to factor out common functionality and default implementations.)Ú*)ÚDerivedValue)Ú	rl_config)ÚmmultÚinversec                óz   € / pV P                  4       P                  4        F  w  r#V\        9   g   K  W1V&   K  	  V# )zäUsed to compute when we need to change the graphics state.
For example, if we have two adjacent red shapes we don't need
to set the pen color to red in between. Returns the effect
the given shape would have on the graphics state)ÚgetPropertiesÚitemsÚSTATE_DEFAULTS)ÚshapeÚdeltaÚpropÚvalues   &   Úa/var/www/html/daimler-pipeline/venv/lib/python3.14/site-packages/reportlab/graphics/renderbase.pyÚgetStateDeltar      s=   € ð
 €EØ×*Ñ*Ó,×2Ñ2Ö4‰ˆØ”>Ö!Ø�$‹Kñ 5ð €Ló    c                   óX   a € ] tR t^t o RtRR ltR tR tR tR t	R t
R	 tR
 tRtV tR# )ÚStateTrackera  Keeps a stack of transforms and state
properties.  It can contain any properties you
want, but the keys 'transform' and 'ctm' have
special meanings.  The getCTM()
method returns the current transformation
matrix at any point, without needing to
invert matrixes when you pop.Nc                óŒ  € . V n         . V n        Vf   \        P                  4       pV'       dh   \        P	                  4        FO  pRVR,          P                  4       ,           VR,          ,           p\        W$4      '       g   KB  \        W$4      W&   KQ  	  RV9   d   VR,          VR&   V P                  P                  V4       R # )NÚinitial:Né   N:r   NNÚ	transformÚctm)	Ú_deltasÚ	_combinedr
   ÚcopyÚkeysÚupperÚhasattrÚgetattrÚappend)ÚselfÚdefaultsÚ
defaultObjÚkÚas   &&&  r   Ú__init__ÚStateTracker.__init__!   sš   € àˆŒð
 ˆŒØÒÜ%×*Ñ*Ó,ˆHßÜ#×(Ñ(Ö*�Ø˜a �eŸk™k›mÕ+¨A¨b­EÕ1�Ü˜:×(Ô(Ü")¨*Ó"7�H“Kñ +ð
 ˜(Ô"Ø& {Õ3ˆH�U‰OØ�‰×Ñ˜hÖ'r   c                ó   € V# ©N© )r!   Úds   &&r   Ú_applyDefaultObjÚStateTracker._applyDefaultObj5   s   € Øˆr   c                ót  € V P                   R,          P                  4       pVP                  4        FL  w  r4VR8X  d=   VR,          VR&   \        V P                   R,          R,          VR,          4      VR&   KH  WBV&   KN  	  V P                   P	                  V4       V P
                  P	                  V4       R# )z‰Take a new state dictionary of changes and push it onto
the stack.  After doing this, the combined state is accessible
through getState()r   r   Néÿÿÿÿ)r   r   r	   r   r    r   )r!   r   ÚnewstateÚkeyr   s   &&   r   ÚpushÚStateTracker.push8   s–   € ð
 —>‘> "Õ%×*Ñ*Ó,ˆØŸ+™+ž-‰JˆCØ�kÔ!Ø(-¨kÕ(:�˜Ñ%Ü"'¨¯©°rÕ(:¸5Õ(AÀ5ÈÕCUÓ"V�˜“ð
 !&˜“ñ (ð 	�‰×Ñ˜hÔ'Ø�‰×Ñ˜EÖ"r   c                ó  € V P                   R V P                   R,          pV P                  R,          pV P                  R / pVP                  4        F6  w  rEW,          pWe8w  g   K  VR8X  d   \        VR,          4      W4&   K2  WcV&   K8  	  V# )zâsteps back one, and returns a state dictionary with the
deltas to reverse out of wherever you are.  Depending
on your back end, you may not need the return value,
since you can get the complete state afterwards with getState()r   r/   )r   r   r	   r   )r!   ÚnewStateÚ	lastDeltaÚreverseDeltar1   ÚcurValueÚ	prevValues   &      r   ÚpopÚStateTracker.popK   s‡   € ð
 �N‰N˜2ÐØ—>‘> "Õ%ˆØ—L‘L Õ$ˆ	Ø�\‰\˜"Ðàˆà&Ÿ_™_Ö.‰MˆCà �ˆIØÖ$à˜+Ô%Ü(/°	¸+Õ0FÓ(G�LÓ%à(1 Ó%ñ /ð Ðr   c                ó(   € V P                   R,          # )z1returns the complete graphics state at this pointr/   ©r   ©r!   s   &r   ÚgetStateÚStateTracker.getStateb   s   € à�~‰~˜bÕ!Ð!r   c                ó6   € V P                   R,          R,          # )z7returns the current transformation matrix at this pointr   r/   r=   r>   s   &r   ÚgetCTMÚStateTracker.getCTMf   s   € à�~‰~˜bÕ! %Õ(Ð(r   c                ó6   € V P                   R,          V,          # )z>returns the complete graphics state value of key at this pointr/   r=   )r!   r1   s   &&r   Ú__getitem__ÚStateTracker.__getitem__j   s   € à�~‰~˜bÕ! #Õ&Ð&r   c                ó0   € W P                   R,          V&   R# )z6sets the complete graphics state value of key to valueNr/   r=   )r!   r1   r   s   &&&r   Ú__setitem__ÚStateTracker.__setitem__n   s   € à"'�‰�rÕ˜3Ór   )r   r   )NN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r&   r,   r2   r:   r?   rB   rE   rH   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r   r      s7   ø‡ € ñ%ô(ò(ò#ò&ò."ò)ò'÷(ð (r   r   c            	      óÎ  € \        R 4       RRRRRRR. RO/p ^ RIHp RR/RRRR	RV/R. RO/R. RO/RR/.p\        V 4      p\        R
VP	                  4       4       \        4        V F;  p\        RV4       VP                  V4       \        RVP	                  4       R4       K=  	  V F8  p\        RVP                  4       4       \        RVP	                  4       R4       K:  	  R# )zTesting state trackerÚ	fillColorNÚstrokeColorÚfontNamer   )Ú_baseGFontNameÚredÚgreenÚbluezinitial:zpushing:zstate:  Ú
zpopping:)r   é    r\   r   r\   r\   )ç      à?r\   r\   r]   r\   r\   )r]   r\   r\   r]   é   é   )ÚprintÚreportlab.graphics.shapesrW   r   r?   r2   r:   )r"   rW   ÚdeltasÚstr   s        r   ÚtestStateTrackerrd   r   sÞ   € Ü	Ð
!Ô"Ø˜D -°°ZÀÀkÒR_Ð`€HÝ8à	�UÐØ	�W˜m¨F°:¸nÐMØ	Ò&Ð'Ø	Ò&Ð'Ø	�uÐð
€Fô 
�hÓ	€BÜ	ˆ*�b—k‘k“mÔ$Ü	„GÛˆÜˆj˜%Ô Ø
�‰�ŒÜˆj˜Ÿ™› tÖ,ñ ó
 ˆÜˆj˜Ÿ™›Ô"Üˆj˜Ÿ™› tÖ,ó r   c                 óÊ   € \        V \        4      '       d=    \        V R 4      '       d   ^pMWn        RpT pV P	                  4       p V'       g   V=V # V #   X'       g   X=i i ; i©Ú_canvasN)Ú
isinstanceÚUserNoder   rg   ÚprovideNode)ÚnodeÚcanvasÚocanvasÚonodes   &&  r   Ú_expandUserNodero   Š   s`   € Ü�$œ×!Ò!ð		.Ü�t˜I×&Ò&Ø‘à%”Ø�ØˆEØ×#Ñ#Ó%ˆDç  Ø€Kˆ4€Kø÷  ¡�7ús   ˜/A ÁA"c                 ó  € V P                   pVR 8w  dn   T pV P                  VP                  V,          VP                  V,          4      p VP                  P                  4       V n        V P                  W4       R V n         V # )g      ð?)ÚrenderScaleÚ	__class__ÚwidthÚheightÚ__dict__r   Úscale)r+   rq   Úos   &  r   ÚrenderScaledDrawingrx   ˜   sd   € Ø—-‘-€KØ�CÔØˆØ�K‰K˜Ÿ™ Õ+¨A¯H©H°[Õ,@ÓAˆØ—Z‘Z—_‘_Ó&ˆŒ
Ø	�‰�Ô(ØˆŒØ€Hr   c                   óÚ   a € ] tR t^¢t o RtR t^ ^ ]P                  3R ltR t	R t
R tR tR tR	 tR
RRRRRRRRRRRRR/tR tR tR tR tR tR tR tR tR  tR! tR" tR# tR$tV tR%# )&ÚRendererz*Virtual superclass for graphics renderers.c                ó:   € \        V: R V P                  : 24      h)z+ operation not defined at superclass class=)Ú
ValueErrorrr   )r!   Ú	operations   &&r   Ú	undefinedÚRenderer.undefined¥   s   € ÜËYÐX\×XfÓXfÐgÓhÐhr   c                ó`  € \        VR7      V n        V\        P                  J d   \        P                  pW n        V;VP                  R&   V n        RVn         V'       db   \        VR4      '       d)   VP                  WSWAP                  VP                  4       M'VP                  W4VP                  VP                  4       VP                  4        V P                  W44       V P!                  V4       V P#                  4        VP%                  4        V =V =V=V=V =R#   T =T =T=T=T =i ; i)zyThis is the top level function, which draws the drawing at the given
location. The recursive part is handled by drawNode.)r#   Ú_drawingNÚdrawBoundary)r   Ú_trackerr   Ú_unset_ÚshowBoundaryrg   ru   r�   Ú_parentr   r‚   rs   rt   ÚrectÚ	saveStateÚ	initStateÚdrawNoder:   ÚrestoreState)r!   Údrawingrl   ÚxÚyr…   s   &&&&&&r   ÚdrawÚRenderer.draw¨   s÷   € ô %°Ô8ˆŒàœ9×,Ñ,Ó,¼9×;QÑ;Q¨lØŒØ6=Ð=ˆ�‰˜
Ñ# d¤mØˆŒð	]çÜ˜6 .×1Ò1Ø×'Ñ'¨°q¿¹ÀwÇ~Á~ÕVà—K‘K  g§m¡m°W·^±^ÔDØ×ÑÔØ�N‰N˜1ÔØ�M‰M˜'Ô"Ø�H‰HŒJØ×ÑÔ!ð �˜d˜m¨V¨_¸g¸oÈtÊ}ø��˜d˜m¨V¨_¸g¸oÈtÉ}ús   ÁB;D! Ä!D-c                óô   € V P                   P                  R,          p\        \        VR,          4      R,          4      W3,           VR&   V P                   P	                  V4       V P                  V/ 4       R# )r   r   :Né   NNr/   )rƒ   r   ÚtupleÚlistr2   ÚapplyStateChanges)r!   r�   rŽ   rb   s   &&& r   r‰   ÚRenderer.initStateÁ   s]   € Ø—‘×(Ñ(¨Õ,ˆÜ#¤D¨°Õ)<Ó$=¸bÕ$AÓBÀAÀ5ÕHˆˆ{ÑØ�‰×Ñ˜6Ô"Ø×Ñ˜v rÖ*r   c                ó:   € V P                   P                  4        R # r)   )rƒ   r:   r>   s   &r   r:   ÚRenderer.popÇ   s   € Ø�‰×ÑÖr   c                ó(   € V P                  R4       R# )z=This is the recursive method called for each node
in the treerŠ   N©r~   )r!   rk   s   &&r   rŠ   ÚRenderer.drawNodeÊ   s   € ð 	�‰�zÖ"r   c                óL   € V P                   P                  R,          pW!,          # )z,Return current state parameter for given keyr/   )rƒ   r   )r!   r1   ÚcurrentStates   && r   ÚgetStateValueÚRenderer.getStateValueÐ   s   € à—}‘}×.Ñ.¨rÕ2ˆØÕ Ð r   c                óº   € VP                   P                  4        F<  w  r#\        V\        4      '       g   K  VP	                  W4      pWAP                   V&   K>  	  R# )z›Examine a node for any values which are Derived,
and replace them with their calculated values.
Generally things may look at the drawing or their
parent.

N)ru   r	   rh   r   ÚgetValue)r!   rk   r1   r   ÚnewValues   &&   r   ÚfillDerivedValuesÚRenderer.fillDerivedValuesÕ   sF   € ð Ÿ-™-×-Ñ-Ö/‰JˆCÜ˜%¤×.Ô.ð !Ÿ>™>¨$Ó4�à%-—‘˜cÓ"ó 0r   c                óÌ  € \        V RR4      p \        W4      pV'       g    X'       g   V=X'       d   V=R# R# \	        VR4      '       d   ^pMW#n        RpW1J;'       d    \	        VR4      '       * pV'       d   Wn        V P                  V4       \        VRR4      pV'       d   V! W2V R7       \        V\        4      '       d   V P                  V4       EMÙ\        V\        4      '       d   V P                  V4       EM°\        V\        4      '       d   V P                  V4       EM‡\        V\        4      '       d   V P                  V4       EM^\        V\        4      '       d   V P!                  V4       EM5\        V\"        4      '       d   V P%                  V4       EM\        V\&        4      '       d   V P)                  V4       Mä\        V\*        4      '       d   V P-                  V4       M¼\        V\.        4      '       d   V P1                  V4       M”\        V\2        4      '       d   V P5                  V4       Ml\        V\6        4      '       d   V P9                  V4       MD\        V\:        4      '       d   VP=                  V 4       M\?        RR\A        V4      ,          4       V'       g   V=V'       d   V=R# R#   X'       g   X=X'       d   X=i i ; i)z1dispatch on the node's (super) class: shared coderg   Nr†   Ú_drawTimeCallback)rl   ÚrendererÚDrawingErrorz!Unexpected element %s in drawing!)!r   ro   rg   r†   r   r£   rh   ÚLineÚdrawLineÚPathÚdrawPathÚStringÚ
drawStringÚGroupÚ	drawGroupÚRectÚdrawRectÚImageÚ	drawImageÚCircleÚ
drawCircleÚEllipseÚdrawEllipseÚPolyLineÚdrawPolyLineÚPolygonÚdrawPolygonÚWedgeÚ	drawWedgeÚ
DirectDrawÚdrawDirectlyr`   Ústr)r!   Úanoderl   rk   rm   Ú
nodeparentÚdtcbs   &&     r   ÚdrawNodeDispatcherÚRenderer.drawNodeDispatcherä   s  € ä˜˜i¨Ó-ˆð-	,ä" 5Ó0ˆDß˜÷R   ß˜tš|‰zôS �t˜I×&Ò&Ø‘à%”Ø�ØÐ*×JÐJ´7¸4À	Ó3JÔ/JˆJß¨%œ<à×"Ñ" 4Ô(Ü˜4Ð 3°DÓ9ˆDßÙ�T°Õ6ä˜$¤×%Ò%Ø—‘˜dÖ#Ü˜D¤$×'Ò'Ø—‘˜dÖ#Ü˜D¤&×)Ò)Ø—‘ Ö%Ü˜D¤%×(Ò(Ø—‘˜tÖ$Ü˜D¤$×'Ò'Ø—‘˜dÖ#Ü˜D¤%×(Ò(Ø—‘˜tÖ$Ü˜D¤&×)Ò)Ø—‘ Õ%Ü˜D¤'×*Ò*Ø× Ñ  Õ&Ü˜D¤(×+Ò+Ø×!Ñ! $Õ'Ü˜D¤'×*Ò*Ø× Ñ  Õ&Ü˜D¤%×(Ò(Ø—‘˜tÕ$Ü˜D¤*×-Ò-Ø×!Ñ! $Õ'ä�nÐ%HÌ3ÈtË9Õ%TÔUç  ß˜tš|‰zø÷   ß˜t™|ˆzús#   �K »&K Á"K Á<H8K ËK#ËK#ÚstrokeÚ_strokeÚstroke_widthÚ
_lineWidthÚstroke_linecapÚ_lineCapÚstroke_linejoinÚ	_lineJoinÚfillÚ_fillÚfont_familyÚ_fontÚ	font_sizeÚ	_fontSizec                ó„  € \        V R R4      pVP                  4        F…  p\        W24      pV'       g   K  V P                  V4        \	        VR 4      '       d   ^pMW$n        RpWCJd   Wn        W4n        MWn        V P                  V4       WCJd   V=V=V'       g   V=K…  K‡  	  R#   YCJd   T=T=X'       g   T=i i ; irf   )r   ÚgetContentsro   r£   r   rg   r†   rŠ   )r!   Úgrouprl   rÂ   rk   rm   s   &&    r   r°   ÚRenderer.drawGroup  sº   € ô ˜˜i¨Ó-ˆØ×&Ñ&Ö(ˆEÜ" 5Ó0ˆDß™ð ×"Ñ" 4Ô(ð1Ü˜4 	×*Ò*Ø‘Gà#)”LØ"�GØÓ$Ø$)”MØ#(•Là#(”LØ—‘˜dÔ#àÓ$¨%¨-Ø�Lß D¢L‘wó+ )øð& Ó$¨%¨-Ø�Lß D¡L�wús   ÁAB)Â)B?Â;B?c                óš   € VP                  4       p\        V\        4      '       d   V P                  V4       R # V P	                  V4       R # r)   )Ú	asPolygonrh   r«   r¬   r¼   )r!   ÚwedgeÚPs   && r   r¾   ÚRenderer.drawWedge6  s7   € ð �O‰OÓˆÜ�aœ×ÒØ�M‰M˜!Öà×Ñ˜QÖr   c                óZ   € VP                  4       pV F  pV P                  V4       K  	  R # r)   )Ú
asPolygonsr¼   )r!   ÚpathÚpolygonsÚpolygons   &&  r   r¬   ÚRenderer.drawPath?  s&   € Ø—?‘?Ó$ˆÛˆGØ× Ñ  Ö)ó  r   c                ó(   € V P                  R 4       R# )r²   Nrš   )r!   r‡   s   &&r   r²   ÚRenderer.drawRectD  s   € à�‰�zÖ"r   c                ó(   € V P                  R 4       R# )rª   Nrš   )r!   Úlines   &&r   rª   ÚRenderer.drawLineH  s   € Ø�‰�zÖ"r   c                ó(   € V P                  R 4       R# )r¶   Nrš   )r!   Úcircles   &&r   r¶   ÚRenderer.drawCircleK  ó   € Ø�‰�|Ö$r   c                ó(   € V P                  R 4       R# )rº   Nrš   ©r!   Úps   &&r   rº   ÚRenderer.drawPolyLineN  s   € Ø�‰�~Ö&r   c                ó(   € V P                  R 4       R# )r¸   Nrš   )r!   Úellipses   &&r   r¸   ÚRenderer.drawEllipseQ  ó   € Ø�‰�}Ö%r   c                ó(   € V P                  R 4       R# )r¼   Nrš   rî   s   &&r   r¼   ÚRenderer.drawPolygonT  rô   r   c                ó(   € V P                  R 4       R# )r®   Nrš   )r!   Ú	stringObjs   &&r   r®   ÚRenderer.drawStringW  rì   r   c                ó(   € V P                  R4       R# )zTThis takes a set of states, and outputs the operators
needed to set those propertiesr•   Nrš   )r!   r   r5   s   &&&r   r•   ÚRenderer.applyStateChangesZ  s   € ð 	�‰Ð*Ö+r   c                ó   € \        R 4      h)r´   )ÚNotImplementedError)r!   ÚargsÚkwdss   &*,r   r´   ÚRenderer.drawImage_  s   € Ü! +Ó.Ð.r   )rg   r�   rƒ   N)rJ   rK   rL   rM   rN   r~   r   r„   r�   r‰   r:   rŠ   rž   r£   rÅ   Ú	_restoresr°   r¾   r¬   r²   rª   r¶   rº   r¸   r¼   r®   r•   r´   rO   rP   rQ   s   @r   rz   rz   ¢   s­   ø‡ € Ù4òið '(¨1¸9×;LÑ;Lô ]ò2+òò#ò!ò
.ò1,ðf ˜) N°LÐAQÐR\Ø! +¨f°W¸]È7Ø˜Kð)€Iò1ò6 ò*ò
#ò#ò%ò'ò&ò&ò%ò,÷
/ð /r   rz   Ú__main__z&this file has no script interpretationN)Ú__version__rN   ra   Úreportlab.lib.validatorsr   Ú	reportlabr   r   r   r   r   r   rd   ro   rx   rz   rJ   r`   r*   r   r   Ú<module>r     sj   ðð
 €Øf€ä 'Ý 1Ý ç &ò	÷W(ñ W(òr-ò0ò÷~/ñ ~/ð@ ˆZÔÙ	Ð
2Ô3Ù	ˆ'†Nñ r   