
    h                     d   S SK Jr  S SKJr  S SKJr  S SKJr  S SKJ	r	  S SK
JrJr   " S S\R                  5      r\" \R                  " S	5      5      S
 5       rSS jr\" \R                  " S	5      5      S 5       r\" \R                  " S	5      5      S 5       r\" \R                  " S	5      5      S 5       r\	" S\S9\" \R                  " S	5      5      S 5       5       r\	" S\S9\" \R                  " S	5      5      S 5       5       r\	" S\S9\" \R                  " S	5      5      S 5       5       rg)    )psCharStrings)ttLib)NullPen)otRound)deprecateFunction)_add_method
_uniq_sortc                        \ rS rSrS rS rSrg)_ClosureGlyphsT2Decompiler	   c                 P    [         R                  R                  XU5        Xl        g N)r   SimpleT2Decompiler__init__
components)selfr   
localSubrsglobalSubrss       F/var/www/html/env/lib/python3.13/site-packages/fontTools/subset/cff.pyr   #_ClosureGlyphsT2Decompiler.__init__
   s    ((11$KP$    c                     U R                  5       n[        U5      S:  aM  SSKJn  USS  u  pEpgX6   nX7   n	U R                  R                  U5        U R                  R                  U	5        g g )N   r   )StandardEncoding)popalllen$fontTools.encodings.StandardEncodingr   r   add)
r   indexargsr   adxadybcharachar	baseGlyphaccentGlyphs
             r   
op_endchar%_ClosureGlyphsT2Decompiler.op_endchar   sf    {{}t9>M &*"#Y"Ce(/I*1KOO	*OO, r   )r   N)__name__
__module____qualname____firstlineno__r   r(   __static_attributes__ r   r   r   r   	   s    %-r   r   zCFF c                    U R                   n[        U5      S:X  d   eX"R                  5       S      nUR                  nUR                  nU(       a  [        5       nU HL  nXt;  a  M
  XG   n[        UR                  S/ 5      n	[        XiUR                  5      n
U
R                  U5        MN     XaR                  -  nUR                  R                  U5        UnU(       a  M  g g )N   r   Subrs)cffr   keysCharStringsglyphssetgetattrprivater   r   executeupdate)r   sr3   fontglyphSet	decomposer   gglsubrs
decompilers              r   closure_glyphsrD      s    
((Cs8q==xxz!}DHI
U
A BBJJ4E3Jr~~VJr"  	hh
	
#	 )r   c                    U R                   R                  U5      u  pEU(       d  U(       a  UR                  U(       a  / OS/5        g [        U S5      (       a'  U R                  b  U R                  U   R
                  nOU R
                  nUR                  nUR                  n[        5       n	UR                  U	5        UR                  U:w  a  UR                  U-
  S/Ul        g S/Ul        g )NendcharFDArray)r5   getItemAndSelector
setProgramhasattrrG   PrivatedefaultWidthXnominalWidthXr   drawwidthprogram)
r=   	glyphNameisCFF2ignoreWidthcfdSelectIndexr9   dfltWdXnmnlWdXpens
             r   _empty_charstringrY   3   s    ''::9EA	6R	{34##(@ll=199GllG''''i	s77g7*I6AI"AIr   c                 6   U R                   nUR                  S S Ul        UR                  (       aF  UR                  (       d5  UR                  S:  nUR                  5        H  nX5   n[        USUS9  M     UR                  5        H  nX5   nSUl        M     g)Nr1   z.notdef)rR   r   T)r3   	fontNamesnotdef_glyphnotdef_outlinemajorr4   rY   Encoding)r   r=   optionsr3   rR   fontnames         r   prune_pre_subsetrb   G   s    
((CMM"1%CMG$:$:Q
H=DdIf= #
 HHJ}* 
 r   c           	         U R                   nUR                  5        GH0  nX#   nUR                  nUR                  R	                  UR
                  5      nUR                   H  nXv;  a  M
  UR                  U5      u  pM     UR                  (       a  [        UR                  5       V
Vs/ s H  u  pXv;   d  M  U
PM     nn
nUR                  nU V
s/ s H  oR                  U
   PM     sn
Ul        U?U?[        US5      (       a7  UR                  nS Ul        U V
s/ s H  oR"                  U
   PM     sn
Ul        0 n[        U5       H*  u  nnUR                  U   nXuR$                  ;   d  M&  XU'   M,     Xl        O=UR$                  R                  5        VVs0 s H  u  nnXv;   d  M  UU_M     snnUl        UR                   Vs/ s H  owU;   d  M
  UPM     snUl        ['        UR                  5      Ul        UR*                  R,                  (       d  GM  UR.                  S:  nUR
                   H  n[1        XGUSS9  M     GM3     gs  snn
f s  sn
f s  sn
f s  snnf s  snf )NFDSelectr1   T)rR   rS   )r3   r4   r5   r6   unionglyphs_emptiedcharsetrH   charStringsAreIndexed	enumeratecharStringsIndexitemsfileoffsetsrJ   rd   formatgidArraycharStringsr   	numGlyphsr`   retain_gidsr^   rY   )r   r<   r3   ra   r=   csr6   r@   rT   _iindicescsiselnewCharStrings
indicesIdx
charsetIdxvrR   s                      r   subset_glyphsr}   \   s   
((CHHJ} 0 01 A((+DAq 
 ##%.t||%<L%<TQq%<GL%%C/67w!1w7CI#+tZ((mm!
9@AAQAN*3G*<&
JLL,&(21% += ,N/1~~/C/C/EU/Etq!dad/EUBN#'<<?<a;<?T\\*99   YY]F%%!$&dK &E J 1 M7
  B V?s0   ,I;II II#/I#	I)I)c                 b   U R                   nUR                  5        H  nX4   nUR                  n[        US5      (       d  M&  UR                  n[        UR                  5      nUR                   V	s/ s H  oR                  U	5      PM     sn	Ul        UR                  n
U Vs/ s H  oU   PM	     snU
l	        U
?
U
?M     UR                  (       a  UR                  5         UR                  (       d  U R                  5         gUR                  (       d  U R                  5         gs  sn	f s  snf )Nrd   T)r3   r4   r5   rJ   rd   r	   ro   r    rG   rk   rl   rm   desubroutinizehintingremove_hintsremove_unused_subroutines)r   ttfFontr`   r3   ra   r=   rs   rx   rv   ssarrru   s               r   prune_post_subsetr      s    
((CHHJ} 4$$--C .G8;E"MM"-ECL,,C)01AQ1CI#+   ??  ##&&( F1s   2D'$D,z)use 'CFFFontSet.desubroutinize()' instead)categoryc                 8    U R                   R                  5         g r   )r3   r   r   s    r   r   r      s    
 	HHr   z'use 'CFFFontSet.remove_hints()' insteadc                 8    U R                   R                  5         g r   )r3   r   r   s    r   r   r      s    
 	HHr   z2use 'CFFFontSet.remove_unused_subroutines' insteadc                 8    U R                   R                  5         g r   )r3   r   r   s    r   r   r      s    
 	HH&&(r   N)F)fontTools.miscr   	fontToolsr   fontTools.pens.basePenr   fontTools.misc.roundToolsr   fontTools.misc.loggingToolsr   fontTools.subset.utilr   r	   r   r   getTableClassrD   rY   rb   r}   r   DeprecationWarningr   r   r   r/   r   r   <module>r      sj   (  * - 9 9-!A!A -& U  () *,$( U  () *( U  ()' *'T U  () *6 /:L U  () * -8J U  () * 8CU U  ()) *)r   