#> classes
#/> otclasses
@tnum = [zero one two three four five six seven eight nine];
@tnum2 = [zero.tnum one.tnum two.tnum three.tnum four.tnum five.tnum six.tnum seven.tnum eight.tnum nine.tnum];
@c2sc = [A AE Aacute Acircumflex Adieresis Agrave Aring Atilde B C Ccaron Ccedilla D Dcaron E Eacute Ebreve Ecaron Ecircumflex Edieresis Egrave Emacron Eth F G H I Iacute Ibreve Icircumflex Idieresis Igrave Imacron Itilde J Jcircumflex K L Lacute Lcaron M N Nacute Ncaron Ntilde O Oacute Obreve Ocircumflex Odieresis Ograve Omacron Oslash Otilde P Q R Racute Rcaron S Sacute Scaron Scircumflex T Tcaron Thorn U Uacute Ubreve Ucircumflex Udieresis Ugrave Umacron Uring V W Wcircumflex X Y Yacute Ycircumflex Ydieresis Z Zacute Zcaron Zdotaccent a aacute abreve amacron uni0400 uni0401 uni0402 uni0403 uni0404 uni0405 uni0406 uni0407 uni0408 uni0409 uni040A uni040B uni040C uni040D uni040E uni040F uni0410 uni0411 uni0412 uni0413 uni0414 uni0415 uni0416 uni0417 uni0418 uni0419 uni041A uni041B uni041C uni041D uni041E uni041F uni0420 uni0421 uni0422 uni0423 uni0424 uni0425 uni0426 uni0427 uni0428 uni0429 uni042A uni042B uni042C uni042D uni042E uni042F];
@c2sc2 = [A.sc AE.sc Aacute.sc Acircumflex.sc Adieresis.sc Agrave.sc Aring.sc Atilde.sc B.sc C.sc Ccaron.sc Ccedilla.sc D.sc Dcaron.sc E.sc Eacute.sc Ebreve.sc Ecaron.sc Ecircumflex.sc Edieresis.sc Egrave.sc Emacron.sc Eth.sc F.sc G.sc H.sc I.sc Iacute.sc Ibreve.sc Icircumflex.sc Idieresis.sc Igrave.sc Imacron.sc Itilde.sc J.sc Jcircumflex.sc K.sc L.sc Lacute.sc Lcaron.sc M.sc N.sc Nacute.sc Ncaron.sc Ntilde.sc O.sc Oacute.sc Obreve.sc Ocircumflex.sc Odieresis.sc Ograve.sc Omacron.sc Oslash.sc Otilde.sc P.sc Q.sc R.sc Racute.sc Rcaron.sc S.sc Sacute.sc Scaron.sc Scircumflex.sc T.sc Tcaron.sc Thorn.sc U.sc Uacute.sc Ubreve.sc Ucircumflex.sc Udieresis.sc Ugrave.sc Umacron.sc Uring.sc V.sc W.sc Wcircumflex.sc X.sc Y.sc Yacute.sc Ycircumflex.sc Ydieresis.sc Z.sc Zacute.sc Zcaron.sc Zdotaccent.sc a.sc aacute.sc abreve.sc amacron.sc uni0400.sc uni0401.sc uni0402.sc uni0403.sc uni0404.sc uni0405.sc uni0406.sc uni0407.sc uni0408.sc uni0409.sc uni040A.sc uni040B.sc uni040C.sc uni040D.sc uni040E.sc uni040F.sc uni0410.sc uni0411.sc uni0412.sc uni0413.sc uni0414.sc uni0415.sc uni0416.sc uni0417.sc uni0418.sc uni0419.sc uni041A.sc uni041B.sc uni041C.sc uni041D.sc uni041E.sc uni041F.sc uni0420.sc uni0421.sc uni0422.sc uni0423.sc uni0424.sc uni0425.sc uni0426.sc uni0427.sc uni0428.sc uni0429.sc uni042A.sc uni042B.sc uni042C.sc uni042D.sc uni042E.sc uni042F.sc];
#/< otclasses
#< classes

#> languagesystem
languagesystem DFLT dflt;
languagesystem latn dflt;
languagesystem latn MOL;
languagesystem latn ROM;
languagesystem cyrl dflt;
languagesystem cyrl BGR;
languagesystem cyrl BSH;
languagesystem cyrl SRB;
languagesystem grek dflt;
#< languagesystem

feature aalt {
# Access All Alternates

#> feature
  feature locl;
  feature sinf;
  feature sups;
  feature subs;
  feature smcp;
  feature c2sc;
  feature pnum;
  feature tnum;
  feature onum;
  feature lnum;
  feature salt;
  feature hist;
  feature swsh;
  feature case;
#< feature
} aalt;
feature ccmp {
# Glyph Composition/Decomposition

#> feature
  sub space uni030F by space_uni030F;
#< feature
} ccmp;

