
    ]MhU	                     r    d dl mZ d dlZ ej        d          Zd Zd Z eed          d             ZdS )	    )DefaultTableNzfontTools.mergec                  B     |                     dd           fd}|S )zOReturns a decorator function that adds a new method to one or
    more classes.allowDefaultTableFc                     g }D ]r}||v r|                     |           s|t          k    s
J d            | j        |j        vsJ d|j        d| j        d            t	          || j        |            sd S )NzOops, table class not found.zOops, class 'z' has method 'z'.)appendr   __name____dict__setattr)methoddoneclazzallowDefaultclazzess      T/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/fontTools/merge/base.pywrapperzadd_method.<locals>.wrapper   s     	4 	4E}}KKX5L#8#8#8:X#8#8#8u~55556;nnnfoooV 655E6?F3333t    )get)r   kwargsr   r   s   `  @r   
add_methodr      s?     ::1599L      Nr   c           	      <   d | D             } | st           S d | D             } | sd S | d         j        t          fd| D                       s
J |             j        }             }i }t	          j        t	                      gd | D             R  }|D ]}	 |         }nB# t          $ r5 	 |d         }n(# t          $ r t          ddj                  w xY wY nw xY w|t           u rX |fd	| D                       }|t           ur||<   ~||_	        |S )
Nc                 $    g | ]}|t           u|S  )NotImplemented.0items     r   
<listcomp>z mergeObjects.<locals>.<listcomp>"   s"    
>
>
>D4~#=#=4#=#=#=r   c                     g | ]}||S Nr   r   s     r   r   z mergeObjects.<locals>.<listcomp>%   s    
4
4
4D4#34#3#3#3r   r   c              3   >   K   | ]}t          |          k    V  d S r   )type)r   r   r   s     r   	<genexpr>zmergeObjects.<locals>.<genexpr>*   s.      33ttDzzU"333333r   c              3   X   K   | ]%}t          |                                          V  &d S r   )varskeys)r   tables     r   r"   zmergeObjects.<locals>.<genexpr>0   s4       E Ee!1!1!3!3 E E E E E Er   *zDon't know how to merge key z
 of class c              3   D   K   | ]}t          |t                    V  d S r   )getattrr   )r   r&   keys     r   r"   zmergeObjects.<locals>.<genexpr>=   s/      PP575#~>>PPPPPPr   )
r   	__class__allmergeMapsetunionKeyError	Exceptionr   r	   )	lstlogicreturnTable
returnDictallKeys
mergeLogicvaluer   r*   s	          @@r   mergeObjectsr9   !   s   
>
>C
>
>
>C 
4
4C
4
4
4C tFE3333s3333388S888NE%''KJiF E E E E EFFFG $ $	sJJ 	 	 	"3Z

   iDGCCX   
	 ''
PPPPCPPPPP&&#JsO%Ks*   B##
C".B76C"7%CC"!C"T)r   c                     t          | d          s't                              d| j                   t          S | j        }t          |t                    r|                    | | j        |          S  ||          S )Nr-   zDon't know how to merge '%s'.)	hasattrloginfotableTagr   r-   
isinstancedictr9   )selfmtablesr3   s       r   mergerD   F   sp    4$$ 0$-@@@ME% ~~dDM6:::uV}}r   )#fontTools.ttLib.tables.DefaultTabler   logging	getLoggerr<   r   r9   rD   r   r   r   <module>rH      s   
 = < < < < <  g)**  *" " "J LD111
 
 21
 
 
r   