From 601d294296e1de9fc423700db00bccc04a2bf50d Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 6 Jun 2001 12:55:46 +0000 Subject: Update. 2001-06-04 Bruno Haible * iconv/loop.c (UNICODE_TAG_HANDLER): New macro. * iconv/gconv_simple.c (__gconv_transform_internal_ascii): Invoke UNICODE_TAG_HANDLER. (__gconv_transform_internal_ucs2): Likewise. (__gconv_transform_internal_ucs2reverse): Likewise. * iconvdata/8bit-gap.c (BODY for TO_LOOP): Invoke UNICODE_TAG_HANDLER. * iconvdata/8bit-generic.c (BODY for TO_LOOP): Likewise. * iconvdata/ansi_x3.110.c (BODY for TO_LOOP): Likewise. * iconvdata/big5.c (BODY for TO_LOOP): Likewise. * iconvdata/big5hkscs.c (BODY for TO_LOOP): Likewise. * iconvdata/cp1255.c (BODY for TO_LOOP): Likewise. * iconvdata/cp1258.c (BODY for TO_LOOP): Likewise. * iconvdata/euc-cn.c (BODY for TO_LOOP): Likewise. * iconvdata/euc-jp.c (BODY for TO_LOOP): Likewise. * iconvdata/euc-kr.c (BODY for TO_LOOP): Likewise. * iconvdata/euc-tw.c (BODY for TO_LOOP): Likewise. * iconvdata/gbk.c (BODY for TO_LOOP): Likewise. * iconvdata/ibm930.c (BODY for TO_LOOP): Likewise. * iconvdata/ibm932.c (BODY for TO_LOOP): Likewise. * iconvdata/ibm933.c (BODY for TO_LOOP): Likewise. * iconvdata/ibm935.c (BODY for TO_LOOP): Likewise. * iconvdata/ibm937.c (BODY for TO_LOOP): Likewise. * iconvdata/ibm939.c (BODY for TO_LOOP): Likewise. * iconvdata/ibm943.c (BODY for TO_LOOP): Likewise. * iconvdata/iso646.c (BODY for TO_LOOP): Likewise. * iconvdata/iso8859-1.c (BODY for TO_LOOP): Likewise. * iconvdata/iso_6937.c (BODY for TO_LOOP): Likewise. * iconvdata/iso_6937-2.c (BODY for TO_LOOP): Likewise. * iconvdata/iso-2022-cn.c (BODY for TO_LOOP): Likewise. * iconvdata/iso-2022-cn-ext.c (BODY for TO_LOOP): Likewise. * iconvdata/iso-2022-kr.c (BODY for TO_LOOP): Likewise. * iconvdata/johab.c (BODY for TO_LOOP): Likewise. * iconvdata/sjis.c (BODY for TO_LOOP): Likewise. * iconvdata/t.61.c (BODY for TO_LOOP): Likewise. * iconvdata/uhc.c (BODY for TO_LOOP): Likewise. * iconvdata/unicode.c (BODY for TO_LOOP): Likewise. * iconvdata/iso-2022-jp.c (TAG_none, TAG_language, TAG_language_j, TAG_language_ja, TAG_language_k, TAG_language_ko, TAG_language_z, TAG_language_zh, CURRENT_TAG_MASK): New enum values. (EMIT_SHIFT_TO_INIT): Don't emit an escape sequence if ASCII_set is already selected but set2 or tag are set. (conversion): New enum type. (cvlist_t): New type. (CVLIST, CVLIST_FIRST, CVLIST_REST): New macros. (conversion_lists): New array. (BODY for TO_LOOP): Keep track of Unicode 3.1 language tag. If "ja", prefer conversion to Japanese character sets. If "zh", prefer conversion to GB2312. If "ko", prefer conversion to KSC5601. Small optimizations. (INIT_PARAMS): Add tag. (UPDATE_PARAMS): Add tag. 2001-06-04 Bruno Haible * locale/programs/locfile.c (write_locale_data): Before creat(), unlink the file, to avoid crashing the processes that mmap it. Change a double slash to a single slash. Free fname in case of error return. 2001-06-02 Jakub Jelinek * sysdeps/i386/fpu/s_frexpl.S (__frexpl): Mostly revert 2000-12-03 changes, do the special handling for denormal numbers, not for normalized numbers (patch by ). * math/test-misc.c (main): Test frexpl with denormal arguments. 2001-06-04 Jakub Jelinek * math/libm-test.inc (llround_test): Add two new llround tests. * sysdeps/ieee754/ldbl-96/s_llroundl.c (__llroundl): Don't allow overflow when rounding away from zero. 2001-06-04 Jakub Jelinek * math/Makefile (libm-calls): Add e_log2, w_log2, remove s_log2. * math/math_private.h (__ieee754_log2, __ieee754_log2f, __ieee754_log2l): New prototypes. * sysdeps/generic/w_log2.c: New file. * sysdeps/generic/w_log2f.c: New file. * sysdeps/generic/w_log2l.c: New file. * sysdeps/generic/s_log2l.c: Move... * sysdeps/generic/e_log2l.c: ...to here. Rename to __ieee754_log2l. * sysdeps/ieee754/k_standard.c (__kernel_standard): Handle log2(0) and log2(x < 0). * sysdeps/i386/fpu/s_log2.S: Move... * sysdeps/i386/fpu/e_log2.S: ...to here. Rename to __ieee754_log2. * sysdeps/i386/fpu/s_log2f.S: Move... * sysdeps/i386/fpu/e_log2f.S: ...to here. Rename to __ieee754_log2f. * sysdeps/i386/fpu/s_log2l.S: Move... * sysdeps/i386/fpu/e_log2l.S: ...to here. Rename to __ieee754_log2l. * sysdeps/m68k/fpu/s_log2.S: Move... * sysdeps/m68k/fpu/e_log2.S: ...to here. Rename to __ieee754_log2. * sysdeps/m68k/fpu/s_log2f.S: Move... * sysdeps/m68k/fpu/e_log2f.S: ...to here. Rename to __ieee754_log2f. * sysdeps/m68k/fpu/s_log2l.S: Move... * sysdeps/m68k/fpu/e_log2l.S: ...to here. Rename to __ieee754_log2l. * sysdeps/ieee754/dbl-64/s_log2.c: Move... * sysdeps/ieee754/dbl-64/e_log2.c: ...to here. Rename to __ieee754_log2. * sysdeps/ieee754/flt-32/s_log2f.c: Move... * sysdeps/ieee754/flt-32/e_log2f.c: ...to here. Rename to __ieee754_log2f. 2001-06-04 Jakub Jelinek * sysdeps/generic/w_exp2.c (u_threshold): Lower threshold so that even arguments which result in denormalized exp2 are accepted. (__exp2): Arguments equal to u_threshold already result into underflow. * sysdeps/generic/w_exp2f.c (u_threshold, __exp2f): Likewise. * sysdeps/generic/w_exp2l.c (u_threshold, __exp2l): Likewise. * sysdeps/ieee754/dbl-64/e_exp2.c (__ieee754_exp2): Lomark was too low, with corrected lowmark use greaterequal, not greater. * sysdeps/ieee754/flt-32/e_exp2f.c (__ieee754_exp2f): Likewise. 2001-06-04 Jakub Jelinek * math/libm-test.inc (ilogb_test): Test that ilogb(+-Inf) == INT_MAX. * sysdeps/i386/fpu/s_ilogb.S (__ilogb): Return INT_MAX for +-Inf. * sysdeps/i386/fpu/s_ilogbf.S (__ilogbf): Likewise. * sysdeps/i386/fpu/s_ilogbl.S (__ilogbl): Likewise. * sysdeps/ieee754/dbl-64/s_ilogb.c (__ilogb): Likewise. * sysdeps/ieee754/flt-32/s_ilogbf.c (__ilogbf): Likewise. * sysdeps/ieee754/ldbl-128/s_ilogbl.c (__ilogbl): Likewise. * sysdeps/ieee754/ldbl-96/s_ilogbl.c (__ilogbl): Likewise. 2001-06-04 Jakub Jelinek * sysdeps/generic/w_coshl.c (__coshl): Test if finite argument gave non-finite result instead of using constant in generic version. * sysdeps/generic/w_coshf.c (__coshf): Likewise. * sysdeps/generic/w_cosh.c (__cosh): Likewise. * sysdeps/generic/w_exp10.c (o_threshold, u_threshold): Remove. (__exp10): Test if finite argument gave non-finite result. * sysdeps/generic/w_exp10f.c (o_threshold, u_threshold, __exp10f): Likewise. * sysdeps/generic/w_exp10l.c (o_threshold, u_threshold, __exp10l): Likewise. 2001-06-04 Jakub Jelinek * sysdeps/ieee754/ldbl-96/e_coshl.c (__ieee754_coshl): Fix overflow threshold constant (log(LDBL_MAX)+M_LN2l). 2001-05-29 Bruno Haible * locale/programs/ld-ctype.c (idx_table): New struct type. (idx_table_init, idx_table_get, idx_table_add): New functions. (MAX_CHARNAMES_IDX): Remove macro. (locale_ctype_t): Change type of charnames_idx field. (ctype_startup): Change initialization of charnames_idx field. (find_idx): Use idx_table_get and idx_table_add for speed. * locale/programs/charmap.c (charmap_new_char): Fix ucs4 value computation of characters in a range. 2001-05-29 Bruno Haible * iconvdata/gb18030.c (__fourbyte_to_ucs1): Add mappings for , . (__ucs_to_gb18030_tab1): Likewise. (BODY for FROM_LOOP): Add mapping for ... (BODY for TO_LOOP): Likewise. * iconvdata/tst-table-charmap.sh: Update for charmaps containing syntax. * iconvdata/tst-table-from.c (bmp_only): New variable. (utf8_decode): If bmp_only, don't return characters outside Unicode plane 0. (main): When testing UTF-8 or GB18030, set bmp_only to 1. Don't print a conversion line if utf8_decode returns NULL. * iconvdata/tst-table-to.c (main): When testing encodings other than UTF-8 and GB18030, loop upto U+30000 instead of U+10000. Use UTF-8 instead of UCS-2 as input. * iconvdata/tst-table.sh: For GB18030, use only the part < 0x10000 of the charmap. 2001-05-29 Bruno Haible * iconvdata/cns11643l1.c: Update to Unicode 3.1. (__cns11643l1_to_ucs4_tab): Regenerated. (__cns11643l1_from_ucs4_tab12): Regenerated. * iconvdata/cns11643.c: Update to Unicode 3.1. (__cns11643l14_to_ucs4_tab): Remove array. (__cns11643l3_to_ucs4_tab, __cns11643l4_to_ucs4_tab, __cns11643l5_to_ucs4_tab, __cns11643l6_to_ucs4_tab, __cns11643l7_to_ucs4_tab, __cns11643l15_to_ucs4_tab): New arrays. (__cns11643_from_ucs4p0_tab): Renamed from __cns11643_from_ucs4_tab. (__cns11643_from_ucs4p2_tab): New array. * iconvdata/cns11643.h (__cns11643l14_to_ucs4_tab): Remove declaration. (__cns11643l3_to_ucs4_tab, __cns11643l4_to_ucs4_tab, __cns11643l5_to_ucs4_tab, __cns11643l6_to_ucs4_tab, __cns11643l7_to_ucs4_tab, __cns11643l15_to_ucs4_tab): New declarations. (cns11643_to_ucs4): Treat planes 3, 4, 5, 6, 7, 15 instead of 14. (__cns11643_from_ucs4_tab): Remove declaration. (__cns11643_from_ucs4p0_tab, __cns11643_from_ucs4p2_tab): New declarations. (ucs4_to_cns11643): Update for new arrays. Treat U+3400..U+4DFF and U+20000..U+2A6D6. * iconvdata/cns11643l2.h (__cns11643_from_ucs4_tab): Remove declaration. (__cns11643_from_ucs4p0_tab): New declaration. (ucs4_to_cns11643l2): Update for new arrays. * iconvdata/iso-2022-cn-ext.c (BODY for FROM_LOOP): Handle planes 3 to 7. (BODY for TO_LOOP): Handle planes 3 to 7, instead of plane 14. * iconvdata/EUC-TW.irreversible: New file. * iconvdata/tst-table.sh: Use it. * iconvdata/Makefile (distribute): Add CP1255.irreversible, CP1258.irreversible, EUC-TW.irreversible. 2001-05-29 Bruno Haible * locale/C-translit.h.in: Add transliterations for new Unicode 3.1 mathematical symbols. --- locale/C-translit.h | 454 ++++++++++++++++++++++++++++- locale/C-translit.h.in | 701 +++++++++++++++++++++++++++++++++++++++++++++ locale/programs/charmap.c | 2 +- locale/programs/ld-ctype.c | 47 ++- locale/programs/locfile.c | 23 +- 5 files changed, 1187 insertions(+), 40 deletions(-) (limited to 'locale') diff --git a/locale/C-translit.h b/locale/C-translit.h index 45728bb50c..139b0814b2 100644 --- a/locale/C-translit.h +++ b/locale/C-translit.h @@ -1,4 +1,4 @@ -#define NTRANSLIT 590 +#define NTRANSLIT 1291 static const uint32_t translit_from_idx[] = { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, @@ -50,7 +50,65 @@ static const uint32_t translit_from_idx[] = 1104, 1106, 1108, 1110, 1112, 1114, 1116, 1118, 1120, 1122, 1124, 1126, 1128, 1130, 1132, 1134, 1136, 1138, 1140, 1142, 1144, 1146, 1148, 1150, 1152, 1154, 1156, 1158, 1160, 1162, 1164, 1166, 1168, 1170, 1172, 1174, - 1176, 1178 + 1176, 1178, 1180, 1182, 1184, 1186, 1188, 1190, 1192, 1194, 1196, 1198, + 1200, 1202, 1204, 1206, 1208, 1210, 1212, 1214, 1216, 1218, 1220, 1222, + 1224, 1226, 1228, 1230, 1232, 1234, 1236, 1238, 1240, 1242, 1244, 1246, + 1248, 1250, 1252, 1254, 1256, 1258, 1260, 1262, 1264, 1266, 1268, 1270, + 1272, 1274, 1276, 1278, 1280, 1282, 1284, 1286, 1288, 1290, 1292, 1294, + 1296, 1298, 1300, 1302, 1304, 1306, 1308, 1310, 1312, 1314, 1316, 1318, + 1320, 1322, 1324, 1326, 1328, 1330, 1332, 1334, 1336, 1338, 1340, 1342, + 1344, 1346, 1348, 1350, 1352, 1354, 1356, 1358, 1360, 1362, 1364, 1366, + 1368, 1370, 1372, 1374, 1376, 1378, 1380, 1382, 1384, 1386, 1388, 1390, + 1392, 1394, 1396, 1398, 1400, 1402, 1404, 1406, 1408, 1410, 1412, 1414, + 1416, 1418, 1420, 1422, 1424, 1426, 1428, 1430, 1432, 1434, 1436, 1438, + 1440, 1442, 1444, 1446, 1448, 1450, 1452, 1454, 1456, 1458, 1460, 1462, + 1464, 1466, 1468, 1470, 1472, 1474, 1476, 1478, 1480, 1482, 1484, 1486, + 1488, 1490, 1492, 1494, 1496, 1498, 1500, 1502, 1504, 1506, 1508, 1510, + 1512, 1514, 1516, 1518, 1520, 1522, 1524, 1526, 1528, 1530, 1532, 1534, + 1536, 1538, 1540, 1542, 1544, 1546, 1548, 1550, 1552, 1554, 1556, 1558, + 1560, 1562, 1564, 1566, 1568, 1570, 1572, 1574, 1576, 1578, 1580, 1582, + 1584, 1586, 1588, 1590, 1592, 1594, 1596, 1598, 1600, 1602, 1604, 1606, + 1608, 1610, 1612, 1614, 1616, 1618, 1620, 1622, 1624, 1626, 1628, 1630, + 1632, 1634, 1636, 1638, 1640, 1642, 1644, 1646, 1648, 1650, 1652, 1654, + 1656, 1658, 1660, 1662, 1664, 1666, 1668, 1670, 1672, 1674, 1676, 1678, + 1680, 1682, 1684, 1686, 1688, 1690, 1692, 1694, 1696, 1698, 1700, 1702, + 1704, 1706, 1708, 1710, 1712, 1714, 1716, 1718, 1720, 1722, 1724, 1726, + 1728, 1730, 1732, 1734, 1736, 1738, 1740, 1742, 1744, 1746, 1748, 1750, + 1752, 1754, 1756, 1758, 1760, 1762, 1764, 1766, 1768, 1770, 1772, 1774, + 1776, 1778, 1780, 1782, 1784, 1786, 1788, 1790, 1792, 1794, 1796, 1798, + 1800, 1802, 1804, 1806, 1808, 1810, 1812, 1814, 1816, 1818, 1820, 1822, + 1824, 1826, 1828, 1830, 1832, 1834, 1836, 1838, 1840, 1842, 1844, 1846, + 1848, 1850, 1852, 1854, 1856, 1858, 1860, 1862, 1864, 1866, 1868, 1870, + 1872, 1874, 1876, 1878, 1880, 1882, 1884, 1886, 1888, 1890, 1892, 1894, + 1896, 1898, 1900, 1902, 1904, 1906, 1908, 1910, 1912, 1914, 1916, 1918, + 1920, 1922, 1924, 1926, 1928, 1930, 1932, 1934, 1936, 1938, 1940, 1942, + 1944, 1946, 1948, 1950, 1952, 1954, 1956, 1958, 1960, 1962, 1964, 1966, + 1968, 1970, 1972, 1974, 1976, 1978, 1980, 1982, 1984, 1986, 1988, 1990, + 1992, 1994, 1996, 1998, 2000, 2002, 2004, 2006, 2008, 2010, 2012, 2014, + 2016, 2018, 2020, 2022, 2024, 2026, 2028, 2030, 2032, 2034, 2036, 2038, + 2040, 2042, 2044, 2046, 2048, 2050, 2052, 2054, 2056, 2058, 2060, 2062, + 2064, 2066, 2068, 2070, 2072, 2074, 2076, 2078, 2080, 2082, 2084, 2086, + 2088, 2090, 2092, 2094, 2096, 2098, 2100, 2102, 2104, 2106, 2108, 2110, + 2112, 2114, 2116, 2118, 2120, 2122, 2124, 2126, 2128, 2130, 2132, 2134, + 2136, 2138, 2140, 2142, 2144, 2146, 2148, 2150, 2152, 2154, 2156, 2158, + 2160, 2162, 2164, 2166, 2168, 2170, 2172, 2174, 2176, 2178, 2180, 2182, + 2184, 2186, 2188, 2190, 2192, 2194, 2196, 2198, 2200, 2202, 2204, 2206, + 2208, 2210, 2212, 2214, 2216, 2218, 2220, 2222, 2224, 2226, 2228, 2230, + 2232, 2234, 2236, 2238, 2240, 2242, 2244, 2246, 2248, 2250, 2252, 2254, + 2256, 2258, 2260, 2262, 2264, 2266, 2268, 2270, 2272, 2274, 2276, 2278, + 2280, 2282, 2284, 2286, 2288, 2290, 2292, 2294, 2296, 2298, 2300, 2302, + 2304, 2306, 2308, 2310, 2312, 2314, 2316, 2318, 2320, 2322, 2324, 2326, + 2328, 2330, 2332, 2334, 2336, 2338, 2340, 2342, 2344, 2346, 2348, 2350, + 2352, 2354, 2356, 2358, 2360, 2362, 2364, 2366, 2368, 2370, 2372, 2374, + 2376, 2378, 2380, 2382, 2384, 2386, 2388, 2390, 2392, 2394, 2396, 2398, + 2400, 2402, 2404, 2406, 2408, 2410, 2412, 2414, 2416, 2418, 2420, 2422, + 2424, 2426, 2428, 2430, 2432, 2434, 2436, 2438, 2440, 2442, 2444, 2446, + 2448, 2450, 2452, 2454, 2456, 2458, 2460, 2462, 2464, 2466, 2468, 2470, + 2472, 2474, 2476, 2478, 2480, 2482, 2484, 2486, 2488, 2490, 2492, 2494, + 2496, 2498, 2500, 2502, 2504, 2506, 2508, 2510, 2512, 2514, 2516, 2518, + 2520, 2522, 2524, 2526, 2528, 2530, 2532, 2534, 2536, 2538, 2540, 2542, + 2544, 2546, 2548, 2550, 2552, 2554, 2556, 2558, 2560, 2562, 2564, 2566, + 2568, 2570, 2572, 2574, 2576, 2578, 2580 }; static const wchar_t translit_from_tbl[] = L"\x00a0" L"\0" L"\x00a9" L"\0" L"\x00ab" L"\0" L"\x00ad" L"\0" L"\x00ae" @@ -183,7 +241,208 @@ static const wchar_t translit_from_tbl[] = L"\0" L"\xff4d" L"\0" L"\xff4e" L"\0" L"\xff4f" L"\0" L"\xff50" L"\0" L"\xff51" L"\0" L"\xff52" L"\0" L"\xff53" L"\0" L"\xff54" L"\0" L"\xff55" L"\0" L"\xff56" L"\0" L"\xff57" L"\0" L"\xff58" L"\0" L"\xff59" L"\0" - L"\xff5a" L"\0" L"\xff5b" L"\0" L"\xff5c" L"\0" L"\xff5d" L"\0" L"\xff5e"; + L"\xff5a" L"\0" L"\xff5b" L"\0" L"\xff5c" L"\0" L"\xff5d" L"\0" L"\xff5e" + L"\0" L"\x0001d400" L"\0" L"\x0001d401" L"\0" L"\x0001d402" L"\0" + L"\x0001d403" L"\0" L"\x0001d404" L"\0" L"\x0001d405" L"\0" L"\x0001d406" + L"\0" L"\x0001d407" L"\0" L"\x0001d408" L"\0" L"\x0001d409" L"\0" + L"\x0001d40a" L"\0" L"\x0001d40b" L"\0" L"\x0001d40c" L"\0" L"\x0001d40d" + L"\0" L"\x0001d40e" L"\0" L"\x0001d40f" L"\0" L"\x0001d410" L"\0" + L"\x0001d411" L"\0" L"\x0001d412" L"\0" L"\x0001d413" L"\0" L"\x0001d414" + L"\0" L"\x0001d415" L"\0" L"\x0001d416" L"\0" L"\x0001d417" L"\0" + L"\x0001d418" L"\0" L"\x0001d419" L"\0" L"\x0001d41a" L"\0" L"\x0001d41b" + L"\0" L"\x0001d41c" L"\0" L"\x0001d41d" L"\0" L"\x0001d41e" L"\0" + L"\x0001d41f" L"\0" L"\x0001d420" L"\0" L"\x0001d421" L"\0" L"\x0001d422" + L"\0" L"\x0001d423" L"\0" L"\x0001d424" L"\0" L"\x0001d425" L"\0" + L"\x0001d426" L"\0" L"\x0001d427" L"\0" L"\x0001d428" L"\0" L"\x0001d429" + L"\0" L"\x0001d42a" L"\0" L"\x0001d42b" L"\0" L"\x0001d42c" L"\0" + L"\x0001d42d" L"\0" L"\x0001d42e" L"\0" L"\x0001d42f" L"\0" L"\x0001d430" + L"\0" L"\x0001d431" L"\0" L"\x0001d432" L"\0" L"\x0001d433" L"\0" + L"\x0001d434" L"\0" L"\x0001d435" L"\0" L"\x0001d436" L"\0" L"\x0001d437" + L"\0" L"\x0001d438" L"\0" L"\x0001d439" L"\0" L"\x0001d43a" L"\0" + L"\x0001d43b" L"\0" L"\x0001d43c" L"\0" L"\x0001d43d" L"\0" L"\x0001d43e" + L"\0" L"\x0001d43f" L"\0" L"\x0001d440" L"\0" L"\x0001d441" L"\0" + L"\x0001d442" L"\0" L"\x0001d443" L"\0" L"\x0001d444" L"\0" L"\x0001d445" + L"\0" L"\x0001d446" L"\0" L"\x0001d447" L"\0" L"\x0001d448" L"\0" + L"\x0001d449" L"\0" L"\x0001d44a" L"\0" L"\x0001d44b" L"\0" L"\x0001d44c" + L"\0" L"\x0001d44d" L"\0" L"\x0001d44e" L"\0" L"\x0001d44f" L"\0" + L"\x0001d450" L"\0" L"\x0001d451" L"\0" L"\x0001d452" L"\0" L"\x0001d453" + L"\0" L"\x0001d454" L"\0" L"\x0001d456" L"\0" L"\x0001d457" L"\0" + L"\x0001d458" L"\0" L"\x0001d459" L"\0" L"\x0001d45a" L"\0" L"\x0001d45b" + L"\0" L"\x0001d45c" L"\0" L"\x0001d45d" L"\0" L"\x0001d45e" L"\0" + L"\x0001d45f" L"\0" L"\x0001d460" L"\0" L"\x0001d461" L"\0" L"\x0001d462" + L"\0" L"\x0001d463" L"\0" L"\x0001d464" L"\0" L"\x0001d465" L"\0" + L"\x0001d466" L"\0" L"\x0001d467" L"\0" L"\x0001d468" L"\0" L"\x0001d469" + L"\0" L"\x0001d46a" L"\0" L"\x0001d46b" L"\0" L"\x0001d46c" L"\0" + L"\x0001d46d" L"\0" L"\x0001d46e" L"\0" L"\x0001d46f" L"\0" L"\x0001d470" + L"\0" L"\x0001d471" L"\0" L"\x0001d472" L"\0" L"\x0001d473" L"\0" + L"\x0001d474" L"\0" L"\x0001d475" L"\0" L"\x0001d476" L"\0" L"\x0001d477" + L"\0" L"\x0001d478" L"\0" L"\x0001d479" L"\0" L"\x0001d47a" L"\0" + L"\x0001d47b" L"\0" L"\x0001d47c" L"\0" L"\x0001d47d" L"\0" L"\x0001d47e" + L"\0" L"\x0001d47f" L"\0" L"\x0001d480" L"\0" L"\x0001d481" L"\0" + L"\x0001d482" L"\0" L"\x0001d483" L"\0" L"\x0001d484" L"\0" L"\x0001d485" + L"\0" L"\x0001d486" L"\0" L"\x0001d487" L"\0" L"\x0001d488" L"\0" + L"\x0001d489" L"\0" L"\x0001d48a" L"\0" L"\x0001d48b" L"\0" L"\x0001d48c" + L"\0" L"\x0001d48d" L"\0" L"\x0001d48e" L"\0" L"\x0001d48f" L"\0" + L"\x0001d490" L"\0" L"\x0001d491" L"\0" L"\x0001d492" L"\0" L"\x0001d493" + L"\0" L"\x0001d494" L"\0" L"\x0001d495" L"\0" L"\x0001d496" L"\0" + L"\x0001d497" L"\0" L"\x0001d498" L"\0" L"\x0001d499" L"\0" L"\x0001d49a" + L"\0" L"\x0001d49b" L"\0" L"\x0001d49c" L"\0" L"\x0001d49e" L"\0" + L"\x0001d49f" L"\0" L"\x0001d4a2" L"\0" L"\x0001d4a5" L"\0" L"\x0001d4a6" + L"\0" L"\x0001d4a9" L"\0" L"\x0001d4aa" L"\0" L"\x0001d4ab" L"\0" + L"\x0001d4ac" L"\0" L"\x0001d4ae" L"\0" L"\x0001d4af" L"\0" L"\x0001d4b0" + L"\0" L"\x0001d4b1" L"\0" L"\x0001d4b2" L"\0" L"\x0001d4b3" L"\0" + L"\x0001d4b4" L"\0" L"\x0001d4b5" L"\0" L"\x0001d4b6" L"\0" L"\x0001d4b7" + L"\0" L"\x0001d4b8" L"\0" L"\x0001d4b9" L"\0" L"\x0001d4bb" L"\0" + L"\x0001d4bd" L"\0" L"\x0001d4be" L"\0" L"\x0001d4bf" L"\0" L"\x0001d4c0" + L"\0" L"\x0001d4c2" L"\0" L"\x0001d4c3" L"\0" L"\x0001d4c5" L"\0" + L"\x0001d4c6" L"\0" L"\x0001d4c7" L"\0" L"\x0001d4c8" L"\0" L"\x0001d4c9" + L"\0" L"\x0001d4ca" L"\0" L"\x0001d4cb" L"\0" L"\x0001d4cc" L"\0" + L"\x0001d4cd" L"\0" L"\x0001d4ce" L"\0" L"\x0001d4cf" L"\0" L"\x0001d4d0" + L"\0" L"\x0001d4d1" L"\0" L"\x0001d4d2" L"\0" L"\x0001d4d3" L"\0" + L"\x0001d4d4" L"\0" L"\x0001d4d5" L"\0" L"\x0001d4d6" L"\0" L"\x0001d4d7" + L"\0" L"\x0001d4d8" L"\0" L"\x0001d4d9" L"\0" L"\x0001d4da" L"\0" + L"\x0001d4db" L"\0" L"\x0001d4dc" L"\0" L"\x0001d4dd" L"\0" L"\x0001d4de" + L"\0" L"\x0001d4df" L"\0" L"\x0001d4e0" L"\0" L"\x0001d4e1" L"\0" + L"\x0001d4e2" L"\0" L"\x0001d4e3" L"\0" L"\x0001d4e4" L"\0" L"\x0001d4e5" + L"\0" L"\x0001d4e6" L"\0" L"\x0001d4e7" L"\0" L"\x0001d4e8" L"\0" + L"\x0001d4e9" L"\0" L"\x0001d4ea" L"\0" L"\x0001d4eb" L"\0" L"\x0001d4ec" + L"\0" L"\x0001d4ed" L"\0" L"\x0001d4ee" L"\0" L"\x0001d4ef" L"\0" + L"\x0001d4f0" L"\0" L"\x0001d4f1" L"\0" L"\x0001d4f2" L"\0" L"\x0001d4f3" + L"\0" L"\x0001d4f4" L"\0" L"\x0001d4f5" L"\0" L"\x0001d4f6" L"\0" + L"\x0001d4f7" L"\0" L"\x0001d4f8" L"\0" L"\x0001d4f9" L"\0" L"\x0001d4fa" + L"\0" L"\x0001d4fb" L"\0" L"\x0001d4fc" L"\0" L"\x0001d4fd" L"\0" + L"\x0001d4fe" L"\0" L"\x0001d4ff" L"\0" L"\x0001d500" L"\0" L"\x0001d501" + L"\0" L"\x0001d502" L"\0" L"\x0001d503" L"\0" L"\x0001d504" L"\0" + L"\x0001d505" L"\0" L"\x0001d507" L"\0" L"\x0001d508" L"\0" L"\x0001d509" + L"\0" L"\x0001d50a" L"\0" L"\x0001d50d" L"\0" L"\x0001d50e" L"\0" + L"\x0001d50f" L"\0" L"\x0001d510" L"\0" L"\x0001d511" L"\0" L"\x0001d512" + L"\0" L"\x0001d513" L"\0" L"\x0001d514" L"\0" L"\x0001d516" L"\0" + L"\x0001d517" L"\0" L"\x0001d518" L"\0" L"\x0001d519" L"\0" L"\x0001d51a" + L"\0" L"\x0001d51b" L"\0" L"\x0001d51c" L"\0" L"\x0001d51e" L"\0" + L"\x0001d51f" L"\0" L"\x0001d520" L"\0" L"\x0001d521" L"\0" L"\x0001d522" + L"\0" L"\x0001d523" L"\0" L"\x0001d524" L"\0" L"\x0001d525" L"\0" + L"\x0001d526" L"\0" L"\x0001d527" L"\0" L"\x0001d528" L"\0" L"\x0001d529" + L"\0" L"\x0001d52a" L"\0" L"\x0001d52b" L"\0" L"\x0001d52c" L"\0" + L"\x0001d52d" L"\0" L"\x0001d52e" L"\0" L"\x0001d52f" L"\0" L"\x0001d530" + L"\0" L"\x0001d531" L"\0" L"\x0001d532" L"\0" L"\x0001d533" L"\0" + L"\x0001d534" L"\0" L"\x0001d535" L"\0" L"\x0001d536" L"\0" L"\x0001d537" + L"\0" L"\x0001d538" L"\0" L"\x0001d539" L"\0" L"\x0001d53b" L"\0" + L"\x0001d53c" L"\0" L"\x0001d53d" L"\0" L"\x0001d53e" L"\0" L"\x0001d540" + L"\0" L"\x0001d541" L"\0" L"\x0001d542" L"\0" L"\x0001d543" L"\0" + L"\x0001d544" L"\0" L"\x0001d546" L"\0" L"\x0001d54a" L"\0" L"\x0001d54b" + L"\0" L"\x0001d54c" L"\0" L"\x0001d54d" L"\0" L"\x0001d54e" L"\0" + L"\x0001d54f" L"\0" L"\x0001d550" L"\0" L"\x0001d552" L"\0" L"\x0001d553" + L"\0" L"\x0001d554" L"\0" L"\x0001d555" L"\0" L"\x0001d556" L"\0" + L"\x0001d557" L"\0" L"\x0001d558" L"\0" L"\x0001d559" L"\0" L"\x0001d55a" + L"\0" L"\x0001d55b" L"\0" L"\x0001d55c" L"\0" L"\x0001d55d" L"\0" + L"\x0001d55e" L"\0" L"\x0001d55f" L"\0" L"\x0001d560" L"\0" L"\x0001d561" + L"\0" L"\x0001d562" L"\0" L"\x0001d563" L"\0" L"\x0001d564" L"\0" + L"\x0001d565" L"\0" L"\x0001d566" L"\0" L"\x0001d567" L"\0" L"\x0001d568" + L"\0" L"\x0001d569" L"\0" L"\x0001d56a" L"\0" L"\x0001d56b" L"\0" + L"\x0001d56c" L"\0" L"\x0001d56d" L"\0" L"\x0001d56e" L"\0" L"\x0001d56f" + L"\0" L"\x0001d570" L"\0" L"\x0001d571" L"\0" L"\x0001d572" L"\0" + L"\x0001d573" L"\0" L"\x0001d574" L"\0" L"\x0001d575" L"\0" L"\x0001d576" + L"\0" L"\x0001d577" L"\0" L"\x0001d578" L"\0" L"\x0001d579" L"\0" + L"\x0001d57a" L"\0" L"\x0001d57b" L"\0" L"\x0001d57c" L"\0" L"\x0001d57d" + L"\0" L"\x0001d57e" L"\0" L"\x0001d57f" L"\0" L"\x0001d580" L"\0" + L"\x0001d581" L"\0" L"\x0001d582" L"\0" L"\x0001d583" L"\0" L"\x0001d584" + L"\0" L"\x0001d585" L"\0" L"\x0001d586" L"\0" L"\x0001d587" L"\0" + L"\x0001d588" L"\0" L"\x0001d589" L"\0" L"\x0001d58a" L"\0" L"\x0001d58b" + L"\0" L"\x0001d58c" L"\0" L"\x0001d58d" L"\0" L"\x0001d58e" L"\0" + L"\x0001d58f" L"\0" L"\x0001d590" L"\0" L"\x0001d591" L"\0" L"\x0001d592" + L"\0" L"\x0001d593" L"\0" L"\x0001d594" L"\0" L"\x0001d595" L"\0" + L"\x0001d596" L"\0" L"\x0001d597" L"\0" L"\x0001d598" L"\0" L"\x0001d599" + L"\0" L"\x0001d59a" L"\0" L"\x0001d59b" L"\0" L"\x0001d59c" L"\0" + L"\x0001d59d" L"\0" L"\x0001d59e" L"\0" L"\x0001d59f" L"\0" L"\x0001d5a0" + L"\0" L"\x0001d5a1" L"\0" L"\x0001d5a2" L"\0" L"\x0001d5a3" L"\0" + L"\x0001d5a4" L"\0" L"\x0001d5a5" L"\0" L"\x0001d5a6" L"\0" L"\x0001d5a7" + L"\0" L"\x0001d5a8" L"\0" L"\x0001d5a9" L"\0" L"\x0001d5aa" L"\0" + L"\x0001d5ab" L"\0" L"\x0001d5ac" L"\0" L"\x0001d5ad" L"\0" L"\x0001d5ae" + L"\0" L"\x0001d5af" L"\0" L"\x0001d5b0" L"\0" L"\x0001d5b1" L"\0" + L"\x0001d5b2" L"\0" L"\x0001d5b3" L"\0" L"\x0001d5b4" L"\0" L"\x0001d5b5" + L"\0" L"\x0001d5b6" L"\0" L"\x0001d5b7" L"\0" L"\x0001d5b8" L"\0" + L"\x0001d5b9" L"\0" L"\x0001d5ba" L"\0" L"\x0001d5bb" L"\0" L"\x0001d5bc" + L"\0" L"\x0001d5bd" L"\0" L"\x0001d5be" L"\0" L"\x0001d5bf" L"\0" + L"\x0001d5c0" L"\0" L"\x0001d5c1" L"\0" L"\x0001d5c2" L"\0" L"\x0001d5c3" + L"\0" L"\x0001d5c4" L"\0" L"\x0001d5c5" L"\0" L"\x0001d5c6" L"\0" + L"\x0001d5c7" L"\0" L"\x0001d5c8" L"\0" L"\x0001d5c9" L"\0" L"\x0001d5ca" + L"\0" L"\x0001d5cb" L"\0" L"\x0001d5cc" L"\0" L"\x0001d5cd" L"\0" + L"\x0001d5ce" L"\0" L"\x0001d5cf" L"\0" L"\x0001d5d0" L"\0" L"\x0001d5d1" + L"\0" L"\x0001d5d2" L"\0" L"\x0001d5d3" L"\0" L"\x0001d5d4" L"\0" + L"\x0001d5d5" L"\0" L"\x0001d5d6" L"\0" L"\x0001d5d7" L"\0" L"\x0001d5d8" + L"\0" L"\x0001d5d9" L"\0" L"\x0001d5da" L"\0" L"\x0001d5db" L"\0" + L"\x0001d5dc" L"\0" L"\x0001d5dd" L"\0" L"\x0001d5de" L"\0" L"\x0001d5df" + L"\0" L"\x0001d5e0" L"\0" L"\x0001d5e1" L"\0" L"\x0001d5e2" L"\0" + L"\x0001d5e3" L"\0" L"\x0001d5e4" L"\0" L"\x0001d5e5" L"\0" L"\x0001d5e6" + L"\0" L"\x0001d5e7" L"\0" L"\x0001d5e8" L"\0" L"\x0001d5e9" L"\0" + L"\x0001d5ea" L"\0" L"\x0001d5eb" L"\0" L"\x0001d5ec" L"\0" L"\x0001d5ed" + L"\0" L"\x0001d5ee" L"\0" L"\x0001d5ef" L"\0" L"\x0001d5f0" L"\0" + L"\x0001d5f1" L"\0" L"\x0001d5f2" L"\0" L"\x0001d5f3" L"\0" L"\x0001d5f4" + L"\0" L"\x0001d5f5" L"\0" L"\x0001d5f6" L"\0" L"\x0001d5f7" L"\0" + L"\x0001d5f8" L"\0" L"\x0001d5f9" L"\0" L"\x0001d5fa" L"\0" L"\x0001d5fb" + L"\0" L"\x0001d5fc" L"\0" L"\x0001d5fd" L"\0" L"\x0001d5fe" L"\0" + L"\x0001d5ff" L"\0" L"\x0001d600" L"\0" L"\x0001d601" L"\0" L"\x0001d602" + L"\0" L"\x0001d603" L"\0" L"\x0001d604" L"\0" L"\x0001d605" L"\0" + L"\x0001d606" L"\0" L"\x0001d607" L"\0" L"\x0001d608" L"\0" L"\x0001d609" + L"\0" L"\x0001d60a" L"\0" L"\x0001d60b" L"\0" L"\x0001d60c" L"\0" + L"\x0001d60d" L"\0" L"\x0001d60e" L"\0" L"\x0001d60f" L"\0" L"\x0001d610" + L"\0" L"\x0001d611" L"\0" L"\x0001d612" L"\0" L"\x0001d613" L"\0" + L"\x0001d614" L"\0" L"\x0001d615" L"\0" L"\x0001d616" L"\0" L"\x0001d617" + L"\0" L"\x0001d618" L"\0" L"\x0001d619" L"\0" L"\x0001d61a" L"\0" + L"\x0001d61b" L"\0" L"\x0001d61c" L"\0" L"\x0001d61d" L"\0" L"\x0001d61e" + L"\0" L"\x0001d61f" L"\0" L"\x0001d620" L"\0" L"\x0001d621" L"\0" + L"\x0001d622" L"\0" L"\x0001d623" L"\0" L"\x0001d624" L"\0" L"\x0001d625" + L"\0" L"\x0001d626" L"\0" L"\x0001d627" L"\0" L"\x0001d628" L"\0" + L"\x0001d629" L"\0" L"\x0001d62a" L"\0" L"\x0001d62b" L"\0" L"\x0001d62c" + L"\0" L"\x0001d62d" L"\0" L"\x0001d62e" L"\0" L"\x0001d62f" L"\0" + L"\x0001d630" L"\0" L"\x0001d631" L"\0" L"\x0001d632" L"\0" L"\x0001d633" + L"\0" L"\x0001d634" L"\0" L"\x0001d635" L"\0" L"\x0001d636" L"\0" + L"\x0001d637" L"\0" L"\x0001d638" L"\0" L"\x0001d639" L"\0" L"\x0001d63a" + L"\0" L"\x0001d63b" L"\0" L"\x0001d63c" L"\0" L"\x0001d63d" L"\0" + L"\x0001d63e" L"\0" L"\x0001d63f" L"\0" L"\x0001d640" L"\0" L"\x0001d641" + L"\0" L"\x0001d642" L"\0" L"\x0001d643" L"\0" L"\x0001d644" L"\0" + L"\x0001d645" L"\0" L"\x0001d646" L"\0" L"\x0001d647" L"\0" L"\x0001d648" + L"\0" L"\x0001d649" L"\0" L"\x0001d64a" L"\0" L"\x0001d64b" L"\0" + L"\x0001d64c" L"\0" L"\x0001d64d" L"\0" L"\x0001d64e" L"\0" L"\x0001d64f" + L"\0" L"\x0001d650" L"\0" L"\x0001d651" L"\0" L"\x0001d652" L"\0" + L"\x0001d653" L"\0" L"\x0001d654" L"\0" L"\x0001d655" L"\0" L"\x0001d656" + L"\0" L"\x0001d657" L"\0" L"\x0001d658" L"\0" L"\x0001d659" L"\0" + L"\x0001d65a" L"\0" L"\x0001d65b" L"\0" L"\x0001d65c" L"\0" L"\x0001d65d" + L"\0" L"\x0001d65e" L"\0" L"\x0001d65f" L"\0" L"\x0001d660" L"\0" + L"\x0001d661" L"\0" L"\x0001d662" L"\0" L"\x0001d663" L"\0" L"\x0001d664" + L"\0" L"\x0001d665" L"\0" L"\x0001d666" L"\0" L"\x0001d667" L"\0" + L"\x0001d668" L"\0" L"\x0001d669" L"\0" L"\x0001d66a" L"\0" L"\x0001d66b" + L"\0" L"\x0001d66c" L"\0" L"\x0001d66d" L"\0" L"\x0001d66e" L"\0" + L"\x0001d66f" L"\0" L"\x0001d670" L"\0" L"\x0001d671" L"\0" L"\x0001d672" + L"\0" L"\x0001d673" L"\0" L"\x0001d674" L"\0" L"\x0001d675" L"\0" + L"\x0001d676" L"\0" L"\x0001d677" L"\0" L"\x0001d678" L"\0" L"\x0001d679" + L"\0" L"\x0001d67a" L"\0" L"\x0001d67b" L"\0" L"\x0001d67c" L"\0" + L"\x0001d67d" L"\0" L"\x0001d67e" L"\0" L"\x0001d67f" L"\0" L"\x0001d680" + L"\0" L"\x0001d681" L"\0" L"\x0001d682" L"\0" L"\x0001d683" L"\0" + L"\x0001d684" L"\0" L"\x0001d685" L"\0" L"\x0001d686" L"\0" L"\x0001d687" + L"\0" L"\x0001d688" L"\0" L"\x0001d689" L"\0" L"\x0001d68a" L"\0" + L"\x0001d68b" L"\0" L"\x0001d68c" L"\0" L"\x0001d68d" L"\0" L"\x0001d68e" + L"\0" L"\x0001d68f" L"\0" L"\x0001d690" L"\0" L"\x0001d691" L"\0" + L"\x0001d692" L"\0" L"\x0001d693" L"\0" L"\x0001d694" L"\0" L"\x0001d695" + L"\0" L"\x0001d696" L"\0" L"\x0001d697" L"\0" L"\x0001d698" L"\0" + L"\x0001d699" L"\0" L"\x0001d69a" L"\0" L"\x0001d69b" L"\0" L"\x0001d69c" + L"\0" L"\x0001d69d" L"\0" L"\x0001d69e" L"\0" L"\x0001d69f" L"\0" + L"\x0001d6a0" L"\0" L"\x0001d6a1" L"\0" L"\x0001d6a2" L"\0" L"\x0001d6a3" + L"\0" L"\x0001d7ce" L"\0" L"\x0001d7cf" L"\0" L"\x0001d7d0" L"\0" + L"\x0001d7d1" L"\0" L"\x0001d7d2" L"\0" L"\x0001d7d3" L"\0" L"\x0001d7d4" + L"\0" L"\x0001d7d5" L"\0" L"\x0001d7d6" L"\0" L"\x0001d7d7" L"\0" + L"\x0001d7d8" L"\0" L"\x0001d7d9" L"\0" L"\x0001d7da" L"\0" L"\x0001d7db" + L"\0" L"\x0001d7dc" L"\0" L"\x0001d7dd" L"\0" L"\x0001d7de" L"\0" + L"\x0001d7df" L"\0" L"\x0001d7e0" L"\0" L"\x0001d7e1" L"\0" L"\x0001d7e2" + L"\0" L"\x0001d7e3" L"\0" L"\x0001d7e4" L"\0" L"\x0001d7e5" L"\0" + L"\x0001d7e6" L"\0" L"\x0001d7e7" L"\0" L"\x0001d7e8" L"\0" L"\x0001d7e9" + L"\0" L"\x0001d7ea" L"\0" L"\x0001d7eb" L"\0" L"\x0001d7ec" L"\0" + L"\x0001d7ed" L"\0" L"\x0001d7ee" L"\0" L"\x0001d7ef" L"\0" L"\x0001d7f0" + L"\0" L"\x0001d7f1" L"\0" L"\x0001d7f2" L"\0" L"\x0001d7f3" L"\0" + L"\x0001d7f4" L"\0" L"\x0001d7f5" L"\0" L"\x0001d7f6" L"\0" L"\x0001d7f7" + L"\0" L"\x0001d7f8" L"\0" L"\x0001d7f9" L"\0" L"\x0001d7fa" L"\0" + L"\x0001d7fb" L"\0" L"\x0001d7fc" L"\0" L"\x0001d7fd" L"\0" L"\x0001d7fe" + L"\0" L"\x0001d7ff"; static const uint32_t translit_to_idx[] = { 0, 3, 8, 12, 15, 20, 23, 26, 30, 37, 44, 51, @@ -235,7 +494,65 @@ static const uint32_t translit_to_idx[] = 2317, 2320, 2323, 2326, 2329, 2332, 2335, 2338, 2341, 2344, 2347, 2350, 2353, 2356, 2359, 2362, 2365, 2368, 2371, 2374, 2377, 2380, 2383, 2386, 2389, 2392, 2395, 2398, 2401, 2404, 2407, 2410, 2413, 2416, 2419, 2422, - 2425, 2428 + 2425, 2428, 2431, 2434, 2437, 2440, 2443, 2446, 2449, 2452, 2455, 2458, + 2461, 2464, 2467, 2470, 2473, 2476, 2479, 2482, 2485, 2488, 2491, 2494, + 2497, 2500, 2503, 2506, 2509, 2512, 2515, 2518, 2521, 2524, 2527, 2530, + 2533, 2536, 2539, 2542, 2545, 2548, 2551, 2554, 2557, 2560, 2563, 2566, + 2569, 2572, 2575, 2578, 2581, 2584, 2587, 2590, 2593, 2596, 2599, 2602, + 2605, 2608, 2611, 2614, 2617, 2620, 2623, 2626, 2629, 2632, 2635, 2638, + 2641, 2644, 2647, 2650, 2653, 2656, 2659, 2662, 2665, 2668, 2671, 2674, + 2677, 2680, 2683, 2686, 2689, 2692, 2695, 2698, 2701, 2704, 2707, 2710, + 2713, 2716, 2719, 2722, 2725, 2728, 2731, 2734, 2737, 2740, 2743, 2746, + 2749, 2752, 2755, 2758, 2761, 2764, 2767, 2770, 2773, 2776, 2779, 2782, + 2785, 2788, 2791, 2794, 2797, 2800, 2803, 2806, 2809, 2812, 2815, 2818, + 2821, 2824, 2827, 2830, 2833, 2836, 2839, 2842, 2845, 2848, 2851, 2854, + 2857, 2860, 2863, 2866, 2869, 2872, 2875, 2878, 2881, 2884, 2887, 2890, + 2893, 2896, 2899, 2902, 2905, 2908, 2911, 2914, 2917, 2920, 2923, 2926, + 2929, 2932, 2935, 2938, 2941, 2944, 2947, 2950, 2953, 2956, 2959, 2962, + 2965, 2968, 2971, 2974, 2977, 2980, 2983, 2986, 2989, 2992, 2995, 2998, + 3001, 3004, 3007, 3010, 3013, 3016, 3019, 3022, 3025, 3028, 3031, 3034, + 3037, 3040, 3043, 3046, 3049, 3052, 3055, 3058, 3061, 3064, 3067, 3070, + 3073, 3076, 3079, 3082, 3085, 3088, 3091, 3094, 3097, 3100, 3103, 3106, + 3109, 3112, 3115, 3118, 3121, 3124, 3127, 3130, 3133, 3136, 3139, 3142, + 3145, 3148, 3151, 3154, 3157, 3160, 3163, 3166, 3169, 3172, 3175, 3178, + 3181, 3184, 3187, 3190, 3193, 3196, 3199, 3202, 3205, 3208, 3211, 3214, + 3217, 3220, 3223, 3226, 3229, 3232, 3235, 3238, 3241, 3244, 3247, 3250, + 3253, 3256, 3259, 3262, 3265, 3268, 3271, 3274, 3277, 3280, 3283, 3286, + 3289, 3292, 3295, 3298, 3301, 3304, 3307, 3310, 3313, 3316, 3319, 3322, + 3325, 3328, 3331, 3334, 3337, 3340, 3343, 3346, 3349, 3352, 3355, 3358, + 3361, 3364, 3367, 3370, 3373, 3376, 3379, 3382, 3385, 3388, 3391, 3394, + 3397, 3400, 3403, 3406, 3409, 3412, 3415, 3418, 3421, 3424, 3427, 3430, + 3433, 3436, 3439, 3442, 3445, 3448, 3451, 3454, 3457, 3460, 3463, 3466, + 3469, 3472, 3475, 3478, 3481, 3484, 3487, 3490, 3493, 3496, 3499, 3502, + 3505, 3508, 3511, 3514, 3517, 3520, 3523, 3526, 3529, 3532, 3535, 3538, + 3541, 3544, 3547, 3550, 3553, 3556, 3559, 3562, 3565, 3568, 3571, 3574, + 3577, 3580, 3583, 3586, 3589, 3592, 3595, 3598, 3601, 3604, 3607, 3610, + 3613, 3616, 3619, 3622, 3625, 3628, 3631, 3634, 3637, 3640, 3643, 3646, + 3649, 3652, 3655, 3658, 3661, 3664, 3667, 3670, 3673, 3676, 3679, 3682, + 3685, 3688, 3691, 3694, 3697, 3700, 3703, 3706, 3709, 3712, 3715, 3718, + 3721, 3724, 3727, 3730, 3733, 3736, 3739, 3742, 3745, 3748, 3751, 3754, + 3757, 3760, 3763, 3766, 3769, 3772, 3775, 3778, 3781, 3784, 3787, 3790, + 3793, 3796, 3799, 3802, 3805, 3808, 3811, 3814, 3817, 3820, 3823, 3826, + 3829, 3832, 3835, 3838, 3841, 3844, 3847, 3850, 3853, 3856, 3859, 3862, + 3865, 3868, 3871, 3874, 3877, 3880, 3883, 3886, 3889, 3892, 3895, 3898, + 3901, 3904, 3907, 3910, 3913, 3916, 3919, 3922, 3925, 3928, 3931, 3934, + 3937, 3940, 3943, 3946, 3949, 3952, 3955, 3958, 3961, 3964, 3967, 3970, + 3973, 3976, 3979, 3982, 3985, 3988, 3991, 3994, 3997, 4000, 4003, 4006, + 4009, 4012, 4015, 4018, 4021, 4024, 4027, 4030, 4033, 4036, 4039, 4042, + 4045, 4048, 4051, 4054, 4057, 4060, 4063, 4066, 4069, 4072, 4075, 4078, + 4081, 4084, 4087, 4090, 4093, 4096, 4099, 4102, 4105, 4108, 4111, 4114, + 4117, 4120, 4123, 4126, 4129, 4132, 4135, 4138, 4141, 4144, 4147, 4150, + 4153, 4156, 4159, 4162, 4165, 4168, 4171, 4174, 4177, 4180, 4183, 4186, + 4189, 4192, 4195, 4198, 4201, 4204, 4207, 4210, 4213, 4216, 4219, 4222, + 4225, 4228, 4231, 4234, 4237, 4240, 4243, 4246, 4249, 4252, 4255, 4258, + 4261, 4264, 4267, 4270, 4273, 4276, 4279, 4282, 4285, 4288, 4291, 4294, + 4297, 4300, 4303, 4306, 4309, 4312, 4315, 4318, 4321, 4324, 4327, 4330, + 4333, 4336, 4339, 4342, 4345, 4348, 4351, 4354, 4357, 4360, 4363, 4366, + 4369, 4372, 4375, 4378, 4381, 4384, 4387, 4390, 4393, 4396, 4399, 4402, + 4405, 4408, 4411, 4414, 4417, 4420, 4423, 4426, 4429, 4432, 4435, 4438, + 4441, 4444, 4447, 4450, 4453, 4456, 4459, 4462, 4465, 4468, 4471, 4474, + 4477, 4480, 4483, 4486, 4489, 4492, 4495, 4498, 4501, 4504, 4507, 4510, + 4513, 4516, 4519, 4522, 4525, 4528, 4531 }; static const wchar_t translit_to_tbl[] = L" \0" L"\0" L"(C)\0" L"\0" L"<<\0" L"\0" L"-\0" L"\0" L"(R)\0" L"\0" L"u\0" @@ -352,4 +669,131 @@ static const wchar_t translit_to_tbl[] = L"\0" L"n\0" L"\0" L"o\0" L"\0" L"p\0" L"\0" L"q\0" L"\0" L"r\0" L"\0" L"s\0" L"\0" L"t\0" L"\0" L"u\0" L"\0" L"v\0" L"\0" L"w\0" L"\0" L"x\0" L"\0" L"y\0" L"\0" L"z\0" L"\0" L"{\0" L"\0" L"|\0" L"\0" L"}\0" L"\0" - L"~\0"; + L"~\0" L"\0" L"A\0" L"\0" L"B\0" L"\0" L"C\0" L"\0" L"D\0" L"\0" L"E\0" + L"\0" L"F\0" L"\0" L"G\0" L"\0" L"H\0" L"\0" L"I\0" L"\0" L"J\0" L"\0" + L"K\0" L"\0" L"L\0" L"\0" L"M\0" L"\0" L"N\0" L"\0" L"O\0" L"\0" L"P\0" + L"\0" L"Q\0" L"\0" L"R\0" L"\0" L"S\0" L"\0" L"T\0" L"\0" L"U\0" L"\0" + L"V\0" L"\0" L"W\0" L"\0" L"X\0" L"\0" L"Y\0" L"\0" L"Z\0" L"\0" L"a\0" + L"\0" L"b\0" L"\0" L"c\0" L"\0" L"d\0" L"\0" L"e\0" L"\0" L"f\0" L"\0" + L"g\0" L"\0" L"h\0" L"\0" L"i\0" L"\0" L"j\0" L"\0" L"k\0" L"\0" L"l\0" + L"\0" L"m\0" L"\0" L"n\0" L"\0" L"o\0" L"\0" L"p\0" L"\0" L"q\0" L"\0" + L"r\0" L"\0" L"s\0" L"\0" L"t\0" L"\0" L"u\0" L"\0" L"v\0" L"\0" L"w\0" + L"\0" L"x\0" L"\0" L"y\0" L"\0" L"z\0" L"\0" L"A\0" L"\0" L"B\0" L"\0" + L"C\0" L"\0" L"D\0" L"\0" L"E\0" L"\0" L"F\0" L"\0" L"G\0" L"\0" L"H\0" + L"\0" L"I\0" L"\0" L"J\0" L"\0" L"K\0" L"\0" L"L\0" L"\0" L"M\0" L"\0" + L"N\0" L"\0" L"O\0" L"\0" L"P\0" L"\0" L"Q\0" L"\0" L"R\0" L"\0" L"S\0" + L"\0" L"T\0" L"\0" L"U\0" L"\0" L"V\0" L"\0" L"W\0" L"\0" L"X\0" L"\0" + L"Y\0" L"\0" L"Z\0" L"\0" L"a\0" L"\0" L"b\0" L"\0" L"c\0" L"\0" L"d\0" + L"\0" L"e\0" L"\0" L"f\0" L"\0" L"g\0" L"\0" L"i\0" L"\0" L"j\0" L"\0" + L"k\0" L"\0" L"l\0" L"\0" L"m\0" L"\0" L"n\0" L"\0" L"o\0" L"\0" L"p\0" + L"\0" L"q\0" L"\0" L"r\0" L"\0" L"s\0" L"\0" L"t\0" L"\0" L"u\0" L"\0" + L"v\0" L"\0" L"w\0" L"\0" L"x\0" L"\0" L"y\0" L"\0" L"z\0" L"\0" L"A\0" + L"\0" L"B\0" L"\0" L"C\0" L"\0" L"D\0" L"\0" L"E\0" L"\0" L"F\0" L"\0" + L"G\0" L"\0" L"H\0" L"\0" L"I\0" L"\0" L"J\0" L"\0" L"K\0" L"\0" L"L\0" + L"\0" L"M\0" L"\0" L"N\0" L"\0" L"O\0" L"\0" L"P\0" L"\0" L"Q\0" L"\0" + L"R\0" L"\0" L"S\0" L"\0" L"T\0" L"\0" L"U\0" L"\0" L"V\0" L"\0" L"W\0" + L"\0" L"X\0" L"\0" L"Y\0" L"\0" L"Z\0" L"\0" L"a\0" L"\0" L"b\0" L"\0" + L"c\0" L"\0" L"d\0" L"\0" L"e\0" L"\0" L"f\0" L"\0" L"g\0" L"\0" L"h\0" + L"\0" L"i\0" L"\0" L"j\0" L"\0" L"k\0" L"\0" L"l\0" L"\0" L"m\0" L"\0" + L"n\0" L"\0" L"o\0" L"\0" L"p\0" L"\0" L"q\0" L"\0" L"r\0" L"\0" L"s\0" + L"\0" L"t\0" L"\0" L"u\0" L"\0" L"v\0" L"\0" L"w\0" L"\0" L"x\0" L"\0" + L"y\0" L"\0" L"z\0" L"\0" L"A\0" L"\0" L"C\0" L"\0" L"D\0" L"\0" L"G\0" + L"\0" L"J\0" L"\0" L"K\0" L"\0" L"N\0" L"\0" L"O\0" L"\0" L"P\0" L"\0" + L"Q\0" L"\0" L"S\0" L"\0" L"T\0" L"\0" L"U\0" L"\0" L"V\0" L"\0" L"W\0" + L"\0" L"X\0" L"\0" L"Y\0" L"\0" L"Z\0" L"\0" L"a\0" L"\0" L"b\0" L"\0" + L"c\0" L"\0" L"d\0" L"\0" L"f\0" L"\0" L"h\0" L"\0" L"i\0" L"\0" L"j\0" + L"\0" L"k\0" L"\0" L"m\0" L"\0" L"n\0" L"\0" L"p\0" L"\0" L"q\0" L"\0" + L"r\0" L"\0" L"s\0" L"\0" L"t\0" L"\0" L"u\0" L"\0" L"v\0" L"\0" L"w\0" + L"\0" L"x\0" L"\0" L"y\0" L"\0" L"z\0" L"\0" L"A\0" L"\0" L"B\0" L"\0" + L"C\0" L"\0" L"D\0" L"\0" L"E\0" L"\0" L"F\0" L"\0" L"G\0" L"\0" L"H\0" + L"\0" L"I\0" L"\0" L"J\0" L"\0" L"K\0" L"\0" L"L\0" L"\0" L"M\0" L"\0" + L"N\0" L"\0" L"O\0" L"\0" L"P\0" L"\0" L"Q\0" L"\0" L"R\0" L"\0" L"S\0" + L"\0" L"T\0" L"\0" L"U\0" L"\0" L"V\0" L"\0" L"W\0" L"\0" L"X\0" L"\0" + L"Y\0" L"\0" L"Z\0" L"\0" L"a\0" L"\0" L"b\0" L"\0" L"c\0" L"\0" L"d\0" + L"\0" L"e\0" L"\0" L"f\0" L"\0" L"g\0" L"\0" L"h\0" L"\0" L"i\0" L"\0" + L"j\0" L"\0" L"k\0" L"\0" L"l\0" L"\0" L"m\0" L"\0" L"n\0" L"\0" L"o\0" + L"\0" L"p\0" L"\0" L"q\0" L"\0" L"r\0" L"\0" L"s\0" L"\0" L"t\0" L"\0" + L"u\0" L"\0" L"v\0" L"\0" L"w\0" L"\0" L"x\0" L"\0" L"y\0" L"\0" L"z\0" + L"\0" L"A\0" L"\0" L"B\0" L"\0" L"D\0" L"\0" L"E\0" L"\0" L"F\0" L"\0" + L"G\0" L"\0" L"J\0" L"\0" L"K\0" L"\0" L"L\0" L"\0" L"M\0" L"\0" L"N\0" + L"\0" L"O\0" L"\0" L"P\0" L"\0" L"Q\0" L"\0" L"S\0" L"\0" L"T\0" L"\0" + L"U\0" L"\0" L"V\0" L"\0" L"W\0" L"\0" L"X\0" L"\0" L"Y\0" L"\0" L"a\0" + L"\0" L"b\0" L"\0" L"c\0" L"\0" L"d\0" L"\0" L"e\0" L"\0" L"f\0" L"\0" + L"g\0" L"\0" L"h\0" L"\0" L"i\0" L"\0" L"j\0" L"\0" L"k\0" L"\0" L"l\0" + L"\0" L"m\0" L"\0" L"n\0" L"\0" L"o\0" L"\0" L"p\0" L"\0" L"q\0" L"\0" + L"r\0" L"\0" L"s\0" L"\0" L"t\0" L"\0" L"u\0" L"\0" L"v\0" L"\0" L"w\0" + L"\0" L"x\0" L"\0" L"y\0" L"\0" L"z\0" L"\0" L"A\0" L"\0" L"B\0" L"\0" + L"D\0" L"\0" L"E\0" L"\0" L"F\0" L"\0" L"G\0" L"\0" L"I\0" L"\0" L"J\0" + L"\0" L"K\0" L"\0" L"L\0" L"\0" L"M\0" L"\0" L"O\0" L"\0" L"S\0" L"\0" + L"T\0" L"\0" L"U\0" L"\0" L"V\0" L"\0" L"W\0" L"\0" L"X\0" L"\0" L"Y\0" + L"\0" L"a\0" L"\0" L"b\0" L"\0" L"c\0" L"\0" L"d\0" L"\0" L"e\0" L"\0" + L"f\0" L"\0" L"g\0" L"\0" L"h\0" L"\0" L"i\0" L"\0" L"j\0" L"\0" L"k\0" + L"\0" L"l\0" L"\0" L"m\0" L"\0" L"n\0" L"\0" L"o\0" L"\0" L"p\0" L"\0" + L"q\0" L"\0" L"r\0" L"\0" L"s\0" L"\0" L"t\0" L"\0" L"u\0" L"\0" L"v\0" + L"\0" L"w\0" L"\0" L"x\0" L"\0" L"y\0" L"\0" L"z\0" L"\0" L"A\0" L"\0" + L"B\0" L"\0" L"C\0" L"\0" L"D\0" L"\0" L"E\0" L"\0" L"F\0" L"\0" L"G\0" + L"\0" L"H\0" L"\0" L"I\0" L"\0" L"J\0" L"\0" L"K\0" L"\0" L"L\0" L"\0" + L"M\0" L"\0" L"N\0" L"\0" L"O\0" L"\0" L"P\0" L"\0" L"Q\0" L"\0" L"R\0" + L"\0" L"S\0" L"\0" L"T\0" L"\0" L"U\0" L"\0" L"V\0" L"\0" L"W\0" L"\0" + L"X\0" L"\0" L"Y\0" L"\0" L"Z\0" L"\0" L"a\0" L"\0" L"b\0" L"\0" L"c\0" + L"\0" L"d\0" L"\0" L"e\0" L"\0" L"f\0" L"\0" L"g\0" L"\0" L"h\0" L"\0" + L"i\0" L"\0" L"j\0" L"\0" L"k\0" L"\0" L"l\0" L"\0" L"m\0" L"\0" L"n\0" + L"\0" L"o\0" L"\0" L"p\0" L"\0" L"q\0" L"\0" L"r\0" L"\0" L"s\0" L"\0" + L"t\0" L"\0" L"u\0" L"\0" L"v\0" L"\0" L"w\0" L"\0" L"x\0" L"\0" L"y\0" + L"\0" L"z\0" L"\0" L"A\0" L"\0" L"B\0" L"\0" L"C\0" L"\0" L"D\0" L"\0" + L"E\0" L"\0" L"F\0" L"\0" L"G\0" L"\0" L"H\0" L"\0" L"I\0" L"\0" L"J\0" + L"\0" L"K\0" L"\0" L"L\0" L"\0" L"M\0" L"\0" L"N\0" L"\0" L"O\0" L"\0" + L"P\0" L"\0" L"Q\0" L"\0" L"R\0" L"\0" L"S\0" L"\0" L"T\0" L"\0" L"U\0" + L"\0" L"V\0" L"\0" L"W\0" L"\0" L"X\0" L"\0" L"Y\0" L"\0" L"Z\0" L"\0" + L"a\0" L"\0" L"b\0" L"\0" L"c\0" L"\0" L"d\0" L"\0" L"e\0" L"\0" L"f\0" + L"\0" L"g\0" L"\0" L"h\0" L"\0" L"i\0" L"\0" L"j\0" L"\0" L"k\0" L"\0" + L"l\0" L"\0" L"m\0" L"\0" L"n\0" L"\0" L"o\0" L"\0" L"p\0" L"\0" L"q\0" + L"\0" L"r\0" L"\0" L"s\0" L"\0" L"t\0" L"\0" L"u\0" L"\0" L"v\0" L"\0" + L"w\0" L"\0" L"x\0" L"\0" L"y\0" L"\0" L"z\0" L"\0" L"A\0" L"\0" L"B\0" + L"\0" L"C\0" L"\0" L"D\0" L"\0" L"E\0" L"\0" L"F\0" L"\0" L"G\0" L"\0" + L"H\0" L"\0" L"I\0" L"\0" L"J\0" L"\0" L"K\0" L"\0" L"L\0" L"\0" L"M\0" + L"\0" L"N\0" L"\0" L"O\0" L"\0" L"P\0" L"\0" L"Q\0" L"\0" L"R\0" L"\0" + L"S\0" L"\0" L"T\0" L"\0" L"U\0" L"\0" L"V\0" L"\0" L"W\0" L"\0" L"X\0" + L"\0" L"Y\0" L"\0" L"Z\0" L"\0" L"a\0" L"\0" L"b\0" L"\0" L"c\0" L"\0" + L"d\0" L"\0" L"e\0" L"\0" L"f\0" L"\0" L"g\0" L"\0" L"h\0" L"\0" L"i\0" + L"\0" L"j\0" L"\0" L"k\0" L"\0" L"l\0" L"\0" L"m\0" L"\0" L"n\0" L"\0" + L"o\0" L"\0" L"p\0" L"\0" L"q\0" L"\0" L"r\0" L"\0" L"s\0" L"\0" L"t\0" + L"\0" L"u\0" L"\0" L"v\0" L"\0" L"w\0" L"\0" L"x\0" L"\0" L"y\0" L"\0" + L"z\0" L"\0" L"A\0" L"\0" L"B\0" L"\0" L"C\0" L"\0" L"D\0" L"\0" L"E\0" + L"\0" L"F\0" L"\0" L"G\0" L"\0" L"H\0" L"\0" L"I\0" L"\0" L"J\0" L"\0" + L"K\0" L"\0" L"L\0" L"\0" L"M\0" L"\0" L"N\0" L"\0" L"O\0" L"\0" L"P\0" + L"\0" L"Q\0" L"\0" L"R\0" L"\0" L"S\0" L"\0" L"T\0" L"\0" L"U\0" L"\0" + L"V\0" L"\0" L"W\0" L"\0" L"X\0" L"\0" L"Y\0" L"\0" L"Z\0" L"\0" L"a\0" + L"\0" L"b\0" L"\0" L"c\0" L"\0" L"d\0" L"\0" L"e\0" L"\0" L"f\0" L"\0" + L"g\0" L"\0" L"h\0" L"\0" L"i\0" L"\0" L"j\0" L"\0" L"k\0" L"\0" L"l\0" + L"\0" L"m\0" L"\0" L"n\0" L"\0" L"o\0" L"\0" L"p\0" L"\0" L"q\0" L"\0" + L"r\0" L"\0" L"s\0" L"\0" L"t\0" L"\0" L"u\0" L"\0" L"v\0" L"\0" L"w\0" + L"\0" L"x\0" L"\0" L"y\0" L"\0" L"z\0" L"\0" L"A\0" L"\0" L"B\0" L"\0" + L"C\0" L"\0" L"D\0" L"\0" L"E\0" L"\0" L"F\0" L"\0" L"G\0" L"\0" L"H\0" + L"\0" L"I\0" L"\0" L"J\0" L"\0" L"K\0" L"\0" L"L\0" L"\0" L"M\0" L"\0" + L"N\0" L"\0" L"O\0" L"\0" L"P\0" L"\0" L"Q\0" L"\0" L"R\0" L"\0" L"S\0" + L"\0" L"T\0" L"\0" L"U\0" L"\0" L"V\0" L"\0" L"W\0" L"\0" L"X\0" L"\0" + L"Y\0" L"\0" L"Z\0" L"\0" L"a\0" L"\0" L"b\0" L"\0" L"c\0" L"\0" L"d\0" + L"\0" L"e\0" L"\0" L"f\0" L"\0" L"g\0" L"\0" L"h\0" L"\0" L"i\0" L"\0" + L"j\0" L"\0" L"k\0" L"\0" L"l\0" L"\0" L"m\0" L"\0" L"n\0" L"\0" L"o\0" + L"\0" L"p\0" L"\0" L"q\0" L"\0" L"r\0" L"\0" L"s\0" L"\0" L"t\0" L"\0" + L"u\0" L"\0" L"v\0" L"\0" L"w\0" L"\0" L"x\0" L"\0" L"y\0" L"\0" L"z\0" + L"\0" L"A\0" L"\0" L"B\0" L"\0" L"C\0" L"\0" L"D\0" L"\0" L"E\0" L"\0" + L"F\0" L"\0" L"G\0" L"\0" L"H\0" L"\0" L"I\0" L"\0" L"J\0" L"\0" L"K\0" + L"\0" L"L\0" L"\0" L"M\0" L"\0" L"N\0" L"\0" L"O\0" L"\0" L"P\0" L"\0" + L"Q\0" L"\0" L"R\0" L"\0" L"S\0" L"\0" L"T\0" L"\0" L"U\0" L"\0" L"V\0" + L"\0" L"W\0" L"\0" L"X\0" L"\0" L"Y\0" L"\0" L"Z\0" L"\0" L"a\0" L"\0" + L"b\0" L"\0" L"c\0" L"\0" L"d\0" L"\0" L"e\0" L"\0" L"f\0" L"\0" L"g\0" + L"\0" L"h\0" L"\0" L"i\0" L"\0" L"j\0" L"\0" L"k\0" L"\0" L"l\0" L"\0" + L"m\0" L"\0" L"n\0" L"\0" L"o\0" L"\0" L"p\0" L"\0" L"q\0" L"\0" L"r\0" + L"\0" L"s\0" L"\0" L"t\0" L"\0" L"u\0" L"\0" L"v\0" L"\0" L"w\0" L"\0" + L"x\0" L"\0" L"y\0" L"\0" L"z\0" L"\0" L"0\0" L"\0" L"1\0" L"\0" L"2\0" + L"\0" L"3\0" L"\0" L"4\0" L"\0" L"5\0" L"\0" L"6\0" L"\0" L"7\0" L"\0" + L"8\0" L"\0" L"9\0" L"\0" L"0\0" L"\0" L"1\0" L"\0" L"2\0" L"\0" L"3\0" + L"\0" L"4\0" L"\0" L"5\0" L"\0" L"6\0" L"\0" L"7\0" L"\0" L"8\0" L"\0" + L"9\0" L"\0" L"0\0" L"\0" L"1\0" L"\0" L"2\0" L"\0" L"3\0" L"\0" L"4\0" + L"\0" L"5\0" L"\0" L"6\0" L"\0" L"7\0" L"\0" L"8\0" L"\0" L"9\0" L"\0" + L"0\0" L"\0" L"1\0" L"\0" L"2\0" L"\0" L"3\0" L"\0" L"4\0" L"\0" L"5\0" + L"\0" L"6\0" L"\0" L"7\0" L"\0" L"8\0" L"\0" L"9\0" L"\0" L"0\0" L"\0" + L"1\0" L"\0" L"2\0" L"\0" L"3\0" L"\0" L"4\0" L"\0" L"5\0" L"\0" L"6\0" + L"\0" L"7\0" L"\0" L"8\0" L"\0" L"9\0"; diff --git a/locale/C-translit.h.in b/locale/C-translit.h.in index 4e16c10a27..8be70c9dac 100644 --- a/locale/C-translit.h.in +++ b/locale/C-translit.h.in @@ -610,3 +610,704 @@ "\xff5c" "|" /* FULLWIDTH VERTICAL LINE */ "\xff5d" "}" /* FULLWIDTH RIGHT CURLY BRACKET */ "\xff5e" "~" /* FULLWIDTH TILDE */ +"\x0001d400" "A" /* MATHEMATICAL BOLD CAPITAL A */ +"\x0001d401" "B" /* MATHEMATICAL BOLD CAPITAL B */ +"\x0001d402" "C" /* MATHEMATICAL BOLD CAPITAL C */ +"\x0001d403" "D" /* MATHEMATICAL BOLD CAPITAL D */ +"\x0001d404" "E" /* MATHEMATICAL BOLD CAPITAL E */ +"\x0001d405" "F" /* MATHEMATICAL BOLD CAPITAL F */ +"\x0001d406" "G" /* MATHEMATICAL BOLD CAPITAL G */ +"\x0001d407" "H" /* MATHEMATICAL BOLD CAPITAL H */ +"\x0001d408" "I" /* MATHEMATICAL BOLD CAPITAL I */ +"\x0001d409" "J" /* MATHEMATICAL BOLD CAPITAL J */ +"\x0001d40a" "K" /* MATHEMATICAL BOLD CAPITAL K */ +"\x0001d40b" "L" /* MATHEMATICAL BOLD CAPITAL L */ +"\x0001d40c" "M" /* MATHEMATICAL BOLD CAPITAL M */ +"\x0001d40d" "N" /* MATHEMATICAL BOLD CAPITAL N */ +"\x0001d40e" "O" /* MATHEMATICAL BOLD CAPITAL O */ +"\x0001d40f" "P" /* MATHEMATICAL BOLD CAPITAL P */ +"\x0001d410" "Q" /* MATHEMATICAL BOLD CAPITAL Q */ +"\x0001d411" "R" /* MATHEMATICAL BOLD CAPITAL R */ +"\x0001d412" "S" /* MATHEMATICAL BOLD CAPITAL S */ +"\x0001d413" "T" /* MATHEMATICAL BOLD CAPITAL T */ +"\x0001d414" "U" /* MATHEMATICAL BOLD CAPITAL U */ +"\x0001d415" "V" /* MATHEMATICAL BOLD CAPITAL V */ +"\x0001d416" "W" /* MATHEMATICAL BOLD CAPITAL W */ +"\x0001d417" "X" /* MATHEMATICAL BOLD CAPITAL X */ +"\x0001d418" "Y" /* MATHEMATICAL BOLD CAPITAL Y */ +"\x0001d419" "Z" /* MATHEMATICAL BOLD CAPITAL Z */ +"\x0001d41a" "a" /* MATHEMATICAL BOLD SMALL A */ +"\x0001d41b" "b" /* MATHEMATICAL BOLD SMALL B */ +"\x0001d41c" "c" /* MATHEMATICAL BOLD SMALL C */ +"\x0001d41d" "d" /* MATHEMATICAL BOLD SMALL D */ +"\x0001d41e" "e" /* MATHEMATICAL BOLD SMALL E */ +"\x0001d41f" "f" /* MATHEMATICAL BOLD SMALL F */ +"\x0001d420" "g" /* MATHEMATICAL BOLD SMALL G */ +"\x0001d421" "h" /* MATHEMATICAL BOLD SMALL H */ +"\x0001d422" "i" /* MATHEMATICAL BOLD SMALL I */ +"\x0001d423" "j" /* MATHEMATICAL BOLD SMALL J */ +"\x0001d424" "k" /* MATHEMATICAL BOLD SMALL K */ +"\x0001d425" "l" /* MATHEMATICAL BOLD SMALL L */ +"\x0001d426" "m" /* MATHEMATICAL BOLD SMALL M */ +"\x0001d427" "n" /* MATHEMATICAL BOLD SMALL N */ +"\x0001d428" "o" /* MATHEMATICAL BOLD SMALL O */ +"\x0001d429" "p" /* MATHEMATICAL BOLD SMALL P */ +"\x0001d42a" "q" /* MATHEMATICAL BOLD SMALL Q */ +"\x0001d42b" "r" /* MATHEMATICAL BOLD SMALL R */ +"\x0001d42c" "s" /* MATHEMATICAL BOLD SMALL S */ +"\x0001d42d" "t" /* MATHEMATICAL BOLD SMALL T */ +"\x0001d42e" "u" /* MATHEMATICAL BOLD SMALL U */ +"\x0001d42f" "v" /* MATHEMATICAL BOLD SMALL V */ +"\x0001d430" "w" /* MATHEMATICAL BOLD SMALL W */ +"\x0001d431" "x" /* MATHEMATICAL BOLD SMALL X */ +"\x0001d432" "y" /* MATHEMATICAL BOLD SMALL Y */ +"\x0001d433" "z" /* MATHEMATICAL BOLD SMALL Z */ +"\x0001d434" "A" /* MATHEMATICAL ITALIC CAPITAL A */ +"\x0001d435" "B" /* MATHEMATICAL ITALIC CAPITAL B */ +"\x0001d436" "C" /* MATHEMATICAL ITALIC CAPITAL C */ +"\x0001d437" "D" /* MATHEMATICAL ITALIC CAPITAL D */ +"\x0001d438" "E" /* MATHEMATICAL ITALIC CAPITAL E */ +"\x0001d439" "F" /* MATHEMATICAL ITALIC CAPITAL F */ +"\x0001d43a" "G" /* MATHEMATICAL ITALIC CAPITAL G */ +"\x0001d43b" "H" /* MATHEMATICAL ITALIC CAPITAL H */ +"\x0001d43c" "I" /* MATHEMATICAL ITALIC CAPITAL I */ +"\x0001d43d" "J" /* MATHEMATICAL ITALIC CAPITAL J */ +"\x0001d43e" "K" /* MATHEMATICAL ITALIC CAPITAL K */ +"\x0001d43f" "L" /* MATHEMATICAL ITALIC CAPITAL L */ +"\x0001d440" "M" /* MATHEMATICAL ITALIC CAPITAL M */ +"\x0001d441" "N" /* MATHEMATICAL ITALIC CAPITAL N */ +"\x0001d442" "O" /* MATHEMATICAL ITALIC CAPITAL O */ +"\x0001d443" "P" /* MATHEMATICAL ITALIC CAPITAL P */ +"\x0001d444" "Q" /* MATHEMATICAL ITALIC CAPITAL Q */ +"\x0001d445" "R" /* MATHEMATICAL ITALIC CAPITAL R */ +"\x0001d446" "S" /* MATHEMATICAL ITALIC CAPITAL S */ +"\x0001d447" "T" /* MATHEMATICAL ITALIC CAPITAL T */ +"\x0001d448" "U" /* MATHEMATICAL ITALIC CAPITAL U */ +"\x0001d449" "V" /* MATHEMATICAL ITALIC CAPITAL V */ +"\x0001d44a" "W" /* MATHEMATICAL ITALIC CAPITAL W */ +"\x0001d44b" "X" /* MATHEMATICAL ITALIC CAPITAL X */ +"\x0001d44c" "Y" /* MATHEMATICAL ITALIC CAPITAL Y */ +"\x0001d44d" "Z" /* MATHEMATICAL ITALIC CAPITAL Z */ +"\x0001d44e" "a" /* MATHEMATICAL ITALIC SMALL A */ +"\x0001d44f" "b" /* MATHEMATICAL ITALIC SMALL B */ +"\x0001d450" "c" /* MATHEMATICAL ITALIC SMALL C */ +"\x0001d451" "d" /* MATHEMATICAL ITALIC SMALL D */ +"\x0001d452" "e" /* MATHEMATICAL ITALIC SMALL E */ +"\x0001d453" "f" /* MATHEMATICAL ITALIC SMALL F */ +"\x0001d454" "g" /* MATHEMATICAL ITALIC SMALL G */ +"\x0001d456" "i" /* MATHEMATICAL ITALIC SMALL I */ +"\x0001d457" "j" /* MATHEMATICAL ITALIC SMALL J */ +"\x0001d458" "k" /* MATHEMATICAL ITALIC SMALL K */ +"\x0001d459" "l" /* MATHEMATICAL ITALIC SMALL L */ +"\x0001d45a" "m" /* MATHEMATICAL ITALIC SMALL M */ +"\x0001d45b" "n" /* MATHEMATICAL ITALIC SMALL N */ +"\x0001d45c" "o" /* MATHEMATICAL ITALIC SMALL O */ +"\x0001d45d" "p" /* MATHEMATICAL ITALIC SMALL P */ +"\x0001d45e" "q" /* MATHEMATICAL ITALIC SMALL Q */ +"\x0001d45f" "r" /* MATHEMATICAL ITALIC SMALL R */ +"\x0001d460" "s" /* MATHEMATICAL ITALIC SMALL S */ +"\x0001d461" "t" /* MATHEMATICAL ITALIC SMALL T */ +"\x0001d462" "u" /* MATHEMATICAL ITALIC SMALL U */ +"\x0001d463" "v" /* MATHEMATICAL ITALIC SMALL V */ +"\x0001d464" "w" /* MATHEMATICAL ITALIC SMALL W */ +"\x0001d465" "x" /* MATHEMATICAL ITALIC SMALL X */ +"\x0001d466" "y" /* MATHEMATICAL ITALIC SMALL Y */ +"\x0001d467" "z" /* MATHEMATICAL ITALIC SMALL Z */ +"\x0001d468" "A" /* MATHEMATICAL BOLD ITALIC CAPITAL A */ +"\x0001d469" "B" /* MATHEMATICAL BOLD ITALIC CAPITAL B */ +"\x0001d46a" "C" /* MATHEMATICAL BOLD ITALIC CAPITAL C */ +"\x0001d46b" "D" /* MATHEMATICAL BOLD ITALIC CAPITAL D */ +"\x0001d46c" "E" /* MATHEMATICAL BOLD ITALIC CAPITAL E */ +"\x0001d46d" "F" /* MATHEMATICAL BOLD ITALIC CAPITAL F */ +"\x0001d46e" "G" /* MATHEMATICAL BOLD ITALIC CAPITAL G */ +"\x0001d46f" "H" /* MATHEMATICAL BOLD ITALIC CAPITAL H */ +"\x0001d470" "I" /* MATHEMATICAL BOLD ITALIC CAPITAL I */ +"\x0001d471" "J" /* MATHEMATICAL BOLD ITALIC CAPITAL J */ +"\x0001d472" "K" /* MATHEMATICAL BOLD ITALIC CAPITAL K */ +"\x0001d473" "L" /* MATHEMATICAL BOLD ITALIC CAPITAL L */ +"\x0001d474" "M" /* MATHEMATICAL BOLD ITALIC CAPITAL M */ +"\x0001d475" "N" /* MATHEMATICAL BOLD ITALIC CAPITAL N */ +"\x0001d476" "O" /* MATHEMATICAL BOLD ITALIC CAPITAL O */ +"\x0001d477" "P" /* MATHEMATICAL BOLD ITALIC CAPITAL P */ +"\x0001d478" "Q" /* MATHEMATICAL BOLD ITALIC CAPITAL Q */ +"\x0001d479" "R" /* MATHEMATICAL BOLD ITALIC CAPITAL R */ +"\x0001d47a" "S" /* MATHEMATICAL BOLD ITALIC CAPITAL S */ +"\x0001d47b" "T" /* MATHEMATICAL BOLD ITALIC CAPITAL T */ +"\x0001d47c" "U" /* MATHEMATICAL BOLD ITALIC CAPITAL U */ +"\x0001d47d" "V" /* MATHEMATICAL BOLD ITALIC CAPITAL V */ +"\x0001d47e" "W" /* MATHEMATICAL BOLD ITALIC CAPITAL W */ +"\x0001d47f" "X" /* MATHEMATICAL BOLD ITALIC CAPITAL X */ +"\x0001d480" "Y" /* MATHEMATICAL BOLD ITALIC CAPITAL Y */ +"\x0001d481" "Z" /* MATHEMATICAL BOLD ITALIC CAPITAL Z */ +"\x0001d482" "a" /* MATHEMATICAL BOLD ITALIC SMALL A */ +"\x0001d483" "b" /* MATHEMATICAL BOLD ITALIC SMALL B */ +"\x0001d484" "c" /* MATHEMATICAL BOLD ITALIC SMALL C */ +"\x0001d485" "d" /* MATHEMATICAL BOLD ITALIC SMALL D */ +"\x0001d486" "e" /* MATHEMATICAL BOLD ITALIC SMALL E */ +"\x0001d487" "f" /* MATHEMATICAL BOLD ITALIC SMALL F */ +"\x0001d488" "g" /* MATHEMATICAL BOLD ITALIC SMALL G */ +"\x0001d489" "h" /* MATHEMATICAL BOLD ITALIC SMALL H */ +"\x0001d48a" "i" /* MATHEMATICAL BOLD ITALIC SMALL I */ +"\x0001d48b" "j" /* MATHEMATICAL BOLD ITALIC SMALL J */ +"\x0001d48c" "k" /* MATHEMATICAL BOLD ITALIC SMALL K */ +"\x0001d48d" "l" /* MATHEMATICAL BOLD ITALIC SMALL L */ +"\x0001d48e" "m" /* MATHEMATICAL BOLD ITALIC SMALL M */ +"\x0001d48f" "n" /* MATHEMATICAL BOLD ITALIC SMALL N */ +"\x0001d490" "o" /* MATHEMATICAL BOLD ITALIC SMALL O */ +"\x0001d491" "p" /* MATHEMATICAL BOLD ITALIC SMALL P */ +"\x0001d492" "q" /* MATHEMATICAL BOLD ITALIC SMALL Q */ +"\x0001d493" "r" /* MATHEMATICAL BOLD ITALIC SMALL R */ +"\x0001d494" "s" /* MATHEMATICAL BOLD ITALIC SMALL S */ +"\x0001d495" "t" /* MATHEMATICAL BOLD ITALIC SMALL T */ +"\x0001d496" "u" /* MATHEMATICAL BOLD ITALIC SMALL U */ +"\x0001d497" "v" /* MATHEMATICAL BOLD ITALIC SMALL V */ +"\x0001d498" "w" /* MATHEMATICAL BOLD ITALIC SMALL W */ +"\x0001d499" "x" /* MATHEMATICAL BOLD ITALIC SMALL X */ +"\x0001d49a" "y" /* MATHEMATICAL BOLD ITALIC SMALL Y */ +"\x0001d49b" "z" /* MATHEMATICAL BOLD ITALIC SMALL Z */ +"\x0001d49c" "A" /* MATHEMATICAL SCRIPT CAPITAL A */ +"\x0001d49e" "C" /* MATHEMATICAL SCRIPT CAPITAL C */ +"\x0001d49f" "D" /* MATHEMATICAL SCRIPT CAPITAL D */ +"\x0001d4a2" "G" /* MATHEMATICAL SCRIPT CAPITAL G */ +"\x0001d4a5" "J" /* MATHEMATICAL SCRIPT CAPITAL J */ +"\x0001d4a6" "K" /* MATHEMATICAL SCRIPT CAPITAL K */ +"\x0001d4a9" "N" /* MATHEMATICAL SCRIPT CAPITAL N */ +"\x0001d4aa" "O" /* MATHEMATICAL SCRIPT CAPITAL O */ +"\x0001d4ab" "P" /* MATHEMATICAL SCRIPT CAPITAL P */ +"\x0001d4ac" "Q" /* MATHEMATICAL SCRIPT CAPITAL Q */ +"\x0001d4ae" "S" /* MATHEMATICAL SCRIPT CAPITAL S */ +"\x0001d4af" "T" /* MATHEMATICAL SCRIPT CAPITAL T */ +"\x0001d4b0" "U" /* MATHEMATICAL SCRIPT CAPITAL U */ +"\x0001d4b1" "V" /* MATHEMATICAL SCRIPT CAPITAL V */ +"\x0001d4b2" "W" /* MATHEMATICAL SCRIPT CAPITAL W */ +"\x0001d4b3" "X" /* MATHEMATICAL SCRIPT CAPITAL X */ +"\x0001d4b4" "Y" /* MATHEMATICAL SCRIPT CAPITAL Y */ +"\x0001d4b5" "Z" /* MATHEMATICAL SCRIPT CAPITAL Z */ +"\x0001d4b6" "a" /* MATHEMATICAL SCRIPT SMALL A */ +"\x0001d4b7" "b" /* MATHEMATICAL SCRIPT SMALL B */ +"\x0001d4b8" "c" /* MATHEMATICAL SCRIPT SMALL C */ +"\x0001d4b9" "d" /* MATHEMATICAL SCRIPT SMALL D */ +"\x0001d4bb" "f" /* MATHEMATICAL SCRIPT SMALL F */ +"\x0001d4bd" "h" /* MATHEMATICAL SCRIPT SMALL H */ +"\x0001d4be" "i" /* MATHEMATICAL SCRIPT SMALL I */ +"\x0001d4bf" "j" /* MATHEMATICAL SCRIPT SMALL J */ +"\x0001d4c0" "k" /* MATHEMATICAL SCRIPT SMALL K */ +"\x0001d4c2" "m" /* MATHEMATICAL SCRIPT SMALL M */ +"\x0001d4c3" "n" /* MATHEMATICAL SCRIPT SMALL N */ +"\x0001d4c5" "p" /* MATHEMATICAL SCRIPT SMALL P */ +"\x0001d4c6" "q" /* MATHEMATICAL SCRIPT SMALL Q */ +"\x0001d4c7" "r" /* MATHEMATICAL SCRIPT SMALL R */ +"\x0001d4c8" "s" /* MATHEMATICAL SCRIPT SMALL S */ +"\x0001d4c9" "t" /* MATHEMATICAL SCRIPT SMALL T */ +"\x0001d4ca" "u" /* MATHEMATICAL SCRIPT SMALL U */ +"\x0001d4cb" "v" /* MATHEMATICAL SCRIPT SMALL V */ +"\x0001d4cc" "w" /* MATHEMATICAL SCRIPT SMALL W */ +"\x0001d4cd" "x" /* MATHEMATICAL SCRIPT SMALL X */ +"\x0001d4ce" "y" /* MATHEMATICAL SCRIPT SMALL Y */ +"\x0001d4cf" "z" /* MATHEMATICAL SCRIPT SMALL Z */ +"\x0001d4d0" "A" /* MATHEMATICAL BOLD SCRIPT CAPITAL A */ +"\x0001d4d1" "B" /* MATHEMATICAL BOLD SCRIPT CAPITAL B */ +"\x0001d4d2" "C" /* MATHEMATICAL BOLD SCRIPT CAPITAL C */ +"\x0001d4d3" "D" /* MATHEMATICAL BOLD SCRIPT CAPITAL D */ +"\x0001d4d4" "E" /* MATHEMATICAL BOLD SCRIPT CAPITAL E */ +"\x0001d4d5" "F" /* MATHEMATICAL BOLD SCRIPT CAPITAL F */ +"\x0001d4d6" "G" /* MATHEMATICAL BOLD SCRIPT CAPITAL G */ +"\x0001d4d7" "H" /* MATHEMATICAL BOLD SCRIPT CAPITAL H */ +"\x0001d4d8" "I" /* MATHEMATICAL BOLD SCRIPT CAPITAL I */ +"\x0001d4d9" "J" /* MATHEMATICAL BOLD SCRIPT CAPITAL J */ +"\x0001d4da" "K" /* MATHEMATICAL BOLD SCRIPT CAPITAL K */ +"\x0001d4db" "L" /* MATHEMATICAL BOLD SCRIPT CAPITAL L */ +"\x0001d4dc" "M" /* MATHEMATICAL BOLD SCRIPT CAPITAL M */ +"\x0001d4dd" "N" /* MATHEMATICAL BOLD SCRIPT CAPITAL N */ +"\x0001d4de" "O" /* MATHEMATICAL BOLD SCRIPT CAPITAL O */ +"\x0001d4df" "P" /* MATHEMATICAL BOLD SCRIPT CAPITAL P */ +"\x0001d4e0" "Q" /* MATHEMATICAL BOLD SCRIPT CAPITAL Q */ +"\x0001d4e1" "R" /* MATHEMATICAL BOLD SCRIPT CAPITAL R */ +"\x0001d4e2" "S" /* MATHEMATICAL BOLD SCRIPT CAPITAL S */ +"\x0001d4e3" "T" /* MATHEMATICAL BOLD SCRIPT CAPITAL T */ +"\x0001d4e4" "U" /* MATHEMATICAL BOLD SCRIPT CAPITAL U */ +"\x0001d4e5" "V" /* MATHEMATICAL BOLD SCRIPT CAPITAL V */ +"\x0001d4e6" "W" /* MATHEMATICAL BOLD SCRIPT CAPITAL W */ +"\x0001d4e7" "X" /* MATHEMATICAL BOLD SCRIPT CAPITAL X */ +"\x0001d4e8" "Y" /* MATHEMATICAL BOLD SCRIPT CAPITAL Y */ +"\x0001d4e9" "Z" /* MATHEMATICAL BOLD SCRIPT CAPITAL Z */ +"\x0001d4ea" "a" /* MATHEMATICAL BOLD SCRIPT SMALL A */ +"\x0001d4eb" "b" /* MATHEMATICAL BOLD SCRIPT SMALL B */ +"\x0001d4ec" "c" /* MATHEMATICAL BOLD SCRIPT SMALL C */ +"\x0001d4ed" "d" /* MATHEMATICAL BOLD SCRIPT SMALL D */ +"\x0001d4ee" "e" /* MATHEMATICAL BOLD SCRIPT SMALL E */ +"\x0001d4ef" "f" /* MATHEMATICAL BOLD SCRIPT SMALL F */ +"\x0001d4f0" "g" /* MATHEMATICAL BOLD SCRIPT SMALL G */ +"\x0001d4f1" "h" /* MATHEMATICAL BOLD SCRIPT SMALL H */ +"\x0001d4f2" "i" /* MATHEMATICAL BOLD SCRIPT SMALL I */ +"\x0001d4f3" "j" /* MATHEMATICAL BOLD SCRIPT SMALL J */ +"\x0001d4f4" "k" /* MATHEMATICAL BOLD SCRIPT SMALL K */ +"\x0001d4f5" "l" /* MATHEMATICAL BOLD SCRIPT SMALL L */ +"\x0001d4f6" "m" /* MATHEMATICAL BOLD SCRIPT SMALL M */ +"\x0001d4f7" "n" /* MATHEMATICAL BOLD SCRIPT SMALL N */ +"\x0001d4f8" "o" /* MATHEMATICAL BOLD SCRIPT SMALL O */ +"\x0001d4f9" "p" /* MATHEMATICAL BOLD SCRIPT SMALL P */ +"\x0001d4fa" "q" /* MATHEMATICAL BOLD SCRIPT SMALL Q */ +"\x0001d4fb" "r" /* MATHEMATICAL BOLD SCRIPT SMALL R */ +"\x0001d4fc" "s" /* MATHEMATICAL BOLD SCRIPT SMALL S */ +"\x0001d4fd" "t" /* MATHEMATICAL BOLD SCRIPT SMALL T */ +"\x0001d4fe" "u" /* MATHEMATICAL BOLD SCRIPT SMALL U */ +"\x0001d4ff" "v" /* MATHEMATICAL BOLD SCRIPT SMALL V */ +"\x0001d500" "w" /* MATHEMATICAL BOLD SCRIPT SMALL W */ +"\x0001d501" "x" /* MATHEMATICAL BOLD SCRIPT SMALL X */ +"\x0001d502" "y" /* MATHEMATICAL BOLD SCRIPT SMALL Y */ +"\x0001d503" "z" /* MATHEMATICAL BOLD SCRIPT SMALL Z */ +"\x0001d504" "A" /* MATHEMATICAL FRAKTUR CAPITAL A */ +"\x0001d505" "B" /* MATHEMATICAL FRAKTUR CAPITAL B */ +"\x0001d507" "D" /* MATHEMATICAL FRAKTUR CAPITAL D */ +"\x0001d508" "E" /* MATHEMATICAL FRAKTUR CAPITAL E */ +"\x0001d509" "F" /* MATHEMATICAL FRAKTUR CAPITAL F */ +"\x0001d50a" "G" /* MATHEMATICAL FRAKTUR CAPITAL G */ +"\x0001d50d" "J" /* MATHEMATICAL FRAKTUR CAPITAL J */ +"\x0001d50e" "K" /* MATHEMATICAL FRAKTUR CAPITAL K */ +"\x0001d50f" "L" /* MATHEMATICAL FRAKTUR CAPITAL L */ +"\x0001d510" "M" /* MATHEMATICAL FRAKTUR CAPITAL M */ +"\x0001d511" "N" /* MATHEMATICAL FRAKTUR CAPITAL N */ +"\x0001d512" "O" /* MATHEMATICAL FRAKTUR CAPITAL O */ +"\x0001d513" "P" /* MATHEMATICAL FRAKTUR CAPITAL P */ +"\x0001d514" "Q" /* MATHEMATICAL FRAKTUR CAPITAL Q */ +"\x0001d516" "S" /* MATHEMATICAL FRAKTUR CAPITAL S */ +"\x0001d517" "T" /* MATHEMATICAL FRAKTUR CAPITAL T */ +"\x0001d518" "U" /* MATHEMATICAL FRAKTUR CAPITAL U */ +"\x0001d519" "V" /* MATHEMATICAL FRAKTUR CAPITAL V */ +"\x0001d51a" "W" /* MATHEMATICAL FRAKTUR CAPITAL W */ +"\x0001d51b" "X" /* MATHEMATICAL FRAKTUR CAPITAL X */ +"\x0001d51c" "Y" /* MATHEMATICAL FRAKTUR CAPITAL Y */ +"\x0001d51e" "a" /* MATHEMATICAL FRAKTUR SMALL A */ +"\x0001d51f" "b" /* MATHEMATICAL FRAKTUR SMALL B */ +"\x0001d520" "c" /* MATHEMATICAL FRAKTUR SMALL C */ +"\x0001d521" "d" /* MATHEMATICAL FRAKTUR SMALL D */ +"\x0001d522" "e" /* MATHEMATICAL FRAKTUR SMALL E */ +"\x0001d523" "f" /* MATHEMATICAL FRAKTUR SMALL F */ +"\x0001d524" "g" /* MATHEMATICAL FRAKTUR SMALL G */ +"\x0001d525" "h" /* MATHEMATICAL FRAKTUR SMALL H */ +"\x0001d526" "i" /* MATHEMATICAL FRAKTUR SMALL I */ +"\x0001d527" "j" /* MATHEMATICAL FRAKTUR SMALL J */ +"\x0001d528" "k" /* MATHEMATICAL FRAKTUR SMALL K */ +"\x0001d529" "l" /* MATHEMATICAL FRAKTUR SMALL L */ +"\x0001d52a" "m" /* MATHEMATICAL FRAKTUR SMALL M */ +"\x0001d52b" "n" /* MATHEMATICAL FRAKTUR SMALL N */ +"\x0001d52c" "o" /* MATHEMATICAL FRAKTUR SMALL O */ +"\x0001d52d" "p" /* MATHEMATICAL FRAKTUR SMALL P */ +"\x0001d52e" "q" /* MATHEMATICAL FRAKTUR SMALL Q */ +"\x0001d52f" "r" /* MATHEMATICAL FRAKTUR SMALL R */ +"\x0001d530" "s" /* MATHEMATICAL FRAKTUR SMALL S */ +"\x0001d531" "t" /* MATHEMATICAL FRAKTUR SMALL T */ +"\x0001d532" "u" /* MATHEMATICAL FRAKTUR SMALL U */ +"\x0001d533" "v" /* MATHEMATICAL FRAKTUR SMALL V */ +"\x0001d534" "w" /* MATHEMATICAL FRAKTUR SMALL W */ +"\x0001d535" "x" /* MATHEMATICAL FRAKTUR SMALL X */ +"\x0001d536" "y" /* MATHEMATICAL FRAKTUR SMALL Y */ +"\x0001d537" "z" /* MATHEMATICAL FRAKTUR SMALL Z */ +"\x0001d538" "A" /* MATHEMATICAL DOUBLE-STRUCK CAPITAL A */ +"\x0001d539" "B" /* MATHEMATICAL DOUBLE-STRUCK CAPITAL B */ +"\x0001d53b" "D" /* MATHEMATICAL DOUBLE-STRUCK CAPITAL D */ +"\x0001d53c" "E" /* MATHEMATICAL DOUBLE-STRUCK CAPITAL E */ +"\x0001d53d" "F" /* MATHEMATICAL DOUBLE-STRUCK CAPITAL F */ +"\x0001d53e" "G" /* MATHEMATICAL DOUBLE-STRUCK CAPITAL G */ +"\x0001d540" "I" /* MATHEMATICAL DOUBLE-STRUCK CAPITAL I */ +"\x0001d541" "J" /* MATHEMATICAL DOUBLE-STRUCK CAPITAL J */ +"\x0001d542" "K" /* MATHEMATICAL DOUBLE-STRUCK CAPITAL K */ +"\x0001d543" "L" /* MATHEMATICAL DOUBLE-STRUCK CAPITAL L */ +"\x0001d544" "M" /* MATHEMATICAL DOUBLE-STRUCK CAPITAL M */ +"\x0001d546" "O" /* MATHEMATICAL DOUBLE-STRUCK CAPITAL O */ +"\x0001d54a" "S" /* MATHEMATICAL DOUBLE-STRUCK CAPITAL S */ +"\x0001d54b" "T" /* MATHEMATICAL DOUBLE-STRUCK CAPITAL T */ +"\x0001d54c" "U" /* MATHEMATICAL DOUBLE-STRUCK CAPITAL U */ +"\x0001d54d" "V" /* MATHEMATICAL DOUBLE-STRUCK CAPITAL V */ +"\x0001d54e" "W" /* MATHEMATICAL DOUBLE-STRUCK CAPITAL W */ +"\x0001d54f" "X" /* MATHEMATICAL DOUBLE-STRUCK CAPITAL X */ +"\x0001d550" "Y" /* MATHEMATICAL DOUBLE-STRUCK CAPITAL Y */ +"\x0001d552" "a" /* MATHEMATICAL DOUBLE-STRUCK SMALL A */ +"\x0001d553" "b" /* MATHEMATICAL DOUBLE-STRUCK SMALL B */ +"\x0001d554" "c" /* MATHEMATICAL DOUBLE-STRUCK SMALL C */ +"\x0001d555" "d" /* MATHEMATICAL DOUBLE-STRUCK SMALL D */ +"\x0001d556" "e" /* MATHEMATICAL DOUBLE-STRUCK SMALL E */ +"\x0001d557" "f" /* MATHEMATICAL DOUBLE-STRUCK SMALL F */ +"\x0001d558" "g" /* MATHEMATICAL DOUBLE-STRUCK SMALL G */ +"\x0001d559" "h" /* MATHEMATICAL DOUBLE-STRUCK SMALL H */ +"\x0001d55a" "i" /* MATHEMATICAL DOUBLE-STRUCK SMALL I */ +"\x0001d55b" "j" /* MATHEMATICAL DOUBLE-STRUCK SMALL J */ +"\x0001d55c" "k" /* MATHEMATICAL DOUBLE-STRUCK SMALL K */ +"\x0001d55d" "l" /* MATHEMATICAL DOUBLE-STRUCK SMALL L */ +"\x0001d55e" "m" /* MATHEMATICAL DOUBLE-STRUCK SMALL M */ +"\x0001d55f" "n" /* MATHEMATICAL DOUBLE-STRUCK SMALL N */ +"\x0001d560" "o" /* MATHEMATICAL DOUBLE-STRUCK SMALL O */ +"\x0001d561" "p" /* MATHEMATICAL DOUBLE-STRUCK SMALL P */ +"\x0001d562" "q" /* MATHEMATICAL DOUBLE-STRUCK SMALL Q */ +"\x0001d563" "r" /* MATHEMATICAL DOUBLE-STRUCK SMALL R */ +"\x0001d564" "s" /* MATHEMATICAL DOUBLE-STRUCK SMALL S */ +"\x0001d565" "t" /* MATHEMATICAL DOUBLE-STRUCK SMALL T */ +"\x0001d566" "u" /* MATHEMATICAL DOUBLE-STRUCK SMALL U */ +"\x0001d567" "v" /* MATHEMATICAL DOUBLE-STRUCK SMALL V */ +"\x0001d568" "w" /* MATHEMATICAL DOUBLE-STRUCK SMALL W */ +"\x0001d569" "x" /* MATHEMATICAL DOUBLE-STRUCK SMALL X */ +"\x0001d56a" "y" /* MATHEMATICAL DOUBLE-STRUCK SMALL Y */ +"\x0001d56b" "z" /* MATHEMATICAL DOUBLE-STRUCK SMALL Z */ +"\x0001d56c" "A" /* MATHEMATICAL BOLD FRAKTUR CAPITAL A */ +"\x0001d56d" "B" /* MATHEMATICAL BOLD FRAKTUR CAPITAL B */ +"\x0001d56e" "C" /* MATHEMATICAL BOLD FRAKTUR CAPITAL C */ +"\x0001d56f" "D" /* MATHEMATICAL BOLD FRAKTUR CAPITAL D */ +"\x0001d570" "E" /* MATHEMATICAL BOLD FRAKTUR CAPITAL E */ +"\x0001d571" "F" /* MATHEMATICAL BOLD FRAKTUR CAPITAL F */ +"\x0001d572" "G" /* MATHEMATICAL BOLD FRAKTUR CAPITAL G */ +"\x0001d573" "H" /* MATHEMATICAL BOLD FRAKTUR CAPITAL H */ +"\x0001d574" "I" /* MATHEMATICAL BOLD FRAKTUR CAPITAL I */ +"\x0001d575" "J" /* MATHEMATICAL BOLD FRAKTUR CAPITAL J */ +"\x0001d576" "K" /* MATHEMATICAL BOLD FRAKTUR CAPITAL K */ +"\x0001d577" "L" /* MATHEMATICAL BOLD FRAKTUR CAPITAL L */ +"\x0001d578" "M" /* MATHEMATICAL BOLD FRAKTUR CAPITAL M */ +"\x0001d579" "N" /* MATHEMATICAL BOLD FRAKTUR CAPITAL N */ +"\x0001d57a" "O" /* MATHEMATICAL BOLD FRAKTUR CAPITAL O */ +"\x0001d57b" "P" /* MATHEMATICAL BOLD FRAKTUR CAPITAL P */ +"\x0001d57c" "Q" /* MATHEMATICAL BOLD FRAKTUR CAPITAL Q */ +"\x0001d57d" "R" /* MATHEMATICAL BOLD FRAKTUR CAPITAL R */ +"\x0001d57e" "S" /* MATHEMATICAL BOLD FRAKTUR CAPITAL S */ +"\x0001d57f" "T" /* MATHEMATICAL BOLD FRAKTUR CAPITAL T */ +"\x0001d580" "U" /* MATHEMATICAL BOLD FRAKTUR CAPITAL U */ +"\x0001d581" "V" /* MATHEMATICAL BOLD FRAKTUR CAPITAL V */ +"\x0001d582" "W" /* MATHEMATICAL BOLD FRAKTUR CAPITAL W */ +"\x0001d583" "X" /* MATHEMATICAL BOLD FRAKTUR CAPITAL X */ +"\x0001d584" "Y" /* MATHEMATICAL BOLD FRAKTUR CAPITAL Y */ +"\x0001d585" "Z" /* MATHEMATICAL BOLD FRAKTUR CAPITAL Z */ +"\x0001d586" "a" /* MATHEMATICAL BOLD FRAKTUR SMALL A */ +"\x0001d587" "b" /* MATHEMATICAL BOLD FRAKTUR SMALL B */ +"\x0001d588" "c" /* MATHEMATICAL BOLD FRAKTUR SMALL C */ +"\x0001d589" "d" /* MATHEMATICAL BOLD FRAKTUR SMALL D */ +"\x0001d58a" "e" /* MATHEMATICAL BOLD FRAKTUR SMALL E */ +"\x0001d58b" "f" /* MATHEMATICAL BOLD FRAKTUR SMALL F */ +"\x0001d58c" "g" /* MATHEMATICAL BOLD FRAKTUR SMALL G */ +"\x0001d58d" "h" /* MATHEMATICAL BOLD FRAKTUR SMALL H */ +"\x0001d58e" "i" /* MATHEMATICAL BOLD FRAKTUR SMALL I */ +"\x0001d58f" "j" /* MATHEMATICAL BOLD FRAKTUR SMALL J */ +"\x0001d590" "k" /* MATHEMATICAL BOLD FRAKTUR SMALL K */ +"\x0001d591" "l" /* MATHEMATICAL BOLD FRAKTUR SMALL L */ +"\x0001d592" "m" /* MATHEMATICAL BOLD FRAKTUR SMALL M */ +"\x0001d593" "n" /* MATHEMATICAL BOLD FRAKTUR SMALL N */ +"\x0001d594" "o" /* MATHEMATICAL BOLD FRAKTUR SMALL O */ +"\x0001d595" "p" /* MATHEMATICAL BOLD FRAKTUR SMALL P */ +"\x0001d596" "q" /* MATHEMATICAL BOLD FRAKTUR SMALL Q */ +"\x0001d597" "r" /* MATHEMATICAL BOLD FRAKTUR SMALL R */ +"\x0001d598" "s" /* MATHEMATICAL BOLD FRAKTUR SMALL S */ +"\x0001d599" "t" /* MATHEMATICAL BOLD FRAKTUR SMALL T */ +"\x0001d59a" "u" /* MATHEMATICAL BOLD FRAKTUR SMALL U */ +"\x0001d59b" "v" /* MATHEMATICAL BOLD FRAKTUR SMALL V */ +"\x0001d59c" "w" /* MATHEMATICAL BOLD FRAKTUR SMALL W */ +"\x0001d59d" "x" /* MATHEMATICAL BOLD FRAKTUR SMALL X */ +"\x0001d59e" "y" /* MATHEMATICAL BOLD FRAKTUR SMALL Y */ +"\x0001d59f" "z" /* MATHEMATICAL BOLD FRAKTUR SMALL Z */ +"\x0001d5a0" "A" /* MATHEMATICAL SANS-SERIF CAPITAL A */ +"\x0001d5a1" "B" /* MATHEMATICAL SANS-SERIF CAPITAL B */ +"\x0001d5a2" "C" /* MATHEMATICAL SANS-SERIF CAPITAL C */ +"\x0001d5a3" "D" /* MATHEMATICAL SANS-SERIF CAPITAL D */ +"\x0001d5a4" "E" /* MATHEMATICAL SANS-SERIF CAPITAL E */ +"\x0001d5a5" "F" /* MATHEMATICAL SANS-SERIF CAPITAL F */ +"\x0001d5a6" "G" /* MATHEMATICAL SANS-SERIF CAPITAL G */ +"\x0001d5a7" "H" /* MATHEMATICAL SANS-SERIF CAPITAL H */ +"\x0001d5a8" "I" /* MATHEMATICAL SANS-SERIF CAPITAL I */ +"\x0001d5a9" "J" /* MATHEMATICAL SANS-SERIF CAPITAL J */ +"\x0001d5aa" "K" /* MATHEMATICAL SANS-SERIF CAPITAL K */ +"\x0001d5ab" "L" /* MATHEMATICAL SANS-SERIF CAPITAL L */ +"\x0001d5ac" "M" /* MATHEMATICAL SANS-SERIF CAPITAL M */ +"\x0001d5ad" "N" /* MATHEMATICAL SANS-SERIF CAPITAL N */ +"\x0001d5ae" "O" /* MATHEMATICAL SANS-SERIF CAPITAL O */ +"\x0001d5af" "P" /* MATHEMATICAL SANS-SERIF CAPITAL P */ +"\x0001d5b0" "Q" /* MATHEMATICAL SANS-SERIF CAPITAL Q */ +"\x0001d5b1" "R" /* MATHEMATICAL SANS-SERIF CAPITAL R */ +"\x0001d5b2" "S" /* MATHEMATICAL SANS-SERIF CAPITAL S */ +"\x0001d5b3" "T" /* MATHEMATICAL SANS-SERIF CAPITAL T */ +"\x0001d5b4" "U" /* MATHEMATICAL SANS-SERIF CAPITAL U */ +"\x0001d5b5" "V" /* MATHEMATICAL SANS-SERIF CAPITAL V */ +"\x0001d5b6" "W" /* MATHEMATICAL SANS-SERIF CAPITAL W */ +"\x0001d5b7" "X" /* MATHEMATICAL SANS-SERIF CAPITAL X */ +"\x0001d5b8" "Y" /* MATHEMATICAL SANS-SERIF CAPITAL Y */ +"\x0001d5b9" "Z" /* MATHEMATICAL SANS-SERIF CAPITAL Z */ +"\x0001d5ba" "a" /* MATHEMATICAL SANS-SERIF SMALL A */ +"\x0001d5bb" "b" /* MATHEMATICAL SANS-SERIF SMALL B */ +"\x0001d5bc" "c" /* MATHEMATICAL SANS-SERIF SMALL C */ +"\x0001d5bd" "d" /* MATHEMATICAL SANS-SERIF SMALL D */ +"\x0001d5be" "e" /* MATHEMATICAL SANS-SERIF SMALL E */ +"\x0001d5bf" "f" /* MATHEMATICAL SANS-SERIF SMALL F */ +"\x0001d5c0" "g" /* MATHEMATICAL SANS-SERIF SMALL G */ +"\x0001d5c1" "h" /* MATHEMATICAL SANS-SERIF SMALL H */ +"\x0001d5c2" "i" /* MATHEMATICAL SANS-SERIF SMALL I */ +"\x0001d5c3" "j" /* MATHEMATICAL SANS-SERIF SMALL J */ +"\x0001d5c4" "k" /* MATHEMATICAL SANS-SERIF SMALL K */ +"\x0001d5c5" "l" /* MATHEMATICAL SANS-SERIF SMALL L */ +"\x0001d5c6" "m" /* MATHEMATICAL SANS-SERIF SMALL M */ +"\x0001d5c7" "n" /* MATHEMATICAL SANS-SERIF SMALL N */ +"\x0001d5c8" "o" /* MATHEMATICAL SANS-SERIF SMALL O */ +"\x0001d5c9" "p" /* MATHEMATICAL SANS-SERIF SMALL P */ +"\x0001d5ca" "q" /* MATHEMATICAL SANS-SERIF SMALL Q */ +"\x0001d5cb" "r" /* MATHEMATICAL SANS-SERIF SMALL R */ +"\x0001d5cc" "s" /* MATHEMATICAL SANS-SERIF SMALL S */ +"\x0001d5cd" "t" /* MATHEMATICAL SANS-SERIF SMALL T */ +"\x0001d5ce" "u" /* MATHEMATICAL SANS-SERIF SMALL U */ +"\x0001d5cf" "v" /* MATHEMATICAL SANS-SERIF SMALL V */ +"\x0001d5d0" "w" /* MATHEMATICAL SANS-SERIF SMALL W */ +"\x0001d5d1" "x" /* MATHEMATICAL SANS-SERIF SMALL X */ +"\x0001d5d2" "y" /* MATHEMATICAL SANS-SERIF SMALL Y */ +"\x0001d5d3" "z" /* MATHEMATICAL SANS-SERIF SMALL Z */ +"\x0001d5d4" "A" /* MATHEMATICAL SANS-SERIF BOLD CAPITAL A */ +"\x0001d5d5" "B" /* MATHEMATICAL SANS-SERIF BOLD CAPITAL B */ +"\x0001d5d6" "C" /* MATHEMATICAL SANS-SERIF BOLD CAPITAL C */ +"\x0001d5d7" "D" /* MATHEMATICAL SANS-SERIF BOLD CAPITAL D */ +"\x0001d5d8" "E" /* MATHEMATICAL SANS-SERIF BOLD CAPITAL E */ +"\x0001d5d9" "F" /* MATHEMATICAL SANS-SERIF BOLD CAPITAL F */ +"\x0001d5da" "G" /* MATHEMATICAL SANS-SERIF BOLD CAPITAL G */ +"\x0001d5db" "H" /* MATHEMATICAL SANS-SERIF BOLD CAPITAL H */ +"\x0001d5dc" "I" /* MATHEMATICAL SANS-SERIF BOLD CAPITAL I */ +"\x0001d5dd" "J" /* MATHEMATICAL SANS-SERIF BOLD CAPITAL J */ +"\x0001d5de" "K" /* MATHEMATICAL SANS-SERIF BOLD CAPITAL K */ +"\x0001d5df" "L" /* MATHEMATICAL SANS-SERIF BOLD CAPITAL L */ +"\x0001d5e0" "M" /* MATHEMATICAL SANS-SERIF BOLD CAPITAL M */ +"\x0001d5e1" "N" /* MATHEMATICAL SANS-SERIF BOLD CAPITAL N */ +"\x0001d5e2" "O" /* MATHEMATICAL SANS-SERIF BOLD CAPITAL O */ +"\x0001d5e3" "P" /* MATHEMATICAL SANS-SERIF BOLD CAPITAL P */ +"\x0001d5e4" "Q" /* MATHEMATICAL SANS-SERIF BOLD CAPITAL Q */ +"\x0001d5e5" "R" /* MATHEMATICAL SANS-SERIF BOLD CAPITAL R */ +"\x0001d5e6" "S" /* MATHEMATICAL SANS-SERIF BOLD CAPITAL S */ +"\x0001d5e7" "T" /* MATHEMATICAL SANS-SERIF BOLD CAPITAL T */ +"\x0001d5e8" "U" /* MATHEMATICAL SANS-SERIF BOLD CAPITAL U */ +"\x0001d5e9" "V" /* MATHEMATICAL SANS-SERIF BOLD CAPITAL V */ +"\x0001d5ea" "W" /* MATHEMATICAL SANS-SERIF BOLD CAPITAL W */ +"\x0001d5eb" "X" /* MATHEMATICAL SANS-SERIF BOLD CAPITAL X */ +"\x0001d5ec" "Y" /* MATHEMATICAL SANS-SERIF BOLD CAPITAL Y */ +"\x0001d5ed" "Z" /* MATHEMATICAL SANS-SERIF BOLD CAPITAL Z */ +"\x0001d5ee" "a" /* MATHEMATICAL SANS-SERIF BOLD SMALL A */ +"\x0001d5ef" "b" /* MATHEMATICAL SANS-SERIF BOLD SMALL B */ +"\x0001d5f0" "c" /* MATHEMATICAL SANS-SERIF BOLD SMALL C */ +"\x0001d5f1" "d" /* MATHEMATICAL SANS-SERIF BOLD SMALL D */ +"\x0001d5f2" "e" /* MATHEMATICAL SANS-SERIF BOLD SMALL E */ +"\x0001d5f3" "f" /* MATHEMATICAL SANS-SERIF BOLD SMALL F */ +"\x0001d5f4" "g" /* MATHEMATICAL SANS-SERIF BOLD SMALL G */ +"\x0001d5f5" "h" /* MATHEMATICAL SANS-SERIF BOLD SMALL H */ +"\x0001d5f6" "i" /* MATHEMATICAL SANS-SERIF BOLD SMALL I */ +"\x0001d5f7" "j" /* MATHEMATICAL SANS-SERIF BOLD SMALL J */ +"\x0001d5f8" "k" /* MATHEMATICAL SANS-SERIF BOLD SMALL K */ +"\x0001d5f9" "l" /* MATHEMATICAL SANS-SERIF BOLD SMALL L */ +"\x0001d5fa" "m" /* MATHEMATICAL SANS-SERIF BOLD SMALL M */ +"\x0001d5fb" "n" /* MATHEMATICAL SANS-SERIF BOLD SMALL N */ +"\x0001d5fc" "o" /* MATHEMATICAL SANS-SERIF BOLD SMALL O */ +"\x0001d5fd" "p" /* MATHEMATICAL SANS-SERIF BOLD SMALL P */ +"\x0001d5fe" "q" /* MATHEMATICAL SANS-SERIF BOLD SMALL Q */ +"\x0001d5ff" "r" /* MATHEMATICAL SANS-SERIF BOLD SMALL R */ +"\x0001d600" "s" /* MATHEMATICAL SANS-SERIF BOLD SMALL S */ +"\x0001d601" "t" /* MATHEMATICAL SANS-SERIF BOLD SMALL T */ +"\x0001d602" "u" /* MATHEMATICAL SANS-SERIF BOLD SMALL U */ +"\x0001d603" "v" /* MATHEMATICAL SANS-SERIF BOLD SMALL V */ +"\x0001d604" "w" /* MATHEMATICAL SANS-SERIF BOLD SMALL W */ +"\x0001d605" "x" /* MATHEMATICAL SANS-SERIF BOLD SMALL X */ +"\x0001d606" "y" /* MATHEMATICAL SANS-SERIF BOLD SMALL Y */ +"\x0001d607" "z" /* MATHEMATICAL SANS-SERIF BOLD SMALL Z */ +"\x0001d608" "A" /* MATHEMATICAL SANS-SERIF ITALIC CAPITAL A */ +"\x0001d609" "B" /* MATHEMATICAL SANS-SERIF ITALIC CAPITAL B */ +"\x0001d60a" "C" /* MATHEMATICAL SANS-SERIF ITALIC CAPITAL C */ +"\x0001d60b" "D" /* MATHEMATICAL SANS-SERIF ITALIC CAPITAL D */ +"\x0001d60c" "E" /* MATHEMATICAL SANS-SERIF ITALIC CAPITAL E */ +"\x0001d60d" "F" /* MATHEMATICAL SANS-SERIF ITALIC CAPITAL F */ +"\x0001d60e" "G" /* MATHEMATICAL SANS-SERIF ITALIC CAPITAL G */ +"\x0001d60f" "H" /* MATHEMATICAL SANS-SERIF ITALIC CAPITAL H */ +"\x0001d610" "I" /* MATHEMATICAL SANS-SERIF ITALIC CAPITAL I */ +"\x0001d611" "J" /* MATHEMATICAL SANS-SERIF ITALIC CAPITAL J */ +"\x0001d612" "K" /* MATHEMATICAL SANS-SERIF ITALIC CAPITAL K */ +"\x0001d613" "L" /* MATHEMATICAL SANS-SERIF ITALIC CAPITAL L */ +"\x0001d614" "M" /* MATHEMATICAL SANS-SERIF ITALIC CAPITAL M */ +"\x0001d615" "N" /* MATHEMATICAL SANS-SERIF ITALIC CAPITAL N */ +"\x0001d616" "O" /* MATHEMATICAL SANS-SERIF ITALIC CAPITAL O */ +"\x0001d617" "P" /* MATHEMATICAL SANS-SERIF ITALIC CAPITAL P */ +"\x0001d618" "Q" /* MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q */ +"\x0001d619" "R" /* MATHEMATICAL SANS-SERIF ITALIC CAPITAL R */ +"\x0001d61a" "S" /* MATHEMATICAL SANS-SERIF ITALIC CAPITAL S */ +"\x0001d61b" "T" /* MATHEMATICAL SANS-SERIF ITALIC CAPITAL T */ +"\x0001d61c" "U" /* MATHEMATICAL SANS-SERIF ITALIC CAPITAL U */ +"\x0001d61d" "V" /* MATHEMATICAL SANS-SERIF ITALIC CAPITAL V */ +"\x0001d61e" "W" /* MATHEMATICAL SANS-SERIF ITALIC CAPITAL W */ +"\x0001d61f" "X" /* MATHEMATICAL SANS-SERIF ITALIC CAPITAL X */ +"\x0001d620" "Y" /* MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y */ +"\x0001d621" "Z" /* MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z */ +"\x0001d622" "a" /* MATHEMATICAL SANS-SERIF ITALIC SMALL A */ +"\x0001d623" "b" /* MATHEMATICAL SANS-SERIF ITALIC SMALL B */ +"\x0001d624" "c" /* MATHEMATICAL SANS-SERIF ITALIC SMALL C */ +"\x0001d625" "d" /* MATHEMATICAL SANS-SERIF ITALIC SMALL D */ +"\x0001d626" "e" /* MATHEMATICAL SANS-SERIF ITALIC SMALL E */ +"\x0001d627" "f" /* MATHEMATICAL SANS-SERIF ITALIC SMALL F */ +"\x0001d628" "g" /* MATHEMATICAL SANS-SERIF ITALIC SMALL G */ +"\x0001d629" "h" /* MATHEMATICAL SANS-SERIF ITALIC SMALL H */ +"\x0001d62a" "i" /* MATHEMATICAL SANS-SERIF ITALIC SMALL I */ +"\x0001d62b" "j" /* MATHEMATICAL SANS-SERIF ITALIC SMALL J */ +"\x0001d62c" "k" /* MATHEMATICAL SANS-SERIF ITALIC SMALL K */ +"\x0001d62d" "l" /* MATHEMATICAL SANS-SERIF ITALIC SMALL L */ +"\x0001d62e" "m" /* MATHEMATICAL SANS-SERIF ITALIC SMALL M */ +"\x0001d62f" "n" /* MATHEMATICAL SANS-SERIF ITALIC SMALL N */ +"\x0001d630" "o" /* MATHEMATICAL SANS-SERIF ITALIC SMALL O */ +"\x0001d631" "p" /* MATHEMATICAL SANS-SERIF ITALIC SMALL P */ +"\x0001d632" "q" /* MATHEMATICAL SANS-SERIF ITALIC SMALL Q */ +"\x0001d633" "r" /* MATHEMATICAL SANS-SERIF ITALIC SMALL R */ +"\x0001d634" "s" /* MATHEMATICAL SANS-SERIF ITALIC SMALL S */ +"\x0001d635" "t" /* MATHEMATICAL SANS-SERIF ITALIC SMALL T */ +"\x0001d636" "u" /* MATHEMATICAL SANS-SERIF ITALIC SMALL U */ +"\x0001d637" "v" /* MATHEMATICAL SANS-SERIF ITALIC SMALL V */ +"\x0001d638" "w" /* MATHEMATICAL SANS-SERIF ITALIC SMALL W */ +"\x0001d639" "x" /* MATHEMATICAL SANS-SERIF ITALIC SMALL X */ +"\x0001d63a" "y" /* MATHEMATICAL SANS-SERIF ITALIC SMALL Y */ +"\x0001d63b" "z" /* MATHEMATICAL SANS-SERIF ITALIC SMALL Z */ +"\x0001d63c" "A" /* MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A */ +"\x0001d63d" "B" /* MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B */ +"\x0001d63e" "C" /* MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C */ +"\x0001d63f" "D" /* MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D */ +"\x0001d640" "E" /* MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E */ +"\x0001d641" "F" /* MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F */ +"\x0001d642" "G" /* MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G */ +"\x0001d643" "H" /* MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H */ +"\x0001d644" "I" /* MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I */ +"\x0001d645" "J" /* MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J */ +"\x0001d646" "K" /* MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K */ +"\x0001d647" "L" /* MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L */ +"\x0001d648" "M" /* MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M */ +"\x0001d649" "N" /* MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N */ +"\x0001d64a" "O" /* MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O */ +"\x0001d64b" "P" /* MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P */ +"\x0001d64c" "Q" /* MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q */ +"\x0001d64d" "R" /* MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R */ +"\x0001d64e" "S" /* MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S */ +"\x0001d64f" "T" /* MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T */ +"\x0001d650" "U" /* MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U */ +"\x0001d651" "V" /* MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V */ +"\x0001d652" "W" /* MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W */ +"\x0001d653" "X" /* MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X */ +"\x0001d654" "Y" /* MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y */ +"\x0001d655" "Z" /* MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z */ +"\x0001d656" "a" /* MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A */ +"\x0001d657" "b" /* MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B */ +"\x0001d658" "c" /* MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C */ +"\x0001d659" "d" /* MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D */ +"\x0001d65a" "e" /* MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E */ +"\x0001d65b" "f" /* MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F */ +"\x0001d65c" "g" /* MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G */ +"\x0001d65d" "h" /* MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H */ +"\x0001d65e" "i" /* MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I */ +"\x0001d65f" "j" /* MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J */ +"\x0001d660" "k" /* MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K */ +"\x0001d661" "l" /* MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L */ +"\x0001d662" "m" /* MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M */ +"\x0001d663" "n" /* MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N */ +"\x0001d664" "o" /* MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O */ +"\x0001d665" "p" /* MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P */ +"\x0001d666" "q" /* MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q */ +"\x0001d667" "r" /* MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R */ +"\x0001d668" "s" /* MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S */ +"\x0001d669" "t" /* MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T */ +"\x0001d66a" "u" /* MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U */ +"\x0001d66b" "v" /* MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V */ +"\x0001d66c" "w" /* MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W */ +"\x0001d66d" "x" /* MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X */ +"\x0001d66e" "y" /* MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y */ +"\x0001d66f" "z" /* MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z */ +"\x0001d670" "A" /* MATHEMATICAL MONOSPACE CAPITAL A */ +"\x0001d671" "B" /* MATHEMATICAL MONOSPACE CAPITAL B */ +"\x0001d672" "C" /* MATHEMATICAL MONOSPACE CAPITAL C */ +"\x0001d673" "D" /* MATHEMATICAL MONOSPACE CAPITAL D */ +"\x0001d674" "E" /* MATHEMATICAL MONOSPACE CAPITAL E */ +"\x0001d675" "F" /* MATHEMATICAL MONOSPACE CAPITAL F */ +"\x0001d676" "G" /* MATHEMATICAL MONOSPACE CAPITAL G */ +"\x0001d677" "H" /* MATHEMATICAL MONOSPACE CAPITAL H */ +"\x0001d678" "I" /* MATHEMATICAL MONOSPACE CAPITAL I */ +"\x0001d679" "J" /* MATHEMATICAL MONOSPACE CAPITAL J */ +"\x0001d67a" "K" /* MATHEMATICAL MONOSPACE CAPITAL K */ +"\x0001d67b" "L" /* MATHEMATICAL MONOSPACE CAPITAL L */ +"\x0001d67c" "M" /* MATHEMATICAL MONOSPACE CAPITAL M */ +"\x0001d67d" "N" /* MATHEMATICAL MONOSPACE CAPITAL N */ +"\x0001d67e" "O" /* MATHEMATICAL MONOSPACE CAPITAL O */ +"\x0001d67f" "P" /* MATHEMATICAL MONOSPACE CAPITAL P */ +"\x0001d680" "Q" /* MATHEMATICAL MONOSPACE CAPITAL Q */ +"\x0001d681" "R" /* MATHEMATICAL MONOSPACE CAPITAL R */ +"\x0001d682" "S" /* MATHEMATICAL MONOSPACE CAPITAL S */ +"\x0001d683" "T" /* MATHEMATICAL MONOSPACE CAPITAL T */ +"\x0001d684" "U" /* MATHEMATICAL MONOSPACE CAPITAL U */ +"\x0001d685" "V" /* MATHEMATICAL MONOSPACE CAPITAL V */ +"\x0001d686" "W" /* MATHEMATICAL MONOSPACE CAPITAL W */ +"\x0001d687" "X" /* MATHEMATICAL MONOSPACE CAPITAL X */ +"\x0001d688" "Y" /* MATHEMATICAL MONOSPACE CAPITAL Y */ +"\x0001d689" "Z" /* MATHEMATICAL MONOSPACE CAPITAL Z */ +"\x0001d68a" "a" /* MATHEMATICAL MONOSPACE SMALL A */ +"\x0001d68b" "b" /* MATHEMATICAL MONOSPACE SMALL B */ +"\x0001d68c" "c" /* MATHEMATICAL MONOSPACE SMALL C */ +"\x0001d68d" "d" /* MATHEMATICAL MONOSPACE SMALL D */ +"\x0001d68e" "e" /* MATHEMATICAL MONOSPACE SMALL E */ +"\x0001d68f" "f" /* MATHEMATICAL MONOSPACE SMALL F */ +"\x0001d690" "g" /* MATHEMATICAL MONOSPACE SMALL G */ +"\x0001d691" "h" /* MATHEMATICAL MONOSPACE SMALL H */ +"\x0001d692" "i" /* MATHEMATICAL MONOSPACE SMALL I */ +"\x0001d693" "j" /* MATHEMATICAL MONOSPACE SMALL J */ +"\x0001d694" "k" /* MATHEMATICAL MONOSPACE SMALL K */ +"\x0001d695" "l" /* MATHEMATICAL MONOSPACE SMALL L */ +"\x0001d696" "m" /* MATHEMATICAL MONOSPACE SMALL M */ +"\x0001d697" "n" /* MATHEMATICAL MONOSPACE SMALL N */ +"\x0001d698" "o" /* MATHEMATICAL MONOSPACE SMALL O */ +"\x0001d699" "p" /* MATHEMATICAL MONOSPACE SMALL P */ +"\x0001d69a" "q" /* MATHEMATICAL MONOSPACE SMALL Q */ +"\x0001d69b" "r" /* MATHEMATICAL MONOSPACE SMALL R */ +"\x0001d69c" "s" /* MATHEMATICAL MONOSPACE SMALL S */ +"\x0001d69d" "t" /* MATHEMATICAL MONOSPACE SMALL T */ +"\x0001d69e" "u" /* MATHEMATICAL MONOSPACE SMALL U */ +"\x0001d69f" "v" /* MATHEMATICAL MONOSPACE SMALL V */ +"\x0001d6a0" "w" /* MATHEMATICAL MONOSPACE SMALL W */ +"\x0001d6a1" "x" /* MATHEMATICAL MONOSPACE SMALL X */ +"\x0001d6a2" "y" /* MATHEMATICAL MONOSPACE SMALL Y */ +"\x0001d6a3" "z" /* MATHEMATICAL MONOSPACE SMALL Z */ +"\x0001d7ce" "0" /* MATHEMATICAL BOLD DIGIT ZERO */ +"\x0001d7cf" "1" /* MATHEMATICAL BOLD DIGIT ONE */ +"\x0001d7d0" "2" /* MATHEMATICAL BOLD DIGIT TWO */ +"\x0001d7d1" "3" /* MATHEMATICAL BOLD DIGIT THREE */ +"\x0001d7d2" "4" /* MATHEMATICAL BOLD DIGIT FOUR */ +"\x0001d7d3" "5" /* MATHEMATICAL BOLD DIGIT FIVE */ +"\x0001d7d4" "6" /* MATHEMATICAL BOLD DIGIT SIX */ +"\x0001d7d5" "7" /* MATHEMATICAL BOLD DIGIT SEVEN */ +"\x0001d7d6" "8" /* MATHEMATICAL BOLD DIGIT EIGHT */ +"\x0001d7d7" "9" /* MATHEMATICAL BOLD DIGIT NINE */ +"\x0001d7d8" "0" /* MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO */ +"\x0001d7d9" "1" /* MATHEMATICAL DOUBLE-STRUCK DIGIT ONE */ +"\x0001d7da" "2" /* MATHEMATICAL DOUBLE-STRUCK DIGIT TWO */ +"\x0001d7db" "3" /* MATHEMATICAL DOUBLE-STRUCK DIGIT THREE */ +"\x0001d7dc" "4" /* MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR */ +"\x0001d7dd" "5" /* MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE */ +"\x0001d7de" "6" /* MATHEMATICAL DOUBLE-STRUCK DIGIT SIX */ +"\x0001d7df" "7" /* MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN */ +"\x0001d7e0" "8" /* MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT */ +"\x0001d7e1" "9" /* MATHEMATICAL DOUBLE-STRUCK DIGIT NINE */ +"\x0001d7e2" "0" /* MATHEMATICAL SANS-SERIF DIGIT ZERO */ +"\x0001d7e3" "1" /* MATHEMATICAL SANS-SERIF DIGIT ONE */ +"\x0001d7e4" "2" /* MATHEMATICAL SANS-SERIF DIGIT TWO */ +"\x0001d7e5" "3" /* MATHEMATICAL SANS-SERIF DIGIT THREE */ +"\x0001d7e6" "4" /* MATHEMATICAL SANS-SERIF DIGIT FOUR */ +"\x0001d7e7" "5" /* MATHEMATICAL SANS-SERIF DIGIT FIVE */ +"\x0001d7e8" "6" /* MATHEMATICAL SANS-SERIF DIGIT SIX */ +"\x0001d7e9" "7" /* MATHEMATICAL SANS-SERIF DIGIT SEVEN */ +"\x0001d7ea" "8" /* MATHEMATICAL SANS-SERIF DIGIT EIGHT */ +"\x0001d7eb" "9" /* MATHEMATICAL SANS-SERIF DIGIT NINE */ +"\x0001d7ec" "0" /* MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO */ +"\x0001d7ed" "1" /* MATHEMATICAL SANS-SERIF BOLD DIGIT ONE */ +"\x0001d7ee" "2" /* MATHEMATICAL SANS-SERIF BOLD DIGIT TWO */ +"\x0001d7ef" "3" /* MATHEMATICAL SANS-SERIF BOLD DIGIT THREE */ +"\x0001d7f0" "4" /* MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR */ +"\x0001d7f1" "5" /* MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE */ +"\x0001d7f2" "6" /* MATHEMATICAL SANS-SERIF BOLD DIGIT SIX */ +"\x0001d7f3" "7" /* MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN */ +"\x0001d7f4" "8" /* MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT */ +"\x0001d7f5" "9" /* MATHEMATICAL SANS-SERIF BOLD DIGIT NINE */ +"\x0001d7f6" "0" /* MATHEMATICAL MONOSPACE DIGIT ZERO */ +"\x0001d7f7" "1" /* MATHEMATICAL MONOSPACE DIGIT ONE */ +"\x0001d7f8" "2" /* MATHEMATICAL MONOSPACE DIGIT TWO */ +"\x0001d7f9" "3" /* MATHEMATICAL MONOSPACE DIGIT THREE */ +"\x0001d7fa" "4" /* MATHEMATICAL MONOSPACE DIGIT FOUR */ +"\x0001d7fb" "5" /* MATHEMATICAL MONOSPACE DIGIT FIVE */ +"\x0001d7fc" "6" /* MATHEMATICAL MONOSPACE DIGIT SIX */ +"\x0001d7fd" "7" /* MATHEMATICAL MONOSPACE DIGIT SEVEN */ +"\x0001d7fe" "8" /* MATHEMATICAL MONOSPACE DIGIT EIGHT */ +"\x0001d7ff" "9" /* MATHEMATICAL MONOSPACE DIGIT NINE */ diff --git a/locale/programs/charmap.c b/locale/programs/charmap.c index 35a6987fbc..7c013b24c3 100644 --- a/locale/programs/charmap.c +++ b/locale/programs/charmap.c @@ -1042,7 +1042,7 @@ hexadecimal range format should use only capital characters")); char *endp; errno = 0; - newp->ucs4 = strtoul (name_end, &endp, 16); + newp->ucs4 = strtoul (name_end + 1, &endp, 16); if (endp - name_end != len1 || (newp->ucs4 == ULONG_MAX && errno == ERANGE) || newp->ucs4 >= 0x80000000) diff --git a/locale/programs/ld-ctype.c b/locale/programs/ld-ctype.c index 24a53919f2..e3f55644d3 100644 --- a/locale/programs/ld-ctype.c +++ b/locale/programs/ld-ctype.c @@ -116,6 +116,14 @@ struct translit_include_t }; +/* Sparse table of uint32_t. */ +#define TABLE idx_table +#define ELEMENT uint32_t +#define DEFAULT ~((uint32_t) 0) +#define NO_FINALIZE +#include "3level.h" + + /* The real definition of the struct for the LC_CTYPE locale. */ struct locale_ctype_t { @@ -123,8 +131,7 @@ struct locale_ctype_t size_t charnames_max; size_t charnames_act; /* An index lookup table, to speedup find_idx. */ -#define MAX_CHARNAMES_IDX 0x10000 - uint32_t *charnames_idx; + struct idx_table charnames_idx; struct repertoire_t *repertoire; @@ -261,10 +268,7 @@ ctype_startup (struct linereader *lr, struct localedef_t *locale, for (cnt = 0; cnt < 256; ++cnt) ctype->charnames[cnt] = cnt; ctype->charnames_act = 256; - ctype->charnames_idx = - (uint32_t *) xmalloc (MAX_CHARNAMES_IDX * sizeof (uint32_t)); - for (cnt = 0; cnt < MAX_CHARNAMES_IDX; ++cnt) - ctype->charnames_idx[cnt] = ~((uint32_t) 0); + idx_table_init (&ctype->charnames_idx); /* Fill character class information. */ ctype->last_class_char = ILLEGAL_CHAR_VALUE; @@ -1280,23 +1284,17 @@ find_idx (struct locale_ctype_t *ctype, uint32_t **table, size_t *max, if (idx < 256) return table == NULL ? NULL : &(*table)[idx]; - /* If idx is in the usual range, use the charnames_idx lookup table - instead of the slow search loop. */ - if (idx < MAX_CHARNAMES_IDX) - { - if (ctype->charnames_idx[idx] != ~((uint32_t) 0)) - /* Found. */ - cnt = ctype->charnames_idx[idx]; - else - /* Not found. */ - cnt = ctype->charnames_act; - } - else - { - for (cnt = 256; cnt < ctype->charnames_act; ++cnt) - if (ctype->charnames[cnt] == idx) - break; - } + /* Use the charnames_idx lookup table instead of the slow search loop. */ +#if 1 + cnt = idx_table_get (&ctype->charnames_idx, idx); + if (cnt == ~((uint32_t) 0)) + /* Not found. */ + cnt = ctype->charnames_act; +#else + for (cnt = 256; cnt < ctype->charnames_act; ++cnt) + if (ctype->charnames[cnt] == idx) + break; +#endif /* We have to distinguish two cases: the name is found or not. */ if (cnt == ctype->charnames_act) @@ -1310,8 +1308,7 @@ find_idx (struct locale_ctype_t *ctype, uint32_t **table, size_t *max, sizeof (uint32_t) * ctype->charnames_max); } ctype->charnames[ctype->charnames_act++] = idx; - if (idx < MAX_CHARNAMES_IDX) - ctype->charnames_idx[idx] = cnt; + idx_table_add (&ctype->charnames_idx, idx, cnt); } if (table == NULL) diff --git a/locale/programs/locfile.c b/locale/programs/locfile.c index 7c724e292f..185ccbc77f 100644 --- a/locale/programs/locfile.c +++ b/locale/programs/locfile.c @@ -338,30 +338,33 @@ write_locale_data (const char *output_path, const char *category, data. This means we need to have a directory LC_MESSAGES in which we place the file under the name SYS_LC_MESSAGES. */ sprintf (fname, "%s%s", output_path, category); + fd = -2; if (strcmp (category, "LC_MESSAGES") == 0) { struct stat st; if (stat (fname, &st) < 0) { - if (mkdir (fname, 0777) < 0) - fd = creat (fname, 0666); - else + if (mkdir (fname, 0777) >= 0) { fd = -1; errno = EISDIR; } } - else if (S_ISREG (st.st_mode)) - fd = creat (fname, 0666); - else + else if (!S_ISREG (st.st_mode)) { fd = -1; errno = EISDIR; } } - else - fd = creat (fname, 0666); + + /* Create the locale file with nlinks == 1; this avoids crashing processes + which currently use the locale. */ + if (fd == -2) + { + unlink (fname); + fd = creat (fname, 0666); + } if (fd == -1) { @@ -369,7 +372,8 @@ write_locale_data (const char *output_path, const char *category, if (errno == EISDIR) { - sprintf (fname, "%1$s/%2$s/SYS_%2$s", output_path, category); + sprintf (fname, "%1$s%2$s/SYS_%2$s", output_path, category); + unlink (fname); fd = creat (fname, 0666); if (fd == -1) save_err = errno; @@ -381,6 +385,7 @@ write_locale_data (const char *output_path, const char *category, error (0, save_err, _("\ cannot open output file `%s' for category `%s'"), fname, category); + free (fname); return; } } -- cgit 1.4.1