a
    w=ic                     @   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   o/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/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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>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    
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   num2tagE   s    r9   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	   encoder7   r   r   r   tag2numK   s
    
r=   )F)r   )r   r   r
   ImportErrorZ	lz4.blockr   r   r"   r,   r2   r9   r=   r   r   r   r   <module>   s   


