prism 0.18.0 → 0.19.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +31 -1
  3. data/README.md +2 -1
  4. data/config.yml +188 -55
  5. data/docs/building.md +9 -2
  6. data/docs/configuration.md +10 -9
  7. data/docs/encoding.md +24 -56
  8. data/docs/local_variable_depth.md +229 -0
  9. data/docs/ruby_api.md +2 -0
  10. data/docs/serialization.md +18 -13
  11. data/ext/prism/api_node.c +337 -195
  12. data/ext/prism/extconf.rb +13 -7
  13. data/ext/prism/extension.c +96 -32
  14. data/ext/prism/extension.h +1 -1
  15. data/include/prism/ast.h +340 -137
  16. data/include/prism/defines.h +17 -0
  17. data/include/prism/diagnostic.h +11 -5
  18. data/include/prism/encoding.h +248 -0
  19. data/include/prism/options.h +2 -2
  20. data/include/prism/parser.h +62 -42
  21. data/include/prism/regexp.h +2 -2
  22. data/include/prism/util/pm_buffer.h +9 -1
  23. data/include/prism/util/pm_memchr.h +2 -2
  24. data/include/prism/util/pm_strpbrk.h +3 -3
  25. data/include/prism/version.h +2 -2
  26. data/include/prism.h +13 -15
  27. data/lib/prism/compiler.rb +12 -0
  28. data/lib/prism/debug.rb +9 -4
  29. data/lib/prism/desugar_compiler.rb +3 -3
  30. data/lib/prism/dispatcher.rb +56 -0
  31. data/lib/prism/dot_visitor.rb +476 -198
  32. data/lib/prism/dsl.rb +66 -46
  33. data/lib/prism/ffi.rb +16 -3
  34. data/lib/prism/lex_compat.rb +19 -9
  35. data/lib/prism/mutation_compiler.rb +20 -0
  36. data/lib/prism/node.rb +1173 -450
  37. data/lib/prism/node_ext.rb +41 -16
  38. data/lib/prism/parse_result.rb +12 -15
  39. data/lib/prism/ripper_compat.rb +49 -34
  40. data/lib/prism/serialize.rb +242 -212
  41. data/lib/prism/visitor.rb +12 -0
  42. data/lib/prism.rb +20 -4
  43. data/prism.gemspec +4 -10
  44. data/rbi/prism.rbi +605 -230
  45. data/rbi/prism_static.rbi +3 -0
  46. data/sig/prism.rbs +379 -124
  47. data/sig/prism_static.rbs +1 -0
  48. data/src/diagnostic.c +228 -222
  49. data/src/encoding.c +5137 -0
  50. data/src/node.c +66 -0
  51. data/src/options.c +21 -2
  52. data/src/prettyprint.c +806 -406
  53. data/src/prism.c +1092 -700
  54. data/src/regexp.c +3 -3
  55. data/src/serialize.c +227 -157
  56. data/src/util/pm_buffer.c +10 -1
  57. data/src/util/pm_memchr.c +1 -1
  58. data/src/util/pm_strpbrk.c +4 -4
  59. metadata +5 -11
  60. data/include/prism/enc/pm_encoding.h +0 -227
  61. data/src/enc/pm_big5.c +0 -116
  62. data/src/enc/pm_cp51932.c +0 -57
  63. data/src/enc/pm_euc_jp.c +0 -69
  64. data/src/enc/pm_gbk.c +0 -65
  65. data/src/enc/pm_shift_jis.c +0 -57
  66. data/src/enc/pm_tables.c +0 -2073
  67. data/src/enc/pm_unicode.c +0 -2369
  68. data/src/enc/pm_windows_31j.c +0 -57
