a
    èÝEb©  ã                   @   s|   d dl Z d dlZzd dlZW n ey2   dZY n
0 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   ú^/home/ja/django-apps/lartica_env/lib/python3.9/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ÚvalsÚ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>4   ó    zentries.<locals>.<lambda>)Úkey)r#   ÚsortedÚitems)Ú
attributesr   Úgr   r   r   Úentries3   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   Úbininfo7   s    
r3   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   Únum2tagE   s    r:   c              	   C   sH   z
t | ƒW S  tyB   | d d d… } t d|  d¡¡d  Y S 0 d S )Nz    r   r   Úasciir   )r$   Ú
ValueErrorr   r	   Úencoder8   r   r   r   Útag2numK   s
    
r>   )F)r   )r   r   r
   ÚImportErrorZ	lz4.blockr   r   r#   r-   r3   r:   r>   r   r   r   r   Ú<module>   s   


