+
    f7i9  c                   s   R t ^ RIHt ^ RIHt ^ RIHu Hu Ht ^ RIHu Hu H	t	 ^ RI
Ht ^ RIHu Ht ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt R	R
.t ! R R
]4      t]P9                  ]P:                  ! R4      R53]P:                  ! R4      R63]P:                  ! R4      R3]P:                  ! R4      R73]P:                  ! R4      R83]P:                  ! R4      R93]	P<                  R:3]	P>                  R;3]	P@                  R3]	PB                  R3]	PD                  R3]	PF                  R<334      R 4       t$]PK                  ]P:                  ! R4      ]P:                  ! R4      3R4      R 4       t$]PK                  ]P:                  ! R4      R4      R 4       t$]PK                  ]P:                  ! R4      R4      R 4       t$]PK                  ]P:                  ! R 4      R!4      R" 4       t$]PK                  ]P:                  ! R#4      R$4      R% 4       t$]PK                  ]P:                  ! R&4      R'4      R( 4       t$R) t&]PK                  ]P:                  ! R*4      ]P:                  ! R+4      3R,4      R- 4       t$]PO                  ]	PP                  4      R. 4       t$R/ t)]PO                  ]	PT                  4      R0 4       t$]PO                  ]	PV                  4      R1 4       t$R2 t,R=R3 lt-].R48X  d   ^ RI/t/]/P`                  ! ]-! 4       4       R# R# )>zsChange the units-per-EM of a font.

AAT and Graphite tables are not supported. CFF/CFF2 fonts
are de-subroutinized.)	TTVisitorN)VarStoreData)builder)OnlineMultiVarStoreBuilder)Vector)otRound)batched
scale_upemScalerVisitorc                   s,   a  ] tR t^t o R tR tRtV tR# )r   c                s    Wn         R # NscaleFactor)selfr      &&@/usr/lib64/python3.14/site-packages/fontTools/ttLib/scaleUpem.py__init__ZScalerVisitor.__init__   s    &    c                s8    \        WP                  ,          4      # r	   )r   r   )r   vr   r   scaleZScalerVisitor.scale   s    q+++,,r   r
   N)__name__Z
__module__Z__qualname__Z__firstlineno__r   r   Z__static_attributes__Z__classdictcell__)Z__classdict__s   @r   r   r      s     '- -r   headZpostZVORGZdefaultVertOriginYZhheaZvheazOS/2Z
CoordinateZValuec                 s<    \        WV P                  V4      4       R # r	   )setattrr   )visitorobjattrvalues   &&&&r   visitr      s    D Cw}}U+,r   ZhmtxZvmtxmetricsc                 st    V F1  pW4,          w  rVV P                  V4      V P                  V4      3W4&   K3  	  R # r	   r   )r   r   r   r   gZadvanceZlsb   &&&&   r   r   r   c   s5     z]]7+W]]3-??
 r   ZVMTXVOriginRecordsc                 sJ    V F  pV P                  W4,          4      W4&   K  	  R # r	   r   )r   r   r   r   r   s   &&&& r   r   r   l   s     #MM.*;< r   glyfglyphsc           	      s0   VP                  4        EF   pR F0  p\        WBR4      pVf   K  \        WBV P                  V4      4       K2  	  VP	                  4       '       dV   VP
                   FC  pV P                  VP                  4      Vn        V P                  VP                  4      Vn        KE  	  K  \        VR4      '       g   K  VP                  p\        V4       F,  w  pw  rV P                  V	4      V P                  V
