B
    ¶ôJdí  ã               @   s^   d dl mZ d dlmZ d dlmZ ddlmZ ddlmZ d dl	Z	dZ
G d	d
„ d
ejƒZdS )é    )Ússtruct)ÚfloatToFixedToStr)ÚsafeEvalé   )ÚDefaultTable)ÚgrUtilsNz
    >
    version:    16.16F
c               @   s6   e Zd Zddd„Zdd„ Zdd„ Zdd	„ Zd
d„ ZdS )Útable_S__i_l_lNc             C   s   t j  | |¡ i | _d S )N)r   Ú__init__Úlangs)ÚselfÚtag© r   úQ/var/www/html/venv/lib/python3.7/site-packages/fontTools/ttLib/tables/S__i_l_l.pyr	      s    ztable_S__i_l_l.__init__c             C   s~  t  t|| ¡\}}tt| jddƒ| _t d|d d… ¡\}|dd … }d}g }xzt|ƒD ]n}t d||d |d d … ¡\}}	}
t	|
d ƒ|d  }
| 
d	d
¡}| | d¡|	|
f¡ t||
|	 ƒ}qZW ||d d … }g }xDt|ƒD ]8}t d||d |d d … ¡\}}}| ||f¡ qêW i | _xL|D ]D\}}}g | j|< x,t||| ƒD ]}| j|  || ¡ qVW q2W d S )Né   )ZprecisionBitsz>Hé   é   r   z>4sHHr   ó    ó    zutf-8z>LHH)r   Zunpack2ÚSill_hdrÚfloatr   ÚversionÚstructÚunpackÚrangeÚintÚreplaceÚappendÚdecodeÚmaxr
   )r   ÚdataÚttFontÚ_ZnumLangsZ
maxsettingZlanginfoÚiZlangcodeZnumsettingsÚoffsetZfinfoÚfidÚvalÚcÚnÚor   r   r   Ú	decompile   s.     &
ztable_S__i_l_l.decompilec       	   	   C   sÆ   d}d}t | jƒ}xrt| j ¡ ƒD ]`\}}|t d| d¡t |ƒd| d ¡7 }x$|D ]\}}|t d||d¡7 }qVW |t |ƒ7 }q"W |t dddd| d ¡7 }t t| ¡t	 
t | jƒ¡ | | S )	Nr   z>4sHHÚutf8r   é   z>LHHr   l   €  )Úlenr
   ÚsortedÚitemsr   ÚpackÚencoder   r   r   Zbininfo)	r   r    ZldatZfdatr#   r&   Úinfr$   r%   r   r   r   Úcompile,   s    
&ztable_S__i_l_l.compilec             C   s   |j d| jd | ¡  xrt| j ¡ ƒD ]`\}}|jd|d | ¡  x.|D ]&\}}|j dt |¡|d | ¡  qLW | 	d¡ | ¡  q(W d S )Nr   )r   Úlang)ÚnameÚfeature)r$   r%   )
Z	simpletagr   Únewliner-   r
   r.   Zbegintagr   Znum2tagZendtag)r   Úwriterr    r&   r1   r$   r%   r   r   r   ÚtoXML9   s    
ztable_S__i_l_l.toXMLc       
      C   s   |dkrt t|d ƒƒ| _np|dkrŒ|d }g | j|< xT|D ]L}t|tƒsLq<|\}}}	|dkr<| j|  t |d ¡t	t|d ƒƒf¡ q<W d S )Nr   r3   r4   r5   r$   r%   )
r   r   r   r
   Ú
isinstanceÚtupler   r   Ztag2numr   )
r   r4   ÚattrsÚcontentr    r&   Úelementr   ÚaZ
subcontentr   r   r   ÚfromXMLE   s    


 
ztable_S__i_l_l.fromXML)N)Ú__name__Ú
__module__Ú__qualname__r	   r)   r2   r8   r?   r   r   r   r   r      s
   
r   )ZfontTools.miscr   ZfontTools.misc.fixedToolsr   ZfontTools.misc.textToolsr   Ú r   r   r   r   r   r   r   r   r   Ú<module>   s   