
    Ph                     n    d dl mZ d dlmZmZmZ ddlmZ d dlZd dl	Z	dZ
 G d dej                        Zy)	    )sstruct)	bytesjoinsafeEvalreadHex   )DefaultTableNzK
		>	# big endian
		version:	H
		flags:	H
		numGMAPs:		H
		numGlyplets:		H
c                   (    e Zd ZdZd Zd Zd Zd Zy)table_G_P_K_G_zGlyphlets GPKG table

    The ``GPKG`` table is used by Adobe's SING Glyphlets.

    See also https://web.archive.org/web/20080627183635/http://www.adobe.com/devnet/opentype/gdk/topic.html
    c                    t        j                  t        ||       \  }}t        j                  d      }| j                  dz   dz  }|j                  |d |        t        j                  dk7  r|j                          g | _	        t        | j                        D ]-  }||   }||dz      }	| j                  j                  |||	        / |}
|
| j                  dz   dz  z   }t        j                  d      }|j                  ||
|        t        j                  dk7  r|j                          g | _        t        | j                        D ]-  }||   }||dz      }	| j                  j                  |||	        / y )NIr      big)r   unpack2
GPKGFormatarraynumGMAPs	frombytessys	byteorderbyteswapGMAPsrangeappendnumGlyplets	glyphlets)selfdatattFontdummynewDataGMAPoffsetsendPosistartendposglyphletOffsetss               jC:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\fontTools/ttLib/tables/G_P_K_G_.py	decompileztable_G_P_K_G_.decompile   sW    T4@wkk#&--!#q(ggv./==E!  "
t}}%ANEa!e$CJJd5o. & ((1,11++c*!!'#f"56==E!$$&t''(A#A&E!!a%(CNN!!$uS/2 )    c                 "   t        | j                        | _        t        | j                        | _        dg| j                  dz   z  }dg| j                  dz   z  }t        j                  t        |       g}t        |d         | j                  dz   dz  z   | j                  dz   dz  z   }||d<   t        d| j                  dz         D ]%  }|t        | j                  |dz
           z  }|||<   ' t        j                  d|      }t        j                  dk7  r|j                          |j                  |j                                ||d<   t        d| j                  dz         D ]%  }|t        | j                  |dz
           z  }|||<   ' t        j                  d|      }t        j                  dk7  r|j                          |j                  |j                                || j                  z  }|| j                  z  }t        |      }	|	S )Nr   r   r   r   r   )lenr   r   r   r   r   packr   r   r   r   r   r   r   tobytesr   )
r   r   r!   r'   dataListr&   r#   	gmapArrayglyphletArrayr   s
             r(   compileztable_G_P_K_G_.compile3   s   DJJt~~.cT]]Q./#!1!1A!56LLT23(1+$--!"3q!88D<L<Lq<PTU;UUAq$--!+,A3tzz!a%())C KN - KK[1	==E! 	))+, q$**Q./A3t~~a!e,--C!$OA 0 C9==E!""$--/0DJJDNN""r*   c                    |j                  d       |j                          t        j                  t              \  }}}|D ]1  }t        | |      }|j                  ||       |j                          3 |j                  d       |j                          | j                  D ]U  }|j                  d       |j                          |j                  |       |j                  d       |j                          W |j                  d       |j                          |j                  d       |j                          | j                  D ]U  }	|j                  d       |j                          |j                  |	       |j                  d       |j                          W |j                  d       |j                          y )Nz7Most of this table will be recalculated by the compiler)valuer   hexdatar   )commentnewliner   	getformatr   getattr	simpletagbegintagr   dumphexendtagr   )
r   writerr   formatstringnamesfixesnamer4   gmapDataglyphletDatas
             r(   toXMLztable_G_P_K_G_.toXMLR   sM   PQ%,%6%6z%B"eUDD$'ET/NN 
 	 

HOOI&NNNN8$MM)$NN # 	g$ NNLOOI&NNNN<(MM)$NN + 	k"r*   c                    |dk(  r\t        | d      sg | _        |D ]C  }t        |t              r|\  }}}|dk(  s | j                  j	                  t        |             E y |dk(  r\t        | d      sg | _        |D ]C  }t        |t              r|\  }}}|dk(  s | j                  j	                  t        |             E y t        | |t        |d                y )Nr   r5   r   r4   )	hasattrr   
isinstancestrr   r   r   setattrr   )	r   rB   attrscontentr   elementitemName	itemAttrsitemContents	            r(   fromXMLztable_G_P_K_G_.fromXMLq   s    7?4)
"gs+3:0)[y(JJ%%gk&:; # [ 4-!#"gs+3:0)[y(NN))'+*>? # D$w 89r*   N)__name__
__module____qualname____doc__r)   r2   rE   rQ    r*   r(   r
   r
      s    32>>:r*   r
   )fontTools.miscr   fontTools.misc.textToolsr   r   r    r   r   r   r   r
   rV   r*   r(   <module>rZ      s2    " A A  
 
s:\.. s:r*   