4      3Wx&   K.  	  EK  	  R# )xMinNcoordinates)r"   xMaxyMinyMax)Zvaluesgetattrr   r   ZisComposite
componentsxyZhasattrr#   	enumerate)r   r   r   r!   r   r   	componentr#   ir)   r*   s   &&&&       r   r   r   r   s    ]]_4D&A}q!12 5
 ==??\\	%mmIKK8	%mmIKK8	 * 1m$$--K&{3	6A!(q!17==3C!C 4 r   Zgvar
variationsc                 s0   V P                   R ,          pVP                  4        Fn  w  rVWE,          pV F[  pVP                  p	\        V	4       F=  w  rVf   K  V P	                  V^ ,          4      V P	                  V^,          4      3W&   K?  	  K]  	  Kp  	  R# )r    N)fontZitemsr#   r+   r   )r   r   r   r.   Z	glyfTableZ	glyphNameZvarlistZglyphZvarr#   r-   xys   &&&&        r   r   r      s    V$I(..0	$C//K";/:!(r!u!5w}}RU7K!K 0  1r   ZVARCtablec                 s   V P                   R ,          pVP                   Uu. uF  qUP                  NK  	  ppVP                  p\	        V4      pVP
                  P                   EFa  p	V	P                   EFL  p
V
P                  pV P                  VP                  4      Vn
        V P                  VP                  4      Vn        V P                  VP                  4      Vn        V P                  VP                  4      Vn        V
P                  \        P                   8w  Ed   V
P                  pV\        P                   8w  d   V^,	          pVR,          pVP"                  V,          pVP$                  V,          pVP'                  VP)                  WP                  4      4       V'       dc   \+        V4      VP,                  ,          p\/        \1        VV4      4      pV Uu. uF  p\3        V4      NK  	  ppVP5                  V4      V
n        M\        P                   V
n        V
P6                  \        P                   8w  g   EK  V
P6                  pV\        P                   8w  g   EK  V^,	          pVR,          pXP$                  VR,          ,          pV^,	          pVR,          pVP"                  V,          pVP$                  V,          pVP'                  VP)                  WP                  4      4       V'       Ed   \+        V4      VP,                  ,          pV
P8                  p\/        \1        VV4      4      p. pV EFG  p\/        V4      p^ pV\        P:                  P<                  ,          '       d%   V P                  VV,          4      VV&   V^,          pV\        P:                  P>                  ,          '       d%   V P                  VV,          4      VV&   V^,          pV\        P:                  P@                  ,          '       d
   V^,          pV\        P:                  PB                  ,          '       d
   V^,          pV\        P:                  PD                  ,          '       d
   V^,          pV\        P:                  PF                  ,          '       d
   V^,          pV\        P:                  PH                  ,          '       d
   V^,          pV\        P:                  PJ                  ,          '       d%   V P                  VV,          4      VV&   V^,          pV\        P:                  PL                  ,          '       d%   V P                  VV,          4      VV&   V^,          pVPO                  \3        V4      4       EKJ  	  TpVP5                  V4      V
n        EK7  \        P                   V
n        EKO  	  EKd  	  VPQ                  4       Vn        R# u upi u upi )fvari  N))r/   ZaxesZaxisTagZMultiVarStorer   ZVarCompositeGlyphsZVarCompositeGlyphr(   	transformr   Z
translateXZ
translateYZtCenterXZtCenterYZaxisValuesVarIndexotTablesZNO_VARIATION_INDEXZMultiVarDataItemZsetSupportsZget_supportsZlenZVarRegionCountlistr   r   ZstoreDeltasZtransformVarIndexflagsZVarComponentFlagsZHAVE_TRANSLATE_XZHAVE_TRANSLATE_YZHAVE_ROTATIONZHAVE_SCALE_XZHAVE_SCALE_YZHAVE_SKEW_XZHAVE_SKEW_YZHAVE_TCENTER_XZHAVE_TCENTER_YZappendZfinish)r   r   r   Zvarcr2   ZaZfvarAxesZstoreZstoreBuilderr   r,   ZtZvarIdxZmajorZminorvarDataZvecZmr   r7   ZnewVecr-   s   &&&&                  r   r   r      sZ    <<D#'99-9a		9H-E-h7L$$66I##A"==6AL"==6AL qzz2AJ qzz2AJ++x/J/JJ"55 X888"bLE"VOE#007G!,,u-C ,,U-?-?yy-QRH(>(>>"73?3256#Qvay#67C7O7OPS7T	47?7R7R	4**h.I.II"44X888"bLE"VOE!,,v7C"bLE"VOE#007G!,,u-C ,,U-?-?yy-QRsH(>(>> )"73?3!#!$A $QA !A$x'A'A'R'RRR'.}}QqT':! !Q$x'A'A'R'RRR'.}}QqT':! !Q$x'A'A'O'OOO !Q$x'A'A'N'NNN !Q$x'A'A'N'NNN !Q$x'A'A'M'MMM !Q$x'A'A'M'MMM !Q$x'A'A'P'PPP'.}}QqT':! !Q$x'A'A'P'PPP'.}}QqT':! !Q"MM&)47 "%8 %6B6N6Ns6S	36>6Q6Q	3S & 7X &,,.Dc .4 7s   W"%W'Zkern
kernTablesc                 s    V F?  pVP                   pVP                  4        F  pV P                  WV,          4      WV&   K  	  KA  	  R # r	   )	kernTablekeysr   )r   r   r   r9   r1   r:   Zkr   r   r   r      s8    OO	!A"==6IL " r   c                 s    \        V4       F`  w  r#\        V\        4      '       g.   \        V\        4      '       g   V P	                  V4      W&   KF  KH  VR,          p\        W4       WCR&   Kb  	  R# )   Ni)r+   
isinstancer6   Zbytesr   
_cff_scale)r   argsr-   ZargZ
num_blends   &&   r   r>   r>      s[    D/#t$$c5))!--, * RJw$ G "r   zCFF ZCFF2cffc           
      s8   VP                  4        VP                  ^ ,          p\        VRR4      pVe   VP                  MRp\	        4       pVP                  4        EF  pW8,          p	V	P                  p
V	P                   F  pV
P                  V4      w  rVP                  VP                  4       \        P                  ! VP                  VR7      pV F  w  ppVR8X  d   K  \        V V4       K  	  \        P                  ! V4      VP                  R&   K  	  R FT  p\        WBR4      pVf   K  \!        V\"        4      '       d   \        V V4       K9  \%        WBV P'                  V4      4       KV  	  \)        ^4       F,  pVP*                  V;;,          V P,                  ,          uu&   K.  	  V F^  pR FU  p\        VVR4      pVf   K  \!        V\"        4      '       d   \        V V4       K:  \%        VW P'                  V4      4       KW  	  K`  	  EK  	  R# )i    ZVarStoreN)getNumRegionsZvsindex:NNN)ZUnderlinePositionZUnderlineThicknessZFontBBoxZStrokeWidth)
Z
BlueValuesZ
OtherBluesZFamilyBluesZFamilyOtherBluesZStdHWZStdVWZ	StemSnapHZ	StemSnapVZdefaultWidthXZnominalWidthX)ZdesubroutinizeZtopDictIndexr'   rB   Zsetr;   ZCharStringsZcharsetZgetItemAndSelectorZaddprivatecffSpecializerZprogramToCommandsZprogramr>   ZcommandsToProgramr=   r6   r   r   ZrangeZ
FontMatrixr   )r   r   r   rA   ZtopDictZvarStorerB   ZprivatesZfontnamer/   Zcsr   ZcZ_ZcommandsZopr?   r   r-   rC   s   &&&&                r   r   r      s    q!Gw
D1H.6.BH**MuHHHJ}A((+DALL#%77		H %D?7D) % *;;HEAIIaL 
D G40E}%&&7E*w}}U';<
 qAq!W%8%88!   G  t4=eT**w.GT==+?@+  G r   c                 s    VP                    F*  p\        V4       F  w  r4V P                  V4      W#&   K  	  K,  	  VP                  4        R # r	   )r5   r+   r   ZcalculateNumShorts)r   r8   Zitemr-   r   r@   r   r   r   H  s>    dODAmmA&DG $   r   c                 s`   RTu;8:  d   ^8:  d+   M M'\         P                  P                  V n        Wn        R# \         P
                  ! 4       pVP                  4        ^ ;Vn        ;Vn        ;Vn	        Vn
        V;Vn        Vn        \         P                  P                  V n        W n        R# )i   Ni)r4   PaintFormatZPaintScaleUniformFormatr   Z	Affine2x3ZpopulateDefaultsr0   ZyxZdxZdyZxxZyyZPaintTransformZ	Transform)paintr   r3      && r   _setup_scale_paintrI   S  s    	U#m#++==""$I @AAILA9<A),"''IL9<''66ELOr   c                 s    VP                   p\        P                   ! 4       p\        W0P                  4       W#n         W1n         R # )T)Paintr4   rI   r   )r   ZrecordZoldPaintr      &&  r   r   r   b  s2    ||HNNEu112KLr   c                 sp   VP                   \        P                  P                  8w  d   R # \        P                  ! 4       pVP                   Vn         VP                  Vn        VP
                  Vn        V=V=\        V^V P                  ,          4       W!n        V P                  VP                  4       R# )TF)	rF   r4   rE   Z