feature locl {
# Localized Forms

#> feature
  script cyrl; # Cyrillic
  language BGR; # Bulgarian
  sub uni0414 by uni0414.loclBGR;
  sub uni0416 by uni0416.loclBGR;
  sub uni041A by uni041A.loclBGR;
  sub uni041B by uni041B.loclBGR;
  sub uni0424 by uni0424.loclBGR;
  sub uni0432 by uni0432.loclBGR;
  sub uni0433 by uni0433.loclBGR;
  sub uni0434 by uni0434.loclBGR;
  sub uni0436 by uni0436.loclBGR;
  sub uni0437 by uni0437.loclBGR;
  sub uni0438 by uni0438.loclBGR;
  sub uni0439 by uni0439.loclBGR;
  sub uni043A by uni043A.loclBGR;
  sub uni043B by uni043B.loclBGR;
  sub uni043D by uni043D.loclBGR;
  sub uni043F by uni043F.loclBGR;
  sub uni0442 by uni0442.loclBGR;
  sub uni0444 by uni0444.loclBGR;
  sub uni0446 by uni0446.loclBGR;
  sub uni0447 by uni0447.loclBGR;
  sub uni0448 by uni0448.loclBGR;
  sub uni0449 by uni0449.loclBGR;
  sub uni044A by uni044A.loclBGR;
  sub uni044B by uni044B.loclBGR;
  sub uni044C by uni044C.loclBGR;
  sub uni044E by uni044E.loclBGR;
  sub uni045D by uni045D.loclBGR;

  language BSH; # Bashkir
  sub Zetailcyr by Zetailcyr.loclBSH;
  sub uni0492 by uni0492.loclBSH;
  sub uni0493 by uni0493.loclBSH;
  sub uni04AA by uni04AA.loclBSH;
  sub uni04AB by uni04AB.loclBSH;
  sub zetailcyr by zetailcyr.loclBSH;

  language SRB; # Serbian
  sub uni0431 by uni0431.loclSRB;

  script latn; # Latin
  language MOL; # Moldavian
  sub Scedilla by Scommaaccent;
  sub scedilla by scommaaccent;
  sub uni0162 by uni021A;
  sub uni0163 by uni021B;

  language ROM; # Romanian
  sub Scedilla by Scommaaccent;
  sub scedilla by scommaaccent;
  sub uni0162 by uni021A;
  sub uni0163 by uni021B;
#< feature
} locl;

feature sinf {
# Scientific Inferiors

#> feature
  sub eight by eight.subs;
  sub five by five.subs;
  sub four by four.subs;
  sub nine by nine.subs;
  sub one by one.subs;
  sub parenleft by parenleft.subs;
  sub parenright by parenright.subs;
  sub seven by seven.subs;
  sub six by six.subs;
  sub three by three.subs;
  sub two by two.subs;
  sub zero by zero.subs;
#< feature
} sinf;

feature sups {
# Superscript

#> feature
  sub a by uni1D43;
  sub b by uni1D47;
  sub beta by uni1D5D;
  sub c by uni1D9C;
  sub chi by uni1D61;
  sub d by uni1D48;
  sub e by uni1D49;
  sub eight by eight.sups;
  sub eng by uni1D51;
  sub eth by uni1D9E;
  sub f by uni1DA0;
  sub five by five.sups;
  sub four by four.sups;
  sub g by uni1D4D;
  sub gamma by uni1D5E;
  sub h by uni02B0;
  sub j by uni02B2;
  sub k by uni1D4F;
  sub l by uni02E1;
  sub m by uni1D50;
  sub n by uni207F;
  sub nine by nine.sups;
  sub o by uni1D52;
  sub one by one.sups;
  sub p by uni1D56;
  sub parenleft by parenleft.sups;
  sub parenright by parenright.sups;
  sub phi by uni1D60;
  sub r by uni02B3;
  sub s by uni02E2;
  sub seven by seven.sups;
  sub six by six.sups;
  sub t by uni1D57;
  sub three by three.sups;
  sub two by two.sups;
  sub u by uni1D58;
  sub uni0250 by uni1D44;
  sub uni0251 by uni1D45;
  sub uni0252 by uni1D9B;
  sub uni0254 by uni1D53;
  sub uni0255 by uni1D9D;
  sub uni0259 by uni1D4A;
  sub uni025B by uni1D4B;
  sub uni025C by uni1D9F;
  sub uni025F by uni1DA1;
  sub uni0261 by uni1DA2;
  sub uni0263 by uni02E0;
  sub uni0265 by uni1DA3;
  sub uni0266 by uni02B1;
  sub uni0268 by uni1DA4;
  sub uni0269 by uni1DA5;
  sub uni026A by uni1DA6;
  sub uni026D by uni1DA9;
  sub uni026F by uni1D5A;
  sub uni0270 by uni1DAD;
  sub uni0271 by uni1DAC;
  sub uni0272 by uni1DAE;
  sub uni0273 by uni1DAF;
  sub uni0274 by uni1DB0;
  sub uni0275 by uni1DB1;
  sub uni0278 by uni1DB2;
  sub uni0279 by uni02B4;
  sub uni027B by uni02B5;
  sub uni0281 by uni02B6;
  sub uni0282 by uni1DB3;
  sub uni0283 by uni1DB4;
  sub uni0289 by uni1DB6;
  sub uni028A by uni1DB7;
  sub uni028B by uni1DB9;
  sub uni028C by uni1DBA;
  sub uni0290 by uni1DBC;
  sub uni0291 by uni1DBD;
  sub uni0292 by uni1DBE;
  sub uni0295 by uni02E4;
  sub uni029D by uni1DA8;
  sub uni029F by uni1DAB;
  sub uni043D by uni1D78;
  sub v by uni1D5B;
  sub w by uni02B7;
  sub x by uni02E3;
  sub y by uni02B8;
  sub z by uni1DBB;
  sub zero by zero.sups;
#< feature
} sups;

