a
    ׶a                     @   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   n/Users/vegardjervell/Documents/master/model/venv/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   