PaintGlyphrJ   ZGlyphrI   r   r   )r   rG   ZnewPaintrH   r   r   r   o  s    ||x++666~~HllHO[[HN[[HNua'"5"556KMM(..!r   c                sp    V R,          P                   p\        W,          4      pVP                  V 4       R# )z1Change the units-per-EM of font to the new value.r   N)
unitsPerEmr   r   )r/   new_upemZupemr   rK   r   r   r     s)    <""DHO,GMM$r   c                s&   V f   ^ RI pVP                  R,          p ^ RIHp ^ RIHp ^ RIpVP                  RR R7      pVP                  RRRR	7       VP                  R
RRR	7       VP                  RRRRR7       VP                  V 4      pV! VP                  4      p\        VP                  4      pVP                  e   VP                  MV! VP                  RRR7      p	\        Wx4       \        RV	,          4       VP!                  V	4       R# )z Change the units-per-EM of fontsN:r<   NN)TTFont)makeOutputFileNamezfonttools ttLib.scaleUpem)Zdescriptionr/   z
Font file.)metavarhelprM   znew-upemzNew units-per-EM integer value.z--output-fileZpathzOutput file.)rP   ZdefaultrQ   Tz-scaled)Z	overWriteZsuffixz
Writing %s)sysZargvfontTools.ttLibrN   ZfontTools.misc.cliToolsrO   argparseZArgumentParserZadd_argumentZ
parse_argsr/   ZintrM   output_filer   ZprintZsave)
r?   rR   rN   rO   rT   ZparserZoptionsr/   rM   rU   s
   &         r   mainrV     s    |xx|&:$$#1S % F \B
