+
    f7is  c                  sx    ^ RI Ht ^ RIHtHtHtHt ^ RIHtH	t	 ^ RI
Ht ^ RIHtHt ^ RIHt  ! R R]4      tR	# )
    )annotations)AnyDictListTuple)commandsToProgramspecializeCommands)T2CharString)otRound	roundFunc)BasePenc                  s   a  ] tR t^tRtRR V 3R llltR R ltR R ltR R	 ltR
 R lt	R R lt
R R ltRR R lltRtV ;t# )T2CharStringPena  Pen to draw Type 2 CharStrings.

The 'roundTolerance' argument controls the rounding of point coordinates.
It is defined as the maximum absolute difference between the original
float and the rounded integer value.
The default tolerance of 0.5 means that all floats are rounded to integer;
a value of 0 disables rounding; values in between will only round floats
which are close to their integral part within the tolerated range.
c          
     s,    V ^8  d   QhRRRRRRRRR	R
/# )   widthzfloat | NoneglyphSetzDict[str, Any] | NoneroundToleranceZfloatCFF2boolreturnNone Zformat   "E/usr/lib64/python3.14/site-packages/fontTools/pens/t2CharStringPen.py__annotate__T2CharStringPen.__annotate__   s<       ( 	
  
    c                	s   < \         \        V `  V4       \        V4      V n        W@n        Wn        . V n        RV n        R# )r    N)r    r    )	Zsuperr   __init__r
   round_CFF2_width	_commands_p0)selfr   r   r   r   	__class__s   &&&&&r   r   ZT2CharStringPen.__init__   s8     	ot-h7~.

@Br   c                    V ^8  d   QhRRRR/# )r   ptTuple[float, float]r   zList[float]r   r   r   r   r   r   '   s     . .( .[ .r   c                	s    V P                   pV P                  V^ ,          4      V P                  V^,          4      3;qn         V^ ,          V^ ,          ,
          V^,          V^,          ,
          .# )r    )r!   r   )r"   r%   Zp0s   && r   _pZT2CharStringPen._p'   sW    XXBqE*DJJr!u,=>>X11r!ur!u}--r   c               r$   r   r%   r&   r   r   r   r   r   r   r   r   ,        8 8- 8$ 8r   c                	^    V P                   P                  R V P                  V4      34       R# )ZrmovetoNr    appendr'   r"   r%      &&r   _moveToZT2CharStringPen._moveTo,   !    y$''"+67r   c               r$   r(   r   r   r   r   r   r   /   r)   r   c                	r*   )ZrlinetoNr+   r-   r.   r   _lineToZT2CharStringPen._lineTo/   r0   r   c               s(    V ^8  d   QhRRRRRRRR/# )r   pt1r&   pt2pt3r   r   r   r   r   r   r   r   2   s8     J J J !J !	J
 
Jr   c                	s    V P                   pV P                  P                  R V! V4      V! V4      ,           V! V4      ,           34       R# )Z	rrcurvetoN)r'   r    r,   )r"   r2   r3   r4   r'   s   &&&& r   _curveToOneZT2CharStringPen._curveToOne2   s:     WW{BsGbg,=3,GHIr   c                   V ^8  d   QhRR/# r   r   r   r   r   r   r   r   r   ;   s      D r   c                	    R # Nr   r"      &r   
_closePathZT2CharStringPen._closePath;       r   c               r6   r7   r   r   r   r   r   r   >   s      $ r   c                	r8   r9   r   r:   r;   r   _endPathZT2CharStringPen._endPath>   r=   r   c               s(    V ^8  d   QhRRRRRRRR/# )	r   privatezDict | NoneglobalSubrszList | Noneoptimizer   r   r   r   r   r   r   r   r   A   s2       ! 	
 
r   c                	sR   V P                   pV'       d%   V P                  '       g   ^0MRp\        VRVR7      p\        V4      pV P                  e&   VP                  ^ \        V P                  4      4       V P                  '       g   VP                  R4       \        WaVR7      pV# )i0   i  F)ZgeneralizeFirstmaxstackZendchar)programr?   r@   )	r    r   r   r   r   Zinsertr	   r,   r   )r"   r?   r@   rA   ZcommandsrB   rC   Z
charStrings   &&&&    r   getCharStringZT2CharStringPen.getCharStringA   s     >>!%rH)%(H $H-;;" NN1gdkk23zzzNN9%!+

 r   )r   r    r!   r   r   )g      ?F)NNT)Z__name__Z
__module__Z__qualname__Z__firstlineno__Z__doc__r   r'   r/   r1   r5   r<   r>   rD   Z__static_attributes__Z__classcell__)r#   s   @r   r   r      s;     .
88J r   r   N)Z
__future__r   Ztypingr   r   r   r   ZfontTools.cffLib.specializerr   r   ZfontTools.misc.psCharStringsr   ZfontTools.misc.roundToolsr	   r
   ZfontTools.pens.basePenr   r   r   r   r   <module>rE      s*    # ) ) N 5 8 *Jg Jr   