+
    i'                     2   R t ^ RIHtHt ^ RIHt ^ RIHt ^ RIH	t	H
t
HtHtHtHtHtHt ^ RIHt ^ RItRR.t]P*                  ! R	4      t ! R
 R]4      tR tR tRR lt]R8X  d0   ^ RIt]P<                  ! ]! ]P>                  R,          4      4       R# R# )zCFF to CFF2 converter.)TTFontnewTable)makeOutputFileName)T2WidthExtractor)TopDictIndexFDArrayIndexFontDict
buildOrdertopDictOperatorsprivateDictOperatorstopDictOperators2privateDictOperators2)BytesIONconvertCFFToCFF2mainzfontTools.cffLibc                   ,   a  ] tR t^t o R tR tRtV tR# )_NominalWidthUsedErrorc                    V hN selfothers   &&z/Users/tonyclaw/.openclaw/workspace/skills/math-calculator/venv/lib/python3.14/site-packages/fontTools/cffLib/CFFToCFF2.py__add___NominalWidthUsedError.__add__       
    c                    V hr   r   r   s   &&r   __radd___NominalWidthUsedError.__radd__   r   r   r   N)__name__
__module____qualname____firstlineno__r   r   __static_attributes____classdictcell__)__classdict__s   @r   r   r      s      r   r   c                   V P                   ^ ,          p\        VR4      '       d   VP                  MRpVP                  pV P                  pV'       d(   V Uu. uF  p\        VP                  R. 4      NK  	  upMF\        VR4      '       d4   \        VP                  R4      '       d   VP                  P                  .M. pVP                  4        F&  pVP                  V4      w  rV	P                  4        K(  	  V.V,            FV  pV FM  pVP                  p\        V4      ;r VP                  R4      p VP                  R4      p. V\        W4      R% KO  	  KX  	  Rp\!        4       pVP                  4        F  pVP                  V4      w  rV	P                  pV
e	   Wz,          M*\        VR4      '       d   \        VP                  R. 4      M. p\#        VVV^ 4      p VP%                  V	4       V'       g   K  VR,          R8X  g   K  VP'                  4        K  	  V'       d   V P1                  4        ^V n        V P4                  P6                  p\9        RV4      pV P                    F  pVP;                  V4       K  	  VV n         V^ ,          p\        VR4      '       d   VP                  pMRp\=        \>        4      pVVn         VVn!        \        VR4      '       Eg   \E        4       ;q2n        RVn#        VP                  Vn        W2P                  n$        VP                  pVPJ                  '       d   W4PL                  n$        MW4n$        \O        4       pVPQ                  R	4       VP;                  V4       VVn        \=        \R        4      pVe^   \T         FS  p V ^,          p!V!V9  g   K  V!VPV                  9   d   VPV                  V! \        VV!4      '       g   KG  \Y        VV!4       KU  	  EM VP                  p\=        \R        4      pV F  pVPQ                  R	4       \[        VPV                  P                  4       4       FC  p!V!VP@                  9  g   K  VPV                  V! \        VV!4      '       g   K7  \Y        VV!4       KE  	  VP                  p\T         Fj  p V ^,          p!V!V9  g   K  V!\[        VPV                  P                  4       4      9   d   VPV                  V! \        VV!4      '       g   K^  \Y        VV!4       Kl  	  EK  	  \\         F\  p V ^,          p!V!R8X  d   K  V!V9  g   K  V!VPV                  9   d   VPV                  V! \        VV!4      '       g   KP  \Y        VV!4       K^  	  \_        4       p"V Pa                  V"VR	R7       V"Pc                  ^ 4       V P                  V"VR	R7       R# u upi   \         d     ELi ; i  \         d     ELi ; i  \          d    \        T4      ^8  d   T^,          R9   d   R	pTP'                  ^ 4      p\)        T\*        4      '       g   Q T4       hTP'                  ^ 4      pTR8X  d   TP,                  MTP.                  pTT,          pTR8X  d   TMTpTT,          P                  pTTR
&   K  \        T4      ^8  g   Q T4       hTP'                  ^ 4        ELi ; i)zConverts this object from CFF format to CFF2 format. This conversion
is done 'in-place'. The conversion cannot be reversed.

This assumes a decompiled CFF table. (i.e. that the object has been
filled via :meth:`decompile` and e.g. not loaded from XML.)FDArrayNSubrsPrivatereturnendcharFcallsubrT:N    Ncharset)isCFF2)r.   	callgsubr)2topDictIndexhasattrr)   CharStringsGlobalSubrsgetattrr+   r*   keysgetItemAndSelector	decompileprogramlenindex
ValueErrorminr   r   executepop
isinstanceint	localBias
globalBiasremove_unused_subroutinesmajorotFontgetGlyphOrderr   appendr	   r   ordercff2GetGlyphOrderr   stringsfdArraycharStringsAreIndexedcharStringsIndexr   setCFF2r   r   rawDictdelattrlistr
   r   compileseek)#cffrI   topDictrO   charStringsglobalSubrsfd
