// Generated by scripts/gen_unicode.py from Python's unicodedata
// (Unicode 15.1.0). Do not edit.

///|
/// The code points of the Unicode White_Space property, ascending.
let whitespace_code_points : Array[Int32] = [
  0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x0020, 0x0085, 0x00A0, 0x1680, 0x2000,
  0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A,
  0x2028, 0x2029, 0x202F, 0x205F, 0x3000,
]

///|
/// Start and end of each run of P (punctuation) or S (symbol) code
/// points, ascending and inclusive on both ends.
let punctuation_ranges : Array[Int32] = [
  0x0021, 0x002F, 0x003A, 0x0040, 0x005B, 0x0060, 0x007B, 0x007E, 0x00A1, 0x00A9,
  0x00AB, 0x00AC, 0x00AE, 0x00B1, 0x00B4, 0x00B4, 0x00B6, 0x00B8, 0x00BB, 0x00BB,
  0x00BF, 0x00BF, 0x00D7, 0x00D7, 0x00F7, 0x00F7, 0x02C2, 0x02C5, 0x02D2, 0x02DF,
  0x02E5, 0x02EB, 0x02ED, 0x02ED, 0x02EF, 0x02FF, 0x0375, 0x0375, 0x037E, 0x037E,
  0x0384, 0x0385, 0x0387, 0x0387, 0x03F6, 0x03F6, 0x0482, 0x0482, 0x055A, 0x055F,
  0x0589, 0x058A, 0x058D, 0x058F, 0x05BE, 0x05BE, 0x05C0, 0x05C0, 0x05C3, 0x05C3,
  0x05C6, 0x05C6, 0x05F3, 0x05F4, 0x0606, 0x060F, 0x061B, 0x061B, 0x061D, 0x061F,
  0x066A, 0x066D, 0x06D4, 0x06D4, 0x06DE, 0x06DE, 0x06E9, 0x06E9, 0x06FD, 0x06FE,
  0x0700, 0x070D, 0x07F6, 0x07F9, 0x07FE, 0x07FF, 0x0830, 0x083E, 0x085E, 0x085E,
  0x0888, 0x0888, 0x0964, 0x0965, 0x0970, 0x0970, 0x09F2, 0x09F3, 0x09FA, 0x09FB,
  0x09FD, 0x09FD, 0x0A76, 0x0A76, 0x0AF0, 0x0AF1, 0x0B70, 0x0B70, 0x0BF3, 0x0BFA,
  0x0C77, 0x0C77, 0x0C7F, 0x0C7F, 0x0C84, 0x0C84, 0x0D4F, 0x0D4F, 0x0D79, 0x0D79,
  0x0DF4, 0x0DF4, 0x0E3F, 0x0E3F, 0x0E4F, 0x0E4F, 0x0E5A, 0x0E5B, 0x0F01, 0x0F17,
  0x0F1A, 0x0F1F, 0x0F34, 0x0F34, 0x0F36, 0x0F36, 0x0F38, 0x0F38, 0x0F3A, 0x0F3D,
  0x0F85, 0x0F85, 0x0FBE, 0x0FC5, 0x0FC7, 0x0FCC, 0x0FCE, 0x0FDA, 0x104A, 0x104F,
  0x109E, 0x109F, 0x10FB, 0x10FB, 0x1360, 0x1368, 0x1390, 0x1399, 0x1400, 0x1400,
  0x166D, 0x166E, 0x169B, 0x169C, 0x16EB, 0x16ED, 0x1735, 0x1736, 0x17D4, 0x17D6,
  0x17D8, 0x17DB, 0x1800, 0x180A, 0x1940, 0x1940, 0x1944, 0x1945, 0x19DE, 0x19FF,
  0x1A1E, 0x1A1F, 0x1AA0, 0x1AA6, 0x1AA8, 0x1AAD, 0x1B5A, 0x1B6A, 0x1B74, 0x1B7E,
  0x1BFC, 0x1BFF, 0x1C3B, 0x1C3F, 0x1C7E, 0x1C7F, 0x1CC0, 0x1CC7, 0x1CD3, 0x1CD3,
  0x1FBD, 0x1FBD, 0x1FBF, 0x1FC1, 0x1FCD, 0x1FCF, 0x1FDD, 0x1FDF, 0x1FED, 0x1FEF,
  0x1FFD, 0x1FFE, 0x2010, 0x2027, 0x2030, 0x205E, 0x207A, 0x207E, 0x208A, 0x208E,
  0x20A0, 0x20C0, 0x2100, 0x2101, 0x2103, 0x2106, 0x2108, 0x2109, 0x2114, 0x2114,
  0x2116, 0x2118, 0x211E, 0x2123, 0x2125, 0x2125, 0x2127, 0x2127, 0x2129, 0x2129,
  0x212E, 0x212E, 0x213A, 0x213B, 0x2140, 0x2144, 0x214A, 0x214D, 0x214F, 0x214F,
  0x218A, 0x218B, 0x2190, 0x2426, 0x2440, 0x244A, 0x249C, 0x24E9, 0x2500, 0x2775,
  0x2794, 0x2B73, 0x2B76, 0x2B95, 0x2B97, 0x2BFF, 0x2CE5, 0x2CEA, 0x2CF9, 0x2CFC,
  0x2CFE, 0x2CFF, 0x2D70, 0x2D70, 0x2E00, 0x2E2E, 0x2E30, 0x2E5D, 0x2E80, 0x2E99,
  0x2E9B, 0x2EF3, 0x2F00, 0x2FD5, 0x2FF0, 0x2FFF, 0x3001, 0x3004, 0x3008, 0x3020,
  0x3030, 0x3030, 0x3036, 0x3037, 0x303D, 0x303F, 0x309B, 0x309C, 0x30A0, 0x30A0,
  0x30FB, 0x30FB, 0x3190, 0x3191, 0x3196, 0x319F, 0x31C0, 0x31E3, 0x31EF, 0x31EF,
  0x3200, 0x321E, 0x322A, 0x3247, 0x3250, 0x3250, 0x3260, 0x327F, 0x328A, 0x32B0,
  0x32C0, 0x33FF, 0x4DC0, 0x4DFF, 0xA490, 0xA4C6, 0xA4FE, 0xA4FF, 0xA60D, 0xA60F,
  0xA673, 0xA673, 0xA67E, 0xA67E, 0xA6F2, 0xA6F7, 0xA700, 0xA716, 0xA720, 0xA721,
  0xA789, 0xA78A, 0xA828, 0xA82B, 0xA836, 0xA839, 0xA874, 0xA877, 0xA8CE, 0xA8CF,
  0xA8F8, 0xA8FA, 0xA8FC, 0xA8FC, 0xA92E, 0xA92F, 0xA95F, 0xA95F, 0xA9C1, 0xA9CD,
  0xA9DE, 0xA9DF, 0xAA5C, 0xAA5F, 0xAA77, 0xAA79, 0xAADE, 0xAADF, 0xAAF0, 0xAAF1,
  0xAB5B, 0xAB5B, 0xAB6A, 0xAB6B, 0xABEB, 0xABEB, 0xFB29, 0xFB29, 0xFBB2, 0xFBC2,
  0xFD3E, 0xFD4F, 0xFDCF, 0xFDCF, 0xFDFC, 0xFDFF, 0xFE10, 0xFE19, 0xFE30, 0xFE52,
  0xFE54, 0xFE66, 0xFE68, 0xFE6B, 0xFF01, 0xFF0F, 0xFF1A, 0xFF20, 0xFF3B, 0xFF40,
  0xFF5B, 0xFF65, 0xFFE0, 0xFFE6, 0xFFE8, 0xFFEE, 0xFFFC, 0xFFFD, 0x10100, 0x10102,
  0x10137, 0x1013F, 0x10179, 0x10189, 0x1018C, 0x1018E, 0x10190, 0x1019C, 0x101A0,
  0x101A0, 0x101D0, 0x101FC, 0x1039F, 0x1039F, 0x103D0, 0x103D0, 0x1056F, 0x1056F,
  0x10857, 0x10857, 0x10877, 0x10878, 0x1091F, 0x1091F, 0x1093F, 0x1093F, 0x10A50,
  0x10A58, 0x10A7F, 0x10A7F, 0x10AC8, 0x10AC8, 0x10AF0, 0x10AF6, 0x10B39, 0x10B3F,
  0x10B99, 0x10B9C, 0x10EAD, 0x10EAD, 0x10F55, 0x10F59, 0x10F86, 0x10F89, 0x11047,
  0x1104D, 0x110BB, 0x110BC, 0x110BE, 0x110C1, 0x11140, 0x11143, 0x11174, 0x11175,
  0x111C5, 0x111C8, 0x111CD, 0x111CD, 0x111DB, 0x111DB, 0x111DD, 0x111DF, 0x11238,
  0x1123D, 0x112A9, 0x112A9, 0x1144B, 0x1144F, 0x1145A, 0x1145B, 0x1145D, 0x1145D,
  0x114C6, 0x114C6, 0x115C1, 0x115D7, 0x11641, 0x11643, 0x11660, 0x1166C, 0x116B9,
  0x116B9, 0x1173C, 0x1173F, 0x1183B, 0x1183B, 0x11944, 0x11946, 0x119E2, 0x119E2,
  0x11A3F, 0x11A46, 0x11A9A, 0x11A9C, 0x11A9E, 0x11AA2, 0x11B00, 0x11B09, 0x11C41,
  0x11C45, 0x11C70, 0x11C71, 0x11EF7, 0x11EF8, 0x11F43, 0x11F4F, 0x11FD5, 0x11FF1,
  0x11FFF, 0x11FFF, 0x12470, 0x12474, 0x12FF1, 0x12FF2, 0x16A6E, 0x16A6F, 0x16AF5,
  0x16AF5, 0x16B37, 0x16B3F, 0x16B44, 0x16B45, 0x16E97, 0x16E9A, 0x16FE2, 0x16FE2,
  0x1BC9C, 0x1BC9C, 0x1BC9F, 0x1BC9F, 0x1CF50, 0x1CFC3, 0x1D000, 0x1D0F5, 0x1D100,
  0x1D126, 0x1D129, 0x1D164, 0x1D16A, 0x1D16C, 0x1D183, 0x1D184, 0x1D18C, 0x1D1A9,
  0x1D1AE, 0x1D1EA, 0x1D200, 0x1D241, 0x1D245, 0x1D245, 0x1D300, 0x1D356, 0x1D6C1,
  0x1D6C1, 0x1D6DB, 0x1D6DB, 0x1D6FB, 0x1D6FB, 0x1D715, 0x1D715, 0x1D735, 0x1D735,
  0x1D74F, 0x1D74F, 0x1D76F, 0x1D76F, 0x1D789, 0x1D789, 0x1D7A9, 0x1D7A9, 0x1D7C3,
  0x1D7C3, 0x1D800, 0x1D9FF, 0x1DA37, 0x1DA3A, 0x1DA6D, 0x1DA74, 0x1DA76, 0x1DA83,
  0x1DA85, 0x1DA8B, 0x1E14F, 0x1E14F, 0x1E2FF, 0x1E2FF, 0x1E95E, 0x1E95F, 0x1ECAC,
  0x1ECAC, 0x1ECB0, 0x1ECB0, 0x1ED2E, 0x1ED2E, 0x1EEF0, 0x1EEF1, 0x1F000, 0x1F02B,
  0x1F030, 0x1F093, 0x1F0A0, 0x1F0AE, 0x1F0B1, 0x1F0BF, 0x1F0C1, 0x1F0CF, 0x1F0D1,
  0x1F0F5, 0x1F10D, 0x1F1AD, 0x1F1E6, 0x1F202, 0x1F210, 0x1F23B, 0x1F240, 0x1F248,
  0x1F250, 0x1F251, 0x1F260, 0x1F265, 0x1F300, 0x1F6D7, 0x1F6DC, 0x1F6EC, 0x1F6F0,
  0x1F6FC, 0x1F700, 0x1F776, 0x1F77B, 0x1F7D9, 0x1F7E0, 0x1F7EB, 0x1F7F0, 0x1F7F0,
  0x1F800, 0x1F80B, 0x1F810, 0x1F847, 0x1F850, 0x1F859, 0x1F860, 0x1F887, 0x1F890,
  0x1F8AD, 0x1F8B0, 0x1F8B1, 0x1F900, 0x1FA53, 0x1FA60, 0x1FA6D, 0x1FA70, 0x1FA7C,
  0x1FA80, 0x1FA88, 0x1FA90, 0x1FABD, 0x1FABF, 0x1FAC5, 0x1FACE, 0x1FADB, 0x1FAE0,
  0x1FAE8, 0x1FAF0, 0x1FAF8, 0x1FB00, 0x1FB92, 0x1FB94, 0x1FBCA,
]

