Coverage Report

Created: 2019-07-24 05:18

/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/llvm/lib/Support/UnicodeCaseFold.cpp
Line
Count
Source (jump to first uncovered line)
1
//===---------- Support/UnicodeCaseFold.cpp -------------------------------===//
2
//
3
// This file was generated by utils/unicode-case-fold.py from the Unicode
4
// case folding database at
5
//    http://www.unicode.org/Public/9.0.0/ucd/CaseFolding.txt
6
//
7
// To regenerate this file, run:
8
//   utils/unicode-case-fold.py \
9
//     "http://www.unicode.org/Public/9.0.0/ucd/CaseFolding.txt" \
10
//     > lib/Support/UnicodeCaseFold.cpp
11
//
12
//===----------------------------------------------------------------------===//
13
14
#include "llvm/Support/Unicode.h"
15
16
35
int llvm::sys::unicode::foldCharSimple(int C) {
17
35
  if (C < 0x0041)
18
0
    return C;
19
35
  // 26 characters
20
35
  if (C <= 0x005a)
21
0
    return C + 32;
22
35
  // MICRO SIGN
23
35
  if (C == 0x00b5)
24
0
    return 0x03bc;
25
35
  if (C < 0x00c0)
26
1
    return C;
27
34
  // 23 characters
28
34
  if (C <= 0x00d6)
29
2
    return C + 32;
30
32
  if (C < 0x00d8)
31
0
    return C;
32
32
  // 7 characters
33
32
  if (C <= 0x00de)
34
0
    return C + 32;
35
32
  if (C < 0x0100)
36
2
    return C;
37
30
  // 24 characters
38
30
  if (C <= 0x012e)
39
4
    return C | 1;
40
26
  if (C < 0x0132)
41
0
    return C;
42
26
  // 3 characters
43
26
  if (C <= 0x0136)
44
0
    return C | 1;
45
26
  if (C < 0x0139)
46
0
    return C;
47
26
  // 8 characters
48
26
  if (C <= 0x0147 && 
C % 2 == 14
)
49
2
    return C + 1;
50
24
  if (C < 0x014a)
51
2
    return C;
52
22
  // 23 characters
53
22
  if (C <= 0x0176)
54
0
    return C | 1;
55
22
  // LATIN CAPITAL LETTER Y WITH DIAERESIS
56
22
  if (C == 0x0178)
57
0
    return 0x00ff;
58
22
  if (C < 0x0179)
59
0
    return C;
60
22
  // 3 characters
61
22
  if (C <= 0x017d && 
C % 2 == 10
)
62
0
    return C + 1;
63
22
  // LATIN SMALL LETTER LONG S
64
22
  if (C == 0x017f)
65
0
    return 0x0073;
66
22
  // LATIN CAPITAL LETTER B WITH HOOK
67
22
  if (C == 0x0181)
68
0
    return 0x0253;
69
22
  if (C < 0x0182)
70
0
    return C;
71
22
  // 2 characters
72
22
  if (C <= 0x0184)
73
0
    return C | 1;
74
22
  // LATIN CAPITAL LETTER OPEN O
75
22
  if (C == 0x0186)
76
0
    return 0x0254;
77
22
  // LATIN CAPITAL LETTER C WITH HOOK
78
22
  if (C == 0x0187)
79
0
    return 0x0188;
80
22
  if (C < 0x0189)
81
0
    return C;
82
22
  // 2 characters
83
22
  if (C <= 0x018a)
84
0
    return C + 205;
85
22
  // LATIN CAPITAL LETTER D WITH TOPBAR
86
22
  if (C == 0x018b)
87
0
    return 0x018c;
88
22
  // LATIN CAPITAL LETTER REVERSED E
89
22
  if (C == 0x018e)
90
0
    return 0x01dd;
91
22
  // LATIN CAPITAL LETTER SCHWA
92
22
  if (C == 0x018f)
93
0
    return 0x0259;
94
22
  // LATIN CAPITAL LETTER OPEN E
95
22
  if (C == 0x0190)
96
0
    return 0x025b;
97
22
  // LATIN CAPITAL LETTER F WITH HOOK
98
22
  if (C == 0x0191)
99
0
    return 0x0192;
100
22
  // LATIN CAPITAL LETTER G WITH HOOK
101
22
  if (C == 0x0193)
102
0
    return 0x0260;
103
22
  // LATIN CAPITAL LETTER GAMMA
104
22
  if (C == 0x0194)
105
0
    return 0x0263;
106
22
  // LATIN CAPITAL LETTER IOTA
107
22
  if (C == 0x0196)
108
0
    return 0x0269;
109
22
  // LATIN CAPITAL LETTER I WITH STROKE
110
22
  if (C == 0x0197)
111
0
    return 0x0268;
112
22
  // LATIN CAPITAL LETTER K WITH HOOK
113
22
  if (C == 0x0198)
114
0
    return 0x0199;
115
22
  // LATIN CAPITAL LETTER TURNED M
116
22
  if (C == 0x019c)
117
0
    return 0x026f;
118
22
  // LATIN CAPITAL LETTER N WITH LEFT HOOK
119
22
  if (C == 0x019d)
120
0
    return 0x0272;
121
22
  // LATIN CAPITAL LETTER O WITH MIDDLE TILDE
122
22
  if (C == 0x019f)
123
0
    return 0x0275;
124
22
  if (C < 0x01a0)
125
0
    return C;
126
22
  // 3 characters
127
22
  if (C <= 0x01a4)
128
0
    return C | 1;
129
22
  // LATIN LETTER YR
130
22
  if (C == 0x01a6)
131
0
    return 0x0280;
132
22
  // LATIN CAPITAL LETTER TONE TWO
133
22
  if (C == 0x01a7)
134
0
    return 0x01a8;
135
22
  // LATIN CAPITAL LETTER ESH
136
22
  if (C == 0x01a9)
137
0
    return 0x0283;
138
22
  // LATIN CAPITAL LETTER T WITH HOOK
139
22
  if (C == 0x01ac)
140
0
    return 0x01ad;
141
22
  // LATIN CAPITAL LETTER T WITH RETROFLEX HOOK
142
22
  if (C == 0x01ae)
143
0
    return 0x0288;
144
22
  // LATIN CAPITAL LETTER U WITH HORN
145
22
  if (C == 0x01af)
146
0
    return 0x01b0;
147
22
  if (C < 0x01b1)
148
0
    return C;
149
22
  // 2 characters
150
22
  if (C <= 0x01b2)
151
0
    return C + 217;
152
22
  if (C < 0x01b3)
153
0
    return C;
154
22
  // 2 characters
155
22
  if (C <= 0x01b5 && 
C % 2 == 10
)
156
0
    return C + 1;
157
22
  // LATIN CAPITAL LETTER EZH
158
22
  if (C == 0x01b7)
159
0
    return 0x0292;
160
22
  if (C < 0x01b8)
161
0
    return C;
162
22
  // 2 characters
163
22
  if (C <= 0x01bc && 
C % 4 == 00
)
164
0
    return C + 1;
165
22
  // LATIN CAPITAL LETTER DZ WITH CARON
166
22
  if (C == 0x01c4)
167
0
    return 0x01c6;
168
22
  // LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
169
22
  if (C == 0x01c5)
170
0
    return 0x01c6;
171
22
  // LATIN CAPITAL LETTER LJ
172
22
  if (C == 0x01c7)
173
0
    return 0x01c9;
174
22
  // LATIN CAPITAL LETTER L WITH SMALL LETTER J
175
22
  if (C == 0x01c8)
176
0
    return 0x01c9;
177
22
  // LATIN CAPITAL LETTER NJ
178
22
  if (C == 0x01ca)
179
0
    return 0x01cc;
180
22
  if (C < 0x01cb)
181
0
    return C;
182
22
  // 9 characters
183
22
  if (C <= 0x01db && 
C % 2 == 10
)
184
0
    return C + 1;
185
22
  if (C < 0x01de)
186
0
    return C;
187
22
  // 9 characters
188
22
  if (C <= 0x01ee)
189
0
    return C | 1;
190
22
  // LATIN CAPITAL LETTER DZ
191
22
  if (C == 0x01f1)
192
0
    return 0x01f3;
193
22
  if (C < 0x01f2)
194
0
    return C;
195
22
  // 2 characters
196
22
  if (C <= 0x01f4)
197
0
    return C | 1;
198
22
  // LATIN CAPITAL LETTER HWAIR
199
22
  if (C == 0x01f6)
200
0
    return 0x0195;
201
22
  // LATIN CAPITAL LETTER WYNN
202
22
  if (C == 0x01f7)
203
0
    return 0x01bf;
204
22
  if (C < 0x01f8)
205
0
    return C;
206
22
  // 20 characters
207
22
  if (C <= 0x021e)
208
0
    return C | 1;
209
22
  // LATIN CAPITAL LETTER N WITH LONG RIGHT LEG
210
22
  if (C == 0x0220)
211
0
    return 0x019e;
212
22
  if (C < 0x0222)
213
0
    return C;
214
22
  // 9 characters
215
22
  if (C <= 0x0232)
216
0
    return C | 1;
217
22
  // LATIN CAPITAL LETTER A WITH STROKE
218
22
  if (C == 0x023a)
219
0
    return 0x2c65;
220
22
  // LATIN CAPITAL LETTER C WITH STROKE
221
22
  if (C == 0x023b)
222
0
    return 0x023c;
223
22
  // LATIN CAPITAL LETTER L WITH BAR
224
22
  if (C == 0x023d)
225
0
    return 0x019a;
226
22
  // LATIN CAPITAL LETTER T WITH DIAGONAL STROKE
227
22
  if (C == 0x023e)
228
0
    return 0x2c66;
229
22
  // LATIN CAPITAL LETTER GLOTTAL STOP
230
22
  if (C == 0x0241)
231
0
    return 0x0242;
232
22
  // LATIN CAPITAL LETTER B WITH STROKE
233
22
  if (C == 0x0243)
234
0
    return 0x0180;
235
22
  // LATIN CAPITAL LETTER U BAR
236
22
  if (C == 0x0244)
237
0
    return 0x0289;
238
22
  // LATIN CAPITAL LETTER TURNED V
239
22
  if (C == 0x0245)
240
0
    return 0x028c;
241
22
  if (C < 0x0246)
242
0
    return C;
243
22
  // 5 characters
244
22
  if (C <= 0x024e)
245
0
    return C | 1;
246
22
  // COMBINING GREEK YPOGEGRAMMENI
247
22
  if (C == 0x0345)
248
0
    return 0x03b9;
249
22
  if (C < 0x0370)
250
0
    return C;
251
22
  // 2 characters
252
22
  if (C <= 0x0372)
253
0
    return C | 1;
254
22
  // GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
255
22
  if (C == 0x0376)
256
0
    return 0x0377;
257
22
  // GREEK CAPITAL LETTER YOT
258
22
  if (C == 0x037f)
259
0
    return 0x03f3;
260
22
  // GREEK CAPITAL LETTER ALPHA WITH TONOS
261
22
  if (C == 0x0386)
262
0
    return 0x03ac;
263
22
  if (C < 0x0388)
264
0
    return C;
265
22
  // 3 characters
266
22
  if (C <= 0x038a)
267
0
    return C + 37;
268
22
  // GREEK CAPITAL LETTER OMICRON WITH TONOS
269
22
  if (C == 0x038c)
270
0
    return 0x03cc;
271
22
  if (C < 0x038e)
272
0
    return C;
273
22
  // 2 characters
274
22
  if (C <= 0x038f)
275
0
    return C + 63;
276
22
  if (C < 0x0391)
277
0
    return C;
278
22
  // 17 characters
279
22
  if (C <= 0x03a1)
280
0
    return C + 32;
281
22
  if (C < 0x03a3)
282
0
    return C;
283
22
  // 9 characters
284
22
  if (C <= 0x03ab)
285
0
    return C + 32;
286
22
  // GREEK SMALL LETTER FINAL SIGMA
287
22
  if (C == 0x03c2)
288
0
    return 0x03c3;
289
22
  // GREEK CAPITAL KAI SYMBOL
290
22
  if (C == 0x03cf)
291
0
    return 0x03d7;
292
22
  // GREEK BETA SYMBOL
293
22
  if (C == 0x03d0)
294
0
    return 0x03b2;
295
22
  // GREEK THETA SYMBOL
296
22
  if (C == 0x03d1)
297
0
    return 0x03b8;
298
22
  // GREEK PHI SYMBOL
299
22
  if (C == 0x03d5)
300
0
    return 0x03c6;
301
22
  // GREEK PI SYMBOL
302
22
  if (C == 0x03d6)
303
0
    return 0x03c0;
304
22
  if (C < 0x03d8)
305
0
    return C;
306
22
  // 12 characters
307
22
  if (C <= 0x03ee)
308
0
    return C | 1;
309
22
  // GREEK KAPPA SYMBOL
310
22
  if (C == 0x03f0)
311
0
    return 0x03ba;
312
22
  // GREEK RHO SYMBOL
313
22
  if (C == 0x03f1)
314
0
    return 0x03c1;
315
22
  // GREEK CAPITAL THETA SYMBOL
316
22
  if (C == 0x03f4)
317
0
    return 0x03b8;
318
22
  // GREEK LUNATE EPSILON SYMBOL
319
22
  if (C == 0x03f5)
320
0
    return 0x03b5;
321
22
  // GREEK CAPITAL LETTER SHO
322
22
  if (C == 0x03f7)
323
0
    return 0x03f8;
324
22
  // GREEK CAPITAL LUNATE SIGMA SYMBOL
325
22
  if (C == 0x03f9)
326
0
    return 0x03f2;
327
22
  // GREEK CAPITAL LETTER SAN
328
22
  if (C == 0x03fa)
329
0
    return 0x03fb;
330
22
  if (C < 0x03fd)
331
0
    return C;
332
22
  // 3 characters
333
22
  if (C <= 0x03ff)
334
0
    return C + -130;
335
22
  if (C < 0x0400)
336
0
    return C;
337
22
  // 16 characters
338
22
  if (C <= 0x040f)
339
0
    return C + 80;
340
22
  if (C < 0x0410)
341
0
    return C;
342
22
  // 32 characters
343
22
  if (C <= 0x042f)
344
2
    return C + 32;
345
20
  if (C < 0x0460)
346
2
    return C;
347
18
  // 17 characters
348
18
  if (C <= 0x0480)
349
0
    return C | 1;
350
18
  if (C < 0x048a)
351
0
    return C;
352
18
  // 27 characters
353
18
  if (C <= 0x04be)
354
0
    return C | 1;
355
18
  // CYRILLIC LETTER PALOCHKA
356
18
  if (C == 0x04c0)
357
0
    return 0x04cf;
358
18
  if (C < 0x04c1)
359
0
    return C;
360
18
  // 7 characters
361
18
  if (C <= 0x04cd && 
C % 2 == 10
)
362
0
    return C + 1;
363
18
  if (C < 0x04d0)
364
0
    return C;
365
18
  // 48 characters
366
18
  if (C <= 0x052e)
367
0
    return C | 1;
368
18
  if (C < 0x0531)
369
0
    return C;
370
18
  // 38 characters
371
18
  if (C <= 0x0556)
372
0
    return C + 48;
373
18
  if (C < 0x10a0)
374
0
    return C;
375
18
  // 38 characters
376
18
  if (C <= 0x10c5)
377
0
    return C + 7264;
378
18
  if (C < 0x10c7)
379
0
    return C;
380
18
  // 2 characters
381
18
  if (C <= 0x10cd && 
C % 6 == 50
)
382
0
    return C + 7264;
383
18
  if (C < 0x13f8)
384
0
    return C;
385
18
  // 6 characters
386
18
  if (C <= 0x13fd)
387
0
    return C + -8;
388
18
  // CYRILLIC SMALL LETTER ROUNDED VE
389
18
  if (C == 0x1c80)
390
0
    return 0x0432;
391
18
  // CYRILLIC SMALL LETTER LONG-LEGGED DE
392
18
  if (C == 0x1c81)
393
0
    return 0x0434;
394
18
  // CYRILLIC SMALL LETTER NARROW O
395
18
  if (C == 0x1c82)
396
0
    return 0x043e;
397
18
  if (C < 0x1c83)
398
0
    return C;
399
18
  // 2 characters
400
18
  if (C <= 0x1c84)
401
0
    return C + -6210;
402
18
  // CYRILLIC SMALL LETTER THREE-LEGGED TE
403
18
  if (C == 0x1c85)
404
0
    return 0x0442;
405
18
  // CYRILLIC SMALL LETTER TALL HARD SIGN
406
18
  if (C == 0x1c86)
407
0
    return 0x044a;
408
18
  // CYRILLIC SMALL LETTER TALL YAT
409
18
  if (C == 0x1c87)
410
0
    return 0x0463;
411
18
  // CYRILLIC SMALL LETTER UNBLENDED UK
412
18
  if (C == 0x1c88)
413
0
    return 0xa64b;
414
18
  if (C < 0x1e00)
415
0
    return C;
416
18
  // 75 characters
417
18
  if (C <= 0x1e94)
418
0
    return C | 1;
419
18
  // LATIN SMALL LETTER LONG S WITH DOT ABOVE
420
18
  if (C == 0x1e9b)
421
0
    return 0x1e61;
422
18
  // LATIN CAPITAL LETTER SHARP S
423
18
  if (C == 0x1e9e)
424
0
    return 0x00df;
425
18
  if (C < 0x1ea0)
426
0
    return C;
427
18
  // 48 characters
428
18
  if (C <= 0x1efe)
429
4
    return C | 1;
430
14
  if (C < 0x1f08)
431
0
    return C;
432
14
  // 8 characters
433
14
  if (C <= 0x1f0f)
434
0
    return C + -8;
435
14
  if (C < 0x1f18)
436
0
    return C;
437
14
  // 6 characters
438
14
  if (C <= 0x1f1d)
439
0
    return C + -8;
440
14
  if (C < 0x1f28)
441
0
    return C;
442
14
  // 8 characters
443
14
  if (C <= 0x1f2f)
444
0
    return C + -8;
445
14
  if (C < 0x1f38)
446
0
    return C;
447
14
  // 8 characters
448
14
  if (C <= 0x1f3f)
449
0
    return C + -8;
450
14
  if (C < 0x1f48)
451
0
    return C;
452
14
  // 6 characters
453
14
  if (C <= 0x1f4d)
454
0
    return C + -8;
455
14
  if (C < 0x1f59)
456
0
    return C;
457
14
  // 4 characters
458
14
  if (C <= 0x1f5f && 
C % 2 == 10
)
459
0
    return C + -8;
460
14
  if (C < 0x1f68)
461
0
    return C;
462
14
  // 8 characters
463
14
  if (C <= 0x1f6f)
464
0
    return C + -8;
465
14
  if (C < 0x1f88)
466
0
    return C;
467
14
  // 8 characters
468
14
  if (C <= 0x1f8f)
469
0
    return C + -8;
470
14
  if (C < 0x1f98)
471
0
    return C;
472
14
  // 8 characters
473
14
  if (C <= 0x1f9f)
474
0
    return C + -8;
475
14
  if (C < 0x1fa8)
476
0
    return C;
477
14
  // 8 characters
478
14
  if (C <= 0x1faf)
479
0
    return C + -8;
480
14
  if (C < 0x1fb8)
481
0
    return C;
482
14
  // 2 characters
483
14
  if (C <= 0x1fb9)
484
0
    return C + -8;
485
14
  if (C < 0x1fba)
486
0
    return C;
487
14
  // 2 characters
488
14
  if (C <= 0x1fbb)
489
0
    return C + -74;
490
14
  // GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
491
14
  if (C == 0x1fbc)
492
0
    return 0x1fb3;
493
14
  // GREEK PROSGEGRAMMENI
494
14
  if (C == 0x1fbe)
495
0
    return 0x03b9;
496
14
  if (C < 0x1fc8)
497
0
    return C;
498
14
  // 4 characters
499
14
  if (C <= 0x1fcb)
500
0
    return C + -86;
501
14
  // GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
502
14
  if (C == 0x1fcc)
503
0
    return 0x1fc3;
504
14
  if (C < 0x1fd8)
505
0
    return C;
506
14
  // 2 characters
507
14
  if (C <= 0x1fd9)
508
0
    return C + -8;
509
14
  if (C < 0x1fda)
510
0
    return C;
511
14
  // 2 characters
512
14
  if (C <= 0x1fdb)
513
0
    return C + -100;
514
14
  if (C < 0x1fe8)
515
0
    return C;
516
14
  // 2 characters
517
14
  if (C <= 0x1fe9)
518
0
    return C + -8;
519
14
  if (C < 0x1fea)
520
0
    return C;
521
14
  // 2 characters
522
14
  if (C <= 0x1feb)
523
0
    return C + -112;
524
14
  // GREEK CAPITAL LETTER RHO WITH DASIA
525
14
  if (C == 0x1fec)
526
0
    return 0x1fe5;
527
14
  if (C < 0x1ff8)
528
0
    return C;
529
14
  // 2 characters
530
14
  if (C <= 0x1ff9)
531
0
    return C + -128;
532
14
  if (C < 0x1ffa)
533
0
    return C;
534
14
  // 2 characters
535
14
  if (C <= 0x1ffb)
536
0
    return C + -126;
537
14
  // GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
538
14
  if (C == 0x1ffc)
539
0
    return 0x1ff3;
540
14
  // OHM SIGN
541
14
  if (C == 0x2126)
542
0
    return 0x03c9;
543
14
  // KELVIN SIGN
544
14
  if (C == 0x212a)
545
2
    return 0x006b;
546
12
  // ANGSTROM SIGN
547
12
  if (C == 0x212b)
548
0
    return 0x00e5;
549
12
  // TURNED CAPITAL F
550
12
  if (C == 0x2132)
551
0
    return 0x214e;
552
12
  if (C < 0x2160)
553
0
    return C;
554
12
  // 16 characters
555
12
  if (C <= 0x216f)
556
0
    return C + 16;
557
12
  // ROMAN NUMERAL REVERSED ONE HUNDRED
558
12
  if (C == 0x2183)
559
0
    return 0x2184;
560
12
  if (C < 0x24b6)
561
0
    return C;
562
12
  // 26 characters
563
12
  if (C <= 0x24cf)
564
0
    return C + 26;
565
12
  if (C < 0x2c00)
566
0
    return C;
567
12
  // 47 characters
568
12
  if (C <= 0x2c2e)
569
2
    return C + 48;
570
10
  // LATIN CAPITAL LETTER L WITH DOUBLE BAR
571
10
  if (C == 0x2c60)
572
0
    return 0x2c61;
573
10
  // LATIN CAPITAL LETTER L WITH MIDDLE TILDE
574
10
  if (C == 0x2c62)
575
0
    return 0x026b;
576
10
  // LATIN CAPITAL LETTER P WITH STROKE
577
10
  if (C == 0x2c63)
578
0
    return 0x1d7d;
579
10
  // LATIN CAPITAL LETTER R WITH TAIL
580
10
  if (C == 0x2c64)
581
0
    return 0x027d;
582
10
  if (C < 0x2c67)
583
2
    return C;
584
8
  // 3 characters
585
8
  if (C <= 0x2c6b && 
C % 2 == 10
)
586
0
    return C + 1;
587
8
  // LATIN CAPITAL LETTER ALPHA
588
8
  if (C == 0x2c6d)
589
0
    return 0x0251;
590
8
  // LATIN CAPITAL LETTER M WITH HOOK
591
8
  if (C == 0x2c6e)
592
0
    return 0x0271;
593
8
  // LATIN CAPITAL LETTER TURNED A
594
8
  if (C == 0x2c6f)
595
0
    return 0x0250;
596
8
  // LATIN CAPITAL LETTER TURNED ALPHA
597
8
  if (C == 0x2c70)
598
0
    return 0x0252;
599
8
  if (C < 0x2c72)
600
0
    return C;
601
8
  // 2 characters
602
8
  if (C <= 0x2c75 && 
C % 3 == 20
)
603
0
    return C + 1;
604
8
  if (C < 0x2c7e)
605
0
    return C;
606
8
  // 2 characters
607
8
  if (C <= 0x2c7f)
608
0
    return C + -10815;
609
8
  if (C < 0x2c80)
610
0
    return C;
611
8
  // 50 characters
612
8
  if (C <= 0x2ce2)
613
0
    return C | 1;
614
8
  if (C < 0x2ceb)
615
0
    return C;
616
8
  // 2 characters
617
8
  if (C <= 0x2ced && 
C % 2 == 10
)
618
0
    return C + 1;
619
8
  if (C < 0x2cf2)
620
0
    return C;
621
8
  // 2 characters
622
8
  if (C <= 0xa640 && 
C % 31054 == 115060
)
623
0
    return C + 1;
624
8
  if (C < 0xa642)
625
0
    return C;
626
8
  // 22 characters
627
8
  if (C <= 0xa66c)
628
0
    return C | 1;
629
8
  if (C < 0xa680)
630
0
    return C;
631
8
  // 14 characters
632
8
  if (C <= 0xa69a)
633
0
    return C | 1;
634
8
  if (C < 0xa722)
635
0
    return C;
636
8
  // 7 characters
637
8
  if (C <= 0xa72e)
638
0
    return C | 1;
639
8
  if (C < 0xa732)
640
0
    return C;
641
8
  // 31 characters
642
8
  if (C <= 0xa76e)
643
0
    return C | 1;
644
8
  if (C < 0xa779)
645
0
    return C;
646
8
  // 2 characters
647
8
  if (C <= 0xa77b && 
C % 2 == 10
)
648
0
    return C + 1;
649
8
  // LATIN CAPITAL LETTER INSULAR G
650
8
  if (C == 0xa77d)
651
0
    return 0x1d79;
652
8
  if (C < 0xa77e)
653
0
    return C;
654
8
  // 5 characters
655
8
  if (C <= 0xa786)
656
0
    return C | 1;
657
8
  // LATIN CAPITAL LETTER SALTILLO
658
8
  if (C == 0xa78b)
659
0
    return 0xa78c;
660
8
  // LATIN CAPITAL LETTER TURNED H
661
8
  if (C == 0xa78d)
662
0
    return 0x0265;
663
8
  if (C < 0xa790)
664
0
    return C;
665
8
  // 2 characters
666
8
  if (C <= 0xa792)
667
0
    return C | 1;
668
8
  if (C < 0xa796)
669
0
    return C;
670
8
  // 10 characters
671
8
  if (C <= 0xa7a8)
672
0
    return C | 1;
673
8
  // LATIN CAPITAL LETTER H WITH HOOK
674
8
  if (C == 0xa7aa)
675
0
    return 0x0266;
676
8
  // LATIN CAPITAL LETTER REVERSED OPEN E
677
8
  if (C == 0xa7ab)
678
0
    return 0x025c;
679
8
  // LATIN CAPITAL LETTER SCRIPT G
680
8
  if (C == 0xa7ac)
681
0
    return 0x0261;
682
8
  // LATIN CAPITAL LETTER L WITH BELT
683
8
  if (C == 0xa7ad)
684
0
    return 0x026c;
685
8
  // LATIN CAPITAL LETTER SMALL CAPITAL I
686
8
  if (C == 0xa7ae)
687
0
    return 0x026a;
688
8
  // LATIN CAPITAL LETTER TURNED K
689
8
  if (C == 0xa7b0)
690
0
    return 0x029e;
691
8
  // LATIN CAPITAL LETTER TURNED T
692
8
  if (C == 0xa7b1)
693
0
    return 0x0287;
694
8
  // LATIN CAPITAL LETTER J WITH CROSSED-TAIL
695
8
  if (C == 0xa7b2)
696
0
    return 0x029d;
697
8
  // LATIN CAPITAL LETTER CHI
698
8
  if (C == 0xa7b3)
699
0
    return 0xab53;
700
8
  if (C < 0xa7b4)
701
0
    return C;
702
8
  // 2 characters
703
8
  if (C <= 0xa7b6)
704
0
    return C | 1;
705
8
  if (C < 0xab70)
706
0
    return C;
707
8
  // 80 characters
708
8
  if (C <= 0xabbf)
709
0
    return C + -38864;
710
8
  if (C < 0xff21)
711
0
    return C;
712
8
  // 26 characters
713
8
  if (C <= 0xff3a)
714
2
    return C + 32;
715
6
  if (C < 0x10400)
716
2
    return C;
717
4
  // 40 characters
718
4
  if (C <= 0x10427)
719
0
    return C + 40;
720
4
  if (C < 0x104b0)
721
0
    return C;
722
4
  // 36 characters
723
4
  if (C <= 0x104d3)
724
0
    return C + 40;
725
4
  if (C < 0x10c80)
726
0
    return C;
727
4
  // 51 characters
728
4
  if (C <= 0x10cb2)
729
2
    return C + 64;
730
2
  if (C < 0x118a0)
731
2
    return C;
732
0
  // 32 characters
733
0
  if (C <= 0x118bf)
734
0
    return C + 32;
735
0
  if (C < 0x1e900)
736
0
    return C;
737
0
  // 34 characters
738
0
  if (C <= 0x1e921)
739
0
    return C + 34;
740
0
741
0
  return C;
742
0
}