libstdc++
unicode-data.h
Go to the documentation of this file.
1// Generated by contrib/unicode/gen_libstdcxx_unicode_data.py, do not edit.
2
3// Copyright The GNU Toolchain Authors.
4//
5// This file is part of the GNU ISO C++ Library. This library is free
6// software; you can redistribute it and/or modify it under the
7// terms of the GNU General Public License as published by the
8// Free Software Foundation; either version 3, or (at your option)
9// any later version.
10
11// This library is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14// GNU General Public License for more details.
15
16// Under Section 7 of GPL version 3, you are granted additional
17// permissions described in the GCC Runtime Library Exception, version
18// 3.1, as published by the Free Software Foundation.
19
20// You should have received a copy of the GNU General Public License and
21// a copy of the GCC Runtime Library Exception along with this program;
22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
23// <http://www.gnu.org/licenses/>.
24
25/** @file bits/unicode-data.h
26 * This is an internal header file, included by other library headers.
27 * Do not attempt to use it directly. @headername{format}
28 */
29
30#ifndef _GLIBCXX_GET_UNICODE_DATA
31# error "This is not a public header, do not include it directly"
32#elif _GLIBCXX_GET_UNICODE_DATA != 160000
33# error "Version mismatch for Unicode static data"
34#endif
35
36 // Table generated by contrib/unicode/gen_std_format_width.py,
37 // from EastAsianWidth.txt from the Unicode standard.
38 inline constexpr char32_t __width_edges[] = {
39 0x1100, 0x1160, 0x231a, 0x231c, 0x2329, 0x232b, 0x23e9, 0x23ed,
40 0x23f0, 0x23f1, 0x23f3, 0x23f4, 0x25fd, 0x25ff, 0x2614, 0x2616,
41 0x2630, 0x2638, 0x2648, 0x2654, 0x267f, 0x2680, 0x268a, 0x2690,
42 0x2693, 0x2694, 0x26a1, 0x26a2, 0x26aa, 0x26ac, 0x26bd, 0x26bf,
43 0x26c4, 0x26c6, 0x26ce, 0x26cf, 0x26d4, 0x26d5, 0x26ea, 0x26eb,
44 0x26f2, 0x26f4, 0x26f5, 0x26f6, 0x26fa, 0x26fb, 0x26fd, 0x26fe,
45 0x2705, 0x2706, 0x270a, 0x270c, 0x2728, 0x2729, 0x274c, 0x274d,
46 0x274e, 0x274f, 0x2753, 0x2756, 0x2757, 0x2758, 0x2795, 0x2798,
47 0x27b0, 0x27b1, 0x27bf, 0x27c0, 0x2b1b, 0x2b1d, 0x2b50, 0x2b51,
48 0x2b55, 0x2b56, 0x2e80, 0x2e9a, 0x2e9b, 0x2ef4, 0x2f00, 0x2fd6,
49 0x2ff0, 0x303f, 0x3041, 0x3097, 0x3099, 0x3100, 0x3105, 0x3130,
50 0x3131, 0x318f, 0x3190, 0x31e6, 0x31ef, 0x321f, 0x3220, 0x3248,
51 0x3250, 0xa48d, 0xa490, 0xa4c7, 0xa960, 0xa97d, 0xac00, 0xd7a4,
52 0xf900, 0xfb00, 0xfe10, 0xfe1a, 0xfe30, 0xfe53, 0xfe54, 0xfe67,
53 0xfe68, 0xfe6c, 0xff01, 0xff61, 0xffe0, 0xffe7, 0x16fe0, 0x16fe5,
54 0x16ff0, 0x16ff2, 0x17000, 0x187f8, 0x18800, 0x18cd6, 0x18cff, 0x18d09,
55 0x1aff0, 0x1aff4, 0x1aff5, 0x1affc, 0x1affd, 0x1afff, 0x1b000, 0x1b123,
56 0x1b132, 0x1b133, 0x1b150, 0x1b153, 0x1b155, 0x1b156, 0x1b164, 0x1b168,
57 0x1b170, 0x1b2fc, 0x1d300, 0x1d357, 0x1d360, 0x1d377, 0x1f004, 0x1f005,
58 0x1f0cf, 0x1f0d0, 0x1f18e, 0x1f18f, 0x1f191, 0x1f19b, 0x1f200, 0x1f203,
59 0x1f210, 0x1f23c, 0x1f240, 0x1f249, 0x1f250, 0x1f252, 0x1f260, 0x1f266,
60 0x1f300, 0x1f650, 0x1f680, 0x1f6c6, 0x1f6cc, 0x1f6cd, 0x1f6d0, 0x1f6d3,
61 0x1f6d5, 0x1f6d8, 0x1f6dc, 0x1f6e0, 0x1f6eb, 0x1f6ed, 0x1f6f4, 0x1f6fd,
62 0x1f7e0, 0x1f7ec, 0x1f7f0, 0x1f7f1, 0x1f900, 0x1fa00, 0x1fa70, 0x1fa7d,
63 0x1fa80, 0x1fa8a, 0x1fa8f, 0x1fac7, 0x1face, 0x1fadd, 0x1fadf, 0x1faea,
64 0x1faf0, 0x1faf9, 0x20000, 0x2fffe, 0x30000, 0x3fffe,
65 };
66
67 enum class _Gcb_property {
68 _Gcb_Other = 0,
69 _Gcb_Control = 1,
70 _Gcb_LF = 2,
71 _Gcb_CR = 3,
72 _Gcb_Extend = 4,
73 _Gcb_Prepend = 5,
74 _Gcb_SpacingMark = 6,
75 _Gcb_L = 7,
76 _Gcb_V = 8,
77 _Gcb_T = 9,
78 _Gcb_ZWJ = 10,
79 _Gcb_LV = 11,
80 _Gcb_LVT = 12,
81 _Gcb_Regional_Indicator = 13,
82 };
83
84 // Values generated by contrib/unicode/gen_std_format_width.py,
85 // from GraphemeBreakProperty.txt from the Unicode standard.
86 // Entries are (code_point << shift_bits) + property.
87 inline constexpr int __gcb_shift_bits = 0x4;
88 inline constexpr uint32_t __gcb_edges[] = {
89 0x1, 0xa2, 0xb1, 0xd3, 0xe1, 0x200,
90 0x7f1, 0xa00, 0xad1, 0xae0, 0x3004, 0x3700,
91 0x4834, 0x48a0, 0x5914, 0x5be0, 0x5bf4, 0x5c00,
92 0x5c14, 0x5c30, 0x5c44, 0x5c60, 0x5c74, 0x5c80,
93 0x6005, 0x6060, 0x6104, 0x61b0, 0x61c1, 0x61d0,
94 0x64b4, 0x6600, 0x6704, 0x6710, 0x6d64, 0x6dd5,
95 0x6de0, 0x6df4, 0x6e50, 0x6e74, 0x6e90, 0x6ea4,
96 0x6ee0, 0x70f5, 0x7100, 0x7114, 0x7120, 0x7304,
97 0x74b0, 0x7a64, 0x7b10, 0x7eb4, 0x7f40, 0x7fd4,
98 0x7fe0, 0x8164, 0x81a0, 0x81b4, 0x8240, 0x8254,
99 0x8280, 0x8294, 0x82e0, 0x8594, 0x85c0, 0x8905,
100 0x8920, 0x8974, 0x8a00, 0x8ca4, 0x8e25, 0x8e34,
101 0x9036, 0x9040, 0x93a4, 0x93b6, 0x93c4, 0x93d0,
102 0x93e6, 0x9414, 0x9496, 0x94d4, 0x94e6, 0x9500,
103 0x9514, 0x9580, 0x9624, 0x9640, 0x9814, 0x9826,
104 0x9840, 0x9bc4, 0x9bd0, 0x9be4, 0x9bf6, 0x9c14,
105 0x9c50, 0x9c76, 0x9c90, 0x9cb6, 0x9cd4, 0x9ce0,
106 0x9d74, 0x9d80, 0x9e24, 0x9e40, 0x9fe4, 0x9ff0,
107 0xa014, 0xa036, 0xa040, 0xa3c4, 0xa3d0, 0xa3e6,
108 0xa414, 0xa430, 0xa474, 0xa490, 0xa4b4, 0xa4e0,
109 0xa514, 0xa520, 0xa704, 0xa720, 0xa754, 0xa760,
110 0xa814, 0xa836, 0xa840, 0xabc4, 0xabd0, 0xabe6,
111 0xac14, 0xac60, 0xac74, 0xac96, 0xaca0, 0xacb6,
112 0xacd4, 0xace0, 0xae24, 0xae40, 0xafa4, 0xb000,
113 0xb014, 0xb026, 0xb040, 0xb3c4, 0xb3d0, 0xb3e4,
114 0xb406, 0xb414, 0xb450, 0xb476, 0xb490, 0xb4b6,
115 0xb4d4, 0xb4e0, 0xb554, 0xb580, 0xb624, 0xb640,
116 0xb824, 0xb830, 0xbbe4, 0xbbf6, 0xbc04, 0xbc16,
117 0xbc30, 0xbc66, 0xbc90, 0xbca6, 0xbcd4, 0xbce0,
118 0xbd74, 0xbd80, 0xc004, 0xc016, 0xc044, 0xc050,
119 0xc3c4, 0xc3d0, 0xc3e4, 0xc416, 0xc450, 0xc464,
120 0xc490, 0xc4a4, 0xc4e0, 0xc554, 0xc570, 0xc624,
121 0xc640, 0xc814, 0xc826, 0xc840, 0xcbc4, 0xcbd0,
122 0xcbe6, 0xcbf4, 0xcc16, 0xcc24, 0xcc36, 0xcc50,
123 0xcc64, 0xcc90, 0xcca4, 0xcce0, 0xcd54, 0xcd70,
124 0xce24, 0xce40, 0xcf36, 0xcf40, 0xd004, 0xd026,
125 0xd040, 0xd3b4, 0xd3d0, 0xd3e4, 0xd3f6, 0xd414,
126 0xd450, 0xd466, 0xd490, 0xd4a6, 0xd4d4, 0xd4e5,
127 0xd4f0, 0xd574, 0xd580, 0xd624, 0xd640, 0xd814,
128 0xd826, 0xd840, 0xdca4, 0xdcb0, 0xdcf4, 0xdd06,
129 0xdd24, 0xdd50, 0xdd64, 0xdd70, 0xdd86, 0xddf4,
130 0xde00, 0xdf26, 0xdf40, 0xe314, 0xe320, 0xe336,
131 0xe344, 0xe3b0, 0xe474, 0xe4f0, 0xeb14, 0xeb20,
132 0xeb36, 0xeb44, 0xebd0, 0xec84, 0xecf0, 0xf184,
133 0xf1a0, 0xf354, 0xf360, 0xf374, 0xf380, 0xf394,
134 0xf3a0, 0xf3e6, 0xf400, 0xf714, 0xf7f6, 0xf804,
135 0xf850, 0xf864, 0xf880, 0xf8d4, 0xf980, 0xf994,
136 0xfbd0, 0xfc64, 0xfc70, 0x102d4, 0x10316, 0x10324,
137 0x10380, 0x10394, 0x103b6, 0x103d4, 0x103f0, 0x10566,
138 0x10584, 0x105a0, 0x105e4, 0x10610, 0x10714, 0x10750,
139 0x10824, 0x10830, 0x10846, 0x10854, 0x10870, 0x108d4,
140 0x108e0, 0x109d4, 0x109e0, 0x11007, 0x11608, 0x11a89,
141 0x12000, 0x135d4, 0x13600, 0x17124, 0x17160, 0x17324,
142 0x17350, 0x17524, 0x17540, 0x17724, 0x17740, 0x17b44,
143 0x17b66, 0x17b74, 0x17be6, 0x17c64, 0x17c76, 0x17c94,
144 0x17d40, 0x17dd4, 0x17de0, 0x180b4, 0x180e1, 0x180f4,
145 0x18100, 0x18854, 0x18870, 0x18a94, 0x18aa0, 0x19204,
146 0x19236, 0x19274, 0x19296, 0x192c0, 0x19306, 0x19324,
147 0x19336, 0x19394, 0x193c0, 0x1a174, 0x1a196, 0x1a1b4,
148 0x1a1c0, 0x1a556, 0x1a564, 0x1a576, 0x1a584, 0x1a5f0,
149 0x1a604, 0x1a610, 0x1a624, 0x1a630, 0x1a654, 0x1a6d6,
150 0x1a734, 0x1a7d0, 0x1a7f4, 0x1a800, 0x1ab04, 0x1acf0,
151 0x1b004, 0x1b046, 0x1b050, 0x1b344, 0x1b3e6, 0x1b424,
152 0x1b450, 0x1b6b4, 0x1b740, 0x1b804, 0x1b826, 0x1b830,
153 0x1ba16, 0x1ba24, 0x1ba66, 0x1ba84, 0x1bae0, 0x1be64,
154 0x1be76, 0x1be84, 0x1bea6, 0x1bed4, 0x1bee6, 0x1bef4,
155 0x1bf40, 0x1c246, 0x1c2c4, 0x1c346, 0x1c364, 0x1c380,
156 0x1cd04, 0x1cd30, 0x1cd44, 0x1ce16, 0x1ce24, 0x1ce90,
157 0x1ced4, 0x1cee0, 0x1cf44, 0x1cf50, 0x1cf76, 0x1cf84,
158 0x1cfa0, 0x1dc04, 0x1e000, 0x200b1, 0x200c4, 0x200da,
159 0x200e1, 0x20100, 0x20281, 0x202f0, 0x20601, 0x20700,
160 0x20d04, 0x20f10, 0x2cef4, 0x2cf20, 0x2d7f4, 0x2d800,
161 0x2de04, 0x2e000, 0x302a4, 0x30300, 0x30994, 0x309b0,
162 0xa66f4, 0xa6730, 0xa6744, 0xa67e0, 0xa69e4, 0xa6a00,
163 0xa6f04, 0xa6f20, 0xa8024, 0xa8030, 0xa8064, 0xa8070,
164 0xa80b4, 0xa80c0, 0xa8236, 0xa8254, 0xa8276, 0xa8280,
165 0xa82c4, 0xa82d0, 0xa8806, 0xa8820, 0xa8b46, 0xa8c44,
166 0xa8c60, 0xa8e04, 0xa8f20, 0xa8ff4, 0xa9000, 0xa9264,
167 0xa92e0, 0xa9474, 0xa9526, 0xa9534, 0xa9540, 0xa9607,
168 0xa97d0, 0xa9804, 0xa9836, 0xa9840, 0xa9b34, 0xa9b46,
169 0xa9b64, 0xa9ba6, 0xa9bc4, 0xa9be6, 0xa9c04, 0xa9c10,
170 0xa9e54, 0xa9e60, 0xaa294, 0xaa2f6, 0xaa314, 0xaa336,
171 0xaa354, 0xaa370, 0xaa434, 0xaa440, 0xaa4c4, 0xaa4d6,
172 0xaa4e0, 0xaa7c4, 0xaa7d0, 0xaab04, 0xaab10, 0xaab24,
173 0xaab50, 0xaab74, 0xaab90, 0xaabe4, 0xaac00, 0xaac14,
174 0xaac20, 0xaaeb6, 0xaaec4, 0xaaee6, 0xaaf00, 0xaaf56,
175 0xaaf64, 0xaaf70, 0xabe36, 0xabe54, 0xabe66, 0xabe84,
176 0xabe96, 0xabeb0, 0xabec6, 0xabed4, 0xabee0, 0xac00b,
177 0xac01c, 0xac1cb, 0xac1dc, 0xac38b, 0xac39c, 0xac54b,
178 0xac55c, 0xac70b, 0xac71c, 0xac8cb, 0xac8dc, 0xaca8b,
179 0xaca9c, 0xacc4b, 0xacc5c, 0xace0b, 0xace1c, 0xacfcb,
180 0xacfdc, 0xad18b, 0xad19c, 0xad34b, 0xad35c, 0xad50b,
181 0xad51c, 0xad6cb, 0xad6dc, 0xad88b, 0xad89c, 0xada4b,
182 0xada5c, 0xadc0b, 0xadc1c, 0xaddcb, 0xadddc, 0xadf8b,
183 0xadf9c, 0xae14b, 0xae15c, 0xae30b, 0xae31c, 0xae4cb,
184 0xae4dc, 0xae68b, 0xae69c, 0xae84b, 0xae85c, 0xaea0b,
185 0xaea1c, 0xaebcb, 0xaebdc, 0xaed8b, 0xaed9c, 0xaef4b,
186 0xaef5c, 0xaf10b, 0xaf11c, 0xaf2cb, 0xaf2dc, 0xaf48b,
187 0xaf49c, 0xaf64b, 0xaf65c, 0xaf80b, 0xaf81c, 0xaf9cb,
188 0xaf9dc, 0xafb8b, 0xafb9c, 0xafd4b, 0xafd5c, 0xaff0b,
189 0xaff1c, 0xb00cb, 0xb00dc, 0xb028b, 0xb029c, 0xb044b,
190 0xb045c, 0xb060b, 0xb061c, 0xb07cb, 0xb07dc, 0xb098b,
191 0xb099c, 0xb0b4b, 0xb0b5c, 0xb0d0b, 0xb0d1c, 0xb0ecb,
192 0xb0edc, 0xb108b, 0xb109c, 0xb124b, 0xb125c, 0xb140b,
193 0xb141c, 0xb15cb, 0xb15dc, 0xb178b, 0xb179c, 0xb194b,
194 0xb195c, 0xb1b0b, 0xb1b1c, 0xb1ccb, 0xb1cdc, 0xb1e8b,
195 0xb1e9c, 0xb204b, 0xb205c, 0xb220b, 0xb221c, 0xb23cb,
196 0xb23dc, 0xb258b, 0xb259c, 0xb274b, 0xb275c, 0xb290b,
197 0xb291c, 0xb2acb, 0xb2adc, 0xb2c8b, 0xb2c9c, 0xb2e4b,
198 0xb2e5c, 0xb300b, 0xb301c, 0xb31cb, 0xb31dc, 0xb338b,
199 0xb339c, 0xb354b, 0xb355c, 0xb370b, 0xb371c, 0xb38cb,
200 0xb38dc, 0xb3a8b, 0xb3a9c, 0xb3c4b, 0xb3c5c, 0xb3e0b,
201 0xb3e1c, 0xb3fcb, 0xb3fdc, 0xb418b, 0xb419c, 0xb434b,
202 0xb435c, 0xb450b, 0xb451c, 0xb46cb, 0xb46dc, 0xb488b,
203 0xb489c, 0xb4a4b, 0xb4a5c, 0xb4c0b, 0xb4c1c, 0xb4dcb,
204 0xb4ddc, 0xb4f8b, 0xb4f9c, 0xb514b, 0xb515c, 0xb530b,
205 0xb531c, 0xb54cb, 0xb54dc, 0xb568b, 0xb569c, 0xb584b,
206 0xb585c, 0xb5a0b, 0xb5a1c, 0xb5bcb, 0xb5bdc, 0xb5d8b,
207 0xb5d9c, 0xb5f4b, 0xb5f5c, 0xb610b, 0xb611c, 0xb62cb,
208 0xb62dc, 0xb648b, 0xb649c, 0xb664b, 0xb665c, 0xb680b,
209 0xb681c, 0xb69cb, 0xb69dc, 0xb6b8b, 0xb6b9c, 0xb6d4b,
210 0xb6d5c, 0xb6f0b, 0xb6f1c, 0xb70cb, 0xb70dc, 0xb728b,
211 0xb729c, 0xb744b, 0xb745c, 0xb760b, 0xb761c, 0xb77cb,
212 0xb77dc, 0xb798b, 0xb799c, 0xb7b4b, 0xb7b5c, 0xb7d0b,
213 0xb7d1c, 0xb7ecb, 0xb7edc, 0xb808b, 0xb809c, 0xb824b,
214 0xb825c, 0xb840b, 0xb841c, 0xb85cb, 0xb85dc, 0xb878b,
215 0xb879c, 0xb894b, 0xb895c, 0xb8b0b, 0xb8b1c, 0xb8ccb,
216 0xb8cdc, 0xb8e8b, 0xb8e9c, 0xb904b, 0xb905c, 0xb920b,
217 0xb921c, 0xb93cb, 0xb93dc, 0xb958b, 0xb959c, 0xb974b,
218 0xb975c, 0xb990b, 0xb991c, 0xb9acb, 0xb9adc, 0xb9c8b,
219 0xb9c9c, 0xb9e4b, 0xb9e5c, 0xba00b, 0xba01c, 0xba1cb,
220 0xba1dc, 0xba38b, 0xba39c, 0xba54b, 0xba55c, 0xba70b,
221 0xba71c, 0xba8cb, 0xba8dc, 0xbaa8b, 0xbaa9c, 0xbac4b,
222 0xbac5c, 0xbae0b, 0xbae1c, 0xbafcb, 0xbafdc, 0xbb18b,
223 0xbb19c, 0xbb34b, 0xbb35c, 0xbb50b, 0xbb51c, 0xbb6cb,
224 0xbb6dc, 0xbb88b, 0xbb89c, 0xbba4b, 0xbba5c, 0xbbc0b,
225 0xbbc1c, 0xbbdcb, 0xbbddc, 0xbbf8b, 0xbbf9c, 0xbc14b,
226 0xbc15c, 0xbc30b, 0xbc31c, 0xbc4cb, 0xbc4dc, 0xbc68b,
227 0xbc69c, 0xbc84b, 0xbc85c, 0xbca0b, 0xbca1c, 0xbcbcb,
228 0xbcbdc, 0xbcd8b, 0xbcd9c, 0xbcf4b, 0xbcf5c, 0xbd10b,
229 0xbd11c, 0xbd2cb, 0xbd2dc, 0xbd48b, 0xbd49c, 0xbd64b,
230 0xbd65c, 0xbd80b, 0xbd81c, 0xbd9cb, 0xbd9dc, 0xbdb8b,
231 0xbdb9c, 0xbdd4b, 0xbdd5c, 0xbdf0b, 0xbdf1c, 0xbe0cb,
232 0xbe0dc, 0xbe28b, 0xbe29c, 0xbe44b, 0xbe45c, 0xbe60b,
233 0xbe61c, 0xbe7cb, 0xbe7dc, 0xbe98b, 0xbe99c, 0xbeb4b,
234 0xbeb5c, 0xbed0b, 0xbed1c, 0xbeecb, 0xbeedc, 0xbf08b,
235 0xbf09c, 0xbf24b, 0xbf25c, 0xbf40b, 0xbf41c, 0xbf5cb,
236 0xbf5dc, 0xbf78b, 0xbf79c, 0xbf94b, 0xbf95c, 0xbfb0b,
237 0xbfb1c, 0xbfccb, 0xbfcdc, 0xbfe8b, 0xbfe9c, 0xc004b,
238 0xc005c, 0xc020b, 0xc021c, 0xc03cb, 0xc03dc, 0xc058b,
239 0xc059c, 0xc074b, 0xc075c, 0xc090b, 0xc091c, 0xc0acb,
240 0xc0adc, 0xc0c8b, 0xc0c9c, 0xc0e4b, 0xc0e5c, 0xc100b,
241 0xc101c, 0xc11cb, 0xc11dc, 0xc138b, 0xc139c, 0xc154b,
242 0xc155c, 0xc170b, 0xc171c, 0xc18cb, 0xc18dc, 0xc1a8b,
243 0xc1a9c, 0xc1c4b, 0xc1c5c, 0xc1e0b, 0xc1e1c, 0xc1fcb,
244 0xc1fdc, 0xc218b, 0xc219c, 0xc234b, 0xc235c, 0xc250b,
245 0xc251c, 0xc26cb, 0xc26dc, 0xc288b, 0xc289c, 0xc2a4b,
246 0xc2a5c, 0xc2c0b, 0xc2c1c, 0xc2dcb, 0xc2ddc, 0xc2f8b,
247 0xc2f9c, 0xc314b, 0xc315c, 0xc330b, 0xc331c, 0xc34cb,
248 0xc34dc, 0xc368b, 0xc369c, 0xc384b, 0xc385c, 0xc3a0b,
249 0xc3a1c, 0xc3bcb, 0xc3bdc, 0xc3d8b, 0xc3d9c, 0xc3f4b,
250 0xc3f5c, 0xc410b, 0xc411c, 0xc42cb, 0xc42dc, 0xc448b,
251 0xc449c, 0xc464b, 0xc465c, 0xc480b, 0xc481c, 0xc49cb,
252 0xc49dc, 0xc4b8b, 0xc4b9c, 0xc4d4b, 0xc4d5c, 0xc4f0b,
253 0xc4f1c, 0xc50cb, 0xc50dc, 0xc528b, 0xc529c, 0xc544b,
254 0xc545c, 0xc560b, 0xc561c, 0xc57cb, 0xc57dc, 0xc598b,
255 0xc599c, 0xc5b4b, 0xc5b5c, 0xc5d0b, 0xc5d1c, 0xc5ecb,
256 0xc5edc, 0xc608b, 0xc609c, 0xc624b, 0xc625c, 0xc640b,
257 0xc641c, 0xc65cb, 0xc65dc, 0xc678b, 0xc679c, 0xc694b,
258 0xc695c, 0xc6b0b, 0xc6b1c, 0xc6ccb, 0xc6cdc, 0xc6e8b,
259 0xc6e9c, 0xc704b, 0xc705c, 0xc720b, 0xc721c, 0xc73cb,
260 0xc73dc, 0xc758b, 0xc759c, 0xc774b, 0xc775c, 0xc790b,
261 0xc791c, 0xc7acb, 0xc7adc, 0xc7c8b, 0xc7c9c, 0xc7e4b,
262 0xc7e5c, 0xc800b, 0xc801c, 0xc81cb, 0xc81dc, 0xc838b,
263 0xc839c, 0xc854b, 0xc855c, 0xc870b, 0xc871c, 0xc88cb,
264 0xc88dc, 0xc8a8b, 0xc8a9c, 0xc8c4b, 0xc8c5c, 0xc8e0b,
265 0xc8e1c, 0xc8fcb, 0xc8fdc, 0xc918b, 0xc919c, 0xc934b,
266 0xc935c, 0xc950b, 0xc951c, 0xc96cb, 0xc96dc, 0xc988b,
267 0xc989c, 0xc9a4b, 0xc9a5c, 0xc9c0b, 0xc9c1c, 0xc9dcb,
268 0xc9ddc, 0xc9f8b, 0xc9f9c, 0xca14b, 0xca15c, 0xca30b,
269 0xca31c, 0xca4cb, 0xca4dc, 0xca68b, 0xca69c, 0xca84b,
270 0xca85c, 0xcaa0b, 0xcaa1c, 0xcabcb, 0xcabdc, 0xcad8b,
271 0xcad9c, 0xcaf4b, 0xcaf5c, 0xcb10b, 0xcb11c, 0xcb2cb,
272 0xcb2dc, 0xcb48b, 0xcb49c, 0xcb64b, 0xcb65c, 0xcb80b,
273 0xcb81c, 0xcb9cb, 0xcb9dc, 0xcbb8b, 0xcbb9c, 0xcbd4b,
274 0xcbd5c, 0xcbf0b, 0xcbf1c, 0xcc0cb, 0xcc0dc, 0xcc28b,
275 0xcc29c, 0xcc44b, 0xcc45c, 0xcc60b, 0xcc61c, 0xcc7cb,
276 0xcc7dc, 0xcc98b, 0xcc99c, 0xccb4b, 0xccb5c, 0xccd0b,
277 0xccd1c, 0xccecb, 0xccedc, 0xcd08b, 0xcd09c, 0xcd24b,
278 0xcd25c, 0xcd40b, 0xcd41c, 0xcd5cb, 0xcd5dc, 0xcd78b,
279 0xcd79c, 0xcd94b, 0xcd95c, 0xcdb0b, 0xcdb1c, 0xcdccb,
280 0xcdcdc, 0xcde8b, 0xcde9c, 0xce04b, 0xce05c, 0xce20b,
281 0xce21c, 0xce3cb, 0xce3dc, 0xce58b, 0xce59c, 0xce74b,
282 0xce75c, 0xce90b, 0xce91c, 0xceacb, 0xceadc, 0xcec8b,
283 0xcec9c, 0xcee4b, 0xcee5c, 0xcf00b, 0xcf01c, 0xcf1cb,
284 0xcf1dc, 0xcf38b, 0xcf39c, 0xcf54b, 0xcf55c, 0xcf70b,
285 0xcf71c, 0xcf8cb, 0xcf8dc, 0xcfa8b, 0xcfa9c, 0xcfc4b,
286 0xcfc5c, 0xcfe0b, 0xcfe1c, 0xcffcb, 0xcffdc, 0xd018b,
287 0xd019c, 0xd034b, 0xd035c, 0xd050b, 0xd051c, 0xd06cb,
288 0xd06dc, 0xd088b, 0xd089c, 0xd0a4b, 0xd0a5c, 0xd0c0b,
289 0xd0c1c, 0xd0dcb, 0xd0ddc, 0xd0f8b, 0xd0f9c, 0xd114b,
290 0xd115c, 0xd130b, 0xd131c, 0xd14cb, 0xd14dc, 0xd168b,
291 0xd169c, 0xd184b, 0xd185c, 0xd1a0b, 0xd1a1c, 0xd1bcb,
292 0xd1bdc, 0xd1d8b, 0xd1d9c, 0xd1f4b, 0xd1f5c, 0xd210b,
293 0xd211c, 0xd22cb, 0xd22dc, 0xd248b, 0xd249c, 0xd264b,
294 0xd265c, 0xd280b, 0xd281c, 0xd29cb, 0xd29dc, 0xd2b8b,
295 0xd2b9c, 0xd2d4b, 0xd2d5c, 0xd2f0b, 0xd2f1c, 0xd30cb,
296 0xd30dc, 0xd328b, 0xd329c, 0xd344b, 0xd345c, 0xd360b,
297 0xd361c, 0xd37cb, 0xd37dc, 0xd398b, 0xd399c, 0xd3b4b,
298 0xd3b5c, 0xd3d0b, 0xd3d1c, 0xd3ecb, 0xd3edc, 0xd408b,
299 0xd409c, 0xd424b, 0xd425c, 0xd440b, 0xd441c, 0xd45cb,
300 0xd45dc, 0xd478b, 0xd479c, 0xd494b, 0xd495c, 0xd4b0b,
301 0xd4b1c, 0xd4ccb, 0xd4cdc, 0xd4e8b, 0xd4e9c, 0xd504b,
302 0xd505c, 0xd520b, 0xd521c, 0xd53cb, 0xd53dc, 0xd558b,
303 0xd559c, 0xd574b, 0xd575c, 0xd590b, 0xd591c, 0xd5acb,
304 0xd5adc, 0xd5c8b, 0xd5c9c, 0xd5e4b, 0xd5e5c, 0xd600b,
305 0xd601c, 0xd61cb, 0xd61dc, 0xd638b, 0xd639c, 0xd654b,
306 0xd655c, 0xd670b, 0xd671c, 0xd68cb, 0xd68dc, 0xd6a8b,
307 0xd6a9c, 0xd6c4b, 0xd6c5c, 0xd6e0b, 0xd6e1c, 0xd6fcb,
308 0xd6fdc, 0xd718b, 0xd719c, 0xd734b, 0xd735c, 0xd750b,
309 0xd751c, 0xd76cb, 0xd76dc, 0xd788b, 0xd789c, 0xd7a40,
310 0xd7b08, 0xd7c70, 0xd7cb9, 0xd7fc0, 0xfb1e4, 0xfb1f0,
311 0xfe004, 0xfe100, 0xfe204, 0xfe300, 0xfeff1, 0xff000,
312 0xff9e4, 0xffa00, 0xfff01, 0xfffc0, 0x101fd4, 0x101fe0,
313 0x102e04, 0x102e10, 0x103764, 0x1037b0, 0x10a014, 0x10a040,
314 0x10a054, 0x10a070, 0x10a0c4, 0x10a100, 0x10a384, 0x10a3b0,
315 0x10a3f4, 0x10a400, 0x10ae54, 0x10ae70, 0x10d244, 0x10d280,
316 0x10d694, 0x10d6e0, 0x10eab4, 0x10ead0, 0x10efc4, 0x10f000,
317 0x10f464, 0x10f510, 0x10f824, 0x10f860, 0x110006, 0x110014,
318 0x110026, 0x110030, 0x110384, 0x110470, 0x110704, 0x110710,
319 0x110734, 0x110750, 0x1107f4, 0x110826, 0x110830, 0x110b06,
320 0x110b34, 0x110b76, 0x110b94, 0x110bb0, 0x110bd5, 0x110be0,
321 0x110c24, 0x110c30, 0x110cd5, 0x110ce0, 0x111004, 0x111030,
322 0x111274, 0x1112c6, 0x1112d4, 0x111350, 0x111456, 0x111470,
323 0x111734, 0x111740, 0x111804, 0x111826, 0x111830, 0x111b36,
324 0x111b64, 0x111bf6, 0x111c04, 0x111c10, 0x111c25, 0x111c40,
325 0x111c94, 0x111cd0, 0x111ce6, 0x111cf4, 0x111d00, 0x1122c6,
326 0x1122f4, 0x112326, 0x112344, 0x112380, 0x1123e4, 0x1123f0,
327 0x112414, 0x112420, 0x112df4, 0x112e06, 0x112e34, 0x112eb0,
328 0x113004, 0x113026, 0x113040, 0x1133b4, 0x1133d0, 0x1133e4,
329 0x1133f6, 0x113404, 0x113416, 0x113450, 0x113476, 0x113490,
330 0x1134b6, 0x1134d4, 0x1134e0, 0x113574, 0x113580, 0x113626,
331 0x113640, 0x113664, 0x1136d0, 0x113704, 0x113750, 0x113b84,
332 0x113b96, 0x113bb4, 0x113c10, 0x113c24, 0x113c30, 0x113c54,
333 0x113c60, 0x113c74, 0x113ca6, 0x113cb0, 0x113cc6, 0x113ce4,
334 0x113d15, 0x113d24, 0x113d30, 0x113e14, 0x113e30, 0x114356,
335 0x114384, 0x114406, 0x114424, 0x114456, 0x114464, 0x114470,
336 0x1145e4, 0x1145f0, 0x114b04, 0x114b16, 0x114b34, 0x114b96,
337 0x114ba4, 0x114bb6, 0x114bd4, 0x114be6, 0x114bf4, 0x114c16,
338 0x114c24, 0x114c40, 0x115af4, 0x115b06, 0x115b24, 0x115b60,
339 0x115b86, 0x115bc4, 0x115be6, 0x115bf4, 0x115c10, 0x115dc4,
340 0x115de0, 0x116306, 0x116334, 0x1163b6, 0x1163d4, 0x1163e6,
341 0x1163f4, 0x116410, 0x116ab4, 0x116ac6, 0x116ad4, 0x116ae6,
342 0x116b04, 0x116b80, 0x1171d4, 0x1171e6, 0x1171f4, 0x117200,
343 0x117224, 0x117266, 0x117274, 0x1172c0, 0x1182c6, 0x1182f4,
344 0x118386, 0x118394, 0x1183b0, 0x119304, 0x119316, 0x119360,
345 0x119376, 0x119390, 0x1193b4, 0x1193f5, 0x119406, 0x119415,
346 0x119426, 0x119434, 0x119440, 0x119d16, 0x119d44, 0x119d80,
347 0x119da4, 0x119dc6, 0x119e04, 0x119e10, 0x119e46, 0x119e50,
348 0x11a014, 0x11a0b0, 0x11a334, 0x11a396, 0x11a3a5, 0x11a3b4,
349 0x11a3f0, 0x11a474, 0x11a480, 0x11a514, 0x11a576, 0x11a594,
350 0x11a5c0, 0x11a845, 0x11a8a4, 0x11a976, 0x11a984, 0x11a9a0,
351 0x11c2f6, 0x11c304, 0x11c370, 0x11c384, 0x11c3e6, 0x11c3f4,
352 0x11c400, 0x11c924, 0x11ca80, 0x11ca96, 0x11caa4, 0x11cb16,
353 0x11cb24, 0x11cb46, 0x11cb54, 0x11cb70, 0x11d314, 0x11d370,
354 0x11d3a4, 0x11d3b0, 0x11d3c4, 0x11d3e0, 0x11d3f4, 0x11d465,
355 0x11d474, 0x11d480, 0x11d8a6, 0x11d8f0, 0x11d904, 0x11d920,
356 0x11d936, 0x11d954, 0x11d966, 0x11d974, 0x11d980, 0x11ef34,
357 0x11ef56, 0x11ef70, 0x11f004, 0x11f025, 0x11f036, 0x11f040,
358 0x11f346, 0x11f364, 0x11f3b0, 0x11f3e6, 0x11f404, 0x11f430,
359 0x11f5a4, 0x11f5b0, 0x134301, 0x134404, 0x134410, 0x134474,
360 0x134560, 0x1611e4, 0x1612a6, 0x1612d4, 0x161300, 0x16af04,
361 0x16af50, 0x16b304, 0x16b370, 0x16d638, 0x16d640, 0x16d678,
362 0x16d6b0, 0x16f4f4, 0x16f500, 0x16f516, 0x16f880, 0x16f8f4,
363 0x16f930, 0x16fe44, 0x16fe50, 0x16ff04, 0x16ff20, 0x1bc9d4,
364 0x1bc9f0, 0x1bca01, 0x1bca40, 0x1cf004, 0x1cf2e0, 0x1cf304,
365 0x1cf470, 0x1d1654, 0x1d16a0, 0x1d16d4, 0x1d1731, 0x1d17b4,
366 0x1d1830, 0x1d1854, 0x1d18c0, 0x1d1aa4, 0x1d1ae0, 0x1d2424,
367 0x1d2450, 0x1da004, 0x1da370, 0x1da3b4, 0x1da6d0, 0x1da754,
368 0x1da760, 0x1da844, 0x1da850, 0x1da9b4, 0x1daa00, 0x1daa14,
369 0x1dab00, 0x1e0004, 0x1e0070, 0x1e0084, 0x1e0190, 0x1e01b4,
370 0x1e0220, 0x1e0234, 0x1e0250, 0x1e0264, 0x1e02b0, 0x1e08f4,
371 0x1e0900, 0x1e1304, 0x1e1370, 0x1e2ae4, 0x1e2af0, 0x1e2ec4,
372 0x1e2f00, 0x1e4ec4, 0x1e4f00, 0x1e5ee4, 0x1e5f00, 0x1e8d04,
373 0x1e8d70, 0x1e9444, 0x1e94b0, 0x1f1e6d, 0x1f2000, 0x1f3fb4,
374 0x1f4000, 0xe00001, 0xe00204, 0xe00801, 0xe01004, 0xe01f01,
375 0xe10000,
376 };
377
378 inline constexpr char32_t __incb_linkers[] = {
379 0x094d, 0x09cd, 0x0acd, 0x0b4d, 0x0c4d, 0x0d4d,
380 };
381
382 enum class _InCB { _Consonant = 1, _Extend = 2 };
383
384 // Values generated by contrib/unicode/gen_std_format_width.py,
385 // from DerivedCoreProperties.txt from the Unicode standard.
386 // Entries are (code_point << 2) + property.
387 inline constexpr uint32_t __incb_edges[] = {
388 0xc02, 0xdc0, 0x120e, 0x1228, 0x1646, 0x16f8,
389 0x16fe, 0x1700, 0x1706, 0x170c, 0x1712, 0x1718,
390 0x171e, 0x1720, 0x1842, 0x186c, 0x192e, 0x1980,
391 0x19c2, 0x19c4, 0x1b5a, 0x1b74, 0x1b7e, 0x1b94,
392 0x1b9e, 0x1ba4, 0x1baa, 0x1bb8, 0x1c46, 0x1c48,
393 0x1cc2, 0x1d2c, 0x1e9a, 0x1ec4, 0x1fae, 0x1fd0,
394 0x1ff6, 0x1ff8, 0x205a, 0x2068, 0x206e, 0x2090,
395 0x2096, 0x20a0, 0x20a6, 0x20b8, 0x2166, 0x2170,
396 0x225e, 0x2280, 0x232a, 0x2388, 0x238e, 0x240c,
397 0x2455, 0x24ea, 0x24ec, 0x24f2, 0x24f4, 0x2506,
398 0x2524, 0x2546, 0x2561, 0x2580, 0x258a, 0x2590,
399 0x25e1, 0x2600, 0x2606, 0x2608, 0x2655, 0x26a4,
400 0x26a9, 0x26c4, 0x26c9, 0x26cc, 0x26d9, 0x26e8,
401 0x26f2, 0x26f4, 0x26fa, 0x26fc, 0x2706, 0x2714,
402 0x275e, 0x2760, 0x2771, 0x2778, 0x277d, 0x2780,
403 0x278a, 0x2790, 0x27c1, 0x27c8, 0x27fa, 0x27fc,
404 0x2806, 0x280c, 0x28f2, 0x28f4, 0x2906, 0x290c,
405 0x291e, 0x2924, 0x292e, 0x2938, 0x2946, 0x2948,
406 0x29c2, 0x29c8, 0x29d6, 0x29d8, 0x2a06, 0x2a0c,
407 0x2a55, 0x2aa4, 0x2aa9, 0x2ac4, 0x2ac9, 0x2ad0,
408 0x2ad5, 0x2ae8, 0x2af2, 0x2af4, 0x2b06, 0x2b18,
409 0x2b1e, 0x2b24, 0x2b8a, 0x2b90, 0x2be5, 0x2bea,
410 0x2c00, 0x2c06, 0x2c08, 0x2c55, 0x2ca4, 0x2ca9,
411 0x2cc4, 0x2cc9, 0x2cd0, 0x2cd5, 0x2ce8, 0x2cf2,
412 0x2cf4, 0x2cfa, 0x2d00, 0x2d06, 0x2d14, 0x2d56,
413 0x2d60, 0x2d71, 0x2d78, 0x2d7d, 0x2d80, 0x2d8a,
414 0x2d90, 0x2dc5, 0x2dc8, 0x2e0a, 0x2e0c, 0x2efa,
415 0x2efc, 0x2f02, 0x2f04, 0x2f36, 0x2f38, 0x2f5e,
416 0x2f60, 0x3002, 0x3004, 0x3012, 0x3014, 0x3055,
417 0x30a4, 0x30a9, 0x30e8, 0x30f2, 0x30f4, 0x30fa,
418 0x3104, 0x311a, 0x3124, 0x312a, 0x3134, 0x3156,
419 0x315c, 0x3161, 0x316c, 0x318a, 0x3190, 0x3206,
420 0x3208, 0x32f2, 0x32f4, 0x32fe, 0x3304, 0x330a,
421 0x330c, 0x331a, 0x3324, 0x332a, 0x3338, 0x3356,
422 0x335c, 0x338a, 0x3390, 0x3402, 0x3408, 0x3455,
423 0x34ee, 0x34f4, 0x34fa, 0x34fc, 0x3506, 0x3514,
424 0x355e, 0x3560, 0x358a, 0x3590, 0x3606, 0x3608,
425 0x372a, 0x372c, 0x373e, 0x3740, 0x374a, 0x3754,
426 0x375a, 0x375c, 0x377e, 0x3780, 0x38c6, 0x38c8,
427 0x38d2, 0x38ec, 0x391e, 0x393c, 0x3ac6, 0x3ac8,
428 0x3ad2, 0x3af4, 0x3b22, 0x3b3c, 0x3c62, 0x3c68,
429 0x3cd6, 0x3cd8, 0x3cde, 0x3ce0, 0x3ce6, 0x3ce8,
430 0x3dc6, 0x3dfc, 0x3e02, 0x3e14, 0x3e1a, 0x3e20,
431 0x3e36, 0x3e60, 0x3e66, 0x3ef4, 0x3f1a, 0x3f1c,
432 0x40b6, 0x40c4, 0x40ca, 0x40e0, 0x40e6, 0x40ec,
433 0x40f6, 0x40fc, 0x4162, 0x4168, 0x417a, 0x4184,
434 0x41c6, 0x41d4, 0x420a, 0x420c, 0x4216, 0x421c,
435 0x4236, 0x4238, 0x4276, 0x4278, 0x4d76, 0x4d80,
436 0x5c4a, 0x5c58, 0x5cca, 0x5cd4, 0x5d4a, 0x5d50,
437 0x5dca, 0x5dd0, 0x5ed2, 0x5ed8, 0x5ede, 0x5ef8,
438 0x5f1a, 0x5f1c, 0x5f26, 0x5f50, 0x5f76, 0x5f78,
439 0x602e, 0x6038, 0x603e, 0x6040, 0x6216, 0x621c,
440 0x62a6, 0x62a8, 0x6482, 0x648c, 0x649e, 0x64a4,
441 0x64ca, 0x64cc, 0x64e6, 0x64f0, 0x685e, 0x6864,
442 0x686e, 0x6870, 0x695a, 0x695c, 0x6962, 0x697c,
443 0x6982, 0x6984, 0x698a, 0x698c, 0x6996, 0x69b4,
444 0x69ce, 0x69f4, 0x69fe, 0x6a00, 0x6ac2, 0x6b3c,
445 0x6c02, 0x6c10, 0x6cd2, 0x6cf8, 0x6d0a, 0x6d14,
446 0x6dae, 0x6dd0, 0x6e02, 0x6e08, 0x6e8a, 0x6e98,
447 0x6ea2, 0x6eb8, 0x6f9a, 0x6f9c, 0x6fa2, 0x6fa8,
448 0x6fb6, 0x6fb8, 0x6fbe, 0x6fd0, 0x70b2, 0x70d0,
449 0x70da, 0x70e0, 0x7342, 0x734c, 0x7352, 0x7384,
450 0x738a, 0x73a4, 0x73b6, 0x73b8, 0x73d2, 0x73d4,
451 0x73e2, 0x73e8, 0x7702, 0x7800, 0x8036, 0x8038,
452 0x8342, 0x83c4, 0xb3be, 0xb3c8, 0xb5fe, 0xb600,
453 0xb782, 0xb800, 0xc0aa, 0xc0c0, 0xc266, 0xc26c,
454 0x299be, 0x299cc, 0x299d2, 0x299f8, 0x29a7a, 0x29a80,
455 0x29bc2, 0x29bc8, 0x2a00a, 0x2a00c, 0x2a01a, 0x2a01c,
456 0x2a02e, 0x2a030, 0x2a096, 0x2a09c, 0x2a0b2, 0x2a0b4,
457 0x2a312, 0x2a318, 0x2a382, 0x2a3c8, 0x2a3fe, 0x2a400,
458 0x2a49a, 0x2a4b8, 0x2a51e, 0x2a548, 0x2a54e, 0x2a550,
459 0x2a602, 0x2a60c, 0x2a6ce, 0x2a6d0, 0x2a6da, 0x2a6e8,
460 0x2a6f2, 0x2a6f8, 0x2a702, 0x2a704, 0x2a796, 0x2a798,
461 0x2a8a6, 0x2a8bc, 0x2a8c6, 0x2a8cc, 0x2a8d6, 0x2a8dc,
462 0x2a90e, 0x2a910, 0x2a932, 0x2a934, 0x2a9f2, 0x2a9f4,
463 0x2aac2, 0x2aac4, 0x2aaca, 0x2aad4, 0x2aade, 0x2aae4,
464 0x2aafa, 0x2ab00, 0x2ab06, 0x2ab08, 0x2abb2, 0x2abb8,
465 0x2abda, 0x2abdc, 0x2af96, 0x2af98, 0x2afa2, 0x2afa4,
466 0x2afb6, 0x2afb8, 0x3ec7a, 0x3ec7c, 0x3f802, 0x3f840,
467 0x3f882, 0x3f8c0, 0x3fe7a, 0x3fe80, 0x407f6, 0x407f8,
468 0x40b82, 0x40b84, 0x40dda, 0x40dec, 0x42806, 0x42810,
469 0x42816, 0x4281c, 0x42832, 0x42840, 0x428e2, 0x428ec,
470 0x428fe, 0x42900, 0x42b96, 0x42b9c, 0x43492, 0x434a0,
471 0x435a6, 0x435b8, 0x43aae, 0x43ab4, 0x43bf2, 0x43c00,
472 0x43d1a, 0x43d44, 0x43e0a, 0x43e18, 0x44006, 0x44008,
473 0x440e2, 0x4411c, 0x441c2, 0x441c4, 0x441ce, 0x441d4,
474 0x441fe, 0x44208, 0x442ce, 0x442dc, 0x442e6, 0x442ec,
475 0x4430a, 0x4430c, 0x44402, 0x4440c, 0x4449e, 0x444b0,
476 0x444b6, 0x444d4, 0x445ce, 0x445d0, 0x44602, 0x44608,
477 0x446da, 0x446fc, 0x44702, 0x44704, 0x44726, 0x44734,
478 0x4473e, 0x44740, 0x448be, 0x448c8, 0x448d2, 0x448e0,
479 0x448fa, 0x448fc, 0x44906, 0x44908, 0x44b7e, 0x44b80,
480 0x44b8e, 0x44bac, 0x44c02, 0x44c08, 0x44cee, 0x44cf4,
481 0x44cfa, 0x44cfc, 0x44d02, 0x44d04, 0x44d36, 0x44d38,
482 0x44d5e, 0x44d60, 0x44d9a, 0x44db4, 0x44dc2, 0x44dd4,
483 0x44ee2, 0x44ee4, 0x44eee, 0x44f04, 0x44f0a, 0x44f0c,
484 0x44f16, 0x44f18, 0x44f1e, 0x44f28, 0x44f3a, 0x44f44,
485 0x44f4a, 0x44f4c, 0x44f86, 0x44f8c, 0x450e2, 0x45100,
486 0x4510a, 0x45114, 0x4511a, 0x4511c, 0x4517a, 0x4517c,
487 0x452c2, 0x452c4, 0x452ce, 0x452e4, 0x452ea, 0x452ec,
488 0x452f6, 0x452f8, 0x452fe, 0x45304, 0x4530a, 0x45310,
489 0x456be, 0x456c0, 0x456ca, 0x456d8, 0x456f2, 0x456f8,
490 0x456fe, 0x45704, 0x45772, 0x45778, 0x458ce, 0x458ec,
491 0x458f6, 0x458f8, 0x458fe, 0x45904, 0x45aae, 0x45ab0,
492 0x45ab6, 0x45ab8, 0x45ac2, 0x45ae0, 0x45c76, 0x45c78,
493 0x45c7e, 0x45c80, 0x45c8a, 0x45c98, 0x45c9e, 0x45cb0,
494 0x460be, 0x460e0, 0x460e6, 0x460ec, 0x464c2, 0x464c4,
495 0x464ee, 0x464fc, 0x4650e, 0x46510, 0x46752, 0x46760,
496 0x4676a, 0x46770, 0x46782, 0x46784, 0x46806, 0x4682c,
497 0x468ce, 0x468e4, 0x468ee, 0x468fc, 0x4691e, 0x46920,
498 0x46946, 0x4695c, 0x46966, 0x46970, 0x46a2a, 0x46a5c,
499 0x46a62, 0x46a68, 0x470c2, 0x470dc, 0x470e2, 0x470f8,
500 0x470fe, 0x47100, 0x4724a, 0x472a0, 0x472aa, 0x472c4,
501 0x472ca, 0x472d0, 0x472d6, 0x472dc, 0x474c6, 0x474dc,
502 0x474ea, 0x474ec, 0x474f2, 0x474f8, 0x474fe, 0x47518,
503 0x4751e, 0x47520, 0x47642, 0x47648, 0x47656, 0x47658,
504 0x4765e, 0x47660, 0x47bce, 0x47bd4, 0x47c02, 0x47c08,
505 0x47cda, 0x47cec, 0x47d02, 0x47d0c, 0x47d6a, 0x47d6c,
506 0x4d102, 0x4d104, 0x4d11e, 0x4d158, 0x5847a, 0x584a8,
507 0x584b6, 0x584c0, 0x5abc2, 0x5abd4, 0x5acc2, 0x5acdc,
508 0x5bd3e, 0x5bd40, 0x5be3e, 0x5be4c, 0x5bf92, 0x5bf94,
509 0x5bfc2, 0x5bfc8, 0x6f276, 0x6f27c, 0x73c02, 0x73cb8,
510 0x73cc2, 0x73d1c, 0x74596, 0x745a8, 0x745b6, 0x745cc,
511 0x745ee, 0x7460c, 0x74616, 0x74630, 0x746aa, 0x746b8,
512 0x7490a, 0x74914, 0x76802, 0x768dc, 0x768ee, 0x769b4,
513 0x769d6, 0x769d8, 0x76a12, 0x76a14, 0x76a6e, 0x76a80,
514 0x76a86, 0x76ac0, 0x78002, 0x7801c, 0x78022, 0x78064,
515 0x7806e, 0x78088, 0x7808e, 0x78094, 0x7809a, 0x780ac,
516 0x7823e, 0x78240, 0x784c2, 0x784dc, 0x78aba, 0x78abc,
517 0x78bb2, 0x78bc0, 0x793b2, 0x793c0, 0x797ba, 0x797c0,
518 0x7a342, 0x7a35c, 0x7a512, 0x7a52c, 0x7cfee, 0x7d000,
519 0x380082, 0x380200, 0x380402, 0x3807c0,
520 };
521
522 // Table generated by contrib/unicode/gen_std_format_width.py,
523 // from emoji-data.txt from the Unicode standard.
524 inline constexpr char32_t __xpicto_edges[] = {
525 0xa9, 0xaa, 0xae, 0xaf, 0x203c, 0x203d, 0x2049, 0x204a,
526 0x2122, 0x2123, 0x2139, 0x213a, 0x2194, 0x219a, 0x21a9, 0x21ab,
527 0x231a, 0x231c, 0x2328, 0x2329, 0x2388, 0x2389, 0x23cf, 0x23d0,
528 0x23e9, 0x23f4, 0x23f8, 0x23fb, 0x24c2, 0x24c3, 0x25aa, 0x25ac,
529 0x25b6, 0x25b7, 0x25c0, 0x25c1, 0x25fb, 0x25ff, 0x2600, 0x2606,
530 0x2607, 0x2613, 0x2614, 0x2686, 0x2690, 0x2706, 0x2708, 0x2713,
531 0x2714, 0x2715, 0x2716, 0x2717, 0x271d, 0x271e, 0x2721, 0x2722,
532 0x2728, 0x2729, 0x2733, 0x2735, 0x2744, 0x2745, 0x2747, 0x2748,
533 0x274c, 0x274d, 0x274e, 0x274f, 0x2753, 0x2756, 0x2757, 0x2758,
534 0x2763, 0x2768, 0x2795, 0x2798, 0x27a1, 0x27a2, 0x27b0, 0x27b1,
535 0x27bf, 0x27c0, 0x2934, 0x2936, 0x2b05, 0x2b08, 0x2b1b, 0x2b1d,
536 0x2b50, 0x2b51, 0x2b55, 0x2b56, 0x3030, 0x3031, 0x303d, 0x303e,
537 0x3297, 0x3298, 0x3299, 0x329a, 0x1f000, 0x1f100, 0x1f10d, 0x1f110,
538 0x1f12f, 0x1f130, 0x1f16c, 0x1f172, 0x1f17e, 0x1f180, 0x1f18e, 0x1f18f,
539 0x1f191, 0x1f19b, 0x1f1ad, 0x1f1e6, 0x1f201, 0x1f210, 0x1f21a, 0x1f21b,
540 0x1f22f, 0x1f230, 0x1f232, 0x1f23b, 0x1f23c, 0x1f240, 0x1f249, 0x1f3fb,
541 0x1f400, 0x1f53e, 0x1f546, 0x1f650, 0x1f680, 0x1f700, 0x1f774, 0x1f780,
542 0x1f7d5, 0x1f800, 0x1f80c, 0x1f810, 0x1f848, 0x1f850, 0x1f85a, 0x1f860,
543 0x1f888, 0x1f890, 0x1f8ae, 0x1f900, 0x1f90c, 0x1f93b, 0x1f93c, 0x1f946,
544 0x1f947, 0x1fb00, 0x1fc00, 0x1fffe,
545 };
546
547#undef _GLIBCXX_GET_UNICODE_DATA