///|
/// Start and end of each run of P (punctuation) code points, without the
/// S (symbol) ones, ascending and inclusive on both ends.
let punctuation_only_ranges : Array[Int32] = [
  0x0021, 0x0023, 0x0025, 0x002A, 0x002C, 0x002F, 0x003A, 0x003B, 0x003F, 0x0040,
  0x005B, 0x005D, 0x005F, 0x005F, 0x007B, 0x007B, 0x007D, 0x007D, 0x00A1, 0x00A1,
  0x00A7, 0x00A7, 0x00AB, 0x00AB, 0x00B6, 0x00B7, 0x00BB, 0x00BB, 0x00BF, 0x00BF,
  0x037E, 0x037E, 0x0387, 0x0387, 0x055A, 0x055F, 0x0589, 0x058A, 0x05BE, 0x05BE,
  0x05C0, 0x05C0, 0x05C3, 0x05C3, 0x05C6, 0x05C6, 0x05F3, 0x05F4, 0x0609, 0x060A,
  0x060C, 0x060D, 0x061B, 0x061B, 0x061D, 0x061F, 0x066A, 0x066D, 0x06D4, 0x06D4,
  0x0700, 0x070D, 0x07F7, 0x07F9, 0x0830, 0x083E, 0x085E, 0x085E, 0x0964, 0x0965,
  0x0970, 0x0970, 0x09FD, 0x09FD, 0x0A76, 0x0A76, 0x0AF0, 0x0AF0, 0x0C77, 0x0C77,
  0x0C84, 0x0C84, 0x0DF4, 0x0DF4, 0x0E4F, 0x0E4F, 0x0E5A, 0x0E5B, 0x0F04, 0x0F12,
  0x0F14, 0x0F14, 0x0F3A, 0x0F3D, 0x0F85, 0x0F85, 0x0FD0, 0x0FD4, 0x0FD9, 0x0FDA,
  0x104A, 0x104F, 0x10FB, 0x10FB, 0x1360, 0x1368, 0x1400, 0x1400, 0x166E, 0x166E,
  0x169B, 0x169C, 0x16EB, 0x16ED, 0x1735, 0x1736, 0x17D4, 0x17D6, 0x17D8, 0x17DA,
  0x1800, 0x180A, 0x1944, 0x1945, 0x1A1E, 0x1A1F, 0x1AA0, 0x1AA6, 0x1AA8, 0x1AAD,
  0x1B5A, 0x1B60, 0x1B7D, 0x1B7E, 0x1BFC, 0x1BFF, 0x1C3B, 0x1C3F, 0x1C7E, 0x1C7F,
  0x1CC0, 0x1CC7, 0x1CD3, 0x1CD3, 0x2010, 0x2027, 0x2030, 0x2043, 0x2045, 0x2051,
  0x2053, 0x205E, 0x207D, 0x207E, 0x208D, 0x208E, 0x2308, 0x230B, 0x2329, 0x232A,
  0x2768, 0x2775, 0x27C5, 0x27C6, 0x27E6, 0x27EF, 0x2983, 0x2998, 0x29D8, 0x29DB,
  0x29FC, 0x29FD, 0x2CF9, 0x2CFC, 0x2CFE, 0x2CFF, 0x2D70, 0x2D70, 0x2E00, 0x2E2E,
  0x2E30, 0x2E4F, 0x2E52, 0x2E5D, 0x3001, 0x3003, 0x3008, 0x3011, 0x3014, 0x301F,
  0x3030, 0x3030, 0x303D, 0x303D, 0x30A0, 0x30A0, 0x30FB, 0x30FB, 0xA4FE, 0xA4FF,
  0xA60D, 0xA60F, 0xA673, 0xA673, 0xA67E, 0xA67E, 0xA6F2, 0xA6F7, 0xA874, 0xA877,
  0xA8CE, 0xA8CF, 0xA8F8, 0xA8FA, 0xA8FC, 0xA8FC, 0xA92E, 0xA92F, 0xA95F, 0xA95F,
  0xA9C1, 0xA9CD, 0xA9DE, 0xA9DF, 0xAA5C, 0xAA5F, 0xAADE, 0xAADF, 0xAAF0, 0xAAF1,
  0xABEB, 0xABEB, 0xFD3E, 0xFD3F, 0xFE10, 0xFE19, 0xFE30, 0xFE52, 0xFE54, 0xFE61,
  0xFE63, 0xFE63, 0xFE68, 0xFE68, 0xFE6A, 0xFE6B, 0xFF01, 0xFF03, 0xFF05, 0xFF0A,
  0xFF0C, 0xFF0F, 0xFF1A, 0xFF1B, 0xFF1F, 0xFF20, 0xFF3B, 0xFF3D, 0xFF3F, 0xFF3F,
  0xFF5B, 0xFF5B, 0xFF5D, 0xFF5D, 0xFF5F, 0xFF65, 0x10100, 0x10102, 0x1039F, 0x1039F,
  0x103D0, 0x103D0, 0x1056F, 0x1056F, 0x10857, 0x10857, 0x1091F, 0x1091F, 0x1093F,
  0x1093F, 0x10A50, 0x10A58, 0x10A7F, 0x10A7F, 0x10AF0, 0x10AF6, 0x10B39, 0x10B3F,
  0x10B99, 0x10B9C, 0x10EAD, 0x10EAD, 0x10F55, 0x10F59, 0x10F86, 0x10F89, 0x11047,
  0x1104D, 0x110BB, 0x110BC, 0x110BE, 0x110C1, 0x11140, 0x11143, 0x11174, 0x11175,
  0x111C5, 0x111C8, 0x111CD, 0x111CD, 0x111DB, 0x111DB, 0x111DD, 0x111DF, 0x11238,
  0x1123D, 0x112A9, 0x112A9, 0x1144B, 0x1144F, 0x1145A, 0x1145B, 0x1145D, 0x1145D,
  0x114C6, 0x114C6, 0x115C1, 0x115D7, 0x11641, 0x11643, 0x11660, 0x1166C, 0x116B9,
  0x116B9, 0x1173C, 0x1173E, 0x1183B, 0x1183B, 0x11944, 0x11946, 0x119E2, 0x119E2,
  0x11A3F, 0x11A46, 0x11A9A, 0x11A9C, 0x11A9E, 0x11AA2, 0x11B00, 0x11B09, 0x11C41,
  0x11C45, 0x11C70, 0x11C71, 0x11EF7, 0x11EF8, 0x11F43, 0x11F4F, 0x11FFF, 0x11FFF,
  0x12470, 0x12474, 0x12FF1, 0x12FF2, 0x16A6E, 0x16A6F, 0x16AF5, 0x16AF5, 0x16B37,
  0x16B3B, 0x16B44, 0x16B44, 0x16E97, 0x16E9A, 0x16FE2, 0x16FE2, 0x1BC9F, 0x1BC9F,
  0x1DA87, 0x1DA8B, 0x1E95E, 0x1E95F,
]

