
    Ph%                         d dl mZ ddlmZ ddlmZ ddlmZmZm	Z	 dZ
 ej                  e
      Z G d dej                        Zy	)
   )DefaultTable    )sstruct)	bytesjoin)compileTupleVariationStoredecompileTupleVariationStoreTupleVariationz
    > # big endian
    majorVersion:        H
    minorVersion:        H
    tupleVariationCount: H
    offsetToData:        H
c                   :    e Zd ZdZddgZd
dZddZd Zd Zd	 Z	y)table__c_v_a_rzControl Value Table (CVT) variations table

    The ``cvar`` table contains variations for the values in a ``cvt``
    table.

    See also https://learn.microsoft.com/en-us/typography/opentype/spec/cvar
    cvt fvarNc                 p    t         j                   j                  | |       d\  | _        | _        g | _        y )N)r   r   )r   __init__majorVersionminorVersion
variations)selftags     jC:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\fontTools/ttLib/tables/_c_v_a_r.pyr   ztable__c_v_a_r.__init__%   s/    !!**45/3,4,    c                    t        | j                  D cg c]  }|j                         s| c}t        |d   j                        |d   j
                  D cg c]  }|j                   c}i |      \  }}}| j                  | j                  |t        t        |      z   d}dj                  t        j                  t        |      ||g      S c c}w c c}w )Nr   r   )r   
pointCountaxisTagssharedTupleIndicesuseSharedPoints)r   r   tupleVariationCountoffsetToDatar   )r   r   	hasImpactlenvaluesaxesaxisTagr   r   CVAR_HEADER_SIZEjoinr   packCVAR_HEADER_FORMAT)	r   ttFontr   vaxisr   tuplesdataheaders	            r   compileztable__c_v_a_r.compile*   s    ,F#'??D?aakkm?D6&>001/5f~/B/BC/Btdll/BC!+-
)VT !-- --#6,s6{:	
 xx&8&A64PQQ ECs   CCCc                    |d   j                   D cg c]  }|j                   }}i }t        j                  t        |dt
         |       |d   | _        |d   | _        | j                  dk(  sJ | j                         t        | j                  ||d   t        |d   j                        d |t
        |d   	      | _        y c c}w )
Nr   r   r   r   r   r   r   r   )tableTagr   r   r   sharedTuplesr+   posdataPos)r!   r"   r   unpackr&   r#   r   r   r   r/   r   r    r   )r   r+   r'   r)   r   r,   s         r   	decompileztable__c_v_a_r.decompile:   s    -3F^-@-@A-@TDLL-@A)42B+CVL">2">2  A%8t'8'88%6]] &'< =6&>001 >*	
 Bs   Cc                    |dk(  rAt        |j                  dd            | _        t        |j                  dd            | _        y |dk(  rut	        |d   j
                        }t        i d g|z        }| j                  j                  |       |D ],  }t        |t              s|\  }}	}
|j                  ||	|
       . y y )Nversionmajor1minor0tupler   )intgetr   r   r   r    r	   r   append
isinstancer;   fromXML)r   nameattrscontentr'   
valueCountvartupleElement	tupleName
tupleAttrstupleContents              r   r@   ztable__c_v_a_r.fromXMLL   s    9 #EIIgs$; <D #EIIgs$; <DW_VF^223J dVj%89COO""3' 'lE2:F7Iz<KK	:|D !(	 r   c                    |d   j                   D cg c]  }|j                   }}|j                  d| j                  | j                         |j                          | j                  D ]  }|j                  ||        y c c}w )Nr   r6   )r7   r9   )r!   r"   	simpletagr   r   newliner   toXML)r   writerr'   r)   r   rE   s         r   rM   ztable__c_v_a_r.toXMLY   ss    -3F^-@-@A-@TDLL-@A$*;*;4CTCTU??CIIfh' # Bs   B)N)F)
__name__
__module____qualname____doc__dependenciesr   r-   r4   r@   rM    r   r   r   r      s.     F#L
R 
$E(r   r   N) r   fontTools.miscr   fontTools.misc.textToolsr   %fontTools.ttLib.tables.TupleVariationr   r   r	   r&   calcsizer#   r   rT   r   r   <module>rZ      sJ     " .   $7##$67 D(\.. D(r   