--- /dev/null
+
+/* This file is autogenerated by builder.py from UnicodeData.txt */
+/* Do not edit; instead edit builder.py and regenerate. */
+
+struct item {
+ unsigned short first;
+ unsigned short result;
+};
+
+struct table {
+ unsigned short second;
+ unsigned short data_size;
+ const struct item * data;
+};
+
+
+static const struct item values_for_0300[] = {
+ {0x0, 0x340},
+ {0x41, 0xc0},
+ {0x45, 0xc8},
+ {0x49, 0xcc},
+ {0x4e, 0x1f8},
+ {0x4f, 0xd2},
+ {0x55, 0xd9},
+ {0x57, 0x1e80},
+ {0x59, 0x1ef2},
+ {0x61, 0xe0},
+ {0x65, 0xe8},
+ {0x69, 0xec},
+ {0x6e, 0x1f9},
+ {0x6f, 0xf2},
+ {0x75, 0xf9},
+ {0x77, 0x1e81},
+ {0x79, 0x1ef3},
+ {0xa8, 0x1fed},
+ {0xc2, 0x1ea6},
+ {0xca, 0x1ec0},
+ {0xd4, 0x1ed2},
+ {0xdc, 0x1db},
+ {0xe2, 0x1ea7},
+ {0xea, 0x1ec1},
+ {0xf4, 0x1ed3},
+ {0xfc, 0x1dc},
+ {0x102, 0x1eb0},
+ {0x103, 0x1eb1},
+ {0x112, 0x1e14},
+ {0x113, 0x1e15},
+ {0x14c, 0x1e50},
+ {0x14d, 0x1e51},
+ {0x1a0, 0x1edc},
+ {0x1a1, 0x1edd},
+ {0x1af, 0x1eea},
+ {0x1b0, 0x1eeb},
+ {0x391, 0x1fba},
+ {0x395, 0x1fc8},
+ {0x397, 0x1fca},
+ {0x399, 0x1fda},
+ {0x39f, 0x1ff8},
+ {0x3a5, 0x1fea},
+ {0x3a9, 0x1ffa},
+ {0x3b1, 0x1f70},
+ {0x3b5, 0x1f72},
+ {0x3b7, 0x1f74},
+ {0x3b9, 0x1f76},
+ {0x3bf, 0x1f78},
+ {0x3c5, 0x1f7a},
+ {0x3c9, 0x1f7c},
+ {0x3ca, 0x1fd2},
+ {0x3cb, 0x1fe2},
+ {0x415, 0x400},
+ {0x418, 0x40d},
+ {0x435, 0x450},
+ {0x438, 0x45d},
+ {0x1f00, 0x1f02},
+ {0x1f01, 0x1f03},
+ {0x1f08, 0x1f0a},
+ {0x1f09, 0x1f0b},
+ {0x1f10, 0x1f12},
+ {0x1f11, 0x1f13},
+ {0x1f18, 0x1f1a},
+ {0x1f19, 0x1f1b},
+ {0x1f20, 0x1f22},
+ {0x1f21, 0x1f23},
+ {0x1f28, 0x1f2a},
+ {0x1f29, 0x1f2b},
+ {0x1f30, 0x1f32},
+ {0x1f31, 0x1f33},
+ {0x1f38, 0x1f3a},
+ {0x1f39, 0x1f3b},
+ {0x1f40, 0x1f42},
+ {0x1f41, 0x1f43},
+ {0x1f48, 0x1f4a},
+ {0x1f49, 0x1f4b},
+ {0x1f50, 0x1f52},
+ {0x1f51, 0x1f53},
+ {0x1f59, 0x1f5b},
+ {0x1f60, 0x1f62},
+ {0x1f61, 0x1f63},
+ {0x1f68, 0x1f6a},
+ {0x1f69, 0x1f6b},
+ {0x1fbf, 0x1fcd},
+ {0x1ffe, 0x1fdd},
+};
+
+static const struct item values_for_0301[] = {
+ {0x0, 0x341},
+ {0x41, 0xc1},
+ {0x43, 0x106},
+ {0x45, 0xc9},
+ {0x47, 0x1f4},
+ {0x49, 0xcd},
+ {0x4b, 0x1e30},
+ {0x4c, 0x139},
+ {0x4d, 0x1e3e},
+ {0x4e, 0x143},
+ {0x4f, 0xd3},
+ {0x50, 0x1e54},
+ {0x52, 0x154},
+ {0x53, 0x15a},
+ {0x55, 0xda},
+ {0x57, 0x1e82},
+ {0x59, 0xdd},
+ {0x5a, 0x179},
+ {0x61, 0xe1},
+ {0x63, 0x107},
+ {0x65, 0xe9},
+ {0x67, 0x1f5},
+ {0x69, 0xed},
+ {0x6b, 0x1e31},
+ {0x6c, 0x13a},
+ {0x6d, 0x1e3f},
+ {0x6e, 0x144},
+ {0x6f, 0xf3},
+ {0x70, 0x1e55},
+ {0x72, 0x155},
+ {0x73, 0x15b},
+ {0x75, 0xfa},
+ {0x77, 0x1e83},
+ {0x79, 0xfd},
+ {0x7a, 0x17a},
+ {0xa8, 0x385},
+ {0xc2, 0x1ea4},
+ {0xc5, 0x1fa},
+ {0xc6, 0x1fc},
+ {0xc7, 0x1e08},
+ {0xca, 0x1ebe},
+ {0xcf, 0x1e2e},
+ {0xd4, 0x1ed0},
+ {0xd5, 0x1e4c},
+ {0xd8, 0x1fe},
+ {0xdc, 0x1d7},
+ {0xe2, 0x1ea5},
+ {0xe5, 0x1fb},
+ {0xe6, 0x1fd},
+ {0xe7, 0x1e09},
+ {0xea, 0x1ebf},
+ {0xef, 0x1e2f},
+ {0xf4, 0x1ed1},
+ {0xf5, 0x1e4d},
+ {0xf8, 0x1ff},
+ {0xfc, 0x1d8},
+ {0x102, 0x1eae},
+ {0x103, 0x1eaf},
+ {0x112, 0x1e16},
+ {0x113, 0x1e17},
+ {0x14c, 0x1e52},
+ {0x14d, 0x1e53},
+ {0x168, 0x1e78},
+ {0x169, 0x1e79},
+ {0x1a0, 0x1eda},
+ {0x1a1, 0x1edb},
+ {0x1af, 0x1ee8},
+ {0x1b0, 0x1ee9},
+ {0x308, 0x344},
+ {0x391, 0x386},
+ {0x395, 0x388},
+ {0x397, 0x389},
+ {0x399, 0x38a},
+ {0x39f, 0x38c},
+ {0x3a5, 0x38e},
+ {0x3a9, 0x38f},
+ {0x3b1, 0x3ac},
+ {0x3b5, 0x3ad},
+ {0x3b7, 0x3ae},
+ {0x3b9, 0x3af},
+ {0x3bf, 0x3cc},
+ {0x3c5, 0x3cd},
+ {0x3c9, 0x3ce},
+ {0x3ca, 0x390},
+ {0x3cb, 0x3b0},
+ {0x3d2, 0x3d3},
+ {0x413, 0x403},
+ {0x41a, 0x40c},
+ {0x433, 0x453},
+ {0x43a, 0x45c},
+ {0x1f00, 0x1f04},
+ {0x1f01, 0x1f05},
+ {0x1f08, 0x1f0c},
+ {0x1f09, 0x1f0d},
+ {0x1f10, 0x1f14},
+ {0x1f11, 0x1f15},
+ {0x1f18, 0x1f1c},
+ {0x1f19, 0x1f1d},
+ {0x1f20, 0x1f24},
+ {0x1f21, 0x1f25},
+ {0x1f28, 0x1f2c},
+ {0x1f29, 0x1f2d},
+ {0x1f30, 0x1f34},
+ {0x1f31, 0x1f35},
+ {0x1f38, 0x1f3c},
+ {0x1f39, 0x1f3d},
+ {0x1f40, 0x1f44},
+ {0x1f41, 0x1f45},
+ {0x1f48, 0x1f4c},
+ {0x1f49, 0x1f4d},
+ {0x1f50, 0x1f54},
+ {0x1f51, 0x1f55},
+ {0x1f59, 0x1f5d},
+ {0x1f60, 0x1f64},
+ {0x1f61, 0x1f65},
+ {0x1f68, 0x1f6c},
+ {0x1f69, 0x1f6d},
+ {0x1fbf, 0x1fce},
+ {0x1ffe, 0x1fde},
+};
+
+static const struct item values_for_0302[] = {
+ {0x41, 0xc2},
+ {0x43, 0x108},
+ {0x45, 0xca},
+ {0x47, 0x11c},
+ {0x48, 0x124},
+ {0x49, 0xce},
+ {0x4a, 0x134},
+ {0x4f, 0xd4},
+ {0x53, 0x15c},
+ {0x55, 0xdb},
+ {0x57, 0x174},
+ {0x59, 0x176},
+ {0x5a, 0x1e90},
+ {0x61, 0xe2},
+ {0x63, 0x109},
+ {0x65, 0xea},
+ {0x67, 0x11d},
+ {0x68, 0x125},
+ {0x69, 0xee},
+ {0x6a, 0x135},
+ {0x6f, 0xf4},
+ {0x73, 0x15d},
+ {0x75, 0xfb},
+ {0x77, 0x175},
+ {0x79, 0x177},
+ {0x7a, 0x1e91},
+ {0x1ea0, 0x1eac},
+ {0x1ea1, 0x1ead},
+ {0x1eb8, 0x1ec6},
+ {0x1eb9, 0x1ec7},
+ {0x1ecc, 0x1ed8},
+ {0x1ecd, 0x1ed9},
+};
+
+static const struct item values_for_0303[] = {
+ {0x41, 0xc3},
+ {0x45, 0x1ebc},
+ {0x49, 0x128},
+ {0x4e, 0xd1},
+ {0x4f, 0xd5},
+ {0x55, 0x168},
+ {0x56, 0x1e7c},
+ {0x59, 0x1ef8},
+ {0x61, 0xe3},
+ {0x65, 0x1ebd},
+ {0x69, 0x129},
+ {0x6e, 0xf1},
+ {0x6f, 0xf5},
+ {0x75, 0x169},
+ {0x76, 0x1e7d},
+ {0x79, 0x1ef9},
+ {0xc2, 0x1eaa},
+ {0xca, 0x1ec4},
+ {0xd4, 0x1ed6},
+ {0xe2, 0x1eab},
+ {0xea, 0x1ec5},
+ {0xf4, 0x1ed7},
+ {0x102, 0x1eb4},
+ {0x103, 0x1eb5},
+ {0x1a0, 0x1ee0},
+ {0x1a1, 0x1ee1},
+ {0x1af, 0x1eee},
+ {0x1b0, 0x1eef},
+};
+
+static const struct item values_for_0304[] = {
+ {0x41, 0x100},
+ {0x45, 0x112},
+ {0x47, 0x1e20},
+ {0x49, 0x12a},
+ {0x4f, 0x14c},
+ {0x55, 0x16a},
+ {0x59, 0x232},
+ {0x61, 0x101},
+ {0x65, 0x113},
+ {0x67, 0x1e21},
+ {0x69, 0x12b},
+ {0x6f, 0x14d},
+ {0x75, 0x16b},
+ {0x79, 0x233},
+ {0xc4, 0x1de},
+ {0xc6, 0x1e2},
+ {0xd5, 0x22c},
+ {0xd6, 0x22a},
+ {0xdc, 0x1d5},
+ {0xe4, 0x1df},
+ {0xe6, 0x1e3},
+ {0xf5, 0x22d},
+ {0xf6, 0x22b},
+ {0xfc, 0x1d6},
+ {0x1ea, 0x1ec},
+ {0x1eb, 0x1ed},
+ {0x226, 0x1e0},
+ {0x227, 0x1e1},
+ {0x22e, 0x230},
+ {0x22f, 0x231},
+ {0x391, 0x1fb9},
+ {0x399, 0x1fd9},
+ {0x3a5, 0x1fe9},
+ {0x3b1, 0x1fb1},
+ {0x3b9, 0x1fd1},
+ {0x3c5, 0x1fe1},
+ {0x418, 0x4e2},
+ {0x423, 0x4ee},
+ {0x438, 0x4e3},
+ {0x443, 0x4ef},
+ {0x1e36, 0x1e38},
+ {0x1e37, 0x1e39},
+ {0x1e5a, 0x1e5c},
+ {0x1e5b, 0x1e5d},
+};
+
+static const struct item values_for_0307[] = {
+ {0x41, 0x226},
+ {0x42, 0x1e02},
+ {0x43, 0x10a},
+ {0x44, 0x1e0a},
+ {0x45, 0x116},
+ {0x46, 0x1e1e},
+ {0x47, 0x120},
+ {0x48, 0x1e22},
+ {0x49, 0x130},
+ {0x4d, 0x1e40},
+ {0x4e, 0x1e44},
+ {0x4f, 0x22e},
+ {0x50, 0x1e56},
+ {0x52, 0x1e58},
+ {0x53, 0x1e60},
+ {0x54, 0x1e6a},
+ {0x57, 0x1e86},
+ {0x58, 0x1e8a},
+ {0x59, 0x1e8e},
+ {0x5a, 0x17b},
+ {0x61, 0x227},
+ {0x62, 0x1e03},
+ {0x63, 0x10b},
+ {0x64, 0x1e0b},
+ {0x65, 0x117},
+ {0x66, 0x1e1f},
+ {0x67, 0x121},
+ {0x68, 0x1e23},
+ {0x6d, 0x1e41},
+ {0x6e, 0x1e45},
+ {0x6f, 0x22f},
+ {0x70, 0x1e57},
+ {0x72, 0x1e59},
+ {0x73, 0x1e61},
+ {0x74, 0x1e6b},
+ {0x77, 0x1e87},
+ {0x78, 0x1e8b},
+ {0x79, 0x1e8f},
+ {0x7a, 0x17c},
+ {0x15a, 0x1e64},
+ {0x15b, 0x1e65},
+ {0x160, 0x1e66},
+ {0x161, 0x1e67},
+ {0x17f, 0x1e9b},
+ {0x1e62, 0x1e68},
+ {0x1e63, 0x1e69},
+};
+
+static const struct item values_for_0308[] = {
+ {0x41, 0xc4},
+ {0x45, 0xcb},
+ {0x48, 0x1e26},
+ {0x49, 0xcf},
+ {0x4f, 0xd6},
+ {0x55, 0xdc},
+ {0x57, 0x1e84},
+ {0x58, 0x1e8c},
+ {0x59, 0x178},
+ {0x61, 0xe4},
+ {0x65, 0xeb},
+ {0x68, 0x1e27},
+ {0x69, 0xef},
+ {0x6f, 0xf6},
+ {0x74, 0x1e97},
+ {0x75, 0xfc},
+ {0x77, 0x1e85},
+ {0x78, 0x1e8d},
+ {0x79, 0xff},
+ {0xd5, 0x1e4e},
+ {0xf5, 0x1e4f},
+ {0x16a, 0x1e7a},
+ {0x16b, 0x1e7b},
+ {0x399, 0x3aa},
+ {0x3a5, 0x3ab},
+ {0x3b9, 0x3ca},
+ {0x3c5, 0x3cb},
+ {0x3d2, 0x3d4},
+ {0x406, 0x407},
+ {0x410, 0x4d2},
+ {0x415, 0x401},
+ {0x416, 0x4dc},
+ {0x417, 0x4de},
+ {0x418, 0x4e4},
+ {0x41e, 0x4e6},
+ {0x423, 0x4f0},
+ {0x427, 0x4f4},
+ {0x42b, 0x4f8},
+ {0x42d, 0x4ec},
+ {0x430, 0x4d3},
+ {0x435, 0x451},
+ {0x436, 0x4dd},
+ {0x437, 0x4df},
+ {0x438, 0x4e5},
+ {0x43e, 0x4e7},
+ {0x443, 0x4f1},
+ {0x447, 0x4f5},
+ {0x44b, 0x4f9},
+ {0x44d, 0x4ed},
+ {0x456, 0x457},
+ {0x4d8, 0x4da},
+ {0x4d9, 0x4db},
+ {0x4e8, 0x4ea},
+ {0x4e9, 0x4eb},
+};
+
+static const struct item values_for_0309[] = {
+ {0x41, 0x1ea2},
+ {0x45, 0x1eba},
+ {0x49, 0x1ec8},
+ {0x4f, 0x1ece},
+ {0x55, 0x1ee6},
+ {0x59, 0x1ef6},
+ {0x61, 0x1ea3},
+ {0x65, 0x1ebb},
+ {0x69, 0x1ec9},
+ {0x6f, 0x1ecf},
+ {0x75, 0x1ee7},
+ {0x79, 0x1ef7},
+ {0xc2, 0x1ea8},
+ {0xca, 0x1ec2},
+ {0xd4, 0x1ed4},
+ {0xe2, 0x1ea9},
+ {0xea, 0x1ec3},
+ {0xf4, 0x1ed5},
+ {0x102, 0x1eb2},
+ {0x103, 0x1eb3},
+ {0x1a0, 0x1ede},
+ {0x1a1, 0x1edf},
+ {0x1af, 0x1eec},
+ {0x1b0, 0x1eed},
+};
+
+static const struct item values_for_030a[] = {
+ {0x41, 0xc5},
+ {0x55, 0x16e},
+ {0x61, 0xe5},
+ {0x75, 0x16f},
+ {0x77, 0x1e98},
+ {0x79, 0x1e99},
+};
+
+static const struct item values_for_030b[] = {
+ {0x4f, 0x150},
+ {0x55, 0x170},
+ {0x6f, 0x151},
+ {0x75, 0x171},
+ {0x423, 0x4f2},
+ {0x443, 0x4f3},
+};
+
+static const struct item values_for_030c[] = {
+ {0x41, 0x1cd},
+ {0x43, 0x10c},
+ {0x44, 0x10e},
+ {0x45, 0x11a},
+ {0x47, 0x1e6},
+ {0x48, 0x21e},
+ {0x49, 0x1cf},
+ {0x4b, 0x1e8},
+ {0x4c, 0x13d},
+ {0x4e, 0x147},
+ {0x4f, 0x1d1},
+ {0x52, 0x158},
+ {0x53, 0x160},
+ {0x54, 0x164},
+ {0x55, 0x1d3},
+ {0x5a, 0x17d},
+ {0x61, 0x1ce},
+ {0x63, 0x10d},
+ {0x64, 0x10f},
+ {0x65, 0x11b},
+ {0x67, 0x1e7},
+ {0x68, 0x21f},
+ {0x69, 0x1d0},
+ {0x6a, 0x1f0},
+ {0x6b, 0x1e9},
+ {0x6c, 0x13e},
+ {0x6e, 0x148},
+ {0x6f, 0x1d2},
+ {0x72, 0x159},
+ {0x73, 0x161},
+ {0x74, 0x165},
+ {0x75, 0x1d4},
+ {0x7a, 0x17e},
+ {0xdc, 0x1d9},
+ {0xfc, 0x1da},
+ {0x1b7, 0x1ee},
+ {0x292, 0x1ef},
+};
+
+static const struct item values_for_031b[] = {
+ {0x4f, 0x1a0},
+ {0x55, 0x1af},
+ {0x6f, 0x1a1},
+ {0x75, 0x1b0},
+};
+
+static const struct item values_for_0323[] = {
+ {0x41, 0x1ea0},
+ {0x42, 0x1e04},
+ {0x44, 0x1e0c},
+ {0x45, 0x1eb8},
+ {0x48, 0x1e24},
+ {0x49, 0x1eca},
+ {0x4b, 0x1e32},
+ {0x4c, 0x1e36},
+ {0x4d, 0x1e42},
+ {0x4e, 0x1e46},
+ {0x4f, 0x1ecc},
+ {0x52, 0x1e5a},
+ {0x53, 0x1e62},
+ {0x54, 0x1e6c},
+ {0x55, 0x1ee4},
+ {0x56, 0x1e7e},
+ {0x57, 0x1e88},
+ {0x59, 0x1ef4},
+ {0x5a, 0x1e92},
+ {0x61, 0x1ea1},
+ {0x62, 0x1e05},
+ {0x64, 0x1e0d},
+ {0x65, 0x1eb9},
+ {0x68, 0x1e25},
+ {0x69, 0x1ecb},
+ {0x6b, 0x1e33},
+ {0x6c, 0x1e37},
+ {0x6d, 0x1e43},
+ {0x6e, 0x1e47},
+ {0x6f, 0x1ecd},
+ {0x72, 0x1e5b},
+ {0x73, 0x1e63},
+ {0x74, 0x1e6d},
+ {0x75, 0x1ee5},
+ {0x76, 0x1e7f},
+ {0x77, 0x1e89},
+ {0x79, 0x1ef5},
+ {0x7a, 0x1e93},
+ {0x1a0, 0x1ee2},
+ {0x1a1, 0x1ee3},
+ {0x1af, 0x1ef0},
+ {0x1b0, 0x1ef1},
+};
+
+static const struct item values_for_0327[] = {
+ {0x43, 0xc7},
+ {0x44, 0x1e10},
+ {0x45, 0x228},
+ {0x47, 0x122},
+ {0x48, 0x1e28},
+ {0x4b, 0x136},
+ {0x4c, 0x13b},
+ {0x4e, 0x145},
+ {0x52, 0x156},
+ {0x53, 0x15e},
+ {0x54, 0x162},
+ {0x63, 0xe7},
+ {0x64, 0x1e11},
+ {0x65, 0x229},
+ {0x67, 0x123},
+ {0x68, 0x1e29},
+ {0x6b, 0x137},
+ {0x6c, 0x13c},
+ {0x6e, 0x146},
+ {0x72, 0x157},
+ {0x73, 0x15f},
+ {0x74, 0x163},
+};
+
+static const struct item values_for_0328[] = {
+ {0x41, 0x104},
+ {0x45, 0x118},
+ {0x49, 0x12e},
+ {0x4f, 0x1ea},
+ {0x55, 0x172},
+ {0x61, 0x105},
+ {0x65, 0x119},
+ {0x69, 0x12f},
+ {0x6f, 0x1eb},
+ {0x75, 0x173},
+};
+
+static const struct item values_for_032e[] = {
+ {0x48, 0x1e2a},
+ {0x68, 0x1e2b},
+};
+
+
+static const struct table composite_table[] = {
+ {0x300, 85, values_for_0300},
+ {0x301, 119, values_for_0301},
+ {0x302, 32, values_for_0302},
+ {0x303, 28, values_for_0303},
+ {0x304, 44, values_for_0304},
+ {0x307, 46, values_for_0307},
+ {0x308, 54, values_for_0308},
+ {0x309, 24, values_for_0309},
+ {0x30a, 6, values_for_030a},
+ {0x30b, 6, values_for_030b},
+ {0x30c, 37, values_for_030c},
+ {0x31b, 4, values_for_031b},
+ {0x323, 42, values_for_0323},
+ {0x327, 22, values_for_0327},
+ {0x328, 10, values_for_0328},
+ {0x32e, 2, values_for_032e},
+};