Ë
    ^ãjë"  ã                   ó0  — d Z ddlmZmZ ddlmZ ddlmZ ddlm	Z	m
Z
mZmZmZmZ ddlmZ ddlmZ dd	lmZmZ dd
lmZ ddlZddgZ ej4                  d«      Zd„ Zddœd„Zdd„Zedk(  r*ddl Z  e jB                   ee jD                  dd «      «       yy)zCFF2 to CFF converter.é    )ÚTTFontÚnewTable)ÚmakeOutputFileName)ÚT2StackUseExtractor)ÚTopDictIndexÚ
buildOrderÚbuildDefaultsÚtopDictOperatorsÚprivateDictOperatorsÚFDSelecté   )ÚdesubroutinizeCharString)ÚspecializeProgram)Ú	_get_hmtxÚoptimizeWidths)ÚdefaultdictNÚconvertCFF2ToCFFÚmainzfontTools.cffLibc           	      ód  — d| _         t        d«      }| j                  D ]  }d|_        |j	                  |«       Œ || _        |d   }t        |d«      rt        d«      ‚t        t        «      }||_	        |j                  j                  «       D ]-  }||vsŒ|j                  |= t        ||«      sŒ"t        ||«       Œ/ |j                  }|j                  }t        |d«      s/t        «       x}	|_        dgt!        |j"                  «      z  |	_        t'        t(        «      }
t        t(        «      }|D ]�  }|j*                  }|j-                  d«       ||_	        |D ](  }||j                  vsŒ||
v sŒ|
|   |j                  |<   Œ* |j                  j                  «       D ]-  }||vsŒ|j                  |= t        ||«      sŒ"t        ||«       Œ/ ŒŸ |j/                  «       D ]-  }|j1                  «        |j2                  j	                  d«       Œ/ | j4                  g|D �cg c]  }t7        |j*                  d	g «      ‘Œ c}z   D ]$  }|D ]  }|j2                  j	                  d
«       Œ Œ& t9        t:        «      }t=        |«      j>                  }|j                  «       D ]7  }|jA                  |«      \  }}|dk(  rd}||   j	                  ||   d   «       Œ9 |jC                  «       D ]0  \  }}tE        |«      \  }}||   j*                  }||_#        ||_$        Œ2 |j                  «       D ]m  }|jA                  |«      \  }}|dk(  rd}||   j*                  }||   d   }||jF                  k7  sŒE|j2                  jK                  d||jH                  z
  «       Œo |j                  «       D ]ˆ  }|jA                  |«      \  }}|€d}||   j*                  }tM        t7        |d	g «      | j4                  |¬«      }|jO                  |«      }|dkD  sŒdtQ        |«       tS        |j2                  «      |_        ŒŠ | jU                  «        t!        |«      dk(  rq|d   j*                  |_        dD ]7  }|j                  jW                  |d«       t        ||«      sŒ,t        ||«       Œ9 dD ]  }t        ||«      sŒt        ||«       Œ ytY        |jZ                  «      D ��ci c]'  \  }}||rdt]        |«      j_                  d«      z   nd“Œ) }}}ta        t!        |jZ                  «      «      D �cg c]#  }|rdt]        |«      j_                  d«      z   nd‘Œ% c}|_-        |j"                  jC                  «       D ��ci c]  \  }}||   |“Œ c}}|_        d|_1        yc c}w c c}}w c c}w c c}}w )am  Converts this object from CFF2 format to CFF format. This conversion
    is done 'in-place'. The conversion cannot be reversed.

    The CFF2 font cannot be variable. (TODO Accept those and convert to the
    default instance?)

    This assumes a decompiled CFF2 table. (i.e. that the object has been
    filled via :meth:`decompile` and e.g. not loaded from XML.)r   Nr   ÚVarStorez5Variable CFF2 font cannot be converted to CFF format.r   FÚendcharÚSubrsÚreturn)Úprivateé0   )ÚFDArrayr   )ÚfdArrayÚfdSelectÚcidé   z.notdef)ÚAdobeÚIdentityr   )2Úmajorr   ÚtopDictIndexÚcff2GetGlyphOrderÚappendÚhasattrÚ
ValueErrorr   r
   ÚorderÚrawDictÚkeysÚdelattrÚCharStringsr   r   ÚlenÚcharStringsÚgidArrayr	   r   ÚPrivateÚsetCFF2ÚvaluesÚ	decompileÚprogramÚGlobalSubrsÚgetattrr   Úlistr   ÚmetricsÚgetItemAndSelectorÚitemsr   ÚdefaultWidthXÚnominalWidthXÚinsertr   Úexecuter   r   Úremove_unused_subroutinesÚpopÚ	enumerateÚcharsetÚstrÚzfillÚrangeÚROS) ÚcffÚotFontÚtopDictDataÚitemÚtopDictÚopOrderÚkeyr/   r   r   Údefaultsr)   ÚfdÚprivateDictÚcsÚsubrSetsÚwidthsr9   Ú	glyphNameÚfdIndexÚ	widthListÚbestDefaultÚbestNominalr   ÚwidthÚ	extractorÚstackUseÚattrÚnÚnameÚmappingÚvs                                    ú\/var/www/html/metafoliadorv2/venv/lib/python3.12/site-packages/fontTools/cffLib/CFF2ToCFF.pyÚ_convertCFF2ToCFFrc      s¥  € ð €C„Iä˜tÓ$€KØ× Ñ ò !ˆà!%ˆÔØ×Ñ˜4Õ ð!ð #€CÔØ˜!‰n€Gäˆw˜