feature subs {
# Subscript

#> feature
  sub eight by eight.subs;
  sub five by five.subs;
  sub four by four.subs;
  sub nine by nine.subs;
  sub one by one.subs;
  sub parenleft by parenleft.subs;
  sub parenright by parenright.subs;
  sub seven by seven.subs;
  sub six by six.subs;
  sub three by three.subs;
  sub two by two.subs;
  sub zero by zero.subs;
#< feature
} subs;

feature frac {
# Fractions

#> feature
lookup frac_precomposed {

  sub one slash four by onequarter;
  sub one slash two by onehalf;
  sub three slash four by threequarters;
  sub one slash three by onethird;
  sub two slash three by twothirds;
  sub one slash eight by oneeighth;
  sub three slash eight by threeeighths;
  sub five slash eight by fiveeighths;
  sub seven slash eight by seveneighths;
  sub one fraction four by onequarter;
  sub one fraction two by onehalf;
  sub three fraction four by threequarters;
  sub one fraction three by onethird;
  sub two fraction three by twothirds;
  sub one fraction eight by oneeighth;
  sub three fraction eight by threeeighths;
  sub five fraction eight by fiveeighths;
  sub seven fraction eight by seveneighths;
} frac_precomposed;
#< feature
} frac;

feature ordn {
# Ordinals

#> feature
  sub [zero one two three four five six seven eight nine] [A a]' by ordfeminine;
  sub [zero one two three four five six seven eight nine] [O o]' by ordmasculine;
  sub N o period by uni2116;
#< feature
} ordn;

feature smcp {
# Small Caps

#> feature
  sub a by a.sc;
  sub aacute by aacute.sc;
  sub abreve by abreve.sc;
  sub acircumflex by Acircumflex.sc;
  sub adieresis by Adieresis.sc;
  sub ae by AE.sc;
  sub agrave by Agrave.sc;
  sub amacron by amacron.sc;
  sub aring by Aring.sc;
  sub atilde by Atilde.sc;
  sub b by B.sc;
  sub c by C.sc;
  sub ccaron by Ccaron.sc;
  sub ccedilla by Ccedilla.sc;
  sub d by D.sc;
  sub dcaron by Dcaron.sc;
  sub dotlessi by dotlessi.small;
  sub e by E.sc;
  sub eacute by Eacute.sc;
  sub ebreve by Ebreve.sc;
  sub ecaron by Ecaron.sc;
  sub ecircumflex by Ecircumflex.sc;
  sub edieresis by Edieresis.sc;
  sub egrave by Egrave.sc;
  sub emacron by Emacron.sc;
  sub eth by Eth.sc;
  sub f by F.sc;
  sub g by G.sc;
  sub h by H.sc;
  sub i by I.sc;
  sub iacute by Iacute.sc;
  sub ibreve by Ibreve.sc;
  sub icircumflex by Icircumflex.sc;
  sub idieresis by Idieresis.sc;
  sub igrave by Igrave.sc;
  sub imacron by Imacron.sc;
  sub itilde by Itilde.sc;
  sub j by J.sc;
  sub jcircumflex by Jcircumflex.sc;
  sub k by K.sc;
  sub l by L.sc;
  sub lacute by Lacute.sc;
  sub lcaron by Lcaron.sc;
  sub m by M.sc;
  sub n by N.sc;
  sub nacute by Nacute.sc;
  sub ncaron by Ncaron.sc;
  sub ntilde by Ntilde.sc;
  sub o by O.sc;
  sub oacute by Oacute.sc;
  sub obreve by Obreve.sc;
  sub ocircumflex by Ocircumflex.sc;
  sub odieresis by Odieresis.sc;
  sub ograve by Ograve.sc;
  sub omacron by Omacron.sc;
  sub oslash by Oslash.sc;
  sub otilde by Otilde.sc;
  sub p by P.sc;
  sub q by Q.sc;
  sub r by R.sc;
  sub racute by Racute.sc;
  sub rcaron by Rcaron.sc;
  sub s by S.sc;
  sub sacute by Sacute.sc;
  sub scaron by Scaron.sc;
  sub scircumflex by Scircumflex.sc;
  sub t by T.sc;
  sub tcaron by Tcaron.sc;
  sub thorn by Thorn.sc;
  sub u by U.sc;
  sub uacute by Uacute.sc;
  sub ubreve by Ubreve.sc;
  sub ucircumflex by Ucircumflex.sc;
  sub udieresis by Udieresis.sc;
  sub ugrave by Ugrave.sc;
  sub umacron by Umacron.sc;
  sub uni0430 by uni0410.sc;
  sub uni0431 by uni0411.sc;
  sub uni0432 by uni0412.sc;
  sub uni0433 by uni0413.sc;
  sub uni0434 by uni0414.sc;
  sub uni0435 by uni0415.sc;
  sub uni0436 by uni0416.sc;
  sub uni0437 by uni0417.sc;
  sub uni0438 by uni0418.sc;
  sub uni0439 by uni0419.sc;
  sub uni043A by uni041A.sc;
  sub uni043B by uni041B.sc;
  sub uni043C by uni041C.sc;
  sub uni043D by uni041D.sc;
  sub uni043E by uni041E.sc;
  sub uni043F by uni041F.sc;
  sub uni0440 by uni0420.sc;
  sub uni0441 by uni0421.sc;
  sub uni0442 by uni0422.sc;
  sub uni0443 by uni0423.sc;
  sub uni0444 by uni0424.sc;
  sub uni0445 by uni0425.sc;
  sub uni0446 by uni0426.sc;
  sub uni0447 by uni0427.sc;
  sub uni0448 by uni0428.sc;
  sub uni0449 by uni0429.sc;
  sub uni044A by uni042A.sc;
  sub uni044B by uni042B.sc;
  sub uni044C by uni042C.sc;
  sub uni044D by uni042D.sc;
  sub uni044E by uni042E.sc;
  sub uni044F by uni042F.sc;
  sub uni0450 by uni0400.sc;
  sub uni0451 by uni0401.sc;
  sub uni0452 by uni0402.sc;
  sub uni0453 by uni0403.sc;
  sub uni0454 by uni0404.sc;
  sub uni0455 by uni0405.sc;
  sub uni0456 by uni0406.sc;
  sub uni0457 by uni0407.sc;
  sub uni0458 by uni0408.sc;
  sub uni0459 by uni0409.sc;
  sub uni045A by uni040A.sc;
  sub uni045B by uni040B.sc;
  sub uni045C by uni040C.sc;
  sub uni045D by uni045D.sc;
  sub uni045E by uni040E.sc;
  sub uni045F by uni040F.sc;
  sub uni0463 by uni0463.sc;
  sub uni0473 by uni0473.sc;
  sub uni0475 by uni0475.sc;
  sub uni04A5 by uni04A5.sc;
  sub uni04AB by uni04AB.sc;
  sub uni04AF by uni04AF.sc;
  sub uni04B1 by uni04B1.sc;
  sub uni04C2 by uni04C2.sc;
  sub uni04D1 by uni04D1.sc;
  sub uni04D3 by uni04D3.sc;
  sub uni04D5 by uni04D5.sc;
  sub uni04D7 by uni04D7.sc;
  sub uni04DD by uni04DD.sc;
  sub uni04DF by uni04DF.sc;
  sub uni04E3 by uni04E3.sc;
  sub uni04E5 by uni04E5.sc;
  sub uni04E7 by uni04E7.sc;
  sub uni04E9 by uni04E9.sc;
  sub uni04EB by uni04EB.sc;
  sub uni04ED by uni04ED.sc;
  sub uni04EF by uni04EF.sc;
  sub uni04F1 by uni04F1.sc;
  sub uni04F5 by uni04F5.sc;
  sub uni04F9 by uni04F9.sc;
  sub uring by Uring.sc;
  sub v by V.sc;
  sub w by W.sc;
  sub wacute by wacute.sc;
  sub wcircumflex by Wcircumflex.sc;
  sub wdieresis by wdieresis.sc;
  sub wgrave by wgrave.sc;
  sub x by X.sc;
  sub y by Y.sc;
  sub yacute by Yacute.sc;
  sub ycircumflex by Ycircumflex.sc;
  sub ydieresis by Ydieresis.sc;
  sub z by Z.sc;
  sub zacute by Zacute.sc;
  sub zcaron by Zcaron.sc;
  sub zdotaccent by Zdotaccent.sc;
#< feature
} smcp;