///|
/// Code points whose full case folding differs from the character
/// itself, ascending.
let fold_from : Array[Int32] = [
  0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A,
  0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054,
  0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x00B5, 0x00C0, 0x00C1, 0x00C2,
  0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC,
  0x00CD, 0x00CE, 0x00CF, 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6,
  0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, 0x0100, 0x0102,
  0x0104, 0x0106, 0x0108, 0x010A, 0x010C, 0x010E, 0x0110, 0x0112, 0x0114, 0x0116,
  0x0118, 0x011A, 0x011C, 0x011E, 0x0120, 0x0122, 0x0124, 0x0126, 0x0128, 0x012A,
  0x012C, 0x012E, 0x0130, 0x0132, 0x0134, 0x0136, 0x0139, 0x013B, 0x013D, 0x013F,
  0x0141, 0x0143, 0x0145, 0x0147, 0x0149, 0x014A, 0x014C, 0x014E, 0x0150, 0x0152,
  0x0154, 0x0156, 0x0158, 0x015A, 0x015C, 0x015E, 0x0160, 0x0162, 0x0164, 0x0166,
  0x0168, 0x016A, 0x016C, 0x016E, 0x0170, 0x0172, 0x0174, 0x0176, 0x0178, 0x0179,
  0x017B, 0x017D, 0x017F, 0x0181, 0x0182, 0x0184, 0x0186, 0x0187, 0x0189, 0x018A,
  0x018B, 0x018E, 0x018F, 0x0190, 0x0191, 0x0193, 0x0194, 0x0196, 0x0197, 0x0198,
  0x019C, 0x019D, 0x019F, 0x01A0, 0x01A2, 0x01A4, 0x01A6, 0x01A7, 0x01A9, 0x01AC,
  0x01AE, 0x01AF, 0x01B1, 0x01B2, 0x01B3, 0x01B5, 0x01B7, 0x01B8, 0x01BC, 0x01C4,
  0x01C5, 0x01C7, 0x01C8, 0x01CA, 0x01CB, 0x01CD, 0x01CF, 0x01D1, 0x01D3, 0x01D5,
  0x01D7, 0x01D9, 0x01DB, 0x01DE, 0x01E0, 0x01E2, 0x01E4, 0x01E6, 0x01E8, 0x01EA,
  0x01EC, 0x01EE, 0x01F0, 0x01F1, 0x01F2, 0x01F4, 0x01F6, 0x01F7, 0x01F8, 0x01FA,
  0x01FC, 0x01FE, 0x0200, 0x0202, 0x0204, 0x0206, 0x0208, 0x020A, 0x020C, 0x020E,
  0x0210, 0x0212, 0x0214, 0x0216, 0x0218, 0x021A, 0x021C, 0x021E, 0x0220, 0x0222,
  0x0224, 0x0226, 0x0228, 0x022A, 0x022C, 0x022E, 0x0230, 0x0232, 0x023A, 0x023B,
  0x023D, 0x023E, 0x0241, 0x0243, 0x0244, 0x0245, 0x0246, 0x0248, 0x024A, 0x024C,
  0x024E, 0x0345, 0x0370, 0x0372, 0x0376, 0x037F, 0x0386, 0x0388, 0x0389, 0x038A,
  0x038C, 0x038E, 0x038F, 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396,
  0x0397, 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, 0x03A0,
  0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, 0x03AA, 0x03AB,
  0x03B0, 0x03C2, 0x03CF, 0x03D0, 0x03D1, 0x03D5, 0x03D6, 0x03D8, 0x03DA, 0x03DC,
  0x03DE, 0x03E0, 0x03E2, 0x03E4, 0x03E6, 0x03E8, 0x03EA, 0x03EC, 0x03EE, 0x03F0,
  0x03F1, 0x03F4, 0x03F5, 0x03F7, 0x03F9, 0x03FA, 0x03FD, 0x03FE, 0x03FF, 0x0400,
  0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409, 0x040A,
  0x040B, 0x040C, 0x040D, 0x040E, 0x040F, 0x0410, 0x0411, 0x0412, 0x0413, 0x0414,
  0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E,
  0x041F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428,
  0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, 0x0460, 0x0462, 0x0464,
  0x0466, 0x0468, 0x046A, 0x046C, 0x046E, 0x0470, 0x0472, 0x0474, 0x0476, 0x0478,
  0x047A, 0x047C, 0x047E, 0x0480, 0x048A, 0x048C, 0x048E, 0x0490, 0x0492, 0x0494,
  0x0496, 0x0498, 0x049A, 0x049C, 0x049E, 0x04A0, 0x04A2, 0x04A4, 0x04A6, 0x04A8,
  0x04AA, 0x04AC, 0x04AE, 0x04B0, 0x04B2, 0x04B4, 0x04B6, 0x04B8, 0x04BA, 0x04BC,
  0x04BE, 0x04C0, 0x04C1, 0x04C3, 0x04C5, 0x04C7, 0x04C9, 0x04CB, 0x04CD, 0x04D0,
  0x04D2, 0x04D4, 0x04D6, 0x04D8, 0x04DA, 0x04DC, 0x04DE, 0x04E0, 0x04E2, 0x04E4,
  0x04E6, 0x04E8, 0x04EA, 0x04EC, 0x04EE, 0x04F0, 0x04F2, 0x04F4, 0x04F6, 0x04F8,
  0x04FA, 0x04FC, 0x04FE, 0x0500, 0x0502, 0x0504, 0x0506, 0x0508, 0x050A, 0x050C,
  0x050E, 0x0510, 0x0512, 0x0514, 0x0516, 0x0518, 0x051A, 0x051C, 0x051E, 0x0520,
  0x0522, 0x0524, 0x0526, 0x0528, 0x052A, 0x052C, 0x052E, 0x0531, 0x0532, 0x0533,
  0x0534, 0x0535, 0x0536, 0x0537, 0x0538, 0x0539, 0x053A, 0x053B, 0x053C, 0x053D,
  0x053E, 0x053F, 0x0540, 0x0541, 0x0542, 0x0543, 0x0544, 0x0545, 0x0546, 0x0547,
  0x0548, 0x0549, 0x054A, 0x054B, 0x054C, 0x054D, 0x054E, 0x054F, 0x0550, 0x0551,
  0x0552, 0x0553, 0x0554, 0x0555, 0x0556, 0x0587, 0x10A0, 0x10A1, 0x10A2, 0x10A3,
  0x10A4, 0x10A5, 0x10A6, 0x10A7, 0x10A8, 0x10A9, 0x10AA, 0x10AB, 0x10AC, 0x10AD,
  0x10AE, 0x10AF, 0x10B0, 0x10B1, 0x10B2, 0x10B3, 0x10B4, 0x10B5, 0x10B6, 0x10B7,
  0x10B8, 0x10B9, 0x10BA, 0x10BB, 0x10BC, 0x10BD, 0x10BE, 0x10BF, 0x10C0, 0x10C1,
  0x10C2, 0x10C3, 0x10C4, 0x10C5, 0x10C7, 0x10CD, 0x13F8, 0x13F9, 0x13FA, 0x13FB,
  0x13FC, 0x13FD, 0x1C80, 0x1C81, 0x1C82, 0x1C83, 0x1C84, 0x1C85, 0x1C86, 0x1C87,
  0x1C88, 0x1C90, 0x1C91, 0x1C92, 0x1C93, 0x1C94, 0x1C95, 0x1C96, 0x1C97, 0x1C98,
  0x1C99, 0x1C9A, 0x1C9B, 0x1C9C, 0x1C9D, 0x1C9E, 0x1C9F, 0x1CA0, 0x1CA1, 0x1CA2,
  0x1CA3, 0x1CA4, 0x1CA5, 0x1CA6, 0x1CA7, 0x1CA8, 0x1CA9, 0x1CAA, 0x1CAB, 0x1CAC,
  0x1CAD, 0x1CAE, 0x1CAF, 0x1CB0, 0x1CB1, 0x1CB2, 0x1CB3, 0x1CB4, 0x1CB5, 0x1CB6,
  0x1CB7, 0x1CB8, 0x1CB9, 0x1CBA, 0x1CBD, 0x1CBE, 0x1CBF, 0x1E00, 0x1E02, 0x1E04,
  0x1E06, 0x1E08, 0x1E0A, 0x1E0C, 0x1E0E, 0x1E10, 0x1E12, 0x1E14, 0x1E16, 0x1E18,
  0x1E1A, 0x1E1C, 0x1E1E, 0x1E20, 0x1E22, 0x1E24, 0x1E26, 0x1E28, 0x1E2A, 0x1E2C,
  0x1E2E, 0x1E30, 0x1E32, 0x1E34, 0x1E36, 0x1E38, 0x1E3A, 0x1E3C, 0x1E3E, 0x1E40,
  0x1E42, 0x1E44, 0x1E46, 0x1E48, 0x1E4A, 0x1E4C, 0x1E4E, 0x1E50, 0x1E52, 0x1E54,
  0x1E56, 0x1E58, 0x1E5A, 0x1E5C, 0x1E5E, 0x1E60, 0x1E62, 0x1E64, 0x1E66, 0x1E68,
  0x1E6A, 0x1E6C, 0x1E6E, 0x1E70, 0x1E72, 0x1E74, 0x1E76, 0x1E78, 0x1E7A, 0x1E7C,
  0x1E7E, 0x1E80, 0x1E82, 0x1E84, 0x1E86, 0x1E88, 0x1E8A, 0x1E8C, 0x1E8E, 0x1E90,
  0x1E92, 0x1E94, 0x1E96, 0x1E97, 0x1E98, 0x1E99, 0x1E9A, 0x1E9B, 0x1E9E, 0x1EA0,
  0x1EA2, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAA, 0x1EAC, 0x1EAE, 0x1EB0, 0x1EB2, 0x1EB4,
  0x1EB6, 0x1EB8, 0x1EBA, 0x1EBC, 0x1EBE, 0x1EC0, 0x1EC2, 0x1EC4, 0x1EC6, 0x1EC8,
  0x1ECA, 0x1ECC, 0x1ECE, 0x1ED0, 0x1ED2, 0x1ED4, 0x1ED6, 0x1ED8, 0x1EDA, 0x1EDC,
  0x1EDE, 0x1EE0, 0x1EE2, 0x1EE4, 0x1EE6, 0x1EE8, 0x1EEA, 0x1EEC, 0x1EEE, 0x1EF0,
  0x1EF2, 0x1EF4, 0x1EF6, 0x1EF8, 0x1EFA, 0x1EFC, 0x1EFE, 0x1F08, 0x1F09, 0x1F0A,
  0x1F0B, 0x1F0C, 0x1F0D, 0x1F0E, 0x1F0F, 0x1F18, 0x1F19, 0x1F1A, 0x1F1B, 0x1F1C,
  0x1F1D, 0x1F28, 0x1F29, 0x1F2A, 0x1F2B, 0x1F2C, 0x1F2D, 0x1F2E, 0x1F2F, 0x1F38,
  0x1F39, 0x1F3A, 0x1F3B, 0x1F3C, 0x1F3D, 0x1F3E, 0x1F3F, 0x1F48, 0x1F49, 0x1F4A,
  0x1F4B, 0x1F4C, 0x1F4D, 0x1F50, 0x1F52, 0x1F54, 0x1F56, 0x1F59, 0x1F5B, 0x1F5D,
  0x1F5F, 0x1F68, 0x1F69, 0x1F6A, 0x1F6B, 0x1F6C, 0x1F6D, 0x1F6E, 0x1F6F, 0x1F80,
  0x1F81, 0x1F82, 0x1F83, 0x1F84, 0x1F85, 0x1F86, 0x1F87, 0x1F88, 0x1F89, 0x1F8A,
  0x1F8B, 0x1F8C, 0x1F8D, 0x1F8E, 0x1F8F, 0x1F90, 0x1F91, 0x1F92, 0x1F93, 0x1F94,
  0x1F95, 0x1F96, 0x1F97, 0x1F98, 0x1F99, 0x1F9A, 0x1F9B, 0x1F9C, 0x1F9D, 0x1F9E,
  0x1F9F, 0x1FA0, 0x1FA1, 0x1FA2, 0x1FA3, 0x1FA4, 0x1FA5, 0x1FA6, 0x1FA7, 0x1FA8,
  0x1FA9, 0x1FAA, 0x1FAB, 0x1FAC, 0x1FAD, 0x1FAE, 0x1FAF, 0x1FB2, 0x1FB3, 0x1FB4,
  0x1FB6, 0x1FB7, 0x1FB8, 0x1FB9, 0x1FBA, 0x1FBB, 0x1FBC, 0x1FBE, 0x1FC2, 0x1FC3,
  0x1FC4, 0x1FC6, 0x1FC7, 0x1FC8, 0x1FC9, 0x1FCA, 0x1FCB, 0x1FCC, 0x1FD2, 0x1FD3,
  0x1FD6, 0x1FD7, 0x1FD8, 0x1FD9, 0x1FDA, 0x1FDB, 0x1FE2, 0x1FE3, 0x1FE4, 0x1FE6,
  0x1FE7, 0x1FE8, 0x1FE9, 0x1FEA, 0x1FEB, 0x1FEC, 0x1FF2, 0x1FF3, 0x1FF4, 0x1FF6,
  0x1FF7, 0x1FF8, 0x1FF9, 0x1FFA, 0x1FFB, 0x1FFC, 0x2126, 0x212A, 0x212B, 0x2132,
  0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, 0x2169,
  0x216A, 0x216B, 0x216C, 0x216D, 0x216E, 0x216F, 0x2183, 0x24B6, 0x24B7, 0x24B8,
  0x24B9, 0x24BA, 0x24BB, 0x24BC, 0x24BD, 0x24BE, 0x24BF, 0x24C0, 0x24C1, 0x24C2,
  0x24C3, 0x24C4, 0x24C5, 0x24C6, 0x24C7, 0x24C8, 0x24C9, 0x24CA, 0x24CB, 0x24CC,
  0x24CD, 0x24CE, 0x24CF, 0x2C00, 0x2C01, 0x2C02, 0x2C03, 0x2C04, 0x2C05, 0x2C06,
  0x2C07, 0x2C08, 0x2C09, 0x2C0A, 0x2C0B, 0x2C0C, 0x2C0D, 0x2C0E, 0x2C0F, 0x2C10,
  0x2C11, 0x2C12, 0x2C13, 0x2C14, 0x2C15, 0x2C16, 0x2C17, 0x2C18, 0x2C19, 0x2C1A,
  0x2C1B, 0x2C1C, 0x2C1D, 0x2C1E, 0x2C1F, 0x2C20, 0x2C21, 0x2C22, 0x2C23, 0x2C24,
  0x2C25, 0x2C26, 0x2C27, 0x2C28, 0x2C29, 0x2C2A, 0x2C2B, 0x2C2C, 0x2C2D, 0x2C2E,
  0x2C2F, 0x2C60, 0x2C62, 0x2C63, 0x2C64, 0x2C67, 0x2C69, 0x2C6B, 0x2C6D, 0x2C6E,
  0x2C6F, 0x2C70, 0x2C72, 0x2C75, 0x2C7E, 0x2C7F, 0x2C80, 0x2C82, 0x2C84, 0x2C86,
  0x2C88, 0x2C8A, 0x2C8C, 0x2C8E, 0x2C90, 0x2C92, 0x2C94, 0x2C96, 0x2C98, 0x2C9A,
  0x2C9C, 0x2C9E, 0x2CA0, 0x2CA2, 0x2CA4, 0x2CA6, 0x2CA8, 0x2CAA, 0x2CAC, 0x2CAE,
  0x2CB0, 0x2CB2, 0x2CB4, 0x2CB6, 0x2CB8, 0x2CBA, 0x2CBC, 0x2CBE, 0x2CC0, 0x2CC2,
  0x2CC4, 0x2CC6, 0x2CC8, 0x2CCA, 0x2CCC, 0x2CCE, 0x2CD0, 0x2CD2, 0x2CD4, 0x2CD6,
  0x2CD8, 0x2CDA, 0x2CDC, 0x2CDE, 0x2CE0, 0x2CE2, 0x2CEB, 0x2CED, 0x2CF2, 0xA640,
  0xA642, 0xA644, 0xA646, 0xA648, 0xA64A, 0xA64C, 0xA64E, 0xA650, 0xA652, 0xA654,
  0xA656, 0xA658, 0xA65A, 0xA65C, 0xA65E, 0xA660, 0xA662, 0xA664, 0xA666, 0xA668,
  0xA66A, 0xA66C, 0xA680, 0xA682, 0xA684, 0xA686, 0xA688, 0xA68A, 0xA68C, 0xA68E,
  0xA690, 0xA692, 0xA694, 0xA696, 0xA698, 0xA69A, 0xA722, 0xA724, 0xA726, 0xA728,
  0xA72A, 0xA72C, 0xA72E, 0xA732, 0xA734, 0xA736, 0xA738, 0xA73A, 0xA73C, 0xA73E,
  0xA740, 0xA742, 0xA744, 0xA746, 0xA748, 0xA74A, 0xA74C, 0xA74E, 0xA750, 0xA752,
  0xA754, 0xA756, 0xA758, 0xA75A, 0xA75C, 0xA75E, 0xA760, 0xA762, 0xA764, 0xA766,
  0xA768, 0xA76A, 0xA76C, 0xA76E, 0xA779, 0xA77B, 0xA77D, 0xA77E, 0xA780, 0xA782,
  0xA784, 0xA786, 0xA78B, 0xA78D, 0xA790, 0xA792, 0xA796, 0xA798, 0xA79A, 0xA79C,
  0xA79E, 0xA7A0, 0xA7A2, 0xA7A4, 0xA7A6, 0xA7A8, 0xA7AA, 0xA7AB, 0xA7AC, 0xA7AD,
  0xA7AE, 0xA7B0, 0xA7B1, 0xA7B2, 0xA7B3, 0xA7B4, 0xA7B6, 0xA7B8, 0xA7BA, 0xA7BC,
  0xA7BE, 0xA7C0, 0xA7C2, 0xA7C4, 0xA7C5, 0xA7C6, 0xA7C7, 0xA7C9, 0xA7D0, 0xA7D6,
  0xA7D8, 0xA7F5, 0xAB70, 0xAB71, 0xAB72, 0xAB73, 0xAB74, 0xAB75, 0xAB76, 0xAB77,
  0xAB78, 0xAB79, 0xAB7A, 0xAB7B, 0xAB7C, 0xAB7D, 0xAB7E, 0xAB7F, 0xAB80, 0xAB81,
  0xAB82, 0xAB83, 0xAB84, 0xAB85, 0xAB86, 0xAB87, 0xAB88, 0xAB89, 0xAB8A, 0xAB8B,
  0xAB8C, 0xAB8D, 0xAB8E, 0xAB8F, 0xAB90, 0xAB91, 0xAB92, 0xAB93, 0xAB94, 0xAB95,
  0xAB96, 0xAB97, 0xAB98, 0xAB99, 0xAB9A, 0xAB9B, 0xAB9C, 0xAB9D, 0xAB9E, 0xAB9F,
  0xABA0, 0xABA1, 0xABA2, 0xABA3, 0xABA4, 0xABA5, 0xABA6, 0xABA7, 0xABA8, 0xABA9,
  0xABAA, 0xABAB, 0xABAC, 0xABAD, 0xABAE, 0xABAF, 0xABB0, 0xABB1, 0xABB2, 0xABB3,
  0xABB4, 0xABB5, 0xABB6, 0xABB7, 0xABB8, 0xABB9, 0xABBA, 0xABBB, 0xABBC, 0xABBD,
  0xABBE, 0xABBF, 0xFB00, 0xFB01, 0xFB02, 0xFB03, 0xFB04, 0xFB05, 0xFB06, 0xFB13,
  0xFB14, 0xFB15, 0xFB16, 0xFB17, 0xFF21, 0xFF22, 0xFF23, 0xFF24, 0xFF25, 0xFF26,
  0xFF27, 0xFF28, 0xFF29, 0xFF2A, 0xFF2B, 0xFF2C, 0xFF2D, 0xFF2E, 0xFF2F, 0xFF30,
  0xFF31, 0xFF32, 0xFF33, 0xFF34, 0xFF35, 0xFF36, 0xFF37, 0xFF38, 0xFF39, 0xFF3A,
  0x10400, 0x10401, 0x10402, 0x10403, 0x10404, 0x10405, 0x10406, 0x10407, 0x10408,
  0x10409, 0x1040A, 0x1040B, 0x1040C, 0x1040D, 0x1040E, 0x1040F, 0x10410, 0x10411,
  0x10412, 0x10413, 0x10414, 0x10415, 0x10416, 0x10417, 0x10418, 0x10419, 0x1041A,
  0x1041B, 0x1041C, 0x1041D, 0x1041E, 0x1041F, 0x10420, 0x10421, 0x10422, 0x10423,
  0x10424, 0x10425, 0x10426, 0x10427, 0x104B0, 0x104B1, 0x104B2, 0x104B3, 0x104B4,
  0x104B5, 0x104B6, 0x104B7, 0x104B8, 0x104B9, 0x104BA, 0x104BB, 0x104BC, 0x104BD,
  0x104BE, 0x104BF, 0x104C0, 0x104C1, 0x104C2, 0x104C3, 0x104C4, 0x104C5, 0x104C6,
  0x104C7, 0x104C8, 0x104C9, 0x104CA, 0x104CB, 0x104CC, 0x104CD, 0x104CE, 0x104CF,
  0x104D0, 0x104D1, 0x104D2, 0x104D3, 0x10570, 0x10571, 0x10572, 0x10573, 0x10574,
  0x10575, 0x10576, 0x10577, 0x10578, 0x10579, 0x1057A, 0x1057C, 0x1057D, 0x1057E,
  0x1057F, 0x10580, 0x10581, 0x10582, 0x10583, 0x10584, 0x10585, 0x10586, 0x10587,
  0x10588, 0x10589, 0x1058A, 0x1058C, 0x1058D, 0x1058E, 0x1058F, 0x10590, 0x10591,
  0x10592, 0x10594, 0x10595, 0x10C80, 0x10C81, 0x10C82, 0x10C83, 0x10C84, 0x10C85,
  0x10C86, 0x10C87, 0x10C88, 0x10C89, 0x10C8A, 0x10C8B, 0x10C8C, 0x10C8D, 0x10C8E,
  0x10C8F, 0x10C90, 0x10C91, 0x10C92, 0x10C93, 0x10C94, 0x10C95, 0x10C96, 0x10C97,
  0x10C98, 0x10C99, 0x10C9A, 0x10C9B, 0x10C9C, 0x10C9D, 0x10C9E, 0x10C9F, 0x10CA0,
  0x10CA1, 0x10CA2, 0x10CA3, 0x10CA4, 0x10CA5, 0x10CA6, 0x10CA7, 0x10CA8, 0x10CA9,
  0x10CAA, 0x10CAB, 0x10CAC, 0x10CAD, 0x10CAE, 0x10CAF, 0x10CB0, 0x10CB1, 0x10CB2,
  0x118A0, 0x118A1, 0x118A2, 0x118A3, 0x118A4, 0x118A5, 0x118A6, 0x118A7, 0x118A8,
  0x118A9, 0x118AA, 0x118AB, 0x118AC, 0x118AD, 0x118AE, 0x118AF, 0x118B0, 0x118B1,
  0x118B2, 0x118B3, 0x118B4, 0x118B5, 0x118B6, 0x118B7, 0x118B8, 0x118B9, 0x118BA,
  0x118BB, 0x118BC, 0x118BD, 0x118BE, 0x118BF, 0x16E40, 0x16E41, 0x16E42, 0x16E43,
  0x16E44, 0x16E45, 0x16E46, 0x16E47, 0x16E48, 0x16E49, 0x16E4A, 0x16E4B, 0x16E4C,
  0x16E4D, 0x16E4E, 0x16E4F, 0x16E50, 0x16E51, 0x16E52, 0x16E53, 0x16E54, 0x16E55,
  0x16E56, 0x16E57, 0x16E58, 0x16E59, 0x16E5A, 0x16E5B, 0x16E5C, 0x16E5D, 0x16E5E,
  0x16E5F, 0x1E900, 0x1E901, 0x1E902, 0x1E903, 0x1E904, 0x1E905, 0x1E906, 0x1E907,
  0x1E908, 0x1E909, 0x1E90A, 0x1E90B, 0x1E90C, 0x1E90D, 0x1E90E, 0x1E90F, 0x1E910,
  0x1E911, 0x1E912, 0x1E913, 0x1E914, 0x1E915, 0x1E916, 0x1E917, 0x1E918, 0x1E919,
  0x1E91A, 0x1E91B, 0x1E91C, 0x1E91D, 0x1E91E, 0x1E91F, 0x1E920, 0x1E921,
]