Ô#ÜÐPÓQÐQäÔ)Ó*€GØ€G„MØ�‰×#Ñ#Ó%ò &ˆØ�gÒØ—‘ Ð$Ü�w Õ$Ü˜ Õ%ð	&ð ×%Ñ%€Kà�o‰o€GÜ�7˜JÔ'ä&.£jÐ0ˆ�7Ô#Ø˜C¤# k×&=Ñ&=Ó">Ñ>ˆÔäÔ1Ó2€HÜÔ+Ó,€EØò .ˆð —j‘jˆØ
�
‰
�5ÔØ!ˆÔØò 	9ˆCØ˜+×-Ñ-Ò-°#¸²/Ø+3°C©=�×#Ñ# CÒ(ð	9ð ×&Ñ&×+Ñ+Ó-ò 	.ˆCØ˜%ÒØ×'Ñ'¨Ð,Ü˜;¨Õ,Ü˜K¨Õ-ñ		.ð.ð  × Ñ Ó"ò %ˆØ
�‰ŒØ
�
‰
×Ñ˜)Õ$ð%ð —_‘_Ð%Ø3:ö)Ø-/Œ�—
‘
˜G RÕ(ò)ñ ò (ˆð ò 	(ˆBØ�J‰J×Ñ˜hÕ'ñ	(ð(ô œÓ€FÜ˜Ó×'Ñ'€GØ ×%Ñ%Ó'ò 6ˆ	Ø!×4Ñ4°YÓ?‰ˆˆGØ�dŠ?ØˆGØˆw‰×Ñ˜w yÑ1°!Ñ4Õ5ð	6ð
 %Ÿl™l›nò ,Ñˆ�Ü#1°)Ó#<Ñ ˆ�[Ø˜'Ñ"×*Ñ*ˆØ +ˆÔØ +ˆÕð	,ð
 !×%Ñ%Ó'ò @ˆ	Ø!×4Ñ4°YÓ?‰ˆˆGØ�dŠ?ØˆGØ˜'Ñ"×*Ñ*ˆØ˜	Ñ" 1Ñ%ˆØ�G×)Ñ)Ó)Ø�J‰J×Ñ˜a ¨×)>Ñ)>Ñ!>Õ?ð@ð !×%Ñ%Ó'ò 7ˆ	Ø!×4Ñ4°YÓ?‰ˆˆGØˆ?ØˆGØ˜'Ñ"×*Ñ*ˆÜ'Ü�G˜W bÓ)¨3¯?©?ÀGô
ˆ	ð ×$Ñ$ RÓ(ˆØ�b‹=Ü$ RÔ(Ü*¨2¯:©:Ó6ˆB�Jð7ð" ×!Ñ!Ô#ä
ˆ7ƒ|�qÒð " !™*×,Ñ,ˆŒØ*ò 	&ˆCØ�O‰O×Ñ  TÔ*Ü�w Õ$Ü˜ Õ%ð	&ð ,ò 	+ˆDÜ�{ DÕ)Ü˜ TÕ*ð	+ð 	ô ! §¡Ó1÷áˆAˆtð 	©!ˆu”s˜1“v—|‘| A“Ò&°Ñ:ð€Gñ ô
 >CÄ3ÀwÇÁÓCWÓ=XöØ89¡1ˆ”�A“—‘˜Q“Ò¨)Ñ3ò€G„Oð )4×(?Ñ(?×(EÑ(EÓ(G÷Ù$˜T 1ˆ�‰�qÑó€KÔð +€G…KùòS)ùó|ùòùós   È"VÓ,V!Ô.(V'Õ;V,T)ÚupdatePostTablec                óÔ   — d| vrt        d«      ‚| d   j                  }t        || «       | d= t        d«      x}| d<   ||_        |r"d| v r| d   }|j                  dk(  rd|_        y y y y )NÚCFF2z)Input font does not contain a CFF2 table.zCFF Úpostg       @g      @)r(   rH   rc   r   Ú
formatType)Úfontrd   rH   Útablerg   s        rb   r   r   ¢   s�   € Ø�TÑÜÐDÓEÐEØ
ˆv‰,×
Ñ
€CÜ�c˜4Ô ØˆVˆÜ# FÓ+Ð+€EˆD�‰LØ€E„Iá˜6 T™>à�F‰|ˆØ�?‰?˜cÒ!Ø!ˆD�Oð "ð *€ó    c                 ó€  — | €ddl }|j                  dd } ddl}|j                  dd¬«      }|j	                  ddd	¬
«       |j	                  ddddd¬«       |j	                  dddd¬«       |j	                  ddd¬«       |j	                  ddd¬«       |j                  d¬«      }|j	                  dddd¬«       |j	                  d d!dd"¬«       |j                  | «      }dd#lm}  ||j                  rd$n|j                  rd%nd&¬'«       ddl}|j                  }|j                  j                  |«      s |j                  d(j!                  |«      «       |j"                  st%        |d)d*¬+«      n|j"                  }	t'        ||j(                  d¬,«      }
t+        |
«       |j,                  rldd-lm} dd.lm} t6        j9                  d/«        |«       }|
j;                  |«       |j=                  d«       t'        |dd¬,«      }
 ||
