local export = {}
local u = mw.ustring.char
local pua = {}
for i = 1, 7 do
	pua[i] = u(0xF000+i-1)
end

local py_tone_num_to_mark = {
	["1"] = "̄",
	["2"] = "́",
	["3"] = "̌",
	["4"] = "̀"
}

local py_tone_mark_to_num = {}
for k, v in pairs(py_tone_num_to_mark) do
	py_tone_mark_to_num[v] = k
end

export.py_tone_num_to_mark = py_tone_num_to_mark
export.py_tone_mark_to_num = py_tone_mark_to_num

export.py_mark_priority = {
	"[iuü][aeêiouü]",
	"[aeê]",
	"o",
	"[iuü]",
	"[mn]"
}

export.tones = "[̄́̌̀]"

export.py_ipa_initials = {
	["b"] = "p", ["p"] = "pʰ",
	["d"] = "t", ["t"] = "tʰ",
	["g"] = "k", ["k"] = "kʰ", ["h"] = "x",
	["j"] = "t͡ɕ", ["q"] = "t͡ɕʰ", ["x"] = "ɕ",
	["ẑ"] = "ʈ͡ʂ", ["ĉ"] = "ʈ͡ʂʰ", ["ŝ"] = "ʂ",
	["r"] = "ʐ", ["z"] = "t͡s", ["c"] = "t͡sʰ",
}

export.py_ipa_initials_tl = {
	["p"] = "b̥",
	["t"] = "d̥",
	["k"] = "g̊",
	["t͡ɕ"] = "d͡ʑ̥",
	["ʈ͡ʂ"] = "ɖ͡ʐ̥",
	["t͡s"] = "d͡z̥",
}

export.py_ipa_finals = {
	["a"] = "ä", ["o"] = "ɔ", ["e"] = "ɤ", ["ê"] = "ɛ",
	["ai"] = "aɪ̯", ["ei"] = "eɪ̯",
	["au"] = "ɑʊ̯", ["ou"] = "oʊ̯",
	["em"] = "əm",
	["aim"] = "aɪ̯m",
	["an"] = "än", ["en"] = "ən", ["ên"] = "ɛn",
	["aŋ"] = "ɑŋ", ["oŋ"] = "ʊŋ", ["eŋ"] = "ɤŋ", ["êŋ"] = "ɛŋ",
	["ia"] = "i̯ä", ["io"] = "i̯ɔ", ["iê"] = "i̯ɛ",
	["iai"] = "i̯aɪ̯",
	["iau"] = "i̯ɑʊ̯", ["iou"] = "i̯oʊ̯",
	["ian"] = "i̯ɛn",
	["iaŋ"] = "i̯ɑŋ",
	["ua"] = "u̯ä", ["uo"] = "u̯ɔ", ["uê"] = "u̯ɛ",
	["uai"] = "u̯aɪ̯", ["uei"] = "u̯eɪ̯",
	["uom"] = "u̯ɔm",
	["uan"] = "u̯än", ["un"] = "u̯ən",
	["uaŋ"] = "u̯ɑŋ", ["uŋ"] = "u̯əŋ",
	["ü"] = "y", ["üo"] = "y̯ɔ", ["üê"] = "y̯ɛ",
	["üan"] = "y̯ɛn", ["ün"] = "yn",
	["üŋ"] = "i̯ʊŋ",
	["ɨ"] = "ʐ̩",
	["m"] = "m̩", ["n"] = "n̩", ["ŋ"] = "ŋ̍",
}

export.py_ipa_erhua = {
	{"än?", "[ɔɤɛʐ]̩?", "([ɑʊɤɛ])ŋ", "[iy]n?", "aɪ̯", "eɪ̯", "ɑʊ̯", "oʊ̯", "ən", "ɛn", "iŋ", "u", "əŋ"},
	{"ɑɻ", "%0ɻ", "%1̃ɻ", "%1ə̯ɻ", "ɑɻ", "əɻ", "aʊ̯ɻʷ", "ɤʊ̯ɻʷ", "əɻ", "ɑɻ", "iɤ̯̃ɻ", "uɻʷ", "ʊ̃ɻ"}
}

export.py_ipa_t_values = {
	["1"] = "⁵⁵",
	["1-2"] = "⁵⁵⁻³⁵",
	["1-4"] = "⁵⁵⁻⁵¹",
	["2"] = "³⁵",
	["3"] = "²¹⁴",
	["4"] = "⁵¹",
	["4-2"] = "⁵¹⁻³⁵",
}

export.py_ipa_tl_ts = {
	["1"] = "²",
	["2"] = "³",
	["3"] = "⁴",
	["4"] = "¹",
	["5"] = "¹"
}