data/src/enc/pm_unicode.c DELETED
@@ -1,2369 +0,0 @@
1
- #include "prism/enc/pm_encoding.h"
2
-
3
- typedef uint32_t pm_unicode_codepoint_t;
4
-
5
- /**
6
- * Each element of the following table contains a bitfield that indicates a
7
- * piece of information about the corresponding unicode codepoint. Note that
8
- * this table is different from other encodings where we used a lookup table
9
- * because the indices of those tables are the byte representations, not the
10
- * codepoints themselves.
11
- */
12
- const uint8_t pm_encoding_unicode_table[256] = {
13
- // 0 1 2 3 4 5 6 7 8 9 A B C D E F
14
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x
15
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x
16
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 2x
17
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, // 3x
18
- 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, // 4x
19
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, // 5x
20
- 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, // 6x
21
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, // 7x
22
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 8x
23
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 9x
24
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, // Ax
25
- 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, // Bx
26
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, // Cx
27
- 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 3, // Dx
28
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, // Ex
29
- 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3, // Fx
30
- };
31
-
32
- #define UNICODE_ALPHA_CODEPOINTS_LENGTH 1450
33
- static const pm_unicode_codepoint_t unicode_alpha_codepoints[UNICODE_ALPHA_CODEPOINTS_LENGTH] = {
34
- 0x100, 0x2C1,
35
- 0x2C6, 0x2D1,
36
- 0x2E0, 0x2E4,
37
- 0x2EC, 0x2EC,
38
- 0x2EE, 0x2EE,
39
- 0x345, 0x345,
40
- 0x370, 0x374,
41
- 0x376, 0x377,
42
- 0x37A, 0x37D,
43
- 0x37F, 0x37F,
44
- 0x386, 0x386,
45
- 0x388, 0x38A,
46
- 0x38C, 0x38C,
47
- 0x38E, 0x3A1,
48
- 0x3A3, 0x3F5,
49
- 0x3F7, 0x481,
50
- 0x48A, 0x52F,
51
- 0x531, 0x556,
52
- 0x559, 0x559,
53
- 0x560, 0x588,
54
- 0x5B0, 0x5BD,
55
- 0x5BF, 0x5BF,
56
- 0x5C1, 0x5C2,
57
- 0x5C4, 0x5C5,
58
- 0x5C7, 0x5C7,
59
- 0x5D0, 0x5EA,
60
- 0x5EF, 0x5F2,
61
- 0x610, 0x61A,
62
- 0x620, 0x657,
63
- 0x659, 0x65F,
64
- 0x66E, 0x6D3,
65
- 0x6D5, 0x6DC,
66
- 0x6E1, 0x6E8,
67
- 0x6ED, 0x6EF,
68
- 0x6FA, 0x6FC,
69
- 0x6FF, 0x6FF,
70
- 0x710, 0x73F,
71
- 0x74D, 0x7B1,
72
- 0x7CA, 0x7EA,
73
- 0x7F4, 0x7F5,
74
- 0x7FA, 0x7FA,
75
- 0x800, 0x817,
76
- 0x81A, 0x82C,
77
- 0x840, 0x858,
78
- 0x860, 0x86A,
79
- 0x870, 0x887,
80
- 0x889, 0x88E,
81
- 0x8A0, 0x8C9,
82
- 0x8D4, 0x8DF,
83
- 0x8E3, 0x8E9,
84
- 0x8F0, 0x93B,
85
- 0x93D, 0x94C,
86
- 0x94E, 0x950,
87
- 0x955, 0x963,
88
- 0x971, 0x983,
89
- 0x985, 0x98C,
90
- 0x98F, 0x990,
91
- 0x993, 0x9A8,
92
- 0x9AA, 0x9B0,
93
- 0x9B2, 0x9B2,
94
- 0x9B6, 0x9B9,
95
- 0x9BD, 0x9C4,
96
- 0x9C7, 0x9C8,
97
- 0x9CB, 0x9CC,
98
- 0x9CE, 0x9CE,
99
- 0x9D7, 0x9D7,
100
- 0x9DC, 0x9DD,
101
- 0x9DF, 0x9E3,
102
- 0x9F0, 0x9F1,
103
- 0x9FC, 0x9FC,
104
- 0xA01, 0xA03,
105
- 0xA05, 0xA0A,
106
- 0xA0F, 0xA10,
107
- 0xA13, 0xA28,
108
- 0xA2A, 0xA30,
109
- 0xA32, 0xA33,
110
- 0xA35, 0xA36,
111
- 0xA38, 0xA39,
112
- 0xA3E, 0xA42,
113
- 0xA47, 0xA48,
114
- 0xA4B, 0xA4C,
115
- 0xA51, 0xA51,
116
- 0xA59, 0xA5C,
117
- 0xA5E, 0xA5E,
118
- 0xA70, 0xA75,
119
- 0xA81, 0xA83,
120
- 0xA85, 0xA8D,
121
- 0xA8F, 0xA91,
122
- 0xA93, 0xAA8,
123
- 0xAAA, 0xAB0,
124
- 0xAB2, 0xAB3,
125
- 0xAB5, 0xAB9,
126
- 0xABD, 0xAC5,
127
- 0xAC7, 0xAC9,
128
- 0xACB, 0xACC,
129
- 0xAD0, 0xAD0,
130
- 0xAE0, 0xAE3,
131
- 0xAF9, 0xAFC,
132
- 0xB01, 0xB03,
133
- 0xB05, 0xB0C,
134
- 0xB0F, 0xB10,
135
- 0xB13, 0xB28,
136
- 0xB2A, 0xB30,
137
- 0xB32, 0xB33,
138
- 0xB35, 0xB39,
139
- 0xB3D, 0xB44,
140
- 0xB47, 0xB48,
141
- 0xB4B, 0xB4C,
142
- 0xB56, 0xB57,
143
- 0xB5C, 0xB5D,
144
- 0xB5F, 0xB63,
145
- 0xB71, 0xB71,
146
- 0xB82, 0xB83,
147
- 0xB85, 0xB8A,
148
- 0xB8E, 0xB90,
149
- 0xB92, 0xB95,
150
- 0xB99, 0xB9A,
151
- 0xB9C, 0xB9C,
152
- 0xB9E, 0xB9F,
153
- 0xBA3, 0xBA4,
154
- 0xBA8, 0xBAA,
155
- 0xBAE, 0xBB9,
156
- 0xBBE, 0xBC2,
157
- 0xBC6, 0xBC8,
158
- 0xBCA, 0xBCC,
159
- 0xBD0, 0xBD0,
160
- 0xBD7, 0xBD7,
161
- 0xC00, 0xC0C,
162
- 0xC0E, 0xC10,
163
- 0xC12, 0xC28,
164
- 0xC2A, 0xC39,
165
- 0xC3D, 0xC44,
166
- 0xC46, 0xC48,
167
- 0xC4A, 0xC4C,
168
- 0xC55, 0xC56,
169
- 0xC58, 0xC5A,
170
- 0xC5D, 0xC5D,
171
- 0xC60, 0xC63,
172
- 0xC80, 0xC83,
173
- 0xC85, 0xC8C,
174
- 0xC8E, 0xC90,
175
- 0xC92, 0xCA8,
176
- 0xCAA, 0xCB3,
177
- 0xCB5, 0xCB9,
178
- 0xCBD, 0xCC4,
179
- 0xCC6, 0xCC8,
180
- 0xCCA, 0xCCC,
181
- 0xCD5, 0xCD6,
182
- 0xCDD, 0xCDE,
183
- 0xCE0, 0xCE3,
184
- 0xCF1, 0xCF3,
185
- 0xD00, 0xD0C,
186
- 0xD0E, 0xD10,
187
- 0xD12, 0xD3A,
188
- 0xD3D, 0xD44,
189
- 0xD46, 0xD48,
190
- 0xD4A, 0xD4C,
191
- 0xD4E, 0xD4E,
192
- 0xD54, 0xD57,
193
- 0xD5F, 0xD63,
194
- 0xD7A, 0xD7F,
195
- 0xD81, 0xD83,
196
- 0xD85, 0xD96,
197
- 0xD9A, 0xDB1,
198
- 0xDB3, 0xDBB,
199
- 0xDBD, 0xDBD,
200
- 0xDC0, 0xDC6,
201
- 0xDCF, 0xDD4,
202
- 0xDD6, 0xDD6,
203
- 0xDD8, 0xDDF,
204
- 0xDF2, 0xDF3,
205
- 0xE01, 0xE3A,
206
- 0xE40, 0xE46,
207
- 0xE4D, 0xE4D,
208
- 0xE81, 0xE82,
209
- 0xE84, 0xE84,
210
- 0xE86, 0xE8A,
211
- 0xE8C, 0xEA3,
212
- 0xEA5, 0xEA5,
213
- 0xEA7, 0xEB9,
214
- 0xEBB, 0xEBD,
215
- 0xEC0, 0xEC4,
216
- 0xEC6, 0xEC6,
217
- 0xECD, 0xECD,
218
- 0xEDC, 0xEDF,
219
- 0xF00, 0xF00,
220
- 0xF40, 0xF47,
221
- 0xF49, 0xF6C,
222
- 0xF71, 0xF83,
223
- 0xF88, 0xF97,
224
- 0xF99, 0xFBC,
225
- 0x1000, 0x1036,
226
- 0x1038, 0x1038,
227
- 0x103B, 0x103F,
228
- 0x1050, 0x108F,
229
- 0x109A, 0x109D,
230
- 0x10A0, 0x10C5,
231
- 0x10C7, 0x10C7,
232
- 0x10CD, 0x10CD,
233
- 0x10D0, 0x10FA,
234
- 0x10FC, 0x1248,
235
- 0x124A, 0x124D,
236
- 0x1250, 0x1256,
237
- 0x1258, 0x1258,
238
- 0x125A, 0x125D,
239
- 0x1260, 0x1288,
240
- 0x128A, 0x128D,
241
- 0x1290, 0x12B0,
242
- 0x12B2, 0x12B5,
243
- 0x12B8, 0x12BE,
244
- 0x12C0, 0x12C0,
245
- 0x12C2, 0x12C5,
246
- 0x12C8, 0x12D6,
247
- 0x12D8, 0x1310,
248
- 0x1312, 0x1315,
249
- 0x1318, 0x135A,
250
- 0x1380, 0x138F,
251
- 0x13A0, 0x13F5,
252
- 0x13F8, 0x13FD,
253
- 0x1401, 0x166C,
254
- 0x166F, 0x167F,
255
- 0x1681, 0x169A,
256
- 0x16A0, 0x16EA,
257
- 0x16EE, 0x16F8,
258
- 0x1700, 0x1713,
259
- 0x171F, 0x1733,
260
- 0x1740, 0x1753,
261
- 0x1760, 0x176C,
262
- 0x176E, 0x1770,
263
- 0x1772, 0x1773,
264
- 0x1780, 0x17B3,
265
- 0x17B6, 0x17C8,
266
- 0x17D7, 0x17D7,
267
- 0x17DC, 0x17DC,
268
- 0x1820, 0x1878,
269
- 0x1880, 0x18AA,
270
- 0x18B0, 0x18F5,
271
- 0x1900, 0x191E,
272
- 0x1920, 0x192B,
273
- 0x1930, 0x1938,
274
- 0x1950, 0x196D,
275
- 0x1970, 0x1974,
276
- 0x1980, 0x19AB,
277
- 0x19B0, 0x19C9,
278
- 0x1A00, 0x1A1B,
279
- 0x1A20, 0x1A5E,
280
- 0x1A61, 0x1A74,
281
- 0x1AA7, 0x1AA7,
282
- 0x1ABF, 0x1AC0,
283
- 0x1ACC, 0x1ACE,
284
- 0x1B00, 0x1B33,
285
- 0x1B35, 0x1B43,
286
- 0x1B45, 0x1B4C,
287
- 0x1B80, 0x1BA9,
288
- 0x1BAC, 0x1BAF,
289
- 0x1BBA, 0x1BE5,
290
- 0x1BE7, 0x1BF1,
291
- 0x1C00, 0x1C36,
292
- 0x1C4D, 0x1C4F,
293
- 0x1C5A, 0x1C7D,
294
- 0x1C80, 0x1C88,
295
- 0x1C90, 0x1CBA,
296
- 0x1CBD, 0x1CBF,
297
- 0x1CE9, 0x1CEC,
298
- 0x1CEE, 0x1CF3,
299
- 0x1CF5, 0x1CF6,
300
- 0x1CFA, 0x1CFA,
301
- 0x1D00, 0x1DBF,
302
- 0x1DE7, 0x1DF4,
303
- 0x1E00, 0x1F15,
304
- 0x1F18, 0x1F1D,
305
- 0x1F20, 0x1F45,
306
- 0x1F48, 0x1F4D,
307
- 0x1F50, 0x1F57,
308
- 0x1F59, 0x1F59,
309
- 0x1F5B, 0x1F5B,
310
- 0x1F5D, 0x1F5D,
311
- 0x1F5F, 0x1F7D,
312
- 0x1F80, 0x1FB4,
313
- 0x1FB6, 0x1FBC,
314
- 0x1FBE, 0x1FBE,
315
- 0x1FC2, 0x1FC4,
316
- 0x1FC6, 0x1FCC,
317
- 0x1FD0, 0x1FD3,
318
- 0x1FD6, 0x1FDB,
319
- 0x1FE0, 0x1FEC,
320
- 0x1FF2, 0x1FF4,
321
- 0x1FF6, 0x1FFC,
322
- 0x2071, 0x2071,
323
- 0x207F, 0x207F,
324
- 0x2090, 0x209C,
325
- 0x2102, 0x2102,
326
- 0x2107, 0x2107,
327
- 0x210A, 0x2113,
328
- 0x2115, 0x2115,
329
- 0x2119, 0x211D,
330
- 0x2124, 0x2124,
331
- 0x2126, 0x2126,
332
- 0x2128, 0x2128,
333
- 0x212A, 0x212D,
334
- 0x212F, 0x2139,
335
- 0x213C, 0x213F,
336
- 0x2145, 0x2149,
337
- 0x214E, 0x214E,
338
- 0x2160, 0x2188,
339
- 0x24B6, 0x24E9,
340
- 0x2C00, 0x2CE4,
341
- 0x2CEB, 0x2CEE,
342
- 0x2CF2, 0x2CF3,
343
- 0x2D00, 0x2D25,
344
- 0x2D27, 0x2D27,
345
- 0x2D2D, 0x2D2D,
346
- 0x2D30, 0x2D67,
347
- 0x2D6F, 0x2D6F,
348
- 0x2D80, 0x2D96,
349
- 0x2DA0, 0x2DA6,
350
- 0x2DA8, 0x2DAE,
351
- 0x2DB0, 0x2DB6,
352
- 0x2DB8, 0x2DBE,
353
- 0x2DC0, 0x2DC6,
354
- 0x2DC8, 0x2DCE,
355
- 0x2DD0, 0x2DD6,
356
- 0x2DD8, 0x2DDE,
357
- 0x2DE0, 0x2DFF,
358
- 0x2E2F, 0x2E2F,
359
- 0x3005, 0x3007,
360
- 0x3021, 0x3029,
361
- 0x3031, 0x3035,
362
- 0x3038, 0x303C,
363
- 0x3041, 0x3096,
364
- 0x309D, 0x309F,
365
- 0x30A1, 0x30FA,
366
- 0x30FC, 0x30FF,
367
- 0x3105, 0x312F,
368
- 0x3131, 0x318E,
369
- 0x31A0, 0x31BF,
370
- 0x31F0, 0x31FF,
371
- 0x3400, 0x4DBF,
372
- 0x4E00, 0xA48C,
373
- 0xA4D0, 0xA4FD,
374
- 0xA500, 0xA60C,
375
- 0xA610, 0xA61F,
376
- 0xA62A, 0xA62B,
377
- 0xA640, 0xA66E,
378
- 0xA674, 0xA67B,
379
- 0xA67F, 0xA6EF,
380
- 0xA717, 0xA71F,
381
- 0xA722, 0xA788,
382
- 0xA78B, 0xA7CA,
383
- 0xA7D0, 0xA7D1,
384
- 0xA7D3, 0xA7D3,
385
- 0xA7D5, 0xA7D9,
386
- 0xA7F2, 0xA805,
387
- 0xA807, 0xA827,
388
- 0xA840, 0xA873,
389
- 0xA880, 0xA8C3,
390
- 0xA8C5, 0xA8C5,
391
- 0xA8F2, 0xA8F7,
392
- 0xA8FB, 0xA8FB,
393
- 0xA8FD, 0xA8FF,
394
- 0xA90A, 0xA92A,
395
- 0xA930, 0xA952,
396
- 0xA960, 0xA97C,
397
- 0xA980, 0xA9B2,
398
- 0xA9B4, 0xA9BF,
399
- 0xA9CF, 0xA9CF,
400
- 0xA9E0, 0xA9EF,
401
- 0xA9FA, 0xA9FE,
402
- 0xAA00, 0xAA36,
403
- 0xAA40, 0xAA4D,
404
- 0xAA60, 0xAA76,
405
- 0xAA7A, 0xAABE,
406
- 0xAAC0, 0xAAC0,
407
- 0xAAC2, 0xAAC2,
408
- 0xAADB, 0xAADD,
409
- 0xAAE0, 0xAAEF,
410
- 0xAAF2, 0xAAF5,
411
- 0xAB01, 0xAB06,
412
- 0xAB09, 0xAB0E,
413
- 0xAB11, 0xAB16,
414
- 0xAB20, 0xAB26,
415
- 0xAB28, 0xAB2E,
416
- 0xAB30, 0xAB5A,
417
- 0xAB5C, 0xAB69,
418
- 0xAB70, 0xABEA,
419
- 0xAC00, 0xD7A3,
420
- 0xD7B0, 0xD7C6,
421
- 0xD7CB, 0xD7FB,
422
- 0xF900, 0xFA6D,
423
- 0xFA70, 0xFAD9,
424
- 0xFB00, 0xFB06,
425
- 0xFB13, 0xFB17,
426
- 0xFB1D, 0xFB28,
427
- 0xFB2A, 0xFB36,
428
- 0xFB38, 0xFB3C,
429
- 0xFB3E, 0xFB3E,
430
- 0xFB40, 0xFB41,
431
- 0xFB43, 0xFB44,
432
- 0xFB46, 0xFBB1,
433
- 0xFBD3, 0xFD3D,
434
- 0xFD50, 0xFD8F,
435
- 0xFD92, 0xFDC7,
436
- 0xFDF0, 0xFDFB,
437
- 0xFE70, 0xFE74,
438
- 0xFE76, 0xFEFC,
439
- 0xFF21, 0xFF3A,
440
- 0xFF41, 0xFF5A,
441
- 0xFF66, 0xFFBE,
442
- 0xFFC2, 0xFFC7,
443
- 0xFFCA, 0xFFCF,
444
- 0xFFD2, 0xFFD7,
445
- 0xFFDA, 0xFFDC,
446
- 0x10000, 0x1000B,
447
- 0x1000D, 0x10026,
448
- 0x10028, 0x1003A,
449
- 0x1003C, 0x1003D,
450
- 0x1003F, 0x1004D,
451
- 0x10050, 0x1005D,
452
- 0x10080, 0x100FA,
453
- 0x10140, 0x10174,
454
- 0x10280, 0x1029C,
455
- 0x102A0, 0x102D0,
456
- 0x10300, 0x1031F,
457
- 0x1032D, 0x1034A,
458
- 0x10350, 0x1037A,
459
- 0x10380, 0x1039D,
460
- 0x103A0, 0x103C3,
461
- 0x103C8, 0x103CF,
462
- 0x103D1, 0x103D5,
463
- 0x10400, 0x1049D,
464
- 0x104B0, 0x104D3,
465
- 0x104D8, 0x104FB,
466
- 0x10500, 0x10527,
467
- 0x10530, 0x10563,
468
- 0x10570, 0x1057A,
469
- 0x1057C, 0x1058A,
470
- 0x1058C, 0x10592,
471
- 0x10594, 0x10595,
472
- 0x10597, 0x105A1,
473
- 0x105A3, 0x105B1,
474
- 0x105B3, 0x105B9,
475
- 0x105BB, 0x105BC,
476
- 0x10600, 0x10736,
477
- 0x10740, 0x10755,
478
- 0x10760, 0x10767,
479
- 0x10780, 0x10785,
480
- 0x10787, 0x107B0,
481
- 0x107B2, 0x107BA,
482
- 0x10800, 0x10805,
483
- 0x10808, 0x10808,
484
- 0x1080A, 0x10835,
485
- 0x10837, 0x10838,
486
- 0x1083C, 0x1083C,
487
- 0x1083F, 0x10855,
488
- 0x10860, 0x10876,
489
- 0x10880, 0x1089E,
490
- 0x108E0, 0x108F2,
491
- 0x108F4, 0x108F5,
492
- 0x10900, 0x10915,
493
- 0x10920, 0x10939,
494
- 0x10980, 0x109B7,
495
- 0x109BE, 0x109BF,
496
- 0x10A00, 0x10A03,
497
- 0x10A05, 0x10A06,
498
- 0x10A0C, 0x10A13,
499
- 0x10A15, 0x10A17,
500
- 0x10A19, 0x10A35,
501
- 0x10A60, 0x10A7C,
502
- 0x10A80, 0x10A9C,
503
- 0x10AC0, 0x10AC7,
504
- 0x10AC9, 0x10AE4,
505
- 0x10B00, 0x10B35,
506
- 0x10B40, 0x10B55,
507
- 0x10B60, 0x10B72,
508
- 0x10B80, 0x10B91,
509
- 0x10C00, 0x10C48,
510
- 0x10C80, 0x10CB2,
511
- 0x10CC0, 0x10CF2,
512
- 0x10D00, 0x10D27,
513
- 0x10E80, 0x10EA9,
514
- 0x10EAB, 0x10EAC,
515
- 0x10EB0, 0x10EB1,
516
- 0x10F00, 0x10F1C,
517
- 0x10F27, 0x10F27,
518
- 0x10F30, 0x10F45,
519
- 0x10F70, 0x10F81,
520
- 0x10FB0, 0x10FC4,
521
- 0x10FE0, 0x10FF6,
522
- 0x11000, 0x11045,
523
- 0x11071, 0x11075,
524
- 0x11080, 0x110B8,
525
- 0x110C2, 0x110C2,
526
- 0x110D0, 0x110E8,
527
- 0x11100, 0x11132,
528
- 0x11144, 0x11147,
529
- 0x11150, 0x11172,
530
- 0x11176, 0x11176,
531
- 0x11180, 0x111BF,
532
- 0x111C1, 0x111C4,
533
- 0x111CE, 0x111CF,
534
- 0x111DA, 0x111DA,
535
- 0x111DC, 0x111DC,
536
- 0x11200, 0x11211,
537
- 0x11213, 0x11234,
538
- 0x11237, 0x11237,
539
- 0x1123E, 0x11241,
540
- 0x11280, 0x11286,
541
- 0x11288, 0x11288,
542
- 0x1128A, 0x1128D,
543
- 0x1128F, 0x1129D,
544
- 0x1129F, 0x112A8,
545
- 0x112B0, 0x112E8,
546
- 0x11300, 0x11303,
547
- 0x11305, 0x1130C,
548
- 0x1130F, 0x11310,
549
- 0x11313, 0x11328,
550
- 0x1132A, 0x11330,
551
- 0x11332, 0x11333,
552
- 0x11335, 0x11339,
553
- 0x1133D, 0x11344,
554
- 0x11347, 0x11348,
555
- 0x1134B, 0x1134C,
556
- 0x11350, 0x11350,
557
- 0x11357, 0x11357,
558
- 0x1135D, 0x11363,
559
- 0x11400, 0x11441,
560
- 0x11443, 0x11445,
561
- 0x11447, 0x1144A,
562
- 0x1145F, 0x11461,
563
- 0x11480, 0x114C1,
564
- 0x114C4, 0x114C5,
565
- 0x114C7, 0x114C7,
566
- 0x11580, 0x115B5,
567
- 0x115B8, 0x115BE,
568
- 0x115D8, 0x115DD,
569
- 0x11600, 0x1163E,
570
- 0x11640, 0x11640,
571
- 0x11644, 0x11644,
572
- 0x11680, 0x116B5,
573
- 0x116B8, 0x116B8,
574
- 0x11700, 0x1171A,
575
- 0x1171D, 0x1172A,
576
- 0x11740, 0x11746,
577
- 0x11800, 0x11838,
578
- 0x118A0, 0x118DF,
579
- 0x118FF, 0x11906,
580
- 0x11909, 0x11909,
581
- 0x1190C, 0x11913,
582
- 0x11915, 0x11916,
583
- 0x11918, 0x11935,
584
- 0x11937, 0x11938,
585
- 0x1193B, 0x1193C,
586
- 0x1193F, 0x11942,
587
- 0x119A0, 0x119A7,
588
- 0x119AA, 0x119D7,
589
- 0x119DA, 0x119DF,
590
- 0x119E1, 0x119E1,
591
- 0x119E3, 0x119E4,
592
- 0x11A00, 0x11A32,
593
- 0x11A35, 0x11A3E,
594
- 0x11A50, 0x11A97,
595
- 0x11A9D, 0x11A9D,
596
- 0x11AB0, 0x11AF8,
597
- 0x11C00, 0x11C08,
598
- 0x11C0A, 0x11C36,
599
- 0x11C38, 0x11C3E,
600
- 0x11C40, 0x11C40,
601
- 0x11C72, 0x11C8F,
602
- 0x11C92, 0x11CA7,
603
- 0x11CA9, 0x11CB6,
604
- 0x11D00, 0x11D06,
605
- 0x11D08, 0x11D09,
606
- 0x11D0B, 0x11D36,
607
- 0x11D3A, 0x11D3A,
608
- 0x11D3C, 0x11D3D,
609
- 0x11D3F, 0x11D41,
610
- 0x11D43, 0x11D43,
611
- 0x11D46, 0x11D47,
612
- 0x11D60, 0x11D65,
613
- 0x11D67, 0x11D68,
614
- 0x11D6A, 0x11D8E,
615
- 0x11D90, 0x11D91,
616
- 0x11D93, 0x11D96,
617
- 0x11D98, 0x11D98,
618
- 0x11EE0, 0x11EF6,
619
- 0x11F00, 0x11F10,
620
- 0x11F12, 0x11F3A,
621
- 0x11F3E, 0x11F40,
622
- 0x11FB0, 0x11FB0,
623
- 0x12000, 0x12399,
624
- 0x12400, 0x1246E,
625
- 0x12480, 0x12543,
626
- 0x12F90, 0x12FF0,
627
- 0x13000, 0x1342F,
628
- 0x13441, 0x13446,
629
- 0x14400, 0x14646,
630
- 0x16800, 0x16A38,
631
- 0x16A40, 0x16A5E,
632
- 0x16A70, 0x16ABE,
633
- 0x16AD0, 0x16AED,
634
- 0x16B00, 0x16B2F,
635
- 0x16B40, 0x16B43,
636
- 0x16B63, 0x16B77,
637
- 0x16B7D, 0x16B8F,
638
- 0x16E40, 0x16E7F,
639
- 0x16F00, 0x16F4A,
640
- 0x16F4F, 0x16F87,
641
- 0x16F8F, 0x16F9F,
642
- 0x16FE0, 0x16FE1,
643
- 0x16FE3, 0x16FE3,
644
- 0x16FF0, 0x16FF1,
645
- 0x17000, 0x187F7,
646
- 0x18800, 0x18CD5,
647
- 0x18D00, 0x18D08,
648
- 0x1AFF0, 0x1AFF3,
649
- 0x1AFF5, 0x1AFFB,
650
- 0x1AFFD, 0x1AFFE,
651
- 0x1B000, 0x1B122,
652
- 0x1B132, 0x1B132,
653
- 0x1B150, 0x1B152,
654
- 0x1B155, 0x1B155,
655
- 0x1B164, 0x1B167,
656
- 0x1B170, 0x1B2FB,
657
- 0x1BC00, 0x1BC6A,
658
- 0x1BC70, 0x1BC7C,
659
- 0x1BC80, 0x1BC88,
660
- 0x1BC90, 0x1BC99,
661
- 0x1BC9E, 0x1BC9E,
662
- 0x1D400, 0x1D454,
663
- 0x1D456, 0x1D49C,
664
- 0x1D49E, 0x1D49F,
665
- 0x1D4A2, 0x1D4A2,
666
- 0x1D4A5, 0x1D4A6,
667
- 0x1D4A9, 0x1D4AC,
668
- 0x1D4AE, 0x1D4B9,
669
- 0x1D4BB, 0x1D4BB,
670
- 0x1D4BD, 0x1D4C3,
671
- 0x1D4C5, 0x1D505,
672
- 0x1D507, 0x1D50A,
673
- 0x1D50D, 0x1D514,
674
- 0x1D516, 0x1D51C,
675
- 0x1D51E, 0x1D539,
676
- 0x1D53B, 0x1D53E,
677
- 0x1D540, 0x1D544,
678
- 0x1D546, 0x1D546,
679
- 0x1D54A, 0x1D550,
680
- 0x1D552, 0x1D6A5,
681
- 0x1D6A8, 0x1D6C0,
682
- 0x1D6C2, 0x1D6DA,
683
- 0x1D6DC, 0x1D6FA,
684
- 0x1D6FC, 0x1D714,
685
- 0x1D716, 0x1D734,
686
- 0x1D736, 0x1D74E,
687
- 0x1D750, 0x1D76E,
688
- 0x1D770, 0x1D788,
689
- 0x1D78A, 0x1D7A8,
690
- 0x1D7AA, 0x1D7C2,
691
- 0x1D7C4, 0x1D7CB,
692
- 0x1DF00, 0x1DF1E,
693
- 0x1DF25, 0x1DF2A,
694
- 0x1E000, 0x1E006,
695
- 0x1E008, 0x1E018,
696
- 0x1E01B, 0x1E021,
697
- 0x1E023, 0x1E024,
698
- 0x1E026, 0x1E02A,
699
- 0x1E030, 0x1E06D,
700
- 0x1E08F, 0x1E08F,
701
- 0x1E100, 0x1E12C,
702
- 0x1E137, 0x1E13D,
703
- 0x1E14E, 0x1E14E,
704
- 0x1E290, 0x1E2AD,
705
- 0x1E2C0, 0x1E2EB,
706
- 0x1E4D0, 0x1E4EB,
707
- 0x1E7E0, 0x1E7E6,
708
- 0x1E7E8, 0x1E7EB,
709
- 0x1E7ED, 0x1E7EE,
710
- 0x1E7F0, 0x1E7FE,
711
- 0x1E800, 0x1E8C4,
712
- 0x1E900, 0x1E943,
713
- 0x1E947, 0x1E947,
714
- 0x1E94B, 0x1E94B,
715
- 0x1EE00, 0x1EE03,
716
- 0x1EE05, 0x1EE1F,
717
- 0x1EE21, 0x1EE22,
718
- 0x1EE24, 0x1EE24,
719
- 0x1EE27, 0x1EE27,
720
- 0x1EE29, 0x1EE32,
721
- 0x1EE34, 0x1EE37,
722
- 0x1EE39, 0x1EE39,
723
- 0x1EE3B, 0x1EE3B,
724
- 0x1EE42, 0x1EE42,
725
- 0x1EE47, 0x1EE47,
726
- 0x1EE49, 0x1EE49,
727
- 0x1EE4B, 0x1EE4B,
728
- 0x1EE4D, 0x1EE4F,
729
- 0x1EE51, 0x1EE52,
730
- 0x1EE54, 0x1EE54,
731
- 0x1EE57, 0x1EE57,
732
- 0x1EE59, 0x1EE59,
733
- 0x1EE5B, 0x1EE5B,
734
- 0x1EE5D, 0x1EE5D,
735
- 0x1EE5F, 0x1EE5F,
736
- 0x1EE61, 0x1EE62,
737
- 0x1EE64, 0x1EE64,
738
- 0x1EE67, 0x1EE6A,
739
- 0x1EE6C, 0x1EE72,
740
- 0x1EE74, 0x1EE77,
741
- 0x1EE79, 0x1EE7C,
742
- 0x1EE7E, 0x1EE7E,
743
- 0x1EE80, 0x1EE89,
744
- 0x1EE8B, 0x1EE9B,
745
- 0x1EEA1, 0x1EEA3,
746
- 0x1EEA5, 0x1EEA9,
747
- 0x1EEAB, 0x1EEBB,
748
- 0x1F130, 0x1F149,
749
- 0x1F150, 0x1F169,
750
- 0x1F170, 0x1F189,
751
- 0x20000, 0x2A6DF,
752
- 0x2A700, 0x2B739,
753
- 0x2B740, 0x2B81D,
754
- 0x2B820, 0x2CEA1,
755
- 0x2CEB0, 0x2EBE0,
756
- 0x2F800, 0x2FA1D,
757
- 0x30000, 0x3134A,
758
- 0x31350, 0x323AF,
759
- };
760
-
761
- #define UNICODE_ALNUM_CODEPOINTS_LENGTH 1528
762
- static const pm_unicode_codepoint_t unicode_alnum_codepoints[UNICODE_ALNUM_CODEPOINTS_LENGTH] = {
763
- 0x100, 0x2C1,
764
- 0x2C6, 0x2D1,
765
- 0x2E0, 0x2E4,
766
- 0x2EC, 0x2EC,
767
- 0x2EE, 0x2EE,
768
- 0x345, 0x345,
769
- 0x370, 0x374,
770
- 0x376, 0x377,
771
- 0x37A, 0x37D,
772
- 0x37F, 0x37F,
773
- 0x386, 0x386,
774
- 0x388, 0x38A,
775
- 0x38C, 0x38C,
776
- 0x38E, 0x3A1,
777
- 0x3A3, 0x3F5,
778
- 0x3F7, 0x481,
779
- 0x48A, 0x52F,
780
- 0x531, 0x556,
781
- 0x559, 0x559,
782
- 0x560, 0x588,
783
- 0x5B0, 0x5BD,
784
- 0x5BF, 0x5BF,
785
- 0x5C1, 0x5C2,
786
- 0x5C4, 0x5C5,
787
- 0x5C7, 0x5C7,
788
- 0x5D0, 0x5EA,
789
- 0x5EF, 0x5F2,
790
- 0x610, 0x61A,
791
- 0x620, 0x657,
792
- 0x659, 0x669,
793
- 0x66E, 0x6D3,
794
- 0x6D5, 0x6DC,
795
- 0x6E1, 0x6E8,
796
- 0x6ED, 0x6FC,
797
- 0x6FF, 0x6FF,
798
- 0x710, 0x73F,
799
- 0x74D, 0x7B1,
800
- 0x7C0, 0x7EA,
801
- 0x7F4, 0x7F5,
802
- 0x7FA, 0x7FA,
803
- 0x800, 0x817,
804
- 0x81A, 0x82C,
805
- 0x840, 0x858,
806
- 0x860, 0x86A,
807
- 0x870, 0x887,
808
- 0x889, 0x88E,
809
- 0x8A0, 0x8C9,
810
- 0x8D4, 0x8DF,
811
- 0x8E3, 0x8E9,
812
- 0x8F0, 0x93B,
813
- 0x93D, 0x94C,
814
- 0x94E, 0x950,
815
- 0x955, 0x963,
816
- 0x966, 0x96F,
817
- 0x971, 0x983,
818
- 0x985, 0x98C,
819
- 0x98F, 0x990,
820
- 0x993, 0x9A8,
821
- 0x9AA, 0x9B0,
822
- 0x9B2, 0x9B2,
823
- 0x9B6, 0x9B9,
824
- 0x9BD, 0x9C4,
825
- 0x9C7, 0x9C8,
826
- 0x9CB, 0x9CC,
827
- 0x9CE, 0x9CE,
828
- 0x9D7, 0x9D7,
829
- 0x9DC, 0x9DD,
830
- 0x9DF, 0x9E3,
831
- 0x9E6, 0x9F1,
832
- 0x9FC, 0x9FC,
833
- 0xA01, 0xA03,
834
- 0xA05, 0xA0A,
835
- 0xA0F, 0xA10,
836
- 0xA13, 0xA28,
837
- 0xA2A, 0xA30,
838
- 0xA32, 0xA33,
839
- 0xA35, 0xA36,
840
- 0xA38, 0xA39,
841
- 0xA3E, 0xA42,
842
- 0xA47, 0xA48,
843
- 0xA4B, 0xA4C,
844
- 0xA51, 0xA51,
845
- 0xA59, 0xA5C,
846
- 0xA5E, 0xA5E,
847
- 0xA66, 0xA75,
848
- 0xA81, 0xA83,
849
- 0xA85, 0xA8D,
850
- 0xA8F, 0xA91,
851
- 0xA93, 0xAA8,
852
- 0xAAA, 0xAB0,
853
- 0xAB2, 0xAB3,
854
- 0xAB5, 0xAB9,
855
- 0xABD, 0xAC5,
856
- 0xAC7, 0xAC9,
857
- 0xACB, 0xACC,
858
- 0xAD0, 0xAD0,
859
- 0xAE0, 0xAE3,
860
- 0xAE6, 0xAEF,
861
- 0xAF9, 0xAFC,
862
- 0xB01, 0xB03,
863
- 0xB05, 0xB0C,
864
- 0xB0F, 0xB10,
865
- 0xB13, 0xB28,
866
- 0xB2A, 0xB30,
867
- 0xB32, 0xB33,
868
- 0xB35, 0xB39,
869
- 0xB3D, 0xB44,
870
- 0xB47, 0xB48,
871
- 0xB4B, 0xB4C,
872
- 0xB56, 0xB57,
873
- 0xB5C, 0xB5D,
874
- 0xB5F, 0xB63,
875
- 0xB66, 0xB6F,
876
- 0xB71, 0xB71,
877
- 0xB82, 0xB83,
878
- 0xB85, 0xB8A,
879
- 0xB8E, 0xB90,
880
- 0xB92, 0xB95,
881
- 0xB99, 0xB9A,
882
- 0xB9C, 0xB9C,
883
- 0xB9E, 0xB9F,
884
- 0xBA3, 0xBA4,
885
- 0xBA8, 0xBAA,
886
- 0xBAE, 0xBB9,
887
- 0xBBE, 0xBC2,
888
- 0xBC6, 0xBC8,
889
- 0xBCA, 0xBCC,
890
- 0xBD0, 0xBD0,
891
- 0xBD7, 0xBD7,
892
- 0xBE6, 0xBEF,
893
- 0xC00, 0xC0C,
894
- 0xC0E, 0xC10,
895
- 0xC12, 0xC28,
896
- 0xC2A, 0xC39,
897
- 0xC3D, 0xC44,
898
- 0xC46, 0xC48,
899
- 0xC4A, 0xC4C,
900
- 0xC55, 0xC56,
901
- 0xC58, 0xC5A,
902
- 0xC5D, 0xC5D,
903
- 0xC60, 0xC63,
904
- 0xC66, 0xC6F,
905
- 0xC80, 0xC83,
906
- 0xC85, 0xC8C,
907
- 0xC8E, 0xC90,
908
- 0xC92, 0xCA8,
909
- 0xCAA, 0xCB3,
910
- 0xCB5, 0xCB9,
911
- 0xCBD, 0xCC4,
912
- 0xCC6, 0xCC8,
913
- 0xCCA, 0xCCC,
914
- 0xCD5, 0xCD6,
915
- 0xCDD, 0xCDE,
916
- 0xCE0, 0xCE3,
917
- 0xCE6, 0xCEF,
918
- 0xCF1, 0xCF3,
919
- 0xD00, 0xD0C,
920
- 0xD0E, 0xD10,
921
- 0xD12, 0xD3A,
922
- 0xD3D, 0xD44,
923
- 0xD46, 0xD48,
924
- 0xD4A, 0xD4C,
925
- 0xD4E, 0xD4E,
926
- 0xD54, 0xD57,
927
- 0xD5F, 0xD63,
928
- 0xD66, 0xD6F,
929
- 0xD7A, 0xD7F,
930
- 0xD81, 0xD83,
931
- 0xD85, 0xD96,
932
- 0xD9A, 0xDB1,
933
- 0xDB3, 0xDBB,
934
- 0xDBD, 0xDBD,
935
- 0xDC0, 0xDC6,
936
- 0xDCF, 0xDD4,
937
- 0xDD6, 0xDD6,
938
- 0xDD8, 0xDDF,
939
- 0xDE6, 0xDEF,
940
- 0xDF2, 0xDF3,
941
- 0xE01, 0xE3A,
942
- 0xE40, 0xE46,
943
- 0xE4D, 0xE4D,
944
- 0xE50, 0xE59,
945
- 0xE81, 0xE82,
946
- 0xE84, 0xE84,
947
- 0xE86, 0xE8A,
948
- 0xE8C, 0xEA3,
949
- 0xEA5, 0xEA5,
950
- 0xEA7, 0xEB9,
951
- 0xEBB, 0xEBD,
952
- 0xEC0, 0xEC4,
953
- 0xEC6, 0xEC6,
954
- 0xECD, 0xECD,
955
- 0xED0, 0xED9,
956
- 0xEDC, 0xEDF,
957
- 0xF00, 0xF00,
958
- 0xF20, 0xF29,
959
- 0xF40, 0xF47,
960
- 0xF49, 0xF6C,
961
- 0xF71, 0xF83,
962
- 0xF88, 0xF97,
963
- 0xF99, 0xFBC,
964
- 0x1000, 0x1036,
965
- 0x1038, 0x1038,
966
- 0x103B, 0x1049,
967
- 0x1050, 0x109D,
968
- 0x10A0, 0x10C5,
969
- 0x10C7, 0x10C7,
970
- 0x10CD, 0x10CD,
971
- 0x10D0, 0x10FA,
972
- 0x10FC, 0x1248,
973
- 0x124A, 0x124D,
974
- 0x1250, 0x1256,
975
- 0x1258, 0x1258,
976
- 0x125A, 0x125D,
977
- 0x1260, 0x1288,
978
- 0x128A, 0x128D,
979
- 0x1290, 0x12B0,
980
- 0x12B2, 0x12B5,
981
- 0x12B8, 0x12BE,
982
- 0x12C0, 0x12C0,
983
- 0x12C2, 0x12C5,
984
- 0x12C8, 0x12D6,
985
- 0x12D8, 0x1310,
986
- 0x1312, 0x1315,
987
- 0x1318, 0x135A,
988
- 0x1380, 0x138F,
989
- 0x13A0, 0x13F5,
990
- 0x13F8, 0x13FD,
991
- 0x1401, 0x166C,
992
- 0x166F, 0x167F,
993
- 0x1681, 0x169A,
994
- 0x16A0, 0x16EA,
995
- 0x16EE, 0x16F8,
996
- 0x1700, 0x1713,
997
- 0x171F, 0x1733,
998
- 0x1740, 0x1753,
999
- 0x1760, 0x176C,
1000
- 0x176E, 0x1770,
1001
- 0x1772, 0x1773,
1002
- 0x1780, 0x17B3,
1003
- 0x17B6, 0x17C8,
1004
- 0x17D7, 0x17D7,
1005
- 0x17DC, 0x17DC,
1006
- 0x17E0, 0x17E9,
1007
- 0x1810, 0x1819,
1008
- 0x1820, 0x1878,
1009
- 0x1880, 0x18AA,
1010
- 0x18B0, 0x18F5,
1011
- 0x1900, 0x191E,
1012
- 0x1920, 0x192B,
1013
- 0x1930, 0x1938,
1014
- 0x1946, 0x196D,
1015
- 0x1970, 0x1974,
1016
- 0x1980, 0x19AB,
1017
- 0x19B0, 0x19C9,
1018
- 0x19D0, 0x19D9,
1019
- 0x1A00, 0x1A1B,
1020
- 0x1A20, 0x1A5E,
1021
- 0x1A61, 0x1A74,
1022
- 0x1A80, 0x1A89,
1023
- 0x1A90, 0x1A99,
1024
- 0x1AA7, 0x1AA7,
1025
- 0x1ABF, 0x1AC0,
1026
- 0x1ACC, 0x1ACE,
1027
- 0x1B00, 0x1B33,
1028
- 0x1B35, 0x1B43,
1029
- 0x1B45, 0x1B4C,
1030
- 0x1B50, 0x1B59,
1031
- 0x1B80, 0x1BA9,
1032
- 0x1BAC, 0x1BE5,
1033
- 0x1BE7, 0x1BF1,
1034
- 0x1C00, 0x1C36,
1035
- 0x1C40, 0x1C49,
1036
- 0x1C4D, 0x1C7D,
1037
- 0x1C80, 0x1C88,
1038
- 0x1C90, 0x1CBA,
1039
- 0x1CBD, 0x1CBF,
1040
- 0x1CE9, 0x1CEC,
1041
- 0x1CEE, 0x1CF3,
1042
- 0x1CF5, 0x1CF6,
1043
- 0x1CFA, 0x1CFA,
1044
- 0x1D00, 0x1DBF,
1045
- 0x1DE7, 0x1DF4,
1046
- 0x1E00, 0x1F15,
1047
- 0x1F18, 0x1F1D,
1048
- 0x1F20, 0x1F45,
1049
- 0x1F48, 0x1F4D,
1050
- 0x1F50, 0x1F57,
1051
- 0x1F59, 0x1F59,
1052
- 0x1F5B, 0x1F5B,
1053
- 0x1F5D, 0x1F5D,
1054
- 0x1F5F, 0x1F7D,
1055
- 0x1F80, 0x1FB4,
1056
- 0x1FB6, 0x1FBC,
1057
- 0x1FBE, 0x1FBE,
1058
- 0x1FC2, 0x1FC4,
1059
- 0x1FC6, 0x1FCC,
1060
- 0x1FD0, 0x1FD3,
1061
- 0x1FD6, 0x1FDB,
1062
- 0x1FE0, 0x1FEC,
1063
- 0x1FF2, 0x1FF4,
1064
- 0x1FF6, 0x1FFC,
1065
- 0x2071, 0x2071,
1066
- 0x207F, 0x207F,
1067
- 0x2090, 0x209C,
1068
- 0x2102, 0x2102,
1069
- 0x2107, 0x2107,
1070
- 0x210A, 0x2113,
1071
- 0x2115, 0x2115,
1072
- 0x2119, 0x211D,
1073
- 0x2124, 0x2124,
1074
- 0x2126, 0x2126,
1075
- 0x2128, 0x2128,
1076
- 0x212A, 0x212D,
1077
- 0x212F, 0x2139,
1078
- 0x213C, 0x213F,
1079
- 0x2145, 0x2149,
1080
- 0x214E, 0x214E,
1081
- 0x2160, 0x2188,
1082
- 0x24B6, 0x24E9,
1083
- 0x2C00, 0x2CE4,
1084
- 0x2CEB, 0x2CEE,
1085
- 0x2CF2, 0x2CF3,
1086
- 0x2D00, 0x2D25,
1087
- 0x2D27, 0x2D27,
1088
- 0x2D2D, 0x2D2D,
1089
- 0x2D30, 0x2D67,
1090
- 0x2D6F, 0x2D6F,
1091
- 0x2D80, 0x2D96,
1092
- 0x2DA0, 0x2DA6,
1093
- 0x2DA8, 0x2DAE,
1094
- 0x2DB0, 0x2DB6,
1095
- 0x2DB8, 0x2DBE,
1096
- 0x2DC0, 0x2DC6,
1097
- 0x2DC8, 0x2DCE,
1098
- 0x2DD0, 0x2DD6,
1099
- 0x2DD8, 0x2DDE,
1100
- 0x2DE0, 0x2DFF,
1101
- 0x2E2F, 0x2E2F,
1102
- 0x3005, 0x3007,
1103
- 0x3021, 0x3029,
1104
- 0x3031, 0x3035,
1105
- 0x3038, 0x303C,
1106
- 0x3041, 0x3096,
1107
- 0x309D, 0x309F,
1108
- 0x30A1, 0x30FA,
1109
- 0x30FC, 0x30FF,
1110
- 0x3105, 0x312F,
1111
- 0x3131, 0x318E,
1112
- 0x31A0, 0x31BF,
1113
- 0x31F0, 0x31FF,
1114
- 0x3400, 0x4DBF,
1115
- 0x4E00, 0xA48C,
1116
- 0xA4D0, 0xA4FD,
1117
- 0xA500, 0xA60C,
1118
- 0xA610, 0xA62B,
1119
- 0xA640, 0xA66E,
1120
- 0xA674, 0xA67B,
1121
- 0xA67F, 0xA6EF,
1122
- 0xA717, 0xA71F,
1123
- 0xA722, 0xA788,
1124
- 0xA78B, 0xA7CA,
1125
- 0xA7D0, 0xA7D1,
1126
- 0xA7D3, 0xA7D3,
1127
- 0xA7D5, 0xA7D9,
1128
- 0xA7F2, 0xA805,
1129
- 0xA807, 0xA827,
1130
- 0xA840, 0xA873,
1131
- 0xA880, 0xA8C3,
1132
- 0xA8C5, 0xA8C5,
1133
- 0xA8D0, 0xA8D9,
1134
- 0xA8F2, 0xA8F7,
1135
- 0xA8FB, 0xA8FB,
1136
- 0xA8FD, 0xA92A,
1137
- 0xA930, 0xA952,
1138
- 0xA960, 0xA97C,
1139
- 0xA980, 0xA9B2,
1140
- 0xA9B4, 0xA9BF,
1141
- 0xA9CF, 0xA9D9,
1142
- 0xA9E0, 0xA9FE,
1143
- 0xAA00, 0xAA36,
1144
- 0xAA40, 0xAA4D,
1145
- 0xAA50, 0xAA59,
1146
- 0xAA60, 0xAA76,
1147
- 0xAA7A, 0xAABE,
1148
- 0xAAC0, 0xAAC0,
1149
- 0xAAC2, 0xAAC2,
1150
- 0xAADB, 0xAADD,
1151
- 0xAAE0, 0xAAEF,
1152
- 0xAAF2, 0xAAF5,
1153
- 0xAB01, 0xAB06,
1154
- 0xAB09, 0xAB0E,
1155
- 0xAB11, 0xAB16,
1156
- 0xAB20, 0xAB26,
1157
- 0xAB28, 0xAB2E,
1158
- 0xAB30, 0xAB5A,
1159
- 0xAB5C, 0xAB69,
1160
- 0xAB70, 0xABEA,
1161
- 0xABF0, 0xABF9,
1162
- 0xAC00, 0xD7A3,
1163
- 0xD7B0, 0xD7C6,
1164
- 0xD7CB, 0xD7FB,
1165
- 0xF900, 0xFA6D,
1166
- 0xFA70, 0xFAD9,
1167
- 0xFB00, 0xFB06,
1168
- 0xFB13, 0xFB17,
1169
- 0xFB1D, 0xFB28,
1170
- 0xFB2A, 0xFB36,
1171
- 0xFB38, 0xFB3C,
1172
- 0xFB3E, 0xFB3E,
1173
- 0xFB40, 0xFB41,
1174
- 0xFB43, 0xFB44,
1175
- 0xFB46, 0xFBB1,
1176
- 0xFBD3, 0xFD3D,
1177
- 0xFD50, 0xFD8F,
1178
- 0xFD92, 0xFDC7,
1179
- 0xFDF0, 0xFDFB,
1180
- 0xFE70, 0xFE74,
1181
- 0xFE76, 0xFEFC,
1182
- 0xFF10, 0xFF19,
1183
- 0xFF21, 0xFF3A,
1184
- 0xFF41, 0xFF5A,
1185
- 0xFF66, 0xFFBE,
1186
- 0xFFC2, 0xFFC7,
1187
- 0xFFCA, 0xFFCF,
1188
- 0xFFD2, 0xFFD7,
1189
- 0xFFDA, 0xFFDC,
1190
- 0x10000, 0x1000B,
1191
- 0x1000D, 0x10026,
1192
- 0x10028, 0x1003A,
1193
- 0x1003C, 0x1003D,
1194
- 0x1003F, 0x1004D,
1195
- 0x10050, 0x1005D,
1196
- 0x10080, 0x100FA,
1197
- 0x10140, 0x10174,
1198
- 0x10280, 0x1029C,
1199
- 0x102A0, 0x102D0,
1200
- 0x10300, 0x1031F,
1201
- 0x1032D, 0x1034A,
1202
- 0x10350, 0x1037A,
1203
- 0x10380, 0x1039D,
1204
- 0x103A0, 0x103C3,
1205
- 0x103C8, 0x103CF,
1206
- 0x103D1, 0x103D5,
1207
- 0x10400, 0x1049D,
1208
- 0x104A0, 0x104A9,
1209
- 0x104B0, 0x104D3,
1210
- 0x104D8, 0x104FB,
1211
- 0x10500, 0x10527,
1212
- 0x10530, 0x10563,
1213
- 0x10570, 0x1057A,
1214
- 0x1057C, 0x1058A,
1215
- 0x1058C, 0x10592,
1216
- 0x10594, 0x10595,
1217
- 0x10597, 0x105A1,
1218
- 0x105A3, 0x105B1,
1219
- 0x105B3, 0x105B9,
1220
- 0x105BB, 0x105BC,
1221
- 0x10600, 0x10736,
1222
- 0x10740, 0x10755,
1223
- 0x10760, 0x10767,
1224
- 0x10780, 0x10785,
1225
- 0x10787, 0x107B0,
1226
- 0x107B2, 0x107BA,
1227
- 0x10800, 0x10805,
1228
- 0x10808, 0x10808,
1229
- 0x1080A, 0x10835,
1230
- 0x10837, 0x10838,
1231
- 0x1083C, 0x1083C,
1232
- 0x1083F, 0x10855,
1233
- 0x10860, 0x10876,
1234
- 0x10880, 0x1089E,
1235
- 0x108E0, 0x108F2,
1236
- 0x108F4, 0x108F5,
1237
- 0x10900, 0x10915,
1238
- 0x10920, 0x10939,
1239
- 0x10980, 0x109B7,
1240
- 0x109BE, 0x109BF,
1241
- 0x10A00, 0x10A03,
1242
- 0x10A05, 0x10A06,
1243
- 0x10A0C, 0x10A13,
1244
- 0x10A15, 0x10A17,
1245
- 0x10A19, 0x10A35,
1246
- 0x10A60, 0x10A7C,
1247
- 0x10A80, 0x10A9C,
1248
- 0x10AC0, 0x10AC7,
1249
- 0x10AC9, 0x10AE4,
1250
- 0x10B00, 0x10B35,
1251
- 0x10B40, 0x10B55,
1252
- 0x10B60, 0x10B72,
1253
- 0x10B80, 0x10B91,
1254
- 0x10C00, 0x10C48,
1255
- 0x10C80, 0x10CB2,
1256
- 0x10CC0, 0x10CF2,
1257
- 0x10D00, 0x10D27,
1258
- 0x10D30, 0x10D39,
1259
- 0x10E80, 0x10EA9,
1260
- 0x10EAB, 0x10EAC,
1261
- 0x10EB0, 0x10EB1,
1262
- 0x10F00, 0x10F1C,
1263
- 0x10F27, 0x10F27,
1264
- 0x10F30, 0x10F45,
1265
- 0x10F70, 0x10F81,
1266
- 0x10FB0, 0x10FC4,
1267
- 0x10FE0, 0x10FF6,
1268
- 0x11000, 0x11045,
1269
- 0x11066, 0x1106F,
1270
- 0x11071, 0x11075,
1271
- 0x11080, 0x110B8,
1272
- 0x110C2, 0x110C2,
1273
- 0x110D0, 0x110E8,
1274
- 0x110F0, 0x110F9,
1275
- 0x11100, 0x11132,
1276
- 0x11136, 0x1113F,
1277
- 0x11144, 0x11147,
1278
- 0x11150, 0x11172,
1279
- 0x11176, 0x11176,
1280
- 0x11180, 0x111BF,
1281
- 0x111C1, 0x111C4,
1282
- 0x111CE, 0x111DA,
1283
- 0x111DC, 0x111DC,
1284
- 0x11200, 0x11211,
1285
- 0x11213, 0x11234,
1286
- 0x11237, 0x11237,
1287
- 0x1123E, 0x11241,
1288
- 0x11280, 0x11286,
1289
- 0x11288, 0x11288,
1290
- 0x1128A, 0x1128D,
1291
- 0x1128F, 0x1129D,
1292
- 0x1129F, 0x112A8,
1293
- 0x112B0, 0x112E8,
1294
- 0x112F0, 0x112F9,
1295
- 0x11300, 0x11303,
1296
- 0x11305, 0x1130C,
1297
- 0x1130F, 0x11310,
1298
- 0x11313, 0x11328,
1299
- 0x1132A, 0x11330,
1300
- 0x11332, 0x11333,
1301
- 0x11335, 0x11339,
1302
- 0x1133D, 0x11344,
1303
- 0x11347, 0x11348,
1304
- 0x1134B, 0x1134C,
1305
- 0x11350, 0x11350,
1306
- 0x11357, 0x11357,
1307
- 0x1135D, 0x11363,
1308
- 0x11400, 0x11441,
1309
- 0x11443, 0x11445,
1310
- 0x11447, 0x1144A,
1311
- 0x11450, 0x11459,
1312
- 0x1145F, 0x11461,
1313
- 0x11480, 0x114C1,
1314
- 0x114C4, 0x114C5,
1315
- 0x114C7, 0x114C7,
1316
- 0x114D0, 0x114D9,
1317
- 0x11580, 0x115B5,
1318
- 0x115B8, 0x115BE,
1319
- 0x115D8, 0x115DD,
1320
- 0x11600, 0x1163E,
1321
- 0x11640, 0x11640,
1322
- 0x11644, 0x11644,
1323
- 0x11650, 0x11659,
1324
- 0x11680, 0x116B5,
1325
- 0x116B8, 0x116B8,
1326
- 0x116C0, 0x116C9,
1327
- 0x11700, 0x1171A,
1328
- 0x1171D, 0x1172A,
1329
- 0x11730, 0x11739,
1330
- 0x11740, 0x11746,
1331
- 0x11800, 0x11838,
1332
- 0x118A0, 0x118E9,
1333
- 0x118FF, 0x11906,
1334
- 0x11909, 0x11909,
1335
- 0x1190C, 0x11913,
1336
- 0x11915, 0x11916,
1337
- 0x11918, 0x11935,
1338
- 0x11937, 0x11938,
1339
- 0x1193B, 0x1193C,
1340
- 0x1193F, 0x11942,
1341
- 0x11950, 0x11959,
1342
- 0x119A0, 0x119A7,
1343
- 0x119AA, 0x119D7,
1344
- 0x119DA, 0x119DF,
1345
- 0x119E1, 0x119E1,
1346
- 0x119E3, 0x119E4,
1347
- 0x11A00, 0x11A32,
1348
- 0x11A35, 0x11A3E,
1349
- 0x11A50, 0x11A97,
1350
- 0x11A9D, 0x11A9D,
1351
- 0x11AB0, 0x11AF8,
1352
- 0x11C00, 0x11C08,
1353
- 0x11C0A, 0x11C36,
1354
- 0x11C38, 0x11C3E,
1355
- 0x11C40, 0x11C40,
1356
- 0x11C50, 0x11C59,
1357
- 0x11C72, 0x11C8F,
1358
- 0x11C92, 0x11CA7,
1359
- 0x11CA9, 0x11CB6,
1360
- 0x11D00, 0x11D06,
1361
- 0x11D08, 0x11D09,
1362
- 0x11D0B, 0x11D36,
1363
- 0x11D3A, 0x11D3A,
1364
- 0x11D3C, 0x11D3D,
1365
- 0x11D3F, 0x11D41,
1366
- 0x11D43, 0x11D43,
1367
- 0x11D46, 0x11D47,
1368
- 0x11D50, 0x11D59,
1369
- 0x11D60, 0x11D65,
1370
- 0x11D67, 0x11D68,
1371
- 0x11D6A, 0x11D8E,
1372
- 0x11D90, 0x11D91,
1373
- 0x11D93, 0x11D96,
1374
- 0x11D98, 0x11D98,
1375
- 0x11DA0, 0x11DA9,
1376
- 0x11EE0, 0x11EF6,
1377
- 0x11F00, 0x11F10,
1378
- 0x11F12, 0x11F3A,
1379
- 0x11F3E, 0x11F40,
1380
- 0x11F50, 0x11F59,
1381
- 0x11FB0, 0x11FB0,
1382
- 0x12000, 0x12399,
1383
- 0x12400, 0x1246E,
1384
- 0x12480, 0x12543,
1385
- 0x12F90, 0x12FF0,
1386
- 0x13000, 0x1342F,
1387
- 0x13441, 0x13446,
1388
- 0x14400, 0x14646,
1389
- 0x16800, 0x16A38,
1390
- 0x16A40, 0x16A5E,
1391
- 0x16A60, 0x16A69,
1392
- 0x16A70, 0x16ABE,
1393
- 0x16AC0, 0x16AC9,
1394
- 0x16AD0, 0x16AED,
1395
- 0x16B00, 0x16B2F,
1396
- 0x16B40, 0x16B43,
1397
- 0x16B50, 0x16B59,
1398
- 0x16B63, 0x16B77,
1399
- 0x16B7D, 0x16B8F,
1400
- 0x16E40, 0x16E7F,
1401
- 0x16F00, 0x16F4A,
1402
- 0x16F4F, 0x16F87,
1403
- 0x16F8F, 0x16F9F,
1404
- 0x16FE0, 0x16FE1,
1405
- 0x16FE3, 0x16FE3,
1406
- 0x16FF0, 0x16FF1,
1407
- 0x17000, 0x187F7,
1408
- 0x18800, 0x18CD5,
1409
- 0x18D00, 0x18D08,
1410
- 0x1AFF0, 0x1AFF3,
1411
- 0x1AFF5, 0x1AFFB,
1412
- 0x1AFFD, 0x1AFFE,
1413
- 0x1B000, 0x1B122,
1414
- 0x1B132, 0x1B132,
1415
- 0x1B150, 0x1B152,
1416
- 0x1B155, 0x1B155,
1417
- 0x1B164, 0x1B167,
1418
- 0x1B170, 0x1B2FB,
1419
- 0x1BC00, 0x1BC6A,
1420
- 0x1BC70, 0x1BC7C,
1421
- 0x1BC80, 0x1BC88,
1422
- 0x1BC90, 0x1BC99,
1423
- 0x1BC9E, 0x1BC9E,
1424
- 0x1D400, 0x1D454,
1425
- 0x1D456, 0x1D49C,
1426
- 0x1D49E, 0x1D49F,
1427
- 0x1D4A2, 0x1D4A2,
1428
- 0x1D4A5, 0x1D4A6,
1429
- 0x1D4A9, 0x1D4AC,
1430
- 0x1D4AE, 0x1D4B9,
1431
- 0x1D4BB, 0x1D4BB,
1432
- 0x1D4BD, 0x1D4C3,
1433
- 0x1D4C5, 0x1D505,
1434
- 0x1D507, 0x1D50A,
1435
- 0x1D50D, 0x1D514,
1436
- 0x1D516, 0x1D51C,
1437
- 0x1D51E, 0x1D539,
1438
- 0x1D53B, 0x1D53E,
1439
- 0x1D540, 0x1D544,
1440
- 0x1D546, 0x1D546,
1441
- 0x1D54A, 0x1D550,
1442
- 0x1D552, 0x1D6A5,
1443
- 0x1D6A8, 0x1D6C0,
1444
- 0x1D6C2, 0x1D6DA,
1445
- 0x1D6DC, 0x1D6FA,
1446
- 0x1D6FC, 0x1D714,
1447
- 0x1D716, 0x1D734,
1448
- 0x1D736, 0x1D74E,
1449
- 0x1D750, 0x1D76E,
1450
- 0x1D770, 0x1D788,
1451
- 0x1D78A, 0x1D7A8,
1452
- 0x1D7AA, 0x1D7C2,
1453
- 0x1D7C4, 0x1D7CB,
1454
- 0x1D7CE, 0x1D7FF,
1455
- 0x1DF00, 0x1DF1E,
1456
- 0x1DF25, 0x1DF2A,
1457
- 0x1E000, 0x1E006,
1458
- 0x1E008, 0x1E018,
1459
- 0x1E01B, 0x1E021,
1460
- 0x1E023, 0x1E024,
1461
- 0x1E026, 0x1E02A,
1462
- 0x1E030, 0x1E06D,
1463
- 0x1E08F, 0x1E08F,
1464
- 0x1E100, 0x1E12C,
1465
- 0x1E137, 0x1E13D,
1466
- 0x1E140, 0x1E149,
1467
- 0x1E14E, 0x1E14E,
1468
- 0x1E290, 0x1E2AD,
1469
- 0x1E2C0, 0x1E2EB,
1470
- 0x1E2F0, 0x1E2F9,
1471
- 0x1E4D0, 0x1E4EB,
1472
- 0x1E4F0, 0x1E4F9,
1473
- 0x1E7E0, 0x1E7E6,
1474
- 0x1E7E8, 0x1E7EB,
1475
- 0x1E7ED, 0x1E7EE,
1476
- 0x1E7F0, 0x1E7FE,
1477
- 0x1E800, 0x1E8C4,
1478
- 0x1E900, 0x1E943,
1479
- 0x1E947, 0x1E947,
1480
- 0x1E94B, 0x1E94B,
1481
- 0x1E950, 0x1E959,
1482
- 0x1EE00, 0x1EE03,
1483
- 0x1EE05, 0x1EE1F,
1484
- 0x1EE21, 0x1EE22,
1485
- 0x1EE24, 0x1EE24,
1486
- 0x1EE27, 0x1EE27,
1487
- 0x1EE29, 0x1EE32,
1488
- 0x1EE34, 0x1EE37,
1489
- 0x1EE39, 0x1EE39,
1490
- 0x1EE3B, 0x1EE3B,
1491
- 0x1EE42, 0x1EE42,
1492
- 0x1EE47, 0x1EE47,
1493
- 0x1EE49, 0x1EE49,
1494
- 0x1EE4B, 0x1EE4B,
1495
- 0x1EE4D, 0x1EE4F,
1496
- 0x1EE51, 0x1EE52,
1497
- 0x1EE54, 0x1EE54,
1498
- 0x1EE57, 0x1EE57,
1499
- 0x1EE59, 0x1EE59,
1500
- 0x1EE5B, 0x1EE5B,
1501
- 0x1EE5D, 0x1EE5D,
1502
- 0x1EE5F, 0x1EE5F,
1503
- 0x1EE61, 0x1EE62,
1504
- 0x1EE64, 0x1EE64,
1505
- 0x1EE67, 0x1EE6A,
1506
- 0x1EE6C, 0x1EE72,
1507
- 0x1EE74, 0x1EE77,
1508
- 0x1EE79, 0x1EE7C,
1509
- 0x1EE7E, 0x1EE7E,
1510
- 0x1EE80, 0x1EE89,
1511
- 0x1EE8B, 0x1EE9B,
1512
- 0x1EEA1, 0x1EEA3,
1513
- 0x1EEA5, 0x1EEA9,
1514
- 0x1EEAB, 0x1EEBB,
1515
- 0x1F130, 0x1F149,
1516
- 0x1F150, 0x1F169,
1517
- 0x1F170, 0x1F189,
1518
- 0x1FBF0, 0x1FBF9,
1519
- 0x20000, 0x2A6DF,
1520
- 0x2A700, 0x2B739,
1521
- 0x2B740, 0x2B81D,
1522
- 0x2B820, 0x2CEA1,
1523
- 0x2CEB0, 0x2EBE0,
1524
- 0x2F800, 0x2FA1D,
1525
- 0x30000, 0x3134A,
1526
- 0x31350, 0x323AF,
1527
- };
1528
-
1529
- #define UNICODE_ISUPPER_CODEPOINTS_LENGTH 1296
1530
- static const pm_unicode_codepoint_t unicode_isupper_codepoints[UNICODE_ISUPPER_CODEPOINTS_LENGTH] = {
1531
- 0x100, 0x100,
1532
- 0x102, 0x102,
1533
- 0x104, 0x104,
1534
- 0x106, 0x106,
1535
- 0x108, 0x108,
1536
- 0x10A, 0x10A,
1537
- 0x10C, 0x10C,
1538
- 0x10E, 0x10E,
1539
- 0x110, 0x110,
1540
- 0x112, 0x112,
1541
- 0x114, 0x114,
1542
- 0x116, 0x116,
1543
- 0x118, 0x118,
1544
- 0x11A, 0x11A,
1545
- 0x11C, 0x11C,
1546
- 0x11E, 0x11E,
1547
- 0x120, 0x120,
1548
- 0x122, 0x122,
1549
- 0x124, 0x124,
1550
- 0x126, 0x126,
1551
- 0x128, 0x128,
1552
- 0x12A, 0x12A,
1553
- 0x12C, 0x12C,
1554
- 0x12E, 0x12E,
1555
- 0x130, 0x130,
1556
- 0x132, 0x132,
1557
- 0x134, 0x134,
1558
- 0x136, 0x136,
1559
- 0x139, 0x139,
1560
- 0x13B, 0x13B,
1561
- 0x13D, 0x13D,
1562
- 0x13F, 0x13F,
1563
- 0x141, 0x141,
1564
- 0x143, 0x143,
1565
- 0x145, 0x145,
1566
- 0x147, 0x147,
1567
- 0x14A, 0x14A,
1568
- 0x14C, 0x14C,
1569
- 0x14E, 0x14E,
1570
- 0x150, 0x150,
1571
- 0x152, 0x152,
1572
- 0x154, 0x154,
1573
- 0x156, 0x156,
1574
- 0x158, 0x158,
1575
- 0x15A, 0x15A,
1576
- 0x15C, 0x15C,
1577
- 0x15E, 0x15E,
1578
- 0x160, 0x160,
1579
- 0x162, 0x162,
1580
- 0x164, 0x164,
1581
- 0x166, 0x166,
1582
- 0x168, 0x168,
1583
- 0x16A, 0x16A,
1584
- 0x16C, 0x16C,
1585
- 0x16E, 0x16E,
1586
- 0x170, 0x170,
1587
- 0x172, 0x172,
1588
- 0x174, 0x174,
1589
- 0x176, 0x176,
1590
- 0x178, 0x179,
1591
- 0x17B, 0x17B,
1592
- 0x17D, 0x17D,
1593
- 0x181, 0x182,
1594
- 0x184, 0x184,
1595
- 0x186, 0x187,
1596
- 0x189, 0x18B,
1597
- 0x18E, 0x191,
1598
- 0x193, 0x194,
1599
- 0x196, 0x198,
1600
- 0x19C, 0x19D,
1601
- 0x19F, 0x1A0,
1602
- 0x1A2, 0x1A2,
1603
- 0x1A4, 0x1A4,
1604
- 0x1A6, 0x1A7,
1605
- 0x1A9, 0x1A9,
1606
- 0x1AC, 0x1AC,
1607
- 0x1AE, 0x1AF,
1608
- 0x1B1, 0x1B3,
1609
- 0x1B5, 0x1B5,
1610
- 0x1B7, 0x1B8,
1611
- 0x1BC, 0x1BC,
1612
- 0x1C4, 0x1C4,
1613
- 0x1C7, 0x1C7,
1614
- 0x1CA, 0x1CA,
1615
- 0x1CD, 0x1CD,
1616
- 0x1CF, 0x1CF,
1617
- 0x1D1, 0x1D1,
1618
- 0x1D3, 0x1D3,
1619
- 0x1D5, 0x1D5,
1620
- 0x1D7, 0x1D7,
1621
- 0x1D9, 0x1D9,
1622
- 0x1DB, 0x1DB,
1623
- 0x1DE, 0x1DE,
1624
- 0x1E0, 0x1E0,
1625
- 0x1E2, 0x1E2,
1626
- 0x1E4, 0x1E4,
1627
- 0x1E6, 0x1E6,
1628
- 0x1E8, 0x1E8,
1629
- 0x1EA, 0x1EA,
1630
- 0x1EC, 0x1EC,
1631
- 0x1EE, 0x1EE,
1632
- 0x1F1, 0x1F1,
1633
- 0x1F4, 0x1F4,
1634
- 0x1F6, 0x1F8,
1635
- 0x1FA, 0x1FA,
1636
- 0x1FC, 0x1FC,
1637
- 0x1FE, 0x1FE,
1638
- 0x200, 0x200,
1639
- 0x202, 0x202,
1640
- 0x204, 0x204,
1641
- 0x206, 0x206,
1642
- 0x208, 0x208,
1643
- 0x20A, 0x20A,
1644
- 0x20C, 0x20C,
1645
- 0x20E, 0x20E,
1646
- 0x210, 0x210,
1647
- 0x212, 0x212,
1648
- 0x214, 0x214,
1649
- 0x216, 0x216,
1650
- 0x218, 0x218,
1651
- 0x21A, 0x21A,
1652
- 0x21C, 0x21C,
1653
- 0x21E, 0x21E,
1654
- 0x220, 0x220,
1655
- 0x222, 0x222,
1656
- 0x224, 0x224,
1657
- 0x226, 0x226,
1658
- 0x228, 0x228,
1659
- 0x22A, 0x22A,
1660
- 0x22C, 0x22C,
1661
- 0x22E, 0x22E,
1662
- 0x230, 0x230,
1663
- 0x232, 0x232,
1664
- 0x23A, 0x23B,
1665
- 0x23D, 0x23E,
1666
- 0x241, 0x241,
1667
- 0x243, 0x246,
1668
- 0x248, 0x248,
1669
- 0x24A, 0x24A,
1670
- 0x24C, 0x24C,
1671
- 0x24E, 0x24E,
1672
- 0x370, 0x370,
1673
- 0x372, 0x372,
1674
- 0x376, 0x376,
1675
- 0x37F, 0x37F,
1676
- 0x386, 0x386,
1677
- 0x388, 0x38A,
1678
- 0x38C, 0x38C,
1679
- 0x38E, 0x38F,
1680
- 0x391, 0x3A1,
1681
- 0x3A3, 0x3AB,
1682
- 0x3CF, 0x3CF,
1683
- 0x3D2, 0x3D4,
1684
- 0x3D8, 0x3D8,
1685
- 0x3DA, 0x3DA,
1686
- 0x3DC, 0x3DC,
1687
- 0x3DE, 0x3DE,
1688
- 0x3E0, 0x3E0,
1689
- 0x3E2, 0x3E2,
1690
- 0x3E4, 0x3E4,
1691
- 0x3E6, 0x3E6,
1692
- 0x3E8, 0x3E8,
1693
- 0x3EA, 0x3EA,
1694
- 0x3EC, 0x3EC,
1695
- 0x3EE, 0x3EE,
1696
- 0x3F4, 0x3F4,
1697
- 0x3F7, 0x3F7,
1698
- 0x3F9, 0x3FA,
1699
- 0x3FD, 0x42F,
1700
- 0x460, 0x460,
1701
- 0x462, 0x462,
1702
- 0x464, 0x464,
1703
- 0x466, 0x466,
1704
- 0x468, 0x468,
1705
- 0x46A, 0x46A,
1706
- 0x46C, 0x46C,
1707
- 0x46E, 0x46E,
1708
- 0x470, 0x470,
1709
- 0x472, 0x472,
1710
- 0x474, 0x474,
1711
- 0x476, 0x476,
1712
- 0x478, 0x478,
1713
- 0x47A, 0x47A,
1714
- 0x47C, 0x47C,
1715
- 0x47E, 0x47E,
1716
- 0x480, 0x480,
1717
- 0x48A, 0x48A,
1718
- 0x48C, 0x48C,
1719
- 0x48E, 0x48E,
1720
- 0x490, 0x490,
1721
- 0x492, 0x492,
1722
- 0x494, 0x494,
1723
- 0x496, 0x496,
1724
- 0x498, 0x498,
1725
- 0x49A, 0x49A,
1726
- 0x49C, 0x49C,
1727
- 0x49E, 0x49E,
1728
- 0x4A0, 0x4A0,
1729
- 0x4A2, 0x4A2,
1730
- 0x4A4, 0x4A4,
1731
- 0x4A6, 0x4A6,
1732
- 0x4A8, 0x4A8,
1733
- 0x4AA, 0x4AA,
1734
- 0x4AC, 0x4AC,
1735
- 0x4AE, 0x4AE,
1736
- 0x4B0, 0x4B0,
1737
- 0x4B2, 0x4B2,
1738
- 0x4B4, 0x4B4,
1739
- 0x4B6, 0x4B6,
1740
- 0x4B8, 0x4B8,
1741
- 0x4BA, 0x4BA,
1742
- 0x4BC, 0x4BC,
1743
- 0x4BE, 0x4BE,
1744
- 0x4C0, 0x4C1,
1745
- 0x4C3, 0x4C3,
1746
- 0x4C5, 0x4C5,
1747
- 0x4C7, 0x4C7,
1748
- 0x4C9, 0x4C9,
1749
- 0x4CB, 0x4CB,
1750
- 0x4CD, 0x4CD,
1751
- 0x4D0, 0x4D0,
1752
- 0x4D2, 0x4D2,
1753
- 0x4D4, 0x4D4,
1754
- 0x4D6, 0x4D6,
1755
- 0x4D8, 0x4D8,
1756
- 0x4DA, 0x4DA,
1757
- 0x4DC, 0x4DC,
1758
- 0x4DE, 0x4DE,
1759
- 0x4E0, 0x4E0,
1760
- 0x4E2, 0x4E2,
1761
- 0x4E4, 0x4E4,
1762
- 0x4E6, 0x4E6,
1763
- 0x4E8, 0x4E8,
1764
- 0x4EA, 0x4EA,
1765
- 0x4EC, 0x4EC,
1766
- 0x4EE, 0x4EE,
1767
- 0x4F0, 0x4F0,
1768
- 0x4F2, 0x4F2,
1769
- 0x4F4, 0x4F4,
1770
- 0x4F6, 0x4F6,
1771
- 0x4F8, 0x4F8,
1772
- 0x4FA, 0x4FA,
1773
- 0x4FC, 0x4FC,
1774
- 0x4FE, 0x4FE,
1775
- 0x500, 0x500,
1776
- 0x502, 0x502,
1777
- 0x504, 0x504,
1778
- 0x506, 0x506,
1779
- 0x508, 0x508,
1780
- 0x50A, 0x50A,
1781
- 0x50C, 0x50C,
1782
- 0x50E, 0x50E,
1783
- 0x510, 0x510,
1784
- 0x512, 0x512,
1785
- 0x514, 0x514,
1786
- 0x516, 0x516,
1787
- 0x518, 0x518,
1788
- 0x51A, 0x51A,
1789
- 0x51C, 0x51C,
1790
- 0x51E, 0x51E,
1791
- 0x520, 0x520,
1792
- 0x522, 0x522,
1793
- 0x524, 0x524,
1794
- 0x526, 0x526,
1795
- 0x528, 0x528,
1796
- 0x52A, 0x52A,
1797
- 0x52C, 0x52C,
1798
- 0x52E, 0x52E,
1799
- 0x531, 0x556,
1800
- 0x10A0, 0x10C5,
1801
- 0x10C7, 0x10C7,
1802
- 0x10CD, 0x10CD,
1803
- 0x13A0, 0x13F5,
1804
- 0x1C90, 0x1CBA,
1805
- 0x1CBD, 0x1CBF,
1806
- 0x1E00, 0x1E00,
1807
- 0x1E02, 0x1E02,
1808
- 0x1E04, 0x1E04,
1809
- 0x1E06, 0x1E06,
1810
- 0x1E08, 0x1E08,
1811
- 0x1E0A, 0x1E0A,
1812
- 0x1E0C, 0x1E0C,
1813
- 0x1E0E, 0x1E0E,
1814
- 0x1E10, 0x1E10,
1815
- 0x1E12, 0x1E12,
1816
- 0x1E14, 0x1E14,
1817
- 0x1E16, 0x1E16,
1818
- 0x1E18, 0x1E18,
1819
- 0x1E1A, 0x1E1A,
1820
- 0x1E1C, 0x1E1C,
1821
- 0x1E1E, 0x1E1E,
1822
- 0x1E20, 0x1E20,
1823
- 0x1E22, 0x1E22,
1824
- 0x1E24, 0x1E24,
1825
- 0x1E26, 0x1E26,
1826
- 0x1E28, 0x1E28,
1827
- 0x1E2A, 0x1E2A,
1828
- 0x1E2C, 0x1E2C,
1829
- 0x1E2E, 0x1E2E,
1830
- 0x1E30, 0x1E30,
1831
- 0x1E32, 0x1E32,
1832
- 0x1E34, 0x1E34,
1833
- 0x1E36, 0x1E36,
1834
- 0x1E38, 0x1E38,
1835
- 0x1E3A, 0x1E3A,
1836
- 0x1E3C, 0x1E3C,
1837
- 0x1E3E, 0x1E3E,
1838
- 0x1E40, 0x1E40,
1839
- 0x1E42, 0x1E42,
1840
- 0x1E44, 0x1E44,
1841
- 0x1E46, 0x1E46,
1842
- 0x1E48, 0x1E48,
1843
- 0x1E4A, 0x1E4A,
1844
- 0x1E4C, 0x1E4C,
1845
- 0x1E4E, 0x1E4E,
1846
- 0x1E50, 0x1E50,
1847
- 0x1E52, 0x1E52,
1848
- 0x1E54, 0x1E54,
1849
- 0x1E56, 0x1E56,
1850
- 0x1E58, 0x1E58,
1851
- 0x1E5A, 0x1E5A,
1852
- 0x1E5C, 0x1E5C,
1853
- 0x1E5E, 0x1E5E,
1854
- 0x1E60, 0x1E60,
1855
- 0x1E62, 0x1E62,
1856
- 0x1E64, 0x1E64,
1857
- 0x1E66, 0x1E66,
1858
- 0x1E68, 0x1E68,
1859
- 0x1E6A, 0x1E6A,
1860
- 0x1E6C, 0x1E6C,
1861
- 0x1E6E, 0x1E6E,
1862
- 0x1E70, 0x1E70,
1863
- 0x1E72, 0x1E72,
1864
- 0x1E74, 0x1E74,
1865
- 0x1E76, 0x1E76,
1866
- 0x1E78, 0x1E78,
1867
- 0x1E7A, 0x1E7A,
1868
- 0x1E7C, 0x1E7C,
1869
- 0x1E7E, 0x1E7E,
1870
- 0x1E80, 0x1E80,
1871
- 0x1E82, 0x1E82,
1872
- 0x1E84, 0x1E84,
1873
- 0x1E86, 0x1E86,
1874
- 0x1E88, 0x1E88,
1875
- 0x1E8A, 0x1E8A,
1876
- 0x1E8C, 0x1E8C,
1877
- 0x1E8E, 0x1E8E,
1878
- 0x1E90, 0x1E90,
1879
- 0x1E92, 0x1E92,
1880
- 0x1E94, 0x1E94,
1881
- 0x1E9E, 0x1E9E,
1882
- 0x1EA0, 0x1EA0,
1883
- 0x1EA2, 0x1EA2,
1884
- 0x1EA4, 0x1EA4,
1885
- 0x1EA6, 0x1EA6,
1886
- 0x1EA8, 0x1EA8,
1887
- 0x1EAA, 0x1EAA,
1888
- 0x1EAC, 0x1EAC,
1889
- 0x1EAE, 0x1EAE,
1890
- 0x1EB0, 0x1EB0,
1891
- 0x1EB2, 0x1EB2,
1892
- 0x1EB4, 0x1EB4,
1893
- 0x1EB6, 0x1EB6,
1894
- 0x1EB8, 0x1EB8,
1895
- 0x1EBA, 0x1EBA,
1896
- 0x1EBC, 0x1EBC,
1897
- 0x1EBE, 0x1EBE,
1898
- 0x1EC0, 0x1EC0,
1899
- 0x1EC2, 0x1EC2,
1900
- 0x1EC4, 0x1EC4,
1901
- 0x1EC6, 0x1EC6,
1902
- 0x1EC8, 0x1EC8,
1903
- 0x1ECA, 0x1ECA,
1904
- 0x1ECC, 0x1ECC,
1905
- 0x1ECE, 0x1ECE,
1906
- 0x1ED0, 0x1ED0,
1907
- 0x1ED2, 0x1ED2,
1908
- 0x1ED4, 0x1ED4,
1909
- 0x1ED6, 0x1ED6,
1910
- 0x1ED8, 0x1ED8,
1911
- 0x1EDA, 0x1EDA,
1912
- 0x1EDC, 0x1EDC,
1913
- 0x1EDE, 0x1EDE,
1914
- 0x1EE0, 0x1EE0,
1915
- 0x1EE2, 0x1EE2,
1916
- 0x1EE4, 0x1EE4,
1917
- 0x1EE6, 0x1EE6,
1918
- 0x1EE8, 0x1EE8,
1919
- 0x1EEA, 0x1EEA,
1920
- 0x1EEC, 0x1EEC,
1921
- 0x1EEE, 0x1EEE,
1922
- 0x1EF0, 0x1EF0,
1923
- 0x1EF2, 0x1EF2,
1924
- 0x1EF4, 0x1EF4,
1925
- 0x1EF6, 0x1EF6,
1926
- 0x1EF8, 0x1EF8,
1927
- 0x1EFA, 0x1EFA,
1928
- 0x1EFC, 0x1EFC,
1929
- 0x1EFE, 0x1EFE,
1930
- 0x1F08, 0x1F0F,
1931
- 0x1F18, 0x1F1D,
1932
- 0x1F28, 0x1F2F,
1933
- 0x1F38, 0x1F3F,
1934
- 0x1F48, 0x1F4D,
1935
- 0x1F59, 0x1F59,
1936
- 0x1F5B, 0x1F5B,
1937
- 0x1F5D, 0x1F5D,
1938
- 0x1F5F, 0x1F5F,
1939
- 0x1F68, 0x1F6F,
1940
- 0x1FB8, 0x1FBB,
1941
- 0x1FC8, 0x1FCB,
1942
- 0x1FD8, 0x1FDB,
1943
- 0x1FE8, 0x1FEC,
1944
- 0x1FF8, 0x1FFB,
1945
- 0x2102, 0x2102,
1946
- 0x2107, 0x2107,
1947
- 0x210B, 0x210D,
1948
- 0x2110, 0x2112,
1949
- 0x2115, 0x2115,
1950
- 0x2119, 0x211D,
1951
- 0x2124, 0x2124,
1952
- 0x2126, 0x2126,
1953
- 0x2128, 0x2128,
1954
- 0x212A, 0x212D,
1955
- 0x2130, 0x2133,
1956
- 0x213E, 0x213F,
1957
- 0x2145, 0x2145,
1958
- 0x2160, 0x216F,
1959
- 0x2183, 0x2183,
1960
- 0x24B6, 0x24CF,
1961
- 0x2C00, 0x2C2F,
1962
- 0x2C60, 0x2C60,
1963
- 0x2C62, 0x2C64,
1964
- 0x2C67, 0x2C67,
1965
- 0x2C69, 0x2C69,
1966
- 0x2C6B, 0x2C6B,
1967
- 0x2C6D, 0x2C70,
1968
- 0x2C72, 0x2C72,
1969
- 0x2C75, 0x2C75,
1970
- 0x2C7E, 0x2C80,
1971
- 0x2C82, 0x2C82,
1972
- 0x2C84, 0x2C84,
1973
- 0x2C86, 0x2C86,
1974
- 0x2C88, 0x2C88,
1975
- 0x2C8A, 0x2C8A,
1976
- 0x2C8C, 0x2C8C,
1977
- 0x2C8E, 0x2C8E,
1978
- 0x2C90, 0x2C90,
1979
- 0x2C92, 0x2C92,
1980
- 0x2C94, 0x2C94,
1981
- 0x2C96, 0x2C96,
1982
- 0x2C98, 0x2C98,
1983
- 0x2C9A, 0x2C9A,
1984
- 0x2C9C, 0x2C9C,
1985
- 0x2C9E, 0x2C9E,
1986
- 0x2CA0, 0x2CA0,
1987
- 0x2CA2, 0x2CA2,
1988
- 0x2CA4, 0x2CA4,
1989
- 0x2CA6, 0x2CA6,
1990
- 0x2CA8, 0x2CA8,
1991
- 0x2CAA, 0x2CAA,
1992
- 0x2CAC, 0x2CAC,
1993
- 0x2CAE, 0x2CAE,
1994
- 0x2CB0, 0x2CB0,
1995
- 0x2CB2, 0x2CB2,
1996
- 0x2CB4, 0x2CB4,
1997
- 0x2CB6, 0x2CB6,
1998
- 0x2CB8, 0x2CB8,
1999
- 0x2CBA, 0x2CBA,
2000
- 0x2CBC, 0x2CBC,
2001
- 0x2CBE, 0x2CBE,
2002
- 0x2CC0, 0x2CC0,
2003
- 0x2CC2, 0x2CC2,
2004
- 0x2CC4, 0x2CC4,
2005
- 0x2CC6, 0x2CC6,
2006
- 0x2CC8, 0x2CC8,
2007
- 0x2CCA, 0x2CCA,
2008
- 0x2CCC, 0x2CCC,
2009
- 0x2CCE, 0x2CCE,
2010
- 0x2CD0, 0x2CD0,
2011
- 0x2CD2, 0x2CD2,
2012
- 0x2CD4, 0x2CD4,
2013
- 0x2CD6, 0x2CD6,
2014
- 0x2CD8, 0x2CD8,
2015
- 0x2CDA, 0x2CDA,
2016
- 0x2CDC, 0x2CDC,
2017
- 0x2CDE, 0x2CDE,
2018
- 0x2CE0, 0x2CE0,
2019
- 0x2CE2, 0x2CE2,
2020
- 0x2CEB, 0x2CEB,
2021
- 0x2CED, 0x2CED,
2022
- 0x2CF2, 0x2CF2,
2023
- 0xA640, 0xA640,
2024
- 0xA642, 0xA642,
2025
- 0xA644, 0xA644,
2026
- 0xA646, 0xA646,
2027
- 0xA648, 0xA648,
2028
- 0xA64A, 0xA64A,
2029
- 0xA64C, 0xA64C,
2030
- 0xA64E, 0xA64E,
2031
- 0xA650, 0xA650,
2032
- 0xA652, 0xA652,
2033
- 0xA654, 0xA654,
2034
- 0xA656, 0xA656,
2035
- 0xA658, 0xA658,
2036
- 0xA65A, 0xA65A,
2037
- 0xA65C, 0xA65C,
2038
- 0xA65E, 0xA65E,
2039
- 0xA660, 0xA660,
2040
- 0xA662, 0xA662,
2041
- 0xA664, 0xA664,
2042
- 0xA666, 0xA666,
2043
- 0xA668, 0xA668,
2044
- 0xA66A, 0xA66A,
2045
- 0xA66C, 0xA66C,
2046
- 0xA680, 0xA680,
2047
- 0xA682, 0xA682,
2048
- 0xA684, 0xA684,
2049
- 0xA686, 0xA686,
2050
- 0xA688, 0xA688,
2051
- 0xA68A, 0xA68A,
2052
- 0xA68C, 0xA68C,
2053
- 0xA68E, 0xA68E,
2054
- 0xA690, 0xA690,
2055
- 0xA692, 0xA692,
2056
- 0xA694, 0xA694,
2057
- 0xA696, 0xA696,
2058
- 0xA698, 0xA698,
2059
- 0xA69A, 0xA69A,
2060
- 0xA722, 0xA722,
2061
- 0xA724, 0xA724,
2062
- 0xA726, 0xA726,
2063
- 0xA728, 0xA728,
2064
- 0xA72A, 0xA72A,
2065
- 0xA72C, 0xA72C,
2066
- 0xA72E, 0xA72E,
2067
- 0xA732, 0xA732,
2068
- 0xA734, 0xA734,
2069
- 0xA736, 0xA736,
2070
- 0xA738, 0xA738,
2071
- 0xA73A, 0xA73A,
2072
- 0xA73C, 0xA73C,
2073
- 0xA73E, 0xA73E,
2074
- 0xA740, 0xA740,
2075
- 0xA742, 0xA742,
2076
- 0xA744, 0xA744,
2077
- 0xA746, 0xA746,
2078
- 0xA748, 0xA748,
2079
- 0xA74A, 0xA74A,
2080
- 0xA74C, 0xA74C,
2081
- 0xA74E, 0xA74E,
2082
- 0xA750, 0xA750,
2083
- 0xA752, 0xA752,
2084
- 0xA754, 0xA754,
2085
- 0xA756, 0xA756,
2086
- 0xA758, 0xA758,
2087
- 0xA75A, 0xA75A,
2088
- 0xA75C, 0xA75C,
2089
- 0xA75E, 0xA75E,
2090
- 0xA760, 0xA760,
2091
- 0xA762, 0xA762,
2092
- 0xA764, 0xA764,
2093
- 0xA766, 0xA766,
2094
- 0xA768, 0xA768,
2095
- 0xA76A, 0xA76A,
2096
- 0xA76C, 0xA76C,
2097
- 0xA76E, 0xA76E,
2098
- 0xA779, 0xA779,
2099
- 0xA77B, 0xA77B,
2100
- 0xA77D, 0xA77E,
2101
- 0xA780, 0xA780,
2102
- 0xA782, 0xA782,
2103
- 0xA784, 0xA784,
2104
- 0xA786, 0xA786,
2105
- 0xA78B, 0xA78B,
2106
- 0xA78D, 0xA78D,
2107
- 0xA790, 0xA790,
2108
- 0xA792, 0xA792,
2109
- 0xA796, 0xA796,
2110
- 0xA798, 0xA798,
2111
- 0xA79A, 0xA79A,
2112
- 0xA79C, 0xA79C,
2113
- 0xA79E, 0xA79E,
2114
- 0xA7A0, 0xA7A0,
2115
- 0xA7A2, 0xA7A2,
2116
- 0xA7A4, 0xA7A4,
2117
- 0xA7A6, 0xA7A6,
2118
- 0xA7A8, 0xA7A8,
2119
- 0xA7AA, 0xA7AE,
2120
- 0xA7B0, 0xA7B4,
2121
- 0xA7B6, 0xA7B6,
2122
- 0xA7B8, 0xA7B8,
2123
- 0xA7BA, 0xA7BA,
2124
- 0xA7BC, 0xA7BC,
2125
- 0xA7BE, 0xA7BE,
2126
- 0xA7C0, 0xA7C0,
2127
- 0xA7C2, 0xA7C2,
2128
- 0xA7C4, 0xA7C7,
2129
- 0xA7C9, 0xA7C9,
2130
- 0xA7D0, 0xA7D0,
2131
- 0xA7D6, 0xA7D6,
2132
- 0xA7D8, 0xA7D8,
2133
- 0xA7F5, 0xA7F5,
2134
- 0xFF21, 0xFF3A,
2135
- 0x10400, 0x10427,
2136
- 0x104B0, 0x104D3,
2137
- 0x10570, 0x1057A,
2138
- 0x1057C, 0x1058A,
2139
- 0x1058C, 0x10592,
2140
- 0x10594, 0x10595,
2141
- 0x10C80, 0x10CB2,
2142
- 0x118A0, 0x118BF,
2143
- 0x16E40, 0x16E5F,
2144
- 0x1D400, 0x1D419,
2145
- 0x1D434, 0x1D44D,
2146
- 0x1D468, 0x1D481,
2147
- 0x1D49C, 0x1D49C,
2148
- 0x1D49E, 0x1D49F,
2149
- 0x1D4A2, 0x1D4A2,
2150
- 0x1D4A5, 0x1D4A6,
2151
- 0x1D4A9, 0x1D4AC,
2152
- 0x1D4AE, 0x1D4B5,
2153
- 0x1D4D0, 0x1D4E9,
2154
- 0x1D504, 0x1D505,
2155
- 0x1D507, 0x1D50A,
2156
- 0x1D50D, 0x1D514,
2157
- 0x1D516, 0x1D51C,
2158
- 0x1D538, 0x1D539,
2159
- 0x1D53B, 0x1D53E,
2160
- 0x1D540, 0x1D544,
2161
- 0x1D546, 0x1D546,
2162
- 0x1D54A, 0x1D550,
2163
- 0x1D56C, 0x1D585,
2164
- 0x1D5A0, 0x1D5B9,
2165
- 0x1D5D4, 0x1D5ED,
2166
- 0x1D608, 0x1D621,
2167
- 0x1D63C, 0x1D655,
2168
- 0x1D670, 0x1D689,
2169
- 0x1D6A8, 0x1D6C0,
2170
- 0x1D6E2, 0x1D6FA,
2171
- 0x1D71C, 0x1D734,
2172
- 0x1D756, 0x1D76E,
2173
- 0x1D790, 0x1D7A8,
2174
- 0x1D7CA, 0x1D7CA,
2175
- 0x1E900, 0x1E921,
2176
- 0x1F130, 0x1F149,
2177
- 0x1F150, 0x1F169,
2178
- 0x1F170, 0x1F189,
2179
- };
2180
-
2181
- /**
2182
- * Binary search through the given list of codepoints to see if the given
2183
- * codepoint is in the list.
2184
- */
2185
- static bool
2186
- pm_unicode_codepoint_match(pm_unicode_codepoint_t codepoint, const pm_unicode_codepoint_t *codepoints, size_t size) {
2187
- size_t start = 0;
2188
- size_t end = size;
2189
-
2190
- while (start < end) {
2191
- size_t middle = start + (end - start) / 2;
2192
- if ((middle % 2) != 0) middle--;
2193
-
2194
- if (codepoint >= codepoints[middle] && codepoint <= codepoints[middle + 1]) {
2195
- return true;
2196
- }
2197
-
2198
- if (codepoint < codepoints[middle]) {
2199
- end = middle;
2200
- } else {
2201
- start = middle + 2;
2202
- }
2203
- }
2204
-
2205
- return false;
2206
- }
2207
-
2208
- /**
2209
- * A state transition table for decoding UTF-8.
2210
- *
2211
- * Copyright (c) 2008-2009 Bjoern Hoehrmann <bjoern@hoehrmann.de>
2212
- *
2213
- * Permission is hereby granted, free of charge, to any person obtaining a copy
2214
- * of this software and associated documentation files (the "Software"), to deal
2215
- * in the Software without restriction, including without limitation the rights
2216
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
2217
- * copies of the Software, and to permit persons to whom the Software is
2218
- * furnished to do so, subject to the following conditions:
2219
- *
2220
- * The above copyright notice and this permission notice shall be included in
2221
- * all copies or substantial portions of the Software.
2222
- *
2223
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
2224
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
2225
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
2226
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
2227
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
2228
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2229
- * SOFTWARE.
2230
- */
2231
- static const uint8_t pm_utf_8_dfa[] = {
2232
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 00..1f
2233
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 20..3f
2234
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 40..5f
2235
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 60..7f
2236
- 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, // 80..9f
2237
- 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, // a0..bf
2238
- 8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, // c0..df
2239
- 0xa,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x4,0x3,0x3, // e0..ef
2240
- 0xb,0x6,0x6,0x6,0x5,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8, // f0..ff
2241
- 0x0,0x1,0x2,0x3,0x5,0x8,0x7,0x1,0x1,0x1,0x4,0x6,0x1,0x1,0x1,0x1, // s0..s0
2242
- 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1, // s1..s2
2243
- 1,2,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1, // s3..s4
2244
- 1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,3,1,1,1,1,1,1, // s5..s6
2245
- 1,3,1,1,1,1,1,3,1,3,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1, // s7..s8
2246
- };
2247
-
2248
- /**
2249
- * Given a pointer to a string and the number of bytes remaining in the string,
2250
- * decode the next UTF-8 codepoint and return it. The number of bytes consumed
2251
- * is returned in the width out parameter.
2252
- */
2253
- static pm_unicode_codepoint_t
2254
- pm_utf_8_codepoint(const uint8_t *b, ptrdiff_t n, size_t *width) {
2255
- assert(n >= 1);
2256
- size_t maximum = (size_t) n;
2257
-
2258
- uint32_t codepoint;
2259
- uint32_t state = 0;
2260
-
2261
- for (size_t index = 0; index < 4 && index < maximum; index++) {
2262
- uint32_t byte = b[index];
2263
- uint32_t type = pm_utf_8_dfa[byte];
2264
-
2265
- codepoint = (state != 0) ?
2266
- (byte & 0x3fu) | (codepoint << 6) :
2267
- (0xffu >> type) & (byte);
2268
-
2269
- state = pm_utf_8_dfa[256 + (state * 16) + type];
2270
- if (!state) {
2271
- *width = index + 1;
2272
- return (pm_unicode_codepoint_t) codepoint;
2273
- }
2274
- }
2275
-
2276
- *width = 0;
2277
- return 0;
2278
- }
2279
-
2280
- static size_t
2281
- pm_encoding_utf_8_char_width(const uint8_t *b, ptrdiff_t n) {
2282
- size_t width;
2283
- pm_utf_8_codepoint(b, n, &width);
2284
- return width;
2285
- }
2286
-
2287
- /**
2288
- * Return the size of the next character in the UTF-8 encoding if it is an
2289
- * alphabetical character.
2290
- */
2291
- size_t
2292
- pm_encoding_utf_8_alpha_char(const uint8_t *b, ptrdiff_t n) {
2293
- if (*b < 0x80) {
2294
- return (pm_encoding_unicode_table[*b] & PRISM_ENCODING_ALPHABETIC_BIT) ? 1 : 0;
2295
- }
2296
-
2297
- size_t width;
2298
- pm_unicode_codepoint_t codepoint = pm_utf_8_codepoint(b, n, &width);
2299
-
2300
- if (codepoint <= 0xFF) {
2301
- return (pm_encoding_unicode_table[(uint8_t) codepoint] & PRISM_ENCODING_ALPHABETIC_BIT) ? width : 0;
2302
- } else {
2303
- return pm_unicode_codepoint_match(codepoint, unicode_alpha_codepoints, UNICODE_ALPHA_CODEPOINTS_LENGTH) ? width : 0;
2304
- }
2305
- }
2306
-
2307
- /**
2308
- * Return the size of the next character in the UTF-8 encoding if it is an
2309
- * alphanumeric character.
2310
- */
2311
- size_t
2312
- pm_encoding_utf_8_alnum_char(const uint8_t *b, ptrdiff_t n) {
2313
- if (*b < 0x80) {
2314
- return (pm_encoding_unicode_table[*b] & (PRISM_ENCODING_ALPHANUMERIC_BIT)) ? 1 : 0;
2315
- }
2316
-
2317
- size_t width;
2318
- pm_unicode_codepoint_t codepoint = pm_utf_8_codepoint(b, n, &width);
2319
-
2320
- if (codepoint <= 0xFF) {
2321
- return (pm_encoding_unicode_table[(uint8_t) codepoint] & (PRISM_ENCODING_ALPHANUMERIC_BIT)) ? width : 0;
2322
- } else {
2323
- return pm_unicode_codepoint_match(codepoint, unicode_alnum_codepoints, UNICODE_ALNUM_CODEPOINTS_LENGTH) ? width : 0;
2324
- }
2325
- }
2326
-
2327
- /**
2328
- * Return true if the next character in the UTF-8 encoding if it is an uppercase
2329
- * character.
2330
- */
2331
- bool
2332
- pm_encoding_utf_8_isupper_char(const uint8_t *b, ptrdiff_t n) {
2333
- if (*b < 0x80) {
2334
- return (pm_encoding_unicode_table[*b] & PRISM_ENCODING_UPPERCASE_BIT) ? true : false;
2335
- }
2336
-
2337
- size_t width;
2338
- pm_unicode_codepoint_t codepoint = pm_utf_8_codepoint(b, n, &width);
2339
-
2340
- if (codepoint <= 0xFF) {
2341
- return (pm_encoding_unicode_table[(uint8_t) codepoint] & PRISM_ENCODING_UPPERCASE_BIT) ? true : false;
2342
- } else {
2343
- return pm_unicode_codepoint_match(codepoint, unicode_isupper_codepoints, UNICODE_ISUPPER_CODEPOINTS_LENGTH) ? true : false;
2344
- }
2345
- }
2346
-
2347
- #undef UNICODE_ALPHA_CODEPOINTS_LENGTH
2348
- #undef UNICODE_ALNUM_CODEPOINTS_LENGTH
2349
- #undef UNICODE_ISUPPER_CODEPOINTS_LENGTH
2350
-
2351
- /** UTF-8 */
2352
- pm_encoding_t pm_encoding_utf_8 = {
2353
- .name = "utf-8",
2354
- .char_width = pm_encoding_utf_8_char_width,
2355
- .alnum_char = pm_encoding_utf_8_alnum_char,
2356
- .alpha_char = pm_encoding_utf_8_alpha_char,
2357
- .isupper_char = pm_encoding_utf_8_isupper_char,
2358
- .multibyte = true
2359
- };
2360
-
2361
- /** UTF8-mac */
2362
- pm_encoding_t pm_encoding_utf8_mac = {
2363
- .name = "utf8-mac",
2364
- .char_width = pm_encoding_utf_8_char_width,
2365
- .alnum_char = pm_encoding_utf_8_alnum_char,
2366
- .alpha_char = pm_encoding_utf_8_alpha_char,
2367
- .isupper_char = pm_encoding_utf_8_isupper_char,
2368
- .multibyte = true
2369
- };