J-N   N   %G',,D7##$H * 	YO  t	,
$%IIkr   Z__main__)rL   r"   r%   r$   r&   )ZunderlinePositionZunderlineThickness)ascentdescentlineGapZadvanceWidthMaxZminLeftSideBearingZminRightSideBearingZ
xMaxExtentcaretOffset)rW   rX   rY   ZadvanceHeightMaxZminTopSideBearingZminBottomSideBearingZ
yMaxExtentrZ   )ZxAvgCharWidthZySubscriptXSizeZySubscriptYSizeZySubscriptXOffsetZySubscriptYOffsetZySuperscriptXSizeZySuperscriptYSizeZySuperscriptXOffsetZySuperscriptYOffsetZyStrikeoutSizeZyStrikeoutPositionZsTypoAscenderZsTypoDescenderZsTypoLineGapZusWinAscentZusWinDescentZsxHeightZ
sCapHeight)ZXAdvanceZYAdvanceZ
XPlacementZ
YPlacement)ZXCoordinateZYCoordinate)r"   r%   r$   r&   r	   )1Z__doc__ZfontTools.ttLib.ttVisitorr    rS   ZttLibZfontTools.ttLib.tables.otBaseZtablesZotBaseZfontTools.ttLib.tables.otTablesr4   ZfontTools.cffLibr   ZfontTools.cffLib.specializerZcffLibZspecializerrD   ZfontTools.varLibr   ZfontTools.varLib.multiVarStorer   ZfontTools.misc.vectorr   ZfontTools.misc.fixedToolsr   ZfontTools.misc.iterToolsr   Z__all__r   Zregister_attrsZgetTableClassZValueRecordZAnchorZ
CaretValueZ	BaseCoordZMathValueRecordZClipBoxr   Zregister_attrr>   ZregisterZVarDatarI   ZBaseGlyphPaintRecordrJ   r   rV   r   rR   Zexit) r   r   <module>r[      si  
 0  . . 2 2 ) 5 5 $ E ( - , 
)-I - 			V	$&TU			V	$&QR			V	$';='		
 '		
 '	
0   @	
 
89			|-			l,		!	!G-			;<{>@B-C@B- 
 %"5"5f"=>	@@ U008:JK= L=
 U008(CD DD& U008,G
L H
L U008'BU/ CU/p U008,G7 H7! 
 %"5"5f"=>?A?AJ (()! *!  556	 7	 ' (&$N zHHTV r   