+
    K<i(                     ,   ^ RI t ^ RIt^ RIt^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
 ^ RIHt ^ RIHt ^ RIHt ^ R	IHtHt ^ R
IHt ^ RIHtHt ]P2                  ! R4      t]R.,           tR tR tRR lt]R8X  d   ]P@                  ! ]! 4       4       R# R# )    N)StringIO)Path)configLogger)addOpenTypeFeaturesFromString)FeatureLibError)Lexer)makeOutputFileName)TTFont
TTLibError)Parser)TABLES	VoltToFeazfontTools.feaLibcmapc                    V ^ ,          \         P                  9  d   R# \        ;QJ d#    R V R,           4       F  '       g   K   RM	  RM! R V R,           4       4      '       d   R# R# )z9Check if the glyph name is valid according to FEA syntax.Tc              3   F   "   T F  q\         P                  9  x  K  	  R # 5iN)r   CHAR_NAME_CONTINUATION_).0cs   & </usr/lib/python3/dist-packages/fontTools/voltLib/__main__.py	<genexpr>)invalid_fea_glyph_name.<locals>.<genexpr>   s     
D8aE1118s   !:   NNF)r   CHAR_NAME_START_any)names   &r   invalid_fea_glyph_namer      sF    Awe,,,
s
D48
Dsss
D48
DDD    c                    Rp\        V 4       F[  w  r#V^ 8X  d(   V\        P                  9  d   VRV,           ,          pK3  V\        P                  9  d   VR,          pKS  W,          pK]  	  V# )zFSanitize the glyph name to ensure it is valid according to FEA syntax. a_)	enumerater   r   r   )r   	sanitizedir   s   &   r   sanitize_glyph_namer&      s`    I$6au555q Ie333INI   r   c           
     
   \         P                  ! RR7      pVP                  RRR\        R7       VP                  RRR	R
\        R7       VP                  RR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RR7       VP                  RRR R!^ R"7       VP                  R#R$R%RR7       VP                  V 4      p. R?Op\        V\        \        V4      ^,
          VP                  4      ,          R&7       VP                  ;'       g3    \        \        VP                  ;'       g    VP                  4      4      p\        P                  R'V R(24       VP                  pR)p \!        V4      pR*V9   d-   \#        VR*,          P$                  P'                  R+4      4      pM\        P)                  R,4       ^# Vf?   VP                  '       g   \        P)                  R-4       ^# \!        VP                  4      pVP-                  4       pR)p\.        ;QJ d    R. V 4       F  '       g   K   R/M	  R0M! R. V 4       4      '       dv   . pV F\  p	\1        V	4      '       d8   \3        V	4      p	\5        V4      \5        V4      ,          p
W9   d   R1V	,           p	K  VP7                  V	4       K^  	  VP9                  V4       \;        V4      P=                  4       p\        P                  R24       \?        W4      p VPA                  VPB                  R/R37      pTP                  pTPL                  '       dY   TPO                  R94      p\        P                  R:T R(24       \Q        TR;4      ;_uu_ 4       pTPS                  T4       R)R)R)4       \        P                  R<4        \U        TTTTPB                  R=7       TPX                  '       d   R@ F  pTT9   g   K  TT K  	  T'       dP   ^ R)I-pTP]                  4       pTP_                  T4       \!        T4      pTP9                  T4       . TR>,          n0        TP_                  T4       R)#   \*         d     ELi ; i  \D         d   pTPF                  '       d   h \I        TPJ                  ^ ,          R4R)4      pR5T R62pT'       d(   Tw  ppp\        P)                  T R7T R7T R8T 24       M\        P)                  T4        R)p?^# R)p?ii ; i  + '       g   i     ELw; i  \V         d4   pTPF                  '       d   h \        P)                  T4        R)p?^# R)p?ii ; i)Az4Build tables from a MS VOLT project into an OTF fontz*Use fontTools to compile MS VOLT projects.)descriptioninputINPUTz*Path to the input font/VTP file to process)metavarhelptypez-fz--font
INPUT_FONTz/Path to the input font (if INPUT is a VTP file)z-oz--outputoutputOUTPUTzPath to the output font.)destr+   r,   r-   z-tz--tables	TABLE_TAG+z!Specify the table(s) to be built.)r+   choicesnargsr,   z-Fz--debug-feature-filez)Write the generated feature file to disk.
store_true)r,   actionz--shipz+Remove source VOLT tables from output font.z-vz	--verbosez?Increase the logger verbosity. Multiple -v options are allowed.count)r,   r7   defaultz-Tz--tracebackzshow traceback for exceptions.)levelzCompiling MS VOLT to ''NTSIVzutf-8z"TSIV" table is missingzPlease provide an input fontc              3   8   "   T F  p\        V4      x  K  	  R # 5ir   )r   )r   ns   & r   r   main.<locals>.<genexpr>   s     
9j!!$$js   TFr!   zConverting VTP data to FEA)ignore_unsupported_settingslocation"z" is not supported:z: z.feazWriting FEA to 'wz Compiling FEA to OpenType tables)filenametablespost)WARNINGINFODEBUG)r<   TSISTSIPTSID)1argparseArgumentParseradd_argumentr   SUPPORTED_TABLES
parse_argsr   minlenverboser/   r	   fontr)   loginfor
   r   datadecodeerrorr   getGlyphOrderr   r   r&   setappendsetGlyphOrderr   parser   convertrF   NotImplementedError	tracebackgetattrargsdebug_feature_filewith_suffixopenwriter   r   shipioBytesIOsave
extraNames)re   parseroptionslevelsoutput_fontfile_or_pathrV   
glyphOrdertempGlyphOrderr>   existingdoc	converterfeaerA   messagepathlinecolumnfea_filenamefptagrk   fs   &                        r   mainr   ,   s   $$@F 9	   >   '    0   8	   :  
 N   -	   %G)Fvc#f+/7??CDE..  D7<<887==9%K HH%k]!45==LDl#T>#DL$5$5$<$<W$EFLII/0
 ||||II45gll# ##%JN
s
9j
9sss
9j
999A%a(('*~.Z@maA!!!$  	>*


$
$
&CHH)*#$IDQ ==L!!!"..v6#L>34,$$HHSM % HH/0%!>>		
 |||3Cd{I 4
 JJL		!ay:&"$VIIk_  >  
166!9j$7aS*+!)D$IIavQvhb	:;IIg
  %$$  		!	sU   =Q4 Q4 !R T
T. 4RRTA;TTT+	.U,9(U''U,__main__r   )!rN   loggingsysrk   r   pathlibr   	fontToolsr   fontTools.feaLib.builderr   fontTools.feaLib.errorr   fontTools.feaLib.lexerr   fontTools.misc.cliToolsr	   fontTools.ttLibr
   r   fontTools.voltLib.parserr   fontTools.voltLib.voltToFear   r   	getLoggerrW   rQ   r   r&   r   __name__exit r   r   <module>r      sx      
   " B 2 ( 6 . + 9*+VH$ ^B zHHTV r   