a
    ¥Q•hÑ  ã                   @   sº   d dl mZ d dlmZ dd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Z	dd„ Z
dd„ Zd(dd„Zeej_d)dd„Zdd„ Zeej_d*dd„Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'S )+é    )ÚttLib)ÚotTablesc                 C   s&   t  ¡ }dd„ | D ƒ\|_|_|_|S )Nc                 S   s   g | ]}t |ƒ‘qS © ©Úfloat©Ú.0Úvr   r   úQ/var/www/sistema_ama/venv/lib/python3.9/site-packages/fontTools/varLib/builder.pyÚ
<listcomp>	   ó    z&buildVarRegionAxis.<locals>.<listcomp>)ÚotÚVarRegionAxisÚ
StartCoordÚ	PeakCoordÚEndCoord)ÚaxisSupportÚselfr   r   r
   ÚbuildVarRegionAxis   s    r   c                 C   s,   t  ¡ }| |_dd„ |D ƒ\|_|_|_|S )Nc                 S   s   g | ]}t |ƒ‘qS r   r   r   r   r   r
   r      r   z,buildSparseVarRegionAxis.<locals>.<listcomp>)r   ÚSparseVarRegionAxisÚ	AxisIndexr   r   r   )Ú	axisIndexr   r   r   r   r
   ÚbuildSparseVarRegionAxis   s    r   c                    s\   t ‡ fdd„|  ¡ D ƒƒs(J d| ˆ fƒ‚t ¡ }g |_ˆ D ]}|j t|  |d¡ƒ¡ q:|S )Nc                 3   s   | ]}|ˆ v V  qd S ©Nr   ©r   Útag©ÚaxisTagsr   r
   Ú	<genexpr>   r   z!buildVarRegion.<locals>.<genexpr>úUnknown axis tag found.©r   r   r   )ÚallÚkeysr   Ú	VarRegionr   Úappendr   Úget)Úsupportr   r   r   r   r   r
   ÚbuildVarRegion   s    ýr'   c              	      s|   t ‡ fdd„|  ¡ D ƒƒs(J d| ˆ fƒ‚t ¡ }g |_tˆ ƒD ],\}}|| vrPq>|j t||  |d¡ƒ¡ q>t	|jƒ|_
|S )Nc                 3   s   | ]}|ˆ v V  qd S r   r   r   r   r   r
   r   "   r   z'buildSparseVarRegion.<locals>.<genexpr>r   r    )r!   r"   r   ÚSparseVarRegionr   Ú	enumerater$   r   r%   ÚlenÚSparseRegionCount)r&   r   r   Úir   r   r   r
   ÚbuildSparseVarRegion!   s    ýÿr-   c                 C   sD   t  ¡ }t|ƒ|_g |_| D ]}|j t||ƒ¡ qt|jƒ|_|S r   )r   ÚVarRegionListr*   ÚRegionAxisCountÚRegionr$   r'   ÚRegionCount©Úsupportsr   r   r&   r   r   r
   ÚbuildVarRegionList3   s    
r4   c                 C   sD   t  ¡ }t|ƒ|_g |_| D ]}|j t||ƒ¡ qt|jƒ|_|S r   )r   ÚSparseVarRegionListr*   r/   r0   r$   r-   r1   r2   r   r   r
   ÚbuildSparseVarRegionList=   s    
r6   c                    s   ‡ fdd„|D ƒS )Nc                    s   g | ]}ˆ | ‘qS r   r   ©r   r,   ©Úlstr   r
   r   H   r   z _reorderItem.<locals>.<listcomp>r   )r9   Úmappingr   r8   r
   Ú_reorderItemG   s    r;   Fc                 C   s`  | j }| j}dg| }|D ]&}dd„ |D ƒ}dd„ t||ƒD ƒ}qdd„ |D ƒ}tdd„ |D ƒƒ}|rúg }	|	 dd„ t|ƒD ƒ¡ |	 d	d„ t|ƒD ƒ¡ |	 d
d„ t|ƒD ƒ¡ t||	ƒ}t| j|	ƒ| _t| jƒ| _ t	t|ƒƒD ]}
t||
 |	ƒ||
< qâ|�r0t
dd„ t|ƒD ƒdd�d | _|  jdO  _n t
dd„ t|ƒD ƒdd�d | _t| jƒ| _ | S )Nr   c                 S   s   g | ]}||d k    ¡ ‘qS )éÿÿÿÿ)Ú
bit_lengthr7   r   r   r
   r   U   r   z.VarData_calculateNumShorts.<locals>.<listcomp>c                 S   s   g | ]}t |Ž ‘qS r   )Úmax)r   Úpairr   r   r
   r   V   r   c                 S   s    g | ]}|r|d  d? nd‘qS )é   é   r   r   ©r   Úbr   r   r
   r   `   r   c                 s   s   | ]}|d kV  qdS ©é   Nr   rB   r   r   r
   r   c   r   z-VarData_calculateNumShorts.<locals>.<genexpr>c                 s   s   | ]\}}|d kr|V  qdS rD   r   ©r   r,   rC   r   r   r
   r   h   r   c                 s   s   | ]\}}|d kr|V  qdS rD   r   rF   r   r   r
   r   i   r   c                 s   s   | ]\}}|d kr|V  qdS ©é   Nr   rF   r   r   r
   r   j   r   c                 s   s   | ]\}}|d kr|V  qdS rD   r   rF   r   r   r
   r   t   r   r<   )ÚdefaultrH   é €  c                 s   s   | ]\}}|d kr|V  qdS rG   r   rF   r   r   r
   r   y   r   )ÚVarRegionCountÚItemÚzipÚanyÚextendr)   r;   ÚVarRegionIndexr*   Úranger>   Ú	NumShorts)r   ÚoptimizeÚcountÚitemsZbit_lengthsÚitemÚblZbyte_lengthsÚ	longWordsr:   r,   r   r   r
   ÚVarData_calculateNumShortsK   s4    