feature c2sc {
# Capitals to Small Caps

#> feature
  sub @c2sc by @c2sc2;
#< feature
} c2sc;

feature pnum {
# Proportional Figures

#> feature
  sub eight.tosf by eight.osf;
  sub eight.oldstyle.pnum by eight.osf;
  sub eight.tnum by eight.osf;
  sub eight by eight.pnum;
  sub five.tosf by five.osf;
  sub five.oldstyle.pnum by five.osf;
  sub five.tnum by five.osf;
  sub five by five.pnum;
  sub four.tosf by four.osf;
  sub four.oldstyle.pnum by four.osf;
  sub four.tnum by four.osf;
  sub four by four.pnum;
  sub nine.tosf by nine.osf;
  sub nine.oldstyle.pnum by nine.osf;
  sub nine.tnum by nine.osf;
  sub nine by nine.pnum;
  sub one.tosf by one.osf;
  sub one.oldstyle.pnum by one.osf;
  sub one.tnum by one.osf;
  sub one by one.pnum;
  sub seven.tosf by seven.osf;
  sub seven.oldstyle.pnum by seven.osf;
  sub seven.tnum by seven.osf;
  sub seven by seven.pnum;
  sub six.tosf by six.osf;
  sub six.oldstyle.pnum by six.osf;
  sub six.tnum by six.osf;
  sub six by six.pnum;
  sub three.tosf by three.osf;
  sub three.oldstyle.pnum by three.osf;
  sub three.tnum by three.osf;
  sub three by three.pnum;
  sub two.tosf by two.osf;
  sub two.oldstyle.pnum by two.osf;
  sub two.tnum by two.osf;
  sub two by two.pnum;
  sub zero.tosf by zero.osf;
  sub zero.oldstyle.pnum by zero.osf;
  sub zero.tnum by zero.osf;
  sub zero by zero.pnum;
#< feature
} pnum;

