
    hR                     V    S SK Jr  SSKJr  S SKrS SKr " S S\R                  5      rg)    )safeEval   )DefaultTableNc                   H    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rSrg)table__c_v_t   zControl Value Table

The Control Value Table holds a list of values that can be referenced
by TrueType font instructions.

See also https://learn.microsoft.com/en-us/typography/opentype/spec/cvt
c                     [         R                   " S5      nUR                  U5        [        R                  S:w  a  UR	                  5         X0l        g )Nhbig)array	frombytessys	byteorderbyteswapvalues)selfdatattFontr   s       W/var/www/fran/franai/venv/lib/python3.13/site-packages/fontTools/ttLib/tables/_c_v_t.py	decompiletable__c_v_t.decompile   s9    S!==E!OO    c                     [        U S5      (       d  gU R                  S S  n[        R                  S:w  a  UR	                  5         UR                  5       $ )Nr   r   r   )hasattrr   r   r   r   tobytes)r   r   r   s      r   compiletable__c_v_t.compile   sB    tX&&Q==E!OO~~r   c                     [        U R                  5       H%  u  p4UR                  SXCS9  UR                  5         M'     g )Ncv)valueindex)	enumerater   	simpletagnewline)r   writerr   ir    s        r   toXMLtable__c_v_t.toXML   s4    !$++.HAT8NN /r   c                 J   [        U S5      (       d  [        R                  " S5      U l        US:X  aq  [        US   5      n[        US   5      n[	        SU-   [        U R                  5      -
  5       H  nU R                  R                  S5        M      X`R                  U'   g g )Nr   r
   r   r!   r    r   r   )r   r   r   r   rangelenappend)r   nameattrscontentr   r!   r    r&   s           r   fromXMLtable__c_v_t.fromXML$   s    tX&&++c*DK4<U7^,EU7^,E1u9s4;;'778""1% 9!&KK r   c                 ,    [        U R                  5      $ N)r+   r   )r   s    r   __len__table__c_v_t.__len__.   s    4;;r   c                      U R                   U   $ r3   r   r   r!   s     r   __getitem__table__c_v_t.__getitem__1   s    {{5!!r   c                      X R                   U'   g r3   r7   )r   r!   r    s      r   __setitem__table__c_v_t.__setitem__4   s    "Er   c                     U R                   U	 g r3   r7   r8   s     r   __delitem__table__c_v_t.__delitem__7   s    KKr   r7   N)__name__
__module____qualname____firstlineno____doc__r   r   r'   r0   r4   r9   r<   r?   __static_attributes__ r   r   r   r      s/     
' "#r   r   )fontTools.misc.textToolsr    r   r   r   r   rG   r   r   <module>rJ      s#    -  
 1<,, 1r   