export.py_zhuyin_consonant = {
	["b"] = "ㄅ", ["p"] = "ㄆ", ["m"] = "ㄇ", ["f"] = "ㄈ",
	["d"] = "ㄉ", ["t"] = "ㄊ", ["n"] = "ㄋ", ["l"] = "ㄌ",
	["g"] = "ㄍ", ["k"] = "ㄎ", ["h"] = "ㄏ",
	["j"] = "ㄐ", ["q"] = "ㄑ", ["x"] = "ㄒ",
	["ẑ"] = "ㄓ", ["ĉ"] = "ㄔ", ["ŝ"] = "ㄕ",
	["r"] = "ㄖ", ["z"] = "ㄗ", ["c"] = "ㄘ", ["s"] = "ㄙ",
	["v"] = "ㄪ", ["ŋ"] = "ㄫ", ["ɲ"] = "ㄬ"
}

export.py_zhuyin_glide = {
	["i"] = "ㄧ", ["u"] = "ㄨ", ["ü"] = "ㄩ", ["ɨ"] = ""
}

export.py_zhuyin_nucleus = {
	["a"] = "ㄚ", ["o"] = "ㄛ", ["e"] = "ㄜ", ["ê"] = "ㄝ"
}

export.py_zhuyin_final = {
	["ㄚㄧ"] = "ㄞ", ["ㄝㄧ"] = "ㄟ",
	["ㄚㄨ"] = "ㄠ", ["ㄛㄨ"] = "ㄡ",
	["ㄚㄋ"] = "ㄢ", ["ㄜㄋ"] = "ㄣ",
	["ㄚㄫ"] = "ㄤ", ["ㄜㄫ"] = "ㄥ"
}

export.py_zhuyin_syllabic_nasal = {
	["ㄇ"] = "ㆬ", ["ㄋ"] = "ㄯ", ["ㄫ"] = "ㆭ"
}

export.py_zhuyin_tone = {["1"] = "", ["2"] = "ˊ", ["3"] = "ˇ", ["4"] = "ˋ", ["5"] = "˙"}

export.zhuyin_py_initial = {
	["ㄅ"] = "b", ["ㄆ"] = "p", ["ㄇ"] = "m", ["ㄈ"] = "f",
	["ㄉ"] = "d", ["ㄊ"] = "t", ["ㄋ"] = "n", ["ㄌ"] = "l",
	["ㄍ"] = "g", ["ㄎ"] = "k", ["ㄏ"] = "h",
	["ㄐ"] = "j", ["ㄑ"] = "q", ["ㄒ"] = "x",
	["ㄓ"] = "zh", ["ㄔ"] = "ch", ["ㄕ"] = "sh",
	["ㄗ"] = "z", ["ㄘ"] = "c", ["ㄙ"] = "s", ["ㄖ"] = "r",
	["ㄭ"] = "i",
	["ㄪ"] = "v",
	[""] = ""
}

export.zhuyin_py_final = {
	['ㄚ'] = 'a', ['ㄛ'] = 'o', ['ㄜ'] = 'e', ['ㄝ'] = 'ê', ['ㄞ'] = 'ai', ['ㄟ'] = 'ei', ['ㄠ'] = 'ao', ['ㄡ'] = 'ou', ['ㄢ'] = 'an', ['ㄣ'] = 'en', ['ㄤ'] = 'ang', ['ㄥ'] = 'eng',
	['ㄧ'] = 'i', ['ㄧㄚ'] = 'ia', ['ㄧㄛ'] = 'io', ['ㄧㄝ'] = 'ie', ['ㄧㄞ'] = 'iai', ['ㄧㄠ'] = 'iao', ['ㄧㄡ'] = 'iu', ['ㄧㄢ'] = 'ian', ['ㄧㄣ'] = 'in', ['ㄧㄤ'] = 'iang', ['ㄧㄥ'] = 'ing',
	['ㄨ'] = 'u', ['ㄨㄚ'] = 'ua', ['ㄨㄛ'] = 'uo', ['ㄨㄞ'] = 'uai', ['ㄨㄟ'] = 'ui', ['ㄨㄢ'] = 'uan', ['ㄨㄣ'] = 'un', ['ㄨㄤ'] = 'uang', ['ㄨㄥ'] = 'ong',
	['ㄩ'] = 'ü', ['ㄩㄝ'] = 'ue', ['ㄩㄝ'] = 'üe', ['ㄩㄢ'] = 'üan', ['ㄩㄣ'] = 'ün', ['ㄩㄥ'] = 'iong',
	['ㄨㄝ'] = 'uê', ['ㄝㄋ'] = 'ên',
	['ㄦ'] = 'er', ['ㄫ'] = 'ng', ['ㄇ'] = 'm', [''] = 'i'
}