///|
/// What each code point in `fold_from` folds to, at the same index.
let fold_to : Array[String] = [
  "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", "μ", "à", "á", "â", "ã",
  "ä", "å", "æ", "ç", "è", "é", "ê", "ë", "ì", "í", "î", "ï", "ð", "ñ",
  "ò", "ó", "ô", "õ", "ö", "ø", "ù", "ú", "û", "ü", "ý", "þ", "ss", "ā",
  "ă", "ą", "ć", "ĉ", "ċ", "č", "ď", "đ", "ē", "ĕ", "ė", "ę", "ě", "ĝ",
  "ğ", "ġ", "ģ", "ĥ", "ħ", "ĩ", "ī", "ĭ", "į", "i̇", "ij", "ĵ", "ķ",
  "ĺ", "ļ", "ľ", "ŀ", "ł", "ń", "ņ", "ň", "ʼn", "ŋ", "ō", "ŏ", "ő",
  "œ", "ŕ", "ŗ", "ř", "ś", "ŝ", "ş", "š", "ţ", "ť", "ŧ", "ũ", "ū", "ŭ",
  "ů", "ű", "ų", "ŵ", "ŷ", "ÿ", "ź", "ż", "ž", "s", "ɓ", "ƃ", "ƅ", "ɔ",
  "ƈ", "ɖ", "ɗ", "ƌ", "ǝ", "ə", "ɛ", "ƒ", "ɠ", "ɣ", "ɩ", "ɨ", "ƙ", "ɯ",
  "ɲ", "ɵ", "ơ", "ƣ", "ƥ", "ʀ", "ƨ", "ʃ", "ƭ", "ʈ", "ư", "ʊ", "ʋ", "ƴ",
  "ƶ", "ʒ", "ƹ", "ƽ", "dž", "dž", "lj", "lj", "nj", "nj", "ǎ", "ǐ", "ǒ", "ǔ",
  "ǖ", "ǘ", "ǚ", "ǜ", "ǟ", "ǡ", "ǣ", "ǥ", "ǧ", "ǩ", "ǫ", "ǭ", "ǯ", "ǰ",
  "dz", "dz", "ǵ", "ƕ", "ƿ", "ǹ", "ǻ", "ǽ", "ǿ", "ȁ", "ȃ", "ȅ", "ȇ", "ȉ",
  "ȋ", "ȍ", "ȏ", "ȑ", "ȓ", "ȕ", "ȗ", "ș", "ț", "ȝ", "ȟ", "ƞ", "ȣ", "ȥ",
  "ȧ", "ȩ", "ȫ", "ȭ", "ȯ", "ȱ", "ȳ", "ⱥ", "ȼ", "ƚ", "ⱦ", "ɂ", "ƀ",
  "ʉ", "ʌ", "ɇ", "ɉ", "ɋ", "ɍ", "ɏ", "ι", "ͱ", "ͳ", "ͷ", "ϳ", "ά", "έ",
  "ή", "ί", "ό", "ύ", "ώ", "ΐ", "α", "β", "γ", "δ", "ε", "ζ", "η",
  "θ", "ι", "κ", "λ", "μ", "ν", "ξ", "ο", "π", "ρ", "σ", "τ", "υ", "φ",
  "χ", "ψ", "ω", "ϊ", "ϋ", "ΰ", "σ", "ϗ", "β", "θ", "φ", "π", "ϙ",
  "ϛ", "ϝ", "ϟ", "ϡ", "ϣ", "ϥ", "ϧ", "ϩ", "ϫ", "ϭ", "ϯ", "κ", "ρ", "θ",
  "ε", "ϸ", "ϲ", "ϻ", "ͻ", "ͼ", "ͽ", "ѐ", "ё", "ђ", "ѓ", "є", "ѕ", "і",
  "ї", "ј", "љ", "њ", "ћ", "ќ", "ѝ", "ў", "џ", "а", "б", "в", "г", "д",
  "е", "ж", "з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с", "т",
  "у", "ф", "х", "ц", "ч", "ш", "щ", "ъ", "ы", "ь", "э", "ю", "я", "ѡ",
  "ѣ", "ѥ", "ѧ", "ѩ", "ѫ", "ѭ", "ѯ", "ѱ", "ѳ", "ѵ", "ѷ", "ѹ", "ѻ", "ѽ",
  "ѿ", "ҁ", "ҋ", "ҍ", "ҏ", "ґ", "ғ", "ҕ", "җ", "ҙ", "қ", "ҝ", "ҟ", "ҡ",
  "ң", "ҥ", "ҧ", "ҩ", "ҫ", "ҭ", "ү", "ұ", "ҳ", "ҵ", "ҷ", "ҹ", "һ", "ҽ",
  "ҿ", "ӏ", "ӂ", "ӄ", "ӆ", "ӈ", "ӊ", "ӌ", "ӎ", "ӑ", "ӓ", "ӕ", "ӗ", "ә",
  "ӛ", "ӝ", "ӟ", "ӡ", "ӣ", "ӥ", "ӧ", "ө", "ӫ", "ӭ", "ӯ", "ӱ", "ӳ", "ӵ",
  "ӷ", "ӹ", "ӻ", "ӽ", "ӿ", "ԁ", "ԃ", "ԅ", "ԇ", "ԉ", "ԋ", "ԍ", "ԏ", "ԑ",
  "ԓ", "ԕ", "ԗ", "ԙ", "ԛ", "ԝ", "ԟ", "ԡ", "ԣ", "ԥ", "ԧ", "ԩ", "ԫ", "ԭ",
  "ԯ", "ա", "բ", "գ", "դ", "ե", "զ", "է", "ը", "թ", "ժ", "ի", "լ", "խ",
  "ծ", "կ", "հ", "ձ", "ղ", "ճ", "մ", "յ", "ն", "շ", "ո", "չ", "պ", "ջ",
  "ռ", "ս", "վ", "տ", "ր", "ց", "ւ", "փ", "ք", "օ", "ֆ", "եւ", "ⴀ",
  "ⴁ", "ⴂ", "ⴃ", "ⴄ", "ⴅ", "ⴆ", "ⴇ", "ⴈ", "ⴉ", "ⴊ", "ⴋ", "ⴌ",
  "ⴍ", "ⴎ", "ⴏ", "ⴐ", "ⴑ", "ⴒ", "ⴓ", "ⴔ", "ⴕ", "ⴖ", "ⴗ", "ⴘ",
  "ⴙ", "ⴚ", "ⴛ", "ⴜ", "ⴝ", "ⴞ", "ⴟ", "ⴠ", "ⴡ", "ⴢ", "ⴣ", "ⴤ",
  "ⴥ", "ⴧ", "ⴭ", "Ᏸ", "Ᏹ", "Ᏺ", "Ᏻ", "Ᏼ", "Ᏽ", "в", "д", "о",
  "с", "т", "т", "ъ", "ѣ", "ꙋ", "ა", "ბ", "გ", "დ", "ე", "ვ",
  "ზ", "თ", "ი", "კ", "ლ", "მ", "ნ", "ო", "პ", "ჟ", "რ", "ს",
  "ტ", "უ", "ფ", "ქ", "ღ", "ყ", "შ", "ჩ", "ც", "ძ", "წ", "ჭ",
  "ხ", "ჯ", "ჰ", "ჱ", "ჲ", "ჳ", "ჴ", "ჵ", "ჶ", "ჷ", "ჸ", "ჹ",
  "ჺ", "ჽ", "ჾ", "ჿ", "ḁ", "ḃ", "ḅ", "ḇ", "ḉ", "ḋ", "ḍ", "ḏ",
  "ḑ", "ḓ", "ḕ", "ḗ", "ḙ", "ḛ", "ḝ", "ḟ", "ḡ", "ḣ", "ḥ", "ḧ",
  "ḩ", "ḫ", "ḭ", "ḯ", "ḱ", "ḳ", "ḵ", "ḷ", "ḹ", "ḻ", "ḽ", "ḿ",
  "ṁ", "ṃ", "ṅ", "ṇ", "ṉ", "ṋ", "ṍ", "ṏ", "ṑ", "ṓ", "ṕ", "ṗ",
  "ṙ", "ṛ", "ṝ", "ṟ", "ṡ", "ṣ", "ṥ", "ṧ", "ṩ", "ṫ", "ṭ", "ṯ",
  "ṱ", "ṳ", "ṵ", "ṷ", "ṹ", "ṻ", "ṽ", "ṿ", "ẁ", "ẃ", "ẅ", "ẇ",
  "ẉ", "ẋ", "ẍ", "ẏ", "ẑ", "ẓ", "ẕ", "ẖ", "ẗ", "ẘ", "ẙ", "aʾ",
  "ṡ", "ss", "ạ", "ả", "ấ", "ầ", "ẩ", "ẫ", "ậ", "ắ", "ằ", "ẳ",
  "ẵ", "ặ", "ẹ", "ẻ", "ẽ", "ế", "ề", "ể", "ễ", "ệ", "ỉ", "ị",
  "ọ", "ỏ", "ố", "ồ", "ổ", "ỗ", "ộ", "ớ", "ờ", "ở", "ỡ", "ợ",
  "ụ", "ủ", "ứ", "ừ", "ử", "ữ", "ự", "ỳ", "ỵ", "ỷ", "ỹ", "ỻ",
  "ỽ", "ỿ", "ἀ", "ἁ", "ἂ", "ἃ", "ἄ", "ἅ", "ἆ", "ἇ", "ἐ", "ἑ",
  "ἒ", "ἓ", "ἔ", "ἕ", "ἠ", "ἡ", "ἢ", "ἣ", "ἤ", "ἥ", "ἦ", "ἧ",
  "ἰ", "ἱ", "ἲ", "ἳ", "ἴ", "ἵ", "ἶ", "ἷ", "ὀ", "ὁ", "ὂ", "ὃ",
  "ὄ", "ὅ", "ὐ", "ὒ", "ὔ", "ὖ", "ὑ", "ὓ", "ὕ", "ὗ",
  "ὠ", "ὡ", "ὢ", "ὣ", "ὤ", "ὥ", "ὦ", "ὧ", "ἀι", "ἁι", "ἂι",
  "ἃι", "ἄι", "ἅι", "ἆι", "ἇι", "ἀι", "ἁι", "ἂι", "ἃι",
  "ἄι", "ἅι", "ἆι", "ἇι", "ἠι", "ἡι", "ἢι", "ἣι", "ἤι",
  "ἥι", "ἦι", "ἧι", "ἠι", "ἡι", "ἢι", "ἣι", "ἤι", "ἥι",
  "ἦι", "ἧι", "ὠι", "ὡι", "ὢι", "ὣι", "ὤι", "ὥι", "ὦι",
  "ὧι", "ὠι", "ὡι", "ὢι", "ὣι", "ὤι", "ὥι", "ὦι", "ὧι",
  "ὰι", "αι", "άι", "ᾶ", "ᾶι", "ᾰ", "ᾱ", "ὰ", "ά", "αι",
  "ι", "ὴι", "ηι", "ήι", "ῆ", "ῆι", "ὲ", "έ", "ὴ", "ή", "ηι",
  "ῒ", "ΐ", "ῖ", "ῗ", "ῐ", "ῑ", "ὶ", "ί", "ῢ", "ΰ",
  "ῤ", "ῦ", "ῧ", "ῠ", "ῡ", "ὺ", "ύ", "ῥ", "ὼι", "ωι", "ώι",
  "ῶ", "ῶι", "ὸ", "ό", "ὼ", "ώ", "ωι", "ω", "k", "å", "ⅎ", "ⅰ",
  "ⅱ", "ⅲ", "ⅳ", "ⅴ", "ⅵ", "ⅶ", "ⅷ", "ⅸ", "ⅹ", "ⅺ", "ⅻ", "ⅼ",
  "ⅽ", "ⅾ", "ⅿ", "ↄ", "ⓐ", "ⓑ", "ⓒ", "ⓓ", "ⓔ", "ⓕ", "ⓖ", "ⓗ",
  "ⓘ", "ⓙ", "ⓚ", "ⓛ", "ⓜ", "ⓝ", "ⓞ", "ⓟ", "ⓠ", "ⓡ", "ⓢ", "ⓣ",
  "ⓤ", "ⓥ", "ⓦ", "ⓧ", "ⓨ", "ⓩ", "ⰰ", "ⰱ", "ⰲ", "ⰳ", "ⰴ", "ⰵ",
  "ⰶ", "ⰷ", "ⰸ", "ⰹ", "ⰺ", "ⰻ", "ⰼ", "ⰽ", "ⰾ", "ⰿ", "ⱀ", "ⱁ",
  "ⱂ", "ⱃ", "ⱄ", "ⱅ", "ⱆ", "ⱇ", "ⱈ", "ⱉ", "ⱊ", "ⱋ", "ⱌ", "ⱍ",
  "ⱎ", "ⱏ", "ⱐ", "ⱑ", "ⱒ", "ⱓ", "ⱔ", "ⱕ", "ⱖ", "ⱗ", "ⱘ", "ⱙ",
  "ⱚ", "ⱛ", "ⱜ", "ⱝ", "ⱞ", "ⱟ", "ⱡ", "ɫ", "ᵽ", "ɽ", "ⱨ", "ⱪ",
  "ⱬ", "ɑ", "ɱ", "ɐ", "ɒ", "ⱳ", "ⱶ", "ȿ", "ɀ", "ⲁ", "ⲃ", "ⲅ", "ⲇ",
  "ⲉ", "ⲋ", "ⲍ", "ⲏ", "ⲑ", "ⲓ", "ⲕ", "ⲗ", "ⲙ", "ⲛ", "ⲝ", "ⲟ",
  "ⲡ", "ⲣ", "ⲥ", "ⲧ", "ⲩ", "ⲫ", "ⲭ", "ⲯ", "ⲱ", "ⲳ", "ⲵ", "ⲷ",
  "ⲹ", "ⲻ", "ⲽ", "ⲿ", "ⳁ", "ⳃ", "ⳅ", "ⳇ", "ⳉ", "ⳋ", "ⳍ", "ⳏ",
  "ⳑ", "ⳓ", "ⳕ", "ⳗ", "ⳙ", "ⳛ", "ⳝ", "ⳟ", "ⳡ", "ⳣ", "ⳬ", "ⳮ",
  "ⳳ", "ꙁ", "ꙃ", "ꙅ", "ꙇ", "ꙉ", "ꙋ", "ꙍ", "ꙏ", "ꙑ", "ꙓ", "ꙕ",
  "ꙗ", "ꙙ", "ꙛ", "ꙝ", "ꙟ", "ꙡ", "ꙣ", "ꙥ", "ꙧ", "ꙩ", "ꙫ", "ꙭ",
  "ꚁ", "ꚃ", "ꚅ", "ꚇ", "ꚉ", "ꚋ", "ꚍ", "ꚏ", "ꚑ", "ꚓ", "ꚕ", "ꚗ",
  "ꚙ", "ꚛ", "ꜣ", "ꜥ", "ꜧ", "ꜩ", "ꜫ", "ꜭ", "ꜯ", "ꜳ", "ꜵ", "ꜷ",
  "ꜹ", "ꜻ", "ꜽ", "ꜿ", "ꝁ", "ꝃ", "ꝅ", "ꝇ", "ꝉ", "ꝋ", "ꝍ", "ꝏ",
  "ꝑ", "ꝓ", "ꝕ", "ꝗ", "ꝙ", "ꝛ", "ꝝ", "ꝟ", "ꝡ", "ꝣ", "ꝥ", "ꝧ",
  "ꝩ", "ꝫ", "ꝭ", "ꝯ", "ꝺ", "ꝼ", "ᵹ", "ꝿ", "ꞁ", "ꞃ", "ꞅ", "ꞇ",
  "ꞌ", "ɥ", "ꞑ", "ꞓ", "ꞗ", "ꞙ", "ꞛ", "ꞝ", "ꞟ", "ꞡ", "ꞣ", "ꞥ",
  "ꞧ", "ꞩ", "ɦ", "ɜ", "ɡ", "ɬ", "ɪ", "ʞ", "ʇ", "ʝ", "ꭓ", "ꞵ", "ꞷ",
  "ꞹ", "ꞻ", "ꞽ", "ꞿ", "ꟁ", "ꟃ", "ꞔ", "ʂ", "ᶎ", "ꟈ", "ꟊ", "ꟑ",
  "ꟗ", "ꟙ", "ꟶ", "Ꭰ", "Ꭱ", "Ꭲ", "Ꭳ", "Ꭴ", "Ꭵ", "Ꭶ", "Ꭷ", "Ꭸ",
  "Ꭹ", "Ꭺ", "Ꭻ", "Ꭼ", "Ꭽ", "Ꭾ", "Ꭿ", "Ꮀ", "Ꮁ", "Ꮂ", "Ꮃ", "Ꮄ",
  "Ꮅ", "Ꮆ", "Ꮇ", "Ꮈ", "Ꮉ", "Ꮊ", "Ꮋ", "Ꮌ", "Ꮍ", "Ꮎ", "Ꮏ", "Ꮐ",
  "Ꮑ", "Ꮒ", "Ꮓ", "Ꮔ", "Ꮕ", "Ꮖ", "Ꮗ", "Ꮘ", "Ꮙ", "Ꮚ", "Ꮛ", "Ꮜ",
  "Ꮝ", "Ꮞ", "Ꮟ", "Ꮠ", "Ꮡ", "Ꮢ", "Ꮣ", "Ꮤ", "Ꮥ", "Ꮦ", "Ꮧ", "Ꮨ",
  "Ꮩ", "Ꮪ", "Ꮫ", "Ꮬ", "Ꮭ", "Ꮮ", "Ꮯ", "Ꮰ", "Ꮱ", "Ꮲ", "Ꮳ", "Ꮴ",
  "Ꮵ", "Ꮶ", "Ꮷ", "Ꮸ", "Ꮹ", "Ꮺ", "Ꮻ", "Ꮼ", "Ꮽ", "Ꮾ", "Ꮿ", "ff",
  "fi", "fl", "ffi", "ffl", "st", "st", "մն", "մե", "մի", "վն", "մխ", "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", "𐐨", "𐐩", "𐐪", "𐐫", "𐐬", "𐐭", "𐐮", "𐐯", "𐐰",
  "𐐱", "𐐲", "𐐳", "𐐴", "𐐵", "𐐶", "𐐷", "𐐸", "𐐹", "𐐺",
  "𐐻", "𐐼", "𐐽", "𐐾", "𐐿", "𐑀", "𐑁", "𐑂", "𐑃", "𐑄",
  "𐑅", "𐑆", "𐑇", "𐑈", "𐑉", "𐑊", "𐑋", "𐑌", "𐑍", "𐑎",
  "𐑏", "𐓘", "𐓙", "𐓚", "𐓛", "𐓜", "𐓝", "𐓞", "𐓟", "𐓠",
  "𐓡", "𐓢", "𐓣", "𐓤", "𐓥", "𐓦", "𐓧", "𐓨", "𐓩", "𐓪",
  "𐓫", "𐓬", "𐓭", "𐓮", "𐓯", "𐓰", "𐓱", "𐓲", "𐓳", "𐓴",
  "𐓵", "𐓶", "𐓷", "𐓸", "𐓹", "𐓺", "𐓻", "𐖗", "𐖘", "𐖙",
  "𐖚", "𐖛", "𐖜", "𐖝", "𐖞", "𐖟", "𐖠", "𐖡", "𐖣", "𐖤",
  "𐖥", "𐖦", "𐖧", "𐖨", "𐖩", "𐖪", "𐖫", "𐖬", "𐖭", "𐖮",
  "𐖯", "𐖰", "𐖱", "𐖳", "𐖴", "𐖵", "𐖶", "𐖷", "𐖸", "𐖹",
  "𐖻", "𐖼", "𐳀", "𐳁", "𐳂", "𐳃", "𐳄", "𐳅", "𐳆", "𐳇",
  "𐳈", "𐳉", "𐳊", "𐳋", "𐳌", "𐳍", "𐳎", "𐳏", "𐳐", "𐳑",
  "𐳒", "𐳓", "𐳔", "𐳕", "𐳖", "𐳗", "𐳘", "𐳙", "𐳚", "𐳛",
  "𐳜", "𐳝", "𐳞", "𐳟", "𐳠", "𐳡", "𐳢", "𐳣", "𐳤", "𐳥",
  "𐳦", "𐳧", "𐳨", "𐳩", "𐳪", "𐳫", "𐳬", "𐳭", "𐳮", "𐳯",
  "𐳰", "𐳱", "𐳲", "𑣀", "𑣁", "𑣂", "𑣃", "𑣄", "𑣅", "𑣆",
  "𑣇", "𑣈", "𑣉", "𑣊", "𑣋", "𑣌", "𑣍", "𑣎", "𑣏", "𑣐",
  "𑣑", "𑣒", "𑣓", "𑣔", "𑣕", "𑣖", "𑣗", "𑣘", "𑣙", "𑣚",
  "𑣛", "𑣜", "𑣝", "𑣞", "𑣟", "𖹠", "𖹡", "𖹢", "𖹣", "𖹤",
  "𖹥", "𖹦", "𖹧", "𖹨", "𖹩", "𖹪", "𖹫", "𖹬", "𖹭", "𖹮",
  "𖹯", "𖹰", "𖹱", "𖹲", "𖹳", "𖹴", "𖹵", "𖹶", "𖹷", "𖹸",
  "𖹹", "𖹺", "𖹻", "𖹼", "𖹽", "𖹾", "𖹿", "𞤢", "𞤣", "𞤤",
  "𞤥", "𞤦", "𞤧", "𞤨", "𞤩", "𞤪", "𞤫", "𞤬", "𞤭", "𞤮",
  "𞤯", "𞤰", "𞤱", "𞤲", "𞤳", "𞤴", "𞤵", "𞤶", "𞤷", "𞤸",
  "𞤹", "𞤺", "𞤻", "𞤼", "𞤽", "𞤾", "𞤿", "𞥀", "𞥁", "𞥂",
  "𞥃",
]