U
    »mœdÞ  ã                   @   s~   d dl Z d dlZzd dlZW n ek
r4   dZY n
X d dlZdd„ Zdd„ Zdd„ Zdd	d
„Zddd„Z	dd„ Z
dd„ ZdS )é    Nc                 C   sŒ   t  d| dd… ¡\}|d? }|d@ }|dkr0nT|dkrztrztj t  d|¡| dd …  ¡}t|ƒ|krtt d	¡ q„|} n
t d
¡ | |fS )Nú>Lé   é   é   éÿÿÿr   é   z<LzTable decompression failed.z:Table is compressed with an unsupported compression scheme)	ÚstructÚunpackÚlz4ÚblockÚ
decompressÚpackÚlenÚwarningsÚwarn)ÚdataÚcompressionÚschemeÚsizeÚres© r   úW/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/fontTools/ttLib/tables/grUtils.pyr      s     
r   c                 C   sj   |d d… t  d| d> t|ƒd@  ¡ }| dkr4|S | dkr\tr\tjj|ddd	d
�}|| S t d¡ |S )Nr   r   r   r   r   r   Zhigh_compressioné   F)Úmoder   Z
store_sizez:Table failed to compress by unsupported compression scheme)r   r   r   r
   r   Úcompressr   r   )r   r   Úhdrr   r   r   r   r      s    (   ÿ
r   c                 c   sŒ   d}g }d}| D ]Z\}}t |ƒrX||d ks8|rX||krX|t |ƒ d t |ƒ|fV  g }|}| |¡ |}q|t |ƒ d t |ƒ|fV  d S )Nr   r   )r   Úappend)ÚattrsÚsamevalZakÚvalsZlastvÚkÚvr   r   r   Ú_entries,   s     
r"   Fc                 C   s   t t|  ¡ dd„ d�|ƒ}|S )Nc                 S   s   t | d ƒS )Nr   )Úint)Úxr   r   r   Ú<lambda>;   ó    zentries.<locals>.<lambda>)Úkey)r"   ÚsortedÚitems)Ú
attributesr   Úgr   r   r   Úentries:   s    r,   r   c                 C   sr   | dkrt  ddddd¡S d}d}|| kr<|d9 }|d7 }q"|d8 }|d }||9 }| | | }t  d| |||¡S )Nr   z>4Hr   é   )r   r   )Únumr   ÚsrangeÚselectÚshiftr   r   r   Úbininfo?   s    
r2   c                 C   s8   | dk rt | ƒS t dt d| ¡¡d  dd¡ ¡ S d S )Ni    Z4sr   r   ó    r&   )Ústrr   r	   r   ÚreplaceÚdecode©Únr   r   r   Únum2tagN   s    "ÿr9   c              	   C   sJ   z
t | ƒW S  tk
rD   | d d d… } t d|  d¡¡d  Y S X d S )Nz    r   r   Úasciir   )r#   Ú
ValueErrorr   r	   Úencoder7   r   r   r   Útag2numW   s
    
r=   )F)r   )r   r   r
   ÚImportErrorZ	lz4.blockr   r   r"   r,   r2   r9   r=   r   r   r   r   Ú<module>   s   


	