|  | //===---------- Support/UnicodeCaseFold.cpp -------------------------------===// | 
|  | // | 
|  | // This file was generated by utils/unicode-case-fold.py from the Unicode | 
|  | // case folding database at | 
|  | //    http://www.unicode.org/Public/9.0.0/ucd/CaseFolding.txt | 
|  | // | 
|  | // To regenerate this file, run: | 
|  | //   utils/unicode-case-fold.py \ | 
|  | //     "http://www.unicode.org/Public/9.0.0/ucd/CaseFolding.txt" \ | 
|  | //     > lib/Support/UnicodeCaseFold.cpp | 
|  | // | 
|  | //===----------------------------------------------------------------------===// | 
|  |  | 
|  | #include "llvm/Support/Unicode.h" | 
|  |  | 
|  | int llvm::sys::unicode::foldCharSimple(int C) { | 
|  | if (C < 0x0041) | 
|  | return C; | 
|  | // 26 characters | 
|  | if (C <= 0x005a) | 
|  | return C + 32; | 
|  | // MICRO SIGN | 
|  | if (C == 0x00b5) | 
|  | return 0x03bc; | 
|  | if (C < 0x00c0) | 
|  | return C; | 
|  | // 23 characters | 
|  | if (C <= 0x00d6) | 
|  | return C + 32; | 
|  | if (C < 0x00d8) | 
|  | return C; | 
|  | // 7 characters | 
|  | if (C <= 0x00de) | 
|  | return C + 32; | 
|  | if (C < 0x0100) | 
|  | return C; | 
|  | // 24 characters | 
|  | if (C <= 0x012e) | 
|  | return C | 1; | 
|  | if (C < 0x0132) | 
|  | return C; | 
|  | // 3 characters | 
|  | if (C <= 0x0136) | 
|  | return C | 1; | 
|  | if (C < 0x0139) | 
|  | return C; | 
|  | // 8 characters | 
|  | if (C <= 0x0147 && C % 2 == 1) | 
|  | return C + 1; | 
|  | if (C < 0x014a) | 
|  | return C; | 
|  | // 23 characters | 
|  | if (C <= 0x0176) | 
|  | return C | 1; | 
|  | // LATIN CAPITAL LETTER Y WITH DIAERESIS | 
|  | if (C == 0x0178) | 
|  | return 0x00ff; | 
|  | if (C < 0x0179) | 
|  | return C; | 
|  | // 3 characters | 
|  | if (C <= 0x017d && C % 2 == 1) | 
|  | return C + 1; | 
|  | // LATIN SMALL LETTER LONG S | 
|  | if (C == 0x017f) | 
|  | return 0x0073; | 
|  | // LATIN CAPITAL LETTER B WITH HOOK | 
|  | if (C == 0x0181) | 
|  | return 0x0253; | 
|  | if (C < 0x0182) | 
|  | return C; | 
|  | // 2 characters | 
|  | if (C <= 0x0184) | 
|  | return C | 1; | 
|  | // LATIN CAPITAL LETTER OPEN O | 
|  | if (C == 0x0186) | 
|  | return 0x0254; | 
|  | // LATIN CAPITAL LETTER C WITH HOOK | 
|  | if (C == 0x0187) | 
|  | return 0x0188; | 
|  | if (C < 0x0189) | 
|  | return C; | 
|  | // 2 characters | 
|  | if (C <= 0x018a) | 
|  | return C + 205; | 
|  | // LATIN CAPITAL LETTER D WITH TOPBAR | 
|  | if (C == 0x018b) | 
|  | return 0x018c; | 
|  | // LATIN CAPITAL LETTER REVERSED E | 
|  | if (C == 0x018e) | 
|  | return 0x01dd; | 
|  | // LATIN CAPITAL LETTER SCHWA | 
|  | if (C == 0x018f) | 
|  | return 0x0259; | 
|  | // LATIN CAPITAL LETTER OPEN E | 
|  | if (C == 0x0190) | 
|  | return 0x025b; | 
|  | // LATIN CAPITAL LETTER F WITH HOOK | 
|  | if (C == 0x0191) | 
|  | return 0x0192; | 
|  | // LATIN CAPITAL LETTER G WITH HOOK | 
|  | if (C == 0x0193) | 
|  | return 0x0260; | 
|  | // LATIN CAPITAL LETTER GAMMA | 
|  | if (C == 0x0194) | 
|  | return 0x0263; | 
|  | // LATIN CAPITAL LETTER IOTA | 
|  | if (C == 0x0196) | 
|  | return 0x0269; | 
|  | // LATIN CAPITAL LETTER I WITH STROKE | 
|  | if (C == 0x0197) | 
|  | return 0x0268; | 
|  | // LATIN CAPITAL LETTER K WITH HOOK | 
|  | if (C == 0x0198) | 
|  | return 0x0199; | 
|  | // LATIN CAPITAL LETTER TURNED M | 
|  | if (C == 0x019c) | 
|  | return 0x026f; | 
|  | // LATIN CAPITAL LETTER N WITH LEFT HOOK | 
|  | if (C == 0x019d) | 
|  | return 0x0272; | 
|  | // LATIN CAPITAL LETTER O WITH MIDDLE TILDE | 
|  | if (C == 0x019f) | 
|  | return 0x0275; | 
|  | if (C < 0x01a0) | 
|  | return C; | 
|  | // 3 characters | 
|  | if (C <= 0x01a4) | 
|  | return C | 1; | 
|  | // LATIN LETTER YR | 
|  | if (C == 0x01a6) | 
|  | return 0x0280; | 
|  | // LATIN CAPITAL LETTER TONE TWO | 
|  | if (C == 0x01a7) | 
|  | return 0x01a8; | 
|  | // LATIN CAPITAL LETTER ESH | 
|  | if (C == 0x01a9) | 
|  | return 0x0283; | 
|  | // LATIN CAPITAL LETTER T WITH HOOK | 
|  | if (C == 0x01ac) | 
|  | return 0x01ad; | 
|  | // LATIN CAPITAL LETTER T WITH RETROFLEX HOOK | 
|  | if (C == 0x01ae) | 
|  | return 0x0288; | 
|  | // LATIN CAPITAL LETTER U WITH HORN | 
|  | if (C == 0x01af) | 
|  | return 0x01b0; | 
|  | if (C < 0x01b1) | 
|  | return C; | 
|  | // 2 characters | 
|  | if (C <= 0x01b2) | 
|  | return C + 217; | 
|  | if (C < 0x01b3) | 
|  | return C; | 
|  | // 2 characters | 
|  | if (C <= 0x01b5 && C % 2 == 1) | 
|  | return C + 1; | 
|  | // LATIN CAPITAL LETTER EZH | 
|  | if (C == 0x01b7) | 
|  | return 0x0292; | 
|  | if (C < 0x01b8) | 
|  | return C; | 
|  | // 2 characters | 
|  | if (C <= 0x01bc && C % 4 == 0) | 
|  | return C + 1; | 
|  | // LATIN CAPITAL LETTER DZ WITH CARON | 
|  | if (C == 0x01c4) | 
|  | return 0x01c6; | 
|  | // LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON | 
|  | if (C == 0x01c5) | 
|  | return 0x01c6; | 
|  | // LATIN CAPITAL LETTER LJ | 
|  | if (C == 0x01c7) | 
|  | return 0x01c9; | 
|  | // LATIN CAPITAL LETTER L WITH SMALL LETTER J | 
|  | if (C == 0x01c8) | 
|  | return 0x01c9; | 
|  | // LATIN CAPITAL LETTER NJ | 
|  | if (C == 0x01ca) | 
|  | return 0x01cc; | 
|  | if (C < 0x01cb) | 
|  | return C; | 
|  | // 9 characters | 
|  | if (C <= 0x01db && C % 2 == 1) | 
|  | return C + 1; | 
|  | if (C < 0x01de) | 
|  | return C; | 
|  | // 9 characters | 
|  | if (C <= 0x01ee) | 
|  | return C | 1; | 
|  | // LATIN CAPITAL LETTER DZ | 
|  | if (C == 0x01f1) | 
|  | return 0x01f3; | 
|  | if (C < 0x01f2) | 
|  | return C; | 
|  | // 2 characters | 
|  | if (C <= 0x01f4) | 
|  | return C | 1; | 
|  | // LATIN CAPITAL LETTER HWAIR | 
|  | if (C == 0x01f6) | 
|  | return 0x0195; | 
|  | // LATIN CAPITAL LETTER WYNN | 
|  | if (C == 0x01f7) | 
|  | return 0x01bf; | 
|  | if (C < 0x01f8) | 
|  | return C; | 
|  | // 20 characters | 
|  | if (C <= 0x021e) | 
|  | return C | 1; | 
|  | // LATIN CAPITAL LETTER N WITH LONG RIGHT LEG | 
|  | if (C == 0x0220) | 
|  | return 0x019e; | 
|  | if (C < 0x0222) | 
|  | return C; | 
|  | // 9 characters | 
|  | if (C <= 0x0232) | 
|  | return C | 1; | 
|  | // LATIN CAPITAL LETTER A WITH STROKE | 
|  | if (C == 0x023a) | 
|  | return 0x2c65; | 
|  | // LATIN CAPITAL LETTER C WITH STROKE | 
|  | if (C == 0x023b) | 
|  | return 0x023c; | 
|  | // LATIN CAPITAL LETTER L WITH BAR | 
|  | if (C == 0x023d) | 
|  | return 0x019a; | 
|  | // LATIN CAPITAL LETTER T WITH DIAGONAL STROKE | 
|  | if (C == 0x023e) | 
|  | return 0x2c66; | 
|  | // LATIN CAPITAL LETTER GLOTTAL STOP | 
|  | if (C == 0x0241) | 
|  | return 0x0242; | 
|  | // LATIN CAPITAL LETTER B WITH STROKE | 
|  | if (C == 0x0243) | 
|  | return 0x0180; | 
|  | // LATIN CAPITAL LETTER U BAR | 
|  | if (C == 0x0244) | 
|  | return 0x0289; | 
|  | // LATIN CAPITAL LETTER TURNED V | 
|  | if (C == 0x0245) | 
|  | return 0x028c; | 
|  | if (C < 0x0246) | 
|  | return C; | 
|  | // 5 characters | 
|  | if (C <= 0x024e) | 
|  | return C | 1; | 
|  | // COMBINING GREEK YPOGEGRAMMENI | 
|  | if (C == 0x0345) | 
|  | return 0x03b9; | 
|  | if (C < 0x0370) | 
|  | return C; | 
|  | // 2 characters | 
|  | if (C <= 0x0372) | 
|  | return C | 1; | 
|  | // GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA | 
|  | if (C == 0x0376) | 
|  | return 0x0377; | 
|  | // GREEK CAPITAL LETTER YOT | 
|  | if (C == 0x037f) | 
|  | return 0x03f3; | 
|  | // GREEK CAPITAL LETTER ALPHA WITH TONOS | 
|  | if (C == 0x0386) | 
|  | return 0x03ac; | 
|  | if (C < 0x0388) | 
|  | return C; | 
|  | // 3 characters | 
|  | if (C <= 0x038a) | 
|  | return C + 37; | 
|  | // GREEK CAPITAL LETTER OMICRON WITH TONOS | 
|  | if (C == 0x038c) | 
|  | return 0x03cc; | 
|  | if (C < 0x038e) | 
|  | return C; | 
|  | // 2 characters | 
|  | if (C <= 0x038f) | 
|  | return C + 63; | 
|  | if (C < 0x0391) | 
|  | return C; | 
|  | // 17 characters | 
|  | if (C <= 0x03a1) | 
|  | return C + 32; | 
|  | if (C < 0x03a3) | 
|  | return C; | 
|  | // 9 characters | 
|  | if (C <= 0x03ab) | 
|  | return C + 32; | 
|  | // GREEK SMALL LETTER FINAL SIGMA | 
|  | if (C == 0x03c2) | 
|  | return 0x03c3; | 
|  | // GREEK CAPITAL KAI SYMBOL | 
|  | if (C == 0x03cf) | 
|  | return 0x03d7; | 
|  | // GREEK BETA SYMBOL | 
|  | if (C == 0x03d0) | 
|  | return 0x03b2; | 
|  | // GREEK THETA SYMBOL | 
|  | if (C == 0x03d1) | 
|  | return 0x03b8; | 
|  | // GREEK PHI SYMBOL | 
|  | if (C == 0x03d5) | 
|  | return 0x03c6; | 
|  | // GREEK PI SYMBOL | 
|  | if (C == 0x03d6) | 
|  | return 0x03c0; | 
|  | if (C < 0x03d8) | 
|  | return C; | 
|  | // 12 characters | 
|  | if (C <= 0x03ee) | 
|  | return C | 1; | 
|  | // GREEK KAPPA SYMBOL | 
|  | if (C == 0x03f0) | 
|  | return 0x03ba; | 
|  | // GREEK RHO SYMBOL | 
|  | if (C == 0x03f1) | 
|  | return 0x03c1; | 
|  | // GREEK CAPITAL THETA SYMBOL | 
|  | if (C == 0x03f4) | 
|  | return 0x03b8; | 
|  | // GREEK LUNATE EPSILON SYMBOL | 
|  | if (C == 0x03f5) | 
|  | return 0x03b5; | 
|  | // GREEK CAPITAL LETTER SHO | 
|  | if (C == 0x03f7) | 
|  | return 0x03f8; | 
|  | // GREEK CAPITAL LUNATE SIGMA SYMBOL | 
|  | if (C == 0x03f9) | 
|  | return 0x03f2; | 
|  | // GREEK CAPITAL LETTER SAN | 
|  | if (C == 0x03fa) | 
|  | return 0x03fb; | 
|  | if (C < 0x03fd) | 
|  | return C; | 
|  | // 3 characters | 
|  | if (C <= 0x03ff) | 
|  | return C + -130; | 
|  | if (C < 0x0400) | 
|  | return C; | 
|  | // 16 characters | 
|  | if (C <= 0x040f) | 
|  | return C + 80; | 
|  | if (C < 0x0410) | 
|  | return C; | 
|  | // 32 characters | 
|  | if (C <= 0x042f) | 
|  | return C + 32; | 
|  | if (C < 0x0460) | 
|  | return C; | 
|  | // 17 characters | 
|  | if (C <= 0x0480) | 
|  | return C | 1; | 
|  | if (C < 0x048a) | 
|  | return C; | 
|  | // 27 characters | 
|  | if (C <= 0x04be) | 
|  | return C | 1; | 
|  | // CYRILLIC LETTER PALOCHKA | 
|  | if (C == 0x04c0) | 
|  | return 0x04cf; | 
|  | if (C < 0x04c1) | 
|  | return C; | 
|  | // 7 characters | 
|  | if (C <= 0x04cd && C % 2 == 1) | 
|  | return C + 1; | 
|  | if (C < 0x04d0) | 
|  | return C; | 
|  | // 48 characters | 
|  | if (C <= 0x052e) | 
|  | return C | 1; | 
|  | if (C < 0x0531) | 
|  | return C; | 
|  | // 38 characters | 
|  | if (C <= 0x0556) | 
|  | return C + 48; | 
|  | if (C < 0x10a0) | 
|  | return C; | 
|  | // 38 characters | 
|  | if (C <= 0x10c5) | 
|  | return C + 7264; | 
|  | if (C < 0x10c7) | 
|  | return C; | 
|  | // 2 characters | 
|  | if (C <= 0x10cd && C % 6 == 5) | 
|  | return C + 7264; | 
|  | if (C < 0x13f8) | 
|  | return C; | 
|  | // 6 characters | 
|  | if (C <= 0x13fd) | 
|  | return C + -8; | 
|  | // CYRILLIC SMALL LETTER ROUNDED VE | 
|  | if (C == 0x1c80) | 
|  | return 0x0432; | 
|  | // CYRILLIC SMALL LETTER LONG-LEGGED DE | 
|  | if (C == 0x1c81) | 
|  | return 0x0434; | 
|  | // CYRILLIC SMALL LETTER NARROW O | 
|  | if (C == 0x1c82) | 
|  | return 0x043e; | 
|  | if (C < 0x1c83) | 
|  | return C; | 
|  | // 2 characters | 
|  | if (C <= 0x1c84) | 
|  | return C + -6210; | 
|  | // CYRILLIC SMALL LETTER THREE-LEGGED TE | 
|  | if (C == 0x1c85) | 
|  | return 0x0442; | 
|  | // CYRILLIC SMALL LETTER TALL HARD SIGN | 
|  | if (C == 0x1c86) | 
|  | return 0x044a; | 
|  | // CYRILLIC SMALL LETTER TALL YAT | 
|  | if (C == 0x1c87) | 
|  | return 0x0463; | 
|  | // CYRILLIC SMALL LETTER UNBLENDED UK | 
|  | if (C == 0x1c88) | 
|  | return 0xa64b; | 
|  | if (C < 0x1e00) | 
|  | return C; | 
|  | // 75 characters | 
|  | if (C <= 0x1e94) | 
|  | return C | 1; | 
|  | // LATIN SMALL LETTER LONG S WITH DOT ABOVE | 
|  | if (C == 0x1e9b) | 
|  | return 0x1e61; | 
|  | // LATIN CAPITAL LETTER SHARP S | 
|  | if (C == 0x1e9e) | 
|  | return 0x00df; | 
|  | if (C < 0x1ea0) | 
|  | return C; | 
|  | // 48 characters | 
|  | if (C <= 0x1efe) | 
|  | return C | 1; | 
|  | if (C < 0x1f08) | 
|  | return C; | 
|  | // 8 characters | 
|  | if (C <= 0x1f0f) | 
|  | return C + -8; | 
|  | if (C < 0x1f18) | 
|  | return C; | 
|  | // 6 characters | 
|  | if (C <= 0x1f1d) | 
|  | return C + -8; | 
|  | if (C < 0x1f28) | 
|  | return C; | 
|  | // 8 characters | 
|  | if (C <= 0x1f2f) | 
|  | return C + -8; | 
|  | if (C < 0x1f38) | 
|  | return C; | 
|  | // 8 characters | 
|  | if (C <= 0x1f3f) | 
|  | return C + -8; | 
|  | if (C < 0x1f48) | 
|  | return C; | 
|  | // 6 characters | 
|  | if (C <= 0x1f4d) | 
|  | return C + -8; | 
|  | if (C < 0x1f59) | 
|  | return C; | 
|  | // 4 characters | 
|  | if (C <= 0x1f5f && C % 2 == 1) | 
|  | return C + -8; | 
|  | if (C < 0x1f68) | 
|  | return C; | 
|  | // 8 characters | 
|  | if (C <= 0x1f6f) | 
|  | return C + -8; | 
|  | if (C < 0x1f88) | 
|  | return C; | 
|  | // 8 characters | 
|  | if (C <= 0x1f8f) | 
|  | return C + -8; | 
|  | if (C < 0x1f98) | 
|  | return C; | 
|  | // 8 characters | 
|  | if (C <= 0x1f9f) | 
|  | return C + -8; | 
|  | if (C < 0x1fa8) | 
|  | return C; | 
|  | // 8 characters | 
|  | if (C <= 0x1faf) | 
|  | return C + -8; | 
|  | if (C < 0x1fb8) | 
|  | return C; | 
|  | // 2 characters | 
|  | if (C <= 0x1fb9) | 
|  | return C + -8; | 
|  | if (C < 0x1fba) | 
|  | return C; | 
|  | // 2 characters | 
|  | if (C <= 0x1fbb) | 
|  | return C + -74; | 
|  | // GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI | 
|  | if (C == 0x1fbc) | 
|  | return 0x1fb3; | 
|  | // GREEK PROSGEGRAMMENI | 
|  | if (C == 0x1fbe) | 
|  | return 0x03b9; | 
|  | if (C < 0x1fc8) | 
|  | return C; | 
|  | // 4 characters | 
|  | if (C <= 0x1fcb) | 
|  | return C + -86; | 
|  | // GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI | 
|  | if (C == 0x1fcc) | 
|  | return 0x1fc3; | 
|  | if (C < 0x1fd8) | 
|  | return C; | 
|  | // 2 characters | 
|  | if (C <= 0x1fd9) | 
|  | return C + -8; | 
|  | if (C < 0x1fda) | 
|  | return C; | 
|  | // 2 characters | 
|  | if (C <= 0x1fdb) | 
|  | return C + -100; | 
|  | if (C < 0x1fe8) | 
|  | return C; | 
|  | // 2 characters | 
|  | if (C <= 0x1fe9) | 
|  | return C + -8; | 
|  | if (C < 0x1fea) | 
|  | return C; | 
|  | // 2 characters | 
|  | if (C <= 0x1feb) | 
|  | return C + -112; | 
|  | // GREEK CAPITAL LETTER RHO WITH DASIA | 
|  | if (C == 0x1fec) | 
|  | return 0x1fe5; | 
|  | if (C < 0x1ff8) | 
|  | return C; | 
|  | // 2 characters | 
|  | if (C <= 0x1ff9) | 
|  | return C + -128; | 
|  | if (C < 0x1ffa) | 
|  | return C; | 
|  | // 2 characters | 
|  | if (C <= 0x1ffb) | 
|  | return C + -126; | 
|  | // GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI | 
|  | if (C == 0x1ffc) | 
|  | return 0x1ff3; | 
|  | // OHM SIGN | 
|  | if (C == 0x2126) | 
|  | return 0x03c9; | 
|  | // KELVIN SIGN | 
|  | if (C == 0x212a) | 
|  | return 0x006b; | 
|  | // ANGSTROM SIGN | 
|  | if (C == 0x212b) | 
|  | return 0x00e5; | 
|  | // TURNED CAPITAL F | 
|  | if (C == 0x2132) | 
|  | return 0x214e; | 
|  | if (C < 0x2160) | 
|  | return C; | 
|  | // 16 characters | 
|  | if (C <= 0x216f) | 
|  | return C + 16; | 
|  | // ROMAN NUMERAL REVERSED ONE HUNDRED | 
|  | if (C == 0x2183) | 
|  | return 0x2184; | 
|  | if (C < 0x24b6) | 
|  | return C; | 
|  | // 26 characters | 
|  | if (C <= 0x24cf) | 
|  | return C + 26; | 
|  | if (C < 0x2c00) | 
|  | return C; | 
|  | // 47 characters | 
|  | if (C <= 0x2c2e) | 
|  | return C + 48; | 
|  | // LATIN CAPITAL LETTER L WITH DOUBLE BAR | 
|  | if (C == 0x2c60) | 
|  | return 0x2c61; | 
|  | // LATIN CAPITAL LETTER L WITH MIDDLE TILDE | 
|  | if (C == 0x2c62) | 
|  | return 0x026b; | 
|  | // LATIN CAPITAL LETTER P WITH STROKE | 
|  | if (C == 0x2c63) | 
|  | return 0x1d7d; | 
|  | // LATIN CAPITAL LETTER R WITH TAIL | 
|  | if (C == 0x2c64) | 
|  | return 0x027d; | 
|  | if (C < 0x2c67) | 
|  | return C; | 
|  | // 3 characters | 
|  | if (C <= 0x2c6b && C % 2 == 1) | 
|  | return C + 1; | 
|  | // LATIN CAPITAL LETTER ALPHA | 
|  | if (C == 0x2c6d) | 
|  | return 0x0251; | 
|  | // LATIN CAPITAL LETTER M WITH HOOK | 
|  | if (C == 0x2c6e) | 
|  | return 0x0271; | 
|  | // LATIN CAPITAL LETTER TURNED A | 
|  | if (C == 0x2c6f) | 
|  | return 0x0250; | 
|  | // LATIN CAPITAL LETTER TURNED ALPHA | 
|  | if (C == 0x2c70) | 
|  | return 0x0252; | 
|  | if (C < 0x2c72) | 
|  | return C; | 
|  | // 2 characters | 
|  | if (C <= 0x2c75 && C % 3 == 2) | 
|  | return C + 1; | 
|  | if (C < 0x2c7e) | 
|  | return C; | 
|  | // 2 characters | 
|  | if (C <= 0x2c7f) | 
|  | return C + -10815; | 
|  | if (C < 0x2c80) | 
|  | return C; | 
|  | // 50 characters | 
|  | if (C <= 0x2ce2) | 
|  | return C | 1; | 
|  | if (C < 0x2ceb) | 
|  | return C; | 
|  | // 2 characters | 
|  | if (C <= 0x2ced && C % 2 == 1) | 
|  | return C + 1; | 
|  | if (C < 0x2cf2) | 
|  | return C; | 
|  | // 2 characters | 
|  | if (C <= 0xa640 && C % 31054 == 11506) | 
|  | return C + 1; | 
|  | if (C < 0xa642) | 
|  | return C; | 
|  | // 22 characters | 
|  | if (C <= 0xa66c) | 
|  | return C | 1; | 
|  | if (C < 0xa680) | 
|  | return C; | 
|  | // 14 characters | 
|  | if (C <= 0xa69a) | 
|  | return C | 1; | 
|  | if (C < 0xa722) | 
|  | return C; | 
|  | // 7 characters | 
|  | if (C <= 0xa72e) | 
|  | return C | 1; | 
|  | if (C < 0xa732) | 
|  | return C; | 
|  | // 31 characters | 
|  | if (C <= 0xa76e) | 
|  | return C | 1; | 
|  | if (C < 0xa779) | 
|  | return C; | 
|  | // 2 characters | 
|  | if (C <= 0xa77b && C % 2 == 1) | 
|  | return C + 1; | 
|  | // LATIN CAPITAL LETTER INSULAR G | 
|  | if (C == 0xa77d) | 
|  | return 0x1d79; | 
|  | if (C < 0xa77e) | 
|  | return C; | 
|  | // 5 characters | 
|  | if (C <= 0xa786) | 
|  | return C | 1; | 
|  | // LATIN CAPITAL LETTER SALTILLO | 
|  | if (C == 0xa78b) | 
|  | return 0xa78c; | 
|  | // LATIN CAPITAL LETTER TURNED H | 
|  | if (C == 0xa78d) | 
|  | return 0x0265; | 
|  | if (C < 0xa790) | 
|  | return C; | 
|  | // 2 characters | 
|  | if (C <= 0xa792) | 
|  | return C | 1; | 
|  | if (C < 0xa796) | 
|  | return C; | 
|  | // 10 characters | 
|  | if (C <= 0xa7a8) | 
|  | return C | 1; | 
|  | // LATIN CAPITAL LETTER H WITH HOOK | 
|  | if (C == 0xa7aa) | 
|  | return 0x0266; | 
|  | // LATIN CAPITAL LETTER REVERSED OPEN E | 
|  | if (C == 0xa7ab) | 
|  | return 0x025c; | 
|  | // LATIN CAPITAL LETTER SCRIPT G | 
|  | if (C == 0xa7ac) | 
|  | return 0x0261; | 
|  | // LATIN CAPITAL LETTER L WITH BELT | 
|  | if (C == 0xa7ad) | 
|  | return 0x026c; | 
|  | // LATIN CAPITAL LETTER SMALL CAPITAL I | 
|  | if (C == 0xa7ae) | 
|  | return 0x026a; | 
|  | // LATIN CAPITAL LETTER TURNED K | 
|  | if (C == 0xa7b0) | 
|  | return 0x029e; | 
|  | // LATIN CAPITAL LETTER TURNED T | 
|  | if (C == 0xa7b1) | 
|  | return 0x0287; | 
|  | // LATIN CAPITAL LETTER J WITH CROSSED-TAIL | 
|  | if (C == 0xa7b2) | 
|  | return 0x029d; | 
|  | // LATIN CAPITAL LETTER CHI | 
|  | if (C == 0xa7b3) | 
|  | return 0xab53; | 
|  | if (C < 0xa7b4) | 
|  | return C; | 
|  | // 2 characters | 
|  | if (C <= 0xa7b6) | 
|  | return C | 1; | 
|  | if (C < 0xab70) | 
|  | return C; | 
|  | // 80 characters | 
|  | if (C <= 0xabbf) | 
|  | return C + -38864; | 
|  | if (C < 0xff21) | 
|  | return C; | 
|  | // 26 characters | 
|  | if (C <= 0xff3a) | 
|  | return C + 32; | 
|  | if (C < 0x10400) | 
|  | return C; | 
|  | // 40 characters | 
|  | if (C <= 0x10427) | 
|  | return C + 40; | 
|  | if (C < 0x104b0) | 
|  | return C; | 
|  | // 36 characters | 
|  | if (C <= 0x104d3) | 
|  | return C + 40; | 
|  | if (C < 0x10c80) | 
|  | return C; | 
|  | // 51 characters | 
|  | if (C <= 0x10cb2) | 
|  | return C + 64; | 
|  | if (C < 0x118a0) | 
|  | return C; | 
|  | // 32 characters | 
|  | if (C <= 0x118bf) | 
|  | return C + 32; | 
|  | if (C < 0x1e900) | 
|  | return C; | 
|  | // 34 characters | 
|  | if (C <= 0x1e921) | 
|  | return C + 34; | 
|  |  | 
|  | return C; | 
|  | } |