|j>                  ¬0«       t6        jA                  d1|	«       |
j;                  |	«       y)2z%Convert CFF2 OTF font to CFF OTF fontNr   r   zfonttools cffLib.CFF2ToCFFz(Convert a non-variable CFF2 font to CFF.)ÚdescriptionÚinputz	INPUT.ttfzInput OTF file with CFF table.)ÚmetavarÚhelpz-oz--outputz
OUTPUT.ttfz3Output instance OTF file (default: INPUT-CFF2.ttf).)ro   Údefaultrp   z--no-recalc-timestampÚrecalc_timestampÚstore_falsez:Don't set the output font's timestamp to the current time.)ÚdestÚactionrp   z--remove-overlapsÚ
store_truez@Merge overlapping contours and components. Requires skia-pathops)ru   rp   z--ignore-overlap-errorszCDon't crash if the remove-overlaps operation fails for some glyphs.F)Úrequiredz-vz	--verbosezRun more verbosely.z-qz--quietzTurn verbosity off.)ÚconfigLoggerÚDEBUGÚERRORÚINFO)ÚlevelzNo such file '{}'Tz-CFF)Ú	overWriteÚsuffix)ÚrecalcTimestampÚrecalcBBoxes)ÚremoveOverlaps)ÚBytesIOzRemoving overlaps)ÚignoreErrorsz	Saving %s)!ÚsysÚargvÚargparseÚArgumentParserÚadd_argumentÚadd_mutually_exclusive_groupÚ
parse_argsÚ	fontToolsrx   ÚverboseÚquietÚosrn   ÚpathÚisfileÚerrorÚformatÚoutputr   r   rr   r   Úremove_overlapsÚfontTools.ttLib.removeOverlapsr�   Úior‚   ÚlogÚdebugÚsaveÚseekÚignore_overlap_errorsÚinfo)Úargsr„   r†   ÚparserÚloggingGroupÚoptionsrx   rŽ   ÚinfileÚoutfileri   r�   r‚   Ústreams                 rb   r   r   ²   sL  € à€|Ûà�x‰x˜˜ˆ|ˆãà×$Ñ$Ø$Ø>ð %ó €Fð ×ÑØ˜Ð+Kð ô ð ×ÑØØØØØBð ô ð ×ÑØØØØIð	 ô ð ×ÑØØØOð ô ð
 ×ÑØ!ØØRð ô ð
 ×6Ñ6ÀÐ6ÓF€LØ×ÑØˆk ,Ð5Jð ô ð ×ÑØˆi Ð3Hð ô ð ×Ñ Ó%€Gå&áØ!Ÿ/š/‰w¸'¿-º-©wÈVõó à�]‰]€FØ�7‰7�>‰>˜&Ô!Ø�‰Ð(×/Ñ/°Ó7Ô8ð �~Š~ô 	˜6¨T¸&ÕAà�^‰^ð ô �&¨'×*BÑ*BÐQVÔW€Dä�TÔà×ÒÝAÝä�	‰	Ð%Ô&á“ˆØ�	‰	�&ÔØ�‰�AŒÜ�f¨eÀ%ÔHˆÙØØ ×6Ñ6õ	
ô
 ‡H�HØØôð 	‡I�IˆgÕrk   Ú__main__)N)#Ú__doc__ÚfontTools.ttLibr   r   ÚfontTools.misc.cliToolsr   ÚfontTools.misc.psCharStringsr   ÚfontTools.cffLibr   r   r	   r
   r   r   Ú
transformsr   Úspecializerr   rZ   r   r   Úcollectionsr   ÚloggingÚ__all__Ú	getLoggerr—   rc   r   r   Ú__name__r„   Úexitr…   © rk   rb   ú<module>r³      s’   ðÙ ç ,Ý 6Ý <÷÷ õ 1Ý *ß ,Ý #Û à˜vÐ
&€ð €g×ÑÐ*Ó+€òE+ðP /3ô "ó Yðx ˆzÒÛà€C‡H�H‰T�#—(‘(˜1˜2�,ÓÕ ð rk   