
    ͏kh2                     Z    d Z ddlmZ ddlmZ ddlZddlZ G d dej                        Zy)z TSI{0,1,2,3,5} are private tables used by Microsoft Visual TrueType (VTT)
tool to store its hinting source data.

TSI5 contains the VTT character groups.

See also https://learn.microsoft.com/en-us/typography/tools/vtt/tsi-tables
    )safeEval   )DefaultTableNc                   $    e Zd Zd Zd Zd Zd Zy)table_T_S_I__5c                 J   |d   j                   }t        |      d|z  k(  sJ t        j                  d      }|j                  |       t        j
                  dk7  r|j                          i | _        t        |      D ]#  }||   | j                  |j                  |      <   % y )Nmaxp   Hbig)
	numGlyphslenarray	frombytessys	byteorderbyteswapglyphGroupingrangegetGlyphName)selfdatattFontr   ais         [/var/www/teggl/fontify/venv/lib/python3.12/site-packages/fontTools/ttLib/tables/T_S_I__5.py	decompileztable_T_S_I__5.decompile   s    6N,,	4yA	M)))KK	D==E!JJLy! 	>A9:1Dv22156	>    c                 @   |j                         }t        j                  d      }t        t        |            D ]0  }|j	                  | j
                  j                  ||   d             2 t        j                  dk7  r|j                          |j                         S )Nr   r   r   )getGlyphOrderr   r   r   appendr   getr   r   r   tobytes)r   r   
glyphNamesr   r   s        r   compileztable_T_S_I__5.compile   sz    ))+
KKs:' 	?AHHT''++JqM1=>	?==E!JJLyy{r   c                     t        | j                  j                               }|D ]3  }|j                  d|| j                  |          |j	                          5 y )N
glyphgroup)namevalue)sortedr   keys	simpletagnewline)r   writerr   names	glyphNames        r   toXMLztable_T_S_I__5.toXML$   s[    t))..01 	I9D4F4Fy4Q   NN		r   c                 r    t        | d      si | _        |dk7  ry t        |d         | j                  |d   <   y )Nr   r'   r)   r(   )hasattrr   r   )r   r(   attrscontentr   s        r   fromXMLztable_T_S_I__5.fromXML,   s<    t_-!#D<,4U7^,D5=)r   N)__name__
__module____qualname__r   r%   r1   r6    r   r   r   r      s    	>Er   r   )__doc__fontTools.misc.textToolsr    r   r   r   r   r:   r   r   <module>r>      s,    .  
 "E\.. "Er   