feature tnum {
# GSUB feature: Tabular Figures
# Lookups: 1

  sub @tnum by @tnum2;

} tnum;

feature onum {
# Oldstyle Figures

#> feature
  sub eight.tnum by eight.tosf;
  sub eight by eight.oldstyle.pnum;
  sub eight.pnum by eight.oldstyle.pnum;
  sub five.tnum by five.tosf;
  sub five by five.oldstyle.pnum;
  sub five.pnum by five.oldstyle.pnum;
  sub four.tnum by four.tosf;
  sub four by four.oldstyle.pnum;
  sub four.pnum by four.oldstyle.pnum;
  sub nine.tnum by nine.tosf;
  sub nine by nine.oldstyle.pnum;
  sub nine.pnum by nine.oldstyle.pnum;
  sub one.tnum by one.tosf;
  sub one by one.oldstyle.pnum;
  sub one.pnum by one.oldstyle.pnum;
  sub seven.tnum by seven.tosf;
  sub seven by seven.oldstyle.pnum;
  sub seven.pnum by seven.oldstyle.pnum;
  sub six.tnum by six.tosf;
  sub six by six.oldstyle.pnum;
  sub six.pnum by six.oldstyle.pnum;
  sub three.tnum by three.tosf;
  sub three by three.oldstyle.pnum;
  sub three.pnum by three.oldstyle.pnum;
  sub two.tnum by two.tosf;
  sub two by two.oldstyle.pnum;
  sub two.pnum by two.oldstyle.pnum;
  sub zero.tnum by zero.tosf;
  sub zero by zero.oldstyle.pnum;
  sub zero.pnum by zero.oldstyle.pnum;
#< feature
} onum;

feature lnum {
# Lining Figures

#> feature
  sub eight.tosf by eight.tnum;
  sub eight.osf by eight.tnum;
  sub eight.oldstyle.pnum by eight.pnum;
  sub eight by eight.pnum;
  sub five.tosf by five.tnum;
  sub five.osf by five.tnum;
  sub five.oldstyle.pnum by five.pnum;
  sub five by five.pnum;
  sub four.tosf by four.tnum;
  sub four.osf by four.tnum;
  sub four.oldstyle.pnum by four.pnum;
  sub four by four.pnum;
  sub nine.tosf by nine.tnum;
  sub nine.osf by nine.tnum;
  sub nine.oldstyle.pnum by nine.pnum;
  sub nine by nine.pnum;
  sub one.tosf by one.tnum;
  sub one.osf by one.tnum;
  sub one.oldstyle.pnum by one.pnum;
  sub one by one.pnum;
  sub seven.tosf by seven.tnum;
  sub seven.osf by seven.tnum;
  sub seven.oldstyle.pnum by seven.pnum;
  sub seven by seven.pnum;
  sub six.tosf by six.tnum;
  sub six.osf by six.tnum;
  sub six.oldstyle.pnum by six.pnum;
  sub six by six.pnum;
  sub three.tosf by three.tnum;
  sub three.osf by three.tnum;
  sub three.oldstyle.pnum by three.pnum;
  sub three by three.pnum;
  sub two.tosf by two.tnum;
  sub two.osf by two.tnum;
  sub two.oldstyle.pnum by two.pnum;
  sub two by two.pnum;
  sub zero.tosf by zero.tnum;
  sub zero.osf by zero.tnum;
  sub zero.oldstyle.pnum by zero.pnum;
  sub zero by zero.pnum;
#< feature
} lnum;

feature salt {
# Stylistic Alternates

#> feature
  sub backslash from [backslash.alt];
  sub bar from [bar.alt];
  sub slash from [slash.alt];
#< feature
} salt;

feature dlig {
# Discretionary Ligatures

#> feature
  sub f J by f_J;
  sub s t by s_t;
#< feature
} dlig;

feature hist {
# Historical Forms

#> feature
  sub s by longs;
#< feature
} hist;

feature swsh {
# Swash

#> feature
  sub uni0436 by uni0436.swsh;
  sub uni043A by uni043A.swsh;
#< feature
} swsh;

feature case {
# Case Sensitive Forms

#> feature
  sub acute by acute.cap;
  sub brevecyr by brevecyr.cap;
  sub caron by caron.cap;
  sub dieresis by dieresis.cap;
  sub grave by grave.cap;
  sub hungarumlaut by hungarumlaut.cap;
  sub macron by macron.cap;
  sub uni0302 by uni0302.cap;
  sub uni0304 by uni0304.cap;
  sub uni0306 by uni0306.cap;
  sub uni0307 by uni0307.cap;
  sub uni0308 by uni0308.cap;
  sub uni030A by uni030A.cap;
  sub uni030B by uni030B.cap;
  sub uni030C by uni030C.cap;
  sub uni030F by uni030F.cap;
  sub uni0311 by uni0311.cap;
  sub uni0324 by uni0324.cap;
  sub uni0325 by uni0325.cap;
  sub uni032D by uni032D.cap;
  sub uni032E by uni032E.cap;
  sub uni0330 by uni0330.cap;
  sub uni0331 by uni0331.cap;
#< feature
} case;

