
     i}
                     d    d dl mZ d dlmZ ddlmZ d dlZd dlZdZ G d dej                  Z	dS )	    )sstruct)safeEval   )DefaultTableNz
    >        # big endian
    version: 16.16F    # Table version
    flags:        H    # bit 0: 1=long format, 0=short format
                       # bit 1: 1=attribute names, 0=no names
    numAttribs:   H    # NUmber of attributes
c                   P    e Zd ZdZdgZddZd Zd Zd Zd Z	d	 Z
d
 Zd Zd ZdS )table_G__l_o_cz}Graphite Index to Glyph Atttributes table

    See also https://graphite.sil.org/graphite_techAbout#graphite-font-tables
    GlatNc                 b    t           j                             | |           d | _        d| _        d S )Nr   )r   __init__	attribIds
numAttribs)selftags     i/srv/www/vhosts/g4struct/public_html/venv/lib/python3.11/site-packages/fontTools/ttLib/tables/G__l_o_c.pyr   ztable_G__l_o_c.__init__   s-    !**4555    c                 L   t          j        t          ||           \  }}| j        }| `t	          j        |dz  rdnd          | _        | j                            |d t          |          | j        |dz  z  z
                      t          j
        dk    r| j                                         t	          j        d          | _        |dz  rV| j                            || j         dz  d                     t          j
        dk    r| j                                         d S d S d S )Nr   IH   big)r   unpack2Gloc_headerflagsarray	locations	frombyteslenr   sys	byteorderbyteswapr   )r   datattFont_r   s        r   	decompileztable_G__l_o_c.decompile   s   /+tT::4
JEAI%>SS3??  &QD		DOuqy4Q(Q&Q!RSSS=E!!N##%%%S))19 	*N$$T4?*:Q*>*@*@%ABBB}%%'')))))	* 	*%%r   c           	      v   t          j        t          t          dt	          | j                  dz  | j        j        dk    z   | j                            }t          j
        dk    r| j                                         || j                                        z  }t          j
        dk    r| j                                         | j        rnt          j
        dk    r| j                                         || j                                        z  }t          j
        dk    r| j                                         |S )Ng      ?r   r   )versionr   r   r   )r   packr   dictboolr   r   typecoder   r   r   r    tobytes)r   r"   r!   s      r   compileztable_G__l_o_c.compile,   s   |DN++q0T^5LPS5ST?  
 
 =E!!N##%%%&&(((=E!!N##%%%> 	*}%%'')))DN**,,,D}%%'')))r   c                 h    t          |          dk    }t          j        |rdnd|          | _        d S )Ni   r   r   )maxr   r   )r   r   long_formats      r   setztable_G__l_o_c.setB   s2    )nn-K%@SSS)LLr   c                 f    |                     d| j                   |                                 d S )N
attributes)number)	simpletagr   newline)r   writerr"   s      r   toXMLztable_G__l_o_c.toXMLF   s3    do>>>r   c                 d    |dk    r)t          t          |d                             | _        d S d S )Nr2   r3   )intr   r   )r   nameattrscontentr"   s        r   fromXMLztable_G__l_o_c.fromXMLJ   s4    <!(5?";";<<DOOO  r   c                     | j         |         S N)r   )r   indexs     r   __getitem__ztable_G__l_o_c.__getitem__N   s    ~e$$r   c                 *    t          | j                  S r?   )r   r   r   s    r   __len__ztable_G__l_o_c.__len__Q   s    4>"""r   c                 *    t          | j                  S r?   )iterr   rC   s    r   __iter__ztable_G__l_o_c.__iter__T   s    DN###r   r?   )__name__
__module____qualname____doc__dependenciesr   r$   r,   r0   r7   r=   rA   rD   rG    r   r   r   r      s         
 8L   
* * *  ,M M M  = = =% % %# # #$ $ $ $ $r   r   )
fontTools.miscr   fontTools.misc.textToolsr    r   r   r   r   r   rM   r   r   <module>rQ      s    " " " " " " - - - - - -        



D$ D$ D$ D$ D$\. D$ D$ D$ D$ D$r   