export.zhuyin_py_tone = {
	["ˊ"] = "\204\129", ["ˇ"] = "\204\140", ["ˋ"] = "\204\128", ["˙"] = "", [""] = "\204\132"	
}

export.py_wg_consonant = {
	["b"] = "p", ["p"] = "pʻ",
	["d"] = "t", ["t"] = "tʻ",
	["g"] = "k", ["k"] = "kʻ",
	["j"] = "ch", ["q"] = "chʻ", ["x"] = "hs",
	["ẑ"] = "ch", ["ĉ"] = "chʻ", ["ŝ"] = "sh",
	["r"] = "j", ["z"] = "ts", ["c"] = "tsʻ",
	["ŋ"] = "ng", ["ɲ"] = "gn"
}

export.py_wg_consonant_dental = {["z"] = "tz", ["c"] = "tzʻ", ["s"] = "ss"}

export.py_wg_glide = {["ɨ"] = "ih"}

export.py_wg_nucleus = {["e"] = "ê", ["ê"] = "eh"}

export.py_wg_o = {[""] = true, ["g"] = true, ["k"] = true, ["ŋ"] = true, ["h"] = true}

export.py_gwoyeu_initial = {
	['b'] = 'b',  ['p'] = 'p',  ['m'] = 'm',  ['f'] = 'f',
	['d'] = 'd',  ['t'] = 't',  ['n'] = 'n',  ['l'] = 'l',
	['g'] = 'g',  ['k'] = 'k',  ['h'] = 'h',
	['j'] = 'j',  ['q'] = 'ch',  ['x'] = 'sh',
	['zh'] = 'j', ['ch'] = 'ch', ['sh'] = 'sh', ['r'] = 'r',
	['z'] = 'tz', ['c'] = 'ts',  ['s'] = 's',
	['y'] = 'i',  ['w'] = 'u',
	['v'] = 'v',
	[''] = ''
}

export.py_gwoyeu_initials = export.py_gwoyeu_initial

export.py_gwoyeu_final = {
	['a'] = 'a',   ['ai'] = 'ai',  ['ao'] = 'au',   ['an'] = 'an',   ['ang'] = 'ang',   ['e'] = 'e',   ['ei'] = 'ei',  ['ou'] = 'ou',  ['en'] = 'en',  ['eng'] = 'eng',   ['o'] = 'o',
	['ia'] = 'ia',     ['iai'] = 'iai',    ['iao'] = 'iau',  ['ian'] = 'ian',  ['iang'] = 'iang',  ['ie'] = 'ie',          ['iu'] = 'iou',  ['in'] = 'in',  ['ing'] = 'ing',   ['i'] = 'i',
	['ua'] = 'ua',  ['uai'] = 'uai',         ['uan'] = 'uan',  ['uang'] = 'uang',  ['uo'] = 'uo',  ['ui'] = 'uei',         ['un'] = 'uen', ['ong'] = 'ong',   ['u'] = 'u',
	['ɨ'] = 'y',                  ['üan'] = 'iuan',          ['üe'] = 'iue',    ['üo'] = 'iuo',             ['ün'] = 'iun', ['iong'] = 'iong',  ['ü'] = 'iu',
	['io'] = 'io', ['ê'] = 'è', ['ên'] = 'èn', ['êng'] = 'èng',
	--erhua
	['ar'] = 'al',  ['air'] = 'al',  ['aor'] = 'aul',  ['anr'] = 'al',  ['angr'] = 'angl',  ['er'] = "e'l",  ['eir'] = 'el', ['our'] = 'oul', ['enr'] = 'el', ['engr'] = 'engl',  ['or'] = 'ol',
	['iar'] = 'ial',    ['iair'] = 'ial',    ['iaor'] = 'iaul', ['ianr'] = 'ial', ['iangr'] = 'iangl', ['ier'] = "ie'l",         ['iur'] = 'ioul', ['inr'] = 'iel', ['ingr'] = 'iengl', ['ir'] = 'iel',
	['uar'] = 'ual', ['uair'] = 'ual',         ['uanr'] = 'ual', ['uangr'] = 'uangl', ['uor'] = 'uol', ['uir'] = 'uel',        ['unr'] = 'uel', ['ongr'] = 'ongl',  ['ur'] = 'ul',
	['ɨr'] = 'el',                 ['üanr'] = 'iual',          ['üer'] = "iue'l",  ['üor'] = 'iuol',              ['ünr'] = 'iul', ['iongr'] = 'iongl', ['ür'] = 'iuel', ['ênr'] = 'èl', ['êngr'] = 'èngl',
}

