
     i                     P    d dl mZ d dlmZ ddlmZ  G d dej                  ZdS )    )BytesIO)cffLib   )DefaultTablec                   D    e Zd ZdZddZd Zd Zd Zd Zd Z	d	 Z
d
 ZdS )table_C_F_F_a  Compact Font Format table (version 1)

    The ``CFF`` table embeds a CFF-formatted font. The CFF font format
    predates OpenType and could be used as a standalone font file, but the
    ``CFF`` table is also used to package CFF fonts into an OpenType
    container.

    .. note::
       ``CFF`` has been succeeded by ``CFF2``, which eliminates much of
       the redundancy incurred by embedding CFF version 1 in an OpenType
       font.

    See also https://learn.microsoft.com/en-us/typography/opentype/spec/cff
    Nc                     t           j                             | |           t          j                    | _        d| _        d S )NF)r   __init__r   
CFFFontSetcff_gaveGlyphOrder)selftags     g/srv/www/vhosts/g4struct/public_html/venv/lib/python3.11/site-packages/fontTools/ttLib/tables/C_F_F_.pyr
   ztable_C_F_F_.__init__   s9    !**4555$&&$    c                     | j                             t          |          |d           t          | j                   dk    s
J d            d S )NFisCFF2r   z&can't deal with multi-font CFF tables.)r   	decompiler   len)r   dataotFonts      r   r   ztable_C_F_F_.decompile   sM    74==&???48}}!!!#K!!!!!r   c                     t                      }| j                            ||d           |                                S )NFr   )r   r   compilegetvalue)r   r   fs      r   r   ztable_C_F_F_.compile   s6    IIF5111zz||r   c                 `    t          | j        | j        j        d                  d          rdS dS )Nr   ROSFT)hasattrr   	fontNames)r   s    r   haveGlyphNamesztable_C_F_F_.haveGlyphNames$   s/    48DH.q12E:: 	54r   c                     | j         rddlm} |                    d          d| _         | j        | j        j        d                                                  S )Nr   )ttLibzillegal use of getGlyphOrder()T)r   	fontToolsr#   
TTLibErrorr   r    getGlyphOrder)r   r#   s     r   r&   ztable_C_F_F_.getGlyphOrder*   s`     	E''''''""#CDDD#x*1-.<<>>>r   c                     d S N )r   
glyphOrders     r   setGlyphOrderztable_C_F_F_.setGlyphOrder2   s    r   c                 :    | j                             |           d S r(   )r   toXML)r   writerr   s      r   r-   ztable_C_F_F_.toXML7   s    vr   c                     t          | d          st          j                    | _        | j                            ||||           d S )Nr   )r   r   r   r   fromXML)r   nameattrscontentr   s        r   r0   ztable_C_F_F_.fromXML:   sF    tU## 	+(**DHugv66666r   r(   )__name__
__module____qualname____doc__r
   r   r   r!   r&   r+   r-   r0   r)   r   r   r   r      s         % % % %
L L L  
  ? ? ?  
  7 7 7 7 7r   r   N)ior   r$   r    r   r   r)   r   r   <module>r:      sr                     77 77 77 77 77<, 77 77 77 77 77r   