feature mark {
# GPOS feature : Mark Positioning
    markClass acutecomb <anchor -230 542> @top;
    markClass gravecomb <anchor -186 542> @top;
    markClass periodcentered <anchor 70 251> @dot;
    markClass quoteright <anchor 142 742> @quote;
    markClass tildecomb <anchor -217 542> @top;
    markClass uni0308 <anchor -214 542> @top;
    markClass uni030A.cap <anchor -200 713> @aring;
    markClass uni030B <anchor -301 520> @top;
    markClass uni0327 <anchor -145 10> @cedilla;
    markClass uni0328 <anchor -167 10> @ogonek;
    markClass acute.cap <anchor 226 762> @top;
    markClass uni0302 <anchor -300 542> @top;
    markClass uni030A <anchor -293 548> @aring;
    markClass uni030A <anchor -300 780> @top;

  lookup markLTR1 {
      pos base A
          <anchor 308 670> mark @aring
          <anchor 530 10> mark @ogonek;
      pos base Aacute
          <anchor 308 670> mark @aring
          <anchor 530 10> mark @ogonek;
      pos base Abreve
          <anchor 308 670> mark @aring
          <anchor 530 10> mark @ogonek;
      pos base Acircumflex
          <anchor 308 670> mark @aring
          <anchor 530 10> mark @ogonek;
      pos base Adieresis
          <anchor 308 670> mark @aring
          <anchor 530 10> mark @ogonek;
      pos base Agrave
          <anchor 308 670> mark @aring
          <anchor 530 10> mark @ogonek;
      pos base Alpha
          <anchor 308 670> mark @aring
          <anchor 530 10> mark @ogonek;
      pos base Amacron
          <anchor 308 670> mark @aring
          <anchor 530 10> mark @ogonek;
      pos base Aogonek
          <anchor 308 670> mark @aring
          <anchor 530 10> mark @ogonek;
      pos base Aring
          <anchor 308 670> mark @aring
          <anchor 530 10> mark @ogonek;
      pos base Aringacute
          <anchor 308 670> mark @aring
          <anchor 530 10> mark @ogonek;
      pos base Atilde
          <anchor 308 670> mark @aring
          <anchor 530 10> mark @ogonek;
      pos base E
          <anchor 479 10> mark @ogonek;
      pos base Eacute
          <anchor 479 10> mark @ogonek;
      pos base Ebreve
          <anchor 479 10> mark @ogonek;
      pos base Ecaron
          <anchor 479 10> mark @ogonek;
      pos base Ecircumflex
          <anchor 479 10> mark @ogonek;
      pos base Edieresis
          <anchor 479 10> mark @ogonek;
      pos base Edotaccent
          <anchor 479 10> mark @ogonek;
      pos base Egrave
          <anchor 479 10> mark @ogonek;
      pos base Emacron
          <anchor 479 10> mark @ogonek;
      pos base Eogonek
          <anchor 479 10> mark @ogonek;
      pos base Epsilon
          <anchor 479 10> mark @ogonek;
      pos base I
          <anchor 190 10> mark @ogonek;
      pos base Iacute
          <anchor 190 10> mark @ogonek;
      pos base Ibreve
          <anchor 190 10> mark @ogonek;
      pos base Icircumflex
          <anchor 190 10> mark @ogonek;
      pos base Idieresis
          <anchor 190 10> mark @ogonek;
      pos base Idotaccent
          <anchor 190 10> mark @ogonek;
      pos base Igrave
          <anchor 190 10> mark @ogonek;
      pos base Imacron
          <anchor 190 10> mark @ogonek;
      pos base Iogonek
          <anchor 190 10> mark @ogonek;
      pos base Iota
          <anchor 190 10> mark @ogonek;
      pos base Itilde
          <anchor 190 10> mark @ogonek;
      pos base U
          <anchor 427 0> mark @ogonek;
      pos base Uacute
          <anchor 427 0> mark @ogonek;
      pos base Ubreve
          <anchor 427 0> mark @ogonek;
      pos base Ucircumflex
          <anchor 427 0> mark @ogonek;
      pos base Udieresis
          <anchor 427 0> mark @ogonek;
      pos base Ugrave
          <anchor 427 0> mark @ogonek;
      pos base Uhungarumlaut
          <anchor 427 0> mark @ogonek;
      pos base Umacron
          <anchor 427 0> mark @ogonek;
      pos base Uogonek
          <anchor 427 0> mark @ogonek;
      pos base Uring
          <anchor 427 0> mark @ogonek;
      pos base Utilde
          <anchor 427 0> mark @ogonek;
      pos base a
          <anchor 437 10> mark @ogonek;
      pos base aacute
          <anchor 437 10> mark @ogonek;
      pos base abreve
          <anchor 437 10> mark @ogonek;
      pos base acircumflex
          <anchor 437 10> mark @ogonek;
      pos base adieresis
          <anchor 437 10> mark @ogonek;
      pos base agrave
          <anchor 437 10> mark @ogonek;
      pos base amacron
          <anchor 437 10> mark @ogonek;
      pos base aogonek
          <anchor 437 10> mark @ogonek;
      pos base aring
          <anchor 437 10> mark @ogonek;
      pos base aringacute
          <anchor 437 10> mark @ogonek;
      pos base atilde
          <anchor 437 10> mark @ogonek;
      pos base i
          <anchor 170 10> mark @ogonek;
      pos base u
          <anchor 519 10> mark @ogonek;
      pos base uacute
          <anchor 519 10> mark @ogonek;
      pos base ubreve
          <anchor 519 10> mark @ogonek;
      pos base ucircumflex
          <anchor 519 10> mark @ogonek;
      pos base udieresis
          <anchor 519 10> mark @ogonek;
      pos base ugrave
          <anchor 519 10> mark @ogonek;
      pos base uhungarumlaut
          <anchor 519 10> mark @ogonek;
      pos base umacron
          <anchor 519 10> mark @ogonek;
      pos base uni0226
          <anchor 308 670> mark @aring
          <anchor 530 10> mark @ogonek;
      pos base uni0227
          <anchor 437 10> mark @ogonek;
      pos base uni0400
          <anchor 479 10> mark @ogonek;
      pos base uni0401
          <anchor 479 10> mark @ogonek;
      pos base uni0406
          <anchor 190 10> mark @ogonek;
      pos base uni0407
          <anchor 190 10> mark @ogonek;
      pos base uni0410
          <anchor 308 670> mark @aring
          <anchor 530 10> mark @ogonek;
      pos base uni0415
          <anchor 479 10> mark @ogonek;
      pos base uni042B
          <anchor 828 10> mark @ogonek;
      pos base uni0430
          <anchor 437 10> mark @ogonek;
      pos base uni04D0
          <anchor 308 670> mark @aring
          <anchor 530 10> mark @ogonek;
      pos base uni04D1
          <anchor 437 10> mark @ogonek;
      pos base uni04D2
          <anchor 308 670> mark @aring
          <anchor 530 10> mark @ogonek;
      pos base uni04D3
          <anchor 437 10> mark @ogonek;
      pos base uni04D6
          <anchor 479 10> mark @ogonek;
      pos base uni04F8
          <anchor 828 10> mark @ogonek;
      pos base uogonek
          <anchor 519 10> mark @ogonek;
      pos base uring
          <anchor 519 10> mark @ogonek;
      pos base utilde
          <anchor 519 10> mark @ogonek;
      pos base Acaron
          <anchor 308 670> mark @aring
          <anchor 530 10> mark @ogonek;
      pos base Adotbelow
          <anchor 308 670> mark @aring
          <anchor 530 10> mark @ogonek;
      pos base Ahookabove
          <anchor 308 670> mark @aring
          <anchor 530 10> mark @ogonek;
      pos base Ehookabove
          <anchor 479 10> mark @ogonek;
      pos base Etilde
          <anchor 479 10> mark @ogonek;
      pos base Icaron
          <anchor 190 10> mark @ogonek;
      pos base Ihookabove
          <anchor 190 10> mark @ogonek;
      pos base Ucaron
          <anchor 427 0> mark @ogonek;
      pos base Uhookabove
          <anchor 427 0> mark @ogonek;
      pos base acaron
          <anchor 437 10> mark @ogonek;
      pos base adotbelow
          <anchor 437 10> mark @ogonek;
      pos base ahookabove
          <anchor 437 10> mark @ogonek;
      pos base iogonek
          <anchor 170 10> mark @ogonek;
      pos base ucaron
          <anchor 519 10> mark @ogonek;
      pos base uhookabove
          <anchor 519 10> mark @ogonek;
      pos base uni0438.loclBGR
          <anchor 519 10> mark @ogonek;
      pos base uni0439.loclBGR
          <anchor 519 10> mark @ogonek;
      pos base uni045D.loclBGR
          <anchor 519 10> mark @ogonek;
  } markLTR1;

  lookup markLTR2 {
      pos base A
          <anchor 311 720> mark @top;
      pos base Aacute
          <anchor 311 720> mark @top;
      pos base Abreve
          <anchor 311 720> mark @top;
      pos base Acircumflex
          <anchor 311 720> mark @top;
      pos base Adieresis
          <anchor 311 720> mark @top;
      pos base Agrave
          <anchor 311 720> mark @top;
      pos base Alpha
          <anchor 311 720> mark @top;
      pos base Amacron
          <anchor 311 720> mark @top;
      pos base Aogonek
          <anchor 311 720> mark @top;
      pos base Aring
          <anchor 308 897> mark @top;
      pos base Aringacute
          <anchor 308 897> mark @top;
      pos base Atilde
          <anchor 311 720> mark @top;
      pos base Uring
          <anchor 395 940> mark @top;
      pos base o
          <anchor 289 550> mark @top;
      pos base oacute
          <anchor 289 550> mark @top;
      pos base obreve
          <anchor 289 550> mark @top;
      pos base ocircumflex
          <anchor 289 550> mark @top;
      pos base odieresis
          <anchor 289 550> mark @top;
      pos base ograve
          <anchor 289 550> mark @top;
      pos base ohungarumlaut
          <anchor 289 550> mark @top;
      pos base omacron
          <anchor 289 550> mark @top;
      pos base otilde
          <anchor 289 550> mark @top;
      pos base u
          <anchor 310 542> mark @top;
      pos base uacute
          <anchor 310 542> mark @top;
      pos base ubreve
          <anchor 310 542> mark @top;
      pos base ucircumflex
          <anchor 310 542> mark @top;
      pos base udieresis
          <anchor 310 542> mark @top;
      pos base ugrave
          <anchor 310 542> mark @top;
      pos base uhungarumlaut
          <anchor 310 542> mark @top;
      pos base umacron
          <anchor 310 542> mark @top;
      pos base uni0226
          <anchor 311 720> mark @top;
      pos base uni022F
          <anchor 289 550> mark @top;
      pos base uni0410
          <anchor 311 720> mark @top;
      pos base uni0438
          <anchor 316 542> mark @top;
      pos base uni043E
          <anchor 289 550> mark @top;
      pos base uni045D
          <anchor 316 542> mark @top;
      pos base uni04D0
          <anchor 311 720> mark @top;
      pos base uni04D2
          <anchor 311 720> mark @top;
      pos base uni04E5
          <anchor 316 542> mark @top;
      pos base uni04E7
          <anchor 289 550> mark @top;
      pos base uogonek
          <anchor 310 542> mark @top;
      pos base uring
          <anchor 310 542> mark @top;
      pos base utilde
          <anchor 310 542> mark @top;
      pos base Acaron
          <anchor 311 720> mark @top;
      pos base Adotbelow
          <anchor 311 720> mark @top;
      pos base Ahookabove
          <anchor 311 720> mark @top;
      pos base ocaron
          <anchor 289 550> mark @top;
      pos base ohookabove
          <anchor 289 550> mark @top;
      pos base ucaron
          <anchor 310 542> mark @top;
      pos base uhookabove
          <anchor 310 542> mark @top;
      pos base uni0438.loclBGR
          <anchor 310 542> mark @top;
      pos base uni0439.loclBGR
          <anchor 310 542> mark @top;
      pos base uni045D.loclBGR
          <anchor 310 542> mark @top;
  } markLTR2;

  lookup markLTR3 {
      pos base C
          <anchor 399 10> mark @cedilla;
      pos base Cacute
          <anchor 399 10> mark @cedilla;
      pos base Ccaron
          <anchor 399 10> mark @cedilla;
      pos base Ccedilla
          <anchor 399 10> mark @cedilla;
      pos base Ccircumflex
          <anchor 399 10> mark @cedilla;
      pos base Cdotaccent
          <anchor 399 10> mark @cedilla;
      pos base S
          <anchor 261 0> mark @cedilla;
      pos base Sacute
          <anchor 261 0> mark @cedilla;
      pos base Scaron
          <anchor 261 0> mark @cedilla;
      pos base Scedilla
          <anchor 261 0> mark @cedilla;
      pos base Scircumflex
          <anchor 261 0> mark @cedilla;
      pos base Scommaaccent
          <anchor 261 0> mark @cedilla;
      pos base s
          <anchor 218 0> mark @cedilla;
      pos base sacute
          <anchor 218 0> mark @cedilla;
      pos base scaron
          <anchor 218 0> mark @cedilla;
      pos base scedilla
          <anchor 218 0> mark @cedilla;
      pos base scircumflex
          <anchor 218 0> mark @cedilla;
      pos base scommaaccent
          <anchor 218 0> mark @cedilla;
      pos base uni0405
          <anchor 261 0> mark @cedilla;
      pos base uni0421
          <anchor 399 10> mark @cedilla;
      pos base uni1E60
          <anchor 261 0> mark @cedilla;
      pos base uni1E61
          <anchor 218 0> mark @cedilla;
  } markLTR3;

  lookup markLTR4 {
      pos base L
          <anchor 382 379> mark @dot;
      pos base Lacute
          <anchor 382 379> mark @dot;
      pos base Lcaron
          <anchor 382 379> mark @dot;
      pos base Ldot
          <anchor 382 379> mark @dot;
  } markLTR4;

  lookup markLTR5 {
      pos base L
          <anchor 497 742> mark @quote;
      pos base Lacute
          <anchor 497 742> mark @quote;
      pos base Lcaron
          <anchor 497 742> mark @quote;
      pos base Ldot
          <anchor 497 742> mark @quote;
  } markLTR5;

  lookup markLTR1;
  lookup markLTR2;
  lookup markLTR3;
  lookup markLTR4;
  lookup markLTR5;
} mark;

feature mkmk {
# GPOS feature : Mark to Mark Positioning
#    markClass acutecomb <anchor -230 542> @top;
#    markClass gravecomb <anchor -186 542> @top;
#    markClass tildecomb <anchor -217 542> @top;
#    markClass uni0308 <anchor -214 542> @top;
#    markClass uni030B <anchor -301 520> @top;
#    markClass acute.cap <anchor 226 762> @top;
#    markClass uni0302 <anchor -300 542> @top;
#    markClass uni030A <anchor -300 780> @top;

  lookup mkmkLTR {
      pos mark uni030A.cap
          <anchor -200 940> mark @top;
  } mkmkLTR;

  lookup mkmkLTR;
} mkmk;

feature liga {
# Standard Ligatures

#> feature
  sub f b by f_b;
  sub f h by f_h;
  sub f k by f_k;
  sub longs b by longs_b;
  sub longs h by longs_h;
  sub longs i by longs_i;
  sub longs k by longs_k;
  sub longs l by longs_l;
  sub longs longs by longs_longs;
  sub longs longs i by longs_longs_i;
  sub longs longs l by longs_longs_l;
#< feature
} liga;