ÿÿrY   Tc                 C   s   t | |d�S )z’Deprecated name for VarData_calculateNumShorts() which
    defaults to optimize=True.  Use varData.calculateNumShorts()
    or varData.optimize().©rS   ©rY   )r   rS   r   r   r
   ÚVarData_CalculateNumShortsƒ   s    r\   c                 C   s   t | dd�S )NTrZ   r[   )r   r   r   r
   ÚVarData_optimizeŠ   s    r]   c                 C   st   t  ¡ }t| ƒ|_t|jƒ }|_g  }|_|rX|D ]"}t|ƒ|ksHJ ‚| t|ƒ¡ q4t|jƒ|_|j	|d� |S )NrZ   )
r   ÚVarDataÚlistrP   r*   rK   rL   r$   Ú	ItemCountÚcalculateNumShorts)ÚvarRegionIndicesrU   rS   r   ÚregionCountÚrecordsrV   r   r   r
   ÚbuildVarData‘   s    

re   c                 C   s.   t  ¡ }d|_| |_t|ƒ|_t|jƒ|_|S ©NrH   )r   ÚVarStoreÚFormatr.   r_   r^   r*   ÚVarDataCount)ÚvarRegionListZvarDataListr   r   r   r
   ÚbuildVarStoreŸ   s    
rk   c                 C   sn   t  ¡ }d|_t| ƒ|_t|jƒ }|_g  }|_|r^|D ]"}t|ƒ|ksNJ ‚| t|ƒ¡ q:t|jƒ|_	|S rf   )
r   ÚMultiVarDatarh   r_   rP   r*   rK   rL   r$   r`   )rb   rU   r   rc   rd   rV   r   r   r
   ÚbuildMultiVarData¨   s    

rm   c                 C   s.   t  ¡ }d|_| |_t|ƒ|_t|jƒ|_|S rf   )r   ÚMultiVarStorerh   r5   r_   rl   r*   ÚMultiVarDataCount)rj   ZmultiVarDataListr   r   r   r
   ÚbuildMultiVarStore¶   s    
rp   c                 C   s"   t  ¡ }dd„ t|| ƒD ƒ|_|S )Nc                 S   s   i | ]\}}||“qS r   r   )r   Úgr	   r   r   r
   Ú
<dictcomp>Ä   r   z"buildVarIdxMap.<locals>.<dictcomp>)r   Ú	VarIdxMaprM   r:   )ÚvarIdxesÚ
glyphOrderr   r   r   r
   ÚbuildVarIdxMapÂ   s    rv   c                 C   sJ   t | ƒ}tdd„ t|ƒD ƒƒr"d S t ¡ }||_t|ƒdkr@dnd|_|S )Nc                 s   s   | ]\}}||kV  qd S r   r   )r   r,   r	   r   r   r
   r   Ê   r   z(buildDeltaSetIndexMap.<locals>.<genexpr>éÿÿ  rH   r   )r_   r!   r)   r   ÚDeltaSetIndexMapr:   r*   rh   )rt   r:   r   r   r   r
   ÚbuildDeltaSetIndexMapÈ   s    ry   c                 C   s&   t  ¡ }d|_| d? |_| d@ |_|S )NrJ   é   rw   )r   ÚDeviceÚDeltaFormatÚ	StartSizeÚEndSize)ÚvarIdxr   r   r   r
   ÚbuildVarDevTableÒ   s
    

r€   N)F)T)T)Ú	fontToolsr   ÚfontTools.ttLib.tablesr   r   r   r   r'   r-   r4   r6   r;   rY   r^   ra   r\   r]   rS   re   rk   rm   rp   rv   ry   r€   r   r   r   r
   Ú<module>   s(   


5

	
