taipa
Version:
Taiwanese morphological parsing library
745 lines • 49.5 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.composeTaiKana = void 0;
const tonalres_1 = require("./tonalres");
const kanares_1 = require("../kana/kanares");
const collections_1 = require("./collections");
const tonesets_1 = require("./tonesets");
const combiningOverline = '\u0305';
const combiningDotBelow = '\u0323';
function handleCombiningDotBelowOverline(initial, medial) {
const got = kanaInitials(mappingInitial.get(initial))(medial);
if (got && got[0]) {
if (initialsWithCombiningDotBelow.aspirated.includes(initial)) {
if (freeSyllablesWithCombiningOverline.includes(initial + medial)) {
return got[0] + combiningOverline + combiningDotBelow;
}
return got[0] + combiningDotBelow;
}
else if (initialsWithCombiningDotBelow.withoutADotOrOverline.includes(initial)) {
return got[0];
}
else if (initialsWithCombiningDotBelow.withAnOverline.includes(initial)) {
if (freeSyllablesWithCombiningOverline.includes(initial + medial)) {
return got[0] + combiningOverline;
}
return got[0];
}
}
return '';
}
function getToneMarkForFourthEighth(final, tonalLen) {
if (tonalLen == 0) {
// 4th tone and 8th tone
const kn = mappingLettersToPseudoEncoding.get(final.toString());
if (kn) {
return kn[0];
}
}
return '';
}
function getReplicatedKanaVowel(sounds, j, replica) {
if ((j == 0 &&
sounds[0].name === tonalres_1.TonalSpellingTags.vowel &&
(sounds.length == 1 ||
(sounds.length == 2 &&
sounds[sounds.length - 1].name === tonalres_1.TonalSpellingTags.freeTone) ||
(sounds.length == 2 &&
sounds[sounds.length - 1].name ===
tonalres_1.TonalSpellingTags.nasalization))) ||
(sounds.length == 3 &&
sounds[sounds.length - 2].name === tonalres_1.TonalSpellingTags.nasalization &&
sounds[sounds.length - 1].name === tonalres_1.TonalSpellingTags.freeTone)) {
// reduplicate the vowel for syllables without an initial
// in case of a, e,
// in case ax, ex. enn,
// in case of ennx
return replica;
}
else if ((sounds.length == 2 &&
sounds[0].name === tonalres_1.TonalSpellingTags.vowel &&
(sounds[1].toString() === tonalres_1.TonalLetterTags.h ||
sounds[1].toString() === tonalres_1.TonalLetterTags.hh)) ||
(sounds.length == 3 &&
sounds[0].name === tonalres_1.TonalSpellingTags.vowel &&
(sounds[1].toString() === tonalres_1.TonalLetterTags.h ||
sounds[1].toString() === tonalres_1.TonalLetterTags.hh) &&
sounds[2].name === tonalres_1.TonalSpellingTags.checkedTone) ||
(sounds.length == 3 &&
sounds[0].name === tonalres_1.TonalSpellingTags.vowel &&
sounds[1].name === tonalres_1.TonalSpellingTags.nasalization &&
(sounds[2].toString() === tonalres_1.TonalLetterTags.h ||
sounds[2].toString() === tonalres_1.TonalLetterTags.hh))) {
// reduplicate the vowel for syllables without an initial
// in case of ah, ehh
// in case of ahy
// in case of ennh, innh
return getSmallKanaVowel(sounds[0].toString());
}
return '';
}
function getSmallKanaVowel(medial) {
const got = kanares_1.otherKanas.get(medial);
if (got && got[1]) {
// get the small form of the vowel and append it
return got[1];
}
return '';
}
function composeTaiKana(morphemes) {
let kanaSeqs = [];
let kanas = new Array(morphemes.length);
let kanas4thToneWoArrow = '';
for (let i = 0; i < morphemes.length; i++) {
const initl = morphemes[i].sounds.filter((it) => it.name === tonalres_1.TonalSpellingTags.initialConsonant);
const mdls = morphemes[i].sounds.filter((it) => it.name === tonalres_1.TonalSpellingTags.vowel ||
it.name === tonalres_1.TonalSpellingTags.materLectionis);
const nslFnl = morphemes[i].sounds.filter((it) => it.name === tonalres_1.TonalSpellingTags.nasalFinalConsonant);
const stpFnl = morphemes[i].sounds.filter((it) => it.name === tonalres_1.TonalSpellingTags.stopFinalConsonant);
const frTnl = morphemes[i].sounds.filter((it) => it.name === tonalres_1.TonalSpellingTags.freeTone);
const chkTnl = morphemes[i].sounds.filter((it) => it.name === tonalres_1.TonalSpellingTags.checkedTone);
const nslz = morphemes[i].sounds.filter((it) => it.name === tonalres_1.TonalSpellingTags.nasalization);
const finalsForEToKanaIe = stpFnl
.filter((it) => it.name === tonalres_1.TonalSpellingTags.stopFinalConsonant &&
finalsForEkIgEkkIggIng.includes(it.toString()))
.concat(nslFnl.filter((it) => it.name === tonalres_1.TonalSpellingTags.nasalFinalConsonant &&
finalsForEkIgEkkIggIng.includes(it.toString())));
// initialize for this morpheme
kanas[i] = '';
if (initl.length == 1) {
if (mdls.length > 0) {
for (let j = 0; j < mdls.length; j++) {
if (voewlsIrEr.includes(mdls[j].toString())) {
kanas[i] +=
handleCombiningDotBelowOverline(initl[0].toString(), mdls[j].toString()) + getKanaIrEr(mdls, stpFnl.length + nslFnl.length == 1);
}
else if (mdls[j].toString() === tonalres_1.TonalLetterTags.ur) {
if (j == 0) {
// if the preceding letter is an initial
const initialKana = handleCombiningDotBelowOverline(initl[0].toString(), mdls[j].toString());
kanas[i] += initialKana;
if (stpFnl.length == 1) {
const kn = mappingMedialSmallForm.get(mdls[j].toString());
if (kn)
kanas[i] += kn[1];
}
else {
const kn = mappingMedial.get(mdls[j].toString());
if (kn)
kanas[i] += kn[1];
}
}
else {
if (stpFnl.length == 1) {
const kn = mappingMedialSmallForm.get(mdls[j].toString());
if (kn)
kanas[i] += kn[1];
}
else {
const gotVowels = mappingMedial.get(mdls[j].toString());
if (gotVowels)
kanas[i] += gotVowels[1];
}
}
}
else {
if (j > 0) {
if (stpFnl.length == 1) {
// more that one vowels. e.g. goehh
kanas[i] += getSmallKanaVowel(mdls[j].toString());
}
else {
if (j == 1 && mdls.length == 3) {
kanas[i] += getSmallKanaVowel(mdls[j].toString());
}
else if (j == 1 && mdls.length == 2 && nslFnl.length == 1) {
kanas[i] += getSmallKanaVowel(mdls[j].toString());
}
else {
const kn = kanares_1.hiraganaKatakana.get(mdls[j].toString());
if (kn && kn[1])
kanas[i] += kn[1];
}
}
}
else {
// the first vowel. e.g. gehh, goehh
kanas[i] += handleCombiningDotBelowOverline(initl[0].toString(), mdls[j].toString());
if (nslFnl.length == 0 &&
mdls.length == 1 &&
stpFnl.length == 0) {
// open syllables with an initial
const kn = kanares_1.hiraganaKatakana.get(mdls[j].toString());
if (kn && kn[1]) {
// replicate the vowel and append it
kanas[i] += kn[1];
}
}
else if (nslFnl.length == 0 &&
mdls.length == 1 &&
stpFnl.length == 1 &&
tonalres_1.neutralFinalConsonantsTonal.includes(stpFnl[0].toString())) {
kanas[i] += getSmallKanaVowel(mdls[j].toString());
}
else if (mdls[j].toString() === tonalres_1.TonalLetterTags.e &&
mdls.length == 1 &&
nslz.length == 0 &&
stpFnl.length == 1 &&
finalsForEToKanaIe.length == 1 &&
!tonalres_1.neutralFinalConsonantsTonal.includes(stpFnl[0].toString())) {
// replace initial syllabogram
// remove initial syllabogram which has vowel e
kanas[i] = '';
// add initial syllabogram which has vowel i
const kn = handleCombiningDotBelowOverline(initl[0].toString(), tonalres_1.TonalLetterTags.i);
if (kn)
kanas[i] += kn;
// in case of syllables -ek and -ekk with an initial.
// an extra small kana e will be appended
kanas[i] += getSmallKanaVowel(tonalres_1.TonalLetterTags.e);
// console.log('medials>' + mdls + ', finals>' + stpFnl + ', ' + kanas);
}
}
}
}
}
else {
// there is no medials
}
}
if (initl.length == 0) {
if (mdls.length > 0) {
for (let j = 0; j < mdls.length; j++) {
let got;
if (j == 0 &&
mdls[j].toString() === tonalres_1.TonalLetterTags.o &&
mdls.length > 1) {
// map o to wo
got = kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.w + kanares_1.KanaLetterTags.o);
}
else {
// map o to o
got = kanares_1.hiraganaKatakana.get(mdls[j].toString());
}
if (got) {
if (j == 1 && mdls.length == 3) {
// get small kana for 2nd medial
kanas[i] += getSmallKanaVowel(mdls[j].toString());
}
else if (j == 1 && mdls.length == 2 && stpFnl.length == 1) {
// get small kana for 2nd vowel
kanas[i] += getSmallKanaVowel(mdls[j].toString());
}
else if (j == 1 && mdls.length == 2 && nslFnl.length == 1) {
// get small kana for 2nd vowel
kanas[i] += getSmallKanaVowel(mdls[j].toString());
}
else if (j == 2 && mdls.length == 3 && stpFnl.length == 1) {
// get small kana for 3rd vowel
kanas[i] += getSmallKanaVowel(mdls[j].toString());
}
else if (mdls[j].toString() === tonalres_1.TonalLetterTags.e &&
mdls.length == 1 &&
nslz.length == 0 &&
stpFnl.length == 1 &&
finalsForEToKanaIe.length == 1) {
// initial syllabogram
const kn = kanares_1.hiraganaKatakana.get(tonalres_1.TonalLetterTags.i);
if (kn)
kanas[i] += kn[1];
// in case of syllables ek and ekk without an initial
// an extra small kana e will be appended
kanas[i] += getSmallKanaVowel(tonalres_1.TonalLetterTags.e);
// console.log('medials>' + mdls + ', finals>' + stpFnl + ', ' + kanas);
}
else {
kanas[i] += got[1];
kanas[i] += getReplicatedKanaVowel(morphemes[i].sounds, j, got[1]);
}
}
else {
if (mdls[j].toString() === tonalres_1.TonalLetterTags.er ||
mdls[j].toString() === tonalres_1.TonalLetterTags.ir) {
const kn = mappingMedial.get(mdls[j].toString());
if (kn) {
kanas[i] += kn[1] + combiningOverline;
if (stpFnl.length == 1 &&
tonalres_1.neutralFinalConsonantsTonal.includes(stpFnl[0].toString())) {
// in case of erh, use kanaIrOr to get one extra small kana
kanas[i] += getKanaIrEr(mdls, stpFnl.length + nslFnl.length == 1);
}
else {
// there replicated kana other than ir, or
kanas[i] += getReplicatedKanaVowel(morphemes[i].sounds, i, kn[1] + combiningOverline);
}
}
}
else if (mdls[j].toString() === tonalres_1.TonalLetterTags.ur ||
mdls[j].toString() === tonalres_1.TonalLetterTags.er) {
// if the preceding letter is not an initial
const kn = mappingMedial.get(mdls[j].toString());
// in case of ur, iur. bypass urh, urhy, iurh, iurhy
if (kn && stpFnl.length == 0)
kanas[i] += kn[1];
if (stpFnl.length == 1) {
// in case of urh, urhy
if (kn && mdls.length == 1)
kanas[i] += kn[1];
const sml = mappingMedialSmallForm.get(mdls[j].toString());
if (sml)
kanas[i] += sml[1];
}
else {
if (mdls.length == 1) {
if (kn)
kanas[i] += getReplicatedKanaVowel(morphemes[i].sounds, j, kn[1]);
}
}
}
else if (tonalres_1.materLectionisTonal.includes(mdls[j].toString())) {
// mater lectionis: m, n, ng.
const kn = mappingMedial.get(mdls[j].toString());
if (kn) {
kanas[i] += kn[1];
}
}
}
}
}
}
if (nslz.length == 1) {
const tail = kanas[i].slice(1, kanas[i].length);
if (initl.length == 1) {
const kn = mappingNasalization.get(initl[0].toString() + mdls[0].toString());
if (kn)
kanas[i] = kn + tail;
}
else {
const kn = mappingNasalization.get(mdls[0].toString());
if (kn)
kanas[i] = kn + tail;
}
}
if (nslFnl.length == 1) {
// syllable finals
if (initl.length == 1 && mdls.length == 0) {
// there is no medials
const kn = kanaInitials(mappingInitial.get(initl[0].toString()))(nslFnl[0].toString());
if (kn && kn[0]) {
kanas[i] += handleCombiningDotBelowOverline(initl[0].toString(), nslFnl[0].toString());
}
}
let kn;
if (stpFnl.length > 0)
kn = mappingSmallNasalFinal.get(nslFnl[0].toString());
else
kn = mappingNasalFinal.get(nslFnl[0].toString());
if (kn && kn[1])
kanas[i] += kn[1];
}
if (stpFnl.length == 1) {
// syllable finals
const kn = mappingStopFinal.get(stpFnl[0].toString());
if (kn && kn[1]) {
// stop finals p, t, k, pp, tt, kk
kanas[i] += kn[1];
}
if (Object.values(collections_1.fourthFinalConsonants).includes(stpFnl[0].toString())) {
kanas4thToneWoArrow = kanas[i];
}
kanas[i] += getToneMarkForFourthEighth(stpFnl[0].toString(), chkTnl.length);
}
if (frTnl.length == 1) {
kanas[i] += mappingLettersToPseudoEncoding.get(frTnl[0].toString());
}
if (chkTnl.length == 1) {
kanas[i] += mappingLettersToPseudoEncoding.get(chkTnl[0].toString());
}
}
kanaSeqs.push(kanas.join(''));
if (kanas4thToneWoArrow.length > 0 && morphemes.length == 1) {
kanaSeqs.push(kanas4thToneWoArrow);
}
return kanaSeqs;
}
exports.composeTaiKana = composeTaiKana;
const kanaInitials = function (map) {
return function (following) {
if (following) {
if (map && map.has(following)) {
const got = map.get(following);
if (got && got[1]) {
return [got[1]];
}
}
}
else {
if (map) {
/*
const kanas = Array.from(map.values());
const dupes = Array.from(kanas.map(it => (it ? it[1] : '')));
const dedupes = dupes.reduce(function (
accumulator: string[],
curr: string
) {
if (accumulator.filter(it => it === curr).length == 0) {
accumulator.push(curr);
}
return accumulator;
},
[]);
return dedupes;
*/
}
}
return [];
};
};
const getKanaIrEr = function (vowels, hasOneFinal) {
if (vowels.length == 1) {
const kn = mappingMedial.get(vowels[0].toString());
if (kn) {
if (hasOneFinal) {
const sml = mappingMedialSmallForm.get(vowels[0].toString());
if (sml) {
return sml[1] + combiningOverline;
}
}
return kn[1] + combiningOverline;
}
}
else if (vowels.length == 2) {
// return small form
const kn = mappingMedialSmallForm.get(vowels[0].toString());
if (kn) {
return kn[1] + combiningOverline;
}
}
return '';
};
const freeSyllablesWithCombiningOverline = [
tonalres_1.TonalLetterTags.ch.toString() + tonalres_1.TonalLetterTags.a.toString(),
tonalres_1.TonalLetterTags.c.toString() + tonalres_1.TonalLetterTags.a.toString(),
tonalres_1.TonalLetterTags.ch.toString() + tonalres_1.TonalLetterTags.e.toString(),
tonalres_1.TonalLetterTags.c.toString() + tonalres_1.TonalLetterTags.e.toString(),
tonalres_1.TonalLetterTags.ch.toString() + tonalres_1.TonalLetterTags.o.toString(),
tonalres_1.TonalLetterTags.ch.toString() + tonalres_1.TonalLetterTags.er.toString(),
tonalres_1.TonalLetterTags.ch.toString() + tonalres_1.TonalLetterTags.ur.toString(),
tonalres_1.TonalLetterTags.c.toString() + tonalres_1.TonalLetterTags.o.toString(),
tonalres_1.TonalLetterTags.t.toString() + tonalres_1.TonalLetterTags.i.toString(),
tonalres_1.TonalLetterTags.th.toString() + tonalres_1.TonalLetterTags.i.toString(),
tonalres_1.TonalLetterTags.t.toString() + tonalres_1.TonalLetterTags.u.toString(),
tonalres_1.TonalLetterTags.th.toString() + tonalres_1.TonalLetterTags.u.toString(),
tonalres_1.TonalLetterTags.t.toString() + tonalres_1.TonalLetterTags.ng.toString(),
tonalres_1.TonalLetterTags.th.toString() + tonalres_1.TonalLetterTags.ng.toString(),
tonalres_1.TonalLetterTags.t.toString() + tonalres_1.TonalLetterTags.ir.toString(),
tonalres_1.TonalLetterTags.th.toString() + tonalres_1.TonalLetterTags.ir.toString(),
];
const initialsWithCombiningDotBelow = {
// whether the dot should be combined
aspirated: [
// with a dot
tonalres_1.TonalLetterTags.kh.toString(),
tonalres_1.TonalLetterTags.c.toString(),
tonalres_1.TonalLetterTags.ph.toString(),
tonalres_1.TonalLetterTags.th.toString(),
],
withoutADotOrOverline: [
tonalres_1.TonalLetterTags.k.toString(),
tonalres_1.TonalLetterTags.g.toString(),
tonalres_1.TonalLetterTags.b.toString(),
tonalres_1.TonalLetterTags.p.toString(),
tonalres_1.TonalLetterTags.j.toString(),
tonalres_1.TonalLetterTags.l.toString(),
tonalres_1.TonalLetterTags.h.toString(),
tonalres_1.TonalLetterTags.s.toString(),
tonalres_1.TonalLetterTags.m.toString(),
tonalres_1.TonalLetterTags.n.toString(),
tonalres_1.TonalLetterTags.ng.toString(),
],
withAnOverline: [
tonalres_1.TonalLetterTags.ch.toString(),
tonalres_1.TonalLetterTags.c.toString(),
tonalres_1.TonalLetterTags.t.toString(),
],
};
// includes mater lectionis
const mappingMedial = new Map()
.set(tonalres_1.TonalLetterTags.ir, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.er, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.o))
.set(tonalres_1.TonalLetterTags.ur, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.w + kanares_1.KanaLetterTags.o))
.set(tonalres_1.TonalLetterTags.ea, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.e))
.set(tonalres_1.TonalLetterTags.m, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.m + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.n, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.n + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.ng, kanares_1.hatsuon.get(kanares_1.KanaLetterTags.n));
const voewlsIrEr = [
tonalres_1.TonalLetterTags.ir.toString(),
tonalres_1.TonalLetterTags.er.toString(),
];
const mappingMedialSmallForm = new Map()
.set(tonalres_1.TonalLetterTags.a, kanares_1.otherKanas.get(kanares_1.KanaLetterTags.a))
.set(tonalres_1.TonalLetterTags.i, kanares_1.otherKanas.get(kanares_1.KanaLetterTags.i))
.set(tonalres_1.TonalLetterTags.e, kanares_1.otherKanas.get(kanares_1.KanaLetterTags.e))
.set(tonalres_1.TonalLetterTags.er, kanares_1.otherKanas.get(kanares_1.KanaLetterTags.o))
.set(tonalres_1.TonalLetterTags.ur, kanares_1.otherKanas.get(kanares_1.KanaLetterTags.w + kanares_1.KanaLetterTags.o))
.set(tonalres_1.TonalLetterTags.ir, kanares_1.otherKanas.get(kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.m, kanares_1.otherKanas.get(kanares_1.KanaLetterTags.m + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.n, kanares_1.otherKanas.get(kanares_1.KanaLetterTags.n + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.ng, kanares_1.otherKanas.get(kanares_1.KanaLetterTags.n));
const mappingLettersToPseudoEncoding = new Map()
.set(tonalres_1.TonalLetterTags.f, tonesets_1.PseudoUnicodeEncoding.first)
.set(tonalres_1.TonalLetterTags.y, tonesets_1.PseudoUnicodeEncoding.second)
.set(tonalres_1.TonalLetterTags.w, tonesets_1.PseudoUnicodeEncoding.third)
.set(tonalres_1.TonalLetterTags.x, tonesets_1.PseudoUnicodeEncoding.fifth)
.set(tonalres_1.TonalLetterTags.zx, tonesets_1.PseudoUnicodeEncoding.sixth)
.set(tonalres_1.TonalLetterTags.z, tonesets_1.PseudoUnicodeEncoding.seventh)
.set(tonalres_1.TonalLetterTags.xx, tonesets_1.PseudoUnicodeEncoding.ninth)
.set(tonalres_1.TonalLetterTags.p, tonesets_1.PseudoUnicodeEncoding.fourth)
.set(tonalres_1.TonalLetterTags.t, tonesets_1.PseudoUnicodeEncoding.fourth)
.set(tonalres_1.TonalLetterTags.k, tonesets_1.PseudoUnicodeEncoding.fourth)
.set(tonalres_1.TonalLetterTags.h, tonesets_1.PseudoUnicodeEncoding.fourth)
.set(tonalres_1.TonalLetterTags.b, tonesets_1.PseudoUnicodeEncoding.fourth)
.set(tonalres_1.TonalLetterTags.g, tonesets_1.PseudoUnicodeEncoding.fourth)
.set(tonalres_1.TonalLetterTags.j, tonesets_1.PseudoUnicodeEncoding.fourth)
.set(tonalres_1.TonalLetterTags.l, tonesets_1.PseudoUnicodeEncoding.fourth)
.set(tonalres_1.TonalLetterTags.s, tonesets_1.PseudoUnicodeEncoding.fourth)
.set(tonalres_1.TonalLetterTags.pp, tonesets_1.PseudoUnicodeEncoding.eighth)
.set(tonalres_1.TonalLetterTags.tt, tonesets_1.PseudoUnicodeEncoding.eighth)
.set(tonalres_1.TonalLetterTags.kk, tonesets_1.PseudoUnicodeEncoding.eighth)
.set(tonalres_1.TonalLetterTags.hh, tonesets_1.PseudoUnicodeEncoding.eighth)
.set(tonalres_1.TonalLetterTags.bb, tonesets_1.PseudoUnicodeEncoding.eighth)
.set(tonalres_1.TonalLetterTags.gg, tonesets_1.PseudoUnicodeEncoding.eighth)
.set(tonalres_1.TonalLetterTags.jj, tonesets_1.PseudoUnicodeEncoding.eighth)
.set(tonalres_1.TonalLetterTags.ll, tonesets_1.PseudoUnicodeEncoding.eighth)
.set(tonalres_1.TonalLetterTags.ss, tonesets_1.PseudoUnicodeEncoding.eighth);
const mappingStopFinal = new Map()
.set(tonalres_1.TonalLetterTags.p, kanares_1.otherKanas.get(kanares_1.KanaLetterTags.p + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.t, kanares_1.kogakimoji.get(kanares_1.KanaLetterTags.ts + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.k, kanares_1.otherKanas.get(kanares_1.KanaLetterTags.k + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.b, kanares_1.otherKanas.get(kanares_1.KanaLetterTags.b + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.g, kanares_1.otherKanas.get(kanares_1.KanaLetterTags.g + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.j, kanares_1.otherKanas.get(kanares_1.KanaLetterTags.j + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.l, kanares_1.otherKanas.get(kanares_1.KanaLetterTags.r + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.s, kanares_1.otherKanas.get(kanares_1.KanaLetterTags.s + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.pp, kanares_1.otherKanas.get(kanares_1.KanaLetterTags.p + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.tt, kanares_1.kogakimoji.get(kanares_1.KanaLetterTags.ts + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.kk, kanares_1.otherKanas.get(kanares_1.KanaLetterTags.k + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.bb, kanares_1.otherKanas.get(kanares_1.KanaLetterTags.b + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.gg, kanares_1.otherKanas.get(kanares_1.KanaLetterTags.g + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.jj, kanares_1.otherKanas.get(kanares_1.KanaLetterTags.j + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.ll, kanares_1.otherKanas.get(kanares_1.KanaLetterTags.r + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.ss, kanares_1.otherKanas.get(kanares_1.KanaLetterTags.s + kanares_1.KanaLetterTags.u));
const mappingNasalization = new Map()
.set(tonalres_1.TonalLetterTags.a, '㋐')
.set(tonalres_1.TonalLetterTags.i, '㋑')
.set(tonalres_1.TonalLetterTags.ir, '㋒')
.set(tonalres_1.TonalLetterTags.u, '㋒')
.set(tonalres_1.TonalLetterTags.e, '㋓')
.set(tonalres_1.TonalLetterTags.o, '㋔')
.set(tonalres_1.TonalLetterTags.kh + tonalres_1.TonalLetterTags.a, '㋕')
.set(tonalres_1.TonalLetterTags.kh + tonalres_1.TonalLetterTags.i, '㋖')
.set(tonalres_1.TonalLetterTags.kh + tonalres_1.TonalLetterTags.u, '㋗')
.set(tonalres_1.TonalLetterTags.kh + tonalres_1.TonalLetterTags.e, '㋘')
.set(tonalres_1.TonalLetterTags.kh + tonalres_1.TonalLetterTags.o, '㋙')
.set(tonalres_1.TonalLetterTags.s + tonalres_1.TonalLetterTags.a, '㋚')
.set(tonalres_1.TonalLetterTags.s + tonalres_1.TonalLetterTags.i, '㋛')
.set(tonalres_1.TonalLetterTags.s + tonalres_1.TonalLetterTags.ir, '㋜')
.set(tonalres_1.TonalLetterTags.s + tonalres_1.TonalLetterTags.u, '㋜')
.set(tonalres_1.TonalLetterTags.s + tonalres_1.TonalLetterTags.e, '㋝')
.set(tonalres_1.TonalLetterTags.s + tonalres_1.TonalLetterTags.o, '㋞')
.set(tonalres_1.TonalLetterTags.c + tonalres_1.TonalLetterTags.a, '㋚')
.set(tonalres_1.TonalLetterTags.c + tonalres_1.TonalLetterTags.i, '㋠')
.set(tonalres_1.TonalLetterTags.c + tonalres_1.TonalLetterTags.ir, '㋡')
.set(tonalres_1.TonalLetterTags.c + tonalres_1.TonalLetterTags.u, '㋡')
.set(tonalres_1.TonalLetterTags.c + tonalres_1.TonalLetterTags.e, '㋝')
.set(tonalres_1.TonalLetterTags.c + tonalres_1.TonalLetterTags.o, '㋞')
.set(tonalres_1.TonalLetterTags.ch + tonalres_1.TonalLetterTags.a, '㋚')
.set(tonalres_1.TonalLetterTags.ch + tonalres_1.TonalLetterTags.i, '㋠')
.set(tonalres_1.TonalLetterTags.ch + tonalres_1.TonalLetterTags.ir, '㋡')
.set(tonalres_1.TonalLetterTags.ch + tonalres_1.TonalLetterTags.u, '㋡')
.set(tonalres_1.TonalLetterTags.ch + tonalres_1.TonalLetterTags.e, '㋝')
.set(tonalres_1.TonalLetterTags.ch + tonalres_1.TonalLetterTags.o, '㋞')
.set(tonalres_1.TonalLetterTags.t + tonalres_1.TonalLetterTags.a, '㋟')
.set(tonalres_1.TonalLetterTags.t + tonalres_1.TonalLetterTags.i, '㋠')
.set(tonalres_1.TonalLetterTags.t + tonalres_1.TonalLetterTags.u, '㋡')
.set(tonalres_1.TonalLetterTags.t + tonalres_1.TonalLetterTags.e, '㋢')
.set(tonalres_1.TonalLetterTags.t + tonalres_1.TonalLetterTags.o, '㋣')
.set(tonalres_1.TonalLetterTags.j + tonalres_1.TonalLetterTags.i, '㋛' + '\u{3099}') // ㋛゙
.set(tonalres_1.TonalLetterTags.ph + tonalres_1.TonalLetterTags.a, '㋩' + '\u{309a}') // ㋩゚
.set(tonalres_1.TonalLetterTags.ph + tonalres_1.TonalLetterTags.i, '㋪' + '\u{309a}') // ㋪゚
.set(tonalres_1.TonalLetterTags.ph + tonalres_1.TonalLetterTags.u, '㋫' + '\u{309a}') // ㋫゚
.set(tonalres_1.TonalLetterTags.ph + tonalres_1.TonalLetterTags.e, '㋬' + '\u{309a}') // ㋬゚
.set(tonalres_1.TonalLetterTags.ph + tonalres_1.TonalLetterTags.o, '㋭' + '\u{309a}') // ㋭゚
.set(tonalres_1.TonalLetterTags.k + tonalres_1.TonalLetterTags.a, '㋕')
.set(tonalres_1.TonalLetterTags.k + tonalres_1.TonalLetterTags.i, '㋖')
.set(tonalres_1.TonalLetterTags.k + tonalres_1.TonalLetterTags.ir, '㋗')
.set(tonalres_1.TonalLetterTags.k + tonalres_1.TonalLetterTags.u, '㋗')
.set(tonalres_1.TonalLetterTags.k + tonalres_1.TonalLetterTags.e, '㋘')
.set(tonalres_1.TonalLetterTags.k + tonalres_1.TonalLetterTags.o, '㋙')
.set(tonalres_1.TonalLetterTags.h + tonalres_1.TonalLetterTags.a, '㋩')
.set(tonalres_1.TonalLetterTags.h + tonalres_1.TonalLetterTags.i, '㋪')
.set(tonalres_1.TonalLetterTags.h + tonalres_1.TonalLetterTags.ir, '㋫')
.set(tonalres_1.TonalLetterTags.h + tonalres_1.TonalLetterTags.u, '㋫')
.set(tonalres_1.TonalLetterTags.h + tonalres_1.TonalLetterTags.e, '㋬')
.set(tonalres_1.TonalLetterTags.h + tonalres_1.TonalLetterTags.o, '㋭')
.set(tonalres_1.TonalLetterTags.th + tonalres_1.TonalLetterTags.a, '㋟')
.set(tonalres_1.TonalLetterTags.th + tonalres_1.TonalLetterTags.i, '㋠')
.set(tonalres_1.TonalLetterTags.th + tonalres_1.TonalLetterTags.u, '㋡')
.set(tonalres_1.TonalLetterTags.th + tonalres_1.TonalLetterTags.e, '㋢')
.set(tonalres_1.TonalLetterTags.th + tonalres_1.TonalLetterTags.o, '㋣')
.set(tonalres_1.TonalLetterTags.p + tonalres_1.TonalLetterTags.a, '㋩' + '\u{309a}') // ㋩゚
.set(tonalres_1.TonalLetterTags.p + tonalres_1.TonalLetterTags.i, '㋪' + '\u{309a}') // ㋪゚
.set(tonalres_1.TonalLetterTags.p + tonalres_1.TonalLetterTags.u, '㋫' + '\u{309a}') // ㋫゚
.set(tonalres_1.TonalLetterTags.p + tonalres_1.TonalLetterTags.e, '㋬' + '\u{309a}') // ㋬゚
.set(tonalres_1.TonalLetterTags.p + tonalres_1.TonalLetterTags.o, '㋭' + '\u{309a}'); // ㋭゚
const finalsForEkIgEkkIggIng = [
tonalres_1.TonalLetterTags.k.toString(),
tonalres_1.TonalLetterTags.g.toString(),
tonalres_1.TonalLetterTags.kk.toString(),
tonalres_1.TonalLetterTags.gg.toString(),
tonalres_1.TonalLetterTags.ng.toString(),
];
const mappingNasalFinal = new Map()
.set(tonalres_1.TonalLetterTags.m, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.m + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.n, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.n + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.ng, kanares_1.hatsuon.get(kanares_1.KanaLetterTags.n));
const mappingSmallNasalFinal = new Map()
.set(tonalres_1.TonalLetterTags.m, kanares_1.otherKanas.get(kanares_1.KanaLetterTags.m + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.n, kanares_1.otherKanas.get(kanares_1.KanaLetterTags.n + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.ng, kanares_1.otherKanas.get(kanares_1.KanaLetterTags.n));
const mappingInitialB = new Map()
.set(tonalres_1.TonalLetterTags.a, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.b + kanares_1.KanaLetterTags.a))
.set(tonalres_1.TonalLetterTags.e, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.b + kanares_1.KanaLetterTags.e))
.set(tonalres_1.TonalLetterTags.i, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.b + kanares_1.KanaLetterTags.i))
.set(tonalres_1.TonalLetterTags.o, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.b + kanares_1.KanaLetterTags.o))
.set(tonalres_1.TonalLetterTags.u, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.b + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.ur, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.b + kanares_1.KanaLetterTags.o))
.set(tonalres_1.TonalLetterTags.er, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.b + kanares_1.KanaLetterTags.o));
const mappingInitialC = new Map()
.set(tonalres_1.TonalLetterTags.a, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.s + kanares_1.KanaLetterTags.a))
.set(tonalres_1.TonalLetterTags.e, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.s + kanares_1.KanaLetterTags.e))
.set(tonalres_1.TonalLetterTags.i, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.ch + kanares_1.KanaLetterTags.i))
.set(tonalres_1.TonalLetterTags.o, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.s + kanares_1.KanaLetterTags.o))
.set(tonalres_1.TonalLetterTags.er, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.s + kanares_1.KanaLetterTags.o))
.set(tonalres_1.TonalLetterTags.u, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.ts + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.ur, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.s + kanares_1.KanaLetterTags.o))
.set(tonalres_1.TonalLetterTags.ng, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.ts + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.ir, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.ts + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.m, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.ts + kanares_1.KanaLetterTags.u));
const mappingInitialG = new Map()
.set(tonalres_1.TonalLetterTags.a, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.g + kanares_1.KanaLetterTags.a))
.set(tonalres_1.TonalLetterTags.i, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.g + kanares_1.KanaLetterTags.i))
.set(tonalres_1.TonalLetterTags.u, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.g + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.e, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.g + kanares_1.KanaLetterTags.e))
.set(tonalres_1.TonalLetterTags.o, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.g + kanares_1.KanaLetterTags.o))
.set(tonalres_1.TonalLetterTags.ur, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.g + kanares_1.KanaLetterTags.o))
.set(tonalres_1.TonalLetterTags.ir, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.g + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.er, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.g + kanares_1.KanaLetterTags.o));
const mappingInitialH = new Map()
.set(tonalres_1.TonalLetterTags.a, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.h + kanares_1.KanaLetterTags.a))
.set(tonalres_1.TonalLetterTags.e, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.h + kanares_1.KanaLetterTags.e))
.set(tonalres_1.TonalLetterTags.i, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.h + kanares_1.KanaLetterTags.i))
.set(tonalres_1.TonalLetterTags.ir, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.f + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.m, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.f + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.o, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.h + kanares_1.KanaLetterTags.o))
.set(tonalres_1.TonalLetterTags.ng, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.f + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.u, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.f + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.ur, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.h + kanares_1.KanaLetterTags.o))
.set(tonalres_1.TonalLetterTags.er, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.h + kanares_1.KanaLetterTags.o));
const mappingInitialJ = new Map()
.set(tonalres_1.TonalLetterTags.e, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.z + kanares_1.KanaLetterTags.e))
.set(tonalres_1.TonalLetterTags.i, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.j + kanares_1.KanaLetterTags.i))
.set(tonalres_1.TonalLetterTags.er, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.z + kanares_1.KanaLetterTags.o))
.set(tonalres_1.TonalLetterTags.u, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.z + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.ir, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.z + kanares_1.KanaLetterTags.u));
const mappingInitialK = new Map()
.set(tonalres_1.TonalLetterTags.a, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.k + kanares_1.KanaLetterTags.a))
.set(tonalres_1.TonalLetterTags.i, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.k + kanares_1.KanaLetterTags.i))
.set(tonalres_1.TonalLetterTags.u, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.k + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.e, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.k + kanares_1.KanaLetterTags.e))
.set(tonalres_1.TonalLetterTags.o, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.k + kanares_1.KanaLetterTags.o))
.set(tonalres_1.TonalLetterTags.ur, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.k + kanares_1.KanaLetterTags.o))
.set(tonalres_1.TonalLetterTags.ir, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.k + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.er, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.k + kanares_1.KanaLetterTags.o))
.set(tonalres_1.TonalLetterTags.ng, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.k + kanares_1.KanaLetterTags.u));
const mappingInitialL = new Map()
.set(tonalres_1.TonalLetterTags.a, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.r + kanares_1.KanaLetterTags.a))
.set(tonalres_1.TonalLetterTags.e, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.r + kanares_1.KanaLetterTags.e))
.set(tonalres_1.TonalLetterTags.i, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.r + kanares_1.KanaLetterTags.i))
.set(tonalres_1.TonalLetterTags.o, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.r + kanares_1.KanaLetterTags.o))
.set(tonalres_1.TonalLetterTags.u, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.r + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.ir, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.r + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.ur, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.r + kanares_1.KanaLetterTags.o))
.set(tonalres_1.TonalLetterTags.er, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.r + kanares_1.KanaLetterTags.o))
.set(tonalres_1.TonalLetterTags.ng, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.r + kanares_1.KanaLetterTags.u));
const mappingInitialM = new Map()
.set(tonalres_1.TonalLetterTags.a, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.m + kanares_1.KanaLetterTags.a))
.set(tonalres_1.TonalLetterTags.i, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.m + kanares_1.KanaLetterTags.i))
.set(tonalres_1.TonalLetterTags.u, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.m + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.e, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.m + kanares_1.KanaLetterTags.e))
.set(tonalres_1.TonalLetterTags.o, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.m + kanares_1.KanaLetterTags.o))
.set(tonalres_1.TonalLetterTags.ng, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.m + kanares_1.KanaLetterTags.u));
const mappingInitialN = new Map()
.set(tonalres_1.TonalLetterTags.a, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.n + kanares_1.KanaLetterTags.a))
.set(tonalres_1.TonalLetterTags.e, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.n + kanares_1.KanaLetterTags.e))
.set(tonalres_1.TonalLetterTags.i, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.n + kanares_1.KanaLetterTags.i))
.set(tonalres_1.TonalLetterTags.o, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.n + kanares_1.KanaLetterTags.o))
.set(tonalres_1.TonalLetterTags.u, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.n + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.ir, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.n + kanares_1.KanaLetterTags.u));
const mappingInitialNG = new Map()
.set(tonalres_1.TonalLetterTags.a, kanares_1.special.get(kanares_1.KanaLetterTags.ng + kanares_1.KanaLetterTags.a))
.set(tonalres_1.TonalLetterTags.i, kanares_1.special.get(kanares_1.KanaLetterTags.ng + kanares_1.KanaLetterTags.i))
.set(tonalres_1.TonalLetterTags.u, kanares_1.special.get(kanares_1.KanaLetterTags.ng + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.e, kanares_1.special.get(kanares_1.KanaLetterTags.ng + kanares_1.KanaLetterTags.e))
.set(tonalres_1.TonalLetterTags.o, kanares_1.special.get(kanares_1.KanaLetterTags.ng + kanares_1.KanaLetterTags.o))
.set(tonalres_1.TonalLetterTags.ir, kanares_1.special.get(kanares_1.KanaLetterTags.ng + kanares_1.KanaLetterTags.u));
const mappingInitialP = new Map()
.set(tonalres_1.TonalLetterTags.a, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.p + kanares_1.KanaLetterTags.a))
.set(tonalres_1.TonalLetterTags.e, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.p + kanares_1.KanaLetterTags.e))
.set(tonalres_1.TonalLetterTags.i, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.p + kanares_1.KanaLetterTags.i))
.set(tonalres_1.TonalLetterTags.o, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.p + kanares_1.KanaLetterTags.o))
.set(tonalres_1.TonalLetterTags.u, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.p + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.ng, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.p + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.ir, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.p + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.er, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.p + kanares_1.KanaLetterTags.o))
.set(tonalres_1.TonalLetterTags.ur, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.p + kanares_1.KanaLetterTags.o));
const mappingInitialS = new Map()
.set(tonalres_1.TonalLetterTags.a, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.s + kanares_1.KanaLetterTags.a))
.set(tonalres_1.TonalLetterTags.e, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.s + kanares_1.KanaLetterTags.e))
.set(tonalres_1.TonalLetterTags.i, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.sh + kanares_1.KanaLetterTags.i))
.set(tonalres_1.TonalLetterTags.o, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.s + kanares_1.KanaLetterTags.o))
.set(tonalres_1.TonalLetterTags.er, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.s + kanares_1.KanaLetterTags.o))
.set(tonalres_1.TonalLetterTags.u, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.s + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.ur, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.s + kanares_1.KanaLetterTags.o))
.set(tonalres_1.TonalLetterTags.ng, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.s + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.ir, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.s + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.m, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.s + kanares_1.KanaLetterTags.u));
const mappingInitialT = new Map()
.set(tonalres_1.TonalLetterTags.a, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.t + kanares_1.KanaLetterTags.a))
.set(tonalres_1.TonalLetterTags.e, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.t + kanares_1.KanaLetterTags.e))
.set(tonalres_1.TonalLetterTags.i, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.ch + kanares_1.KanaLetterTags.i))
.set(tonalres_1.TonalLetterTags.o, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.t + kanares_1.KanaLetterTags.o))
.set(tonalres_1.TonalLetterTags.u, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.ts + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.ng, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.ts + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.ir, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.ts + kanares_1.KanaLetterTags.u))
.set(tonalres_1.TonalLetterTags.ur, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.t + kanares_1.KanaLetterTags.o))
.set(tonalres_1.TonalLetterTags.er, kanares_1.hiraganaKatakana.get(kanares_1.KanaLetterTags.t + kanares_1.KanaLetterTags.o));
const mappingInitial = new Map()
.set(tonalres_1.TonalLetterTags.b, mappingInitialB)
.set(tonalres_1.TonalLetterTags.c, mappingInitialC)
.set(tonalres_1.TonalLetterTags.ch, mappingInitialC)
.set(tonalres_1.TonalLetterTags.t, mappingInitialT)
.set(tonalres_1.TonalLetterTags.g, mappingInitialG)
.set(tonalres_1.TonalLetterTags.h, mappingInitialH)
.set(tonalres_1.TonalLetterTags.j, mappingInitialJ)
.set(tonalres_1.TonalLetterTags.kh, mappingInitialK)
.set(tonalres_1.TonalLetterTags.l, mappingInitialL)
.set(tonalres_1.TonalLetterTags.m, mappingInitialM)
.set(tonalres_1.TonalLetterTags.n, mappingInitialN)
.set(tonalres_1.TonalLetterTags.ng, mappingInitialNG)
.set(tonalres_1.TonalLetterTags.ph, mappingInitialP)
.set(tonalres_1.TonalLetterTags.k, mappingInitialK)
.set(tonalres_1.TonalLetterTags.s, mappingInitialS)
.set(tonalres_1.TonalLetterTags.th, mappingInitialT)
.set(tonalres_1.TonalLetterTags.p, mappingInitialP);
//# sourceMappingURL=taikana.js.map