sbase

suckless unix tools
git clone git://git.2f30.org/sbase
Log | Files | Refs | README | LICENSE

commit 9565eef8957c316806a2787dda15421d755307ee
parent 73577f10a0076dfa361776ead28621f59772154c
Author: FRIGN <dev@frign.de>
Date:   Thu, 12 Feb 2015 12:28:45 +0100

Refactor uppercase-inclusion in libutf

Previously, the to*rune function would have to jiggle with two
arrays, and it somehow evaded me that it is actually way simpler
to just add another entry to the arrays if needed.
Binary size goes slightly down, e.g. tr statically linked against
musl: 68072 -> 67688

Behind the scenes though the conversion should be a bit faster and,
more importantly, the scary case-conversion function is simplified
and easier to understand.

It also drops nearly half the LOC in upperrune.c and lowerrune.c.

Diffstat:
Mlibutf/lowerrune.c | 4297+++++++++++++++++++++++++++----------------------------------------------------
Mlibutf/upperrune.c | 3307+++++++++++++++++++++++++++----------------------------------------------------
2 files changed, 2536 insertions(+), 5068 deletions(-)

diff --git a/libutf/lowerrune.c b/libutf/lowerrune.c @@ -4,2866 +4,1435 @@ #include "../utf.h" #include "runetype.h" -static Rune lower2[][2] = { - { 0x0061, 0x007A }, - { 0x00E0, 0x00F6 }, - { 0x00F8, 0x00FE }, - { 0x023F, 0x0240 }, - { 0x0256, 0x0257 }, - { 0x028A, 0x028B }, - { 0x037B, 0x037D }, - { 0x03AD, 0x03AF }, - { 0x03B1, 0x03C1 }, - { 0x03C3, 0x03CB }, - { 0x03CD, 0x03CE }, - { 0x0430, 0x044F }, - { 0x0450, 0x045F }, - { 0x0561, 0x0586 }, - { 0x1F00, 0x1F07 }, - { 0x1F10, 0x1F15 }, - { 0x1F20, 0x1F27 }, - { 0x1F30, 0x1F37 }, - { 0x1F40, 0x1F45 }, - { 0x1F60, 0x1F67 }, - { 0x1F70, 0x1F71 }, - { 0x1F72, 0x1F75 }, - { 0x1F76, 0x1F77 }, - { 0x1F78, 0x1F79 }, - { 0x1F7A, 0x1F7B }, - { 0x1F7C, 0x1F7D }, - { 0x1F80, 0x1F87 }, - { 0x1F90, 0x1F97 }, - { 0x1FA0, 0x1FA7 }, - { 0x1FB0, 0x1FB1 }, - { 0x1FD0, 0x1FD1 }, - { 0x1FE0, 0x1FE1 }, - { 0x2C30, 0x2C5E }, - { 0x2D00, 0x2D25 }, - { 0xFF41, 0xFF5A }, - { 0x10428, 0x1044F }, - { 0x118C0, 0x118DF }, +static Rune lower2[][3] = { + { 0x0061, 0x007A, 0x0041 }, + { 0x00E0, 0x00F6, 0x00C0 }, + { 0x00F8, 0x00FE, 0x00D8 }, + { 0x023F, 0x0240, 0x2C7E }, + { 0x0256, 0x0257, 0x0189 }, + { 0x028A, 0x028B, 0x01B1 }, + { 0x037B, 0x037D, 0x03FD }, + { 0x03AD, 0x03AF, 0x0388 }, + { 0x03B1, 0x03C1, 0x0391 }, + { 0x03C3, 0x03CB, 0x03A3 }, + { 0x03CD, 0x03CE, 0x038E }, + { 0x0430, 0x044F, 0x0410 }, + { 0x0450, 0x045F, 0x0400 }, + { 0x0561, 0x0586, 0x0531 }, + { 0x1F00, 0x1F07, 0x1F08 }, + { 0x1F10, 0x1F15, 0x1F18 }, + { 0x1F20, 0x1F27, 0x1F28 }, + { 0x1F30, 0x1F37, 0x1F38 }, + { 0x1F40, 0x1F45, 0x1F48 }, + { 0x1F60, 0x1F67, 0x1F68 }, + { 0x1F70, 0x1F71, 0x1FBA }, + { 0x1F72, 0x1F75, 0x1FC8 }, + { 0x1F76, 0x1F77, 0x1FDA }, + { 0x1F78, 0x1F79, 0x1FF8 }, + { 0x1F7A, 0x1F7B, 0x1FEA }, + { 0x1F7C, 0x1F7D, 0x1FFA }, + { 0x1F80, 0x1F87, 0x1F88 }, + { 0x1F90, 0x1F97, 0x1F98 }, + { 0x1FA0, 0x1FA7, 0x1FA8 }, + { 0x1FB0, 0x1FB1, 0x1FB8 }, + { 0x1FD0, 0x1FD1, 0x1FD8 }, + { 0x1FE0, 0x1FE1, 0x1FE8 }, + { 0x2C30, 0x2C5E, 0x2C00 }, + { 0x2D00, 0x2D25, 0x10A0 }, + { 0xFF41, 0xFF5A, 0xFF21 }, + { 0x10428, 0x1044F, 0x10400 }, + { 0x118C0, 0x118DF, 0x118A0 }, }; -static Rune lower2uppercase[][2] = { - { 0x0041, 0x005A }, - { 0x00C0, 0x00D6 }, - { 0x00D8, 0x00DE }, - { 0x2C7E, 0x2C7F }, - { 0x0189, 0x018A }, - { 0x01B1, 0x01B2 }, - { 0x03FD, 0x03FF }, - { 0x0388, 0x038A }, - { 0x0391, 0x03A1 }, - { 0x03A3, 0x03AB }, - { 0x038E, 0x038F }, - { 0x0410, 0x042F }, - { 0x0400, 0x040F }, - { 0x0531, 0x0556 }, - { 0x1F08, 0x1F0F }, - { 0x1F18, 0x1F1D }, - { 0x1F28, 0x1F2F }, - { 0x1F38, 0x1F3F }, - { 0x1F48, 0x1F4D }, - { 0x1F68, 0x1F6F }, - { 0x1FBA, 0x1FBB }, - { 0x1FC8, 0x1FCB }, - { 0x1FDA, 0x1FDB }, - { 0x1FF8, 0x1FF9 }, - { 0x1FEA, 0x1FEB }, - { 0x1FFA, 0x1FFB }, - { 0x1F88, 0x1F8F }, - { 0x1F98, 0x1F9F }, - { 0x1FA8, 0x1FAF }, - { 0x1FB8, 0x1FB9 }, - { 0x1FD8, 0x1FD9 }, - { 0x1FE8, 0x1FE9 }, - { 0x2C00, 0x2C2E }, - { 0x10A0, 0x10C5 }, - { 0xFF21, 0xFF3A }, - { 0x10400, 0x10427 }, - { 0x118A0, 0x118BF }, -}; - -static Rune lower1[] = { - 0x00B5, - 0x00DF, - 0x00FF, - 0x0101, - 0x0103, - 0x0105, - 0x0107, - 0x0109, - 0x010B, - 0x010D, - 0x010F, - 0x0111, - 0x0113, - 0x0115, - 0x0117, - 0x0119, - 0x011B, - 0x011D, - 0x011F, - 0x0121, - 0x0123, - 0x0125, - 0x0127, - 0x0129, - 0x012B, - 0x012D, - 0x012F, - 0x0131, - 0x0133, - 0x0135, - 0x0137, - 0x0138, - 0x013A, - 0x013C, - 0x013E, - 0x0140, - 0x0142, - 0x0144, - 0x0146, - 0x0148, - 0x0149, - 0x014B, - 0x014D, - 0x014F, - 0x0151, - 0x0153, - 0x0155, - 0x0157, - 0x0159, - 0x015B, - 0x015D, - 0x015F, - 0x0161, - 0x0163, - 0x0165, - 0x0167, - 0x0169, - 0x016B, - 0x016D, - 0x016F, - 0x0171, - 0x0173, - 0x0175, - 0x0177, - 0x017A, - 0x017C, - 0x017E, - 0x017F, - 0x0180, - 0x0183, - 0x0185, - 0x0188, - 0x018C, - 0x018D, - 0x0192, - 0x0195, - 0x0199, - 0x019A, - 0x019B, - 0x019E, - 0x01A1, - 0x01A3, - 0x01A5, - 0x01A8, - 0x01AA, - 0x01AB, - 0x01AD, - 0x01B0, - 0x01B4, - 0x01B6, - 0x01B9, - 0x01BA, - 0x01BD, - 0x01BE, - 0x01BF, - 0x01C6, - 0x01C9, - 0x01CC, - 0x01CE, - 0x01D0, - 0x01D2, - 0x01D4, - 0x01D6, - 0x01D8, - 0x01DA, - 0x01DC, - 0x01DD, - 0x01DF, - 0x01E1, - 0x01E3, - 0x01E5, - 0x01E7, - 0x01E9, - 0x01EB, - 0x01ED, - 0x01EF, - 0x01F0, - 0x01F3, - 0x01F5, - 0x01F9, - 0x01FB, - 0x01FD, - 0x01FF, - 0x0201, - 0x0203, - 0x0205, - 0x0207, - 0x0209, - 0x020B, - 0x020D, - 0x020F, - 0x0211, - 0x0213, - 0x0215, - 0x0217, - 0x0219, - 0x021B, - 0x021D, - 0x021F, - 0x0221, - 0x0223, - 0x0225, - 0x0227, - 0x0229, - 0x022B, - 0x022D, - 0x022F, - 0x0231, - 0x0233, - 0x0234, - 0x0235, - 0x0236, - 0x0237, - 0x0238, - 0x0239, - 0x023C, - 0x0242, - 0x0247, - 0x0249, - 0x024B, - 0x024D, - 0x024F, - 0x0250, - 0x0251, - 0x0252, - 0x0253, - 0x0254, - 0x0255, - 0x0258, - 0x0259, - 0x025A, - 0x025B, - 0x025C, - 0x025D, - 0x025E, - 0x025F, - 0x0260, - 0x0261, - 0x0262, - 0x0263, - 0x0264, - 0x0265, - 0x0266, - 0x0267, - 0x0268, - 0x0269, - 0x026A, - 0x026B, - 0x026C, - 0x026D, - 0x026E, - 0x026F, - 0x0270, - 0x0271, - 0x0272, - 0x0273, - 0x0274, - 0x0275, - 0x0276, - 0x0277, - 0x0278, - 0x0279, - 0x027A, - 0x027B, - 0x027C, - 0x027D, - 0x027E, - 0x027F, - 0x0280, - 0x0281, - 0x0282, - 0x0283, - 0x0284, - 0x0285, - 0x0286, - 0x0287, - 0x0288, - 0x0289, - 0x028C, - 0x028D, - 0x028E, - 0x028F, - 0x0290, - 0x0291, - 0x0292, - 0x0293, - 0x0295, - 0x0296, - 0x0297, - 0x0298, - 0x0299, - 0x029A, - 0x029B, - 0x029C, - 0x029D, - 0x029E, - 0x029F, - 0x02A0, - 0x02A1, - 0x02A2, - 0x02A3, - 0x02A4, - 0x02A5, - 0x02A6, - 0x02A7, - 0x02A8, - 0x02A9, - 0x02AA, - 0x02AB, - 0x02AC, - 0x02AD, - 0x02AE, - 0x02AF, - 0x0371, - 0x0373, - 0x0377, - 0x0390, - 0x03AC, - 0x03B0, - 0x03C2, - 0x03CC, - 0x03D0, - 0x03D1, - 0x03D5, - 0x03D6, - 0x03D7, - 0x03D9, - 0x03DB, - 0x03DD, - 0x03DF, - 0x03E1, - 0x03E3, - 0x03E5, - 0x03E7, - 0x03E9, - 0x03EB, - 0x03ED, - 0x03EF, - 0x03F0, - 0x03F1, - 0x03F2, - 0x03F3, - 0x03F5, - 0x03F8, - 0x03FB, - 0x03FC, - 0x0461, - 0x0463, - 0x0465, - 0x0467, - 0x0469, - 0x046B, - 0x046D, - 0x046F, - 0x0471, - 0x0473, - 0x0475, - 0x0477, - 0x0479, - 0x047B, - 0x047D, - 0x047F, - 0x0481, - 0x048B, - 0x048D, - 0x048F, - 0x0491, - 0x0493, - 0x0495, - 0x0497, - 0x0499, - 0x049B, - 0x049D, - 0x049F, - 0x04A1, - 0x04A3, - 0x04A5, - 0x04A7, - 0x04A9, - 0x04AB, - 0x04AD, - 0x04AF, - 0x04B1, - 0x04B3, - 0x04B5, - 0x04B7, - 0x04B9, - 0x04BB, - 0x04BD, - 0x04BF, - 0x04C2, - 0x04C4, - 0x04C6, - 0x04C8, - 0x04CA, - 0x04CC, - 0x04CE, - 0x04CF, - 0x04D1, - 0x04D3, - 0x04D5, - 0x04D7, - 0x04D9, - 0x04DB, - 0x04DD, - 0x04DF, - 0x04E1, - 0x04E3, - 0x04E5, - 0x04E7, - 0x04E9, - 0x04EB, - 0x04ED, - 0x04EF, - 0x04F1, - 0x04F3, - 0x04F5, - 0x04F7, - 0x04F9, - 0x04FB, - 0x04FD, - 0x04FF, - 0x0501, - 0x0503, - 0x0505, - 0x0507, - 0x0509, - 0x050B, - 0x050D, - 0x050F, - 0x0511, - 0x0513, - 0x0515, - 0x0517, - 0x0519, - 0x051B, - 0x051D, - 0x051F, - 0x0521, - 0x0523, - 0x0525, - 0x0527, - 0x0529, - 0x052B, - 0x052D, - 0x052F, - 0x0587, - 0x1D00, - 0x1D01, - 0x1D02, - 0x1D03, - 0x1D04, - 0x1D05, - 0x1D06, - 0x1D07, - 0x1D08, - 0x1D09, - 0x1D0A, - 0x1D0B, - 0x1D0C, - 0x1D0D, - 0x1D0E, - 0x1D0F, - 0x1D10, - 0x1D11, - 0x1D12, - 0x1D13, - 0x1D14, - 0x1D15, - 0x1D16, - 0x1D17, - 0x1D18, - 0x1D19, - 0x1D1A, - 0x1D1B, - 0x1D1C, - 0x1D1D, - 0x1D1E, - 0x1D1F, - 0x1D20, - 0x1D21, - 0x1D22, - 0x1D23, - 0x1D24, - 0x1D25, - 0x1D26, - 0x1D27, - 0x1D28, - 0x1D29, - 0x1D2A, - 0x1D2B, - 0x1D6B, - 0x1D6C, - 0x1D6D, - 0x1D6E, - 0x1D6F, - 0x1D70, - 0x1D71, - 0x1D72, - 0x1D73, - 0x1D74, - 0x1D75, - 0x1D76, - 0x1D77, - 0x1D79, - 0x1D7A, - 0x1D7B, - 0x1D7C, - 0x1D7D, - 0x1D7E, - 0x1D7F, - 0x1D80, - 0x1D81, - 0x1D82, - 0x1D83, - 0x1D84, - 0x1D85, - 0x1D86, - 0x1D87, - 0x1D88, - 0x1D89, - 0x1D8A, - 0x1D8B, - 0x1D8C, - 0x1D8D, - 0x1D8E, - 0x1D8F, - 0x1D90, - 0x1D91, - 0x1D92, - 0x1D93, - 0x1D94, - 0x1D95, - 0x1D96, - 0x1D97, - 0x1D98, - 0x1D99, - 0x1D9A, - 0x1E01, - 0x1E03, - 0x1E05, - 0x1E07, - 0x1E09, - 0x1E0B, - 0x1E0D, - 0x1E0F, - 0x1E11, - 0x1E13, - 0x1E15, - 0x1E17, - 0x1E19, - 0x1E1B, - 0x1E1D, - 0x1E1F, - 0x1E21, - 0x1E23, - 0x1E25, - 0x1E27, - 0x1E29, - 0x1E2B, - 0x1E2D, - 0x1E2F, - 0x1E31, - 0x1E33, - 0x1E35, - 0x1E37, - 0x1E39, - 0x1E3B, - 0x1E3D, - 0x1E3F, - 0x1E41, - 0x1E43, - 0x1E45, - 0x1E47, - 0x1E49, - 0x1E4B, - 0x1E4D, - 0x1E4F, - 0x1E51, - 0x1E53, - 0x1E55, - 0x1E57, - 0x1E59, - 0x1E5B, - 0x1E5D, - 0x1E5F, - 0x1E61, - 0x1E63, - 0x1E65, - 0x1E67, - 0x1E69, - 0x1E6B, - 0x1E6D, - 0x1E6F, - 0x1E71, - 0x1E73, - 0x1E75, - 0x1E77, - 0x1E79, - 0x1E7B, - 0x1E7D, - 0x1E7F, - 0x1E81, - 0x1E83, - 0x1E85, - 0x1E87, - 0x1E89, - 0x1E8B, - 0x1E8D, - 0x1E8F, - 0x1E91, - 0x1E93, - 0x1E95, - 0x1E96, - 0x1E97, - 0x1E98, - 0x1E99, - 0x1E9A, - 0x1E9B, - 0x1E9C, - 0x1E9D, - 0x1E9F, - 0x1EA1, - 0x1EA3, - 0x1EA5, - 0x1EA7, - 0x1EA9, - 0x1EAB, - 0x1EAD, - 0x1EAF, - 0x1EB1, - 0x1EB3, - 0x1EB5, - 0x1EB7, - 0x1EB9, - 0x1EBB, - 0x1EBD, - 0x1EBF, - 0x1EC1, - 0x1EC3, - 0x1EC5, - 0x1EC7, - 0x1EC9, - 0x1ECB, - 0x1ECD, - 0x1ECF, - 0x1ED1, - 0x1ED3, - 0x1ED5, - 0x1ED7, - 0x1ED9, - 0x1EDB, - 0x1EDD, - 0x1EDF, - 0x1EE1, - 0x1EE3, - 0x1EE5, - 0x1EE7, - 0x1EE9, - 0x1EEB, - 0x1EED, - 0x1EEF, - 0x1EF1, - 0x1EF3, - 0x1EF5, - 0x1EF7, - 0x1EF9, - 0x1EFB, - 0x1EFD, - 0x1EFF, - 0x1F50, - 0x1F51, - 0x1F52, - 0x1F53, - 0x1F54, - 0x1F55, - 0x1F56, - 0x1F57, - 0x1FB2, - 0x1FB3, - 0x1FB4, - 0x1FB6, - 0x1FB7, - 0x1FBE, - 0x1FC2, - 0x1FC3, - 0x1FC4, - 0x1FC6, - 0x1FC7, - 0x1FD2, - 0x1FD3, - 0x1FD6, - 0x1FD7, - 0x1FE2, - 0x1FE3, - 0x1FE4, - 0x1FE5, - 0x1FE6, - 0x1FE7, - 0x1FF2, - 0x1FF3, - 0x1FF4, - 0x1FF6, - 0x1FF7, - 0x210A, - 0x210E, - 0x210F, - 0x2113, - 0x212F, - 0x2134, - 0x2139, - 0x213C, - 0x213D, - 0x2146, - 0x2147, - 0x2148, - 0x2149, - 0x214E, - 0x2184, - 0x2C61, - 0x2C65, - 0x2C66, - 0x2C68, - 0x2C6A, - 0x2C6C, - 0x2C71, - 0x2C73, - 0x2C74, - 0x2C76, - 0x2C77, - 0x2C78, - 0x2C79, - 0x2C7A, - 0x2C7B, - 0x2C81, - 0x2C83, - 0x2C85, - 0x2C87, - 0x2C89, - 0x2C8B, - 0x2C8D, - 0x2C8F, - 0x2C91, - 0x2C93, - 0x2C95, - 0x2C97, - 0x2C99, - 0x2C9B, - 0x2C9D, - 0x2C9F, - 0x2CA1, - 0x2CA3, - 0x2CA5, - 0x2CA7, - 0x2CA9, - 0x2CAB, - 0x2CAD, - 0x2CAF, - 0x2CB1, - 0x2CB3, - 0x2CB5, - 0x2CB7, - 0x2CB9, - 0x2CBB, - 0x2CBD, - 0x2CBF, - 0x2CC1, - 0x2CC3, - 0x2CC5, - 0x2CC7, - 0x2CC9, - 0x2CCB, - 0x2CCD, - 0x2CCF, - 0x2CD1, - 0x2CD3, - 0x2CD5, - 0x2CD7, - 0x2CD9, - 0x2CDB, - 0x2CDD, - 0x2CDF, - 0x2CE1, - 0x2CE3, - 0x2CE4, - 0x2CEC, - 0x2CEE, - 0x2CF3, - 0x2D27, - 0x2D2D, - 0xA641, - 0xA643, - 0xA645, - 0xA647, - 0xA649, - 0xA64B, - 0xA64D, - 0xA64F, - 0xA651, - 0xA653, - 0xA655, - 0xA657, - 0xA659, - 0xA65B, - 0xA65D, - 0xA65F, - 0xA661, - 0xA663, - 0xA665, - 0xA667, - 0xA669, - 0xA66B, - 0xA66D, - 0xA681, - 0xA683, - 0xA685, - 0xA687, - 0xA689, - 0xA68B, - 0xA68D, - 0xA68F, - 0xA691, - 0xA693, - 0xA695, - 0xA697, - 0xA699, - 0xA69B, - 0xA723, - 0xA725, - 0xA727, - 0xA729, - 0xA72B, - 0xA72D, - 0xA72F, - 0xA730, - 0xA731, - 0xA733, - 0xA735, - 0xA737, - 0xA739, - 0xA73B, - 0xA73D, - 0xA73F, - 0xA741, - 0xA743, - 0xA745, - 0xA747, - 0xA749, - 0xA74B, - 0xA74D, - 0xA74F, - 0xA751, - 0xA753, - 0xA755, - 0xA757, - 0xA759, - 0xA75B, - 0xA75D, - 0xA75F, - 0xA761, - 0xA763, - 0xA765, - 0xA767, - 0xA769, - 0xA76B, - 0xA76D, - 0xA76F, - 0xA771, - 0xA772, - 0xA773, - 0xA774, - 0xA775, - 0xA776, - 0xA777, - 0xA778, - 0xA77A, - 0xA77C, - 0xA77F, - 0xA781, - 0xA783, - 0xA785, - 0xA787, - 0xA78C, - 0xA78E, - 0xA791, - 0xA793, - 0xA794, - 0xA795, - 0xA797, - 0xA799, - 0xA79B, - 0xA79D, - 0xA79F, - 0xA7A1, - 0xA7A3, - 0xA7A5, - 0xA7A7, - 0xA7A9, - 0xA7FA, - 0xAB30, - 0xAB31, - 0xAB32, - 0xAB33, - 0xAB34, - 0xAB35, - 0xAB36, - 0xAB37, - 0xAB38, - 0xAB39, - 0xAB3A, - 0xAB3B, - 0xAB3C, - 0xAB3D, - 0xAB3E, - 0xAB3F, - 0xAB40, - 0xAB41, - 0xAB42, - 0xAB43, - 0xAB44, - 0xAB45, - 0xAB46, - 0xAB47, - 0xAB48, - 0xAB49, - 0xAB4A, - 0xAB4B, - 0xAB4C, - 0xAB4D, - 0xAB4E, - 0xAB4F, - 0xAB50, - 0xAB51, - 0xAB52, - 0xAB53, - 0xAB54, - 0xAB55, - 0xAB56, - 0xAB57, - 0xAB58, - 0xAB59, - 0xAB5A, - 0xAB64, - 0xAB65, - 0xFB00, - 0xFB01, - 0xFB02, - 0xFB03, - 0xFB04, - 0xFB05, - 0xFB06, - 0xFB13, - 0xFB14, - 0xFB15, - 0xFB16, - 0xFB17, - 0x1D41A, - 0x1D41B, - 0x1D41C, - 0x1D41D, - 0x1D41E, - 0x1D41F, - 0x1D420, - 0x1D421, - 0x1D422, - 0x1D423, - 0x1D424, - 0x1D425, - 0x1D426, - 0x1D427, - 0x1D428, - 0x1D429, - 0x1D42A, - 0x1D42B, - 0x1D42C, - 0x1D42D, - 0x1D42E, - 0x1D42F, - 0x1D430, - 0x1D431, - 0x1D432, - 0x1D433, - 0x1D44E, - 0x1D44F, - 0x1D450, - 0x1D451, - 0x1D452, - 0x1D453, - 0x1D454, - 0x1D456, - 0x1D457, - 0x1D458, - 0x1D459, - 0x1D45A, - 0x1D45B, - 0x1D45C, - 0x1D45D, - 0x1D45E, - 0x1D45F, - 0x1D460, - 0x1D461, - 0x1D462, - 0x1D463, - 0x1D464, - 0x1D465, - 0x1D466, - 0x1D467, - 0x1D482, - 0x1D483, - 0x1D484, - 0x1D485, - 0x1D486, - 0x1D487, - 0x1D488, - 0x1D489, - 0x1D48A, - 0x1D48B, - 0x1D48C, - 0x1D48D, - 0x1D48E, - 0x1D48F, - 0x1D490, - 0x1D491, - 0x1D492, - 0x1D493, - 0x1D494, - 0x1D495, - 0x1D496, - 0x1D497, - 0x1D498, - 0x1D499, - 0x1D49A, - 0x1D49B, - 0x1D4B6, - 0x1D4B7, - 0x1D4B8, - 0x1D4B9, - 0x1D4BB, - 0x1D4BD, - 0x1D4BE, - 0x1D4BF, - 0x1D4C0, - 0x1D4C1, - 0x1D4C2, - 0x1D4C3, - 0x1D4C5, - 0x1D4C6, - 0x1D4C7, - 0x1D4C8, - 0x1D4C9, - 0x1D4CA, - 0x1D4CB, - 0x1D4CC, - 0x1D4CD, - 0x1D4CE, - 0x1D4CF, - 0x1D4EA, - 0x1D4EB, - 0x1D4EC, - 0x1D4ED, - 0x1D4EE, - 0x1D4EF, - 0x1D4F0, - 0x1D4F1, - 0x1D4F2, - 0x1D4F3, - 0x1D4F4, - 0x1D4F5, - 0x1D4F6, - 0x1D4F7, - 0x1D4F8, - 0x1D4F9, - 0x1D4FA, - 0x1D4FB, - 0x1D4FC, - 0x1D4FD, - 0x1D4FE, - 0x1D4FF, - 0x1D500, - 0x1D501, - 0x1D502, - 0x1D503, - 0x1D51E, - 0x1D51F, - 0x1D520, - 0x1D521, - 0x1D522, - 0x1D523, - 0x1D524, - 0x1D525, - 0x1D526, - 0x1D527, - 0x1D528, - 0x1D529, - 0x1D52A, - 0x1D52B, - 0x1D52C, - 0x1D52D, - 0x1D52E, - 0x1D52F, - 0x1D530, - 0x1D531, - 0x1D532, - 0x1D533, - 0x1D534, - 0x1D535, - 0x1D536, - 0x1D537, - 0x1D552, - 0x1D553, - 0x1D554, - 0x1D555, - 0x1D556, - 0x1D557, - 0x1D558, - 0x1D559, - 0x1D55A, - 0x1D55B, - 0x1D55C, - 0x1D55D, - 0x1D55E, - 0x1D55F, - 0x1D560, - 0x1D561, - 0x1D562, - 0x1D563, - 0x1D564, - 0x1D565, - 0x1D566, - 0x1D567, - 0x1D568, - 0x1D569, - 0x1D56A, - 0x1D56B, - 0x1D586, - 0x1D587, - 0x1D588, - 0x1D589, - 0x1D58A, - 0x1D58B, - 0x1D58C, - 0x1D58D, - 0x1D58E, - 0x1D58F, - 0x1D590, - 0x1D591, - 0x1D592, - 0x1D593, - 0x1D594, - 0x1D595, - 0x1D596, - 0x1D597, - 0x1D598, - 0x1D599, - 0x1D59A, - 0x1D59B, - 0x1D59C, - 0x1D59D, - 0x1D59E, - 0x1D59F, - 0x1D5BA, - 0x1D5BB, - 0x1D5BC, - 0x1D5BD, - 0x1D5BE, - 0x1D5BF, - 0x1D5C0, - 0x1D5C1, - 0x1D5C2, - 0x1D5C3, - 0x1D5C4, - 0x1D5C5, - 0x1D5C6, - 0x1D5C7, - 0x1D5C8, - 0x1D5C9, - 0x1D5CA, - 0x1D5CB, - 0x1D5CC, - 0x1D5CD, - 0x1D5CE, - 0x1D5CF, - 0x1D5D0, - 0x1D5D1, - 0x1D5D2, - 0x1D5D3, - 0x1D5EE, - 0x1D5EF, - 0x1D5F0, - 0x1D5F1, - 0x1D5F2, - 0x1D5F3, - 0x1D5F4, - 0x1D5F5, - 0x1D5F6, - 0x1D5F7, - 0x1D5F8, - 0x1D5F9, - 0x1D5FA, - 0x1D5FB, - 0x1D5FC, - 0x1D5FD, - 0x1D5FE, - 0x1D5FF, - 0x1D600, - 0x1D601, - 0x1D602, - 0x1D603, - 0x1D604, - 0x1D605, - 0x1D606, - 0x1D607, - 0x1D622, - 0x1D623, - 0x1D624, - 0x1D625, - 0x1D626, - 0x1D627, - 0x1D628, - 0x1D629, - 0x1D62A, - 0x1D62B, - 0x1D62C, - 0x1D62D, - 0x1D62E, - 0x1D62F, - 0x1D630, - 0x1D631, - 0x1D632, - 0x1D633, - 0x1D634, - 0x1D635, - 0x1D636, - 0x1D637, - 0x1D638, - 0x1D639, - 0x1D63A, - 0x1D63B, - 0x1D656, - 0x1D657, - 0x1D658, - 0x1D659, - 0x1D65A, - 0x1D65B, - 0x1D65C, - 0x1D65D, - 0x1D65E, - 0x1D65F, - 0x1D660, - 0x1D661, - 0x1D662, - 0x1D663, - 0x1D664, - 0x1D665, - 0x1D666, - 0x1D667, - 0x1D668, - 0x1D669, - 0x1D66A, - 0x1D66B, - 0x1D66C, - 0x1D66D, - 0x1D66E, - 0x1D66F, - 0x1D68A, - 0x1D68B, - 0x1D68C, - 0x1D68D, - 0x1D68E, - 0x1D68F, - 0x1D690, - 0x1D691, - 0x1D692, - 0x1D693, - 0x1D694, - 0x1D695, - 0x1D696, - 0x1D697, - 0x1D698, - 0x1D699, - 0x1D69A, - 0x1D69B, - 0x1D69C, - 0x1D69D, - 0x1D69E, - 0x1D69F, - 0x1D6A0, - 0x1D6A1, - 0x1D6A2, - 0x1D6A3, - 0x1D6A4, - 0x1D6A5, - 0x1D6C2, - 0x1D6C3, - 0x1D6C4, - 0x1D6C5, - 0x1D6C6, - 0x1D6C7, - 0x1D6C8, - 0x1D6C9, - 0x1D6CA, - 0x1D6CB, - 0x1D6CC, - 0x1D6CD, - 0x1D6CE, - 0x1D6CF, - 0x1D6D0, - 0x1D6D1, - 0x1D6D2, - 0x1D6D3, - 0x1D6D4, - 0x1D6D5, - 0x1D6D6, - 0x1D6D7, - 0x1D6D8, - 0x1D6D9, - 0x1D6DA, - 0x1D6DC, - 0x1D6DD, - 0x1D6DE, - 0x1D6DF, - 0x1D6E0, - 0x1D6E1, - 0x1D6FC, - 0x1D6FD, - 0x1D6FE, - 0x1D6FF, - 0x1D700, - 0x1D701, - 0x1D702, - 0x1D703, - 0x1D704, - 0x1D705, - 0x1D706, - 0x1D707, - 0x1D708, - 0x1D709, - 0x1D70A, - 0x1D70B, - 0x1D70C, - 0x1D70D, - 0x1D70E, - 0x1D70F, - 0x1D710, - 0x1D711, - 0x1D712, - 0x1D713, - 0x1D714, - 0x1D716, - 0x1D717, - 0x1D718, - 0x1D719, - 0x1D71A, - 0x1D71B, - 0x1D736, - 0x1D737, - 0x1D738, - 0x1D739, - 0x1D73A, - 0x1D73B, - 0x1D73C, - 0x1D73D, - 0x1D73E, - 0x1D73F, - 0x1D740, - 0x1D741, - 0x1D742, - 0x1D743, - 0x1D744, - 0x1D745, - 0x1D746, - 0x1D747, - 0x1D748, - 0x1D749, - 0x1D74A, - 0x1D74B, - 0x1D74C, - 0x1D74D, - 0x1D74E, - 0x1D750, - 0x1D751, - 0x1D752, - 0x1D753, - 0x1D754, - 0x1D755, - 0x1D770, - 0x1D771, - 0x1D772, - 0x1D773, - 0x1D774, - 0x1D775, - 0x1D776, - 0x1D777, - 0x1D778, - 0x1D779, - 0x1D77A, - 0x1D77B, - 0x1D77C, - 0x1D77D, - 0x1D77E, - 0x1D77F, - 0x1D780, - 0x1D781, - 0x1D782, - 0x1D783, - 0x1D784, - 0x1D785, - 0x1D786, - 0x1D787, - 0x1D788, - 0x1D78A, - 0x1D78B, - 0x1D78C, - 0x1D78D, - 0x1D78E, - 0x1D78F, - 0x1D7AA, - 0x1D7AB, - 0x1D7AC, - 0x1D7AD, - 0x1D7AE, - 0x1D7AF, - 0x1D7B0, - 0x1D7B1, - 0x1D7B2, - 0x1D7B3, - 0x1D7B4, - 0x1D7B5, - 0x1D7B6, - 0x1D7B7, - 0x1D7B8, - 0x1D7B9, - 0x1D7BA, - 0x1D7BB, - 0x1D7BC, - 0x1D7BD, - 0x1D7BE, - 0x1D7BF, - 0x1D7C0, - 0x1D7C1, - 0x1D7C2, - 0x1D7C4, - 0x1D7C5, - 0x1D7C6, - 0x1D7C7, - 0x1D7C8, - 0x1D7C9, - 0x1D7CB, -}; - -static Rune lower1uppercase[] = { - 0x039C, - 0x00DF, - 0x0178, - 0x0100, - 0x0102, - 0x0104, - 0x0106, - 0x0108, - 0x010A, - 0x010C, - 0x010E, - 0x0110, - 0x0112, - 0x0114, - 0x0116, - 0x0118, - 0x011A, - 0x011C, - 0x011E, - 0x0120, - 0x0122, - 0x0124, - 0x0126, - 0x0128, - 0x012A, - 0x012C, - 0x012E, - 0x0049, - 0x0132, - 0x0134, - 0x0136, - 0x0138, - 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, - 0x0179, - 0x017B, - 0x017D, - 0x0053, - 0x0243, - 0x0182, - 0x0184, - 0x0187, - 0x018B, - 0x018D, - 0x0191, - 0x01F6, - 0x0198, - 0x023D, - 0x019B, - 0x0220, - 0x01A0, - 0x01A2, - 0x01A4, - 0x01A7, - 0x01AA, - 0x01AB, - 0x01AC, - 0x01AF, - 0x01B3, - 0x01B5, - 0x01B8, - 0x01BA, - 0x01BC, - 0x01BE, - 0x01F7, - 0x01C4, - 0x01C7, - 0x01CA, - 0x01CD, - 0x01CF, - 0x01D1, - 0x01D3, - 0x01D5, - 0x01D7, - 0x01D9, - 0x01DB, - 0x018E, - 0x01DE, - 0x01E0, - 0x01E2, - 0x01E4, - 0x01E6, - 0x01E8, - 0x01EA, - 0x01EC, - 0x01EE, - 0x01F0, - 0x01F1, - 0x01F4, - 0x01F8, - 0x01FA, - 0x01FC, - 0x01FE, - 0x0200, - 0x0202, - 0x0204, - 0x0206, - 0x0208, - 0x020A, - 0x020C, - 0x020E, - 0x0210, - 0x0212, - 0x0214, - 0x0216, - 0x0218, - 0x021A, - 0x021C, - 0x021E, - 0x0221, - 0x0222, - 0x0224, - 0x0226, - 0x0228, - 0x022A, - 0x022C, - 0x022E, - 0x0230, - 0x0232, - 0x0234, - 0x0235, - 0x0236, - 0x0237, - 0x0238, - 0x0239, - 0x023B, - 0x0241, - 0x0246, - 0x0248, - 0x024A, - 0x024C, - 0x024E, - 0x2C6F, - 0x2C6D, - 0x2C70, - 0x0181, - 0x0186, - 0x0255, - 0x0258, - 0x018F, - 0x025A, - 0x0190, - 0xA7AB, - 0x025D, - 0x025E, - 0x025F, - 0x0193, - 0xA7AC, - 0x0262, - 0x0194, - 0x0264, - 0xA78D, - 0xA7AA, - 0x0267, - 0x0197, - 0x0196, - 0x026A, - 0x2C62, - 0xA7AD, - 0x026D, - 0x026E, - 0x019C, - 0x0270, - 0x2C6E, - 0x019D, - 0x0273, - 0x0274, - 0x019F, - 0x0276, - 0x0277, - 0x0278, - 0x0279, - 0x027A, - 0x027B, - 0x027C, - 0x2C64, - 0x027E, - 0x027F, - 0x01A6, - 0x0281, - 0x0282, - 0x01A9, - 0x0284, - 0x0285, - 0x0286, - 0xA7B1, - 0x01AE, - 0x0244, - 0x0245, - 0x028D, - 0x028E, - 0x028F, - 0x0290, - 0x0291, - 0x01B7, - 0x0293, - 0x0295, - 0x0296, - 0x0297, - 0x0298, - 0x0299, - 0x029A, - 0x029B, - 0x029C, - 0x029D, - 0xA7B0, - 0x029F, - 0x02A0, - 0x02A1, - 0x02A2, - 0x02A3, - 0x02A4, - 0x02A5, - 0x02A6, - 0x02A7, - 0x02A8, - 0x02A9, - 0x02AA, - 0x02AB, - 0x02AC, - 0x02AD, - 0x02AE, - 0x02AF, - 0x0370, - 0x0372, - 0x0376, - 0x0390, - 0x0386, - 0x03B0, - 0x03A3, - 0x038C, - 0x0392, - 0x0398, - 0x03A6, - 0x03A0, - 0x03CF, - 0x03D8, - 0x03DA, - 0x03DC, - 0x03DE, - 0x03E0, - 0x03E2, - 0x03E4, - 0x03E6, - 0x03E8, - 0x03EA, - 0x03EC, - 0x03EE, - 0x039A, - 0x03A1, - 0x03F9, - 0x037F, - 0x0395, - 0x03F7, - 0x03FA, - 0x03FC, - 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, - 0x04C1, - 0x04C3, - 0x04C5, - 0x04C7, - 0x04C9, - 0x04CB, - 0x04CD, - 0x04C0, - 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, - 0x0587, - 0x1D00, - 0x1D01, - 0x1D02, - 0x1D03, - 0x1D04, - 0x1D05, - 0x1D06, - 0x1D07, - 0x1D08, - 0x1D09, - 0x1D0A, - 0x1D0B, - 0x1D0C, - 0x1D0D, - 0x1D0E, - 0x1D0F, - 0x1D10, - 0x1D11, - 0x1D12, - 0x1D13, - 0x1D14, - 0x1D15, - 0x1D16, - 0x1D17, - 0x1D18, - 0x1D19, - 0x1D1A, - 0x1D1B, - 0x1D1C, - 0x1D1D, - 0x1D1E, - 0x1D1F, - 0x1D20, - 0x1D21, - 0x1D22, - 0x1D23, - 0x1D24, - 0x1D25, - 0x1D26, - 0x1D27, - 0x1D28, - 0x1D29, - 0x1D2A, - 0x1D2B, - 0x1D6B, - 0x1D6C, - 0x1D6D, - 0x1D6E, - 0x1D6F, - 0x1D70, - 0x1D71, - 0x1D72, - 0x1D73, - 0x1D74, - 0x1D75, - 0x1D76, - 0x1D77, - 0xA77D, - 0x1D7A, - 0x1D7B, - 0x1D7C, - 0x2C63, - 0x1D7E, - 0x1D7F, - 0x1D80, - 0x1D81, - 0x1D82, - 0x1D83, - 0x1D84, - 0x1D85, - 0x1D86, - 0x1D87, - 0x1D88, - 0x1D89, - 0x1D8A, - 0x1D8B, - 0x1D8C, - 0x1D8D, - 0x1D8E, - 0x1D8F, - 0x1D90, - 0x1D91, - 0x1D92, - 0x1D93, - 0x1D94, - 0x1D95, - 0x1D96, - 0x1D97, - 0x1D98, - 0x1D99, - 0x1D9A, - 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, - 0x1E60, - 0x1E9C, - 0x1E9D, - 0x1E9F, - 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, - 0x1F50, - 0x1F59, - 0x1F52, - 0x1F5B, - 0x1F54, - 0x1F5D, - 0x1F56, - 0x1F5F, - 0x1FB2, - 0x1FBC, - 0x1FB4, - 0x1FB6, - 0x1FB7, - 0x0399, - 0x1FC2, - 0x1FCC, - 0x1FC4, - 0x1FC6, - 0x1FC7, - 0x1FD2, - 0x1FD3, - 0x1FD6, - 0x1FD7, - 0x1FE2, - 0x1FE3, - 0x1FE4, - 0x1FEC, - 0x1FE6, - 0x1FE7, - 0x1FF2, - 0x1FFC, - 0x1FF4, - 0x1FF6, - 0x1FF7, - 0x210A, - 0x210E, - 0x210F, - 0x2113, - 0x212F, - 0x2134, - 0x2139, - 0x213C, - 0x213D, - 0x2146, - 0x2147, - 0x2148, - 0x2149, - 0x2132, - 0x2183, - 0x2C60, - 0x023A, - 0x023E, - 0x2C67, - 0x2C69, - 0x2C6B, - 0x2C71, - 0x2C72, - 0x2C74, - 0x2C75, - 0x2C77, - 0x2C78, - 0x2C79, - 0x2C7A, - 0x2C7B, - 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, - 0x2CE4, - 0x2CEB, - 0x2CED, - 0x2CF2, - 0x10C7, - 0x10CD, - 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, - 0xA730, - 0xA731, - 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, - 0xA771, - 0xA772, - 0xA773, - 0xA774, - 0xA775, - 0xA776, - 0xA777, - 0xA778, - 0xA779, - 0xA77B, - 0xA77E, - 0xA780, - 0xA782, - 0xA784, - 0xA786, - 0xA78B, - 0xA78E, - 0xA790, - 0xA792, - 0xA794, - 0xA795, - 0xA796, - 0xA798, - 0xA79A, - 0xA79C, - 0xA79E, - 0xA7A0, - 0xA7A2, - 0xA7A4, - 0xA7A6, - 0xA7A8, - 0xA7FA, - 0xAB30, - 0xAB31, - 0xAB32, - 0xAB33, - 0xAB34, - 0xAB35, - 0xAB36, - 0xAB37, - 0xAB38, - 0xAB39, - 0xAB3A, - 0xAB3B, - 0xAB3C, - 0xAB3D, - 0xAB3E, - 0xAB3F, - 0xAB40, - 0xAB41, - 0xAB42, - 0xAB43, - 0xAB44, - 0xAB45, - 0xAB46, - 0xAB47, - 0xAB48, - 0xAB49, - 0xAB4A, - 0xAB4B, - 0xAB4C, - 0xAB4D, - 0xAB4E, - 0xAB4F, - 0xAB50, - 0xAB51, - 0xAB52, - 0xAB53, - 0xAB54, - 0xAB55, - 0xAB56, - 0xAB57, - 0xAB58, - 0xAB59, - 0xAB5A, - 0xAB64, - 0xAB65, - 0xFB00, - 0xFB01, - 0xFB02, - 0xFB03, - 0xFB04, - 0xFB05, - 0xFB06, - 0xFB13, - 0xFB14, - 0xFB15, - 0xFB16, - 0xFB17, - 0x1D41A, - 0x1D41B, - 0x1D41C, - 0x1D41D, - 0x1D41E, - 0x1D41F, - 0x1D420, - 0x1D421, - 0x1D422, - 0x1D423, - 0x1D424, - 0x1D425, - 0x1D426, - 0x1D427, - 0x1D428, - 0x1D429, - 0x1D42A, - 0x1D42B, - 0x1D42C, - 0x1D42D, - 0x1D42E, - 0x1D42F, - 0x1D430, - 0x1D431, - 0x1D432, - 0x1D433, - 0x1D44E, - 0x1D44F, - 0x1D450, - 0x1D451, - 0x1D452, - 0x1D453, - 0x1D454, - 0x1D456, - 0x1D457, - 0x1D458, - 0x1D459, - 0x1D45A, - 0x1D45B, - 0x1D45C, - 0x1D45D, - 0x1D45E, - 0x1D45F, - 0x1D460, - 0x1D461, - 0x1D462, - 0x1D463, - 0x1D464, - 0x1D465, - 0x1D466, - 0x1D467, - 0x1D482, - 0x1D483, - 0x1D484, - 0x1D485, - 0x1D486, - 0x1D487, - 0x1D488, - 0x1D489, - 0x1D48A, - 0x1D48B, - 0x1D48C, - 0x1D48D, - 0x1D48E, - 0x1D48F, - 0x1D490, - 0x1D491, - 0x1D492, - 0x1D493, - 0x1D494, - 0x1D495, - 0x1D496, - 0x1D497, - 0x1D498, - 0x1D499, - 0x1D49A, - 0x1D49B, - 0x1D4B6, - 0x1D4B7, - 0x1D4B8, - 0x1D4B9, - 0x1D4BB, - 0x1D4BD, - 0x1D4BE, - 0x1D4BF, - 0x1D4C0, - 0x1D4C1, - 0x1D4C2, - 0x1D4C3, - 0x1D4C5, - 0x1D4C6, - 0x1D4C7, - 0x1D4C8, - 0x1D4C9, - 0x1D4CA, - 0x1D4CB, - 0x1D4CC, - 0x1D4CD, - 0x1D4CE, - 0x1D4CF, - 0x1D4EA, - 0x1D4EB, - 0x1D4EC, - 0x1D4ED, - 0x1D4EE, - 0x1D4EF, - 0x1D4F0, - 0x1D4F1, - 0x1D4F2, - 0x1D4F3, - 0x1D4F4, - 0x1D4F5, - 0x1D4F6, - 0x1D4F7, - 0x1D4F8, - 0x1D4F9, - 0x1D4FA, - 0x1D4FB, - 0x1D4FC, - 0x1D4FD, - 0x1D4FE, - 0x1D4FF, - 0x1D500, - 0x1D501, - 0x1D502, - 0x1D503, - 0x1D51E, - 0x1D51F, - 0x1D520, - 0x1D521, - 0x1D522, - 0x1D523, - 0x1D524, - 0x1D525, - 0x1D526, - 0x1D527, - 0x1D528, - 0x1D529, - 0x1D52A, - 0x1D52B, - 0x1D52C, - 0x1D52D, - 0x1D52E, - 0x1D52F, - 0x1D530, - 0x1D531, - 0x1D532, - 0x1D533, - 0x1D534, - 0x1D535, - 0x1D536, - 0x1D537, - 0x1D552, - 0x1D553, - 0x1D554, - 0x1D555, - 0x1D556, - 0x1D557, - 0x1D558, - 0x1D559, - 0x1D55A, - 0x1D55B, - 0x1D55C, - 0x1D55D, - 0x1D55E, - 0x1D55F, - 0x1D560, - 0x1D561, - 0x1D562, - 0x1D563, - 0x1D564, - 0x1D565, - 0x1D566, - 0x1D567, - 0x1D568, - 0x1D569, - 0x1D56A, - 0x1D56B, - 0x1D586, - 0x1D587, - 0x1D588, - 0x1D589, - 0x1D58A, - 0x1D58B, - 0x1D58C, - 0x1D58D, - 0x1D58E, - 0x1D58F, - 0x1D590, - 0x1D591, - 0x1D592, - 0x1D593, - 0x1D594, - 0x1D595, - 0x1D596, - 0x1D597, - 0x1D598, - 0x1D599, - 0x1D59A, - 0x1D59B, - 0x1D59C, - 0x1D59D, - 0x1D59E, - 0x1D59F, - 0x1D5BA, - 0x1D5BB, - 0x1D5BC, - 0x1D5BD, - 0x1D5BE, - 0x1D5BF, - 0x1D5C0, - 0x1D5C1, - 0x1D5C2, - 0x1D5C3, - 0x1D5C4, - 0x1D5C5, - 0x1D5C6, - 0x1D5C7, - 0x1D5C8, - 0x1D5C9, - 0x1D5CA, - 0x1D5CB, - 0x1D5CC, - 0x1D5CD, - 0x1D5CE, - 0x1D5CF, - 0x1D5D0, - 0x1D5D1, - 0x1D5D2, - 0x1D5D3, - 0x1D5EE, - 0x1D5EF, - 0x1D5F0, - 0x1D5F1, - 0x1D5F2, - 0x1D5F3, - 0x1D5F4, - 0x1D5F5, - 0x1D5F6, - 0x1D5F7, - 0x1D5F8, - 0x1D5F9, - 0x1D5FA, - 0x1D5FB, - 0x1D5FC, - 0x1D5FD, - 0x1D5FE, - 0x1D5FF, - 0x1D600, - 0x1D601, - 0x1D602, - 0x1D603, - 0x1D604, - 0x1D605, - 0x1D606, - 0x1D607, - 0x1D622, - 0x1D623, - 0x1D624, - 0x1D625, - 0x1D626, - 0x1D627, - 0x1D628, - 0x1D629, - 0x1D62A, - 0x1D62B, - 0x1D62C, - 0x1D62D, - 0x1D62E, - 0x1D62F, - 0x1D630, - 0x1D631, - 0x1D632, - 0x1D633, - 0x1D634, - 0x1D635, - 0x1D636, - 0x1D637, - 0x1D638, - 0x1D639, - 0x1D63A, - 0x1D63B, - 0x1D656, - 0x1D657, - 0x1D658, - 0x1D659, - 0x1D65A, - 0x1D65B, - 0x1D65C, - 0x1D65D, - 0x1D65E, - 0x1D65F, - 0x1D660, - 0x1D661, - 0x1D662, - 0x1D663, - 0x1D664, - 0x1D665, - 0x1D666, - 0x1D667, - 0x1D668, - 0x1D669, - 0x1D66A, - 0x1D66B, - 0x1D66C, - 0x1D66D, - 0x1D66E, - 0x1D66F, - 0x1D68A, - 0x1D68B, - 0x1D68C, - 0x1D68D, - 0x1D68E, - 0x1D68F, - 0x1D690, - 0x1D691, - 0x1D692, - 0x1D693, - 0x1D694, - 0x1D695, - 0x1D696, - 0x1D697, - 0x1D698, - 0x1D699, - 0x1D69A, - 0x1D69B, - 0x1D69C, - 0x1D69D, - 0x1D69E, - 0x1D69F, - 0x1D6A0, - 0x1D6A1, - 0x1D6A2, - 0x1D6A3, - 0x1D6A4, - 0x1D6A5, - 0x1D6C2, - 0x1D6C3, - 0x1D6C4, - 0x1D6C5, - 0x1D6C6, - 0x1D6C7, - 0x1D6C8, - 0x1D6C9, - 0x1D6CA, - 0x1D6CB, - 0x1D6CC, - 0x1D6CD, - 0x1D6CE, - 0x1D6CF, - 0x1D6D0, - 0x1D6D1, - 0x1D6D2, - 0x1D6D3, - 0x1D6D4, - 0x1D6D5, - 0x1D6D6, - 0x1D6D7, - 0x1D6D8, - 0x1D6D9, - 0x1D6DA, - 0x1D6DC, - 0x1D6DD, - 0x1D6DE, - 0x1D6DF, - 0x1D6E0, - 0x1D6E1, - 0x1D6FC, - 0x1D6FD, - 0x1D6FE, - 0x1D6FF, - 0x1D700, - 0x1D701, - 0x1D702, - 0x1D703, - 0x1D704, - 0x1D705, - 0x1D706, - 0x1D707, - 0x1D708, - 0x1D709, - 0x1D70A, - 0x1D70B, - 0x1D70C, - 0x1D70D, - 0x1D70E, - 0x1D70F, - 0x1D710, - 0x1D711, - 0x1D712, - 0x1D713, - 0x1D714, - 0x1D716, - 0x1D717, - 0x1D718, - 0x1D719, - 0x1D71A, - 0x1D71B, - 0x1D736, - 0x1D737, - 0x1D738, - 0x1D739, - 0x1D73A, - 0x1D73B, - 0x1D73C, - 0x1D73D, - 0x1D73E, - 0x1D73F, - 0x1D740, - 0x1D741, - 0x1D742, - 0x1D743, - 0x1D744, - 0x1D745, - 0x1D746, - 0x1D747, - 0x1D748, - 0x1D749, - 0x1D74A, - 0x1D74B, - 0x1D74C, - 0x1D74D, - 0x1D74E, - 0x1D750, - 0x1D751, - 0x1D752, - 0x1D753, - 0x1D754, - 0x1D755, - 0x1D770, - 0x1D771, - 0x1D772, - 0x1D773, - 0x1D774, - 0x1D775, - 0x1D776, - 0x1D777, - 0x1D778, - 0x1D779, - 0x1D77A, - 0x1D77B, - 0x1D77C, - 0x1D77D, - 0x1D77E, - 0x1D77F, - 0x1D780, - 0x1D781, - 0x1D782, - 0x1D783, - 0x1D784, - 0x1D785, - 0x1D786, - 0x1D787, - 0x1D788, - 0x1D78A, - 0x1D78B, - 0x1D78C, - 0x1D78D, - 0x1D78E, - 0x1D78F, - 0x1D7AA, - 0x1D7AB, - 0x1D7AC, - 0x1D7AD, - 0x1D7AE, - 0x1D7AF, - 0x1D7B0, - 0x1D7B1, - 0x1D7B2, - 0x1D7B3, - 0x1D7B4, - 0x1D7B5, - 0x1D7B6, - 0x1D7B7, - 0x1D7B8, - 0x1D7B9, - 0x1D7BA, - 0x1D7BB, - 0x1D7BC, - 0x1D7BD, - 0x1D7BE, - 0x1D7BF, - 0x1D7C0, - 0x1D7C1, - 0x1D7C2, - 0x1D7C4, - 0x1D7C5, - 0x1D7C6, - 0x1D7C7, - 0x1D7C8, - 0x1D7C9, - 0x1D7CB, +static Rune lower1[][2] = { + { 0x00B5, 0x039C }, + { 0x00DF, 0x00DF }, + { 0x00FF, 0x0178 }, + { 0x0101, 0x0100 }, + { 0x0103, 0x0102 }, + { 0x0105, 0x0104 }, + { 0x0107, 0x0106 }, + { 0x0109, 0x0108 }, + { 0x010B, 0x010A }, + { 0x010D, 0x010C }, + { 0x010F, 0x010E }, + { 0x0111, 0x0110 }, + { 0x0113, 0x0112 }, + { 0x0115, 0x0114 }, + { 0x0117, 0x0116 }, + { 0x0119, 0x0118 }, + { 0x011B, 0x011A }, + { 0x011D, 0x011C }, + { 0x011F, 0x011E }, + { 0x0121, 0x0120 }, + { 0x0123, 0x0122 }, + { 0x0125, 0x0124 }, + { 0x0127, 0x0126 }, + { 0x0129, 0x0128 }, + { 0x012B, 0x012A }, + { 0x012D, 0x012C }, + { 0x012F, 0x012E }, + { 0x0131, 0x0049 }, + { 0x0133, 0x0132 }, + { 0x0135, 0x0134 }, + { 0x0137, 0x0136 }, + { 0x0138, 0x0138 }, + { 0x013A, 0x0139 }, + { 0x013C, 0x013B }, + { 0x013E, 0x013D }, + { 0x0140, 0x013F }, + { 0x0142, 0x0141 }, + { 0x0144, 0x0143 }, + { 0x0146, 0x0145 }, + { 0x0148, 0x0147 }, + { 0x0149, 0x0149 }, + { 0x014B, 0x014A }, + { 0x014D, 0x014C }, + { 0x014F, 0x014E }, + { 0x0151, 0x0150 }, + { 0x0153, 0x0152 }, + { 0x0155, 0x0154 }, + { 0x0157, 0x0156 }, + { 0x0159, 0x0158 }, + { 0x015B, 0x015A }, + { 0x015D, 0x015C }, + { 0x015F, 0x015E }, + { 0x0161, 0x0160 }, + { 0x0163, 0x0162 }, + { 0x0165, 0x0164 }, + { 0x0167, 0x0166 }, + { 0x0169, 0x0168 }, + { 0x016B, 0x016A }, + { 0x016D, 0x016C }, + { 0x016F, 0x016E }, + { 0x0171, 0x0170 }, + { 0x0173, 0x0172 }, + { 0x0175, 0x0174 }, + { 0x0177, 0x0176 }, + { 0x017A, 0x0179 }, + { 0x017C, 0x017B }, + { 0x017E, 0x017D }, + { 0x017F, 0x0053 }, + { 0x0180, 0x0243 }, + { 0x0183, 0x0182 }, + { 0x0185, 0x0184 }, + { 0x0188, 0x0187 }, + { 0x018C, 0x018B }, + { 0x018D, 0x018D }, + { 0x0192, 0x0191 }, + { 0x0195, 0x01F6 }, + { 0x0199, 0x0198 }, + { 0x019A, 0x023D }, + { 0x019B, 0x019B }, + { 0x019E, 0x0220 }, + { 0x01A1, 0x01A0 }, + { 0x01A3, 0x01A2 }, + { 0x01A5, 0x01A4 }, + { 0x01A8, 0x01A7 }, + { 0x01AA, 0x01AA }, + { 0x01AB, 0x01AB }, + { 0x01AD, 0x01AC }, + { 0x01B0, 0x01AF }, + { 0x01B4, 0x01B3 }, + { 0x01B6, 0x01B5 }, + { 0x01B9, 0x01B8 }, + { 0x01BA, 0x01BA }, + { 0x01BD, 0x01BC }, + { 0x01BE, 0x01BE }, + { 0x01BF, 0x01F7 }, + { 0x01C6, 0x01C4 }, + { 0x01C9, 0x01C7 }, + { 0x01CC, 0x01CA }, + { 0x01CE, 0x01CD }, + { 0x01D0, 0x01CF }, + { 0x01D2, 0x01D1 }, + { 0x01D4, 0x01D3 }, + { 0x01D6, 0x01D5 }, + { 0x01D8, 0x01D7 }, + { 0x01DA, 0x01D9 }, + { 0x01DC, 0x01DB }, + { 0x01DD, 0x018E }, + { 0x01DF, 0x01DE }, + { 0x01E1, 0x01E0 }, + { 0x01E3, 0x01E2 }, + { 0x01E5, 0x01E4 }, + { 0x01E7, 0x01E6 }, + { 0x01E9, 0x01E8 }, + { 0x01EB, 0x01EA }, + { 0x01ED, 0x01EC }, + { 0x01EF, 0x01EE }, + { 0x01F0, 0x01F0 }, + { 0x01F3, 0x01F1 }, + { 0x01F5, 0x01F4 }, + { 0x01F9, 0x01F8 }, + { 0x01FB, 0x01FA }, + { 0x01FD, 0x01FC }, + { 0x01FF, 0x01FE }, + { 0x0201, 0x0200 }, + { 0x0203, 0x0202 }, + { 0x0205, 0x0204 }, + { 0x0207, 0x0206 }, + { 0x0209, 0x0208 }, + { 0x020B, 0x020A }, + { 0x020D, 0x020C }, + { 0x020F, 0x020E }, + { 0x0211, 0x0210 }, + { 0x0213, 0x0212 }, + { 0x0215, 0x0214 }, + { 0x0217, 0x0216 }, + { 0x0219, 0x0218 }, + { 0x021B, 0x021A }, + { 0x021D, 0x021C }, + { 0x021F, 0x021E }, + { 0x0221, 0x0221 }, + { 0x0223, 0x0222 }, + { 0x0225, 0x0224 }, + { 0x0227, 0x0226 }, + { 0x0229, 0x0228 }, + { 0x022B, 0x022A }, + { 0x022D, 0x022C }, + { 0x022F, 0x022E }, + { 0x0231, 0x0230 }, + { 0x0233, 0x0232 }, + { 0x0234, 0x0234 }, + { 0x0235, 0x0235 }, + { 0x0236, 0x0236 }, + { 0x0237, 0x0237 }, + { 0x0238, 0x0238 }, + { 0x0239, 0x0239 }, + { 0x023C, 0x023B }, + { 0x0242, 0x0241 }, + { 0x0247, 0x0246 }, + { 0x0249, 0x0248 }, + { 0x024B, 0x024A }, + { 0x024D, 0x024C }, + { 0x024F, 0x024E }, + { 0x0250, 0x2C6F }, + { 0x0251, 0x2C6D }, + { 0x0252, 0x2C70 }, + { 0x0253, 0x0181 }, + { 0x0254, 0x0186 }, + { 0x0255, 0x0255 }, + { 0x0258, 0x0258 }, + { 0x0259, 0x018F }, + { 0x025A, 0x025A }, + { 0x025B, 0x0190 }, + { 0x025C, 0xA7AB }, + { 0x025D, 0x025D }, + { 0x025E, 0x025E }, + { 0x025F, 0x025F }, + { 0x0260, 0x0193 }, + { 0x0261, 0xA7AC }, + { 0x0262, 0x0262 }, + { 0x0263, 0x0194 }, + { 0x0264, 0x0264 }, + { 0x0265, 0xA78D }, + { 0x0266, 0xA7AA }, + { 0x0267, 0x0267 }, + { 0x0268, 0x0197 }, + { 0x0269, 0x0196 }, + { 0x026A, 0x026A }, + { 0x026B, 0x2C62 }, + { 0x026C, 0xA7AD }, + { 0x026D, 0x026D }, + { 0x026E, 0x026E }, + { 0x026F, 0x019C }, + { 0x0270, 0x0270 }, + { 0x0271, 0x2C6E }, + { 0x0272, 0x019D }, + { 0x0273, 0x0273 }, + { 0x0274, 0x0274 }, + { 0x0275, 0x019F }, + { 0x0276, 0x0276 }, + { 0x0277, 0x0277 }, + { 0x0278, 0x0278 }, + { 0x0279, 0x0279 }, + { 0x027A, 0x027A }, + { 0x027B, 0x027B }, + { 0x027C, 0x027C }, + { 0x027D, 0x2C64 }, + { 0x027E, 0x027E }, + { 0x027F, 0x027F }, + { 0x0280, 0x01A6 }, + { 0x0281, 0x0281 }, + { 0x0282, 0x0282 }, + { 0x0283, 0x01A9 }, + { 0x0284, 0x0284 }, + { 0x0285, 0x0285 }, + { 0x0286, 0x0286 }, + { 0x0287, 0xA7B1 }, + { 0x0288, 0x01AE }, + { 0x0289, 0x0244 }, + { 0x028C, 0x0245 }, + { 0x028D, 0x028D }, + { 0x028E, 0x028E }, + { 0x028F, 0x028F }, + { 0x0290, 0x0290 }, + { 0x0291, 0x0291 }, + { 0x0292, 0x01B7 }, + { 0x0293, 0x0293 }, + { 0x0295, 0x0295 }, + { 0x0296, 0x0296 }, + { 0x0297, 0x0297 }, + { 0x0298, 0x0298 }, + { 0x0299, 0x0299 }, + { 0x029A, 0x029A }, + { 0x029B, 0x029B }, + { 0x029C, 0x029C }, + { 0x029D, 0x029D }, + { 0x029E, 0xA7B0 }, + { 0x029F, 0x029F }, + { 0x02A0, 0x02A0 }, + { 0x02A1, 0x02A1 }, + { 0x02A2, 0x02A2 }, + { 0x02A3, 0x02A3 }, + { 0x02A4, 0x02A4 }, + { 0x02A5, 0x02A5 }, + { 0x02A6, 0x02A6 }, + { 0x02A7, 0x02A7 }, + { 0x02A8, 0x02A8 }, + { 0x02A9, 0x02A9 }, + { 0x02AA, 0x02AA }, + { 0x02AB, 0x02AB }, + { 0x02AC, 0x02AC }, + { 0x02AD, 0x02AD }, + { 0x02AE, 0x02AE }, + { 0x02AF, 0x02AF }, + { 0x0371, 0x0370 }, + { 0x0373, 0x0372 }, + { 0x0377, 0x0376 }, + { 0x0390, 0x0390 }, + { 0x03AC, 0x0386 }, + { 0x03B0, 0x03B0 }, + { 0x03C2, 0x03A3 }, + { 0x03CC, 0x038C }, + { 0x03D0, 0x0392 }, + { 0x03D1, 0x0398 }, + { 0x03D5, 0x03A6 }, + { 0x03D6, 0x03A0 }, + { 0x03D7, 0x03CF }, + { 0x03D9, 0x03D8 }, + { 0x03DB, 0x03DA }, + { 0x03DD, 0x03DC }, + { 0x03DF, 0x03DE }, + { 0x03E1, 0x03E0 }, + { 0x03E3, 0x03E2 }, + { 0x03E5, 0x03E4 }, + { 0x03E7, 0x03E6 }, + { 0x03E9, 0x03E8 }, + { 0x03EB, 0x03EA }, + { 0x03ED, 0x03EC }, + { 0x03EF, 0x03EE }, + { 0x03F0, 0x039A }, + { 0x03F1, 0x03A1 }, + { 0x03F2, 0x03F9 }, + { 0x03F3, 0x037F }, + { 0x03F5, 0x0395 }, + { 0x03F8, 0x03F7 }, + { 0x03FB, 0x03FA }, + { 0x03FC, 0x03FC }, + { 0x0461, 0x0460 }, + { 0x0463, 0x0462 }, + { 0x0465, 0x0464 }, + { 0x0467, 0x0466 }, + { 0x0469, 0x0468 }, + { 0x046B, 0x046A }, + { 0x046D, 0x046C }, + { 0x046F, 0x046E }, + { 0x0471, 0x0470 }, + { 0x0473, 0x0472 }, + { 0x0475, 0x0474 }, + { 0x0477, 0x0476 }, + { 0x0479, 0x0478 }, + { 0x047B, 0x047A }, + { 0x047D, 0x047C }, + { 0x047F, 0x047E }, + { 0x0481, 0x0480 }, + { 0x048B, 0x048A }, + { 0x048D, 0x048C }, + { 0x048F, 0x048E }, + { 0x0491, 0x0490 }, + { 0x0493, 0x0492 }, + { 0x0495, 0x0494 }, + { 0x0497, 0x0496 }, + { 0x0499, 0x0498 }, + { 0x049B, 0x049A }, + { 0x049D, 0x049C }, + { 0x049F, 0x049E }, + { 0x04A1, 0x04A0 }, + { 0x04A3, 0x04A2 }, + { 0x04A5, 0x04A4 }, + { 0x04A7, 0x04A6 }, + { 0x04A9, 0x04A8 }, + { 0x04AB, 0x04AA }, + { 0x04AD, 0x04AC }, + { 0x04AF, 0x04AE }, + { 0x04B1, 0x04B0 }, + { 0x04B3, 0x04B2 }, + { 0x04B5, 0x04B4 }, + { 0x04B7, 0x04B6 }, + { 0x04B9, 0x04B8 }, + { 0x04BB, 0x04BA }, + { 0x04BD, 0x04BC }, + { 0x04BF, 0x04BE }, + { 0x04C2, 0x04C1 }, + { 0x04C4, 0x04C3 }, + { 0x04C6, 0x04C5 }, + { 0x04C8, 0x04C7 }, + { 0x04CA, 0x04C9 }, + { 0x04CC, 0x04CB }, + { 0x04CE, 0x04CD }, + { 0x04CF, 0x04C0 }, + { 0x04D1, 0x04D0 }, + { 0x04D3, 0x04D2 }, + { 0x04D5, 0x04D4 }, + { 0x04D7, 0x04D6 }, + { 0x04D9, 0x04D8 }, + { 0x04DB, 0x04DA }, + { 0x04DD, 0x04DC }, + { 0x04DF, 0x04DE }, + { 0x04E1, 0x04E0 }, + { 0x04E3, 0x04E2 }, + { 0x04E5, 0x04E4 }, + { 0x04E7, 0x04E6 }, + { 0x04E9, 0x04E8 }, + { 0x04EB, 0x04EA }, + { 0x04ED, 0x04EC }, + { 0x04EF, 0x04EE }, + { 0x04F1, 0x04F0 }, + { 0x04F3, 0x04F2 }, + { 0x04F5, 0x04F4 }, + { 0x04F7, 0x04F6 }, + { 0x04F9, 0x04F8 }, + { 0x04FB, 0x04FA }, + { 0x04FD, 0x04FC }, + { 0x04FF, 0x04FE }, + { 0x0501, 0x0500 }, + { 0x0503, 0x0502 }, + { 0x0505, 0x0504 }, + { 0x0507, 0x0506 }, + { 0x0509, 0x0508 }, + { 0x050B, 0x050A }, + { 0x050D, 0x050C }, + { 0x050F, 0x050E }, + { 0x0511, 0x0510 }, + { 0x0513, 0x0512 }, + { 0x0515, 0x0514 }, + { 0x0517, 0x0516 }, + { 0x0519, 0x0518 }, + { 0x051B, 0x051A }, + { 0x051D, 0x051C }, + { 0x051F, 0x051E }, + { 0x0521, 0x0520 }, + { 0x0523, 0x0522 }, + { 0x0525, 0x0524 }, + { 0x0527, 0x0526 }, + { 0x0529, 0x0528 }, + { 0x052B, 0x052A }, + { 0x052D, 0x052C }, + { 0x052F, 0x052E }, + { 0x0587, 0x0587 }, + { 0x1D00, 0x1D00 }, + { 0x1D01, 0x1D01 }, + { 0x1D02, 0x1D02 }, + { 0x1D03, 0x1D03 }, + { 0x1D04, 0x1D04 }, + { 0x1D05, 0x1D05 }, + { 0x1D06, 0x1D06 }, + { 0x1D07, 0x1D07 }, + { 0x1D08, 0x1D08 }, + { 0x1D09, 0x1D09 }, + { 0x1D0A, 0x1D0A }, + { 0x1D0B, 0x1D0B }, + { 0x1D0C, 0x1D0C }, + { 0x1D0D, 0x1D0D }, + { 0x1D0E, 0x1D0E }, + { 0x1D0F, 0x1D0F }, + { 0x1D10, 0x1D10 }, + { 0x1D11, 0x1D11 }, + { 0x1D12, 0x1D12 }, + { 0x1D13, 0x1D13 }, + { 0x1D14, 0x1D14 }, + { 0x1D15, 0x1D15 }, + { 0x1D16, 0x1D16 }, + { 0x1D17, 0x1D17 }, + { 0x1D18, 0x1D18 }, + { 0x1D19, 0x1D19 }, + { 0x1D1A, 0x1D1A }, + { 0x1D1B, 0x1D1B }, + { 0x1D1C, 0x1D1C }, + { 0x1D1D, 0x1D1D }, + { 0x1D1E, 0x1D1E }, + { 0x1D1F, 0x1D1F }, + { 0x1D20, 0x1D20 }, + { 0x1D21, 0x1D21 }, + { 0x1D22, 0x1D22 }, + { 0x1D23, 0x1D23 }, + { 0x1D24, 0x1D24 }, + { 0x1D25, 0x1D25 }, + { 0x1D26, 0x1D26 }, + { 0x1D27, 0x1D27 }, + { 0x1D28, 0x1D28 }, + { 0x1D29, 0x1D29 }, + { 0x1D2A, 0x1D2A }, + { 0x1D2B, 0x1D2B }, + { 0x1D6B, 0x1D6B }, + { 0x1D6C, 0x1D6C }, + { 0x1D6D, 0x1D6D }, + { 0x1D6E, 0x1D6E }, + { 0x1D6F, 0x1D6F }, + { 0x1D70, 0x1D70 }, + { 0x1D71, 0x1D71 }, + { 0x1D72, 0x1D72 }, + { 0x1D73, 0x1D73 }, + { 0x1D74, 0x1D74 }, + { 0x1D75, 0x1D75 }, + { 0x1D76, 0x1D76 }, + { 0x1D77, 0x1D77 }, + { 0x1D79, 0xA77D }, + { 0x1D7A, 0x1D7A }, + { 0x1D7B, 0x1D7B }, + { 0x1D7C, 0x1D7C }, + { 0x1D7D, 0x2C63 }, + { 0x1D7E, 0x1D7E }, + { 0x1D7F, 0x1D7F }, + { 0x1D80, 0x1D80 }, + { 0x1D81, 0x1D81 }, + { 0x1D82, 0x1D82 }, + { 0x1D83, 0x1D83 }, + { 0x1D84, 0x1D84 }, + { 0x1D85, 0x1D85 }, + { 0x1D86, 0x1D86 }, + { 0x1D87, 0x1D87 }, + { 0x1D88, 0x1D88 }, + { 0x1D89, 0x1D89 }, + { 0x1D8A, 0x1D8A }, + { 0x1D8B, 0x1D8B }, + { 0x1D8C, 0x1D8C }, + { 0x1D8D, 0x1D8D }, + { 0x1D8E, 0x1D8E }, + { 0x1D8F, 0x1D8F }, + { 0x1D90, 0x1D90 }, + { 0x1D91, 0x1D91 }, + { 0x1D92, 0x1D92 }, + { 0x1D93, 0x1D93 }, + { 0x1D94, 0x1D94 }, + { 0x1D95, 0x1D95 }, + { 0x1D96, 0x1D96 }, + { 0x1D97, 0x1D97 }, + { 0x1D98, 0x1D98 }, + { 0x1D99, 0x1D99 }, + { 0x1D9A, 0x1D9A }, + { 0x1E01, 0x1E00 }, + { 0x1E03, 0x1E02 }, + { 0x1E05, 0x1E04 }, + { 0x1E07, 0x1E06 }, + { 0x1E09, 0x1E08 }, + { 0x1E0B, 0x1E0A }, + { 0x1E0D, 0x1E0C }, + { 0x1E0F, 0x1E0E }, + { 0x1E11, 0x1E10 }, + { 0x1E13, 0x1E12 }, + { 0x1E15, 0x1E14 }, + { 0x1E17, 0x1E16 }, + { 0x1E19, 0x1E18 }, + { 0x1E1B, 0x1E1A }, + { 0x1E1D, 0x1E1C }, + { 0x1E1F, 0x1E1E }, + { 0x1E21, 0x1E20 }, + { 0x1E23, 0x1E22 }, + { 0x1E25, 0x1E24 }, + { 0x1E27, 0x1E26 }, + { 0x1E29, 0x1E28 }, + { 0x1E2B, 0x1E2A }, + { 0x1E2D, 0x1E2C }, + { 0x1E2F, 0x1E2E }, + { 0x1E31, 0x1E30 }, + { 0x1E33, 0x1E32 }, + { 0x1E35, 0x1E34 }, + { 0x1E37, 0x1E36 }, + { 0x1E39, 0x1E38 }, + { 0x1E3B, 0x1E3A }, + { 0x1E3D, 0x1E3C }, + { 0x1E3F, 0x1E3E }, + { 0x1E41, 0x1E40 }, + { 0x1E43, 0x1E42 }, + { 0x1E45, 0x1E44 }, + { 0x1E47, 0x1E46 }, + { 0x1E49, 0x1E48 }, + { 0x1E4B, 0x1E4A }, + { 0x1E4D, 0x1E4C }, + { 0x1E4F, 0x1E4E }, + { 0x1E51, 0x1E50 }, + { 0x1E53, 0x1E52 }, + { 0x1E55, 0x1E54 }, + { 0x1E57, 0x1E56 }, + { 0x1E59, 0x1E58 }, + { 0x1E5B, 0x1E5A }, + { 0x1E5D, 0x1E5C }, + { 0x1E5F, 0x1E5E }, + { 0x1E61, 0x1E60 }, + { 0x1E63, 0x1E62 }, + { 0x1E65, 0x1E64 }, + { 0x1E67, 0x1E66 }, + { 0x1E69, 0x1E68 }, + { 0x1E6B, 0x1E6A }, + { 0x1E6D, 0x1E6C }, + { 0x1E6F, 0x1E6E }, + { 0x1E71, 0x1E70 }, + { 0x1E73, 0x1E72 }, + { 0x1E75, 0x1E74 }, + { 0x1E77, 0x1E76 }, + { 0x1E79, 0x1E78 }, + { 0x1E7B, 0x1E7A }, + { 0x1E7D, 0x1E7C }, + { 0x1E7F, 0x1E7E }, + { 0x1E81, 0x1E80 }, + { 0x1E83, 0x1E82 }, + { 0x1E85, 0x1E84 }, + { 0x1E87, 0x1E86 }, + { 0x1E89, 0x1E88 }, + { 0x1E8B, 0x1E8A }, + { 0x1E8D, 0x1E8C }, + { 0x1E8F, 0x1E8E }, + { 0x1E91, 0x1E90 }, + { 0x1E93, 0x1E92 }, + { 0x1E95, 0x1E94 }, + { 0x1E96, 0x1E96 }, + { 0x1E97, 0x1E97 }, + { 0x1E98, 0x1E98 }, + { 0x1E99, 0x1E99 }, + { 0x1E9A, 0x1E9A }, + { 0x1E9B, 0x1E60 }, + { 0x1E9C, 0x1E9C }, + { 0x1E9D, 0x1E9D }, + { 0x1E9F, 0x1E9F }, + { 0x1EA1, 0x1EA0 }, + { 0x1EA3, 0x1EA2 }, + { 0x1EA5, 0x1EA4 }, + { 0x1EA7, 0x1EA6 }, + { 0x1EA9, 0x1EA8 }, + { 0x1EAB, 0x1EAA }, + { 0x1EAD, 0x1EAC }, + { 0x1EAF, 0x1EAE }, + { 0x1EB1, 0x1EB0 }, + { 0x1EB3, 0x1EB2 }, + { 0x1EB5, 0x1EB4 }, + { 0x1EB7, 0x1EB6 }, + { 0x1EB9, 0x1EB8 }, + { 0x1EBB, 0x1EBA }, + { 0x1EBD, 0x1EBC }, + { 0x1EBF, 0x1EBE }, + { 0x1EC1, 0x1EC0 }, + { 0x1EC3, 0x1EC2 }, + { 0x1EC5, 0x1EC4 }, + { 0x1EC7, 0x1EC6 }, + { 0x1EC9, 0x1EC8 }, + { 0x1ECB, 0x1ECA }, + { 0x1ECD, 0x1ECC }, + { 0x1ECF, 0x1ECE }, + { 0x1ED1, 0x1ED0 }, + { 0x1ED3, 0x1ED2 }, + { 0x1ED5, 0x1ED4 }, + { 0x1ED7, 0x1ED6 }, + { 0x1ED9, 0x1ED8 }, + { 0x1EDB, 0x1EDA }, + { 0x1EDD, 0x1EDC }, + { 0x1EDF, 0x1EDE }, + { 0x1EE1, 0x1EE0 }, + { 0x1EE3, 0x1EE2 }, + { 0x1EE5, 0x1EE4 }, + { 0x1EE7, 0x1EE6 }, + { 0x1EE9, 0x1EE8 }, + { 0x1EEB, 0x1EEA }, + { 0x1EED, 0x1EEC }, + { 0x1EEF, 0x1EEE }, + { 0x1EF1, 0x1EF0 }, + { 0x1EF3, 0x1EF2 }, + { 0x1EF5, 0x1EF4 }, + { 0x1EF7, 0x1EF6 }, + { 0x1EF9, 0x1EF8 }, + { 0x1EFB, 0x1EFA }, + { 0x1EFD, 0x1EFC }, + { 0x1EFF, 0x1EFE }, + { 0x1F50, 0x1F50 }, + { 0x1F51, 0x1F59 }, + { 0x1F52, 0x1F52 }, + { 0x1F53, 0x1F5B }, + { 0x1F54, 0x1F54 }, + { 0x1F55, 0x1F5D }, + { 0x1F56, 0x1F56 }, + { 0x1F57, 0x1F5F }, + { 0x1FB2, 0x1FB2 }, + { 0x1FB3, 0x1FBC }, + { 0x1FB4, 0x1FB4 }, + { 0x1FB6, 0x1FB6 }, + { 0x1FB7, 0x1FB7 }, + { 0x1FBE, 0x0399 }, + { 0x1FC2, 0x1FC2 }, + { 0x1FC3, 0x1FCC }, + { 0x1FC4, 0x1FC4 }, + { 0x1FC6, 0x1FC6 }, + { 0x1FC7, 0x1FC7 }, + { 0x1FD2, 0x1FD2 }, + { 0x1FD3, 0x1FD3 }, + { 0x1FD6, 0x1FD6 }, + { 0x1FD7, 0x1FD7 }, + { 0x1FE2, 0x1FE2 }, + { 0x1FE3, 0x1FE3 }, + { 0x1FE4, 0x1FE4 }, + { 0x1FE5, 0x1FEC }, + { 0x1FE6, 0x1FE6 }, + { 0x1FE7, 0x1FE7 }, + { 0x1FF2, 0x1FF2 }, + { 0x1FF3, 0x1FFC }, + { 0x1FF4, 0x1FF4 }, + { 0x1FF6, 0x1FF6 }, + { 0x1FF7, 0x1FF7 }, + { 0x210A, 0x210A }, + { 0x210E, 0x210E }, + { 0x210F, 0x210F }, + { 0x2113, 0x2113 }, + { 0x212F, 0x212F }, + { 0x2134, 0x2134 }, + { 0x2139, 0x2139 }, + { 0x213C, 0x213C }, + { 0x213D, 0x213D }, + { 0x2146, 0x2146 }, + { 0x2147, 0x2147 }, + { 0x2148, 0x2148 }, + { 0x2149, 0x2149 }, + { 0x214E, 0x2132 }, + { 0x2184, 0x2183 }, + { 0x2C61, 0x2C60 }, + { 0x2C65, 0x023A }, + { 0x2C66, 0x023E }, + { 0x2C68, 0x2C67 }, + { 0x2C6A, 0x2C69 }, + { 0x2C6C, 0x2C6B }, + { 0x2C71, 0x2C71 }, + { 0x2C73, 0x2C72 }, + { 0x2C74, 0x2C74 }, + { 0x2C76, 0x2C75 }, + { 0x2C77, 0x2C77 }, + { 0x2C78, 0x2C78 }, + { 0x2C79, 0x2C79 }, + { 0x2C7A, 0x2C7A }, + { 0x2C7B, 0x2C7B }, + { 0x2C81, 0x2C80 }, + { 0x2C83, 0x2C82 }, + { 0x2C85, 0x2C84 }, + { 0x2C87, 0x2C86 }, + { 0x2C89, 0x2C88 }, + { 0x2C8B, 0x2C8A }, + { 0x2C8D, 0x2C8C }, + { 0x2C8F, 0x2C8E }, + { 0x2C91, 0x2C90 }, + { 0x2C93, 0x2C92 }, + { 0x2C95, 0x2C94 }, + { 0x2C97, 0x2C96 }, + { 0x2C99, 0x2C98 }, + { 0x2C9B, 0x2C9A }, + { 0x2C9D, 0x2C9C }, + { 0x2C9F, 0x2C9E }, + { 0x2CA1, 0x2CA0 }, + { 0x2CA3, 0x2CA2 }, + { 0x2CA5, 0x2CA4 }, + { 0x2CA7, 0x2CA6 }, + { 0x2CA9, 0x2CA8 }, + { 0x2CAB, 0x2CAA }, + { 0x2CAD, 0x2CAC }, + { 0x2CAF, 0x2CAE }, + { 0x2CB1, 0x2CB0 }, + { 0x2CB3, 0x2CB2 }, + { 0x2CB5, 0x2CB4 }, + { 0x2CB7, 0x2CB6 }, + { 0x2CB9, 0x2CB8 }, + { 0x2CBB, 0x2CBA }, + { 0x2CBD, 0x2CBC }, + { 0x2CBF, 0x2CBE }, + { 0x2CC1, 0x2CC0 }, + { 0x2CC3, 0x2CC2 }, + { 0x2CC5, 0x2CC4 }, + { 0x2CC7, 0x2CC6 }, + { 0x2CC9, 0x2CC8 }, + { 0x2CCB, 0x2CCA }, + { 0x2CCD, 0x2CCC }, + { 0x2CCF, 0x2CCE }, + { 0x2CD1, 0x2CD0 }, + { 0x2CD3, 0x2CD2 }, + { 0x2CD5, 0x2CD4 }, + { 0x2CD7, 0x2CD6 }, + { 0x2CD9, 0x2CD8 }, + { 0x2CDB, 0x2CDA }, + { 0x2CDD, 0x2CDC }, + { 0x2CDF, 0x2CDE }, + { 0x2CE1, 0x2CE0 }, + { 0x2CE3, 0x2CE2 }, + { 0x2CE4, 0x2CE4 }, + { 0x2CEC, 0x2CEB }, + { 0x2CEE, 0x2CED }, + { 0x2CF3, 0x2CF2 }, + { 0x2D27, 0x10C7 }, + { 0x2D2D, 0x10CD }, + { 0xA641, 0xA640 }, + { 0xA643, 0xA642 }, + { 0xA645, 0xA644 }, + { 0xA647, 0xA646 }, + { 0xA649, 0xA648 }, + { 0xA64B, 0xA64A }, + { 0xA64D, 0xA64C }, + { 0xA64F, 0xA64E }, + { 0xA651, 0xA650 }, + { 0xA653, 0xA652 }, + { 0xA655, 0xA654 }, + { 0xA657, 0xA656 }, + { 0xA659, 0xA658 }, + { 0xA65B, 0xA65A }, + { 0xA65D, 0xA65C }, + { 0xA65F, 0xA65E }, + { 0xA661, 0xA660 }, + { 0xA663, 0xA662 }, + { 0xA665, 0xA664 }, + { 0xA667, 0xA666 }, + { 0xA669, 0xA668 }, + { 0xA66B, 0xA66A }, + { 0xA66D, 0xA66C }, + { 0xA681, 0xA680 }, + { 0xA683, 0xA682 }, + { 0xA685, 0xA684 }, + { 0xA687, 0xA686 }, + { 0xA689, 0xA688 }, + { 0xA68B, 0xA68A }, + { 0xA68D, 0xA68C }, + { 0xA68F, 0xA68E }, + { 0xA691, 0xA690 }, + { 0xA693, 0xA692 }, + { 0xA695, 0xA694 }, + { 0xA697, 0xA696 }, + { 0xA699, 0xA698 }, + { 0xA69B, 0xA69A }, + { 0xA723, 0xA722 }, + { 0xA725, 0xA724 }, + { 0xA727, 0xA726 }, + { 0xA729, 0xA728 }, + { 0xA72B, 0xA72A }, + { 0xA72D, 0xA72C }, + { 0xA72F, 0xA72E }, + { 0xA730, 0xA730 }, + { 0xA731, 0xA731 }, + { 0xA733, 0xA732 }, + { 0xA735, 0xA734 }, + { 0xA737, 0xA736 }, + { 0xA739, 0xA738 }, + { 0xA73B, 0xA73A }, + { 0xA73D, 0xA73C }, + { 0xA73F, 0xA73E }, + { 0xA741, 0xA740 }, + { 0xA743, 0xA742 }, + { 0xA745, 0xA744 }, + { 0xA747, 0xA746 }, + { 0xA749, 0xA748 }, + { 0xA74B, 0xA74A }, + { 0xA74D, 0xA74C }, + { 0xA74F, 0xA74E }, + { 0xA751, 0xA750 }, + { 0xA753, 0xA752 }, + { 0xA755, 0xA754 }, + { 0xA757, 0xA756 }, + { 0xA759, 0xA758 }, + { 0xA75B, 0xA75A }, + { 0xA75D, 0xA75C }, + { 0xA75F, 0xA75E }, + { 0xA761, 0xA760 }, + { 0xA763, 0xA762 }, + { 0xA765, 0xA764 }, + { 0xA767, 0xA766 }, + { 0xA769, 0xA768 }, + { 0xA76B, 0xA76A }, + { 0xA76D, 0xA76C }, + { 0xA76F, 0xA76E }, + { 0xA771, 0xA771 }, + { 0xA772, 0xA772 }, + { 0xA773, 0xA773 }, + { 0xA774, 0xA774 }, + { 0xA775, 0xA775 }, + { 0xA776, 0xA776 }, + { 0xA777, 0xA777 }, + { 0xA778, 0xA778 }, + { 0xA77A, 0xA779 }, + { 0xA77C, 0xA77B }, + { 0xA77F, 0xA77E }, + { 0xA781, 0xA780 }, + { 0xA783, 0xA782 }, + { 0xA785, 0xA784 }, + { 0xA787, 0xA786 }, + { 0xA78C, 0xA78B }, + { 0xA78E, 0xA78E }, + { 0xA791, 0xA790 }, + { 0xA793, 0xA792 }, + { 0xA794, 0xA794 }, + { 0xA795, 0xA795 }, + { 0xA797, 0xA796 }, + { 0xA799, 0xA798 }, + { 0xA79B, 0xA79A }, + { 0xA79D, 0xA79C }, + { 0xA79F, 0xA79E }, + { 0xA7A1, 0xA7A0 }, + { 0xA7A3, 0xA7A2 }, + { 0xA7A5, 0xA7A4 }, + { 0xA7A7, 0xA7A6 }, + { 0xA7A9, 0xA7A8 }, + { 0xA7FA, 0xA7FA }, + { 0xAB30, 0xAB30 }, + { 0xAB31, 0xAB31 }, + { 0xAB32, 0xAB32 }, + { 0xAB33, 0xAB33 }, + { 0xAB34, 0xAB34 }, + { 0xAB35, 0xAB35 }, + { 0xAB36, 0xAB36 }, + { 0xAB37, 0xAB37 }, + { 0xAB38, 0xAB38 }, + { 0xAB39, 0xAB39 }, + { 0xAB3A, 0xAB3A }, + { 0xAB3B, 0xAB3B }, + { 0xAB3C, 0xAB3C }, + { 0xAB3D, 0xAB3D }, + { 0xAB3E, 0xAB3E }, + { 0xAB3F, 0xAB3F }, + { 0xAB40, 0xAB40 }, + { 0xAB41, 0xAB41 }, + { 0xAB42, 0xAB42 }, + { 0xAB43, 0xAB43 }, + { 0xAB44, 0xAB44 }, + { 0xAB45, 0xAB45 }, + { 0xAB46, 0xAB46 }, + { 0xAB47, 0xAB47 }, + { 0xAB48, 0xAB48 }, + { 0xAB49, 0xAB49 }, + { 0xAB4A, 0xAB4A }, + { 0xAB4B, 0xAB4B }, + { 0xAB4C, 0xAB4C }, + { 0xAB4D, 0xAB4D }, + { 0xAB4E, 0xAB4E }, + { 0xAB4F, 0xAB4F }, + { 0xAB50, 0xAB50 }, + { 0xAB51, 0xAB51 }, + { 0xAB52, 0xAB52 }, + { 0xAB53, 0xAB53 }, + { 0xAB54, 0xAB54 }, + { 0xAB55, 0xAB55 }, + { 0xAB56, 0xAB56 }, + { 0xAB57, 0xAB57 }, + { 0xAB58, 0xAB58 }, + { 0xAB59, 0xAB59 }, + { 0xAB5A, 0xAB5A }, + { 0xAB64, 0xAB64 }, + { 0xAB65, 0xAB65 }, + { 0xFB00, 0xFB00 }, + { 0xFB01, 0xFB01 }, + { 0xFB02, 0xFB02 }, + { 0xFB03, 0xFB03 }, + { 0xFB04, 0xFB04 }, + { 0xFB05, 0xFB05 }, + { 0xFB06, 0xFB06 }, + { 0xFB13, 0xFB13 }, + { 0xFB14, 0xFB14 }, + { 0xFB15, 0xFB15 }, + { 0xFB16, 0xFB16 }, + { 0xFB17, 0xFB17 }, + { 0x1D41A, 0x1D41A }, + { 0x1D41B, 0x1D41B }, + { 0x1D41C, 0x1D41C }, + { 0x1D41D, 0x1D41D }, + { 0x1D41E, 0x1D41E }, + { 0x1D41F, 0x1D41F }, + { 0x1D420, 0x1D420 }, + { 0x1D421, 0x1D421 }, + { 0x1D422, 0x1D422 }, + { 0x1D423, 0x1D423 }, + { 0x1D424, 0x1D424 }, + { 0x1D425, 0x1D425 }, + { 0x1D426, 0x1D426 }, + { 0x1D427, 0x1D427 }, + { 0x1D428, 0x1D428 }, + { 0x1D429, 0x1D429 }, + { 0x1D42A, 0x1D42A }, + { 0x1D42B, 0x1D42B }, + { 0x1D42C, 0x1D42C }, + { 0x1D42D, 0x1D42D }, + { 0x1D42E, 0x1D42E }, + { 0x1D42F, 0x1D42F }, + { 0x1D430, 0x1D430 }, + { 0x1D431, 0x1D431 }, + { 0x1D432, 0x1D432 }, + { 0x1D433, 0x1D433 }, + { 0x1D44E, 0x1D44E }, + { 0x1D44F, 0x1D44F }, + { 0x1D450, 0x1D450 }, + { 0x1D451, 0x1D451 }, + { 0x1D452, 0x1D452 }, + { 0x1D453, 0x1D453 }, + { 0x1D454, 0x1D454 }, + { 0x1D456, 0x1D456 }, + { 0x1D457, 0x1D457 }, + { 0x1D458, 0x1D458 }, + { 0x1D459, 0x1D459 }, + { 0x1D45A, 0x1D45A }, + { 0x1D45B, 0x1D45B }, + { 0x1D45C, 0x1D45C }, + { 0x1D45D, 0x1D45D }, + { 0x1D45E, 0x1D45E }, + { 0x1D45F, 0x1D45F }, + { 0x1D460, 0x1D460 }, + { 0x1D461, 0x1D461 }, + { 0x1D462, 0x1D462 }, + { 0x1D463, 0x1D463 }, + { 0x1D464, 0x1D464 }, + { 0x1D465, 0x1D465 }, + { 0x1D466, 0x1D466 }, + { 0x1D467, 0x1D467 }, + { 0x1D482, 0x1D482 }, + { 0x1D483, 0x1D483 }, + { 0x1D484, 0x1D484 }, + { 0x1D485, 0x1D485 }, + { 0x1D486, 0x1D486 }, + { 0x1D487, 0x1D487 }, + { 0x1D488, 0x1D488 }, + { 0x1D489, 0x1D489 }, + { 0x1D48A, 0x1D48A }, + { 0x1D48B, 0x1D48B }, + { 0x1D48C, 0x1D48C }, + { 0x1D48D, 0x1D48D }, + { 0x1D48E, 0x1D48E }, + { 0x1D48F, 0x1D48F }, + { 0x1D490, 0x1D490 }, + { 0x1D491, 0x1D491 }, + { 0x1D492, 0x1D492 }, + { 0x1D493, 0x1D493 }, + { 0x1D494, 0x1D494 }, + { 0x1D495, 0x1D495 }, + { 0x1D496, 0x1D496 }, + { 0x1D497, 0x1D497 }, + { 0x1D498, 0x1D498 }, + { 0x1D499, 0x1D499 }, + { 0x1D49A, 0x1D49A }, + { 0x1D49B, 0x1D49B }, + { 0x1D4B6, 0x1D4B6 }, + { 0x1D4B7, 0x1D4B7 }, + { 0x1D4B8, 0x1D4B8 }, + { 0x1D4B9, 0x1D4B9 }, + { 0x1D4BB, 0x1D4BB }, + { 0x1D4BD, 0x1D4BD }, + { 0x1D4BE, 0x1D4BE }, + { 0x1D4BF, 0x1D4BF }, + { 0x1D4C0, 0x1D4C0 }, + { 0x1D4C1, 0x1D4C1 }, + { 0x1D4C2, 0x1D4C2 }, + { 0x1D4C3, 0x1D4C3 }, + { 0x1D4C5, 0x1D4C5 }, + { 0x1D4C6, 0x1D4C6 }, + { 0x1D4C7, 0x1D4C7 }, + { 0x1D4C8, 0x1D4C8 }, + { 0x1D4C9, 0x1D4C9 }, + { 0x1D4CA, 0x1D4CA }, + { 0x1D4CB, 0x1D4CB }, + { 0x1D4CC, 0x1D4CC }, + { 0x1D4CD, 0x1D4CD }, + { 0x1D4CE, 0x1D4CE }, + { 0x1D4CF, 0x1D4CF }, + { 0x1D4EA, 0x1D4EA }, + { 0x1D4EB, 0x1D4EB }, + { 0x1D4EC, 0x1D4EC }, + { 0x1D4ED, 0x1D4ED }, + { 0x1D4EE, 0x1D4EE }, + { 0x1D4EF, 0x1D4EF }, + { 0x1D4F0, 0x1D4F0 }, + { 0x1D4F1, 0x1D4F1 }, + { 0x1D4F2, 0x1D4F2 }, + { 0x1D4F3, 0x1D4F3 }, + { 0x1D4F4, 0x1D4F4 }, + { 0x1D4F5, 0x1D4F5 }, + { 0x1D4F6, 0x1D4F6 }, + { 0x1D4F7, 0x1D4F7 }, + { 0x1D4F8, 0x1D4F8 }, + { 0x1D4F9, 0x1D4F9 }, + { 0x1D4FA, 0x1D4FA }, + { 0x1D4FB, 0x1D4FB }, + { 0x1D4FC, 0x1D4FC }, + { 0x1D4FD, 0x1D4FD }, + { 0x1D4FE, 0x1D4FE }, + { 0x1D4FF, 0x1D4FF }, + { 0x1D500, 0x1D500 }, + { 0x1D501, 0x1D501 }, + { 0x1D502, 0x1D502 }, + { 0x1D503, 0x1D503 }, + { 0x1D51E, 0x1D51E }, + { 0x1D51F, 0x1D51F }, + { 0x1D520, 0x1D520 }, + { 0x1D521, 0x1D521 }, + { 0x1D522, 0x1D522 }, + { 0x1D523, 0x1D523 }, + { 0x1D524, 0x1D524 }, + { 0x1D525, 0x1D525 }, + { 0x1D526, 0x1D526 }, + { 0x1D527, 0x1D527 }, + { 0x1D528, 0x1D528 }, + { 0x1D529, 0x1D529 }, + { 0x1D52A, 0x1D52A }, + { 0x1D52B, 0x1D52B }, + { 0x1D52C, 0x1D52C }, + { 0x1D52D, 0x1D52D }, + { 0x1D52E, 0x1D52E }, + { 0x1D52F, 0x1D52F }, + { 0x1D530, 0x1D530 }, + { 0x1D531, 0x1D531 }, + { 0x1D532, 0x1D532 }, + { 0x1D533, 0x1D533 }, + { 0x1D534, 0x1D534 }, + { 0x1D535, 0x1D535 }, + { 0x1D536, 0x1D536 }, + { 0x1D537, 0x1D537 }, + { 0x1D552, 0x1D552 }, + { 0x1D553, 0x1D553 }, + { 0x1D554, 0x1D554 }, + { 0x1D555, 0x1D555 }, + { 0x1D556, 0x1D556 }, + { 0x1D557, 0x1D557 }, + { 0x1D558, 0x1D558 }, + { 0x1D559, 0x1D559 }, + { 0x1D55A, 0x1D55A }, + { 0x1D55B, 0x1D55B }, + { 0x1D55C, 0x1D55C }, + { 0x1D55D, 0x1D55D }, + { 0x1D55E, 0x1D55E }, + { 0x1D55F, 0x1D55F }, + { 0x1D560, 0x1D560 }, + { 0x1D561, 0x1D561 }, + { 0x1D562, 0x1D562 }, + { 0x1D563, 0x1D563 }, + { 0x1D564, 0x1D564 }, + { 0x1D565, 0x1D565 }, + { 0x1D566, 0x1D566 }, + { 0x1D567, 0x1D567 }, + { 0x1D568, 0x1D568 }, + { 0x1D569, 0x1D569 }, + { 0x1D56A, 0x1D56A }, + { 0x1D56B, 0x1D56B }, + { 0x1D586, 0x1D586 }, + { 0x1D587, 0x1D587 }, + { 0x1D588, 0x1D588 }, + { 0x1D589, 0x1D589 }, + { 0x1D58A, 0x1D58A }, + { 0x1D58B, 0x1D58B }, + { 0x1D58C, 0x1D58C }, + { 0x1D58D, 0x1D58D }, + { 0x1D58E, 0x1D58E }, + { 0x1D58F, 0x1D58F }, + { 0x1D590, 0x1D590 }, + { 0x1D591, 0x1D591 }, + { 0x1D592, 0x1D592 }, + { 0x1D593, 0x1D593 }, + { 0x1D594, 0x1D594 }, + { 0x1D595, 0x1D595 }, + { 0x1D596, 0x1D596 }, + { 0x1D597, 0x1D597 }, + { 0x1D598, 0x1D598 }, + { 0x1D599, 0x1D599 }, + { 0x1D59A, 0x1D59A }, + { 0x1D59B, 0x1D59B }, + { 0x1D59C, 0x1D59C }, + { 0x1D59D, 0x1D59D }, + { 0x1D59E, 0x1D59E }, + { 0x1D59F, 0x1D59F }, + { 0x1D5BA, 0x1D5BA }, + { 0x1D5BB, 0x1D5BB }, + { 0x1D5BC, 0x1D5BC }, + { 0x1D5BD, 0x1D5BD }, + { 0x1D5BE, 0x1D5BE }, + { 0x1D5BF, 0x1D5BF }, + { 0x1D5C0, 0x1D5C0 }, + { 0x1D5C1, 0x1D5C1 }, + { 0x1D5C2, 0x1D5C2 }, + { 0x1D5C3, 0x1D5C3 }, + { 0x1D5C4, 0x1D5C4 }, + { 0x1D5C5, 0x1D5C5 }, + { 0x1D5C6, 0x1D5C6 }, + { 0x1D5C7, 0x1D5C7 }, + { 0x1D5C8, 0x1D5C8 }, + { 0x1D5C9, 0x1D5C9 }, + { 0x1D5CA, 0x1D5CA }, + { 0x1D5CB, 0x1D5CB }, + { 0x1D5CC, 0x1D5CC }, + { 0x1D5CD, 0x1D5CD }, + { 0x1D5CE, 0x1D5CE }, + { 0x1D5CF, 0x1D5CF }, + { 0x1D5D0, 0x1D5D0 }, + { 0x1D5D1, 0x1D5D1 }, + { 0x1D5D2, 0x1D5D2 }, + { 0x1D5D3, 0x1D5D3 }, + { 0x1D5EE, 0x1D5EE }, + { 0x1D5EF, 0x1D5EF }, + { 0x1D5F0, 0x1D5F0 }, + { 0x1D5F1, 0x1D5F1 }, + { 0x1D5F2, 0x1D5F2 }, + { 0x1D5F3, 0x1D5F3 }, + { 0x1D5F4, 0x1D5F4 }, + { 0x1D5F5, 0x1D5F5 }, + { 0x1D5F6, 0x1D5F6 }, + { 0x1D5F7, 0x1D5F7 }, + { 0x1D5F8, 0x1D5F8 }, + { 0x1D5F9, 0x1D5F9 }, + { 0x1D5FA, 0x1D5FA }, + { 0x1D5FB, 0x1D5FB }, + { 0x1D5FC, 0x1D5FC }, + { 0x1D5FD, 0x1D5FD }, + { 0x1D5FE, 0x1D5FE }, + { 0x1D5FF, 0x1D5FF }, + { 0x1D600, 0x1D600 }, + { 0x1D601, 0x1D601 }, + { 0x1D602, 0x1D602 }, + { 0x1D603, 0x1D603 }, + { 0x1D604, 0x1D604 }, + { 0x1D605, 0x1D605 }, + { 0x1D606, 0x1D606 }, + { 0x1D607, 0x1D607 }, + { 0x1D622, 0x1D622 }, + { 0x1D623, 0x1D623 }, + { 0x1D624, 0x1D624 }, + { 0x1D625, 0x1D625 }, + { 0x1D626, 0x1D626 }, + { 0x1D627, 0x1D627 }, + { 0x1D628, 0x1D628 }, + { 0x1D629, 0x1D629 }, + { 0x1D62A, 0x1D62A }, + { 0x1D62B, 0x1D62B }, + { 0x1D62C, 0x1D62C }, + { 0x1D62D, 0x1D62D }, + { 0x1D62E, 0x1D62E }, + { 0x1D62F, 0x1D62F }, + { 0x1D630, 0x1D630 }, + { 0x1D631, 0x1D631 }, + { 0x1D632, 0x1D632 }, + { 0x1D633, 0x1D633 }, + { 0x1D634, 0x1D634 }, + { 0x1D635, 0x1D635 }, + { 0x1D636, 0x1D636 }, + { 0x1D637, 0x1D637 }, + { 0x1D638, 0x1D638 }, + { 0x1D639, 0x1D639 }, + { 0x1D63A, 0x1D63A }, + { 0x1D63B, 0x1D63B }, + { 0x1D656, 0x1D656 }, + { 0x1D657, 0x1D657 }, + { 0x1D658, 0x1D658 }, + { 0x1D659, 0x1D659 }, + { 0x1D65A, 0x1D65A }, + { 0x1D65B, 0x1D65B }, + { 0x1D65C, 0x1D65C }, + { 0x1D65D, 0x1D65D }, + { 0x1D65E, 0x1D65E }, + { 0x1D65F, 0x1D65F }, + { 0x1D660, 0x1D660 }, + { 0x1D661, 0x1D661 }, + { 0x1D662, 0x1D662 }, + { 0x1D663, 0x1D663 }, + { 0x1D664, 0x1D664 }, + { 0x1D665, 0x1D665 }, + { 0x1D666, 0x1D666 }, + { 0x1D667, 0x1D667 }, + { 0x1D668, 0x1D668 }, + { 0x1D669, 0x1D669 }, + { 0x1D66A, 0x1D66A }, + { 0x1D66B, 0x1D66B }, + { 0x1D66C, 0x1D66C }, + { 0x1D66D, 0x1D66D }, + { 0x1D66E, 0x1D66E }, + { 0x1D66F, 0x1D66F }, + { 0x1D68A, 0x1D68A }, + { 0x1D68B, 0x1D68B }, + { 0x1D68C, 0x1D68C }, + { 0x1D68D, 0x1D68D }, + { 0x1D68E, 0x1D68E }, + { 0x1D68F, 0x1D68F }, + { 0x1D690, 0x1D690 }, + { 0x1D691, 0x1D691 }, + { 0x1D692, 0x1D692 }, + { 0x1D693, 0x1D693 }, + { 0x1D694, 0x1D694 }, + { 0x1D695, 0x1D695 }, + { 0x1D696, 0x1D696 }, + { 0x1D697, 0x1D697 }, + { 0x1D698, 0x1D698 }, + { 0x1D699, 0x1D699 }, + { 0x1D69A, 0x1D69A }, + { 0x1D69B, 0x1D69B }, + { 0x1D69C, 0x1D69C }, + { 0x1D69D, 0x1D69D }, + { 0x1D69E, 0x1D69E }, + { 0x1D69F, 0x1D69F }, + { 0x1D6A0, 0x1D6A0 }, + { 0x1D6A1, 0x1D6A1 }, + { 0x1D6A2, 0x1D6A2 }, + { 0x1D6A3, 0x1D6A3 }, + { 0x1D6A4, 0x1D6A4 }, + { 0x1D6A5, 0x1D6A5 }, + { 0x1D6C2, 0x1D6C2 }, + { 0x1D6C3, 0x1D6C3 }, + { 0x1D6C4, 0x1D6C4 }, + { 0x1D6C5, 0x1D6C5 }, + { 0x1D6C6, 0x1D6C6 }, + { 0x1D6C7, 0x1D6C7 }, + { 0x1D6C8, 0x1D6C8 }, + { 0x1D6C9, 0x1D6C9 }, + { 0x1D6CA, 0x1D6CA }, + { 0x1D6CB, 0x1D6CB }, + { 0x1D6CC, 0x1D6CC }, + { 0x1D6CD, 0x1D6CD }, + { 0x1D6CE, 0x1D6CE }, + { 0x1D6CF, 0x1D6CF }, + { 0x1D6D0, 0x1D6D0 }, + { 0x1D6D1, 0x1D6D1 }, + { 0x1D6D2, 0x1D6D2 }, + { 0x1D6D3, 0x1D6D3 }, + { 0x1D6D4, 0x1D6D4 }, + { 0x1D6D5, 0x1D6D5 }, + { 0x1D6D6, 0x1D6D6 }, + { 0x1D6D7, 0x1D6D7 }, + { 0x1D6D8, 0x1D6D8 }, + { 0x1D6D9, 0x1D6D9 }, + { 0x1D6DA, 0x1D6DA }, + { 0x1D6DC, 0x1D6DC }, + { 0x1D6DD, 0x1D6DD }, + { 0x1D6DE, 0x1D6DE }, + { 0x1D6DF, 0x1D6DF }, + { 0x1D6E0, 0x1D6E0 }, + { 0x1D6E1, 0x1D6E1 }, + { 0x1D6FC, 0x1D6FC }, + { 0x1D6FD, 0x1D6FD }, + { 0x1D6FE, 0x1D6FE }, + { 0x1D6FF, 0x1D6FF }, + { 0x1D700, 0x1D700 }, + { 0x1D701, 0x1D701 }, + { 0x1D702, 0x1D702 }, + { 0x1D703, 0x1D703 }, + { 0x1D704, 0x1D704 }, + { 0x1D705, 0x1D705 }, + { 0x1D706, 0x1D706 }, + { 0x1D707, 0x1D707 }, + { 0x1D708, 0x1D708 }, + { 0x1D709, 0x1D709 }, + { 0x1D70A, 0x1D70A }, + { 0x1D70B, 0x1D70B }, + { 0x1D70C, 0x1D70C }, + { 0x1D70D, 0x1D70D }, + { 0x1D70E, 0x1D70E }, + { 0x1D70F, 0x1D70F }, + { 0x1D710, 0x1D710 }, + { 0x1D711, 0x1D711 }, + { 0x1D712, 0x1D712 }, + { 0x1D713, 0x1D713 }, + { 0x1D714, 0x1D714 }, + { 0x1D716, 0x1D716 }, + { 0x1D717, 0x1D717 }, + { 0x1D718, 0x1D718 }, + { 0x1D719, 0x1D719 }, + { 0x1D71A, 0x1D71A }, + { 0x1D71B, 0x1D71B }, + { 0x1D736, 0x1D736 }, + { 0x1D737, 0x1D737 }, + { 0x1D738, 0x1D738 }, + { 0x1D739, 0x1D739 }, + { 0x1D73A, 0x1D73A }, + { 0x1D73B, 0x1D73B }, + { 0x1D73C, 0x1D73C }, + { 0x1D73D, 0x1D73D }, + { 0x1D73E, 0x1D73E }, + { 0x1D73F, 0x1D73F }, + { 0x1D740, 0x1D740 }, + { 0x1D741, 0x1D741 }, + { 0x1D742, 0x1D742 }, + { 0x1D743, 0x1D743 }, + { 0x1D744, 0x1D744 }, + { 0x1D745, 0x1D745 }, + { 0x1D746, 0x1D746 }, + { 0x1D747, 0x1D747 }, + { 0x1D748, 0x1D748 }, + { 0x1D749, 0x1D749 }, + { 0x1D74A, 0x1D74A }, + { 0x1D74B, 0x1D74B }, + { 0x1D74C, 0x1D74C }, + { 0x1D74D, 0x1D74D }, + { 0x1D74E, 0x1D74E }, + { 0x1D750, 0x1D750 }, + { 0x1D751, 0x1D751 }, + { 0x1D752, 0x1D752 }, + { 0x1D753, 0x1D753 }, + { 0x1D754, 0x1D754 }, + { 0x1D755, 0x1D755 }, + { 0x1D770, 0x1D770 }, + { 0x1D771, 0x1D771 }, + { 0x1D772, 0x1D772 }, + { 0x1D773, 0x1D773 }, + { 0x1D774, 0x1D774 }, + { 0x1D775, 0x1D775 }, + { 0x1D776, 0x1D776 }, + { 0x1D777, 0x1D777 }, + { 0x1D778, 0x1D778 }, + { 0x1D779, 0x1D779 }, + { 0x1D77A, 0x1D77A }, + { 0x1D77B, 0x1D77B }, + { 0x1D77C, 0x1D77C }, + { 0x1D77D, 0x1D77D }, + { 0x1D77E, 0x1D77E }, + { 0x1D77F, 0x1D77F }, + { 0x1D780, 0x1D780 }, + { 0x1D781, 0x1D781 }, + { 0x1D782, 0x1D782 }, + { 0x1D783, 0x1D783 }, + { 0x1D784, 0x1D784 }, + { 0x1D785, 0x1D785 }, + { 0x1D786, 0x1D786 }, + { 0x1D787, 0x1D787 }, + { 0x1D788, 0x1D788 }, + { 0x1D78A, 0x1D78A }, + { 0x1D78B, 0x1D78B }, + { 0x1D78C, 0x1D78C }, + { 0x1D78D, 0x1D78D }, + { 0x1D78E, 0x1D78E }, + { 0x1D78F, 0x1D78F }, + { 0x1D7AA, 0x1D7AA }, + { 0x1D7AB, 0x1D7AB }, + { 0x1D7AC, 0x1D7AC }, + { 0x1D7AD, 0x1D7AD }, + { 0x1D7AE, 0x1D7AE }, + { 0x1D7AF, 0x1D7AF }, + { 0x1D7B0, 0x1D7B0 }, + { 0x1D7B1, 0x1D7B1 }, + { 0x1D7B2, 0x1D7B2 }, + { 0x1D7B3, 0x1D7B3 }, + { 0x1D7B4, 0x1D7B4 }, + { 0x1D7B5, 0x1D7B5 }, + { 0x1D7B6, 0x1D7B6 }, + { 0x1D7B7, 0x1D7B7 }, + { 0x1D7B8, 0x1D7B8 }, + { 0x1D7B9, 0x1D7B9 }, + { 0x1D7BA, 0x1D7BA }, + { 0x1D7BB, 0x1D7BB }, + { 0x1D7BC, 0x1D7BC }, + { 0x1D7BD, 0x1D7BD }, + { 0x1D7BE, 0x1D7BE }, + { 0x1D7BF, 0x1D7BF }, + { 0x1D7C0, 0x1D7C0 }, + { 0x1D7C1, 0x1D7C1 }, + { 0x1D7C2, 0x1D7C2 }, + { 0x1D7C4, 0x1D7C4 }, + { 0x1D7C5, 0x1D7C5 }, + { 0x1D7C6, 0x1D7C6 }, + { 0x1D7C7, 0x1D7C7 }, + { 0x1D7C8, 0x1D7C8 }, + { 0x1D7C9, 0x1D7C9 }, + { 0x1D7CB, 0x1D7CB }, }; int @@ -2879,15 +1448,15 @@ islowerrune(Rune r) int toupperrune(Rune r) { - Rune *match1, (*match2)[2]; - - match2 = bsearch(&r, lower2, nelem(lower2), sizeof *lower2, &rune2cmp); - if (match2) - r = *lower2uppercase[match2 - lower2] + (r - **match2); + Rune *match1, *match2; match1 = bsearch(&r, lower1, nelem(lower1), sizeof *lower1, &rune1cmp); if (match1) - r = lower1uppercase[match1 - lower1]; + r = match1[1]; + + match2 = bsearch(&r, lower2, nelem(lower2), sizeof *lower2, &rune2cmp); + if (match2) + r = match2[2] + (r - match2[0]); return r; } diff --git a/libutf/upperrune.c b/libutf/upperrune.c @@ -4,2206 +4,1105 @@ #include "../utf.h" #include "runetype.h" -static Rune upper2[][2] = { - { 0x0041, 0x005A }, - { 0x00C0, 0x00D6 }, - { 0x00D8, 0x00DE }, - { 0x0189, 0x018A }, - { 0x01B1, 0x01B2 }, - { 0x0388, 0x038A }, - { 0x038E, 0x038F }, - { 0x0391, 0x03A1 }, - { 0x03A3, 0x03AB }, - { 0x03FD, 0x03FF }, - { 0x0400, 0x040F }, - { 0x0410, 0x042F }, - { 0x0531, 0x0556 }, - { 0x10A0, 0x10C5 }, - { 0x1F08, 0x1F0F }, - { 0x1F18, 0x1F1D }, - { 0x1F28, 0x1F2F }, - { 0x1F38, 0x1F3F }, - { 0x1F48, 0x1F4D }, - { 0x1F68, 0x1F6F }, - { 0x1FB8, 0x1FB9 }, - { 0x1FBA, 0x1FBB }, - { 0x1FC8, 0x1FCB }, - { 0x1FD8, 0x1FD9 }, - { 0x1FDA, 0x1FDB }, - { 0x1FE8, 0x1FE9 }, - { 0x1FEA, 0x1FEB }, - { 0x1FF8, 0x1FF9 }, - { 0x1FFA, 0x1FFB }, - { 0x2C00, 0x2C2E }, - { 0x2C7E, 0x2C7F }, - { 0xFF21, 0xFF3A }, - { 0x10400, 0x10427 }, - { 0x118A0, 0x118BF }, +static Rune upper2[][3] = { + { 0x0041, 0x005A, 0x0061 }, + { 0x00C0, 0x00D6, 0x00E0 }, + { 0x00D8, 0x00DE, 0x00F8 }, + { 0x0189, 0x018A, 0x0256 }, + { 0x01B1, 0x01B2, 0x028A }, + { 0x0388, 0x038A, 0x03AD }, + { 0x038E, 0x038F, 0x03CD }, + { 0x0391, 0x03A1, 0x03B1 }, + { 0x03A3, 0x03AB, 0x03C3 }, + { 0x03FD, 0x03FF, 0x037B }, + { 0x0400, 0x040F, 0x0450 }, + { 0x0410, 0x042F, 0x0430 }, + { 0x0531, 0x0556, 0x0561 }, + { 0x10A0, 0x10C5, 0x2D00 }, + { 0x1F08, 0x1F0F, 0x1F00 }, + { 0x1F18, 0x1F1D, 0x1F10 }, + { 0x1F28, 0x1F2F, 0x1F20 }, + { 0x1F38, 0x1F3F, 0x1F30 }, + { 0x1F48, 0x1F4D, 0x1F40 }, + { 0x1F68, 0x1F6F, 0x1F60 }, + { 0x1FB8, 0x1FB9, 0x1FB0 }, + { 0x1FBA, 0x1FBB, 0x1F70 }, + { 0x1FC8, 0x1FCB, 0x1F72 }, + { 0x1FD8, 0x1FD9, 0x1FD0 }, + { 0x1FDA, 0x1FDB, 0x1F76 }, + { 0x1FE8, 0x1FE9, 0x1FE0 }, + { 0x1FEA, 0x1FEB, 0x1F7A }, + { 0x1FF8, 0x1FF9, 0x1F78 }, + { 0x1FFA, 0x1FFB, 0x1F7C }, + { 0x2C00, 0x2C2E, 0x2C30 }, + { 0x2C7E, 0x2C7F, 0x023F }, + { 0xFF21, 0xFF3A, 0xFF41 }, + { 0x10400, 0x10427, 0x10428 }, + { 0x118A0, 0x118BF, 0x118C0 }, }; -static Rune upper2lowercase[][2] = { - { 0x0061, 0x007A }, - { 0x00E0, 0x00F6 }, - { 0x00F8, 0x00FE }, - { 0x0256, 0x0257 }, - { 0x028A, 0x028B }, - { 0x03AD, 0x03AF }, - { 0x03CD, 0x03CE }, - { 0x03B1, 0x03C1 }, - { 0x03C3, 0x03CB }, - { 0x037B, 0x037D }, - { 0x0450, 0x045F }, - { 0x0430, 0x044F }, - { 0x0561, 0x0586 }, - { 0x2D00, 0x2D25 }, - { 0x1F00, 0x1F07 }, - { 0x1F10, 0x1F15 }, - { 0x1F20, 0x1F27 }, - { 0x1F30, 0x1F37 }, - { 0x1F40, 0x1F45 }, - { 0x1F60, 0x1F67 }, - { 0x1FB0, 0x1FB1 }, - { 0x1F70, 0x1F71 }, - { 0x1F72, 0x1F75 }, - { 0x1FD0, 0x1FD1 }, - { 0x1F76, 0x1F77 }, - { 0x1FE0, 0x1FE1 }, - { 0x1F7A, 0x1F7B }, - { 0x1F78, 0x1F79 }, - { 0x1F7C, 0x1F7D }, - { 0x2C30, 0x2C5E }, - { 0x023F, 0x0240 }, - { 0xFF41, 0xFF5A }, - { 0x10428, 0x1044F }, - { 0x118C0, 0x118DF }, -}; - -static Rune upper1[] = { - 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, - 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, - 0x0181, - 0x0182, - 0x0184, - 0x0186, - 0x0187, - 0x018B, - 0x018E, - 0x018F, - 0x0190, - 0x0191, - 0x0193, - 0x0194, - 0x0196, - 0x0197, - 0x0198, - 0x019C, - 0x019D, - 0x019F, - 0x01A0, - 0x01A2, - 0x01A4, - 0x01A6, - 0x01A7, - 0x01A9, - 0x01AC, - 0x01AE, - 0x01AF, - 0x01B3, - 0x01B5, - 0x01B7, - 0x01B8, - 0x01BC, - 0x01C4, - 0x01C7, - 0x01CA, - 0x01CD, - 0x01CF, - 0x01D1, - 0x01D3, - 0x01D5, - 0x01D7, - 0x01D9, - 0x01DB, - 0x01DE, - 0x01E0, - 0x01E2, - 0x01E4, - 0x01E6, - 0x01E8, - 0x01EA, - 0x01EC, - 0x01EE, - 0x01F1, - 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, - 0x0370, - 0x0372, - 0x0376, - 0x037F, - 0x0386, - 0x038C, - 0x03CF, - 0x03D2, - 0x03D3, - 0x03D4, - 0x03D8, - 0x03DA, - 0x03DC, - 0x03DE, - 0x03E0, - 0x03E2, - 0x03E4, - 0x03E6, - 0x03E8, - 0x03EA, - 0x03EC, - 0x03EE, - 0x03F4, - 0x03F7, - 0x03F9, - 0x03FA, - 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, - 0x10C7, - 0x10CD, - 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, - 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, - 0x1F59, - 0x1F5B, - 0x1F5D, - 0x1F5F, - 0x1FEC, - 0x2102, - 0x2107, - 0x210B, - 0x210C, - 0x210D, - 0x2110, - 0x2111, - 0x2112, - 0x2115, - 0x2119, - 0x211A, - 0x211B, - 0x211C, - 0x211D, - 0x2124, - 0x2126, - 0x2128, - 0x212A, - 0x212B, - 0x212C, - 0x212D, - 0x2130, - 0x2131, - 0x2132, - 0x2133, - 0x213E, - 0x213F, - 0x2145, - 0x2183, - 0x2C60, - 0x2C62, - 0x2C63, - 0x2C64, - 0x2C67, - 0x2C69, - 0x2C6B, - 0x2C6D, - 0x2C6E, - 0x2C6F, - 0x2C70, - 0x2C72, - 0x2C75, - 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, - 0xA7B0, - 0xA7B1, - 0x1D400, - 0x1D401, - 0x1D402, - 0x1D403, - 0x1D404, - 0x1D405, - 0x1D406, - 0x1D407, - 0x1D408, - 0x1D409, - 0x1D40A, - 0x1D40B, - 0x1D40C, - 0x1D40D, - 0x1D40E, - 0x1D40F, - 0x1D410, - 0x1D411, - 0x1D412, - 0x1D413, - 0x1D414, - 0x1D415, - 0x1D416, - 0x1D417, - 0x1D418, - 0x1D419, - 0x1D434, - 0x1D435, - 0x1D436, - 0x1D437, - 0x1D438, - 0x1D439, - 0x1D43A, - 0x1D43B, - 0x1D43C, - 0x1D43D, - 0x1D43E, - 0x1D43F, - 0x1D440, - 0x1D441, - 0x1D442, - 0x1D443, - 0x1D444, - 0x1D445, - 0x1D446, - 0x1D447, - 0x1D448, - 0x1D449, - 0x1D44A, - 0x1D44B, - 0x1D44C, - 0x1D44D, - 0x1D468, - 0x1D469, - 0x1D46A, - 0x1D46B, - 0x1D46C, - 0x1D46D, - 0x1D46E, - 0x1D46F, - 0x1D470, - 0x1D471, - 0x1D472, - 0x1D473, - 0x1D474, - 0x1D475, - 0x1D476, - 0x1D477, - 0x1D478, - 0x1D479, - 0x1D47A, - 0x1D47B, - 0x1D47C, - 0x1D47D, - 0x1D47E, - 0x1D47F, - 0x1D480, - 0x1D481, - 0x1D49C, - 0x1D49E, - 0x1D49F, - 0x1D4A2, - 0x1D4A5, - 0x1D4A6, - 0x1D4A9, - 0x1D4AA, - 0x1D4AB, - 0x1D4AC, - 0x1D4AE, - 0x1D4AF, - 0x1D4B0, - 0x1D4B1, - 0x1D4B2, - 0x1D4B3, - 0x1D4B4, - 0x1D4B5, - 0x1D4D0, - 0x1D4D1, - 0x1D4D2, - 0x1D4D3, - 0x1D4D4, - 0x1D4D5, - 0x1D4D6, - 0x1D4D7, - 0x1D4D8, - 0x1D4D9, - 0x1D4DA, - 0x1D4DB, - 0x1D4DC, - 0x1D4DD, - 0x1D4DE, - 0x1D4DF, - 0x1D4E0, - 0x1D4E1, - 0x1D4E2, - 0x1D4E3, - 0x1D4E4, - 0x1D4E5, - 0x1D4E6, - 0x1D4E7, - 0x1D4E8, - 0x1D4E9, - 0x1D504, - 0x1D505, - 0x1D507, - 0x1D508, - 0x1D509, - 0x1D50A, - 0x1D50D, - 0x1D50E, - 0x1D50F, - 0x1D510, - 0x1D511, - 0x1D512, - 0x1D513, - 0x1D514, - 0x1D516, - 0x1D517, - 0x1D518, - 0x1D519, - 0x1D51A, - 0x1D51B, - 0x1D51C, - 0x1D538, - 0x1D539, - 0x1D53B, - 0x1D53C, - 0x1D53D, - 0x1D53E, - 0x1D540, - 0x1D541, - 0x1D542, - 0x1D543, - 0x1D544, - 0x1D546, - 0x1D54A, - 0x1D54B, - 0x1D54C, - 0x1D54D, - 0x1D54E, - 0x1D54F, - 0x1D550, - 0x1D56C, - 0x1D56D, - 0x1D56E, - 0x1D56F, - 0x1D570, - 0x1D571, - 0x1D572, - 0x1D573, - 0x1D574, - 0x1D575, - 0x1D576, - 0x1D577, - 0x1D578, - 0x1D579, - 0x1D57A, - 0x1D57B, - 0x1D57C, - 0x1D57D, - 0x1D57E, - 0x1D57F, - 0x1D580, - 0x1D581, - 0x1D582, - 0x1D583, - 0x1D584, - 0x1D585, - 0x1D5A0, - 0x1D5A1, - 0x1D5A2, - 0x1D5A3, - 0x1D5A4, - 0x1D5A5, - 0x1D5A6, - 0x1D5A7, - 0x1D5A8, - 0x1D5A9, - 0x1D5AA, - 0x1D5AB, - 0x1D5AC, - 0x1D5AD, - 0x1D5AE, - 0x1D5AF, - 0x1D5B0, - 0x1D5B1, - 0x1D5B2, - 0x1D5B3, - 0x1D5B4, - 0x1D5B5, - 0x1D5B6, - 0x1D5B7, - 0x1D5B8, - 0x1D5B9, - 0x1D5D4, - 0x1D5D5, - 0x1D5D6, - 0x1D5D7, - 0x1D5D8, - 0x1D5D9, - 0x1D5DA, - 0x1D5DB, - 0x1D5DC, - 0x1D5DD, - 0x1D5DE, - 0x1D5DF, - 0x1D5E0, - 0x1D5E1, - 0x1D5E2, - 0x1D5E3, - 0x1D5E4, - 0x1D5E5, - 0x1D5E6, - 0x1D5E7, - 0x1D5E8, - 0x1D5E9, - 0x1D5EA, - 0x1D5EB, - 0x1D5EC, - 0x1D5ED, - 0x1D608, - 0x1D609, - 0x1D60A, - 0x1D60B, - 0x1D60C, - 0x1D60D, - 0x1D60E, - 0x1D60F, - 0x1D610, - 0x1D611, - 0x1D612, - 0x1D613, - 0x1D614, - 0x1D615, - 0x1D616, - 0x1D617, - 0x1D618, - 0x1D619, - 0x1D61A, - 0x1D61B, - 0x1D61C, - 0x1D61D, - 0x1D61E, - 0x1D61F, - 0x1D620, - 0x1D621, - 0x1D63C, - 0x1D63D, - 0x1D63E, - 0x1D63F, - 0x1D640, - 0x1D641, - 0x1D642, - 0x1D643, - 0x1D644, - 0x1D645, - 0x1D646, - 0x1D647, - 0x1D648, - 0x1D649, - 0x1D64A, - 0x1D64B, - 0x1D64C, - 0x1D64D, - 0x1D64E, - 0x1D64F, - 0x1D650, - 0x1D651, - 0x1D652, - 0x1D653, - 0x1D654, - 0x1D655, - 0x1D670, - 0x1D671, - 0x1D672, - 0x1D673, - 0x1D674, - 0x1D675, - 0x1D676, - 0x1D677, - 0x1D678, - 0x1D679, - 0x1D67A, - 0x1D67B, - 0x1D67C, - 0x1D67D, - 0x1D67E, - 0x1D67F, - 0x1D680, - 0x1D681, - 0x1D682, - 0x1D683, - 0x1D684, - 0x1D685, - 0x1D686, - 0x1D687, - 0x1D688, - 0x1D689, - 0x1D6A8, - 0x1D6A9, - 0x1D6AA, - 0x1D6AB, - 0x1D6AC, - 0x1D6AD, - 0x1D6AE, - 0x1D6AF, - 0x1D6B0, - 0x1D6B1, - 0x1D6B2, - 0x1D6B3, - 0x1D6B4, - 0x1D6B5, - 0x1D6B6, - 0x1D6B7, - 0x1D6B8, - 0x1D6B9, - 0x1D6BA, - 0x1D6BB, - 0x1D6BC, - 0x1D6BD, - 0x1D6BE, - 0x1D6BF, - 0x1D6C0, - 0x1D6E2, - 0x1D6E3, - 0x1D6E4, - 0x1D6E5, - 0x1D6E6, - 0x1D6E7, - 0x1D6E8, - 0x1D6E9, - 0x1D6EA, - 0x1D6EB, - 0x1D6EC, - 0x1D6ED, - 0x1D6EE, - 0x1D6EF, - 0x1D6F0, - 0x1D6F1, - 0x1D6F2, - 0x1D6F3, - 0x1D6F4, - 0x1D6F5, - 0x1D6F6, - 0x1D6F7, - 0x1D6F8, - 0x1D6F9, - 0x1D6FA, - 0x1D71C, - 0x1D71D, - 0x1D71E, - 0x1D71F, - 0x1D720, - 0x1D721, - 0x1D722, - 0x1D723, - 0x1D724, - 0x1D725, - 0x1D726, - 0x1D727, - 0x1D728, - 0x1D729, - 0x1D72A, - 0x1D72B, - 0x1D72C, - 0x1D72D, - 0x1D72E, - 0x1D72F, - 0x1D730, - 0x1D731, - 0x1D732, - 0x1D733, - 0x1D734, - 0x1D756, - 0x1D757, - 0x1D758, - 0x1D759, - 0x1D75A, - 0x1D75B, - 0x1D75C, - 0x1D75D, - 0x1D75E, - 0x1D75F, - 0x1D760, - 0x1D761, - 0x1D762, - 0x1D763, - 0x1D764, - 0x1D765, - 0x1D766, - 0x1D767, - 0x1D768, - 0x1D769, - 0x1D76A, - 0x1D76B, - 0x1D76C, - 0x1D76D, - 0x1D76E, - 0x1D790, - 0x1D791, - 0x1D792, - 0x1D793, - 0x1D794, - 0x1D795, - 0x1D796, - 0x1D797, - 0x1D798, - 0x1D799, - 0x1D79A, - 0x1D79B, - 0x1D79C, - 0x1D79D, - 0x1D79E, - 0x1D79F, - 0x1D7A0, - 0x1D7A1, - 0x1D7A2, - 0x1D7A3, - 0x1D7A4, - 0x1D7A5, - 0x1D7A6, - 0x1D7A7, - 0x1D7A8, - 0x1D7CA, -}; - -static Rune upper1lowercase[] = { - 0x0101, - 0x0103, - 0x0105, - 0x0107, - 0x0109, - 0x010B, - 0x010D, - 0x010F, - 0x0111, - 0x0113, - 0x0115, - 0x0117, - 0x0119, - 0x011B, - 0x011D, - 0x011F, - 0x0121, - 0x0123, - 0x0125, - 0x0127, - 0x0129, - 0x012B, - 0x012D, - 0x012F, - 0x0069, - 0x0133, - 0x0135, - 0x0137, - 0x013A, - 0x013C, - 0x013E, - 0x0140, - 0x0142, - 0x0144, - 0x0146, - 0x0148, - 0x014B, - 0x014D, - 0x014F, - 0x0151, - 0x0153, - 0x0155, - 0x0157, - 0x0159, - 0x015B, - 0x015D, - 0x015F, - 0x0161, - 0x0163, - 0x0165, - 0x0167, - 0x0169, - 0x016B, - 0x016D, - 0x016F, - 0x0171, - 0x0173, - 0x0175, - 0x0177, - 0x00FF, - 0x017A, - 0x017C, - 0x017E, - 0x0253, - 0x0183, - 0x0185, - 0x0254, - 0x0188, - 0x018C, - 0x01DD, - 0x0259, - 0x025B, - 0x0192, - 0x0260, - 0x0263, - 0x0269, - 0x0268, - 0x0199, - 0x026F, - 0x0272, - 0x0275, - 0x01A1, - 0x01A3, - 0x01A5, - 0x0280, - 0x01A8, - 0x0283, - 0x01AD, - 0x0288, - 0x01B0, - 0x01B4, - 0x01B6, - 0x0292, - 0x01B9, - 0x01BD, - 0x01C6, - 0x01C9, - 0x01CC, - 0x01CE, - 0x01D0, - 0x01D2, - 0x01D4, - 0x01D6, - 0x01D8, - 0x01DA, - 0x01DC, - 0x01DF, - 0x01E1, - 0x01E3, - 0x01E5, - 0x01E7, - 0x01E9, - 0x01EB, - 0x01ED, - 0x01EF, - 0x01F3, - 0x01F5, - 0x0195, - 0x01BF, - 0x01F9, - 0x01FB, - 0x01FD, - 0x01FF, - 0x0201, - 0x0203, - 0x0205, - 0x0207, - 0x0209, - 0x020B, - 0x020D, - 0x020F, - 0x0211, - 0x0213, - 0x0215, - 0x0217, - 0x0219, - 0x021B, - 0x021D, - 0x021F, - 0x019E, - 0x0223, - 0x0225, - 0x0227, - 0x0229, - 0x022B, - 0x022D, - 0x022F, - 0x0231, - 0x0233, - 0x2C65, - 0x023C, - 0x019A, - 0x2C66, - 0x0242, - 0x0180, - 0x0289, - 0x028C, - 0x0247, - 0x0249, - 0x024B, - 0x024D, - 0x024F, - 0x0371, - 0x0373, - 0x0377, - 0x03F3, - 0x03AC, - 0x03CC, - 0x03D7, - 0x03D2, - 0x03D3, - 0x03D4, - 0x03D9, - 0x03DB, - 0x03DD, - 0x03DF, - 0x03E1, - 0x03E3, - 0x03E5, - 0x03E7, - 0x03E9, - 0x03EB, - 0x03ED, - 0x03EF, - 0x03B8, - 0x03F8, - 0x03F2, - 0x03FB, - 0x0461, - 0x0463, - 0x0465, - 0x0467, - 0x0469, - 0x046B, - 0x046D, - 0x046F, - 0x0471, - 0x0473, - 0x0475, - 0x0477, - 0x0479, - 0x047B, - 0x047D, - 0x047F, - 0x0481, - 0x048B, - 0x048D, - 0x048F, - 0x0491, - 0x0493, - 0x0495, - 0x0497, - 0x0499, - 0x049B, - 0x049D, - 0x049F, - 0x04A1, - 0x04A3, - 0x04A5, - 0x04A7, - 0x04A9, - 0x04AB, - 0x04AD, - 0x04AF, - 0x04B1, - 0x04B3, - 0x04B5, - 0x04B7, - 0x04B9, - 0x04BB, - 0x04BD, - 0x04BF, - 0x04CF, - 0x04C2, - 0x04C4, - 0x04C6, - 0x04C8, - 0x04CA, - 0x04CC, - 0x04CE, - 0x04D1, - 0x04D3, - 0x04D5, - 0x04D7, - 0x04D9, - 0x04DB, - 0x04DD, - 0x04DF, - 0x04E1, - 0x04E3, - 0x04E5, - 0x04E7, - 0x04E9, - 0x04EB, - 0x04ED, - 0x04EF, - 0x04F1, - 0x04F3, - 0x04F5, - 0x04F7, - 0x04F9, - 0x04FB, - 0x04FD, - 0x04FF, - 0x0501, - 0x0503, - 0x0505, - 0x0507, - 0x0509, - 0x050B, - 0x050D, - 0x050F, - 0x0511, - 0x0513, - 0x0515, - 0x0517, - 0x0519, - 0x051B, - 0x051D, - 0x051F, - 0x0521, - 0x0523, - 0x0525, - 0x0527, - 0x0529, - 0x052B, - 0x052D, - 0x052F, - 0x2D27, - 0x2D2D, - 0x1E01, - 0x1E03, - 0x1E05, - 0x1E07, - 0x1E09, - 0x1E0B, - 0x1E0D, - 0x1E0F, - 0x1E11, - 0x1E13, - 0x1E15, - 0x1E17, - 0x1E19, - 0x1E1B, - 0x1E1D, - 0x1E1F, - 0x1E21, - 0x1E23, - 0x1E25, - 0x1E27, - 0x1E29, - 0x1E2B, - 0x1E2D, - 0x1E2F, - 0x1E31, - 0x1E33, - 0x1E35, - 0x1E37, - 0x1E39, - 0x1E3B, - 0x1E3D, - 0x1E3F, - 0x1E41, - 0x1E43, - 0x1E45, - 0x1E47, - 0x1E49, - 0x1E4B, - 0x1E4D, - 0x1E4F, - 0x1E51, - 0x1E53, - 0x1E55, - 0x1E57, - 0x1E59, - 0x1E5B, - 0x1E5D, - 0x1E5F, - 0x1E61, - 0x1E63, - 0x1E65, - 0x1E67, - 0x1E69, - 0x1E6B, - 0x1E6D, - 0x1E6F, - 0x1E71, - 0x1E73, - 0x1E75, - 0x1E77, - 0x1E79, - 0x1E7B, - 0x1E7D, - 0x1E7F, - 0x1E81, - 0x1E83, - 0x1E85, - 0x1E87, - 0x1E89, - 0x1E8B, - 0x1E8D, - 0x1E8F, - 0x1E91, - 0x1E93, - 0x1E95, - 0x00DF, - 0x1EA1, - 0x1EA3, - 0x1EA5, - 0x1EA7, - 0x1EA9, - 0x1EAB, - 0x1EAD, - 0x1EAF, - 0x1EB1, - 0x1EB3, - 0x1EB5, - 0x1EB7, - 0x1EB9, - 0x1EBB, - 0x1EBD, - 0x1EBF, - 0x1EC1, - 0x1EC3, - 0x1EC5, - 0x1EC7, - 0x1EC9, - 0x1ECB, - 0x1ECD, - 0x1ECF, - 0x1ED1, - 0x1ED3, - 0x1ED5, - 0x1ED7, - 0x1ED9, - 0x1EDB, - 0x1EDD, - 0x1EDF, - 0x1EE1, - 0x1EE3, - 0x1EE5, - 0x1EE7, - 0x1EE9, - 0x1EEB, - 0x1EED, - 0x1EEF, - 0x1EF1, - 0x1EF3, - 0x1EF5, - 0x1EF7, - 0x1EF9, - 0x1EFB, - 0x1EFD, - 0x1EFF, - 0x1F51, - 0x1F53, - 0x1F55, - 0x1F57, - 0x1FE5, - 0x2102, - 0x2107, - 0x210B, - 0x210C, - 0x210D, - 0x2110, - 0x2111, - 0x2112, - 0x2115, - 0x2119, - 0x211A, - 0x211B, - 0x211C, - 0x211D, - 0x2124, - 0x03C9, - 0x2128, - 0x006B, - 0x00E5, - 0x212C, - 0x212D, - 0x2130, - 0x2131, - 0x214E, - 0x2133, - 0x213E, - 0x213F, - 0x2145, - 0x2184, - 0x2C61, - 0x026B, - 0x1D7D, - 0x027D, - 0x2C68, - 0x2C6A, - 0x2C6C, - 0x0251, - 0x0271, - 0x0250, - 0x0252, - 0x2C73, - 0x2C76, - 0x2C81, - 0x2C83, - 0x2C85, - 0x2C87, - 0x2C89, - 0x2C8B, - 0x2C8D, - 0x2C8F, - 0x2C91, - 0x2C93, - 0x2C95, - 0x2C97, - 0x2C99, - 0x2C9B, - 0x2C9D, - 0x2C9F, - 0x2CA1, - 0x2CA3, - 0x2CA5, - 0x2CA7, - 0x2CA9, - 0x2CAB, - 0x2CAD, - 0x2CAF, - 0x2CB1, - 0x2CB3, - 0x2CB5, - 0x2CB7, - 0x2CB9, - 0x2CBB, - 0x2CBD, - 0x2CBF, - 0x2CC1, - 0x2CC3, - 0x2CC5, - 0x2CC7, - 0x2CC9, - 0x2CCB, - 0x2CCD, - 0x2CCF, - 0x2CD1, - 0x2CD3, - 0x2CD5, - 0x2CD7, - 0x2CD9, - 0x2CDB, - 0x2CDD, - 0x2CDF, - 0x2CE1, - 0x2CE3, - 0x2CEC, - 0x2CEE, - 0x2CF3, - 0xA641, - 0xA643, - 0xA645, - 0xA647, - 0xA649, - 0xA64B, - 0xA64D, - 0xA64F, - 0xA651, - 0xA653, - 0xA655, - 0xA657, - 0xA659, - 0xA65B, - 0xA65D, - 0xA65F, - 0xA661, - 0xA663, - 0xA665, - 0xA667, - 0xA669, - 0xA66B, - 0xA66D, - 0xA681, - 0xA683, - 0xA685, - 0xA687, - 0xA689, - 0xA68B, - 0xA68D, - 0xA68F, - 0xA691, - 0xA693, - 0xA695, - 0xA697, - 0xA699, - 0xA69B, - 0xA723, - 0xA725, - 0xA727, - 0xA729, - 0xA72B, - 0xA72D, - 0xA72F, - 0xA733, - 0xA735, - 0xA737, - 0xA739, - 0xA73B, - 0xA73D, - 0xA73F, - 0xA741, - 0xA743, - 0xA745, - 0xA747, - 0xA749, - 0xA74B, - 0xA74D, - 0xA74F, - 0xA751, - 0xA753, - 0xA755, - 0xA757, - 0xA759, - 0xA75B, - 0xA75D, - 0xA75F, - 0xA761, - 0xA763, - 0xA765, - 0xA767, - 0xA769, - 0xA76B, - 0xA76D, - 0xA76F, - 0xA77A, - 0xA77C, - 0x1D79, - 0xA77F, - 0xA781, - 0xA783, - 0xA785, - 0xA787, - 0xA78C, - 0x0265, - 0xA791, - 0xA793, - 0xA797, - 0xA799, - 0xA79B, - 0xA79D, - 0xA79F, - 0xA7A1, - 0xA7A3, - 0xA7A5, - 0xA7A7, - 0xA7A9, - 0x0266, - 0x025C, - 0x0261, - 0x026C, - 0x029E, - 0x0287, - 0x1D400, - 0x1D401, - 0x1D402, - 0x1D403, - 0x1D404, - 0x1D405, - 0x1D406, - 0x1D407, - 0x1D408, - 0x1D409, - 0x1D40A, - 0x1D40B, - 0x1D40C, - 0x1D40D, - 0x1D40E, - 0x1D40F, - 0x1D410, - 0x1D411, - 0x1D412, - 0x1D413, - 0x1D414, - 0x1D415, - 0x1D416, - 0x1D417, - 0x1D418, - 0x1D419, - 0x1D434, - 0x1D435, - 0x1D436, - 0x1D437, - 0x1D438, - 0x1D439, - 0x1D43A, - 0x1D43B, - 0x1D43C, - 0x1D43D, - 0x1D43E, - 0x1D43F, - 0x1D440, - 0x1D441, - 0x1D442, - 0x1D443, - 0x1D444, - 0x1D445, - 0x1D446, - 0x1D447, - 0x1D448, - 0x1D449, - 0x1D44A, - 0x1D44B, - 0x1D44C, - 0x1D44D, - 0x1D468, - 0x1D469, - 0x1D46A, - 0x1D46B, - 0x1D46C, - 0x1D46D, - 0x1D46E, - 0x1D46F, - 0x1D470, - 0x1D471, - 0x1D472, - 0x1D473, - 0x1D474, - 0x1D475, - 0x1D476, - 0x1D477, - 0x1D478, - 0x1D479, - 0x1D47A, - 0x1D47B, - 0x1D47C, - 0x1D47D, - 0x1D47E, - 0x1D47F, - 0x1D480, - 0x1D481, - 0x1D49C, - 0x1D49E, - 0x1D49F, - 0x1D4A2, - 0x1D4A5, - 0x1D4A6, - 0x1D4A9, - 0x1D4AA, - 0x1D4AB, - 0x1D4AC, - 0x1D4AE, - 0x1D4AF, - 0x1D4B0, - 0x1D4B1, - 0x1D4B2, - 0x1D4B3, - 0x1D4B4, - 0x1D4B5, - 0x1D4D0, - 0x1D4D1, - 0x1D4D2, - 0x1D4D3, - 0x1D4D4, - 0x1D4D5, - 0x1D4D6, - 0x1D4D7, - 0x1D4D8, - 0x1D4D9, - 0x1D4DA, - 0x1D4DB, - 0x1D4DC, - 0x1D4DD, - 0x1D4DE, - 0x1D4DF, - 0x1D4E0, - 0x1D4E1, - 0x1D4E2, - 0x1D4E3, - 0x1D4E4, - 0x1D4E5, - 0x1D4E6, - 0x1D4E7, - 0x1D4E8, - 0x1D4E9, - 0x1D504, - 0x1D505, - 0x1D507, - 0x1D508, - 0x1D509, - 0x1D50A, - 0x1D50D, - 0x1D50E, - 0x1D50F, - 0x1D510, - 0x1D511, - 0x1D512, - 0x1D513, - 0x1D514, - 0x1D516, - 0x1D517, - 0x1D518, - 0x1D519, - 0x1D51A, - 0x1D51B, - 0x1D51C, - 0x1D538, - 0x1D539, - 0x1D53B, - 0x1D53C, - 0x1D53D, - 0x1D53E, - 0x1D540, - 0x1D541, - 0x1D542, - 0x1D543, - 0x1D544, - 0x1D546, - 0x1D54A, - 0x1D54B, - 0x1D54C, - 0x1D54D, - 0x1D54E, - 0x1D54F, - 0x1D550, - 0x1D56C, - 0x1D56D, - 0x1D56E, - 0x1D56F, - 0x1D570, - 0x1D571, - 0x1D572, - 0x1D573, - 0x1D574, - 0x1D575, - 0x1D576, - 0x1D577, - 0x1D578, - 0x1D579, - 0x1D57A, - 0x1D57B, - 0x1D57C, - 0x1D57D, - 0x1D57E, - 0x1D57F, - 0x1D580, - 0x1D581, - 0x1D582, - 0x1D583, - 0x1D584, - 0x1D585, - 0x1D5A0, - 0x1D5A1, - 0x1D5A2, - 0x1D5A3, - 0x1D5A4, - 0x1D5A5, - 0x1D5A6, - 0x1D5A7, - 0x1D5A8, - 0x1D5A9, - 0x1D5AA, - 0x1D5AB, - 0x1D5AC, - 0x1D5AD, - 0x1D5AE, - 0x1D5AF, - 0x1D5B0, - 0x1D5B1, - 0x1D5B2, - 0x1D5B3, - 0x1D5B4, - 0x1D5B5, - 0x1D5B6, - 0x1D5B7, - 0x1D5B8, - 0x1D5B9, - 0x1D5D4, - 0x1D5D5, - 0x1D5D6, - 0x1D5D7, - 0x1D5D8, - 0x1D5D9, - 0x1D5DA, - 0x1D5DB, - 0x1D5DC, - 0x1D5DD, - 0x1D5DE, - 0x1D5DF, - 0x1D5E0, - 0x1D5E1, - 0x1D5E2, - 0x1D5E3, - 0x1D5E4, - 0x1D5E5, - 0x1D5E6, - 0x1D5E7, - 0x1D5E8, - 0x1D5E9, - 0x1D5EA, - 0x1D5EB, - 0x1D5EC, - 0x1D5ED, - 0x1D608, - 0x1D609, - 0x1D60A, - 0x1D60B, - 0x1D60C, - 0x1D60D, - 0x1D60E, - 0x1D60F, - 0x1D610, - 0x1D611, - 0x1D612, - 0x1D613, - 0x1D614, - 0x1D615, - 0x1D616, - 0x1D617, - 0x1D618, - 0x1D619, - 0x1D61A, - 0x1D61B, - 0x1D61C, - 0x1D61D, - 0x1D61E, - 0x1D61F, - 0x1D620, - 0x1D621, - 0x1D63C, - 0x1D63D, - 0x1D63E, - 0x1D63F, - 0x1D640, - 0x1D641, - 0x1D642, - 0x1D643, - 0x1D644, - 0x1D645, - 0x1D646, - 0x1D647, - 0x1D648, - 0x1D649, - 0x1D64A, - 0x1D64B, - 0x1D64C, - 0x1D64D, - 0x1D64E, - 0x1D64F, - 0x1D650, - 0x1D651, - 0x1D652, - 0x1D653, - 0x1D654, - 0x1D655, - 0x1D670, - 0x1D671, - 0x1D672, - 0x1D673, - 0x1D674, - 0x1D675, - 0x1D676, - 0x1D677, - 0x1D678, - 0x1D679, - 0x1D67A, - 0x1D67B, - 0x1D67C, - 0x1D67D, - 0x1D67E, - 0x1D67F, - 0x1D680, - 0x1D681, - 0x1D682, - 0x1D683, - 0x1D684, - 0x1D685, - 0x1D686, - 0x1D687, - 0x1D688, - 0x1D689, - 0x1D6A8, - 0x1D6A9, - 0x1D6AA, - 0x1D6AB, - 0x1D6AC, - 0x1D6AD, - 0x1D6AE, - 0x1D6AF, - 0x1D6B0, - 0x1D6B1, - 0x1D6B2, - 0x1D6B3, - 0x1D6B4, - 0x1D6B5, - 0x1D6B6, - 0x1D6B7, - 0x1D6B8, - 0x1D6B9, - 0x1D6BA, - 0x1D6BB, - 0x1D6BC, - 0x1D6BD, - 0x1D6BE, - 0x1D6BF, - 0x1D6C0, - 0x1D6E2, - 0x1D6E3, - 0x1D6E4, - 0x1D6E5, - 0x1D6E6, - 0x1D6E7, - 0x1D6E8, - 0x1D6E9, - 0x1D6EA, - 0x1D6EB, - 0x1D6EC, - 0x1D6ED, - 0x1D6EE, - 0x1D6EF, - 0x1D6F0, - 0x1D6F1, - 0x1D6F2, - 0x1D6F3, - 0x1D6F4, - 0x1D6F5, - 0x1D6F6, - 0x1D6F7, - 0x1D6F8, - 0x1D6F9, - 0x1D6FA, - 0x1D71C, - 0x1D71D, - 0x1D71E, - 0x1D71F, - 0x1D720, - 0x1D721, - 0x1D722, - 0x1D723, - 0x1D724, - 0x1D725, - 0x1D726, - 0x1D727, - 0x1D728, - 0x1D729, - 0x1D72A, - 0x1D72B, - 0x1D72C, - 0x1D72D, - 0x1D72E, - 0x1D72F, - 0x1D730, - 0x1D731, - 0x1D732, - 0x1D733, - 0x1D734, - 0x1D756, - 0x1D757, - 0x1D758, - 0x1D759, - 0x1D75A, - 0x1D75B, - 0x1D75C, - 0x1D75D, - 0x1D75E, - 0x1D75F, - 0x1D760, - 0x1D761, - 0x1D762, - 0x1D763, - 0x1D764, - 0x1D765, - 0x1D766, - 0x1D767, - 0x1D768, - 0x1D769, - 0x1D76A, - 0x1D76B, - 0x1D76C, - 0x1D76D, - 0x1D76E, - 0x1D790, - 0x1D791, - 0x1D792, - 0x1D793, - 0x1D794, - 0x1D795, - 0x1D796, - 0x1D797, - 0x1D798, - 0x1D799, - 0x1D79A, - 0x1D79B, - 0x1D79C, - 0x1D79D, - 0x1D79E, - 0x1D79F, - 0x1D7A0, - 0x1D7A1, - 0x1D7A2, - 0x1D7A3, - 0x1D7A4, - 0x1D7A5, - 0x1D7A6, - 0x1D7A7, - 0x1D7A8, - 0x1D7CA, +static Rune upper1[][2] = { + { 0x0100, 0x0101 }, + { 0x0102, 0x0103 }, + { 0x0104, 0x0105 }, + { 0x0106, 0x0107 }, + { 0x0108, 0x0109 }, + { 0x010A, 0x010B }, + { 0x010C, 0x010D }, + { 0x010E, 0x010F }, + { 0x0110, 0x0111 }, + { 0x0112, 0x0113 }, + { 0x0114, 0x0115 }, + { 0x0116, 0x0117 }, + { 0x0118, 0x0119 }, + { 0x011A, 0x011B }, + { 0x011C, 0x011D }, + { 0x011E, 0x011F }, + { 0x0120, 0x0121 }, + { 0x0122, 0x0123 }, + { 0x0124, 0x0125 }, + { 0x0126, 0x0127 }, + { 0x0128, 0x0129 }, + { 0x012A, 0x012B }, + { 0x012C, 0x012D }, + { 0x012E, 0x012F }, + { 0x0130, 0x0069 }, + { 0x0132, 0x0133 }, + { 0x0134, 0x0135 }, + { 0x0136, 0x0137 }, + { 0x0139, 0x013A }, + { 0x013B, 0x013C }, + { 0x013D, 0x013E }, + { 0x013F, 0x0140 }, + { 0x0141, 0x0142 }, + { 0x0143, 0x0144 }, + { 0x0145, 0x0146 }, + { 0x0147, 0x0148 }, + { 0x014A, 0x014B }, + { 0x014C, 0x014D }, + { 0x014E, 0x014F }, + { 0x0150, 0x0151 }, + { 0x0152, 0x0153 }, + { 0x0154, 0x0155 }, + { 0x0156, 0x0157 }, + { 0x0158, 0x0159 }, + { 0x015A, 0x015B }, + { 0x015C, 0x015D }, + { 0x015E, 0x015F }, + { 0x0160, 0x0161 }, + { 0x0162, 0x0163 }, + { 0x0164, 0x0165 }, + { 0x0166, 0x0167 }, + { 0x0168, 0x0169 }, + { 0x016A, 0x016B }, + { 0x016C, 0x016D }, + { 0x016E, 0x016F }, + { 0x0170, 0x0171 }, + { 0x0172, 0x0173 }, + { 0x0174, 0x0175 }, + { 0x0176, 0x0177 }, + { 0x0178, 0x00FF }, + { 0x0179, 0x017A }, + { 0x017B, 0x017C }, + { 0x017D, 0x017E }, + { 0x0181, 0x0253 }, + { 0x0182, 0x0183 }, + { 0x0184, 0x0185 }, + { 0x0186, 0x0254 }, + { 0x0187, 0x0188 }, + { 0x018B, 0x018C }, + { 0x018E, 0x01DD }, + { 0x018F, 0x0259 }, + { 0x0190, 0x025B }, + { 0x0191, 0x0192 }, + { 0x0193, 0x0260 }, + { 0x0194, 0x0263 }, + { 0x0196, 0x0269 }, + { 0x0197, 0x0268 }, + { 0x0198, 0x0199 }, + { 0x019C, 0x026F }, + { 0x019D, 0x0272 }, + { 0x019F, 0x0275 }, + { 0x01A0, 0x01A1 }, + { 0x01A2, 0x01A3 }, + { 0x01A4, 0x01A5 }, + { 0x01A6, 0x0280 }, + { 0x01A7, 0x01A8 }, + { 0x01A9, 0x0283 }, + { 0x01AC, 0x01AD }, + { 0x01AE, 0x0288 }, + { 0x01AF, 0x01B0 }, + { 0x01B3, 0x01B4 }, + { 0x01B5, 0x01B6 }, + { 0x01B7, 0x0292 }, + { 0x01B8, 0x01B9 }, + { 0x01BC, 0x01BD }, + { 0x01C4, 0x01C6 }, + { 0x01C7, 0x01C9 }, + { 0x01CA, 0x01CC }, + { 0x01CD, 0x01CE }, + { 0x01CF, 0x01D0 }, + { 0x01D1, 0x01D2 }, + { 0x01D3, 0x01D4 }, + { 0x01D5, 0x01D6 }, + { 0x01D7, 0x01D8 }, + { 0x01D9, 0x01DA }, + { 0x01DB, 0x01DC }, + { 0x01DE, 0x01DF }, + { 0x01E0, 0x01E1 }, + { 0x01E2, 0x01E3 }, + { 0x01E4, 0x01E5 }, + { 0x01E6, 0x01E7 }, + { 0x01E8, 0x01E9 }, + { 0x01EA, 0x01EB }, + { 0x01EC, 0x01ED }, + { 0x01EE, 0x01EF }, + { 0x01F1, 0x01F3 }, + { 0x01F4, 0x01F5 }, + { 0x01F6, 0x0195 }, + { 0x01F7, 0x01BF }, + { 0x01F8, 0x01F9 }, + { 0x01FA, 0x01FB }, + { 0x01FC, 0x01FD }, + { 0x01FE, 0x01FF }, + { 0x0200, 0x0201 }, + { 0x0202, 0x0203 }, + { 0x0204, 0x0205 }, + { 0x0206, 0x0207 }, + { 0x0208, 0x0209 }, + { 0x020A, 0x020B }, + { 0x020C, 0x020D }, + { 0x020E, 0x020F }, + { 0x0210, 0x0211 }, + { 0x0212, 0x0213 }, + { 0x0214, 0x0215 }, + { 0x0216, 0x0217 }, + { 0x0218, 0x0219 }, + { 0x021A, 0x021B }, + { 0x021C, 0x021D }, + { 0x021E, 0x021F }, + { 0x0220, 0x019E }, + { 0x0222, 0x0223 }, + { 0x0224, 0x0225 }, + { 0x0226, 0x0227 }, + { 0x0228, 0x0229 }, + { 0x022A, 0x022B }, + { 0x022C, 0x022D }, + { 0x022E, 0x022F }, + { 0x0230, 0x0231 }, + { 0x0232, 0x0233 }, + { 0x023A, 0x2C65 }, + { 0x023B, 0x023C }, + { 0x023D, 0x019A }, + { 0x023E, 0x2C66 }, + { 0x0241, 0x0242 }, + { 0x0243, 0x0180 }, + { 0x0244, 0x0289 }, + { 0x0245, 0x028C }, + { 0x0246, 0x0247 }, + { 0x0248, 0x0249 }, + { 0x024A, 0x024B }, + { 0x024C, 0x024D }, + { 0x024E, 0x024F }, + { 0x0370, 0x0371 }, + { 0x0372, 0x0373 }, + { 0x0376, 0x0377 }, + { 0x037F, 0x03F3 }, + { 0x0386, 0x03AC }, + { 0x038C, 0x03CC }, + { 0x03CF, 0x03D7 }, + { 0x03D2, 0x03D2 }, + { 0x03D3, 0x03D3 }, + { 0x03D4, 0x03D4 }, + { 0x03D8, 0x03D9 }, + { 0x03DA, 0x03DB }, + { 0x03DC, 0x03DD }, + { 0x03DE, 0x03DF }, + { 0x03E0, 0x03E1 }, + { 0x03E2, 0x03E3 }, + { 0x03E4, 0x03E5 }, + { 0x03E6, 0x03E7 }, + { 0x03E8, 0x03E9 }, + { 0x03EA, 0x03EB }, + { 0x03EC, 0x03ED }, + { 0x03EE, 0x03EF }, + { 0x03F4, 0x03B8 }, + { 0x03F7, 0x03F8 }, + { 0x03F9, 0x03F2 }, + { 0x03FA, 0x03FB }, + { 0x0460, 0x0461 }, + { 0x0462, 0x0463 }, + { 0x0464, 0x0465 }, + { 0x0466, 0x0467 }, + { 0x0468, 0x0469 }, + { 0x046A, 0x046B }, + { 0x046C, 0x046D }, + { 0x046E, 0x046F }, + { 0x0470, 0x0471 }, + { 0x0472, 0x0473 }, + { 0x0474, 0x0475 }, + { 0x0476, 0x0477 }, + { 0x0478, 0x0479 }, + { 0x047A, 0x047B }, + { 0x047C, 0x047D }, + { 0x047E, 0x047F }, + { 0x0480, 0x0481 }, + { 0x048A, 0x048B }, + { 0x048C, 0x048D }, + { 0x048E, 0x048F }, + { 0x0490, 0x0491 }, + { 0x0492, 0x0493 }, + { 0x0494, 0x0495 }, + { 0x0496, 0x0497 }, + { 0x0498, 0x0499 }, + { 0x049A, 0x049B }, + { 0x049C, 0x049D }, + { 0x049E, 0x049F }, + { 0x04A0, 0x04A1 }, + { 0x04A2, 0x04A3 }, + { 0x04A4, 0x04A5 }, + { 0x04A6, 0x04A7 }, + { 0x04A8, 0x04A9 }, + { 0x04AA, 0x04AB }, + { 0x04AC, 0x04AD }, + { 0x04AE, 0x04AF }, + { 0x04B0, 0x04B1 }, + { 0x04B2, 0x04B3 }, + { 0x04B4, 0x04B5 }, + { 0x04B6, 0x04B7 }, + { 0x04B8, 0x04B9 }, + { 0x04BA, 0x04BB }, + { 0x04BC, 0x04BD }, + { 0x04BE, 0x04BF }, + { 0x04C0, 0x04CF }, + { 0x04C1, 0x04C2 }, + { 0x04C3, 0x04C4 }, + { 0x04C5, 0x04C6 }, + { 0x04C7, 0x04C8 }, + { 0x04C9, 0x04CA }, + { 0x04CB, 0x04CC }, + { 0x04CD, 0x04CE }, + { 0x04D0, 0x04D1 }, + { 0x04D2, 0x04D3 }, + { 0x04D4, 0x04D5 }, + { 0x04D6, 0x04D7 }, + { 0x04D8, 0x04D9 }, + { 0x04DA, 0x04DB }, + { 0x04DC, 0x04DD }, + { 0x04DE, 0x04DF }, + { 0x04E0, 0x04E1 }, + { 0x04E2, 0x04E3 }, + { 0x04E4, 0x04E5 }, + { 0x04E6, 0x04E7 }, + { 0x04E8, 0x04E9 }, + { 0x04EA, 0x04EB }, + { 0x04EC, 0x04ED }, + { 0x04EE, 0x04EF }, + { 0x04F0, 0x04F1 }, + { 0x04F2, 0x04F3 }, + { 0x04F4, 0x04F5 }, + { 0x04F6, 0x04F7 }, + { 0x04F8, 0x04F9 }, + { 0x04FA, 0x04FB }, + { 0x04FC, 0x04FD }, + { 0x04FE, 0x04FF }, + { 0x0500, 0x0501 }, + { 0x0502, 0x0503 }, + { 0x0504, 0x0505 }, + { 0x0506, 0x0507 }, + { 0x0508, 0x0509 }, + { 0x050A, 0x050B }, + { 0x050C, 0x050D }, + { 0x050E, 0x050F }, + { 0x0510, 0x0511 }, + { 0x0512, 0x0513 }, + { 0x0514, 0x0515 }, + { 0x0516, 0x0517 }, + { 0x0518, 0x0519 }, + { 0x051A, 0x051B }, + { 0x051C, 0x051D }, + { 0x051E, 0x051F }, + { 0x0520, 0x0521 }, + { 0x0522, 0x0523 }, + { 0x0524, 0x0525 }, + { 0x0526, 0x0527 }, + { 0x0528, 0x0529 }, + { 0x052A, 0x052B }, + { 0x052C, 0x052D }, + { 0x052E, 0x052F }, + { 0x10C7, 0x2D27 }, + { 0x10CD, 0x2D2D }, + { 0x1E00, 0x1E01 }, + { 0x1E02, 0x1E03 }, + { 0x1E04, 0x1E05 }, + { 0x1E06, 0x1E07 }, + { 0x1E08, 0x1E09 }, + { 0x1E0A, 0x1E0B }, + { 0x1E0C, 0x1E0D }, + { 0x1E0E, 0x1E0F }, + { 0x1E10, 0x1E11 }, + { 0x1E12, 0x1E13 }, + { 0x1E14, 0x1E15 }, + { 0x1E16, 0x1E17 }, + { 0x1E18, 0x1E19 }, + { 0x1E1A, 0x1E1B }, + { 0x1E1C, 0x1E1D }, + { 0x1E1E, 0x1E1F }, + { 0x1E20, 0x1E21 }, + { 0x1E22, 0x1E23 }, + { 0x1E24, 0x1E25 }, + { 0x1E26, 0x1E27 }, + { 0x1E28, 0x1E29 }, + { 0x1E2A, 0x1E2B }, + { 0x1E2C, 0x1E2D }, + { 0x1E2E, 0x1E2F }, + { 0x1E30, 0x1E31 }, + { 0x1E32, 0x1E33 }, + { 0x1E34, 0x1E35 }, + { 0x1E36, 0x1E37 }, + { 0x1E38, 0x1E39 }, + { 0x1E3A, 0x1E3B }, + { 0x1E3C, 0x1E3D }, + { 0x1E3E, 0x1E3F }, + { 0x1E40, 0x1E41 }, + { 0x1E42, 0x1E43 }, + { 0x1E44, 0x1E45 }, + { 0x1E46, 0x1E47 }, + { 0x1E48, 0x1E49 }, + { 0x1E4A, 0x1E4B }, + { 0x1E4C, 0x1E4D }, + { 0x1E4E, 0x1E4F }, + { 0x1E50, 0x1E51 }, + { 0x1E52, 0x1E53 }, + { 0x1E54, 0x1E55 }, + { 0x1E56, 0x1E57 }, + { 0x1E58, 0x1E59 }, + { 0x1E5A, 0x1E5B }, + { 0x1E5C, 0x1E5D }, + { 0x1E5E, 0x1E5F }, + { 0x1E60, 0x1E61 }, + { 0x1E62, 0x1E63 }, + { 0x1E64, 0x1E65 }, + { 0x1E66, 0x1E67 }, + { 0x1E68, 0x1E69 }, + { 0x1E6A, 0x1E6B }, + { 0x1E6C, 0x1E6D }, + { 0x1E6E, 0x1E6F }, + { 0x1E70, 0x1E71 }, + { 0x1E72, 0x1E73 }, + { 0x1E74, 0x1E75 }, + { 0x1E76, 0x1E77 }, + { 0x1E78, 0x1E79 }, + { 0x1E7A, 0x1E7B }, + { 0x1E7C, 0x1E7D }, + { 0x1E7E, 0x1E7F }, + { 0x1E80, 0x1E81 }, + { 0x1E82, 0x1E83 }, + { 0x1E84, 0x1E85 }, + { 0x1E86, 0x1E87 }, + { 0x1E88, 0x1E89 }, + { 0x1E8A, 0x1E8B }, + { 0x1E8C, 0x1E8D }, + { 0x1E8E, 0x1E8F }, + { 0x1E90, 0x1E91 }, + { 0x1E92, 0x1E93 }, + { 0x1E94, 0x1E95 }, + { 0x1E9E, 0x00DF }, + { 0x1EA0, 0x1EA1 }, + { 0x1EA2, 0x1EA3 }, + { 0x1EA4, 0x1EA5 }, + { 0x1EA6, 0x1EA7 }, + { 0x1EA8, 0x1EA9 }, + { 0x1EAA, 0x1EAB }, + { 0x1EAC, 0x1EAD }, + { 0x1EAE, 0x1EAF }, + { 0x1EB0, 0x1EB1 }, + { 0x1EB2, 0x1EB3 }, + { 0x1EB4, 0x1EB5 }, + { 0x1EB6, 0x1EB7 }, + { 0x1EB8, 0x1EB9 }, + { 0x1EBA, 0x1EBB }, + { 0x1EBC, 0x1EBD }, + { 0x1EBE, 0x1EBF }, + { 0x1EC0, 0x1EC1 }, + { 0x1EC2, 0x1EC3 }, + { 0x1EC4, 0x1EC5 }, + { 0x1EC6, 0x1EC7 }, + { 0x1EC8, 0x1EC9 }, + { 0x1ECA, 0x1ECB }, + { 0x1ECC, 0x1ECD }, + { 0x1ECE, 0x1ECF }, + { 0x1ED0, 0x1ED1 }, + { 0x1ED2, 0x1ED3 }, + { 0x1ED4, 0x1ED5 }, + { 0x1ED6, 0x1ED7 }, + { 0x1ED8, 0x1ED9 }, + { 0x1EDA, 0x1EDB }, + { 0x1EDC, 0x1EDD }, + { 0x1EDE, 0x1EDF }, + { 0x1EE0, 0x1EE1 }, + { 0x1EE2, 0x1EE3 }, + { 0x1EE4, 0x1EE5 }, + { 0x1EE6, 0x1EE7 }, + { 0x1EE8, 0x1EE9 }, + { 0x1EEA, 0x1EEB }, + { 0x1EEC, 0x1EED }, + { 0x1EEE, 0x1EEF }, + { 0x1EF0, 0x1EF1 }, + { 0x1EF2, 0x1EF3 }, + { 0x1EF4, 0x1EF5 }, + { 0x1EF6, 0x1EF7 }, + { 0x1EF8, 0x1EF9 }, + { 0x1EFA, 0x1EFB }, + { 0x1EFC, 0x1EFD }, + { 0x1EFE, 0x1EFF }, + { 0x1F59, 0x1F51 }, + { 0x1F5B, 0x1F53 }, + { 0x1F5D, 0x1F55 }, + { 0x1F5F, 0x1F57 }, + { 0x1FEC, 0x1FE5 }, + { 0x2102, 0x2102 }, + { 0x2107, 0x2107 }, + { 0x210B, 0x210B }, + { 0x210C, 0x210C }, + { 0x210D, 0x210D }, + { 0x2110, 0x2110 }, + { 0x2111, 0x2111 }, + { 0x2112, 0x2112 }, + { 0x2115, 0x2115 }, + { 0x2119, 0x2119 }, + { 0x211A, 0x211A }, + { 0x211B, 0x211B }, + { 0x211C, 0x211C }, + { 0x211D, 0x211D }, + { 0x2124, 0x2124 }, + { 0x2126, 0x03C9 }, + { 0x2128, 0x2128 }, + { 0x212A, 0x006B }, + { 0x212B, 0x00E5 }, + { 0x212C, 0x212C }, + { 0x212D, 0x212D }, + { 0x2130, 0x2130 }, + { 0x2131, 0x2131 }, + { 0x2132, 0x214E }, + { 0x2133, 0x2133 }, + { 0x213E, 0x213E }, + { 0x213F, 0x213F }, + { 0x2145, 0x2145 }, + { 0x2183, 0x2184 }, + { 0x2C60, 0x2C61 }, + { 0x2C62, 0x026B }, + { 0x2C63, 0x1D7D }, + { 0x2C64, 0x027D }, + { 0x2C67, 0x2C68 }, + { 0x2C69, 0x2C6A }, + { 0x2C6B, 0x2C6C }, + { 0x2C6D, 0x0251 }, + { 0x2C6E, 0x0271 }, + { 0x2C6F, 0x0250 }, + { 0x2C70, 0x0252 }, + { 0x2C72, 0x2C73 }, + { 0x2C75, 0x2C76 }, + { 0x2C80, 0x2C81 }, + { 0x2C82, 0x2C83 }, + { 0x2C84, 0x2C85 }, + { 0x2C86, 0x2C87 }, + { 0x2C88, 0x2C89 }, + { 0x2C8A, 0x2C8B }, + { 0x2C8C, 0x2C8D }, + { 0x2C8E, 0x2C8F }, + { 0x2C90, 0x2C91 }, + { 0x2C92, 0x2C93 }, + { 0x2C94, 0x2C95 }, + { 0x2C96, 0x2C97 }, + { 0x2C98, 0x2C99 }, + { 0x2C9A, 0x2C9B }, + { 0x2C9C, 0x2C9D }, + { 0x2C9E, 0x2C9F }, + { 0x2CA0, 0x2CA1 }, + { 0x2CA2, 0x2CA3 }, + { 0x2CA4, 0x2CA5 }, + { 0x2CA6, 0x2CA7 }, + { 0x2CA8, 0x2CA9 }, + { 0x2CAA, 0x2CAB }, + { 0x2CAC, 0x2CAD }, + { 0x2CAE, 0x2CAF }, + { 0x2CB0, 0x2CB1 }, + { 0x2CB2, 0x2CB3 }, + { 0x2CB4, 0x2CB5 }, + { 0x2CB6, 0x2CB7 }, + { 0x2CB8, 0x2CB9 }, + { 0x2CBA, 0x2CBB }, + { 0x2CBC, 0x2CBD }, + { 0x2CBE, 0x2CBF }, + { 0x2CC0, 0x2CC1 }, + { 0x2CC2, 0x2CC3 }, + { 0x2CC4, 0x2CC5 }, + { 0x2CC6, 0x2CC7 }, + { 0x2CC8, 0x2CC9 }, + { 0x2CCA, 0x2CCB }, + { 0x2CCC, 0x2CCD }, + { 0x2CCE, 0x2CCF }, + { 0x2CD0, 0x2CD1 }, + { 0x2CD2, 0x2CD3 }, + { 0x2CD4, 0x2CD5 }, + { 0x2CD6, 0x2CD7 }, + { 0x2CD8, 0x2CD9 }, + { 0x2CDA, 0x2CDB }, + { 0x2CDC, 0x2CDD }, + { 0x2CDE, 0x2CDF }, + { 0x2CE0, 0x2CE1 }, + { 0x2CE2, 0x2CE3 }, + { 0x2CEB, 0x2CEC }, + { 0x2CED, 0x2CEE }, + { 0x2CF2, 0x2CF3 }, + { 0xA640, 0xA641 }, + { 0xA642, 0xA643 }, + { 0xA644, 0xA645 }, + { 0xA646, 0xA647 }, + { 0xA648, 0xA649 }, + { 0xA64A, 0xA64B }, + { 0xA64C, 0xA64D }, + { 0xA64E, 0xA64F }, + { 0xA650, 0xA651 }, + { 0xA652, 0xA653 }, + { 0xA654, 0xA655 }, + { 0xA656, 0xA657 }, + { 0xA658, 0xA659 }, + { 0xA65A, 0xA65B }, + { 0xA65C, 0xA65D }, + { 0xA65E, 0xA65F }, + { 0xA660, 0xA661 }, + { 0xA662, 0xA663 }, + { 0xA664, 0xA665 }, + { 0xA666, 0xA667 }, + { 0xA668, 0xA669 }, + { 0xA66A, 0xA66B }, + { 0xA66C, 0xA66D }, + { 0xA680, 0xA681 }, + { 0xA682, 0xA683 }, + { 0xA684, 0xA685 }, + { 0xA686, 0xA687 }, + { 0xA688, 0xA689 }, + { 0xA68A, 0xA68B }, + { 0xA68C, 0xA68D }, + { 0xA68E, 0xA68F }, + { 0xA690, 0xA691 }, + { 0xA692, 0xA693 }, + { 0xA694, 0xA695 }, + { 0xA696, 0xA697 }, + { 0xA698, 0xA699 }, + { 0xA69A, 0xA69B }, + { 0xA722, 0xA723 }, + { 0xA724, 0xA725 }, + { 0xA726, 0xA727 }, + { 0xA728, 0xA729 }, + { 0xA72A, 0xA72B }, + { 0xA72C, 0xA72D }, + { 0xA72E, 0xA72F }, + { 0xA732, 0xA733 }, + { 0xA734, 0xA735 }, + { 0xA736, 0xA737 }, + { 0xA738, 0xA739 }, + { 0xA73A, 0xA73B }, + { 0xA73C, 0xA73D }, + { 0xA73E, 0xA73F }, + { 0xA740, 0xA741 }, + { 0xA742, 0xA743 }, + { 0xA744, 0xA745 }, + { 0xA746, 0xA747 }, + { 0xA748, 0xA749 }, + { 0xA74A, 0xA74B }, + { 0xA74C, 0xA74D }, + { 0xA74E, 0xA74F }, + { 0xA750, 0xA751 }, + { 0xA752, 0xA753 }, + { 0xA754, 0xA755 }, + { 0xA756, 0xA757 }, + { 0xA758, 0xA759 }, + { 0xA75A, 0xA75B }, + { 0xA75C, 0xA75D }, + { 0xA75E, 0xA75F }, + { 0xA760, 0xA761 }, + { 0xA762, 0xA763 }, + { 0xA764, 0xA765 }, + { 0xA766, 0xA767 }, + { 0xA768, 0xA769 }, + { 0xA76A, 0xA76B }, + { 0xA76C, 0xA76D }, + { 0xA76E, 0xA76F }, + { 0xA779, 0xA77A }, + { 0xA77B, 0xA77C }, + { 0xA77D, 0x1D79 }, + { 0xA77E, 0xA77F }, + { 0xA780, 0xA781 }, + { 0xA782, 0xA783 }, + { 0xA784, 0xA785 }, + { 0xA786, 0xA787 }, + { 0xA78B, 0xA78C }, + { 0xA78D, 0x0265 }, + { 0xA790, 0xA791 }, + { 0xA792, 0xA793 }, + { 0xA796, 0xA797 }, + { 0xA798, 0xA799 }, + { 0xA79A, 0xA79B }, + { 0xA79C, 0xA79D }, + { 0xA79E, 0xA79F }, + { 0xA7A0, 0xA7A1 }, + { 0xA7A2, 0xA7A3 }, + { 0xA7A4, 0xA7A5 }, + { 0xA7A6, 0xA7A7 }, + { 0xA7A8, 0xA7A9 }, + { 0xA7AA, 0x0266 }, + { 0xA7AB, 0x025C }, + { 0xA7AC, 0x0261 }, + { 0xA7AD, 0x026C }, + { 0xA7B0, 0x029E }, + { 0xA7B1, 0x0287 }, + { 0x1D400, 0x1D400 }, + { 0x1D401, 0x1D401 }, + { 0x1D402, 0x1D402 }, + { 0x1D403, 0x1D403 }, + { 0x1D404, 0x1D404 }, + { 0x1D405, 0x1D405 }, + { 0x1D406, 0x1D406 }, + { 0x1D407, 0x1D407 }, + { 0x1D408, 0x1D408 }, + { 0x1D409, 0x1D409 }, + { 0x1D40A, 0x1D40A }, + { 0x1D40B, 0x1D40B }, + { 0x1D40C, 0x1D40C }, + { 0x1D40D, 0x1D40D }, + { 0x1D40E, 0x1D40E }, + { 0x1D40F, 0x1D40F }, + { 0x1D410, 0x1D410 }, + { 0x1D411, 0x1D411 }, + { 0x1D412, 0x1D412 }, + { 0x1D413, 0x1D413 }, + { 0x1D414, 0x1D414 }, + { 0x1D415, 0x1D415 }, + { 0x1D416, 0x1D416 }, + { 0x1D417, 0x1D417 }, + { 0x1D418, 0x1D418 }, + { 0x1D419, 0x1D419 }, + { 0x1D434, 0x1D434 }, + { 0x1D435, 0x1D435 }, + { 0x1D436, 0x1D436 }, + { 0x1D437, 0x1D437 }, + { 0x1D438, 0x1D438 }, + { 0x1D439, 0x1D439 }, + { 0x1D43A, 0x1D43A }, + { 0x1D43B, 0x1D43B }, + { 0x1D43C, 0x1D43C }, + { 0x1D43D, 0x1D43D }, + { 0x1D43E, 0x1D43E }, + { 0x1D43F, 0x1D43F }, + { 0x1D440, 0x1D440 }, + { 0x1D441, 0x1D441 }, + { 0x1D442, 0x1D442 }, + { 0x1D443, 0x1D443 }, + { 0x1D444, 0x1D444 }, + { 0x1D445, 0x1D445 }, + { 0x1D446, 0x1D446 }, + { 0x1D447, 0x1D447 }, + { 0x1D448, 0x1D448 }, + { 0x1D449, 0x1D449 }, + { 0x1D44A, 0x1D44A }, + { 0x1D44B, 0x1D44B }, + { 0x1D44C, 0x1D44C }, + { 0x1D44D, 0x1D44D }, + { 0x1D468, 0x1D468 }, + { 0x1D469, 0x1D469 }, + { 0x1D46A, 0x1D46A }, + { 0x1D46B, 0x1D46B }, + { 0x1D46C, 0x1D46C }, + { 0x1D46D, 0x1D46D }, + { 0x1D46E, 0x1D46E }, + { 0x1D46F, 0x1D46F }, + { 0x1D470, 0x1D470 }, + { 0x1D471, 0x1D471 }, + { 0x1D472, 0x1D472 }, + { 0x1D473, 0x1D473 }, + { 0x1D474, 0x1D474 }, + { 0x1D475, 0x1D475 }, + { 0x1D476, 0x1D476 }, + { 0x1D477, 0x1D477 }, + { 0x1D478, 0x1D478 }, + { 0x1D479, 0x1D479 }, + { 0x1D47A, 0x1D47A }, + { 0x1D47B, 0x1D47B }, + { 0x1D47C, 0x1D47C }, + { 0x1D47D, 0x1D47D }, + { 0x1D47E, 0x1D47E }, + { 0x1D47F, 0x1D47F }, + { 0x1D480, 0x1D480 }, + { 0x1D481, 0x1D481 }, + { 0x1D49C, 0x1D49C }, + { 0x1D49E, 0x1D49E }, + { 0x1D49F, 0x1D49F }, + { 0x1D4A2, 0x1D4A2 }, + { 0x1D4A5, 0x1D4A5 }, + { 0x1D4A6, 0x1D4A6 }, + { 0x1D4A9, 0x1D4A9 }, + { 0x1D4AA, 0x1D4AA }, + { 0x1D4AB, 0x1D4AB }, + { 0x1D4AC, 0x1D4AC }, + { 0x1D4AE, 0x1D4AE }, + { 0x1D4AF, 0x1D4AF }, + { 0x1D4B0, 0x1D4B0 }, + { 0x1D4B1, 0x1D4B1 }, + { 0x1D4B2, 0x1D4B2 }, + { 0x1D4B3, 0x1D4B3 }, + { 0x1D4B4, 0x1D4B4 }, + { 0x1D4B5, 0x1D4B5 }, + { 0x1D4D0, 0x1D4D0 }, + { 0x1D4D1, 0x1D4D1 }, + { 0x1D4D2, 0x1D4D2 }, + { 0x1D4D3, 0x1D4D3 }, + { 0x1D4D4, 0x1D4D4 }, + { 0x1D4D5, 0x1D4D5 }, + { 0x1D4D6, 0x1D4D6 }, + { 0x1D4D7, 0x1D4D7 }, + { 0x1D4D8, 0x1D4D8 }, + { 0x1D4D9, 0x1D4D9 }, + { 0x1D4DA, 0x1D4DA }, + { 0x1D4DB, 0x1D4DB }, + { 0x1D4DC, 0x1D4DC }, + { 0x1D4DD, 0x1D4DD }, + { 0x1D4DE, 0x1D4DE }, + { 0x1D4DF, 0x1D4DF }, + { 0x1D4E0, 0x1D4E0 }, + { 0x1D4E1, 0x1D4E1 }, + { 0x1D4E2, 0x1D4E2 }, + { 0x1D4E3, 0x1D4E3 }, + { 0x1D4E4, 0x1D4E4 }, + { 0x1D4E5, 0x1D4E5 }, + { 0x1D4E6, 0x1D4E6 }, + { 0x1D4E7, 0x1D4E7 }, + { 0x1D4E8, 0x1D4E8 }, + { 0x1D4E9, 0x1D4E9 }, + { 0x1D504, 0x1D504 }, + { 0x1D505, 0x1D505 }, + { 0x1D507, 0x1D507 }, + { 0x1D508, 0x1D508 }, + { 0x1D509, 0x1D509 }, + { 0x1D50A, 0x1D50A }, + { 0x1D50D, 0x1D50D }, + { 0x1D50E, 0x1D50E }, + { 0x1D50F, 0x1D50F }, + { 0x1D510, 0x1D510 }, + { 0x1D511, 0x1D511 }, + { 0x1D512, 0x1D512 }, + { 0x1D513, 0x1D513 }, + { 0x1D514, 0x1D514 }, + { 0x1D516, 0x1D516 }, + { 0x1D517, 0x1D517 }, + { 0x1D518, 0x1D518 }, + { 0x1D519, 0x1D519 }, + { 0x1D51A, 0x1D51A }, + { 0x1D51B, 0x1D51B }, + { 0x1D51C, 0x1D51C }, + { 0x1D538, 0x1D538 }, + { 0x1D539, 0x1D539 }, + { 0x1D53B, 0x1D53B }, + { 0x1D53C, 0x1D53C }, + { 0x1D53D, 0x1D53D }, + { 0x1D53E, 0x1D53E }, + { 0x1D540, 0x1D540 }, + { 0x1D541, 0x1D541 }, + { 0x1D542, 0x1D542 }, + { 0x1D543, 0x1D543 }, + { 0x1D544, 0x1D544 }, + { 0x1D546, 0x1D546 }, + { 0x1D54A, 0x1D54A }, + { 0x1D54B, 0x1D54B }, + { 0x1D54C, 0x1D54C }, + { 0x1D54D, 0x1D54D }, + { 0x1D54E, 0x1D54E }, + { 0x1D54F, 0x1D54F }, + { 0x1D550, 0x1D550 }, + { 0x1D56C, 0x1D56C }, + { 0x1D56D, 0x1D56D }, + { 0x1D56E, 0x1D56E }, + { 0x1D56F, 0x1D56F }, + { 0x1D570, 0x1D570 }, + { 0x1D571, 0x1D571 }, + { 0x1D572, 0x1D572 }, + { 0x1D573, 0x1D573 }, + { 0x1D574, 0x1D574 }, + { 0x1D575, 0x1D575 }, + { 0x1D576, 0x1D576 }, + { 0x1D577, 0x1D577 }, + { 0x1D578, 0x1D578 }, + { 0x1D579, 0x1D579 }, + { 0x1D57A, 0x1D57A }, + { 0x1D57B, 0x1D57B }, + { 0x1D57C, 0x1D57C }, + { 0x1D57D, 0x1D57D }, + { 0x1D57E, 0x1D57E }, + { 0x1D57F, 0x1D57F }, + { 0x1D580, 0x1D580 }, + { 0x1D581, 0x1D581 }, + { 0x1D582, 0x1D582 }, + { 0x1D583, 0x1D583 }, + { 0x1D584, 0x1D584 }, + { 0x1D585, 0x1D585 }, + { 0x1D5A0, 0x1D5A0 }, + { 0x1D5A1, 0x1D5A1 }, + { 0x1D5A2, 0x1D5A2 }, + { 0x1D5A3, 0x1D5A3 }, + { 0x1D5A4, 0x1D5A4 }, + { 0x1D5A5, 0x1D5A5 }, + { 0x1D5A6, 0x1D5A6 }, + { 0x1D5A7, 0x1D5A7 }, + { 0x1D5A8, 0x1D5A8 }, + { 0x1D5A9, 0x1D5A9 }, + { 0x1D5AA, 0x1D5AA }, + { 0x1D5AB, 0x1D5AB }, + { 0x1D5AC, 0x1D5AC }, + { 0x1D5AD, 0x1D5AD }, + { 0x1D5AE, 0x1D5AE }, + { 0x1D5AF, 0x1D5AF }, + { 0x1D5B0, 0x1D5B0 }, + { 0x1D5B1, 0x1D5B1 }, + { 0x1D5B2, 0x1D5B2 }, + { 0x1D5B3, 0x1D5B3 }, + { 0x1D5B4, 0x1D5B4 }, + { 0x1D5B5, 0x1D5B5 }, + { 0x1D5B6, 0x1D5B6 }, + { 0x1D5B7, 0x1D5B7 }, + { 0x1D5B8, 0x1D5B8 }, + { 0x1D5B9, 0x1D5B9 }, + { 0x1D5D4, 0x1D5D4 }, + { 0x1D5D5, 0x1D5D5 }, + { 0x1D5D6, 0x1D5D6 }, + { 0x1D5D7, 0x1D5D7 }, + { 0x1D5D8, 0x1D5D8 }, + { 0x1D5D9, 0x1D5D9 }, + { 0x1D5DA, 0x1D5DA }, + { 0x1D5DB, 0x1D5DB }, + { 0x1D5DC, 0x1D5DC }, + { 0x1D5DD, 0x1D5DD }, + { 0x1D5DE, 0x1D5DE }, + { 0x1D5DF, 0x1D5DF }, + { 0x1D5E0, 0x1D5E0 }, + { 0x1D5E1, 0x1D5E1 }, + { 0x1D5E2, 0x1D5E2 }, + { 0x1D5E3, 0x1D5E3 }, + { 0x1D5E4, 0x1D5E4 }, + { 0x1D5E5, 0x1D5E5 }, + { 0x1D5E6, 0x1D5E6 }, + { 0x1D5E7, 0x1D5E7 }, + { 0x1D5E8, 0x1D5E8 }, + { 0x1D5E9, 0x1D5E9 }, + { 0x1D5EA, 0x1D5EA }, + { 0x1D5EB, 0x1D5EB }, + { 0x1D5EC, 0x1D5EC }, + { 0x1D5ED, 0x1D5ED }, + { 0x1D608, 0x1D608 }, + { 0x1D609, 0x1D609 }, + { 0x1D60A, 0x1D60A }, + { 0x1D60B, 0x1D60B }, + { 0x1D60C, 0x1D60C }, + { 0x1D60D, 0x1D60D }, + { 0x1D60E, 0x1D60E }, + { 0x1D60F, 0x1D60F }, + { 0x1D610, 0x1D610 }, + { 0x1D611, 0x1D611 }, + { 0x1D612, 0x1D612 }, + { 0x1D613, 0x1D613 }, + { 0x1D614, 0x1D614 }, + { 0x1D615, 0x1D615 }, + { 0x1D616, 0x1D616 }, + { 0x1D617, 0x1D617 }, + { 0x1D618, 0x1D618 }, + { 0x1D619, 0x1D619 }, + { 0x1D61A, 0x1D61A }, + { 0x1D61B, 0x1D61B }, + { 0x1D61C, 0x1D61C }, + { 0x1D61D, 0x1D61D }, + { 0x1D61E, 0x1D61E }, + { 0x1D61F, 0x1D61F }, + { 0x1D620, 0x1D620 }, + { 0x1D621, 0x1D621 }, + { 0x1D63C, 0x1D63C }, + { 0x1D63D, 0x1D63D }, + { 0x1D63E, 0x1D63E }, + { 0x1D63F, 0x1D63F }, + { 0x1D640, 0x1D640 }, + { 0x1D641, 0x1D641 }, + { 0x1D642, 0x1D642 }, + { 0x1D643, 0x1D643 }, + { 0x1D644, 0x1D644 }, + { 0x1D645, 0x1D645 }, + { 0x1D646, 0x1D646 }, + { 0x1D647, 0x1D647 }, + { 0x1D648, 0x1D648 }, + { 0x1D649, 0x1D649 }, + { 0x1D64A, 0x1D64A }, + { 0x1D64B, 0x1D64B }, + { 0x1D64C, 0x1D64C }, + { 0x1D64D, 0x1D64D }, + { 0x1D64E, 0x1D64E }, + { 0x1D64F, 0x1D64F }, + { 0x1D650, 0x1D650 }, + { 0x1D651, 0x1D651 }, + { 0x1D652, 0x1D652 }, + { 0x1D653, 0x1D653 }, + { 0x1D654, 0x1D654 }, + { 0x1D655, 0x1D655 }, + { 0x1D670, 0x1D670 }, + { 0x1D671, 0x1D671 }, + { 0x1D672, 0x1D672 }, + { 0x1D673, 0x1D673 }, + { 0x1D674, 0x1D674 }, + { 0x1D675, 0x1D675 }, + { 0x1D676, 0x1D676 }, + { 0x1D677, 0x1D677 }, + { 0x1D678, 0x1D678 }, + { 0x1D679, 0x1D679 }, + { 0x1D67A, 0x1D67A }, + { 0x1D67B, 0x1D67B }, + { 0x1D67C, 0x1D67C }, + { 0x1D67D, 0x1D67D }, + { 0x1D67E, 0x1D67E }, + { 0x1D67F, 0x1D67F }, + { 0x1D680, 0x1D680 }, + { 0x1D681, 0x1D681 }, + { 0x1D682, 0x1D682 }, + { 0x1D683, 0x1D683 }, + { 0x1D684, 0x1D684 }, + { 0x1D685, 0x1D685 }, + { 0x1D686, 0x1D686 }, + { 0x1D687, 0x1D687 }, + { 0x1D688, 0x1D688 }, + { 0x1D689, 0x1D689 }, + { 0x1D6A8, 0x1D6A8 }, + { 0x1D6A9, 0x1D6A9 }, + { 0x1D6AA, 0x1D6AA }, + { 0x1D6AB, 0x1D6AB }, + { 0x1D6AC, 0x1D6AC }, + { 0x1D6AD, 0x1D6AD }, + { 0x1D6AE, 0x1D6AE }, + { 0x1D6AF, 0x1D6AF }, + { 0x1D6B0, 0x1D6B0 }, + { 0x1D6B1, 0x1D6B1 }, + { 0x1D6B2, 0x1D6B2 }, + { 0x1D6B3, 0x1D6B3 }, + { 0x1D6B4, 0x1D6B4 }, + { 0x1D6B5, 0x1D6B5 }, + { 0x1D6B6, 0x1D6B6 }, + { 0x1D6B7, 0x1D6B7 }, + { 0x1D6B8, 0x1D6B8 }, + { 0x1D6B9, 0x1D6B9 }, + { 0x1D6BA, 0x1D6BA }, + { 0x1D6BB, 0x1D6BB }, + { 0x1D6BC, 0x1D6BC }, + { 0x1D6BD, 0x1D6BD }, + { 0x1D6BE, 0x1D6BE }, + { 0x1D6BF, 0x1D6BF }, + { 0x1D6C0, 0x1D6C0 }, + { 0x1D6E2, 0x1D6E2 }, + { 0x1D6E3, 0x1D6E3 }, + { 0x1D6E4, 0x1D6E4 }, + { 0x1D6E5, 0x1D6E5 }, + { 0x1D6E6, 0x1D6E6 }, + { 0x1D6E7, 0x1D6E7 }, + { 0x1D6E8, 0x1D6E8 }, + { 0x1D6E9, 0x1D6E9 }, + { 0x1D6EA, 0x1D6EA }, + { 0x1D6EB, 0x1D6EB }, + { 0x1D6EC, 0x1D6EC }, + { 0x1D6ED, 0x1D6ED }, + { 0x1D6EE, 0x1D6EE }, + { 0x1D6EF, 0x1D6EF }, + { 0x1D6F0, 0x1D6F0 }, + { 0x1D6F1, 0x1D6F1 }, + { 0x1D6F2, 0x1D6F2 }, + { 0x1D6F3, 0x1D6F3 }, + { 0x1D6F4, 0x1D6F4 }, + { 0x1D6F5, 0x1D6F5 }, + { 0x1D6F6, 0x1D6F6 }, + { 0x1D6F7, 0x1D6F7 }, + { 0x1D6F8, 0x1D6F8 }, + { 0x1D6F9, 0x1D6F9 }, + { 0x1D6FA, 0x1D6FA }, + { 0x1D71C, 0x1D71C }, + { 0x1D71D, 0x1D71D }, + { 0x1D71E, 0x1D71E }, + { 0x1D71F, 0x1D71F }, + { 0x1D720, 0x1D720 }, + { 0x1D721, 0x1D721 }, + { 0x1D722, 0x1D722 }, + { 0x1D723, 0x1D723 }, + { 0x1D724, 0x1D724 }, + { 0x1D725, 0x1D725 }, + { 0x1D726, 0x1D726 }, + { 0x1D727, 0x1D727 }, + { 0x1D728, 0x1D728 }, + { 0x1D729, 0x1D729 }, + { 0x1D72A, 0x1D72A }, + { 0x1D72B, 0x1D72B }, + { 0x1D72C, 0x1D72C }, + { 0x1D72D, 0x1D72D }, + { 0x1D72E, 0x1D72E }, + { 0x1D72F, 0x1D72F }, + { 0x1D730, 0x1D730 }, + { 0x1D731, 0x1D731 }, + { 0x1D732, 0x1D732 }, + { 0x1D733, 0x1D733 }, + { 0x1D734, 0x1D734 }, + { 0x1D756, 0x1D756 }, + { 0x1D757, 0x1D757 }, + { 0x1D758, 0x1D758 }, + { 0x1D759, 0x1D759 }, + { 0x1D75A, 0x1D75A }, + { 0x1D75B, 0x1D75B }, + { 0x1D75C, 0x1D75C }, + { 0x1D75D, 0x1D75D }, + { 0x1D75E, 0x1D75E }, + { 0x1D75F, 0x1D75F }, + { 0x1D760, 0x1D760 }, + { 0x1D761, 0x1D761 }, + { 0x1D762, 0x1D762 }, + { 0x1D763, 0x1D763 }, + { 0x1D764, 0x1D764 }, + { 0x1D765, 0x1D765 }, + { 0x1D766, 0x1D766 }, + { 0x1D767, 0x1D767 }, + { 0x1D768, 0x1D768 }, + { 0x1D769, 0x1D769 }, + { 0x1D76A, 0x1D76A }, + { 0x1D76B, 0x1D76B }, + { 0x1D76C, 0x1D76C }, + { 0x1D76D, 0x1D76D }, + { 0x1D76E, 0x1D76E }, + { 0x1D790, 0x1D790 }, + { 0x1D791, 0x1D791 }, + { 0x1D792, 0x1D792 }, + { 0x1D793, 0x1D793 }, + { 0x1D794, 0x1D794 }, + { 0x1D795, 0x1D795 }, + { 0x1D796, 0x1D796 }, + { 0x1D797, 0x1D797 }, + { 0x1D798, 0x1D798 }, + { 0x1D799, 0x1D799 }, + { 0x1D79A, 0x1D79A }, + { 0x1D79B, 0x1D79B }, + { 0x1D79C, 0x1D79C }, + { 0x1D79D, 0x1D79D }, + { 0x1D79E, 0x1D79E }, + { 0x1D79F, 0x1D79F }, + { 0x1D7A0, 0x1D7A0 }, + { 0x1D7A1, 0x1D7A1 }, + { 0x1D7A2, 0x1D7A2 }, + { 0x1D7A3, 0x1D7A3 }, + { 0x1D7A4, 0x1D7A4 }, + { 0x1D7A5, 0x1D7A5 }, + { 0x1D7A6, 0x1D7A6 }, + { 0x1D7A7, 0x1D7A7 }, + { 0x1D7A8, 0x1D7A8 }, + { 0x1D7CA, 0x1D7CA }, }; int @@ -2219,15 +1118,15 @@ isupperrune(Rune r) int tolowerrune(Rune r) { - Rune *match1, (*match2)[2]; - - match2 = bsearch(&r, upper2, nelem(upper2), sizeof *upper2, &rune2cmp); - if (match2) - r = *upper2lowercase[match2 - upper2] + (r - **match2); + Rune *match1, *match2; match1 = bsearch(&r, upper1, nelem(upper1), sizeof *upper1, &rune1cmp); if (match1) - r = upper1lowercase[match1 - upper1]; + r = match1[1]; + + match2 = bsearch(&r, upper2, nelem(upper2), sizeof *upper2, &rune2cmp); + if (match2) + r = match2[2] + (r - match2[0]); return r; }