1*e1fe3e4aSElliott Hughes# Glyph classes 2*e1fe3e4aSElliott Hughes@Cons = [uni1901 uni1902 uni1903 uni1904 uni1905 uni1906 uni1907 uni1908 uni1909 uni190A uni190B uni190C uni190D uni190E uni190F uni1910 uni1911 uni1912 uni1913 uni1914 uni1915 uni1916 uni1917 uni1918 uni1919 uni191A uni191B uni191C uni1940]; 3*e1fe3e4aSElliott Hughes@ConsRaU = [uni1901192A1922 uni1902192A1922 uni1903192A1922 uni1904192A1922 uni1905192A1922 uni1906192A1922 uni1907192A1922 uni1908192A1922 uni1909192A1922 uni190A192A1922 uni190B192A1922 uni190C192A1922 uni190D192A1922 uni190192AE1922 uni190F192A1922 uni1910192A1922 uni1911192A1922 uni1912192A1922 uni1913192A1922 uni1914192A1922 uni1915192A1922 uni1916192A1922 uni1917192A1922 uni1918192A1922 uni1919192A1922 uni1919192A1922 uni191A192A1922 uni191B192A1922 uni191C192A1922 uni1940192A1922]; 4*e1fe3e4aSElliott Hughes@ConsU = [uni19011922 uni19021922 uni19031922 uni19041922 uni19051922 uni19061922 uni19071922 uni19081922 uni19091922 uni190A1922 uni190B1922 uni190C1922 uni190D1922 uni190E1922 uni190F1922 uni19101922 uni19111922 uni19121922 uni19131922 uni19141922 uni19151922 uni19161922 uni19171922 uni19181922 uni19191922 uni191A1922 uni191B1922 uni191C1922 uni19401922]; 5*e1fe3e4aSElliott Hughes@Ikar = [uni1921 uni1921193A]; 6*e1fe3e4aSElliott Hughes@Vowels = [uni1920 uni1927 uni1928]; 7*e1fe3e4aSElliott Hughes@YaWa = [uni1929 uni192B]; 8*e1fe3e4aSElliott Hughes@AllCons = [@Cons @ConsU @ConsRaU]; 9*e1fe3e4aSElliott Hughes@VowelsKem = [@Vowels uni193A]; 10*e1fe3e4aSElliott Hughes 11*e1fe3e4aSElliott Hughes# Mark classes 12*e1fe3e4aSElliott HughesmarkClass uni1920 <anchor -500 1050> @Aabove; 13*e1fe3e4aSElliott HughesmarkClass uni1922 <anchor -150 -15> @U; 14*e1fe3e4aSElliott HughesmarkClass uni1927 <anchor -300 1050> @eo; 15*e1fe3e4aSElliott HughesmarkClass uni1928 <anchor -190 1050> @eo; 16*e1fe3e4aSElliott HughesmarkClass uni193A <anchor -260 1250> @K; 17*e1fe3e4aSElliott HughesmarkClass uni193A <anchor -260 1250> @VK; 18*e1fe3e4aSElliott Hughes 19*e1fe3e4aSElliott Hughes# Lookups 20*e1fe3e4aSElliott Hugheslookup EEAIDecomp { 21*e1fe3e4aSElliott Hughes sub uni1925 by uni1920 uni1923; 22*e1fe3e4aSElliott Hughes sub uni1926 by uni1920 uni1924; 23*e1fe3e4aSElliott Hughes} EEAIDecomp; 24*e1fe3e4aSElliott Hughes 25*e1fe3e4aSElliott Hugheslookup OoAuKComp { 26*e1fe3e4aSElliott Hughes sub uni1923 uni193A by uni1923193A; 27*e1fe3e4aSElliott Hughes sub uni1924 uni193A by uni1924193A; 28*e1fe3e4aSElliott Hughes} OoAuKComp; 29*e1fe3e4aSElliott Hughes 30*e1fe3e4aSElliott Hugheslookup OoAuKDecomp { 31*e1fe3e4aSElliott Hughes # The OoAuDecomp substitution rule replaces the OO and AU vowels with their visually constitutent components A plus EE or AI respectively. This is so that the 'A' portion can be positioned independently over the consonant when a Glide occurs between the consonant and the vowel. 32*e1fe3e4aSElliott Hughes sub uni1923193A by uni193A uni1923; 33*e1fe3e4aSElliott Hughes sub uni1924193A by uni193A uni1924; 34*e1fe3e4aSElliott Hughes} OoAuKDecomp; 35*e1fe3e4aSElliott Hughes 36*e1fe3e4aSElliott Hugheslookup GlideVowelComp { 37*e1fe3e4aSElliott Hughes sub uni1929 uni1920 uni193A by uni19291920193A; 38*e1fe3e4aSElliott Hughes sub uni1929 uni1922 uni193A by uni19291922193A; 39*e1fe3e4aSElliott Hughes sub uni1929 uni1927 uni193A by uni19291927193A; 40*e1fe3e4aSElliott Hughes sub uni1929 uni1928 uni193A by uni19291928193A; 41*e1fe3e4aSElliott Hughes sub uni1929 uni193A by uni1929193A; 42*e1fe3e4aSElliott Hughes sub uni1929 uni1920 by uni19291920; 43*e1fe3e4aSElliott Hughes sub uni1929 uni1922 by uni19291922; 44*e1fe3e4aSElliott Hughes sub uni1929 uni1927 by uni19291927; 45*e1fe3e4aSElliott Hughes sub uni1929 uni1928 by uni19291928; 46*e1fe3e4aSElliott Hughes sub uni192B uni1920 uni193A by uni192B1920193A; 47*e1fe3e4aSElliott Hughes sub uni192B uni1922 uni193A by uni192B1922193A; 48*e1fe3e4aSElliott Hughes sub uni192B uni1927 uni193A by uni192B1927193A; 49*e1fe3e4aSElliott Hughes sub uni192B uni1928 uni193A by uni192B1928193A; 50*e1fe3e4aSElliott Hughes sub uni192B uni193A by uni192B193A; 51*e1fe3e4aSElliott Hughes sub uni192B uni1920 by uni192B1920; 52*e1fe3e4aSElliott Hughes sub uni192B uni1922 by uni192B1922; 53*e1fe3e4aSElliott Hughes sub uni192B uni1927 by uni192B1927; 54*e1fe3e4aSElliott Hughes sub uni192B uni1928 by uni192B1928; 55*e1fe3e4aSElliott Hughes} GlideVowelComp; 56*e1fe3e4aSElliott Hughes 57*e1fe3e4aSElliott Hugheslookup GlideVowelDecomp { 58*e1fe3e4aSElliott Hughes sub uni19291920193A by uni1920 uni193A uni1929; 59*e1fe3e4aSElliott Hughes sub uni19291922193A by uni1922 uni193A uni1929; 60*e1fe3e4aSElliott Hughes sub uni19291927193A by uni1927 uni193A uni1929; 61*e1fe3e4aSElliott Hughes sub uni19291928193A by uni1928 uni193A uni1929; 62*e1fe3e4aSElliott Hughes sub uni1929193A by uni193A uni1929; 63*e1fe3e4aSElliott Hughes sub uni19291920 by uni1920 uni1929; 64*e1fe3e4aSElliott Hughes sub uni19291922 by uni1922 uni1929; 65*e1fe3e4aSElliott Hughes sub uni19291927 by uni1927 uni1929; 66*e1fe3e4aSElliott Hughes sub uni19291928 by uni1928 uni1929; 67*e1fe3e4aSElliott Hughes sub uni192B1920193A by uni1920 uni193A uni192B; 68*e1fe3e4aSElliott Hughes sub uni192B1922193A by uni1922 uni193A uni192B; 69*e1fe3e4aSElliott Hughes sub uni192B1927193A by uni1927 uni193A uni192B; 70*e1fe3e4aSElliott Hughes sub uni192B1928193A by uni1928 uni193A uni192B; 71*e1fe3e4aSElliott Hughes sub uni192B193A by uni193A uni192B; 72*e1fe3e4aSElliott Hughes sub uni192B1920 by uni1920 uni192B; 73*e1fe3e4aSElliott Hughes sub uni192B1922 by uni1922 uni192B; 74*e1fe3e4aSElliott Hughes sub uni192B1927 by uni1927 uni192B; 75*e1fe3e4aSElliott Hughes sub uni192B1928 by uni1928 uni192B; 76*e1fe3e4aSElliott Hughes} GlideVowelDecomp; 77*e1fe3e4aSElliott Hughes 78*e1fe3e4aSElliott Hugheslookup RaUkar { 79*e1fe3e4aSElliott Hughes # The RaUkar substitution rule replaces Consonant, Ra, Ukar with a ligature. 80*e1fe3e4aSElliott Hughes sub @Cons uni192A uni1922 by @ConsRaU; 81*e1fe3e4aSElliott Hughes} RaUkar; 82*e1fe3e4aSElliott Hughes 83*e1fe3e4aSElliott Hugheslookup Ukar { 84*e1fe3e4aSElliott Hughes # The Ukar substitution rule replaces Consonant + Ukar with a ligature. It also applies to the Vowel-Carrier, which has its own ligature with ukar. 85*e1fe3e4aSElliott Hughes sub @Cons uni1922 by @ConsU; 86*e1fe3e4aSElliott Hughes sub uni1900 uni1922 by uni19001922; 87*e1fe3e4aSElliott Hughes} Ukar; 88*e1fe3e4aSElliott Hughes 89*e1fe3e4aSElliott Hugheslookup IkarK { 90*e1fe3e4aSElliott Hughes # The IkarK substitution rule replaces Ikar + Kemphreng with a ligature. The ligature is then positioned properly on the base consonant via the positioning rule IEO. 91*e1fe3e4aSElliott Hughes sub uni1921 uni193A by uni1921193A; 92*e1fe3e4aSElliott Hughes} IkarK; 93*e1fe3e4aSElliott Hughes 94*e1fe3e4aSElliott Hugheslookup GlideIkar_target { 95*e1fe3e4aSElliott Hughes pos @YaWa -475; 96*e1fe3e4aSElliott Hughes} GlideIkar_target; 97*e1fe3e4aSElliott Hughes 98*e1fe3e4aSElliott Hugheslookup GlideIkar { 99*e1fe3e4aSElliott Hughes pos [@YaWa]' lookup GlideIkar_target @Ikar; 100*e1fe3e4aSElliott Hughes} GlideIkar; 101*e1fe3e4aSElliott Hughes 102*e1fe3e4aSElliott Hugheslookup IkarKWid_target { 103*e1fe3e4aSElliott Hughes pos uni1921193A 110; 104*e1fe3e4aSElliott Hughes} IkarKWid_target; 105*e1fe3e4aSElliott Hughes 106*e1fe3e4aSElliott Hugheslookup IkarKWid { 107*e1fe3e4aSElliott Hughes # The IkarKWid lookup, applied to the Kern feature, adds 110 units of width to the IkarKemphreng ligature when followed by a consonant with akar on it. This prevents the akar from overprinting the rightmost dot of the kemphreng. (The dot overhangs to the right slightly, which is OK unless the following character has akar on it). 108*e1fe3e4aSElliott Hughes pos [uni1921193A]' lookup IkarKWid_target @Cons uni1920; 109*e1fe3e4aSElliott Hughes} IkarKWid; 110*e1fe3e4aSElliott Hughes 111*e1fe3e4aSElliott Hugheslookup Akar { 112*e1fe3e4aSElliott Hughes # The Akar positioning rule positions the Akar on all consonants. 113*e1fe3e4aSElliott Hughes pos base uni1901 114*e1fe3e4aSElliott Hughes <anchor 487 1050> mark @Aabove; 115*e1fe3e4aSElliott Hughes pos base uni1902 116*e1fe3e4aSElliott Hughes <anchor 622 1050> mark @Aabove; 117*e1fe3e4aSElliott Hughes pos base uni1903 118*e1fe3e4aSElliott Hughes <anchor 475 1050> mark @Aabove; 119*e1fe3e4aSElliott Hughes pos base uni1904 120*e1fe3e4aSElliott Hughes <anchor 460 1050> mark @Aabove; 121*e1fe3e4aSElliott Hughes pos base uni1905 122*e1fe3e4aSElliott Hughes <anchor 590 1050> mark @Aabove; 123*e1fe3e4aSElliott Hughes pos base uni1906 124*e1fe3e4aSElliott Hughes <anchor 519 1050> mark @Aabove; 125*e1fe3e4aSElliott Hughes pos base uni1907 126*e1fe3e4aSElliott Hughes <anchor 570 1050> mark @Aabove; 127*e1fe3e4aSElliott Hughes pos base uni1908 128*e1fe3e4aSElliott Hughes <anchor 564 1050> mark @Aabove; 129*e1fe3e4aSElliott Hughes pos base uni1909 130*e1fe3e4aSElliott Hughes <anchor 430 1050> mark @Aabove; 131*e1fe3e4aSElliott Hughes pos base uni190A 132*e1fe3e4aSElliott Hughes <anchor 575 1050> mark @Aabove; 133*e1fe3e4aSElliott Hughes pos base uni190B 134*e1fe3e4aSElliott Hughes <anchor 450 1050> mark @Aabove; 135*e1fe3e4aSElliott Hughes pos base uni190C 136*e1fe3e4aSElliott Hughes <anchor 556 1050> mark @Aabove; 137*e1fe3e4aSElliott Hughes pos base uni190D 138*e1fe3e4aSElliott Hughes <anchor 515 1050> mark @Aabove; 139*e1fe3e4aSElliott Hughes pos base uni190E 140*e1fe3e4aSElliott Hughes <anchor 510 1050> mark @Aabove; 141*e1fe3e4aSElliott Hughes pos base uni190F 142*e1fe3e4aSElliott Hughes <anchor 497 1050> mark @Aabove; 143*e1fe3e4aSElliott Hughes pos base uni1910 144*e1fe3e4aSElliott Hughes <anchor 657 1050> mark @Aabove; 145*e1fe3e4aSElliott Hughes pos base uni1911 146*e1fe3e4aSElliott Hughes <anchor 690 1050> mark @Aabove; 147*e1fe3e4aSElliott Hughes pos base uni1912 148*e1fe3e4aSElliott Hughes <anchor 538 1050> mark @Aabove; 149*e1fe3e4aSElliott Hughes pos base uni1913 150*e1fe3e4aSElliott Hughes <anchor 571 1050> mark @Aabove; 151*e1fe3e4aSElliott Hughes pos base uni1914 152*e1fe3e4aSElliott Hughes <anchor 538 1050> mark @Aabove; 153*e1fe3e4aSElliott Hughes pos base uni1915 154*e1fe3e4aSElliott Hughes <anchor 470 1050> mark @Aabove; 155*e1fe3e4aSElliott Hughes pos base uni1916 156*e1fe3e4aSElliott Hughes <anchor 503 1050> mark @Aabove; 157*e1fe3e4aSElliott Hughes pos base uni1917 158*e1fe3e4aSElliott Hughes <anchor 548 1050> mark @Aabove; 159*e1fe3e4aSElliott Hughes pos base uni1918 160*e1fe3e4aSElliott Hughes <anchor 511 1050> mark @Aabove; 161*e1fe3e4aSElliott Hughes pos base uni1919 162*e1fe3e4aSElliott Hughes <anchor 560 1050> mark @Aabove; 163*e1fe3e4aSElliott Hughes pos base uni191A 164*e1fe3e4aSElliott Hughes <anchor 420 1050> mark @Aabove; 165*e1fe3e4aSElliott Hughes pos base uni191B 166*e1fe3e4aSElliott Hughes <anchor 580 1050> mark @Aabove; 167*e1fe3e4aSElliott Hughes pos base uni191C 168*e1fe3e4aSElliott Hughes <anchor 540 1050> mark @Aabove; 169*e1fe3e4aSElliott Hughes pos base uni1940 170*e1fe3e4aSElliott Hughes <anchor 480 1050> mark @Aabove; 171*e1fe3e4aSElliott Hughes} Akar; 172*e1fe3e4aSElliott Hughes 173*e1fe3e4aSElliott Hugheslookup Kemphreng { 174*e1fe3e4aSElliott Hughes # The Kemphreng positioning rule positions the Kemphreng on all consonants, including the vowel carrier. 175*e1fe3e4aSElliott Hughes pos base uni1901 176*e1fe3e4aSElliott Hughes <anchor 500 1050> mark @K; 177*e1fe3e4aSElliott Hughes pos base uni1902 178*e1fe3e4aSElliott Hughes <anchor 680 1050> mark @K; 179*e1fe3e4aSElliott Hughes pos base uni1903 180*e1fe3e4aSElliott Hughes <anchor 540 1050> mark @K; 181*e1fe3e4aSElliott Hughes pos base uni1904 182*e1fe3e4aSElliott Hughes <anchor 500 1050> mark @K; 183*e1fe3e4aSElliott Hughes pos base uni1905 184*e1fe3e4aSElliott Hughes <anchor 590 1050> mark @K; 185*e1fe3e4aSElliott Hughes pos base uni1906 186*e1fe3e4aSElliott Hughes <anchor 540 1050> mark @K; 187*e1fe3e4aSElliott Hughes pos base uni1907 188*e1fe3e4aSElliott Hughes <anchor 620 1050> mark @K; 189*e1fe3e4aSElliott Hughes pos base uni1908 190*e1fe3e4aSElliott Hughes <anchor 580 1050> mark @K; 191*e1fe3e4aSElliott Hughes pos base uni1909 192*e1fe3e4aSElliott Hughes <anchor 450 1050> mark @K; 193*e1fe3e4aSElliott Hughes pos base uni190A 194*e1fe3e4aSElliott Hughes <anchor 580 1050> mark @K; 195*e1fe3e4aSElliott Hughes pos base uni190B 196*e1fe3e4aSElliott Hughes <anchor 450 1050> mark @K; 197*e1fe3e4aSElliott Hughes pos base uni190C 198*e1fe3e4aSElliott Hughes <anchor 656 1050> mark @K; 199*e1fe3e4aSElliott Hughes pos base uni190D 200*e1fe3e4aSElliott Hughes <anchor 570 1050> mark @K; 201*e1fe3e4aSElliott Hughes pos base uni190E 202*e1fe3e4aSElliott Hughes <anchor 530 1050> mark @K; 203*e1fe3e4aSElliott Hughes pos base uni190F 204*e1fe3e4aSElliott Hughes <anchor 515 1050> mark @K; 205*e1fe3e4aSElliott Hughes pos base uni1910 206*e1fe3e4aSElliott Hughes <anchor 680 1050> mark @K; 207*e1fe3e4aSElliott Hughes pos base uni1911 208*e1fe3e4aSElliott Hughes <anchor 720 1050> mark @K; 209*e1fe3e4aSElliott Hughes pos base uni1912 210*e1fe3e4aSElliott Hughes <anchor 580 1050> mark @K; 211*e1fe3e4aSElliott Hughes pos base uni1913 212*e1fe3e4aSElliott Hughes <anchor 600 1050> mark @K; 213*e1fe3e4aSElliott Hughes pos base uni1914 214*e1fe3e4aSElliott Hughes <anchor 560 1050> mark @K; 215*e1fe3e4aSElliott Hughes pos base uni1915 216*e1fe3e4aSElliott Hughes <anchor 480 1050> mark @K; 217*e1fe3e4aSElliott Hughes pos base uni1916 218*e1fe3e4aSElliott Hughes <anchor 520 1050> mark @K; 219*e1fe3e4aSElliott Hughes pos base uni1917 220*e1fe3e4aSElliott Hughes <anchor 585 1050> mark @K; 221*e1fe3e4aSElliott Hughes pos base uni1918 222*e1fe3e4aSElliott Hughes <anchor 610 1050> mark @K; 223*e1fe3e4aSElliott Hughes pos base uni1919 224*e1fe3e4aSElliott Hughes <anchor 520 1050> mark @K; 225*e1fe3e4aSElliott Hughes pos base uni191A 226*e1fe3e4aSElliott Hughes <anchor 440 1050> mark @K; 227*e1fe3e4aSElliott Hughes pos base uni191B 228*e1fe3e4aSElliott Hughes <anchor 600 1050> mark @K; 229*e1fe3e4aSElliott Hughes pos base uni191C 230*e1fe3e4aSElliott Hughes <anchor 600 1050> mark @K; 231*e1fe3e4aSElliott Hughes pos base uni1940 232*e1fe3e4aSElliott Hughes <anchor 490 1050> mark @K; 233*e1fe3e4aSElliott Hughes pos base uni19011922 234*e1fe3e4aSElliott Hughes <anchor 500 1050> mark @K; 235*e1fe3e4aSElliott Hughes pos base uni19021922 236*e1fe3e4aSElliott Hughes <anchor 680 1050> mark @K; 237*e1fe3e4aSElliott Hughes pos base uni19031922 238*e1fe3e4aSElliott Hughes <anchor 540 1050> mark @K; 239*e1fe3e4aSElliott Hughes pos base uni19041922 240*e1fe3e4aSElliott Hughes <anchor 500 1050> mark @K; 241*e1fe3e4aSElliott Hughes pos base uni19051922 242*e1fe3e4aSElliott Hughes <anchor 590 1050> mark @K; 243*e1fe3e4aSElliott Hughes pos base uni19061922 244*e1fe3e4aSElliott Hughes <anchor 540 1050> mark @K; 245*e1fe3e4aSElliott Hughes pos base uni19071922 246*e1fe3e4aSElliott Hughes <anchor 620 1050> mark @K; 247*e1fe3e4aSElliott Hughes pos base uni19081922 248*e1fe3e4aSElliott Hughes <anchor 580 1050> mark @K; 249*e1fe3e4aSElliott Hughes pos base uni19091922 250*e1fe3e4aSElliott Hughes <anchor 450 1050> mark @K; 251*e1fe3e4aSElliott Hughes pos base uni190A1922 252*e1fe3e4aSElliott Hughes <anchor 580 1050> mark @K; 253*e1fe3e4aSElliott Hughes pos base uni190B1922 254*e1fe3e4aSElliott Hughes <anchor 450 1050> mark @K; 255*e1fe3e4aSElliott Hughes pos base uni190C1922 256*e1fe3e4aSElliott Hughes <anchor 656 1050> mark @K; 257*e1fe3e4aSElliott Hughes pos base uni190D1922 258*e1fe3e4aSElliott Hughes <anchor 570 1050> mark @K; 259*e1fe3e4aSElliott Hughes pos base uni190E1922 260*e1fe3e4aSElliott Hughes <anchor 530 1050> mark @K; 261*e1fe3e4aSElliott Hughes pos base uni190F1922 262*e1fe3e4aSElliott Hughes <anchor 515 1050> mark @K; 263*e1fe3e4aSElliott Hughes pos base uni19101922 264*e1fe3e4aSElliott Hughes <anchor 680 1050> mark @K; 265*e1fe3e4aSElliott Hughes pos base uni19111922 266*e1fe3e4aSElliott Hughes <anchor 720 1050> mark @K; 267*e1fe3e4aSElliott Hughes pos base uni19121922 268*e1fe3e4aSElliott Hughes <anchor 580 1050> mark @K; 269*e1fe3e4aSElliott Hughes pos base uni19131922 270*e1fe3e4aSElliott Hughes <anchor 600 1050> mark @K; 271*e1fe3e4aSElliott Hughes pos base uni19141922 272*e1fe3e4aSElliott Hughes <anchor 560 1050> mark @K; 273*e1fe3e4aSElliott Hughes pos base uni19151922 274*e1fe3e4aSElliott Hughes <anchor 480 1050> mark @K; 275*e1fe3e4aSElliott Hughes pos base uni19161922 276*e1fe3e4aSElliott Hughes <anchor 520 1050> mark @K; 277*e1fe3e4aSElliott Hughes pos base uni19171922 278*e1fe3e4aSElliott Hughes <anchor 585 1050> mark @K; 279*e1fe3e4aSElliott Hughes pos base uni19181922 280*e1fe3e4aSElliott Hughes <anchor 610 1050> mark @K; 281*e1fe3e4aSElliott Hughes pos base uni19191922 282*e1fe3e4aSElliott Hughes <anchor 520 1050> mark @K; 283*e1fe3e4aSElliott Hughes pos base uni191A1922 284*e1fe3e4aSElliott Hughes <anchor 440 1050> mark @K; 285*e1fe3e4aSElliott Hughes pos base uni191B1922 286*e1fe3e4aSElliott Hughes <anchor 600 1050> mark @K; 287*e1fe3e4aSElliott Hughes pos base uni191C1922 288*e1fe3e4aSElliott Hughes <anchor 600 1050> mark @K; 289*e1fe3e4aSElliott Hughes pos base uni19401922 290*e1fe3e4aSElliott Hughes <anchor 490 1050> mark @K; 291*e1fe3e4aSElliott Hughes pos base uni1901192A1922 292*e1fe3e4aSElliott Hughes <anchor 500 1050> mark @K; 293*e1fe3e4aSElliott Hughes pos base uni1902192A1922 294*e1fe3e4aSElliott Hughes <anchor 680 1050> mark @K; 295*e1fe3e4aSElliott Hughes pos base uni1903192A1922 296*e1fe3e4aSElliott Hughes <anchor 540 1050> mark @K; 297*e1fe3e4aSElliott Hughes pos base uni1904192A1922 298*e1fe3e4aSElliott Hughes <anchor 500 1050> mark @K; 299*e1fe3e4aSElliott Hughes pos base uni1905192A1922 300*e1fe3e4aSElliott Hughes <anchor 590 1050> mark @K; 301*e1fe3e4aSElliott Hughes pos base uni1906192A1922 302*e1fe3e4aSElliott Hughes <anchor 540 1050> mark @K; 303*e1fe3e4aSElliott Hughes pos base uni1907192A1922 304*e1fe3e4aSElliott Hughes <anchor 620 1050> mark @K; 305*e1fe3e4aSElliott Hughes pos base uni1908192A1922 306*e1fe3e4aSElliott Hughes <anchor 580 1050> mark @K; 307*e1fe3e4aSElliott Hughes pos base uni1909192A1922 308*e1fe3e4aSElliott Hughes <anchor 450 1050> mark @K; 309*e1fe3e4aSElliott Hughes pos base uni190A192A1922 310*e1fe3e4aSElliott Hughes <anchor 580 1050> mark @K; 311*e1fe3e4aSElliott Hughes pos base uni190B192A1922 312*e1fe3e4aSElliott Hughes <anchor 450 1050> mark @K; 313*e1fe3e4aSElliott Hughes pos base uni190C192A1922 314*e1fe3e4aSElliott Hughes <anchor 656 1050> mark @K; 315*e1fe3e4aSElliott Hughes pos base uni190D192A1922 316*e1fe3e4aSElliott Hughes <anchor 570 1050> mark @K; 317*e1fe3e4aSElliott Hughes pos base uni190192AE1922 318*e1fe3e4aSElliott Hughes <anchor 530 1050> mark @K; 319*e1fe3e4aSElliott Hughes pos base uni190F192A1922 320*e1fe3e4aSElliott Hughes <anchor 515 1050> mark @K; 321*e1fe3e4aSElliott Hughes pos base uni1910192A1922 322*e1fe3e4aSElliott Hughes <anchor 680 1050> mark @K; 323*e1fe3e4aSElliott Hughes pos base uni1911192A1922 324*e1fe3e4aSElliott Hughes <anchor 720 1050> mark @K; 325*e1fe3e4aSElliott Hughes pos base uni1912192A1922 326*e1fe3e4aSElliott Hughes <anchor 580 1050> mark @K; 327*e1fe3e4aSElliott Hughes pos base uni1913192A1922 328*e1fe3e4aSElliott Hughes <anchor 600 1050> mark @K; 329*e1fe3e4aSElliott Hughes pos base uni1914192A1922 330*e1fe3e4aSElliott Hughes <anchor 560 1050> mark @K; 331*e1fe3e4aSElliott Hughes pos base uni1915192A1922 332*e1fe3e4aSElliott Hughes <anchor 480 1050> mark @K; 333*e1fe3e4aSElliott Hughes pos base uni1916192A1922 334*e1fe3e4aSElliott Hughes <anchor 520 1050> mark @K; 335*e1fe3e4aSElliott Hughes pos base uni1917192A1922 336*e1fe3e4aSElliott Hughes <anchor 585 1050> mark @K; 337*e1fe3e4aSElliott Hughes pos base uni1918192A1922 338*e1fe3e4aSElliott Hughes <anchor 610 1050> mark @K; 339*e1fe3e4aSElliott Hughes pos base uni1919192A1922 340*e1fe3e4aSElliott Hughes <anchor 520 1050> mark @K; 341*e1fe3e4aSElliott Hughes pos base uni191A192A1922 342*e1fe3e4aSElliott Hughes <anchor 440 1050> mark @K; 343*e1fe3e4aSElliott Hughes pos base uni191B192A1922 344*e1fe3e4aSElliott Hughes <anchor 600 1050> mark @K; 345*e1fe3e4aSElliott Hughes pos base uni191C192A1922 346*e1fe3e4aSElliott Hughes <anchor 600 1050> mark @K; 347*e1fe3e4aSElliott Hughes pos base uni1940192A1922 348*e1fe3e4aSElliott Hughes <anchor 490 1050> mark @K; 349*e1fe3e4aSElliott Hughes pos base uni1900 350*e1fe3e4aSElliott Hughes <anchor 525 1050> mark @K; 351*e1fe3e4aSElliott Hughes} Kemphreng; 352*e1fe3e4aSElliott Hughes 353*e1fe3e4aSElliott Hugheslookup EO { 354*e1fe3e4aSElliott Hughes # The IEO positioning rule positions ikar (including the ligature with kemphreng), e and o on all consonants plus the vowel carrier. 355*e1fe3e4aSElliott Hughes pos base uni1901 356*e1fe3e4aSElliott Hughes <anchor 755 1050> mark @eo; 357*e1fe3e4aSElliott Hughes pos base uni1902 358*e1fe3e4aSElliott Hughes <anchor 943 1050> mark @eo; 359*e1fe3e4aSElliott Hughes pos base uni1903 360*e1fe3e4aSElliott Hughes <anchor 790 1050> mark @eo; 361*e1fe3e4aSElliott Hughes pos base uni1904 362*e1fe3e4aSElliott Hughes <anchor 780 1050> mark @eo; 363*e1fe3e4aSElliott Hughes pos base uni1905 364*e1fe3e4aSElliott Hughes <anchor 790 1050> mark @eo; 365*e1fe3e4aSElliott Hughes pos base uni1906 366*e1fe3e4aSElliott Hughes <anchor 878 1050> mark @eo; 367*e1fe3e4aSElliott Hughes pos base uni1907 368*e1fe3e4aSElliott Hughes <anchor 825 1050> mark @eo; 369*e1fe3e4aSElliott Hughes pos base uni1908 370*e1fe3e4aSElliott Hughes <anchor 968 1050> mark @eo; 371*e1fe3e4aSElliott Hughes pos base uni1909 372*e1fe3e4aSElliott Hughes <anchor 660 1050> mark @eo; 373*e1fe3e4aSElliott Hughes pos base uni190A 374*e1fe3e4aSElliott Hughes <anchor 569 1050> mark @eo; 375*e1fe3e4aSElliott Hughes pos base uni190B 376*e1fe3e4aSElliott Hughes <anchor 690 1050> mark @eo; 377*e1fe3e4aSElliott Hughes pos base uni190C 378*e1fe3e4aSElliott Hughes <anchor 649 1050> mark @eo; 379*e1fe3e4aSElliott Hughes pos base uni190D 380*e1fe3e4aSElliott Hughes <anchor 682 1050> mark @eo; 381*e1fe3e4aSElliott Hughes pos base uni190E 382*e1fe3e4aSElliott Hughes <anchor 680 1050> mark @eo; 383*e1fe3e4aSElliott Hughes pos base uni190F 384*e1fe3e4aSElliott Hughes <anchor 778 1050> mark @eo; 385*e1fe3e4aSElliott Hughes pos base uni1910 386*e1fe3e4aSElliott Hughes <anchor 920 1050> mark @eo; 387*e1fe3e4aSElliott Hughes pos base uni1911 388*e1fe3e4aSElliott Hughes <anchor 894 1050> mark @eo; 389*e1fe3e4aSElliott Hughes pos base uni1912 390*e1fe3e4aSElliott Hughes <anchor 782 1050> mark @eo; 391*e1fe3e4aSElliott Hughes pos base uni1913 392*e1fe3e4aSElliott Hughes <anchor 982 1050> mark @eo; 393*e1fe3e4aSElliott Hughes pos base uni1914 394*e1fe3e4aSElliott Hughes <anchor 917 1050> mark @eo; 395*e1fe3e4aSElliott Hughes pos base uni1915 396*e1fe3e4aSElliott Hughes <anchor 730 1050> mark @eo; 397*e1fe3e4aSElliott Hughes pos base uni1916 398*e1fe3e4aSElliott Hughes <anchor 767 1050> mark @eo; 399*e1fe3e4aSElliott Hughes pos base uni1917 400*e1fe3e4aSElliott Hughes <anchor 937 1050> mark @eo; 401*e1fe3e4aSElliott Hughes pos base uni1918 402*e1fe3e4aSElliott Hughes <anchor 862 1050> mark @eo; 403*e1fe3e4aSElliott Hughes pos base uni1919 404*e1fe3e4aSElliott Hughes <anchor 670 1050> mark @eo; 405*e1fe3e4aSElliott Hughes pos base uni191A 406*e1fe3e4aSElliott Hughes <anchor 682 1050> mark @eo; 407*e1fe3e4aSElliott Hughes pos base uni191B 408*e1fe3e4aSElliott Hughes <anchor 921 1050> mark @eo; 409*e1fe3e4aSElliott Hughes pos base uni191C 410*e1fe3e4aSElliott Hughes <anchor 870 1050> mark @eo; 411*e1fe3e4aSElliott Hughes pos base uni1940 412*e1fe3e4aSElliott Hughes <anchor 650 1050> mark @eo; 413*e1fe3e4aSElliott Hughes pos base uni1900 414*e1fe3e4aSElliott Hughes <anchor 810 1050> mark @eo; 415*e1fe3e4aSElliott Hughes} EO; 416*e1fe3e4aSElliott Hughes 417*e1fe3e4aSElliott Hugheslookup VKem { 418*e1fe3e4aSElliott Hughes lookupflag MarkAttachmentType @VowelsKem; 419*e1fe3e4aSElliott Hughes # The VKem positioning rule positions the kemphreng on all upper vowels (except ikar, which has its own ligature). The vowel itself is positioned on the consonant with the Akar or IEO positioning rule. 420*e1fe3e4aSElliott Hughes pos mark uni1920 421*e1fe3e4aSElliott Hughes <anchor -260 1250> mark @VK; 422*e1fe3e4aSElliott Hughes pos mark uni1927 423*e1fe3e4aSElliott Hughes <anchor -300 1250> mark @VK; 424*e1fe3e4aSElliott Hughes pos mark uni1928 425*e1fe3e4aSElliott Hughes <anchor -150 1455> mark @VK; 426*e1fe3e4aSElliott Hughes} VKem; 427*e1fe3e4aSElliott Hughes 428*e1fe3e4aSElliott Hugheslookup GlideU { 429*e1fe3e4aSElliott Hughes # The GlideU positioning rule positions the ukar on the glides Ya and Wa. (There is already a ligature for each consonant with the Ra+Ukar combination). 430*e1fe3e4aSElliott Hughes pos base uni1929 431*e1fe3e4aSElliott Hughes <anchor -135 -40> mark @U; 432*e1fe3e4aSElliott Hughes pos base uni192B 433*e1fe3e4aSElliott Hughes <anchor -135 -40> mark @U; 434*e1fe3e4aSElliott Hughes} GlideU; 435*e1fe3e4aSElliott Hughes 436*e1fe3e4aSElliott Hughes# Features 437*e1fe3e4aSElliott Hughesfeature ccmp { 438*e1fe3e4aSElliott Hughes script latn; 439*e1fe3e4aSElliott Hughes language dflt; 440*e1fe3e4aSElliott Hughes lookup EEAIDecomp; 441*e1fe3e4aSElliott Hughes lookup OoAuKComp; 442*e1fe3e4aSElliott Hughes lookup OoAuKDecomp; 443*e1fe3e4aSElliott Hughes lookup GlideVowelComp; 444*e1fe3e4aSElliott Hughes lookup GlideVowelDecomp; 445*e1fe3e4aSElliott Hughes script limb; 446*e1fe3e4aSElliott Hughes language dflt; 447*e1fe3e4aSElliott Hughes lookup EEAIDecomp; 448*e1fe3e4aSElliott Hughes lookup OoAuKComp; 449*e1fe3e4aSElliott Hughes lookup OoAuKDecomp; 450*e1fe3e4aSElliott Hughes lookup GlideVowelComp; 451*e1fe3e4aSElliott Hughes lookup GlideVowelDecomp; 452*e1fe3e4aSElliott Hughes} ccmp; 453*e1fe3e4aSElliott Hughes 454*e1fe3e4aSElliott Hughesfeature kern { 455*e1fe3e4aSElliott Hughes script latn; 456*e1fe3e4aSElliott Hughes language dflt; 457*e1fe3e4aSElliott Hughes lookup GlideIkar; 458*e1fe3e4aSElliott Hughes lookup IkarKWid; 459*e1fe3e4aSElliott Hughes script limb; 460*e1fe3e4aSElliott Hughes language dflt; 461*e1fe3e4aSElliott Hughes lookup GlideIkar; 462*e1fe3e4aSElliott Hughes lookup IkarKWid; 463*e1fe3e4aSElliott Hughes} kern; 464*e1fe3e4aSElliott Hughes 465*e1fe3e4aSElliott Hughesfeature mark { 466*e1fe3e4aSElliott Hughes script latn; 467*e1fe3e4aSElliott Hughes language dflt; 468*e1fe3e4aSElliott Hughes lookup Akar; 469*e1fe3e4aSElliott Hughes lookup Kemphreng; 470*e1fe3e4aSElliott Hughes lookup EO; 471*e1fe3e4aSElliott Hughes script limb; 472*e1fe3e4aSElliott Hughes language dflt; 473*e1fe3e4aSElliott Hughes lookup Akar; 474*e1fe3e4aSElliott Hughes lookup Kemphreng; 475*e1fe3e4aSElliott Hughes lookup EO; 476*e1fe3e4aSElliott Hughes} mark; 477*e1fe3e4aSElliott Hughes 478*e1fe3e4aSElliott Hughesfeature mkmk { 479*e1fe3e4aSElliott Hughes script latn; 480*e1fe3e4aSElliott Hughes language dflt; 481*e1fe3e4aSElliott Hughes lookup VKem; 482*e1fe3e4aSElliott Hughes lookup GlideU; 483*e1fe3e4aSElliott Hughes script limb; 484*e1fe3e4aSElliott Hughes language dflt; 485*e1fe3e4aSElliott Hughes lookup VKem; 486*e1fe3e4aSElliott Hughes lookup GlideU; 487*e1fe3e4aSElliott Hughes} mkmk; 488*e1fe3e4aSElliott Hughes 489*e1fe3e4aSElliott Hughesfeature liga { 490*e1fe3e4aSElliott Hughes script latn; 491*e1fe3e4aSElliott Hughes language dflt; 492*e1fe3e4aSElliott Hughes lookup RaUkar; 493*e1fe3e4aSElliott Hughes lookup Ukar; 494*e1fe3e4aSElliott Hughes lookup IkarK; 495*e1fe3e4aSElliott Hughes script limb; 496*e1fe3e4aSElliott Hughes language dflt; 497*e1fe3e4aSElliott Hughes lookup RaUkar; 498*e1fe3e4aSElliott Hughes lookup Ukar; 499*e1fe3e4aSElliott Hughes lookup IkarK; 500*e1fe3e4aSElliott Hughes} liga; 501*e1fe3e4aSElliott Hughes 502*e1fe3e4aSElliott Hughes@GDEF_base = [glyph0 .null CR space exclam quotedbl numbersign dollar percent quotesingle parenleft parenright asterisk plus comma hyphen period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bracketleft backslash bracketright asciicircum underscore grave a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright asciitilde uni0965 uni1900 uni19001922 uni1901 uni19011922 uni1901192A1922 uni1902 uni19021922 uni1902192A1922 uni1903 uni19031922 uni1903192A1922 uni1904 uni19041922 uni1904192A1922 uni1905 uni19051922 uni1905192A1922 uni1906 uni19061922 uni1906192A1922 uni1907 uni19071922 uni1907192A1922 uni1908 uni19081922 uni1908192A1922 uni1909 uni19091922 uni1909192A1922 uni190A uni190A1922 uni190A192A1922 uni190B uni190B1922 uni190B192A1922 uni190C uni190C1922 uni190C192A1922 uni190D uni190D1922 uni190D192A1922 uni190E uni190E1922 uni190192AE1922 uni190F uni190F1922 uni190F192A1922 uni1910 uni19101922 uni1910192A1922 uni1911 uni19111922 uni1911192A1922 uni1912 uni19121922 uni1912192A1922 uni1913 uni19131922 uni1913192A1922 uni1914 uni19141922 uni1914192A1922 uni1915 uni19151922 uni1915192A1922 uni1916 uni19161922 uni1916192A1922 uni1917 uni19171922 uni1917192A1922 uni1918 uni19181922 uni1918192A1922 uni1919 uni19191922 uni1919192A1922 uni191A uni191A1922 uni191A192A1922 uni191B uni191B1922 uni191B192A1922 uni191C uni191C1922 uni191C192A1922 uni1921 uni1923 uni1924 uni1929 uni192B uni1930 uni1931 uni1932 uni1933 uni1934 uni1935 uni1936 uni1937 uni1938 uni1939 uni1940 uni19401922 uni1940192A1922 uni1944 uni1945 uni1946 uni1947 uni1948 uni1949 uni194A uni194B uni194C uni194D uni194E uni194F quoteleft quoteright quotedblleft quotedblright uni1921193A ampersand uni2009 endash emdash uni202F uni1923193A uni1924193A uni19291920 uni19291922 uni19291927 uni19291928 uni1929193A uni19291920193A uni19291922193A uni19291927193A uni19291928193A uni192B1920 uni192B1922 uni192B1927 uni192B1928 uni192B193A uni192B1920193A uni192B1922193A uni192B1927193A uni192B1928193A uni25CC uni191E uni191E1922 uni191E192A1922 uni191D uni191D1922 uni191D192A1922]; 503*e1fe3e4aSElliott Hughes@GDEF_mark = [uni1920 uni1920.widC uni1920.widD uni1922 uni1922.altA uni1922.altB uni1922.altC uni1925 uni1926 uni1927 uni1928 uni192A uni193A uni193A.widC uni193B uni193B.widA uni193B.widB uni193B.widC uni192A1922]; 504*e1fe3e4aSElliott Hughestable GDEF { 505*e1fe3e4aSElliott Hughes GlyphClassDef @GDEF_base, , @GDEF_mark, ; 506*e1fe3e4aSElliott Hughes} GDEF; 507