export.py_gwoyeu_finals = export.py_gwoyeu_final

export.py_yale_initial = {
	["c"] = "ts", ["q"] = "ch", ["x"] = "sy", ["z"] = "dz"
}

export.py_yale_initials = {
	["q"] = "ch", ["x"] = "sy",
	["ẑ"] = "j", ["ĉ"] = "ch", ["ŝ"] = "sh",
	["z"] = "dz", ["c"] = "ts",
}

export.py_yale_one_medial = {
	["ê"] = "e", ["ü"] = "yu"
}

export.py_yale_two_medials = {
	["ao"] = "au", ["iu"] = "you", ["ui"] = "wei", ["un"] = "wun"
}

export.py_yale_finals = {
	["ê"] = "e",
	["ên"] = "en",
	["aŋ"] = "ang", ["oŋ"] = "ung", ["eŋ"] = "eng", ["êŋ"] = "eng",
	["ia"] = "ya", ["io"] = "yo", ["iê"] = "ye",
	["iai"] = "yai",
	["iau"] = "yau", ["iou"] = "you",
	["ian"] = "yan",
	["iaŋ"] = "yang",
	["ua"] = "wa", ["uo"] = "wo", ["uê"] = "we",
	["uai"] = "wai", ["uei"] = "wei",
	["uom"] = "wom",
	["uan"] = "wan", ["un"] = "wun",
	["uaŋ"] = "wang", ["uŋ"] = "wung",
	["ü"] = "yu", ["üo"] = "ywo", ["üê"] = "ywe",
	["üan"] = "ywan", ["ün"] = "yun",
	["üŋ"] = "ung",
	["ɨ"] = "r",
}

export.py_palladius_one_initial = {
	["b"] = "б", ["p"] = "п", ["m"] = "м", ["f"] = "ф", ["d"] = "д", ["t"] = "т", ["n"] = "н",
	["l"] = "л", ["g"] = "г", ["k"] = "к", ["h"] = "х", ["j"] = "цз", ["q"] = "ц", ["x"] = "с",
	["r"] = "ж", ["z"] = "цз" .. pua[1], ["c"] = "ц" .. pua[1], ["s"] = "с" .. pua[1],
	["v"] = "в" .. pua[2], ["w"] = "в", ["y"] = "i"
}
	
export.py_palladius_two_initials = {
	["zh"] = "чж", ["ch"] = "ч", ["sh"] = "ш"
}
	
export.py_palladius_one_medial = {
	["a"] = "а", ["e"] = "э", ["i"] = "и",
	["o"] = "о", ["u"] = "у", ["ü"] = "юй"
}
	
export.py_palladius_two_medials = {
	["ai"] = "ай", ["ao"] = "ао", ["ê"] = "эй", ["ei"] = "эй",
	["ia"] = "я", ["ie"] = "е", ["io"] = "ё", ["iu"] = "ю", ["iü"] = "юй",
	["ou"] = "оу", ["ua"] = "уа", ["ui"] = "уй", ["uo"] = "о",
	["üa"] = "юа", ["üe"] = "юэ"
}
	
export.py_palladius_three_medials = {
	["iai"] = "яй", ["iao"] = "яо", ["iüa"] = "юа", ["iüe"] = "юэ",
	["uai"] = "уай"
}
	
export.py_palladius_final = {
	["m"] = "м", ["n"] = "нь", ["r"] = "р"
}

export.py_palladius_finals = export.py_palladius_final
	
export.py_palladius_specials = {
	["ву"] = "у", ["ён"] = "юн", ["ёу"] = "ю", [pua[1] .. "и"] = "ы", ["ии"] = "и", ["йн"] = "н", ["он"] = "ун", ["юу"] = "ю", ["хуй"] = "хуэй",
}

-- Note: Russian Cyrillic uses curly apostrophes.
export.py_palladius_disambig = {
	[pua[3] .. "а"] = "’а", [pua[3] .. "н" .. pua[7]] = "’н", [pua[3] .. "нь" .. pua[7]] = "’нь", [pua[3] .. "эй"] = "’эй",
	[pua[4] .. "у"] = "’у",
	[pua[5] .. "о"] = "’о", [pua[5] .. "н" .. pua[7]] = "’н", [pua[5] .. "нь" .. pua[7]] = "’нь",
	[pua[6] .. "н" .. pua[7]] = "’н", [pua[6] .. "нь" .. pua[7]] = "’нь",
}

return export