localSubrs	glyphNamecsfdIndexsubrssubrr<   ijremoveUnusedSubrsnominalWidthXErrorthisLocalSubrs	extractor
subrNumberopbiassubrSetsubrProgramrM   topDictDataitemprivateDictopOrderfontDictprivateOpOrderentrykeyfiles#   &&                                 r   _convertCFFToCFF2rw   !   s    q!G!()!<!<goo$G%%K//K  5<<GbWb	)G< w	**ww/P/P __""#  !%%'	!44Y?
 (
 ++DllGL AMM(+MM), $&GCIK   , /1 %%'	!44Y?** "  7I.. "5 	 %	
		b!( 7wr{i/KKMY (\ %%' CI

00t%67K  4  ! #C!nGw	""oo*+GGM 1G7I&&$0N2/%11&-#)),,,3:((0"):x &#$9:"-Ahn,k111'//4{C00S1 . //#$9:HT"H,,1134hnn, ((-x--#.	 5 #**K-Ahn,d;#6#6#;#;#=>>'//4{C00S1 .  ( "Ah )ggoo%OOC(w$$% "6 9DKKfTK*IIaLMM$tM,c 	=(    > & 	
 g,!#
6O(O$(!$[[^
!*c22>J>2[[^.0J.>y**IDXDXd"
,.*,<.+%j199)w<1$-g-$KKN#	s=    W'W9W$W/WWW,+W,/C[[c                 r    V R ,          P                   pV R  \        W4       \        R4      ;q R&   Wn         R# )zCFF CFF2N)rX   rw   r   )fontrX   tables   &  r   r   r      s6    
v,

CVc #F++ELIr   c                |   V f   ^ RI pVP                  R,          p ^ RIpVP                  RRR7      pVP	                  RRRR	7       VP	                  R
RRRRR7       VP	                  RRRRR7       VP                  RR7      pVP	                  RRRRR7       VP	                  RRRRR7       VP                  V 4      p^ RIHp T! VP                  '       d   RMVP                  '       d   R MR!R"7       ^ RIpVP                  pVP                  P                  V4      '       g!   VP                  R#P!                  V4      4       VP"                  '       g   \%        VR$R%R&7      MVP"                  p	\'        WP(                  RR'7      p
\+        V
4       \,        P/                  R(V	4       V
P1                  V	4       R# ))z%Convert CFF OTF font to CFF2 OTF fontN   NNzfonttools cffLib.CFFToCFF2zUpgrade a CFF font to CFF2.)descriptioninputz	INPUT.ttfzInput OTF file with CFF table.)metavarhelpz-oz--outputz
OUTPUT.ttfz3Output instance OTF file (default: INPUT-CFF2.ttf).)r   defaultr   z--no-recalc-timestamprecalc_timestampstore_falsez:Don't set the output font's timestamp to the current time.)destactionr   F)requiredz-vz	--verbose
store_truezRun more verbosely.)r   r   z-qz--quietzTurn verbosity off.)configLoggerDEBUGERRORINFO)levelzNo such file '{}'Tz-CFF2)	overWritesuffix)recalcTimestamprecalcBBoxesz	Saving %s)sysargvargparseArgumentParseradd_argumentadd_mutually_exclusive_group
parse_args	fontToolsr   verbosequietosr   pathisfileerrorformatoutputr   r   r   r   loginfosave)argsr   r   parserloggingGroupoptionsr   r   infileoutfilerz   s   &          r   r   r      s   |xx|$$$1 % F +K   B   I	   666FLk,5J   i3H   %G&!///w'---wV ]]F77>>&!!(//78 ~~~ 	6T'B^^  &*B*BQVWDTHH 	IIgr   __main__r}   r   ) __doc__fontTools.ttLibr   r   fontTools.misc.cliToolsr   fontTools.misc.psCharStringsr   fontTools.cffLibr   r   r   r	   r
   r   r   r   ior   logging__all__	getLoggerr   	Exceptionr   rw   r   r   r!   r   exitr   r   r   r   <module>r      s     , 6 9	 	 	  v
& *+Y -D@F zHHT#((2,  r   