diff --git a/stdlib/private/StdlibUnicodeUnittest/UnicodeScalarProperties.swift b/stdlib/private/StdlibUnicodeUnittest/UnicodeScalarProperties.swift index 212eb14b90469..83cb7e305fade 100644 --- a/stdlib/private/StdlibUnicodeUnittest/UnicodeScalarProperties.swift +++ b/stdlib/private/StdlibUnicodeUnittest/UnicodeScalarProperties.swift @@ -635,4 +635,53 @@ public let names: [Unicode.Scalar: String] = { return result }() + +//===----------------------------------------------------------------------===// +// Case Folding +//===----------------------------------------------------------------------===// + +func parseCaseFoldings( + _ data: String, + into result: inout [Unicode.Scalar: String] +) { + for line in data.split(separator: "\n") { + // Skip comments + guard !line.hasPrefix("#") else { + continue + } + + let components = line.split(separator: ";") + + let status = components[1].filter { !$0.isWhitespace } + + // We only care about Common and Full case mappings. + guard status == "C" || status == "F" else { + continue + } + + let scalar = Unicode.Scalar(parseScalars(String(components[0])).lowerBound)! + + let mapping = components[2].split(separator: " ").map { + Unicode.Scalar(UInt32($0, radix: 16)!)! + } + + var mappingString = "" + + for scalar in mapping { + mappingString.unicodeScalars.append(scalar) + } + + result[scalar] = mappingString + } +} + +public let caseFolding: [Unicode.Scalar: String] = { + var result: [Unicode.Scalar: String] = [:] + + let caseFolding = readInputFile("CaseFolding.txt") + parseCaseFoldings(caseFolding, into: &result) + + return result +}() + #endif diff --git a/stdlib/public/SwiftShims/UnicodeData.h b/stdlib/public/SwiftShims/UnicodeData.h index 32669900ad3c9..8ab5ee788e9e9 100644 --- a/stdlib/public/SwiftShims/UnicodeData.h +++ b/stdlib/public/SwiftShims/UnicodeData.h @@ -108,6 +108,10 @@ const __swift_uint8_t *_swift_stdlib_getScriptExtensions( __swift_uint32_t scalar, __swift_uint8_t *count); +SWIFT_RUNTIME_STDLIB_INTERNAL +void _swift_stdlib_getCaseMapping(__swift_uint32_t scalar, + __swift_uint32_t *buffer); + #ifdef __cplusplus } // extern "C" #endif diff --git a/stdlib/public/core/UnicodeSPI.swift b/stdlib/public/core/UnicodeSPI.swift index bb8c22c43ecc4..a6562dcfcabcc 100644 --- a/stdlib/public/core/UnicodeSPI.swift +++ b/stdlib/public/core/UnicodeSPI.swift @@ -165,3 +165,37 @@ extension Unicode.Scalar.Properties { return result } } + +//===----------------------------------------------------------------------===// +// Case folding +//===----------------------------------------------------------------------===// + +extension Unicode.Scalar.Properties { + @_spi(_Unicode) + @available(SwiftStdlib 5.7, *) + public var _caseFolded: String { + var buffer: (UInt32, UInt32, UInt32) = (.max, .max, .max) + + withUnsafeMutableBytes(of: &buffer) { + // This is safe because the memory is already UInt32 + let ptr = $0.baseAddress!.assumingMemoryBound(to: UInt32.self) + _swift_stdlib_getCaseMapping(_scalar.value, ptr) + } + + var result = "" + // Max mapping is 3 scalars and the max UTF8 bytes of a scalar is 4. + result.reserveCapacity(12) + + withUnsafeBytes(of: &buffer) { + for scalar in $0.bindMemory(to: UInt32.self) { + guard scalar != .max else { + break + } + + result.unicodeScalars.append(Unicode.Scalar(scalar)!) + } + } + + return result + } +} diff --git a/stdlib/public/stubs/Unicode/Common/CaseData.h b/stdlib/public/stubs/Unicode/Common/CaseData.h new file mode 100644 index 0000000000000..a5804d092d4ee --- /dev/null +++ b/stdlib/public/stubs/Unicode/Common/CaseData.h @@ -0,0 +1,522 @@ +//===----------------------------------------------------------------------===// +// +// This source file is part of the Swift.org open source project +// +// Copyright (c) 2022 Apple Inc. and the Swift project authors +// Licensed under Apache License v2.0 with Runtime Library Exception +// +// See https://swift.org/LICENSE.txt for license information +// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors +// +//===----------------------------------------------------------------------===// + +// This was auto-generated by utils/gen-unicode-data/GenCaseFolding, +// please do not edit this file yourself! + +#ifndef CASE_DATA_H +#define CASE_DATA_H + +#include "SwiftShims/SwiftStdint.h" + +#define CASE_FOLD_LEVEL_COUNT 11 + +static const __swift_uint16_t _swift_stdlib_case_sizes[11] = { + 0x5FA, 0x3D1, 0x273, 0x18F, 0xFB, 0xA1, 0x64, 0x40, 0x40, 0x40, 0x40, +}; + +static const __swift_uint64_t _swift_stdlib_case_keys0[24] = { + 0x589E147580100827, 0x68EA41888C282150, 0x801914621D963201, 0x290B20700C9122C4, + 0x1E16040885095795, 0x523110E4981826B5, 0x942B5B5621601980, 0xFB9900DF7B585025, + 0xC0D1234033154454, 0xD80C644B4B101A18, 0x3F260231A8A1C019, 0x94AE343C3229B16E, + 0x1E0030988862B103, 0x600441184E110845, 0x86893599991AFCB1, 0x201A65A18764592A, + 0x180F841502000C03, 0x2BA9BB40E0548967, 0x58A6482598AE45C2, 0x10449AC548404B24, + 0x246C3440880E0092, 0xE03E20000E700A6A, 0x55C0828111A72210, 0x2B1A4920AD30E61, +}; + +static const __swift_uint64_t _swift_stdlib_case_keys1[16] = { + 0x88E38C24203A63FA, 0x102850150103081C, 0x81513981ADA2415, 0x508EE76BB0000255, 0x3582B6840C0C5402, + 0x9D42A80E94815A7D, 0x573E68259041A2F0, 0x441D084DB2A44011, 0x6C22B1DA28210040, + 0x3640124C900254A8, 0x800F1D847C268200, 0x130502C98089B277, 0x2691246E7270AE80, + 0x1408909C195C42C0, 0x96439256B6A02902, 0x18B4C, +}; + +static const __swift_uint64_t _swift_stdlib_case_keys2[10] = { + 0x60A870214186EBB, 0x4C80B5059118829, 0x69D622E97360E012, 0xB432343B0D0402B, 0x1D85A114EE903410, + 0x287930A262C95C68, 0x248188827E453430, 0xC551001840CF23FA, 0x176520103540305E, 0xA5288E108101, +}; + +static const __swift_uint64_t _swift_stdlib_case_keys3[7] = { + 0x16028BDA131AA, 0x1D8E48C0C082EB34, 0x14047F40209196A3, 0x259456F563BC8A2B, 0x213C0D0403E03518, + 0xA00A04829C240E0A, 0x62A7, +}; + +static const __swift_uint64_t _swift_stdlib_case_keys4[4] = { + 0x104AA2A05C06B1BC, 0x6A80DB1162A21000, 0x154C23621133412, 0x184198115D5D157, +}; + +static const __swift_uint64_t _swift_stdlib_case_keys5[3] = { + 0x1F06A98600396120, 0xA089C33131BA3172, 0x4C49639, +}; + +static const __swift_uint64_t _swift_stdlib_case_keys6[2] = { + 0x131906E7404244E2, 0x845ECACEE, +}; + +static const __swift_uint64_t _swift_stdlib_case_keys7[1] = { + 0x7951B8CCA1F99067, +}; + +static const __swift_uint64_t _swift_stdlib_case_keys8[1] = { + 0x102009000800A0, +}; + +static const __swift_uint64_t _swift_stdlib_case_keys9[1] = { + 0x1406004021214400, +}; + +static const __swift_uint64_t _swift_stdlib_case_keys10[1] = { + 0x401000012C000900, +}; + +static const __swift_uint64_t * const _swift_stdlib_case_keys[11] = { + _swift_stdlib_case_keys0, _swift_stdlib_case_keys1, _swift_stdlib_case_keys2, + _swift_stdlib_case_keys3, _swift_stdlib_case_keys4, _swift_stdlib_case_keys5, + _swift_stdlib_case_keys6, _swift_stdlib_case_keys7, _swift_stdlib_case_keys8, + _swift_stdlib_case_keys9, _swift_stdlib_case_keys10, +}; + +static const __swift_uint16_t _swift_stdlib_case_ranks0[3] = { + 0x0, 0xBB, 0x17B, +}; + +static const __swift_uint16_t _swift_stdlib_case_ranks1[2] = { + 0x229, 0x2E4, +}; + +static const __swift_uint16_t _swift_stdlib_case_ranks2[2] = { + 0x387, 0x447, +}; + +static const __swift_uint16_t _swift_stdlib_case_ranks3[1] = { + 0x46B, +}; + +static const __swift_uint16_t _swift_stdlib_case_ranks4[1] = { + 0x4FF, +}; + +static const __swift_uint16_t _swift_stdlib_case_ranks5[1] = { + 0x559, +}; + +static const __swift_uint16_t _swift_stdlib_case_ranks6[1] = { + 0x596, +}; + +static const __swift_uint16_t _swift_stdlib_case_ranks7[1] = { + 0x5C0, +}; + +static const __swift_uint16_t _swift_stdlib_case_ranks8[1] = { + 0x5E0, +}; + +static const __swift_uint16_t _swift_stdlib_case_ranks9[1] = { + 0x5E7, +}; + +static const __swift_uint16_t _swift_stdlib_case_ranks10[1] = { + 0x5F2, +}; + +static const __swift_uint16_t * const _swift_stdlib_case_ranks[11] = { + _swift_stdlib_case_ranks0, _swift_stdlib_case_ranks1, _swift_stdlib_case_ranks2, + _swift_stdlib_case_ranks3, _swift_stdlib_case_ranks4, _swift_stdlib_case_ranks5, + _swift_stdlib_case_ranks6, _swift_stdlib_case_ranks7, _swift_stdlib_case_ranks8, + _swift_stdlib_case_ranks9, _swift_stdlib_case_ranks10, +}; + +static const __swift_uint64_t _swift_stdlib_case[1530] = { + 0x1FFFFFFBC1E90D, 0x178001CA4, 0x1FFFFFFFE0A72A, 0x1FFFFFFFE0A742, 0x1FFFFFFBC1E901, + 0x1FFFFFFE002162, 0x1FFFFFFFE0016A, 0x1FFFFFFFE0A692, 0x8000000000001E9E, 0x1FFFFFFB010401, + 0x178001CAC, 0x8000000000001FC3, 0x1FFFFFFFE02CDE, 0x1FFFFFFFE02C96, 0x1FFFFFFC000041, + 0x1FFFFFFB01040A, 0x1FFFFFFFE00164, 0x178001CB1, 0x1FFFFFFFE0A726, 0x1FFFFFFC0118B3, 0x178001CB7, + 0x14A540A7B1, 0x1FFFFFFB0104CC, 0x10013FB, 0x1FFFFFFFE0013F, 0x1FFFFFFB01040D, 0x1FFFFFFFE01EAA, + 0x1FFFFFFA002C1D, 0x10013F9, 0x1FFFFFFFE0A666, 0x1FFFFFFA002C00, 0x1FFFFC740010A5, + 0x1FFFFFFFE0011A, 0x1FFFFFFFE0A786, 0x1FFFFFFFE00522, 0x1FFFFFF8010C82, 0x1FFFFFFFE01E8E, + 0x178001CAF, 0x1FFFFFFFE02CF2, 0x1FFFFFFFE02C8C, 0x12FA00ABB4, 0x1FFFFFFFE0A7C2, + 0x8000000000001FA7, 0x1FFFFFFFE01E28, 0x1FFFFFFFE01EBE, 0x1FFFFFFFE0A7C7, 0x1FFFFFFB0104B1, + 0x1FFFFFFFE01E0E, 0x178001CA8, 0x1FFFFFFC0000CE, 0x1FFFFFFC0000CD, 0x104003FE, 0x1FFFFFFBC1E906, + 0x1FFFFFFFE01E8A, 0x1FFFFFFFE0010E, 0x12FA00ABB3, 0x1FFFFFFA000547, 0x1FFFFFFFE00514, + 0x1FFFFFFA002C27, 0x9401FBA, 0x8000000000001F97, 0x1FFFFFFFE01EE0, 0x1001F6F, 0x1FFFFC740010B7, + 0x178001CB4, 0x1FFFFFFFE01ECA, 0x1FFFFFFFE00464, 0x1FFFFFFC0118A7, 0x1FFFFFFFE02C80, + 0x1FFFFFFFE02CA4, 0x1FFFFFF6000401, 0x178001C96, 0x1FFFFFFB21058A, 0x1FFFFFFC0000C5, + 0x1FFFFFFFE004C7, 0x1FFFFFFE00216C, 0x1FFFFFFFE01E4C, 0x1FFFFFFB010418, 0x1FFFFFFC00041F, + 0x1FFFFFFFE0A668, 0x1FFFFFFFE01E50, 0x1FFFFFFFE0011E, 0x1FFFFC740010C0, 0x1FFFFFFFE0024C, + 0x1FFFFFFFE0020A, 0x1FFFFFFFE004AC, 0x1FFFFFF8010C91, 0x8000000000001F80, 0x543C02C70, + 0x1FFFFFFC000419, 0x1FFFFFFA002C10, 0x1FFFFFFFE0A7A8, 0x12FA00ABA0, 0xE01FEC, 0x1FFFFFFFE01E82, + 0x1FFFFFF8010C95, 0x8000000000000390, 0x1FFFFC740010B1, 0x1FFFFFE6600189, 0x1FFFFFF7600244, + 0x1FFFFFF8010C8E, 0x1FFFFFFFE0A650, 0x1FFFFFFC000418, 0x1FFFFFFFE01E62, 0x1FFFFFFC016E48, + 0x800000000000FB00, 0x12FA00ABB5, 0x1FFFFFFB210573, 0x1FFFFFFC0000C9, 0x12FA00ABBD, + 0x1FFFFFFFE0047A, 0x1FFFFFFC016E4A, 0x1FFFFFFA002C28, 0x178001CAA, 0x1FFFFFFFE01E7C, + 0x1FFFFFFFE00141, 0x800000000000FB14, 0x1FFFFFFFE004EC, 0x12FA00AB76, 0x8000000000001F50, + 0x1FFFFFF600040F, 0x1FFFFFFFE00528, 0x1FFFFFFFE0A654, 0x8000000000001FE7, 0x1FFFFFFFE00496, + 0x1FFFFFF8010CA0, 0x14A9E0A7AB, 0x1FFFFFFA000533, 0x12FA00ABA9, 0x1FFFFFFA002C11, + 0x1FFFFFFFE02CBC, 0x8000000000001FA9, 0x1FFFFFFB010411, 0x12FA00AB88, 0x1FFFFFFFE02C92, + 0x1FFFFFFC00FF23, 0x1FFFFFFC0000D8, 0x1FFFFFFFE004F2, 0x1FFFFFFFE01EE6, 0x1FFFFFFFE001A2, + 0x1FFFFC740010C7, 0x1FFFFFFA000538, 0x1FFFFFFC0003A6, 0x1001F2F, 0x1FFFFFF8010CAC, 0x104003FF, + 0x1FFFFFFB01040B, 0x1FFFFFFFE004B6, 0x1FFFFFFC016E5C, 0x1FFFFFFC000048, 0x14A880A7AA, + 0x1FFFFFFFE01EB6, 0x12FA00AB82, 0x8000000000001E97, 0x1FFFFC740010B9, 0x1FFFFFFC00039C, + 0x8000000000001F92, 0x1FFFFFFC00FF25, 0x178001CBF, 0x1FFFFFFFE02CC6, 0x14A860A7C5, + 0x1FFFFFFFE01E1E, 0x1FFFFFFFE01EAC, 0x1FFFFFFFE01E22, 0x1FFFFFFFE00370, 0x1001F5B, 0x178001CBA, + 0x547E02C7E, 0x1FFFFFFFE004FA, 0x1FFFFFFB010414, 0x1FFFFFFFE003DA, 0x1FFFFFFFE0A74A, + 0x1FFFFFFB01041D, 0x1FFFFFFC0118B5, 0x1FFFFFFC016E47, 0x1FFFFC740010A1, 0x1FFFFFFFE02CCA, + 0x1FFFFFFFE0A72C, 0x1FFFFFFFE0014A, 0x1FFFFFFFE00222, 0x1FFFFFFFE00520, 0x1FFFFFFB010422, + 0x1FFFFFFC000049, 0x1FFFFFFF0003CF, 0x1001F0D, 0x1FFFFFFC016E5E, 0x1FFFFFFBC1E916, 0x12FA00AB72, + 0x1FFFFFF6000403, 0x1FFFFFFFE01E02, 0x1FFFFFFC000397, 0x1FFFFFFFE0052C, 0x1FFFFFFA002C05, + 0x1FFFFFFFE01ED0, 0x12FA00AB9A, 0x12FA00AB7C, 0x1FFFFFFBC1E913, 0x1FFFFFFFE004F6, + 0x1FFFFFFCC024CF, 0x1FFFFFFB0104B9, 0x1FFFFFFA002C15, 0x1FFFFFFC016E43, 0x1FFFFFFFE0011C, + 0x1FFFFFFFE0A78B, 0x1FFFFFF8010CB1, 0x1FFFFFFFE02CE0, 0x1FFFFFFFE001FC, 0x1FFFFFFFE0A648, + 0x12FA00AB92, 0x1FFFFFFFE00248, 0x1FFFFFFFE004E0, 0x1FFFFFFC000059, 0x1FFFFFFC0000D2, + 0x1FFFFFFFE0022E, 0x1FFFFFFA002C07, 0x1FFFFFFFE01E2C, 0x1FFFFFFFE00372, 0x1FFFFFFBC1E914, + 0x1001F1B, 0x1FFFFFFC0118AC, 0x8000000000001F8E, 0x1FFFFFFC0118B4, 0x178001CA6, 0x1FFFFFFFE001B5, + 0x8000000000001F81, 0x1FFFFFFA002C16, 0x1FFFFFFFE00118, 0x1FFFFFFFE01EB0, 0x1FFFFFFC016E44, + 0x1FFFFFFFE01E1A, 0x1FFFFFFFE01EA4, 0x1FFFFFFC000417, 0x1FFFFFFFE00478, 0x12FA00AB75, + 0x12FA00AB95, 0x1FFFFFFFE0A7D8, 0x1FFFFFFFE02CA8, 0x1FFFFFFA00054B, 0x1FFFFFFC000050, + 0x1FFFFFFFE0A732, 0x1FFFFFFC0118A1, 0x1FFFFFF600040D, 0x1FFFFFFC000420, 0x1FFFFFFFE003EE, + 0x1FFFFFFFE00158, 0x1FFFFFFC016E46, 0x178001CA2, 0x1FFFFFFB0104B0, 0x1FFFFFFC000391, + 0x1FFFFFFB0104D3, 0x1FFFFFFFE003C2, 0x1001F0A, 0x1FFFFFFFE01E00, 0x178001CB6, 0x1001F3A, + 0x1FFFFFFFE01E86, 0x1FFFFFFA002C25, 0x1FFFFFFC0118BC, 0x1FFFFFFCC024CB, 0x308801C82, + 0x1FFFFFF8010C94, 0x178001CA5, 0x1FFFFFFFE004D8, 0x1FFFFC740010C3, 0x1FFFFFFFE004EE, + 0x1FFFFFFC016E50, 0x1FFFFFFFE00460, 0x1FFFFFFB21057E, 0x1001F3F, 0x12FA00AB7F, 0x1FFFFFFCC024B9, + 0x1FFFFFFFE01E10, 0x1001FE8, 0x1FFFFFFFE0049C, 0x1FFFFFFFE0A722, 0x1FFFFFFB210594, + 0x1FFFFFFCC024B6, 0x1FFFFFFA000556, 0x1FFFFFFFE0A76E, 0x1FFFFABAA0023A, 0x1FFFFFFFE01E48, + 0x53EE02C62, 0x1FFFFFFC016E59, 0x1FFFFFFFE0A694, 0x1FFFFFFFE001A0, 0x1FFFFFFFE02CDC, + 0x1FFFFFFFE00246, 0x1FFFFFFFE0A69A, 0x1FFFFFFFE01EEE, 0x1FFFFFFFE00145, 0x1FFFFFFC0000CB, + 0x1FFFFC740010BF, 0x1FFFFFFC0000D5, 0x1FFFFFF6000404, 0x1FFFFFFBC1E902, 0x1FFFFFFA00053A, + 0x1FFFFFFA000554, 0x1FFFFFFFE00122, 0x1FFFFFFA002C1A, 0x1FFFFFFFE001D7, 0x1FFFFFFFE01EA6, + 0x1FFFFFFA00053D, 0x1FFFFFFFE02C8E, 0x1001F1D, 0x1FFFFFFC00039E, 0x178001CA7, 0x1FFFFFFFE00526, + 0x178001CB8, 0x1FFFFFFFE01EAE, 0x1FFFFFFFE00100, 0x1FFFFFFFE01E6A, 0x543802C6D, 0x1FFFFFFFE001E4, + 0x12FA00ABA7, 0x1FFFFFFFE01EDC, 0x1FFFFFFFE0A640, 0x1FFFFFFFE01EC4, 0x8000000000001FFC, + 0x1FFFFFF6000405, 0x1FFFFFFFE00224, 0x1FFFFFFC00005A, 0x1FFFFFFFE003E0, 0x8000000000001F99, + 0x1FFFFC740010AF, 0x1FFFFFFB210579, 0x1FFFFFFC0118BD, 0x1FFFFFFB01041B, 0x1FFFFFFA002C2A, + 0x1FFFFFFC000045, 0x1FFFFFFFE00198, 0x1FFFFFFA000551, 0x1FFFFFFA002C0D, 0x12FA00AB73, + 0x1FFFFFFFE0050E, 0x1FFFFFFFE0022C, 0x12FA00AB99, 0x80000000000000DF, 0x1FFFFFFC00FF31, + 0x1FFFFFFFE01EC8, 0x8000000000001FAA, 0x1FFFFFFFE01EA0, 0x1FFFFFFC00FF33, 0x1FFFFFFC00FF30, + 0x80000000000003B0, 0x14A880A7AE, 0x1FFFFFF6000407, 0x1FFFFFFA000549, 0x10013FA, 0x1FFFFFFB010424, + 0x178001CB3, 0x1FFFFFFB21057D, 0x1FFFFFF8010CA4, 0x1001F6C, 0x178001CAB, 0x12FA00AB97, + 0x1FFFFFFBC1E920, 0x1FFFFFF8010C88, 0x1FFFFFFFE001C5, 0x1FFFFFFC0000CF, 0x1FFFFFFB210583, + 0x1FFFFFFB0104C0, 0x1FFFFFFC0118AD, 0x1FFFFFFFE0A796, 0x1FFFFFFFE0A784, 0x1FFFFFFFE01EB4, + 0x1FFFFFE540019F, 0x1FFFFC740010A9, 0x1FFFFFFBC1E912, 0x1FFFFFFFE01ED4, 0x1001F1C, 0x12FA00AB9F, + 0x1FFFFFFE00216F, 0x1FFFFFFC00FF37, 0x1FFFFFFFE004D6, 0x1FFFFFFFE00474, 0x1FFFFFFFE02CBA, + 0x1FFFFFFFE01E26, 0x380A01FBE, 0x1FFFFFFC802132, 0x1FFFFFFFE00510, 0x1FFFFFFFE004C3, + 0x1FFFFFF8010C83, 0x1FFFFFFFE0A740, 0x1FFFFFFC00004B, 0x178001CB0, 0x8000000000001FAD, 0xE003F9, + 0x1FFFFFF8010C80, 0x1FFFFFFC016E5B, 0x309C01C80, 0x1FFFFFE6600193, 0x1FFFFFFFE004FE, + 0x1FFFFFFC0000D4, 0x1FFFFFFBC1E921, 0x12FA00AB8C, 0x1FFFFFE5A0019C, 0x1FFFFFF8010C9E, + 0x1FFFFFFA00054F, 0x8000000000001E9A, 0x1FFFFFFFE00462, 0x1FFFFFFB0104BE, 0x1FFFFFFA000541, + 0x1FFFFFFA002C0C, 0x1FFFFFFC000415, 0x1FFFFFFC000410, 0x12FA00AB89, 0x12FA00AB7B, 0x12FA00AB83, + 0x1FFFFFFFE0015C, 0x1FFFFFFFE0A738, 0x1FFFFFFFE01E52, 0x1FFFFFFBC1E911, 0x1FFFFFFFE01E7E, + 0x178001C97, 0x1FFFFFFFE01E80, 0x1FFFFFFFE0A7B8, 0x70001F7, 0x1FFFFFFC0000DE, 0x1FFFFC740010A7, + 0x8000000000001F52, 0x1FFFFFFB210585, 0x1FFFFFFFE004A2, 0x1FFFFFFA000553, 0x12FA00ABAA, 0x1001FD9, + 0x1FFFFFFFE001EA, 0x1FFFFFFFE0A664, 0x1FFFFFFC0003A1, 0x1FFFFFFC016E57, 0x1FFFFFFFE0A756, + 0x1FFFFFFFE004FC, 0x800000000000FB06, 0x178001CB5, 0x1FFFFFFFE0048E, 0x1FFFFFFC0000DB, + 0x1FFFFFFFE01E16, 0x1FFFFFF8010C9F, 0x308601C85, 0x1FFFFFFFE00174, 0x1FFFFFFFE01EBC, + 0x1FFFFFFC0118B7, 0x1FFFFFE6C0018F, 0x1FFFFFFFE00104, 0x1FFFFFE6A00190, 0x7401E9B, + 0x1FFFFFFB210572, 0x1FFFFFFFE0017D, 0x1FFFFC740010AE, 0x178001CAD, 0x12FA00AB70, + 0x8000000000001F8C, 0xFC01FFB, 0x1FFFFFFFE01E88, 0x1FFFFFFFE001E0, 0x3C003D0, 0x1FFFFFFFE01E72, + 0x1FFFFFFFE02CC8, 0x1FFFFFFFE004F8, 0x1FFFFFFFE01E3E, 0x12FA00ABBC, 0x1FFFFFFFE02CD2, + 0x1FFFFFFB21058C, 0x600A7C4, 0x1FFFFFFC00FF26, 0x1FFFFFFC0000D1, 0x8000000000001F98, + 0x1FFFFFFB01041E, 0x1FFFFFFC016E40, 0x1FFFFFFB0104C3, 0x1FFFFFFC016E54, 0x1FFFFFF8010C96, + 0x178001C98, 0x1FFFFFFA000544, 0x309A01C81, 0x1FFFFFFC00041E, 0x1FFFFFFC00042D, 0x1FFFFFFFE0A698, + 0x1FFFFFFFE00212, 0x12FA00AB78, 0x1FFFFFFFE001A7, 0x1FFFFFFFE0010C, 0x1FFFFFFFE01E3C, + 0x1FFFFFFC000046, 0x1FFFFFFFE0A798, 0x1FFFFFFA002C26, 0x1FFFFFFA000546, 0x1FFFFFFFC001CA, + 0x1FFFFFFC0118AB, 0x1FFFFC740010BD, 0x1FFFFFFB0104C1, 0x1FFFFFF180037F, 0x1FFFFFFC00FF21, + 0x1FFFFFFB0104D2, 0x8000000000001F8D, 0x1FFFFFFFE004C1, 0x1FFFFFFFE0A7A2, 0x1FFFFFFC0000C2, + 0x1FFFFFF6000406, 0x1FFFFFFC0000D6, 0x114700A7C6, 0x14A500A78D, 0x60003F1, 0x8000000000001F9B, + 0x1FFFFFFCC024BB, 0x1FFFFFFB010413, 0x1FFFFFFFC001C4, 0x1FFFFFFA000537, 0x1FFFFFFFE02CD8, + 0x1FFFFFFFE001CB, 0x1FFFFFFC016E55, 0x1FFFFFFFE0A72E, 0xC801FDB, 0x1FFFFFFC00FF2A, 0x12FA00ABAC, + 0x1FFFFFFE2004C0, 0x1FFFFFFE002167, 0x18600243, 0x1FFFFFFFE00102, 0x1FFFFFFC0000CC, + 0x1FFFFFF6000402, 0x1FFFFFFC00042C, 0x1001F6D, 0x178001C92, 0x1FFFFFFB0104B6, 0x1FFFFFFFE01EF0, + 0x14A240A7B0, 0x1FFFFFFFE00179, 0x1FFFFFFB010416, 0x1FFFFFFC00041D, 0x1FFFFFFFE02C9E, + 0x1FFFFFFFE01E64, 0x8000000000001F8A, 0x1FFFFFFBC1E917, 0x1001F49, 0x1FFFFFFFE0051C, + 0x1FFFFFFFE0A7A6, 0x1001F0B, 0x12FA00AB8E, 0x1FFFFFFCC024BD, 0x1FFFFFFBC1E91E, 0xE001FEA, + 0x1FFFFFFC016E4B, 0x1FFFFFFFE01E4E, 0x1001F18, 0x1FFFFFFFE01EE2, 0x1FFFFFFFE004B2, + 0x1FFFFFFFE001F8, 0x1001F3D, 0x1FFFFFFFE01E20, 0x1FFFFFFFE001BC, 0x1FFFFFFFE00516, + 0x1FFFEEC7A01C88, 0x1FFFFFFFE00500, 0x1FFFFFFFE00498, 0x1FFFFFFFE02CA0, 0x1FFFFFFCC024B8, + 0x1FFFFFFFE0047E, 0x1FFFFFFB210574, 0x178001C9C, 0x1FFFFFFFE003E2, 0x1FFFFFFFE01E24, + 0x1FFFFFFA000555, 0x12FA00ABA8, 0x1FFFFFFB0104C7, 0x1FFFFC740010C1, 0x1FFFFFFB210578, + 0x1FFFFFFC000058, 0x1FFFFFFC000421, 0x1FFFFC740010AA, 0x1FFFFFFA00054C, 0x1FFFFFFFE003FA, + 0x8000000000001F83, 0x1FFFFFFFE02CE2, 0x1FFFFFFFE001F2, 0x1001F3B, 0x1FFFFFFFE0A768, + 0x1FFFFFFC000425, 0x1FFFFFFC0000D3, 0x1FFFFFFFE00116, 0x1FFFFFFC0118A2, 0x1FFFFFFFE02C60, + 0x1FFFFFFFE01E08, 0x1FFFFFF8010C8B, 0x1FFFFFFC000413, 0x1FFFFFFFE02C8A, 0x1FFFFFFFE01EC2, + 0x1FFFFFFFE0052E, 0x1FFFFFF8010C9C, 0x1FFFFFFFE0A66A, 0x1FFFFFFFE01ED8, 0x1FFFFFFB210580, + 0x8000000000001F88, 0x1FFFFFFE002165, 0x1FFFFFFC000427, 0x1FFFFFFC0003A4, 0x1FFFFFFB400386, + 0x1FFFFFFFE02C86, 0x1FFFFFFC0118A0, 0x1FFFFFFA002C1C, 0x1FFFFFFE002163, 0x1FFFFFFA00053B, + 0x1FFFFFFE002160, 0x8000000000001FA3, 0x1FFFFFF820038E, 0x1FFFFFFBC1E90C, 0x1FFFFFFC00FF3A, + 0x1FFFFFFC00042A, 0x1FFFFFFC0118B8, 0x1001F08, 0x1FFFFFFFE004DA, 0x1FFFFFFB0104CB, + 0x1FFFFFFFE0A680, 0x1FFFFFFFE004E4, 0x1FFFFFFFE001CD, 0x1FFFFFFFE01EDA, 0x1FFFFFFFE0A734, + 0x8000000000001FA0, 0x1FFFFFFC00FF32, 0x1FFFFFFFE0A7C9, 0x1FFFFFFA002C2E, 0x1FFFFFFFE01E46, + 0x1FFFFC740010B5, 0x1FFFFFFBC1E915, 0x1FFFFFFB210592, 0x12FA00ABB7, 0x1FFFFFFFE0052A, + 0x1FFFFFFFE00187, 0x8000000000001FB2, 0x1FFFFFFC0118A4, 0x1001FB8, 0x1FFFFFFC016E51, 0x1001F3E, + 0x1FFFFFFFE0A652, 0x1FFFFFFC0003AB, 0x1FFFFFFE00216A, 0x1FFFFFFBC1E918, 0x1FFFFFFFE0A68C, + 0x1FFFFFFB210576, 0x1FFFFFFA002C08, 0x1FFFFFFFE0A746, 0x1FFFFFFC00041B, 0x8000000000001E99, + 0x2180017F, 0x1FFFFFFA00054E, 0x1FFFFFFC000395, 0x1FFFFFFBC1E903, 0x1FFFFFFFE02CC2, + 0x1FFFFFFBC1E905, 0x8000000000001FE2, 0x1FFFFFFC016E5A, 0x1FFFFFFFE01E0A, 0x1FFFFFFA002C12, + 0x178001C9A, 0x8000000000001FB3, 0x1FFFFFFA002C21, 0x3ABA02126, 0x8000000000001F91, + 0x1FFFFFFA002C1E, 0x1FFFFC740010BE, 0x1FFFFFFFE00139, 0x178001C90, 0x1FFFFFFA002C18, + 0x1FFFFFFFE0A744, 0x1FFFFFFFE004A4, 0x8000000000001F9C, 0x1FFFFFFCC024BE, 0x1FFFFC740010C4, + 0x1001F39, 0x1FFFFFE5C00181, 0x1FFFFFFA00053F, 0x1FFFFFFFE01EC6, 0x8000000000001F86, + 0x8000000000001E98, 0x1FFFFFFB0104B4, 0x1FFFFFFC00FF27, 0x1FFFFFF8010C92, 0x1FFFFFFA002C20, + 0x1FFFFFFC0118A8, 0x1FFFFFFFE02C6B, 0x1FFFFFFFE02CB2, 0x1FFFFFF820038F, 0x1FFFFFFC00042F, + 0x1FFFFFFB01040E, 0x1FFFFFFFE0A686, 0x1FFFFFE5A00196, 0x1FFFFFFA002C0A, 0x8000000000001F9F, + 0x8000000000001F8B, 0x8000000000001FAB, 0x8000000000001FB4, 0x12FA00ABAD, 0x1FFFFFFFE00170, + 0x1FFFFFFCC024BA, 0x8000000000001FE3, 0x1FFFFFFFE02C94, 0x1FFFFFFFE004CB, 0x1FFFFFFFE0A74C, + 0x1001F4C, 0x1FFFFFFFE0A644, 0x1FFFFFFFE0010A, 0x12FA00AB79, 0x1FFFFFFBC1E910, 0x1001F2A, + 0x1FFFFC740010C5, 0x1FFFFFFC0003A7, 0x1FFFFFF8010C9A, 0x1FFFFFFFE00504, 0x1FFFFFFFE0A64A, + 0x1FFFFFFC000398, 0x12FA00AB90, 0x1FFFFFFFE0A79E, 0x1FFFFFFC00039B, 0x1FFFFFFFE00494, + 0x1FFFFFFC0000D9, 0x1FFFFC740010C2, 0x8000000000001FAC, 0x1FFFFFFFE01E0C, 0x1FFFFFFC000056, + 0x80003F5, 0x1001F38, 0x1FFFFFF8010C90, 0x1FFFFFFFE0A64C, 0x1FFFFFFE00216D, 0x1001F2B, + 0x1FFFFFFA002C29, 0x1FFFFFFFE01E6C, 0x1FFFFFFFE004B0, 0x1FFFFFF8010C93, 0x1FFFFFF8010C8A, + 0x12FA00AB7D, 0x1001FE9, 0x1FFFFFFFE00468, 0x12FA00AB91, 0x1FFFFFFFE00232, 0x1FFFFFFFE0A688, + 0x1FFFFFFFE003E8, 0x1FFFFFFC000055, 0x1FFFFFFFE00490, 0x1FFFFFFFE00134, 0x1FFFFFFCC024C0, + 0x1FFFFFFFE0A682, 0x8000000000001F85, 0x1FFFFFFFE00492, 0x1FFFFFFFE01EA8, 0x1FFFFFFB0104D1, + 0x1FFFFFFFE001B3, 0x1FFFFFFFE00512, 0x1FFFFFFC016E4E, 0x304801C87, 0x1FFFFFFB0104B2, + 0x1FFFFFFFE0014C, 0x1FFFFFFFE0A77B, 0x1FFFFFFFE01EFE, 0x1FFFFFFB21058E, 0x1FFFFFFFE0021C, + 0x800000000000FB16, 0x1FFFFFFB210582, 0x1FFFFFFFE01ED2, 0x1FFFFFFFE0016C, 0x1FFFFFFC0003A8, + 0x1FFFFFFFE001CF, 0x1FFFFC740010BB, 0x1FFFFFFFE0A779, 0x1FFFFFFFE004A6, 0x1FFFFFFB210584, + 0x1FFFFFFA002C02, 0x1FFFFFF8010CA6, 0x12FA00AB9E, 0x1FFFFFFC00FF22, 0x1FFFFFFBC1E91A, + 0x1FFFFC740010AD, 0x1FFFFFFC000411, 0x1FFFFFFFE001AC, 0x78003F4, 0x1FFFFFF8010C8F, + 0x1FFFFFFC00FF2F, 0x1FFFFFFFE0016E, 0x12FA00AB8F, 0x1FFFFFFFE01E8C, 0x12FA00ABAF, + 0x1FFFFFF8010C8C, 0x1FFFFFFFE00150, 0x1FFFFFFFE0046E, 0x1FFFFFFCC024CA, 0x1FFFFFFC016E49, + 0x1FFFFFF8010CAB, 0x1FFFFFFB010415, 0x1FFFFFFC0000C0, 0x1FFFFFFB210581, 0x1FFFFFFFE01E14, + 0x1FFFFFFA000536, 0x1FFFFFFFE004D2, 0x10001FF9, 0x1FFFFFFFE00480, 0x1FFFFFFC00FF2B, + 0x1FFFFFFC0118B1, 0x1FFFFFF8010C8D, 0x1FFFFFFFE00156, 0x1FFFFFFFE02C84, 0x1FFFFFFFE0A690, + 0x1FFFFFFB010419, 0x1FFFFFFFE0A754, 0x1FFFFFFFE01EB8, 0x12FA00AB8A, 0x1001F68, 0x1FFFFFFC0000C8, + 0x1FFFFFFFE0A760, 0x1001F6E, 0x1FFFFFFFE0A7A4, 0x1FFFFFFFE004B8, 0x1FFFFFFFE0A7C0, + 0x8000000000000587, 0x1FFFFFFFE004E6, 0x1FFFFFFFE004A8, 0x1FFFFFFA000550, 0x1FFFFFFFE003DE, + 0x1FFFFFFA002C09, 0x1FFFFFFBC1E90B, 0x8000000000001FC2, 0x1FFFFFF600040A, 0x1FFFFFFFE001FE, + 0x8000000000001F95, 0x1FFFFFFCC024C8, 0x1FFFFFFC00004F, 0x1FFFFFFFE004F4, 0x1FFFFFFFE01E6E, + 0x1FFFFFFC0003A3, 0x1FFFFFFFE0A792, 0x1FFFFFF8010C98, 0x1FFFFFFFE001E6, 0x1FFFFFFC0118A6, + 0x1FFFFFE4E001B1, 0x1FFFFFFFC001C7, 0x1FFFFFF8010C97, 0x1FFFFFFC0000DA, 0x1FFFFFFFE00108, + 0x1FFFFFFFE0A76A, 0x1FFFFFFFE0024E, 0x1FFFFFFFE02C67, 0x1FFFFFFFE001E2, 0x1FFFFFFB0104BF, + 0x1FFFFFFFE003D8, 0x1FFFFFFC0118B9, 0x1FFFFC740010CD, 0x1FFFFFFB0104C4, 0x1FFFFFFFE0013D, + 0x1FFFFFFFE001FA, 0x1FFFFFFC016E5D, 0x1FFFFFFFE001AF, 0x1FFFFFFFE02CAE, 0x1FFFFFFFE001EE, + 0x1FFFFFFB60038A, 0x1FFFFFFB0104CA, 0x1FFFFFFB0104C6, 0x10400220, 0x1FFFFFF6000409, 0x1001F0E, + 0x1FFFFFFFE0A65A, 0x1FFFFFF8010CA3, 0x8000000000001FF4, 0x1FFFFFFE002169, 0x1FFFFFFFE02CEB, + 0x1FFFFFFB010402, 0x178001CAE, 0x1FFFFFF8010CAA, 0x1FFFFFE4A001B7, 0x1FFFFFFFE001B8, 0x12FA00AB8B, + 0x1FFFFFFFE0013B, 0x1FFFFFFC0118BA, 0x1FFFFFF6000400, 0x8000000000001FC4, 0x1FFFFFFFE003EC, + 0x1FFFFFFE002168, 0x10013FD, 0xC801FDA, 0x1FFFFFFFE02CCC, 0x1FFFFFFCC024C3, 0x543E02C6F, + 0x1FFFFFF8010CB0, 0x8000000000001F87, 0x1FFFFFFFE02CA2, 0x1FFFFFFC0003AA, 0x1FFFFFFFE00216, + 0x1FFFFFFFE02CD6, 0x8000000000001F94, 0x1FFFFFFB210575, 0x1FFFFFFE00216E, 0x1FFFFFFFE001D5, + 0x1FFFFFFC000057, 0x8000000000001F90, 0x1FFFFFFB010410, 0x1FFFFFF8010C86, 0x1FFFFFFC0118AF, + 0x1FFFFFFC00039A, 0x1FFFFFFFE00168, 0x1FFFFFFBC1E91D, 0x8000000000001FE4, 0x1FFFFFFFE0A758, + 0x8000000000000130, 0x1FFFFFF8010C9B, 0x8000000000001F9A, 0x1FFFFFFFE01E76, 0x1FFFFFFFE01E5E, + 0x53CE02C64, 0x1FFFFFFFE001C8, 0x1FFFFC740010AC, 0x1FFFFFFFE02CC4, 0x1FFFFFFB010408, + 0x1FFFFFFFE004D4, 0x1FFFFFFC00FF38, 0x1FFFFFFC00FF28, 0x12FA00AB85, 0x1FFFFFFFE0A750, + 0x1FFFFFFFE02CB4, 0x1FFFFFFFE0020E, 0x1FFFFFFFE004CD, 0x1FFFFFFC00FF2C, 0x12FA00AB80, + 0x1FFFFFFC00004C, 0x1FFFFFFC016E4D, 0x8000000000001F54, 0x10001FF8, 0x1FFFFFFB010423, + 0x1FFFFFFFE00128, 0x800000000000FB01, 0x1FFFFFFBC1E904, 0x1001F1A, 0x1FFFFFFFE00470, + 0x1FFFFFFFE02C82, 0x1FFFFFFC0118BF, 0x1FFFFFF1800345, 0x1FFFFFFBC1E909, 0x1FFFFFFA002C04, + 0x1FFFFFFFE004E8, 0x1FFFFFFFE01EEC, 0x1FFFFFFFE01EB2, 0x1FFFFFFA000552, 0x1FFFFFFFE01E2E, + 0x1FFFFFFA002C2C, 0x12FA00AB94, 0x1DCC02C63, 0x1FFFFFFFE0A7B6, 0x1FFFFFFFE004BA, 0xAC01FCA, + 0x1FFFFFFB010412, 0x1FFFFFE5E00197, 0x1FFFFFFFE0A7BC, 0x1FFFFFFFE00172, 0x12FA00AB7E, + 0x1FFFFFFFE0A764, 0x1FFFFFFA002C2D, 0x1FFFFFFFE0047C, 0x1FFFFFFFE02CA6, 0x1FFFFFF600040E, + 0x1FFFFFFA002C13, 0x1FFFFFFFE00476, 0x1FFFFFFFE0A65C, 0x12FA00ABA6, 0x1FFFFFFCC024C7, + 0x1FFFFFFFE02183, 0x1FFFFFFFE01ECE, 0x1FFFFFFFE0012C, 0x1FFFFFFFE01E06, 0x1FFFFFFFE0A66C, + 0x308401C84, 0x1FFFFFFC0000DD, 0x8000000000001F89, 0x1FFFFFFC000394, 0x8000000000001FA8, + 0x1FFFFFFFE0046C, 0x10013F8, 0x1001F48, 0x1FFFFFFFC001F1, 0x8000000000001F56, 0x1FFFFFFFE0A7B4, + 0x1FFFFFFFE00120, 0x1FFFFFFFE01E3A, 0x1FFFFFFB21058F, 0x12FA00AB74, 0x1FFFFFFFE0050A, + 0x1FFFFFFFE02C75, 0x1FFFFC740010B3, 0x1FFFFFFA000540, 0x800000000000FB15, 0x307801C86, + 0x1FFFFFFFE004C5, 0x417E0212A, 0x1FFFFFFFE0A780, 0x1FFFFFF8010C99, 0x178001CA0, 0x1FFFFFFFE01E74, + 0x1FFFFFFFE01E30, 0x1FFFFFFFE00184, 0x12FA00ABA3, 0x1001F4A, 0x800000000000FB05, 0x1001F28, + 0x1FFFFFFB0104BC, 0x1FFFFFFFE004E2, 0x80000000000001F0, 0x1FFFFFFFE004C9, 0x1FFFFFFB0104BB, + 0x1FFFFFFFE01E68, 0x1FFFFFFFE0A65E, 0x1FFFFFFFE004BC, 0x1FFFFFFFE0A724, 0x1FFFFFFFE004AA, + 0x32003D1, 0x1FFFFFFFE001D3, 0x1FFFFFFFE00154, 0x10013FC, 0x1FFFFFFFE00152, 0x8000000000001FF7, + 0x1FFFFFFC00FF39, 0x1FFFFFFB010407, 0x1FFFFFFFE00124, 0x1FFFFFFE00216B, 0x1FFFFFFB010420, + 0x1FFFFFFB010404, 0x1FFFFFFA002C17, 0x1FFFFFFFE00106, 0x1FFFFFFA002C0E, 0x1001F0C, + 0x8000000000001FA1, 0x12FA00AB93, 0x1001F3C, 0x1FFFFFFFE01EF8, 0x8000000000001FA2, + 0x1FFFFFFFE01E78, 0x408C0212B, 0x1001FD8, 0x1FFFFFFFE01ED6, 0x1FFFFFFB010426, 0x1FFFFFFA002C19, + 0x1FFFFFFB0104CD, 0x1FFFFFFC016E58, 0x1FFFFFFB0104BA, 0x1FFFFFFFE00132, 0x1FFFFFFC000416, + 0x1FFFFFFA002C14, 0x1FFFFFFA000543, 0x1FFFFFE6400186, 0x1FFFFFFB010417, 0x1FFFFFFE002166, + 0x12FA00AB9C, 0x1FFFFFFFE00214, 0x1FFFFFFFE001DE, 0x1FFFFFF8010CA8, 0x1FFFFFFC00FF36, + 0x8000000000001FF3, 0x1FFFFFFA00053E, 0x1FFFFC740010BC, 0x12FA00ABA5, 0x1FFFFFFFE0A74E, + 0x1FFFFFFFE01EF6, 0x1FFFFFFFE00502, 0x1FFFFFFC00FF29, 0x8000000000001FAF, 0x12FA00AB71, + 0x1FFFFC740010A4, 0x1FFFFFFE002164, 0x1FFFFFFFE01E12, 0x1FFFFFFFE00143, 0x1FFFFFFFE003E6, + 0x1FFFFFFFE01E66, 0x1FFFFFFB0104C8, 0x14A960A7AC, 0x1FFFFFFFE0049E, 0x1FFFFFFFE004EA, + 0x1FFFFFFB010421, 0x1FFFFFFC00FF34, 0x1FFFFFFFE0020C, 0x1FFFFFFC000053, 0x8000000000001F93, + 0x1FFFFFFC0003A5, 0x1FFFFFFFE01EF2, 0x1FFFFFFFE01EE8, 0x1FFFFFFFE02CBE, 0x1FFFFFFFE01E70, + 0xC2001F6, 0x178001C9F, 0x1FFFFFFB01041A, 0x1FFFFFFFE00241, 0x1FFFFFFC00004E, 0x1FFFFFFB21057C, + 0x1FFFFFFFE02CD4, 0x1FFFFFFFE01E90, 0x1FFFFFFFE02C98, 0x8000000000001F8F, 0x1FFFFFFFE00228, + 0x1FFFFFFFE01E40, 0x8000000000001FD7, 0x1FFFFC740010A8, 0x1FFFFFFFE00136, 0x12FA00AB9D, + 0x1FFFFFFFE01E44, 0x1FFFFFFA000539, 0x1001F4B, 0x8000000000001F96, 0x1FFFFFFFE0012E, + 0x1FFFFFFFE01E60, 0x1FFFFFFC0118BB, 0x1FFFFC740010A2, 0x1FFFFFFFE004DC, 0x1FFFFFFFE00230, + 0x1FFFFFFC000428, 0x12FA00ABA4, 0x1FFFFFFC016E52, 0x1FFFFFFC0003A0, 0x1FFFFFFFE01EC0, 0x1001F2D, + 0x1FFFFFFFE00472, 0x1FFFFFFFE01E18, 0x1FFFFFFFE00112, 0x1FFFFFFB0104B5, 0x1FFFFFFB01040F, + 0x8000000000001FD6, 0x1FFFFFFFE00218, 0x1FFFFFFC0118B2, 0x1FFFFFFFE02C88, 0x12FA00ABAE, + 0x1FFFFFFC0118A3, 0x1FFFFFFBC1E919, 0x1FFFFFFFE01E1C, 0x1FFFFFFB600388, 0x1FFFFFFFE01EA2, + 0x1FFFFFFFE00466, 0xFC01FFA, 0x1FFFFC740010A6, 0x1FFFFFFFE02CAC, 0x1FFFFFFFE01EFA, + 0x1FFFFFFFE01E5C, 0x12FA00ABBA, 0x1FFFFFFBC1E90E, 0x1FFFFFFFE00524, 0x178001C94, 0x1FFFFFFB010403, + 0x1FFFFFFFE0A658, 0x1FFFFFFFE004A0, 0x1FFFFFFFE0A790, 0x1FFFFFFB0104CE, 0x1FFFFFFB600389, + 0x12FA00AB81, 0x1FFFFFFFE001D9, 0x1FFFFFFFE0051E, 0x8000000000001FC7, 0x1FFFFFFFE0A7D0, + 0x8000000000001FBC, 0x1FFFFFFC000414, 0x1FFFFFFC00041A, 0x1FFFFC740010B8, 0x1FFFFFFFE00226, + 0x1FFFFFFA00053C, 0x1FFFFFFBC1E91C, 0x178001C99, 0x1FFFFFFFE0048A, 0x800000000000FB17, + 0x8000000000001FD3, 0x1FFFFFFC000429, 0x1FFFFFF800038C, 0x1FFFFFFFE01E2A, 0x1FFFFFFA000548, + 0x1FFFFFFC000426, 0x114080A77D, 0x1FFFFFFC000392, 0x1FFFFFFB0104CF, 0x1FFFFC740010B6, + 0x1FFFFFFFE00202, 0x1FFFFFFB010427, 0x1FFFFFFB010425, 0x1FFFFFFFE01EEA, 0x1FFFFFFFE001D1, + 0xAC01FC9, 0x1FFFFFFC016E4C, 0x1FFFFFFC000051, 0x1FFFFFFFE0050C, 0x1FFFFFFC0118B6, + 0x1FFFFC740010B4, 0x1FFFFFFFE0A75C, 0x1FFFFFF7200245, 0x178001CA3, 0x1FFFFFFC000424, + 0x1FFFFFFFE004D0, 0x1001FB9, 0x1FFFFFFB010400, 0x1FFFFFFFE00166, 0x1FFFFFFA002C22, + 0x1FFFFFFFE001DB, 0x1FFFFFFC00042E, 0x1FFFFFFFE00162, 0x1FFFFFFFE003E4, 0x1FFFFFFCC024C2, + 0x1FFFFFFFE0A728, 0x1FFFFFFC016E42, 0x1FFFFFFC0003A9, 0x547E02C7F, 0x1FFFFFFFE0A7D6, 0x12FA00ABAB, + 0x1FFFFFFC0000CA, 0x12FA00ABBE, 0x1FFFFFFC016E56, 0x1FFFFFFA000535, 0x1FFFFFFC0000C1, + 0x12FA00AB96, 0x1FFFFFFFE01EE4, 0x178001CB2, 0x9401FBB, 0x1FFFFFFFE00376, 0x1FFFFFFFE0A748, + 0x1FFFFFFC000043, 0x1FFFFFFB01040C, 0x1FFFFFFFE01EF4, 0x1FFFFC740010B0, 0x1FFFFFFB210587, + 0x1FFFFFF8010C89, 0x1FFFFFF6000408, 0x12FA00AB77, 0x1FFFFFFFE02CCE, 0x8000000000001FCC, + 0x1FFFFFFFE0A782, 0x1FFFFFFC00041C, 0x1FFFFFFA002C0F, 0x178001CA9, 0x1FFFFFFC000052, + 0x1FFFFFFFE0014E, 0x1FFFFFFFE01E56, 0x1FFFFFFC0118B0, 0x1FFFFFFB0104C2, 0x1FFFFF8C00A7B3, + 0x1FFFFFFFE01E36, 0x1FFFFFFFE0048C, 0x12FA00AB87, 0x1FFFFFFFE0A73E, 0x1FFFFFFFE01E54, 0x1001F5D, + 0x8000000000001F9E, 0x1FFFFFFFE003F7, 0x1FFFFFFFE00206, 0x1FFFFFFCC024B7, 0x1FFFFFFFE02CD0, + 0x1001F19, 0x1E003D5, 0x1FFFFFFC000396, 0x1FFFFFFFE0A696, 0x1FFFFFFFE00126, 0x8000000000001FF2, + 0x8000000000001FF6, 0x1FFFFFFFE01E34, 0x1FFFFFFC0000DC, 0x14A2A0A7B2, 0x12FA00AB84, + 0x1FFFFFFFE0022A, 0x1FFFFFFC00039F, 0x1FFFFFFC0118AA, 0x1FFFFFFFE003EA, 0x1FFFFFFFE0051A, + 0x12FA00ABB8, 0x1FFFFFE4E001B2, 0x1FFFFFFB210591, 0x8000000000001FA6, 0x1FFFFFFFE00508, + 0x1FFFFFFFE00110, 0xE001FEB, 0x1FFFFFFFE00208, 0x1FFFFFFFE0A7F5, 0x1FFFFFFFE0A79C, + 0x1FFFFFFBC1E908, 0x12FA00ABA2, 0x1FFFFF9F2000B5, 0x1FFFFFFA00054D, 0x1FFFFFFFE02C72, + 0x12FA00ABB0, 0x1FFFFFFFE00204, 0x1FFFFFFFE004BE, 0x1001F6A, 0x8000000000001F9D, 0x1FFFFFFFE02CED, + 0x1FFFFFF620018E, 0x1FFFFFFC0000D0, 0x1FFFFFFC000044, 0x1FFFFFFB210588, 0x1001F4D, + 0x1FFFFFFFE01E7A, 0x1FFFFFFFE01E38, 0x1FFFFFFFE0A766, 0x1FFFFFFCC024C6, 0x1FFFFFFFE01EDE, + 0x1FFFFFFB0104B7, 0x1FFFFFFC00004A, 0x1FFFFFFA000542, 0x1FFFFFFFE01E42, 0x1FFFFFFFE001E8, + 0x1FFFFFFC016E53, 0x1FFFFFFA002C2F, 0x1001F0F, 0x8000000000001FD2, 0x1FFFFFFC0000C7, + 0x1FFFFFFFE001F4, 0x12FA00AB7A, 0x14A820A7AD, 0x178001C95, 0x1001F69, 0x1FFFFFFBC1E907, + 0x1FFFFFFC016E41, 0x1FFFFFFFE0A68E, 0x1FFFFFFFE00210, 0x1FFFFFFFE004B4, 0x12FA00AB98, + 0x1FFFFFFC0000C3, 0x1FFFFFFB010409, 0x1FFFFFFB21057A, 0x1FFFFFFFE02CDA, 0x1FFFFFFFE0A646, + 0x1FFFFFFFE0015A, 0x1FFFFFFFE02CB0, 0x8000000000001FC6, 0x1FFFFFFFE00182, 0x1001F6B, + 0x800000000000FB13, 0x1FFFFFFFE01E92, 0x1FFFFFF8010CA7, 0x1FFFFFE660018A, 0x1FFFFFFC000422, + 0x1FFFFFFFE0017B, 0x1FFFFFFBC1E91F, 0x1FFFFFFBC1E91B, 0x8000000000001FAE, 0x1FFFFFFFE0A77E, + 0x1FFFFFFC00FF24, 0x8000000000001FA5, 0x8000000000001FA4, 0x1FFFFFF8010CA5, 0x308401C83, + 0x8000000000001FB7, 0x1FFFFFFFE02C90, 0x1FFFFFFFE0024A, 0x1FFFFFF8010CA1, 0x1FFFFFFFE0021A, + 0x1FFFFFFFE0A762, 0x1FFFFFFFE0A660, 0x1FFFFFFFE02C69, 0x1FFFFFFFE0A662, 0x1FFFFFFFE0A68A, + 0x1FFFFFFC00039D, 0x1FFFFFFB210570, 0x800000000000FB03, 0x8000000000000149, 0x1FFFFFFFE0021E, + 0x1FFFFFFFE0049A, 0x1FFFFFFFE02CB6, 0x1FFFFFFFE02CAA, 0x1FFFFFFB0104C5, 0x1FFFFFFB210595, + 0x1FFFFFFB01041C, 0x1FFFFFFC000393, 0x1FFFFFFA002C0B, 0x6C003F0, 0x1FFFFFFFE00200, + 0x1FFFFFFC000047, 0x1FFFFFFFE0023B, 0x1FFFFFFFE0A7A0, 0x1FFFFFE4C001A9, 0x1FFFFFFFE0A684, + 0x8000000000001FE6, 0x1FFFFFFB210577, 0x1FFFFFFFE0A75A, 0x1FFFFFFB210589, 0x1FFFFFFC0118A9, + 0x53FA02C6E, 0x1FFFFFFFE0012A, 0x1FFFFFFFE01E32, 0x1FFFFFFFE0A79A, 0x1FFFFFFCC024CD, + 0x1FFFFFF8010CA2, 0x1FFFFFF8010CB2, 0x1FFFFFFC016E45, 0x1FFFFFFFE003DC, 0x1FFFFFFBC1E90A, + 0x1FFFFFFB210571, 0x104003FD, 0x178001CA1, 0x1FFFFFFFE02CC0, 0x1FFFFFFA000545, 0x1FFFFFFFE001EC, + 0x800000000000FB04, 0x12FA00ABB1, 0x1FFFFFFFE0A73C, 0x1001F2C, 0x1FFFFFFCC024CE, 0x178001CB9, + 0x1FFFFFFFE01EFC, 0x1FFFFFFFE00518, 0x1FFFFFF8010C9D, 0x1FFFFFFB0104BD, 0x1FFFFC740010A0, + 0x1FFFFFFFE0A736, 0x1FFFFFF8010C81, 0x1FFFFFFB21058D, 0x1FFFFFF600040C, 0x1FFFFFE4C001AE, + 0x1FFFFFFC0000C4, 0x1FFFFFFFE00191, 0x1FFFFFF600040B, 0x178001CBD, 0x1FFFFFFFE00176, + 0x1FFFFFFC000042, 0x178001C9E, 0x12FA00ABB2, 0x1FFFFFFCC024CC, 0xAC01FC8, 0x1FFFFFFFE00506, + 0x1FFFFFF8010CAF, 0x178001C9B, 0x1FFFFFFCC024BC, 0x178001C91, 0x1FFFFABB00023E, 0x1FFFFFFC0118AE, + 0x1FFFFC740010B2, 0x1FFFFFFA002C1F, 0x1FFFFFFFE01ECC, 0x1FFFFFFA002C2B, 0x2C003D6, + 0x1FFFFFFFE0A64E, 0xAC01FCB, 0x1FFFFFFA002C23, 0x1FFFFFFFE02CB8, 0x1FFFFFFFE02C9A, + 0x1FFFFFFB010405, 0x1FFFFFFFE01E94, 0x1FFFFFFCC024C5, 0x12FA00ABB9, 0x12FA00AB86, + 0x1FFFFFFFE01E4A, 0x1FFFFFFFE0018B, 0x1FFFFFFB01041F, 0x1FFFFFFC00FF2E, 0x8000000000001F82, + 0x1FFFFFFFE0A7BA, 0x1FFFFFFFE00147, 0x1FFFFFFA000534, 0x12FA00ABB6, 0x8000000000001FB6, + 0x1FFFFFFFE001A4, 0x1FFFFFFFE02C9C, 0x1FFFFFFC000054, 0x1FFFFFFFE0A75E, 0x1001F5F, + 0x1FFFFFFB0104D0, 0x1001F29, 0x1FFFFFFA002C03, 0x1FFFFFFFE01EBA, 0x12FA00AB9B, 0x1FFFFFFFE0A7BE, + 0x1FFFFFFCC024C4, 0x1FFFFFE6200194, 0x1001F09, 0x1FFFFFE4C001A6, 0x1460023D, 0x1FFFFFF8010C87, + 0x8000000000001E96, 0x1FFFFFFFE0046A, 0x1FFFFFFFE00114, 0x1FFFFFF8010CAD, 0x1FFFFFFC0118BE, + 0x12FA00ABA1, 0x1FFFFFFFE01E5A, 0x1FFFFFF8010CA9, 0xF200178, 0x1FFFFFFC0118A5, 0x1FFFFFFC00042B, + 0x1FFFFFFB210586, 0x8000000000001F84, 0x1FFFFFFB0104B8, 0x1FFFFFFFE0A656, 0x1FFFFFFFE004AE, + 0x1FFFFFFC000399, 0x800000000000FB02, 0x1FFFFFFA002C01, 0x1FFFFC740010A3, 0x1FFFFFFC016E5F, + 0x1FFFFFFCC024C1, 0x1FFFFFFA000532, 0x1FFFFFE560019D, 0x1FFFFFFB0104C9, 0x1FFFFFFB0104B3, + 0x1FFFFFFFE0015E, 0x178001CBE, 0x1FFFFFFFE004F0, 0x1FFFFFFC000412, 0x1FFFFFFE002161, + 0x1FFFFFF8010CAE, 0x1FFFFFFC000423, 0x1FFFFFFCC024BF, 0x1FFFFFFC00004D, 0x1FFFFFFC016E4F, + 0x1FFFFFFC0000C6, 0x1FFFFFFC00FF2D, 0x1001F2E, 0x1FFFFFFA002C24, 0x1FFFFFFCC024C9, 0x12FA00ABBB, + 0x1FFFFC740010AB, 0x1FFFFFF8010C85, 0x1001F59, 0x1FFFFFFBC1E900, 0x1FFFFFF8010C84, + 0x1FFFFFFFE01E04, 0x12FA00ABBF, 0x1FFFFFFFE0A752, 0x178001C9D, 0x1FFFFFFA002C06, 0x12FA00AB8D, + 0x1FFFFFFB210590, 0x178001C93, 0x1FFFFFFFE0A76C, 0x1FFFFFFC00FF35, 0x1FFFFFFBC1E90F, + 0x1FFFFC740010BA, 0x1FFFFFFFE01E58, 0x1FFFFFFA002C1B, 0x1FFFFFFFE004DE, 0x1FFFFFFA000531, + 0x1FFFFFFFE0A73A, 0x1FFFFFFFE00160, 0x1FFFFFFA00054A, 0x1FFFFFFFE01E84, 0x1FFFFFFFE0A642, + 0x1FFFFFFB21057F, 0x1FFFFFFB010406, +}; + +#define CASE_FULL_FOLD_LEVEL_COUNT 5 + +static const __swift_uint16_t _swift_stdlib_case_full_sizes[5] = { + 0x68, 0x46, 0x40, 0x40, 0x40, +}; + +static const __swift_uint64_t _swift_stdlib_case_full_keys0[2] = { + 0xC832049503465522, 0x416D38A000, +}; + +static const __swift_uint64_t _swift_stdlib_case_full_keys1[2] = { + 0x2EE5E8C0C284C002, 0x29, +}; + +static const __swift_uint64_t _swift_stdlib_case_full_keys2[1] = { + 0x19E4901050128A0, +}; + +static const __swift_uint64_t _swift_stdlib_case_full_keys3[1] = { + 0x60A8C42639280330, +}; + +static const __swift_uint64_t _swift_stdlib_case_full_keys4[1] = { + 0x20800810802000, +}; + +static const __swift_uint64_t * const _swift_stdlib_case_full_keys[5] = { + _swift_stdlib_case_full_keys0, _swift_stdlib_case_full_keys1, _swift_stdlib_case_full_keys2, + _swift_stdlib_case_full_keys3, _swift_stdlib_case_full_keys4, +}; + +static const __swift_uint16_t _swift_stdlib_case_full_ranks0[1] = { + 0x0, +}; + +static const __swift_uint16_t _swift_stdlib_case_full_ranks1[1] = { + 0x22, +}; + +static const __swift_uint16_t _swift_stdlib_case_full_ranks2[1] = { + 0x3C, +}; + +static const __swift_uint16_t _swift_stdlib_case_full_ranks3[1] = { + 0x4D, +}; + +static const __swift_uint16_t _swift_stdlib_case_full_ranks4[1] = { + 0x62, +}; + +static const __swift_uint16_t * const _swift_stdlib_case_full_ranks[5] = { + _swift_stdlib_case_full_ranks0, _swift_stdlib_case_full_ranks1, _swift_stdlib_case_full_ranks2, + _swift_stdlib_case_full_ranks3, _swift_stdlib_case_full_ranks4, +}; + +static const __swift_uint64_t _swift_stdlib_case_full[104] = { + 0xC0007038390A1C10, 0x80000000371E1E23, 0x8000000037C60078, 0x8000000037DA0040, + 0x8000000037AE0070, 0xC000729439BE1C22, 0x8000000037F61C08, 0x8000000037E60048, + 0x80000000379E0088, 0x800000003C561E2B, 0x8000000039281C1D, 0x80000001EB40F598, + 0xC000734839961C1A, 0x8000000038741C2A, 0x8000000038141C0C, 0x80000000387A1B8B, + 0x8000000037F20042, 0xC0007254399E1C1E, 0x8000000039A21C23, 0x8000000037920080, + 0x8000000037C00078, 0x80000001EB54F5A3, 0x8000000038161C16, 0x8000000038E81C05, + 0x8000000037C40078, 0xC000734839941C19, 0x8000000037A80088, 0x8000000037BC0070, + 0x8000000037E40048, 0x8000000037D80040, 0x8000000037D20040, 0x8000000037B40070, + 0x8000000038261C15, 0x8000000037CA0078, 0x8000000037980080, 0x8000000037E20048, + 0x80000000371E1E20, 0x8000000037A40088, 0x80000001EB3AF59F, 0x8000000039081C0F, + 0xC000705038861B91, 0x80000001F52CFA9C, 0x8000000036CA1E2E, 0x8000000037B00070, + 0x8000000037C80078, 0x8000000037CC0078, 0x8000000037A20088, 0x8000000037A00088, + 0x8000000039681C2D, 0x8000000037BE0078, 0xC00070F8396A1C2E, 0x8000000037EA0048, + 0xC000738839B61C1E, 0x8000000037C20078, 0x8000000039481C21, 0x8000000037DE0048, + 0xC003EA61F53CFA9E, 0xC000738839B41C1D, 0x8000000037E80048, 0x8000000037E00048, + 0x8000000037B80070, 0x80000000000A0022, 0x8000000037B81E39, 0x8000000037DC0040, + 0x80000000379C0080, 0xC0006FF838EA1C06, 0x8000000037D00040, 0xC000023C01110029, + 0x80000001F530FA9B, 0x80000001EB5EF5A0, 0x8000000038061C0B, 0x8000000000D8006C, + 0xC000714C38821B8F, 0x8000000037900080, 0x8000000037AC0088, 0x8000000037CE0040, + 0x80000001EB54F5A1, 0x8000000037AA0088, 0x8000000037B60070, 0x8000000037A60088, + 0x8000000037F41C02, 0x8000000037EC0048, 0x8000000038720076, 0x8000000037D60040, + 0x80000000378E0080, 0x80000001F524FA93, 0x8000000038861C33, 0x8000000001B70173, + 0x8000000037BA0070, 0x8000000203AE00C7, 0xC0007148387E1B8D, 0x800000003812004E, + 0x8000000037B20070, 0xC003EA69F53AFA9D, 0x8000000037940080, 0xC00002BC01510015, + 0x8000000037D40040, 0x8000000038761C26, 0x80000001F522FA92, 0x80000001F534FA9A, + 0x80000000371C1E21, 0x8000000037960080, 0x8000000202380186, 0x80000000379A0080, +}; + +#endif // CASE_DATA_H diff --git a/stdlib/public/stubs/Unicode/UnicodeScalarProps.cpp b/stdlib/public/stubs/Unicode/UnicodeScalarProps.cpp index 3b7da912621bf..949baa1c22a50 100644 --- a/stdlib/public/stubs/Unicode/UnicodeScalarProps.cpp +++ b/stdlib/public/stubs/Unicode/UnicodeScalarProps.cpp @@ -18,6 +18,7 @@ #include "Common/ScalarPropsData.h" #endif +#include "Common/CaseData.h" #include "Common/ScriptData.h" #else @@ -510,3 +511,62 @@ const __swift_uint8_t *_swift_stdlib_getScriptExtensions(__swift_uint32_t scalar return _swift_stdlib_script_extensions_data + (scalarDataIdx & 0x7FF); #endif } + +SWIFT_RUNTIME_STDLIB_INTERNAL +void _swift_stdlib_getCaseMapping(__swift_uint32_t scalar, + __swift_uint32_t *buffer) { +#if !SWIFT_STDLIB_ENABLE_UNICODE_DATA + swift::swift_abortDisabledUnicodeSupport(); +#else + auto mphIdx = _swift_stdlib_getMphIdx(scalar, CASE_FOLD_LEVEL_COUNT, + _swift_stdlib_case_keys, + _swift_stdlib_case_ranks, + _swift_stdlib_case_sizes); + + auto caseValue = _swift_stdlib_case[mphIdx]; + __swift_uint32_t hashedScalar = (caseValue << 43) >> 43; + + // If our scalar is not the original one we hashed, then this scalar has no + // case mapping. It maps to itself. + if (scalar != hashedScalar) { + buffer[0] = scalar; + return; + } + + // If the top bit is NOT set, then this scalar simply maps to another scalar. + // We have stored the distance to said scalar in this value. + if ((caseValue & ((__swift_uint64_t)(0x1) << 63)) == 0) { + auto distance = (__swift_int32_t)((caseValue << 1) >> 22); + auto mappedScalar = (__swift_uint32_t)((__swift_int32_t)(scalar) - distance); + + buffer[0] = mappedScalar; + return; + } + + // Our top bit WAS set which means this scalar maps to multiple scalars. + // Lookup our mapping in the full mph. + auto fullMphIdx = _swift_stdlib_getMphIdx(scalar, CASE_FULL_FOLD_LEVEL_COUNT, + _swift_stdlib_case_full_keys, + _swift_stdlib_case_full_ranks, + _swift_stdlib_case_full_sizes); + + auto fullCaseValue = _swift_stdlib_case_full[fullMphIdx]; + + // Count is either 2 or 3. + auto count = fullCaseValue >> 62; + + for (__swift_uint64_t i = 0; i != count; i += 1) { + auto distance = (__swift_int32_t)(fullCaseValue & 0xFFFF); + + if ((fullCaseValue & 0x10000) != 0) { + distance = -distance; + } + + fullCaseValue >>= 17; + + auto mappedScalar = (__swift_uint32_t)((__swift_int32_t)(scalar) - distance); + + buffer[i] = mappedScalar; + } +#endif +} diff --git a/utils/gen-unicode-data/Data/CaseFolding.txt b/utils/gen-unicode-data/Data/CaseFolding.txt new file mode 100644 index 0000000000000..932ace29e6d49 --- /dev/null +++ b/utils/gen-unicode-data/Data/CaseFolding.txt @@ -0,0 +1,1624 @@ +# CaseFolding-14.0.0.txt +# Date: 2021-03-08, 19:35:41 GMT +# © 2021 Unicode®, Inc. +# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. +# For terms of use, see http://www.unicode.org/terms_of_use.html +# +# Unicode Character Database +# For documentation, see http://www.unicode.org/reports/tr44/ +# +# Case Folding Properties +# +# This file is a supplement to the UnicodeData file. +# It provides a case folding mapping generated from the Unicode Character Database. +# If all characters are mapped according to the full mapping below, then +# case differences (according to UnicodeData.txt and SpecialCasing.txt) +# are eliminated. +# +# The data supports both implementations that require simple case foldings +# (where string lengths don't change), and implementations that allow full case folding +# (where string lengths may grow). Note that where they can be supported, the +# full case foldings are superior: for example, they allow "MASSE" and "Maße" to match. +# +# All code points not listed in this file map to themselves. +# +# NOTE: case folding does not preserve normalization formats! +# +# For information on case folding, including how to have case folding +# preserve normalization formats, see Section 3.13 Default Case Algorithms in +# The Unicode Standard. +# +# ================================================================================ +# Format +# ================================================================================ +# The entries in this file are in the following machine-readable format: +# +# ; ; ; # +# +# The status field is: +# C: common case folding, common mappings shared by both simple and full mappings. +# F: full case folding, mappings that cause strings to grow in length. Multiple characters are separated by spaces. +# S: simple case folding, mappings to single characters where different from F. +# T: special case for uppercase I and dotted uppercase I +# - For non-Turkic languages, this mapping is normally not used. +# - For Turkic languages (tr, az), this mapping can be used instead of the normal mapping for these characters. +# Note that the Turkic mappings do not maintain canonical equivalence without additional processing. +# See the discussions of case mapping in the Unicode Standard for more information. +# +# Usage: +# A. To do a simple case folding, use the mappings with status C + S. +# B. To do a full case folding, use the mappings with status C + F. +# +# The mappings with status T can be used or omitted depending on the desired case-folding +# behavior. (The default option is to exclude them.) +# +# ================================================================= + +# Property: Case_Folding + +# All code points not explicitly listed for Case_Folding +# have the value C for the status field, and the code point itself for the mapping field. + +# ================================================================= +0041; C; 0061; # LATIN CAPITAL LETTER A +0042; C; 0062; # LATIN CAPITAL LETTER B +0043; C; 0063; # LATIN CAPITAL LETTER C +0044; C; 0064; # LATIN CAPITAL LETTER D +0045; C; 0065; # LATIN CAPITAL LETTER E +0046; C; 0066; # LATIN CAPITAL LETTER F +0047; C; 0067; # LATIN CAPITAL LETTER G +0048; C; 0068; # LATIN CAPITAL LETTER H +0049; C; 0069; # LATIN CAPITAL LETTER I +0049; T; 0131; # LATIN CAPITAL LETTER I +004A; C; 006A; # LATIN CAPITAL LETTER J +004B; C; 006B; # LATIN CAPITAL LETTER K +004C; C; 006C; # LATIN CAPITAL LETTER L +004D; C; 006D; # LATIN CAPITAL LETTER M +004E; C; 006E; # LATIN CAPITAL LETTER N +004F; C; 006F; # LATIN CAPITAL LETTER O +0050; C; 0070; # LATIN CAPITAL LETTER P +0051; C; 0071; # LATIN CAPITAL LETTER Q +0052; C; 0072; # LATIN CAPITAL LETTER R +0053; C; 0073; # LATIN CAPITAL LETTER S +0054; C; 0074; # LATIN CAPITAL LETTER T +0055; C; 0075; # LATIN CAPITAL LETTER U +0056; C; 0076; # LATIN CAPITAL LETTER V +0057; C; 0077; # LATIN CAPITAL LETTER W +0058; C; 0078; # LATIN CAPITAL LETTER X +0059; C; 0079; # LATIN CAPITAL LETTER Y +005A; C; 007A; # LATIN CAPITAL LETTER Z +00B5; C; 03BC; # MICRO SIGN +00C0; C; 00E0; # LATIN CAPITAL LETTER A WITH GRAVE +00C1; C; 00E1; # LATIN CAPITAL LETTER A WITH ACUTE +00C2; C; 00E2; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX +00C3; C; 00E3; # LATIN CAPITAL LETTER A WITH TILDE +00C4; C; 00E4; # LATIN CAPITAL LETTER A WITH DIAERESIS +00C5; C; 00E5; # LATIN CAPITAL LETTER A WITH RING ABOVE +00C6; C; 00E6; # LATIN CAPITAL LETTER AE +00C7; C; 00E7; # LATIN CAPITAL LETTER C WITH CEDILLA +00C8; C; 00E8; # LATIN CAPITAL LETTER E WITH GRAVE +00C9; C; 00E9; # LATIN CAPITAL LETTER E WITH ACUTE +00CA; C; 00EA; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX +00CB; C; 00EB; # LATIN CAPITAL LETTER E WITH DIAERESIS +00CC; C; 00EC; # LATIN CAPITAL LETTER I WITH GRAVE +00CD; C; 00ED; # LATIN CAPITAL LETTER I WITH ACUTE +00CE; C; 00EE; # LATIN CAPITAL LETTER I WITH CIRCUMFLEX +00CF; C; 00EF; # LATIN CAPITAL LETTER I WITH DIAERESIS +00D0; C; 00F0; # LATIN CAPITAL LETTER ETH +00D1; C; 00F1; # LATIN CAPITAL LETTER N WITH TILDE +00D2; C; 00F2; # LATIN CAPITAL LETTER O WITH GRAVE +00D3; C; 00F3; # LATIN CAPITAL LETTER O WITH ACUTE +00D4; C; 00F4; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX +00D5; C; 00F5; # LATIN CAPITAL LETTER O WITH TILDE +00D6; C; 00F6; # LATIN CAPITAL LETTER O WITH DIAERESIS +00D8; C; 00F8; # LATIN CAPITAL LETTER O WITH STROKE +00D9; C; 00F9; # LATIN CAPITAL LETTER U WITH GRAVE +00DA; C; 00FA; # LATIN CAPITAL LETTER U WITH ACUTE +00DB; C; 00FB; # LATIN CAPITAL LETTER U WITH CIRCUMFLEX +00DC; C; 00FC; # LATIN CAPITAL LETTER U WITH DIAERESIS +00DD; C; 00FD; # LATIN CAPITAL LETTER Y WITH ACUTE +00DE; C; 00FE; # LATIN CAPITAL LETTER THORN +00DF; F; 0073 0073; # LATIN SMALL LETTER SHARP S +0100; C; 0101; # LATIN CAPITAL LETTER A WITH MACRON +0102; C; 0103; # LATIN CAPITAL LETTER A WITH BREVE +0104; C; 0105; # LATIN CAPITAL LETTER A WITH OGONEK +0106; C; 0107; # LATIN CAPITAL LETTER C WITH ACUTE +0108; C; 0109; # LATIN CAPITAL LETTER C WITH CIRCUMFLEX +010A; C; 010B; # LATIN CAPITAL LETTER C WITH DOT ABOVE +010C; C; 010D; # LATIN CAPITAL LETTER C WITH CARON +010E; C; 010F; # LATIN CAPITAL LETTER D WITH CARON +0110; C; 0111; # LATIN CAPITAL LETTER D WITH STROKE +0112; C; 0113; # LATIN CAPITAL LETTER E WITH MACRON +0114; C; 0115; # LATIN CAPITAL LETTER E WITH BREVE +0116; C; 0117; # LATIN CAPITAL LETTER E WITH DOT ABOVE +0118; C; 0119; # LATIN CAPITAL LETTER E WITH OGONEK +011A; C; 011B; # LATIN CAPITAL LETTER E WITH CARON +011C; C; 011D; # LATIN CAPITAL LETTER G WITH CIRCUMFLEX +011E; C; 011F; # LATIN CAPITAL LETTER G WITH BREVE +0120; C; 0121; # LATIN CAPITAL LETTER G WITH DOT ABOVE +0122; C; 0123; # LATIN CAPITAL LETTER G WITH CEDILLA +0124; C; 0125; # LATIN CAPITAL LETTER H WITH CIRCUMFLEX +0126; C; 0127; # LATIN CAPITAL LETTER H WITH STROKE +0128; C; 0129; # LATIN CAPITAL LETTER I WITH TILDE +012A; C; 012B; # LATIN CAPITAL LETTER I WITH MACRON +012C; C; 012D; # LATIN CAPITAL LETTER I WITH BREVE +012E; C; 012F; # LATIN CAPITAL LETTER I WITH OGONEK +0130; F; 0069 0307; # LATIN CAPITAL LETTER I WITH DOT ABOVE +0130; T; 0069; # LATIN CAPITAL LETTER I WITH DOT ABOVE +0132; C; 0133; # LATIN CAPITAL LIGATURE IJ +0134; C; 0135; # LATIN CAPITAL LETTER J WITH CIRCUMFLEX +0136; C; 0137; # LATIN CAPITAL LETTER K WITH CEDILLA +0139; C; 013A; # LATIN CAPITAL LETTER L WITH ACUTE +013B; C; 013C; # LATIN CAPITAL LETTER L WITH CEDILLA +013D; C; 013E; # LATIN CAPITAL LETTER L WITH CARON +013F; C; 0140; # LATIN CAPITAL LETTER L WITH MIDDLE DOT +0141; C; 0142; # LATIN CAPITAL LETTER L WITH STROKE +0143; C; 0144; # LATIN CAPITAL LETTER N WITH ACUTE +0145; C; 0146; # LATIN CAPITAL LETTER N WITH CEDILLA +0147; C; 0148; # LATIN CAPITAL LETTER N WITH CARON +0149; F; 02BC 006E; # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE +014A; C; 014B; # LATIN CAPITAL LETTER ENG +014C; C; 014D; # LATIN CAPITAL LETTER O WITH MACRON +014E; C; 014F; # LATIN CAPITAL LETTER O WITH BREVE +0150; C; 0151; # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE +0152; C; 0153; # LATIN CAPITAL LIGATURE OE +0154; C; 0155; # LATIN CAPITAL LETTER R WITH ACUTE +0156; C; 0157; # LATIN CAPITAL LETTER R WITH CEDILLA +0158; C; 0159; # LATIN CAPITAL LETTER R WITH CARON +015A; C; 015B; # LATIN CAPITAL LETTER S WITH ACUTE +015C; C; 015D; # LATIN CAPITAL LETTER S WITH CIRCUMFLEX +015E; C; 015F; # LATIN CAPITAL LETTER S WITH CEDILLA +0160; C; 0161; # LATIN CAPITAL LETTER S WITH CARON +0162; C; 0163; # LATIN CAPITAL LETTER T WITH CEDILLA +0164; C; 0165; # LATIN CAPITAL LETTER T WITH CARON +0166; C; 0167; # LATIN CAPITAL LETTER T WITH STROKE +0168; C; 0169; # LATIN CAPITAL LETTER U WITH TILDE +016A; C; 016B; # LATIN CAPITAL LETTER U WITH MACRON +016C; C; 016D; # LATIN CAPITAL LETTER U WITH BREVE +016E; C; 016F; # LATIN CAPITAL LETTER U WITH RING ABOVE +0170; C; 0171; # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE +0172; C; 0173; # LATIN CAPITAL LETTER U WITH OGONEK +0174; C; 0175; # LATIN CAPITAL LETTER W WITH CIRCUMFLEX +0176; C; 0177; # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX +0178; C; 00FF; # LATIN CAPITAL LETTER Y WITH DIAERESIS +0179; C; 017A; # LATIN CAPITAL LETTER Z WITH ACUTE +017B; C; 017C; # LATIN CAPITAL LETTER Z WITH DOT ABOVE +017D; C; 017E; # LATIN CAPITAL LETTER Z WITH CARON +017F; C; 0073; # LATIN SMALL LETTER LONG S +0181; C; 0253; # LATIN CAPITAL LETTER B WITH HOOK +0182; C; 0183; # LATIN CAPITAL LETTER B WITH TOPBAR +0184; C; 0185; # LATIN CAPITAL LETTER TONE SIX +0186; C; 0254; # LATIN CAPITAL LETTER OPEN O +0187; C; 0188; # LATIN CAPITAL LETTER C WITH HOOK +0189; C; 0256; # LATIN CAPITAL LETTER AFRICAN D +018A; C; 0257; # LATIN CAPITAL LETTER D WITH HOOK +018B; C; 018C; # LATIN CAPITAL LETTER D WITH TOPBAR +018E; C; 01DD; # LATIN CAPITAL LETTER REVERSED E +018F; C; 0259; # LATIN CAPITAL LETTER SCHWA +0190; C; 025B; # LATIN CAPITAL LETTER OPEN E +0191; C; 0192; # LATIN CAPITAL LETTER F WITH HOOK +0193; C; 0260; # LATIN CAPITAL LETTER G WITH HOOK +0194; C; 0263; # LATIN CAPITAL LETTER GAMMA +0196; C; 0269; # LATIN CAPITAL LETTER IOTA +0197; C; 0268; # LATIN CAPITAL LETTER I WITH STROKE +0198; C; 0199; # LATIN CAPITAL LETTER K WITH HOOK +019C; C; 026F; # LATIN CAPITAL LETTER TURNED M +019D; C; 0272; # LATIN CAPITAL LETTER N WITH LEFT HOOK +019F; C; 0275; # LATIN CAPITAL LETTER O WITH MIDDLE TILDE +01A0; C; 01A1; # LATIN CAPITAL LETTER O WITH HORN +01A2; C; 01A3; # LATIN CAPITAL LETTER OI +01A4; C; 01A5; # LATIN CAPITAL LETTER P WITH HOOK +01A6; C; 0280; # LATIN LETTER YR +01A7; C; 01A8; # LATIN CAPITAL LETTER TONE TWO +01A9; C; 0283; # LATIN CAPITAL LETTER ESH +01AC; C; 01AD; # LATIN CAPITAL LETTER T WITH HOOK +01AE; C; 0288; # LATIN CAPITAL LETTER T WITH RETROFLEX HOOK +01AF; C; 01B0; # LATIN CAPITAL LETTER U WITH HORN +01B1; C; 028A; # LATIN CAPITAL LETTER UPSILON +01B2; C; 028B; # LATIN CAPITAL LETTER V WITH HOOK +01B3; C; 01B4; # LATIN CAPITAL LETTER Y WITH HOOK +01B5; C; 01B6; # LATIN CAPITAL LETTER Z WITH STROKE +01B7; C; 0292; # LATIN CAPITAL LETTER EZH +01B8; C; 01B9; # LATIN CAPITAL LETTER EZH REVERSED +01BC; C; 01BD; # LATIN CAPITAL LETTER TONE FIVE +01C4; C; 01C6; # LATIN CAPITAL LETTER DZ WITH CARON +01C5; C; 01C6; # LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON +01C7; C; 01C9; # LATIN CAPITAL LETTER LJ +01C8; C; 01C9; # LATIN CAPITAL LETTER L WITH SMALL LETTER J +01CA; C; 01CC; # LATIN CAPITAL LETTER NJ +01CB; C; 01CC; # LATIN CAPITAL LETTER N WITH SMALL LETTER J +01CD; C; 01CE; # LATIN CAPITAL LETTER A WITH CARON +01CF; C; 01D0; # LATIN CAPITAL LETTER I WITH CARON +01D1; C; 01D2; # LATIN CAPITAL LETTER O WITH CARON +01D3; C; 01D4; # LATIN CAPITAL LETTER U WITH CARON +01D5; C; 01D6; # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON +01D7; C; 01D8; # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE +01D9; C; 01DA; # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON +01DB; C; 01DC; # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE +01DE; C; 01DF; # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON +01E0; C; 01E1; # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON +01E2; C; 01E3; # LATIN CAPITAL LETTER AE WITH MACRON +01E4; C; 01E5; # LATIN CAPITAL LETTER G WITH STROKE +01E6; C; 01E7; # LATIN CAPITAL LETTER G WITH CARON +01E8; C; 01E9; # LATIN CAPITAL LETTER K WITH CARON +01EA; C; 01EB; # LATIN CAPITAL LETTER O WITH OGONEK +01EC; C; 01ED; # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON +01EE; C; 01EF; # LATIN CAPITAL LETTER EZH WITH CARON +01F0; F; 006A 030C; # LATIN SMALL LETTER J WITH CARON +01F1; C; 01F3; # LATIN CAPITAL LETTER DZ +01F2; C; 01F3; # LATIN CAPITAL LETTER D WITH SMALL LETTER Z +01F4; C; 01F5; # LATIN CAPITAL LETTER G WITH ACUTE +01F6; C; 0195; # LATIN CAPITAL LETTER HWAIR +01F7; C; 01BF; # LATIN CAPITAL LETTER WYNN +01F8; C; 01F9; # LATIN CAPITAL LETTER N WITH GRAVE +01FA; C; 01FB; # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE +01FC; C; 01FD; # LATIN CAPITAL LETTER AE WITH ACUTE +01FE; C; 01FF; # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE +0200; C; 0201; # LATIN CAPITAL LETTER A WITH DOUBLE GRAVE +0202; C; 0203; # LATIN CAPITAL LETTER A WITH INVERTED BREVE +0204; C; 0205; # LATIN CAPITAL LETTER E WITH DOUBLE GRAVE +0206; C; 0207; # LATIN CAPITAL LETTER E WITH INVERTED BREVE +0208; C; 0209; # LATIN CAPITAL LETTER I WITH DOUBLE GRAVE +020A; C; 020B; # LATIN CAPITAL LETTER I WITH INVERTED BREVE +020C; C; 020D; # LATIN CAPITAL LETTER O WITH DOUBLE GRAVE +020E; C; 020F; # LATIN CAPITAL LETTER O WITH INVERTED BREVE +0210; C; 0211; # LATIN CAPITAL LETTER R WITH DOUBLE GRAVE +0212; C; 0213; # LATIN CAPITAL LETTER R WITH INVERTED BREVE +0214; C; 0215; # LATIN CAPITAL LETTER U WITH DOUBLE GRAVE +0216; C; 0217; # LATIN CAPITAL LETTER U WITH INVERTED BREVE +0218; C; 0219; # LATIN CAPITAL LETTER S WITH COMMA BELOW +021A; C; 021B; # LATIN CAPITAL LETTER T WITH COMMA BELOW +021C; C; 021D; # LATIN CAPITAL LETTER YOGH +021E; C; 021F; # LATIN CAPITAL LETTER H WITH CARON +0220; C; 019E; # LATIN CAPITAL LETTER N WITH LONG RIGHT LEG +0222; C; 0223; # LATIN CAPITAL LETTER OU +0224; C; 0225; # LATIN CAPITAL LETTER Z WITH HOOK +0226; C; 0227; # LATIN CAPITAL LETTER A WITH DOT ABOVE +0228; C; 0229; # LATIN CAPITAL LETTER E WITH CEDILLA +022A; C; 022B; # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON +022C; C; 022D; # LATIN CAPITAL LETTER O WITH TILDE AND MACRON +022E; C; 022F; # LATIN CAPITAL LETTER O WITH DOT ABOVE +0230; C; 0231; # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON +0232; C; 0233; # LATIN CAPITAL LETTER Y WITH MACRON +023A; C; 2C65; # LATIN CAPITAL LETTER A WITH STROKE +023B; C; 023C; # LATIN CAPITAL LETTER C WITH STROKE +023D; C; 019A; # LATIN CAPITAL LETTER L WITH BAR +023E; C; 2C66; # LATIN CAPITAL LETTER T WITH DIAGONAL STROKE +0241; C; 0242; # LATIN CAPITAL LETTER GLOTTAL STOP +0243; C; 0180; # LATIN CAPITAL LETTER B WITH STROKE +0244; C; 0289; # LATIN CAPITAL LETTER U BAR +0245; C; 028C; # LATIN CAPITAL LETTER TURNED V +0246; C; 0247; # LATIN CAPITAL LETTER E WITH STROKE +0248; C; 0249; # LATIN CAPITAL LETTER J WITH STROKE +024A; C; 024B; # LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL +024C; C; 024D; # LATIN CAPITAL LETTER R WITH STROKE +024E; C; 024F; # LATIN CAPITAL LETTER Y WITH STROKE +0345; C; 03B9; # COMBINING GREEK YPOGEGRAMMENI +0370; C; 0371; # GREEK CAPITAL LETTER HETA +0372; C; 0373; # GREEK CAPITAL LETTER ARCHAIC SAMPI +0376; C; 0377; # GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA +037F; C; 03F3; # GREEK CAPITAL LETTER YOT +0386; C; 03AC; # GREEK CAPITAL LETTER ALPHA WITH TONOS +0388; C; 03AD; # GREEK CAPITAL LETTER EPSILON WITH TONOS +0389; C; 03AE; # GREEK CAPITAL LETTER ETA WITH TONOS +038A; C; 03AF; # GREEK CAPITAL LETTER IOTA WITH TONOS +038C; C; 03CC; # GREEK CAPITAL LETTER OMICRON WITH TONOS +038E; C; 03CD; # GREEK CAPITAL LETTER UPSILON WITH TONOS +038F; C; 03CE; # GREEK CAPITAL LETTER OMEGA WITH TONOS +0390; F; 03B9 0308 0301; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS +0391; C; 03B1; # GREEK CAPITAL LETTER ALPHA +0392; C; 03B2; # GREEK CAPITAL LETTER BETA +0393; C; 03B3; # GREEK CAPITAL LETTER GAMMA +0394; C; 03B4; # GREEK CAPITAL LETTER DELTA +0395; C; 03B5; # GREEK CAPITAL LETTER EPSILON +0396; C; 03B6; # GREEK CAPITAL LETTER ZETA +0397; C; 03B7; # GREEK CAPITAL LETTER ETA +0398; C; 03B8; # GREEK CAPITAL LETTER THETA +0399; C; 03B9; # GREEK CAPITAL LETTER IOTA +039A; C; 03BA; # GREEK CAPITAL LETTER KAPPA +039B; C; 03BB; # GREEK CAPITAL LETTER LAMDA +039C; C; 03BC; # GREEK CAPITAL LETTER MU +039D; C; 03BD; # GREEK CAPITAL LETTER NU +039E; C; 03BE; # GREEK CAPITAL LETTER XI +039F; C; 03BF; # GREEK CAPITAL LETTER OMICRON +03A0; C; 03C0; # GREEK CAPITAL LETTER PI +03A1; C; 03C1; # GREEK CAPITAL LETTER RHO +03A3; C; 03C3; # GREEK CAPITAL LETTER SIGMA +03A4; C; 03C4; # GREEK CAPITAL LETTER TAU +03A5; C; 03C5; # GREEK CAPITAL LETTER UPSILON +03A6; C; 03C6; # GREEK CAPITAL LETTER PHI +03A7; C; 03C7; # GREEK CAPITAL LETTER CHI +03A8; C; 03C8; # GREEK CAPITAL LETTER PSI +03A9; C; 03C9; # GREEK CAPITAL LETTER OMEGA +03AA; C; 03CA; # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA +03AB; C; 03CB; # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA +03B0; F; 03C5 0308 0301; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS +03C2; C; 03C3; # GREEK SMALL LETTER FINAL SIGMA +03CF; C; 03D7; # GREEK CAPITAL KAI SYMBOL +03D0; C; 03B2; # GREEK BETA SYMBOL +03D1; C; 03B8; # GREEK THETA SYMBOL +03D5; C; 03C6; # GREEK PHI SYMBOL +03D6; C; 03C0; # GREEK PI SYMBOL +03D8; C; 03D9; # GREEK LETTER ARCHAIC KOPPA +03DA; C; 03DB; # GREEK LETTER STIGMA +03DC; C; 03DD; # GREEK LETTER DIGAMMA +03DE; C; 03DF; # GREEK LETTER KOPPA +03E0; C; 03E1; # GREEK LETTER SAMPI +03E2; C; 03E3; # COPTIC CAPITAL LETTER SHEI +03E4; C; 03E5; # COPTIC CAPITAL LETTER FEI +03E6; C; 03E7; # COPTIC CAPITAL LETTER KHEI +03E8; C; 03E9; # COPTIC CAPITAL LETTER HORI +03EA; C; 03EB; # COPTIC CAPITAL LETTER GANGIA +03EC; C; 03ED; # COPTIC CAPITAL LETTER SHIMA +03EE; C; 03EF; # COPTIC CAPITAL LETTER DEI +03F0; C; 03BA; # GREEK KAPPA SYMBOL +03F1; C; 03C1; # GREEK RHO SYMBOL +03F4; C; 03B8; # GREEK CAPITAL THETA SYMBOL +03F5; C; 03B5; # GREEK LUNATE EPSILON SYMBOL +03F7; C; 03F8; # GREEK CAPITAL LETTER SHO +03F9; C; 03F2; # GREEK CAPITAL LUNATE SIGMA SYMBOL +03FA; C; 03FB; # GREEK CAPITAL LETTER SAN +03FD; C; 037B; # GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL +03FE; C; 037C; # GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL +03FF; C; 037D; # GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL +0400; C; 0450; # CYRILLIC CAPITAL LETTER IE WITH GRAVE +0401; C; 0451; # CYRILLIC CAPITAL LETTER IO +0402; C; 0452; # CYRILLIC CAPITAL LETTER DJE +0403; C; 0453; # CYRILLIC CAPITAL LETTER GJE +0404; C; 0454; # CYRILLIC CAPITAL LETTER UKRAINIAN IE +0405; C; 0455; # CYRILLIC CAPITAL LETTER DZE +0406; C; 0456; # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I +0407; C; 0457; # CYRILLIC CAPITAL LETTER YI +0408; C; 0458; # CYRILLIC CAPITAL LETTER JE +0409; C; 0459; # CYRILLIC CAPITAL LETTER LJE +040A; C; 045A; # CYRILLIC CAPITAL LETTER NJE +040B; C; 045B; # CYRILLIC CAPITAL LETTER TSHE +040C; C; 045C; # CYRILLIC CAPITAL LETTER KJE +040D; C; 045D; # CYRILLIC CAPITAL LETTER I WITH GRAVE +040E; C; 045E; # CYRILLIC CAPITAL LETTER SHORT U +040F; C; 045F; # CYRILLIC CAPITAL LETTER DZHE +0410; C; 0430; # CYRILLIC CAPITAL LETTER A +0411; C; 0431; # CYRILLIC CAPITAL LETTER BE +0412; C; 0432; # CYRILLIC CAPITAL LETTER VE +0413; C; 0433; # CYRILLIC CAPITAL LETTER GHE +0414; C; 0434; # CYRILLIC CAPITAL LETTER DE +0415; C; 0435; # CYRILLIC CAPITAL LETTER IE +0416; C; 0436; # CYRILLIC CAPITAL LETTER ZHE +0417; C; 0437; # CYRILLIC CAPITAL LETTER ZE +0418; C; 0438; # CYRILLIC CAPITAL LETTER I +0419; C; 0439; # CYRILLIC CAPITAL LETTER SHORT I +041A; C; 043A; # CYRILLIC CAPITAL LETTER KA +041B; C; 043B; # CYRILLIC CAPITAL LETTER EL +041C; C; 043C; # CYRILLIC CAPITAL LETTER EM +041D; C; 043D; # CYRILLIC CAPITAL LETTER EN +041E; C; 043E; # CYRILLIC CAPITAL LETTER O +041F; C; 043F; # CYRILLIC CAPITAL LETTER PE +0420; C; 0440; # CYRILLIC CAPITAL LETTER ER +0421; C; 0441; # CYRILLIC CAPITAL LETTER ES +0422; C; 0442; # CYRILLIC CAPITAL LETTER TE +0423; C; 0443; # CYRILLIC CAPITAL LETTER U +0424; C; 0444; # CYRILLIC CAPITAL LETTER EF +0425; C; 0445; # CYRILLIC CAPITAL LETTER HA +0426; C; 0446; # CYRILLIC CAPITAL LETTER TSE +0427; C; 0447; # CYRILLIC CAPITAL LETTER CHE +0428; C; 0448; # CYRILLIC CAPITAL LETTER SHA +0429; C; 0449; # CYRILLIC CAPITAL LETTER SHCHA +042A; C; 044A; # CYRILLIC CAPITAL LETTER HARD SIGN +042B; C; 044B; # CYRILLIC CAPITAL LETTER YERU +042C; C; 044C; # CYRILLIC CAPITAL LETTER SOFT SIGN +042D; C; 044D; # CYRILLIC CAPITAL LETTER E +042E; C; 044E; # CYRILLIC CAPITAL LETTER YU +042F; C; 044F; # CYRILLIC CAPITAL LETTER YA +0460; C; 0461; # CYRILLIC CAPITAL LETTER OMEGA +0462; C; 0463; # CYRILLIC CAPITAL LETTER YAT +0464; C; 0465; # CYRILLIC CAPITAL LETTER IOTIFIED E +0466; C; 0467; # CYRILLIC CAPITAL LETTER LITTLE YUS +0468; C; 0469; # CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS +046A; C; 046B; # CYRILLIC CAPITAL LETTER BIG YUS +046C; C; 046D; # CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS +046E; C; 046F; # CYRILLIC CAPITAL LETTER KSI +0470; C; 0471; # CYRILLIC CAPITAL LETTER PSI +0472; C; 0473; # CYRILLIC CAPITAL LETTER FITA +0474; C; 0475; # CYRILLIC CAPITAL LETTER IZHITSA +0476; C; 0477; # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT +0478; C; 0479; # CYRILLIC CAPITAL LETTER UK +047A; C; 047B; # CYRILLIC CAPITAL LETTER ROUND OMEGA +047C; C; 047D; # CYRILLIC CAPITAL LETTER OMEGA WITH TITLO +047E; C; 047F; # CYRILLIC CAPITAL LETTER OT +0480; C; 0481; # CYRILLIC CAPITAL LETTER KOPPA +048A; C; 048B; # CYRILLIC CAPITAL LETTER SHORT I WITH TAIL +048C; C; 048D; # CYRILLIC CAPITAL LETTER SEMISOFT SIGN +048E; C; 048F; # CYRILLIC CAPITAL LETTER ER WITH TICK +0490; C; 0491; # CYRILLIC CAPITAL LETTER GHE WITH UPTURN +0492; C; 0493; # CYRILLIC CAPITAL LETTER GHE WITH STROKE +0494; C; 0495; # CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK +0496; C; 0497; # CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER +0498; C; 0499; # CYRILLIC CAPITAL LETTER ZE WITH DESCENDER +049A; C; 049B; # CYRILLIC CAPITAL LETTER KA WITH DESCENDER +049C; C; 049D; # CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE +049E; C; 049F; # CYRILLIC CAPITAL LETTER KA WITH STROKE +04A0; C; 04A1; # CYRILLIC CAPITAL LETTER BASHKIR KA +04A2; C; 04A3; # CYRILLIC CAPITAL LETTER EN WITH DESCENDER +04A4; C; 04A5; # CYRILLIC CAPITAL LIGATURE EN GHE +04A6; C; 04A7; # CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK +04A8; C; 04A9; # CYRILLIC CAPITAL LETTER ABKHASIAN HA +04AA; C; 04AB; # CYRILLIC CAPITAL LETTER ES WITH DESCENDER +04AC; C; 04AD; # CYRILLIC CAPITAL LETTER TE WITH DESCENDER +04AE; C; 04AF; # CYRILLIC CAPITAL LETTER STRAIGHT U +04B0; C; 04B1; # CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE +04B2; C; 04B3; # CYRILLIC CAPITAL LETTER HA WITH DESCENDER +04B4; C; 04B5; # CYRILLIC CAPITAL LIGATURE TE TSE +04B6; C; 04B7; # CYRILLIC CAPITAL LETTER CHE WITH DESCENDER +04B8; C; 04B9; # CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE +04BA; C; 04BB; # CYRILLIC CAPITAL LETTER SHHA +04BC; C; 04BD; # CYRILLIC CAPITAL LETTER ABKHASIAN CHE +04BE; C; 04BF; # CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER +04C0; C; 04CF; # CYRILLIC LETTER PALOCHKA +04C1; C; 04C2; # CYRILLIC CAPITAL LETTER ZHE WITH BREVE +04C3; C; 04C4; # CYRILLIC CAPITAL LETTER KA WITH HOOK +04C5; C; 04C6; # CYRILLIC CAPITAL LETTER EL WITH TAIL +04C7; C; 04C8; # CYRILLIC CAPITAL LETTER EN WITH HOOK +04C9; C; 04CA; # CYRILLIC CAPITAL LETTER EN WITH TAIL +04CB; C; 04CC; # CYRILLIC CAPITAL LETTER KHAKASSIAN CHE +04CD; C; 04CE; # CYRILLIC CAPITAL LETTER EM WITH TAIL +04D0; C; 04D1; # CYRILLIC CAPITAL LETTER A WITH BREVE +04D2; C; 04D3; # CYRILLIC CAPITAL LETTER A WITH DIAERESIS +04D4; C; 04D5; # CYRILLIC CAPITAL LIGATURE A IE +04D6; C; 04D7; # CYRILLIC CAPITAL LETTER IE WITH BREVE +04D8; C; 04D9; # CYRILLIC CAPITAL LETTER SCHWA +04DA; C; 04DB; # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS +04DC; C; 04DD; # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS +04DE; C; 04DF; # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS +04E0; C; 04E1; # CYRILLIC CAPITAL LETTER ABKHASIAN DZE +04E2; C; 04E3; # CYRILLIC CAPITAL LETTER I WITH MACRON +04E4; C; 04E5; # CYRILLIC CAPITAL LETTER I WITH DIAERESIS +04E6; C; 04E7; # CYRILLIC CAPITAL LETTER O WITH DIAERESIS +04E8; C; 04E9; # CYRILLIC CAPITAL LETTER BARRED O +04EA; C; 04EB; # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS +04EC; C; 04ED; # CYRILLIC CAPITAL LETTER E WITH DIAERESIS +04EE; C; 04EF; # CYRILLIC CAPITAL LETTER U WITH MACRON +04F0; C; 04F1; # CYRILLIC CAPITAL LETTER U WITH DIAERESIS +04F2; C; 04F3; # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE +04F4; C; 04F5; # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS +04F6; C; 04F7; # CYRILLIC CAPITAL LETTER GHE WITH DESCENDER +04F8; C; 04F9; # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS +04FA; C; 04FB; # CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK +04FC; C; 04FD; # CYRILLIC CAPITAL LETTER HA WITH HOOK +04FE; C; 04FF; # CYRILLIC CAPITAL LETTER HA WITH STROKE +0500; C; 0501; # CYRILLIC CAPITAL LETTER KOMI DE +0502; C; 0503; # CYRILLIC CAPITAL LETTER KOMI DJE +0504; C; 0505; # CYRILLIC CAPITAL LETTER KOMI ZJE +0506; C; 0507; # CYRILLIC CAPITAL LETTER KOMI DZJE +0508; C; 0509; # CYRILLIC CAPITAL LETTER KOMI LJE +050A; C; 050B; # CYRILLIC CAPITAL LETTER KOMI NJE +050C; C; 050D; # CYRILLIC CAPITAL LETTER KOMI SJE +050E; C; 050F; # CYRILLIC CAPITAL LETTER KOMI TJE +0510; C; 0511; # CYRILLIC CAPITAL LETTER REVERSED ZE +0512; C; 0513; # CYRILLIC CAPITAL LETTER EL WITH HOOK +0514; C; 0515; # CYRILLIC CAPITAL LETTER LHA +0516; C; 0517; # CYRILLIC CAPITAL LETTER RHA +0518; C; 0519; # CYRILLIC CAPITAL LETTER YAE +051A; C; 051B; # CYRILLIC CAPITAL LETTER QA +051C; C; 051D; # CYRILLIC CAPITAL LETTER WE +051E; C; 051F; # CYRILLIC CAPITAL LETTER ALEUT KA +0520; C; 0521; # CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK +0522; C; 0523; # CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK +0524; C; 0525; # CYRILLIC CAPITAL LETTER PE WITH DESCENDER +0526; C; 0527; # CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER +0528; C; 0529; # CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK +052A; C; 052B; # CYRILLIC CAPITAL LETTER DZZHE +052C; C; 052D; # CYRILLIC CAPITAL LETTER DCHE +052E; C; 052F; # CYRILLIC CAPITAL LETTER EL WITH DESCENDER +0531; C; 0561; # ARMENIAN CAPITAL LETTER AYB +0532; C; 0562; # ARMENIAN CAPITAL LETTER BEN +0533; C; 0563; # ARMENIAN CAPITAL LETTER GIM +0534; C; 0564; # ARMENIAN CAPITAL LETTER DA +0535; C; 0565; # ARMENIAN CAPITAL LETTER ECH +0536; C; 0566; # ARMENIAN CAPITAL LETTER ZA +0537; C; 0567; # ARMENIAN CAPITAL LETTER EH +0538; C; 0568; # ARMENIAN CAPITAL LETTER ET +0539; C; 0569; # ARMENIAN CAPITAL LETTER TO +053A; C; 056A; # ARMENIAN CAPITAL LETTER ZHE +053B; C; 056B; # ARMENIAN CAPITAL LETTER INI +053C; C; 056C; # ARMENIAN CAPITAL LETTER LIWN +053D; C; 056D; # ARMENIAN CAPITAL LETTER XEH +053E; C; 056E; # ARMENIAN CAPITAL LETTER CA +053F; C; 056F; # ARMENIAN CAPITAL LETTER KEN +0540; C; 0570; # ARMENIAN CAPITAL LETTER HO +0541; C; 0571; # ARMENIAN CAPITAL LETTER JA +0542; C; 0572; # ARMENIAN CAPITAL LETTER GHAD +0543; C; 0573; # ARMENIAN CAPITAL LETTER CHEH +0544; C; 0574; # ARMENIAN CAPITAL LETTER MEN +0545; C; 0575; # ARMENIAN CAPITAL LETTER YI +0546; C; 0576; # ARMENIAN CAPITAL LETTER NOW +0547; C; 0577; # ARMENIAN CAPITAL LETTER SHA +0548; C; 0578; # ARMENIAN CAPITAL LETTER VO +0549; C; 0579; # ARMENIAN CAPITAL LETTER CHA +054A; C; 057A; # ARMENIAN CAPITAL LETTER PEH +054B; C; 057B; # ARMENIAN CAPITAL LETTER JHEH +054C; C; 057C; # ARMENIAN CAPITAL LETTER RA +054D; C; 057D; # ARMENIAN CAPITAL LETTER SEH +054E; C; 057E; # ARMENIAN CAPITAL LETTER VEW +054F; C; 057F; # ARMENIAN CAPITAL LETTER TIWN +0550; C; 0580; # ARMENIAN CAPITAL LETTER REH +0551; C; 0581; # ARMENIAN CAPITAL LETTER CO +0552; C; 0582; # ARMENIAN CAPITAL LETTER YIWN +0553; C; 0583; # ARMENIAN CAPITAL LETTER PIWR +0554; C; 0584; # ARMENIAN CAPITAL LETTER KEH +0555; C; 0585; # ARMENIAN CAPITAL LETTER OH +0556; C; 0586; # ARMENIAN CAPITAL LETTER FEH +0587; F; 0565 0582; # ARMENIAN SMALL LIGATURE ECH YIWN +10A0; C; 2D00; # GEORGIAN CAPITAL LETTER AN +10A1; C; 2D01; # GEORGIAN CAPITAL LETTER BAN +10A2; C; 2D02; # GEORGIAN CAPITAL LETTER GAN +10A3; C; 2D03; # GEORGIAN CAPITAL LETTER DON +10A4; C; 2D04; # GEORGIAN CAPITAL LETTER EN +10A5; C; 2D05; # GEORGIAN CAPITAL LETTER VIN +10A6; C; 2D06; # GEORGIAN CAPITAL LETTER ZEN +10A7; C; 2D07; # GEORGIAN CAPITAL LETTER TAN +10A8; C; 2D08; # GEORGIAN CAPITAL LETTER IN +10A9; C; 2D09; # GEORGIAN CAPITAL LETTER KAN +10AA; C; 2D0A; # GEORGIAN CAPITAL LETTER LAS +10AB; C; 2D0B; # GEORGIAN CAPITAL LETTER MAN +10AC; C; 2D0C; # GEORGIAN CAPITAL LETTER NAR +10AD; C; 2D0D; # GEORGIAN CAPITAL LETTER ON +10AE; C; 2D0E; # GEORGIAN CAPITAL LETTER PAR +10AF; C; 2D0F; # GEORGIAN CAPITAL LETTER ZHAR +10B0; C; 2D10; # GEORGIAN CAPITAL LETTER RAE +10B1; C; 2D11; # GEORGIAN CAPITAL LETTER SAN +10B2; C; 2D12; # GEORGIAN CAPITAL LETTER TAR +10B3; C; 2D13; # GEORGIAN CAPITAL LETTER UN +10B4; C; 2D14; # GEORGIAN CAPITAL LETTER PHAR +10B5; C; 2D15; # GEORGIAN CAPITAL LETTER KHAR +10B6; C; 2D16; # GEORGIAN CAPITAL LETTER GHAN +10B7; C; 2D17; # GEORGIAN CAPITAL LETTER QAR +10B8; C; 2D18; # GEORGIAN CAPITAL LETTER SHIN +10B9; C; 2D19; # GEORGIAN CAPITAL LETTER CHIN +10BA; C; 2D1A; # GEORGIAN CAPITAL LETTER CAN +10BB; C; 2D1B; # GEORGIAN CAPITAL LETTER JIL +10BC; C; 2D1C; # GEORGIAN CAPITAL LETTER CIL +10BD; C; 2D1D; # GEORGIAN CAPITAL LETTER CHAR +10BE; C; 2D1E; # GEORGIAN CAPITAL LETTER XAN +10BF; C; 2D1F; # GEORGIAN CAPITAL LETTER JHAN +10C0; C; 2D20; # GEORGIAN CAPITAL LETTER HAE +10C1; C; 2D21; # GEORGIAN CAPITAL LETTER HE +10C2; C; 2D22; # GEORGIAN CAPITAL LETTER HIE +10C3; C; 2D23; # GEORGIAN CAPITAL LETTER WE +10C4; C; 2D24; # GEORGIAN CAPITAL LETTER HAR +10C5; C; 2D25; # GEORGIAN CAPITAL LETTER HOE +10C7; C; 2D27; # GEORGIAN CAPITAL LETTER YN +10CD; C; 2D2D; # GEORGIAN CAPITAL LETTER AEN +13F8; C; 13F0; # CHEROKEE SMALL LETTER YE +13F9; C; 13F1; # CHEROKEE SMALL LETTER YI +13FA; C; 13F2; # CHEROKEE SMALL LETTER YO +13FB; C; 13F3; # CHEROKEE SMALL LETTER YU +13FC; C; 13F4; # CHEROKEE SMALL LETTER YV +13FD; C; 13F5; # CHEROKEE SMALL LETTER MV +1C80; C; 0432; # CYRILLIC SMALL LETTER ROUNDED VE +1C81; C; 0434; # CYRILLIC SMALL LETTER LONG-LEGGED DE +1C82; C; 043E; # CYRILLIC SMALL LETTER NARROW O +1C83; C; 0441; # CYRILLIC SMALL LETTER WIDE ES +1C84; C; 0442; # CYRILLIC SMALL LETTER TALL TE +1C85; C; 0442; # CYRILLIC SMALL LETTER THREE-LEGGED TE +1C86; C; 044A; # CYRILLIC SMALL LETTER TALL HARD SIGN +1C87; C; 0463; # CYRILLIC SMALL LETTER TALL YAT +1C88; C; A64B; # CYRILLIC SMALL LETTER UNBLENDED UK +1C90; C; 10D0; # GEORGIAN MTAVRULI CAPITAL LETTER AN +1C91; C; 10D1; # GEORGIAN MTAVRULI CAPITAL LETTER BAN +1C92; C; 10D2; # GEORGIAN MTAVRULI CAPITAL LETTER GAN +1C93; C; 10D3; # GEORGIAN MTAVRULI CAPITAL LETTER DON +1C94; C; 10D4; # GEORGIAN MTAVRULI CAPITAL LETTER EN +1C95; C; 10D5; # GEORGIAN MTAVRULI CAPITAL LETTER VIN +1C96; C; 10D6; # GEORGIAN MTAVRULI CAPITAL LETTER ZEN +1C97; C; 10D7; # GEORGIAN MTAVRULI CAPITAL LETTER TAN +1C98; C; 10D8; # GEORGIAN MTAVRULI CAPITAL LETTER IN +1C99; C; 10D9; # GEORGIAN MTAVRULI CAPITAL LETTER KAN +1C9A; C; 10DA; # GEORGIAN MTAVRULI CAPITAL LETTER LAS +1C9B; C; 10DB; # GEORGIAN MTAVRULI CAPITAL LETTER MAN +1C9C; C; 10DC; # GEORGIAN MTAVRULI CAPITAL LETTER NAR +1C9D; C; 10DD; # GEORGIAN MTAVRULI CAPITAL LETTER ON +1C9E; C; 10DE; # GEORGIAN MTAVRULI CAPITAL LETTER PAR +1C9F; C; 10DF; # GEORGIAN MTAVRULI CAPITAL LETTER ZHAR +1CA0; C; 10E0; # GEORGIAN MTAVRULI CAPITAL LETTER RAE +1CA1; C; 10E1; # GEORGIAN MTAVRULI CAPITAL LETTER SAN +1CA2; C; 10E2; # GEORGIAN MTAVRULI CAPITAL LETTER TAR +1CA3; C; 10E3; # GEORGIAN MTAVRULI CAPITAL LETTER UN +1CA4; C; 10E4; # GEORGIAN MTAVRULI CAPITAL LETTER PHAR +1CA5; C; 10E5; # GEORGIAN MTAVRULI CAPITAL LETTER KHAR +1CA6; C; 10E6; # GEORGIAN MTAVRULI CAPITAL LETTER GHAN +1CA7; C; 10E7; # GEORGIAN MTAVRULI CAPITAL LETTER QAR +1CA8; C; 10E8; # GEORGIAN MTAVRULI CAPITAL LETTER SHIN +1CA9; C; 10E9; # GEORGIAN MTAVRULI CAPITAL LETTER CHIN +1CAA; C; 10EA; # GEORGIAN MTAVRULI CAPITAL LETTER CAN +1CAB; C; 10EB; # GEORGIAN MTAVRULI CAPITAL LETTER JIL +1CAC; C; 10EC; # GEORGIAN MTAVRULI CAPITAL LETTER CIL +1CAD; C; 10ED; # GEORGIAN MTAVRULI CAPITAL LETTER CHAR +1CAE; C; 10EE; # GEORGIAN MTAVRULI CAPITAL LETTER XAN +1CAF; C; 10EF; # GEORGIAN MTAVRULI CAPITAL LETTER JHAN +1CB0; C; 10F0; # GEORGIAN MTAVRULI CAPITAL LETTER HAE +1CB1; C; 10F1; # GEORGIAN MTAVRULI CAPITAL LETTER HE +1CB2; C; 10F2; # GEORGIAN MTAVRULI CAPITAL LETTER HIE +1CB3; C; 10F3; # GEORGIAN MTAVRULI CAPITAL LETTER WE +1CB4; C; 10F4; # GEORGIAN MTAVRULI CAPITAL LETTER HAR +1CB5; C; 10F5; # GEORGIAN MTAVRULI CAPITAL LETTER HOE +1CB6; C; 10F6; # GEORGIAN MTAVRULI CAPITAL LETTER FI +1CB7; C; 10F7; # GEORGIAN MTAVRULI CAPITAL LETTER YN +1CB8; C; 10F8; # GEORGIAN MTAVRULI CAPITAL LETTER ELIFI +1CB9; C; 10F9; # GEORGIAN MTAVRULI CAPITAL LETTER TURNED GAN +1CBA; C; 10FA; # GEORGIAN MTAVRULI CAPITAL LETTER AIN +1CBD; C; 10FD; # GEORGIAN MTAVRULI CAPITAL LETTER AEN +1CBE; C; 10FE; # GEORGIAN MTAVRULI CAPITAL LETTER HARD SIGN +1CBF; C; 10FF; # GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN +1E00; C; 1E01; # LATIN CAPITAL LETTER A WITH RING BELOW +1E02; C; 1E03; # LATIN CAPITAL LETTER B WITH DOT ABOVE +1E04; C; 1E05; # LATIN CAPITAL LETTER B WITH DOT BELOW +1E06; C; 1E07; # LATIN CAPITAL LETTER B WITH LINE BELOW +1E08; C; 1E09; # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE +1E0A; C; 1E0B; # LATIN CAPITAL LETTER D WITH DOT ABOVE +1E0C; C; 1E0D; # LATIN CAPITAL LETTER D WITH DOT BELOW +1E0E; C; 1E0F; # LATIN CAPITAL LETTER D WITH LINE BELOW +1E10; C; 1E11; # LATIN CAPITAL LETTER D WITH CEDILLA +1E12; C; 1E13; # LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW +1E14; C; 1E15; # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE +1E16; C; 1E17; # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE +1E18; C; 1E19; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW +1E1A; C; 1E1B; # LATIN CAPITAL LETTER E WITH TILDE BELOW +1E1C; C; 1E1D; # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE +1E1E; C; 1E1F; # LATIN CAPITAL LETTER F WITH DOT ABOVE +1E20; C; 1E21; # LATIN CAPITAL LETTER G WITH MACRON +1E22; C; 1E23; # LATIN CAPITAL LETTER H WITH DOT ABOVE +1E24; C; 1E25; # LATIN CAPITAL LETTER H WITH DOT BELOW +1E26; C; 1E27; # LATIN CAPITAL LETTER H WITH DIAERESIS +1E28; C; 1E29; # LATIN CAPITAL LETTER H WITH CEDILLA +1E2A; C; 1E2B; # LATIN CAPITAL LETTER H WITH BREVE BELOW +1E2C; C; 1E2D; # LATIN CAPITAL LETTER I WITH TILDE BELOW +1E2E; C; 1E2F; # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE +1E30; C; 1E31; # LATIN CAPITAL LETTER K WITH ACUTE +1E32; C; 1E33; # LATIN CAPITAL LETTER K WITH DOT BELOW +1E34; C; 1E35; # LATIN CAPITAL LETTER K WITH LINE BELOW +1E36; C; 1E37; # LATIN CAPITAL LETTER L WITH DOT BELOW +1E38; C; 1E39; # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON +1E3A; C; 1E3B; # LATIN CAPITAL LETTER L WITH LINE BELOW +1E3C; C; 1E3D; # LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW +1E3E; C; 1E3F; # LATIN CAPITAL LETTER M WITH ACUTE +1E40; C; 1E41; # LATIN CAPITAL LETTER M WITH DOT ABOVE +1E42; C; 1E43; # LATIN CAPITAL LETTER M WITH DOT BELOW +1E44; C; 1E45; # LATIN CAPITAL LETTER N WITH DOT ABOVE +1E46; C; 1E47; # LATIN CAPITAL LETTER N WITH DOT BELOW +1E48; C; 1E49; # LATIN CAPITAL LETTER N WITH LINE BELOW +1E4A; C; 1E4B; # LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW +1E4C; C; 1E4D; # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE +1E4E; C; 1E4F; # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS +1E50; C; 1E51; # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE +1E52; C; 1E53; # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE +1E54; C; 1E55; # LATIN CAPITAL LETTER P WITH ACUTE +1E56; C; 1E57; # LATIN CAPITAL LETTER P WITH DOT ABOVE +1E58; C; 1E59; # LATIN CAPITAL LETTER R WITH DOT ABOVE +1E5A; C; 1E5B; # LATIN CAPITAL LETTER R WITH DOT BELOW +1E5C; C; 1E5D; # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON +1E5E; C; 1E5F; # LATIN CAPITAL LETTER R WITH LINE BELOW +1E60; C; 1E61; # LATIN CAPITAL LETTER S WITH DOT ABOVE +1E62; C; 1E63; # LATIN CAPITAL LETTER S WITH DOT BELOW +1E64; C; 1E65; # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE +1E66; C; 1E67; # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE +1E68; C; 1E69; # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE +1E6A; C; 1E6B; # LATIN CAPITAL LETTER T WITH DOT ABOVE +1E6C; C; 1E6D; # LATIN CAPITAL LETTER T WITH DOT BELOW +1E6E; C; 1E6F; # LATIN CAPITAL LETTER T WITH LINE BELOW +1E70; C; 1E71; # LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW +1E72; C; 1E73; # LATIN CAPITAL LETTER U WITH DIAERESIS BELOW +1E74; C; 1E75; # LATIN CAPITAL LETTER U WITH TILDE BELOW +1E76; C; 1E77; # LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW +1E78; C; 1E79; # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE +1E7A; C; 1E7B; # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS +1E7C; C; 1E7D; # LATIN CAPITAL LETTER V WITH TILDE +1E7E; C; 1E7F; # LATIN CAPITAL LETTER V WITH DOT BELOW +1E80; C; 1E81; # LATIN CAPITAL LETTER W WITH GRAVE +1E82; C; 1E83; # LATIN CAPITAL LETTER W WITH ACUTE +1E84; C; 1E85; # LATIN CAPITAL LETTER W WITH DIAERESIS +1E86; C; 1E87; # LATIN CAPITAL LETTER W WITH DOT ABOVE +1E88; C; 1E89; # LATIN CAPITAL LETTER W WITH DOT BELOW +1E8A; C; 1E8B; # LATIN CAPITAL LETTER X WITH DOT ABOVE +1E8C; C; 1E8D; # LATIN CAPITAL LETTER X WITH DIAERESIS +1E8E; C; 1E8F; # LATIN CAPITAL LETTER Y WITH DOT ABOVE +1E90; C; 1E91; # LATIN CAPITAL LETTER Z WITH CIRCUMFLEX +1E92; C; 1E93; # LATIN CAPITAL LETTER Z WITH DOT BELOW +1E94; C; 1E95; # LATIN CAPITAL LETTER Z WITH LINE BELOW +1E96; F; 0068 0331; # LATIN SMALL LETTER H WITH LINE BELOW +1E97; F; 0074 0308; # LATIN SMALL LETTER T WITH DIAERESIS +1E98; F; 0077 030A; # LATIN SMALL LETTER W WITH RING ABOVE +1E99; F; 0079 030A; # LATIN SMALL LETTER Y WITH RING ABOVE +1E9A; F; 0061 02BE; # LATIN SMALL LETTER A WITH RIGHT HALF RING +1E9B; C; 1E61; # LATIN SMALL LETTER LONG S WITH DOT ABOVE +1E9E; F; 0073 0073; # LATIN CAPITAL LETTER SHARP S +1E9E; S; 00DF; # LATIN CAPITAL LETTER SHARP S +1EA0; C; 1EA1; # LATIN CAPITAL LETTER A WITH DOT BELOW +1EA2; C; 1EA3; # LATIN CAPITAL LETTER A WITH HOOK ABOVE +1EA4; C; 1EA5; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE +1EA6; C; 1EA7; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE +1EA8; C; 1EA9; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE +1EAA; C; 1EAB; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE +1EAC; C; 1EAD; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW +1EAE; C; 1EAF; # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE +1EB0; C; 1EB1; # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE +1EB2; C; 1EB3; # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE +1EB4; C; 1EB5; # LATIN CAPITAL LETTER A WITH BREVE AND TILDE +1EB6; C; 1EB7; # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW +1EB8; C; 1EB9; # LATIN CAPITAL LETTER E WITH DOT BELOW +1EBA; C; 1EBB; # LATIN CAPITAL LETTER E WITH HOOK ABOVE +1EBC; C; 1EBD; # LATIN CAPITAL LETTER E WITH TILDE +1EBE; C; 1EBF; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE +1EC0; C; 1EC1; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE +1EC2; C; 1EC3; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE +1EC4; C; 1EC5; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE +1EC6; C; 1EC7; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW +1EC8; C; 1EC9; # LATIN CAPITAL LETTER I WITH HOOK ABOVE +1ECA; C; 1ECB; # LATIN CAPITAL LETTER I WITH DOT BELOW +1ECC; C; 1ECD; # LATIN CAPITAL LETTER O WITH DOT BELOW +1ECE; C; 1ECF; # LATIN CAPITAL LETTER O WITH HOOK ABOVE +1ED0; C; 1ED1; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE +1ED2; C; 1ED3; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE +1ED4; C; 1ED5; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE +1ED6; C; 1ED7; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE +1ED8; C; 1ED9; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW +1EDA; C; 1EDB; # LATIN CAPITAL LETTER O WITH HORN AND ACUTE +1EDC; C; 1EDD; # LATIN CAPITAL LETTER O WITH HORN AND GRAVE +1EDE; C; 1EDF; # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE +1EE0; C; 1EE1; # LATIN CAPITAL LETTER O WITH HORN AND TILDE +1EE2; C; 1EE3; # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW +1EE4; C; 1EE5; # LATIN CAPITAL LETTER U WITH DOT BELOW +1EE6; C; 1EE7; # LATIN CAPITAL LETTER U WITH HOOK ABOVE +1EE8; C; 1EE9; # LATIN CAPITAL LETTER U WITH HORN AND ACUTE +1EEA; C; 1EEB; # LATIN CAPITAL LETTER U WITH HORN AND GRAVE +1EEC; C; 1EED; # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE +1EEE; C; 1EEF; # LATIN CAPITAL LETTER U WITH HORN AND TILDE +1EF0; C; 1EF1; # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW +1EF2; C; 1EF3; # LATIN CAPITAL LETTER Y WITH GRAVE +1EF4; C; 1EF5; # LATIN CAPITAL LETTER Y WITH DOT BELOW +1EF6; C; 1EF7; # LATIN CAPITAL LETTER Y WITH HOOK ABOVE +1EF8; C; 1EF9; # LATIN CAPITAL LETTER Y WITH TILDE +1EFA; C; 1EFB; # LATIN CAPITAL LETTER MIDDLE-WELSH LL +1EFC; C; 1EFD; # LATIN CAPITAL LETTER MIDDLE-WELSH V +1EFE; C; 1EFF; # LATIN CAPITAL LETTER Y WITH LOOP +1F08; C; 1F00; # GREEK CAPITAL LETTER ALPHA WITH PSILI +1F09; C; 1F01; # GREEK CAPITAL LETTER ALPHA WITH DASIA +1F0A; C; 1F02; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA +1F0B; C; 1F03; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA +1F0C; C; 1F04; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA +1F0D; C; 1F05; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA +1F0E; C; 1F06; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI +1F0F; C; 1F07; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI +1F18; C; 1F10; # GREEK CAPITAL LETTER EPSILON WITH PSILI +1F19; C; 1F11; # GREEK CAPITAL LETTER EPSILON WITH DASIA +1F1A; C; 1F12; # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA +1F1B; C; 1F13; # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA +1F1C; C; 1F14; # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA +1F1D; C; 1F15; # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA +1F28; C; 1F20; # GREEK CAPITAL LETTER ETA WITH PSILI +1F29; C; 1F21; # GREEK CAPITAL LETTER ETA WITH DASIA +1F2A; C; 1F22; # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA +1F2B; C; 1F23; # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA +1F2C; C; 1F24; # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA +1F2D; C; 1F25; # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA +1F2E; C; 1F26; # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI +1F2F; C; 1F27; # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI +1F38; C; 1F30; # GREEK CAPITAL LETTER IOTA WITH PSILI +1F39; C; 1F31; # GREEK CAPITAL LETTER IOTA WITH DASIA +1F3A; C; 1F32; # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA +1F3B; C; 1F33; # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA +1F3C; C; 1F34; # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA +1F3D; C; 1F35; # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA +1F3E; C; 1F36; # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI +1F3F; C; 1F37; # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI +1F48; C; 1F40; # GREEK CAPITAL LETTER OMICRON WITH PSILI +1F49; C; 1F41; # GREEK CAPITAL LETTER OMICRON WITH DASIA +1F4A; C; 1F42; # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA +1F4B; C; 1F43; # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA +1F4C; C; 1F44; # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA +1F4D; C; 1F45; # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA +1F50; F; 03C5 0313; # GREEK SMALL LETTER UPSILON WITH PSILI +1F52; F; 03C5 0313 0300; # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA +1F54; F; 03C5 0313 0301; # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA +1F56; F; 03C5 0313 0342; # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI +1F59; C; 1F51; # GREEK CAPITAL LETTER UPSILON WITH DASIA +1F5B; C; 1F53; # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA +1F5D; C; 1F55; # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA +1F5F; C; 1F57; # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI +1F68; C; 1F60; # GREEK CAPITAL LETTER OMEGA WITH PSILI +1F69; C; 1F61; # GREEK CAPITAL LETTER OMEGA WITH DASIA +1F6A; C; 1F62; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA +1F6B; C; 1F63; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA +1F6C; C; 1F64; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA +1F6D; C; 1F65; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA +1F6E; C; 1F66; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI +1F6F; C; 1F67; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI +1F80; F; 1F00 03B9; # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI +1F81; F; 1F01 03B9; # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI +1F82; F; 1F02 03B9; # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI +1F83; F; 1F03 03B9; # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI +1F84; F; 1F04 03B9; # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI +1F85; F; 1F05 03B9; # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI +1F86; F; 1F06 03B9; # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI +1F87; F; 1F07 03B9; # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI +1F88; F; 1F00 03B9; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI +1F88; S; 1F80; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI +1F89; F; 1F01 03B9; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI +1F89; S; 1F81; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI +1F8A; F; 1F02 03B9; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI +1F8A; S; 1F82; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI +1F8B; F; 1F03 03B9; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI +1F8B; S; 1F83; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI +1F8C; F; 1F04 03B9; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI +1F8C; S; 1F84; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI +1F8D; F; 1F05 03B9; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI +1F8D; S; 1F85; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI +1F8E; F; 1F06 03B9; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI +1F8E; S; 1F86; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI +1F8F; F; 1F07 03B9; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI +1F8F; S; 1F87; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI +1F90; F; 1F20 03B9; # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI +1F91; F; 1F21 03B9; # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI +1F92; F; 1F22 03B9; # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI +1F93; F; 1F23 03B9; # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI +1F94; F; 1F24 03B9; # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI +1F95; F; 1F25 03B9; # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI +1F96; F; 1F26 03B9; # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI +1F97; F; 1F27 03B9; # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI +1F98; F; 1F20 03B9; # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI +1F98; S; 1F90; # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI +1F99; F; 1F21 03B9; # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI +1F99; S; 1F91; # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI +1F9A; F; 1F22 03B9; # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI +1F9A; S; 1F92; # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI +1F9B; F; 1F23 03B9; # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI +1F9B; S; 1F93; # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI +1F9C; F; 1F24 03B9; # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI +1F9C; S; 1F94; # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI +1F9D; F; 1F25 03B9; # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI +1F9D; S; 1F95; # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI +1F9E; F; 1F26 03B9; # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI +1F9E; S; 1F96; # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI +1F9F; F; 1F27 03B9; # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI +1F9F; S; 1F97; # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI +1FA0; F; 1F60 03B9; # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI +1FA1; F; 1F61 03B9; # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI +1FA2; F; 1F62 03B9; # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI +1FA3; F; 1F63 03B9; # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI +1FA4; F; 1F64 03B9; # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI +1FA5; F; 1F65 03B9; # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI +1FA6; F; 1F66 03B9; # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI +1FA7; F; 1F67 03B9; # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI +1FA8; F; 1F60 03B9; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI +1FA8; S; 1FA0; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI +1FA9; F; 1F61 03B9; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI +1FA9; S; 1FA1; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI +1FAA; F; 1F62 03B9; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI +1FAA; S; 1FA2; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI +1FAB; F; 1F63 03B9; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI +1FAB; S; 1FA3; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI +1FAC; F; 1F64 03B9; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI +1FAC; S; 1FA4; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI +1FAD; F; 1F65 03B9; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI +1FAD; S; 1FA5; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI +1FAE; F; 1F66 03B9; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI +1FAE; S; 1FA6; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI +1FAF; F; 1F67 03B9; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI +1FAF; S; 1FA7; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI +1FB2; F; 1F70 03B9; # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI +1FB3; F; 03B1 03B9; # GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI +1FB4; F; 03AC 03B9; # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI +1FB6; F; 03B1 0342; # GREEK SMALL LETTER ALPHA WITH PERISPOMENI +1FB7; F; 03B1 0342 03B9; # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI +1FB8; C; 1FB0; # GREEK CAPITAL LETTER ALPHA WITH VRACHY +1FB9; C; 1FB1; # GREEK CAPITAL LETTER ALPHA WITH MACRON +1FBA; C; 1F70; # GREEK CAPITAL LETTER ALPHA WITH VARIA +1FBB; C; 1F71; # GREEK CAPITAL LETTER ALPHA WITH OXIA +1FBC; F; 03B1 03B9; # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI +1FBC; S; 1FB3; # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI +1FBE; C; 03B9; # GREEK PROSGEGRAMMENI +1FC2; F; 1F74 03B9; # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI +1FC3; F; 03B7 03B9; # GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI +1FC4; F; 03AE 03B9; # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI +1FC6; F; 03B7 0342; # GREEK SMALL LETTER ETA WITH PERISPOMENI +1FC7; F; 03B7 0342 03B9; # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI +1FC8; C; 1F72; # GREEK CAPITAL LETTER EPSILON WITH VARIA +1FC9; C; 1F73; # GREEK CAPITAL LETTER EPSILON WITH OXIA +1FCA; C; 1F74; # GREEK CAPITAL LETTER ETA WITH VARIA +1FCB; C; 1F75; # GREEK CAPITAL LETTER ETA WITH OXIA +1FCC; F; 03B7 03B9; # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI +1FCC; S; 1FC3; # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI +1FD2; F; 03B9 0308 0300; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA +1FD3; F; 03B9 0308 0301; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA +1FD6; F; 03B9 0342; # GREEK SMALL LETTER IOTA WITH PERISPOMENI +1FD7; F; 03B9 0308 0342; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI +1FD8; C; 1FD0; # GREEK CAPITAL LETTER IOTA WITH VRACHY +1FD9; C; 1FD1; # GREEK CAPITAL LETTER IOTA WITH MACRON +1FDA; C; 1F76; # GREEK CAPITAL LETTER IOTA WITH VARIA +1FDB; C; 1F77; # GREEK CAPITAL LETTER IOTA WITH OXIA +1FE2; F; 03C5 0308 0300; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA +1FE3; F; 03C5 0308 0301; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA +1FE4; F; 03C1 0313; # GREEK SMALL LETTER RHO WITH PSILI +1FE6; F; 03C5 0342; # GREEK SMALL LETTER UPSILON WITH PERISPOMENI +1FE7; F; 03C5 0308 0342; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI +1FE8; C; 1FE0; # GREEK CAPITAL LETTER UPSILON WITH VRACHY +1FE9; C; 1FE1; # GREEK CAPITAL LETTER UPSILON WITH MACRON +1FEA; C; 1F7A; # GREEK CAPITAL LETTER UPSILON WITH VARIA +1FEB; C; 1F7B; # GREEK CAPITAL LETTER UPSILON WITH OXIA +1FEC; C; 1FE5; # GREEK CAPITAL LETTER RHO WITH DASIA +1FF2; F; 1F7C 03B9; # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI +1FF3; F; 03C9 03B9; # GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI +1FF4; F; 03CE 03B9; # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI +1FF6; F; 03C9 0342; # GREEK SMALL LETTER OMEGA WITH PERISPOMENI +1FF7; F; 03C9 0342 03B9; # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI +1FF8; C; 1F78; # GREEK CAPITAL LETTER OMICRON WITH VARIA +1FF9; C; 1F79; # GREEK CAPITAL LETTER OMICRON WITH OXIA +1FFA; C; 1F7C; # GREEK CAPITAL LETTER OMEGA WITH VARIA +1FFB; C; 1F7D; # GREEK CAPITAL LETTER OMEGA WITH OXIA +1FFC; F; 03C9 03B9; # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI +1FFC; S; 1FF3; # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI +2126; C; 03C9; # OHM SIGN +212A; C; 006B; # KELVIN SIGN +212B; C; 00E5; # ANGSTROM SIGN +2132; C; 214E; # TURNED CAPITAL F +2160; C; 2170; # ROMAN NUMERAL ONE +2161; C; 2171; # ROMAN NUMERAL TWO +2162; C; 2172; # ROMAN NUMERAL THREE +2163; C; 2173; # ROMAN NUMERAL FOUR +2164; C; 2174; # ROMAN NUMERAL FIVE +2165; C; 2175; # ROMAN NUMERAL SIX +2166; C; 2176; # ROMAN NUMERAL SEVEN +2167; C; 2177; # ROMAN NUMERAL EIGHT +2168; C; 2178; # ROMAN NUMERAL NINE +2169; C; 2179; # ROMAN NUMERAL TEN +216A; C; 217A; # ROMAN NUMERAL ELEVEN +216B; C; 217B; # ROMAN NUMERAL TWELVE +216C; C; 217C; # ROMAN NUMERAL FIFTY +216D; C; 217D; # ROMAN NUMERAL ONE HUNDRED +216E; C; 217E; # ROMAN NUMERAL FIVE HUNDRED +216F; C; 217F; # ROMAN NUMERAL ONE THOUSAND +2183; C; 2184; # ROMAN NUMERAL REVERSED ONE HUNDRED +24B6; C; 24D0; # CIRCLED LATIN CAPITAL LETTER A +24B7; C; 24D1; # CIRCLED LATIN CAPITAL LETTER B +24B8; C; 24D2; # CIRCLED LATIN CAPITAL LETTER C +24B9; C; 24D3; # CIRCLED LATIN CAPITAL LETTER D +24BA; C; 24D4; # CIRCLED LATIN CAPITAL LETTER E +24BB; C; 24D5; # CIRCLED LATIN CAPITAL LETTER F +24BC; C; 24D6; # CIRCLED LATIN CAPITAL LETTER G +24BD; C; 24D7; # CIRCLED LATIN CAPITAL LETTER H +24BE; C; 24D8; # CIRCLED LATIN CAPITAL LETTER I +24BF; C; 24D9; # CIRCLED LATIN CAPITAL LETTER J +24C0; C; 24DA; # CIRCLED LATIN CAPITAL LETTER K +24C1; C; 24DB; # CIRCLED LATIN CAPITAL LETTER L +24C2; C; 24DC; # CIRCLED LATIN CAPITAL LETTER M +24C3; C; 24DD; # CIRCLED LATIN CAPITAL LETTER N +24C4; C; 24DE; # CIRCLED LATIN CAPITAL LETTER O +24C5; C; 24DF; # CIRCLED LATIN CAPITAL LETTER P +24C6; C; 24E0; # CIRCLED LATIN CAPITAL LETTER Q +24C7; C; 24E1; # CIRCLED LATIN CAPITAL LETTER R +24C8; C; 24E2; # CIRCLED LATIN CAPITAL LETTER S +24C9; C; 24E3; # CIRCLED LATIN CAPITAL LETTER T +24CA; C; 24E4; # CIRCLED LATIN CAPITAL LETTER U +24CB; C; 24E5; # CIRCLED LATIN CAPITAL LETTER V +24CC; C; 24E6; # CIRCLED LATIN CAPITAL LETTER W +24CD; C; 24E7; # CIRCLED LATIN CAPITAL LETTER X +24CE; C; 24E8; # CIRCLED LATIN CAPITAL LETTER Y +24CF; C; 24E9; # CIRCLED LATIN CAPITAL LETTER Z +2C00; C; 2C30; # GLAGOLITIC CAPITAL LETTER AZU +2C01; C; 2C31; # GLAGOLITIC CAPITAL LETTER BUKY +2C02; C; 2C32; # GLAGOLITIC CAPITAL LETTER VEDE +2C03; C; 2C33; # GLAGOLITIC CAPITAL LETTER GLAGOLI +2C04; C; 2C34; # GLAGOLITIC CAPITAL LETTER DOBRO +2C05; C; 2C35; # GLAGOLITIC CAPITAL LETTER YESTU +2C06; C; 2C36; # GLAGOLITIC CAPITAL LETTER ZHIVETE +2C07; C; 2C37; # GLAGOLITIC CAPITAL LETTER DZELO +2C08; C; 2C38; # GLAGOLITIC CAPITAL LETTER ZEMLJA +2C09; C; 2C39; # GLAGOLITIC CAPITAL LETTER IZHE +2C0A; C; 2C3A; # GLAGOLITIC CAPITAL LETTER INITIAL IZHE +2C0B; C; 2C3B; # GLAGOLITIC CAPITAL LETTER I +2C0C; C; 2C3C; # GLAGOLITIC CAPITAL LETTER DJERVI +2C0D; C; 2C3D; # GLAGOLITIC CAPITAL LETTER KAKO +2C0E; C; 2C3E; # GLAGOLITIC CAPITAL LETTER LJUDIJE +2C0F; C; 2C3F; # GLAGOLITIC CAPITAL LETTER MYSLITE +2C10; C; 2C40; # GLAGOLITIC CAPITAL LETTER NASHI +2C11; C; 2C41; # GLAGOLITIC CAPITAL LETTER ONU +2C12; C; 2C42; # GLAGOLITIC CAPITAL LETTER POKOJI +2C13; C; 2C43; # GLAGOLITIC CAPITAL LETTER RITSI +2C14; C; 2C44; # GLAGOLITIC CAPITAL LETTER SLOVO +2C15; C; 2C45; # GLAGOLITIC CAPITAL LETTER TVRIDO +2C16; C; 2C46; # GLAGOLITIC CAPITAL LETTER UKU +2C17; C; 2C47; # GLAGOLITIC CAPITAL LETTER FRITU +2C18; C; 2C48; # GLAGOLITIC CAPITAL LETTER HERU +2C19; C; 2C49; # GLAGOLITIC CAPITAL LETTER OTU +2C1A; C; 2C4A; # GLAGOLITIC CAPITAL LETTER PE +2C1B; C; 2C4B; # GLAGOLITIC CAPITAL LETTER SHTA +2C1C; C; 2C4C; # GLAGOLITIC CAPITAL LETTER TSI +2C1D; C; 2C4D; # GLAGOLITIC CAPITAL LETTER CHRIVI +2C1E; C; 2C4E; # GLAGOLITIC CAPITAL LETTER SHA +2C1F; C; 2C4F; # GLAGOLITIC CAPITAL LETTER YERU +2C20; C; 2C50; # GLAGOLITIC CAPITAL LETTER YERI +2C21; C; 2C51; # GLAGOLITIC CAPITAL LETTER YATI +2C22; C; 2C52; # GLAGOLITIC CAPITAL LETTER SPIDERY HA +2C23; C; 2C53; # GLAGOLITIC CAPITAL LETTER YU +2C24; C; 2C54; # GLAGOLITIC CAPITAL LETTER SMALL YUS +2C25; C; 2C55; # GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL +2C26; C; 2C56; # GLAGOLITIC CAPITAL LETTER YO +2C27; C; 2C57; # GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS +2C28; C; 2C58; # GLAGOLITIC CAPITAL LETTER BIG YUS +2C29; C; 2C59; # GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS +2C2A; C; 2C5A; # GLAGOLITIC CAPITAL LETTER FITA +2C2B; C; 2C5B; # GLAGOLITIC CAPITAL LETTER IZHITSA +2C2C; C; 2C5C; # GLAGOLITIC CAPITAL LETTER SHTAPIC +2C2D; C; 2C5D; # GLAGOLITIC CAPITAL LETTER TROKUTASTI A +2C2E; C; 2C5E; # GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE +2C2F; C; 2C5F; # GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI +2C60; C; 2C61; # LATIN CAPITAL LETTER L WITH DOUBLE BAR +2C62; C; 026B; # LATIN CAPITAL LETTER L WITH MIDDLE TILDE +2C63; C; 1D7D; # LATIN CAPITAL LETTER P WITH STROKE +2C64; C; 027D; # LATIN CAPITAL LETTER R WITH TAIL +2C67; C; 2C68; # LATIN CAPITAL LETTER H WITH DESCENDER +2C69; C; 2C6A; # LATIN CAPITAL LETTER K WITH DESCENDER +2C6B; C; 2C6C; # LATIN CAPITAL LETTER Z WITH DESCENDER +2C6D; C; 0251; # LATIN CAPITAL LETTER ALPHA +2C6E; C; 0271; # LATIN CAPITAL LETTER M WITH HOOK +2C6F; C; 0250; # LATIN CAPITAL LETTER TURNED A +2C70; C; 0252; # LATIN CAPITAL LETTER TURNED ALPHA +2C72; C; 2C73; # LATIN CAPITAL LETTER W WITH HOOK +2C75; C; 2C76; # LATIN CAPITAL LETTER HALF H +2C7E; C; 023F; # LATIN CAPITAL LETTER S WITH SWASH TAIL +2C7F; C; 0240; # LATIN CAPITAL LETTER Z WITH SWASH TAIL +2C80; C; 2C81; # COPTIC CAPITAL LETTER ALFA +2C82; C; 2C83; # COPTIC CAPITAL LETTER VIDA +2C84; C; 2C85; # COPTIC CAPITAL LETTER GAMMA +2C86; C; 2C87; # COPTIC CAPITAL LETTER DALDA +2C88; C; 2C89; # COPTIC CAPITAL LETTER EIE +2C8A; C; 2C8B; # COPTIC CAPITAL LETTER SOU +2C8C; C; 2C8D; # COPTIC CAPITAL LETTER ZATA +2C8E; C; 2C8F; # COPTIC CAPITAL LETTER HATE +2C90; C; 2C91; # COPTIC CAPITAL LETTER THETHE +2C92; C; 2C93; # COPTIC CAPITAL LETTER IAUDA +2C94; C; 2C95; # COPTIC CAPITAL LETTER KAPA +2C96; C; 2C97; # COPTIC CAPITAL LETTER LAULA +2C98; C; 2C99; # COPTIC CAPITAL LETTER MI +2C9A; C; 2C9B; # COPTIC CAPITAL LETTER NI +2C9C; C; 2C9D; # COPTIC CAPITAL LETTER KSI +2C9E; C; 2C9F; # COPTIC CAPITAL LETTER O +2CA0; C; 2CA1; # COPTIC CAPITAL LETTER PI +2CA2; C; 2CA3; # COPTIC CAPITAL LETTER RO +2CA4; C; 2CA5; # COPTIC CAPITAL LETTER SIMA +2CA6; C; 2CA7; # COPTIC CAPITAL LETTER TAU +2CA8; C; 2CA9; # COPTIC CAPITAL LETTER UA +2CAA; C; 2CAB; # COPTIC CAPITAL LETTER FI +2CAC; C; 2CAD; # COPTIC CAPITAL LETTER KHI +2CAE; C; 2CAF; # COPTIC CAPITAL LETTER PSI +2CB0; C; 2CB1; # COPTIC CAPITAL LETTER OOU +2CB2; C; 2CB3; # COPTIC CAPITAL LETTER DIALECT-P ALEF +2CB4; C; 2CB5; # COPTIC CAPITAL LETTER OLD COPTIC AIN +2CB6; C; 2CB7; # COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE +2CB8; C; 2CB9; # COPTIC CAPITAL LETTER DIALECT-P KAPA +2CBA; C; 2CBB; # COPTIC CAPITAL LETTER DIALECT-P NI +2CBC; C; 2CBD; # COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI +2CBE; C; 2CBF; # COPTIC CAPITAL LETTER OLD COPTIC OOU +2CC0; C; 2CC1; # COPTIC CAPITAL LETTER SAMPI +2CC2; C; 2CC3; # COPTIC CAPITAL LETTER CROSSED SHEI +2CC4; C; 2CC5; # COPTIC CAPITAL LETTER OLD COPTIC SHEI +2CC6; C; 2CC7; # COPTIC CAPITAL LETTER OLD COPTIC ESH +2CC8; C; 2CC9; # COPTIC CAPITAL LETTER AKHMIMIC KHEI +2CCA; C; 2CCB; # COPTIC CAPITAL LETTER DIALECT-P HORI +2CCC; C; 2CCD; # COPTIC CAPITAL LETTER OLD COPTIC HORI +2CCE; C; 2CCF; # COPTIC CAPITAL LETTER OLD COPTIC HA +2CD0; C; 2CD1; # COPTIC CAPITAL LETTER L-SHAPED HA +2CD2; C; 2CD3; # COPTIC CAPITAL LETTER OLD COPTIC HEI +2CD4; C; 2CD5; # COPTIC CAPITAL LETTER OLD COPTIC HAT +2CD6; C; 2CD7; # COPTIC CAPITAL LETTER OLD COPTIC GANGIA +2CD8; C; 2CD9; # COPTIC CAPITAL LETTER OLD COPTIC DJA +2CDA; C; 2CDB; # COPTIC CAPITAL LETTER OLD COPTIC SHIMA +2CDC; C; 2CDD; # COPTIC CAPITAL LETTER OLD NUBIAN SHIMA +2CDE; C; 2CDF; # COPTIC CAPITAL LETTER OLD NUBIAN NGI +2CE0; C; 2CE1; # COPTIC CAPITAL LETTER OLD NUBIAN NYI +2CE2; C; 2CE3; # COPTIC CAPITAL LETTER OLD NUBIAN WAU +2CEB; C; 2CEC; # COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI +2CED; C; 2CEE; # COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA +2CF2; C; 2CF3; # COPTIC CAPITAL LETTER BOHAIRIC KHEI +A640; C; A641; # CYRILLIC CAPITAL LETTER ZEMLYA +A642; C; A643; # CYRILLIC CAPITAL LETTER DZELO +A644; C; A645; # CYRILLIC CAPITAL LETTER REVERSED DZE +A646; C; A647; # CYRILLIC CAPITAL LETTER IOTA +A648; C; A649; # CYRILLIC CAPITAL LETTER DJERV +A64A; C; A64B; # CYRILLIC CAPITAL LETTER MONOGRAPH UK +A64C; C; A64D; # CYRILLIC CAPITAL LETTER BROAD OMEGA +A64E; C; A64F; # CYRILLIC CAPITAL LETTER NEUTRAL YER +A650; C; A651; # CYRILLIC CAPITAL LETTER YERU WITH BACK YER +A652; C; A653; # CYRILLIC CAPITAL LETTER IOTIFIED YAT +A654; C; A655; # CYRILLIC CAPITAL LETTER REVERSED YU +A656; C; A657; # CYRILLIC CAPITAL LETTER IOTIFIED A +A658; C; A659; # CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS +A65A; C; A65B; # CYRILLIC CAPITAL LETTER BLENDED YUS +A65C; C; A65D; # CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS +A65E; C; A65F; # CYRILLIC CAPITAL LETTER YN +A660; C; A661; # CYRILLIC CAPITAL LETTER REVERSED TSE +A662; C; A663; # CYRILLIC CAPITAL LETTER SOFT DE +A664; C; A665; # CYRILLIC CAPITAL LETTER SOFT EL +A666; C; A667; # CYRILLIC CAPITAL LETTER SOFT EM +A668; C; A669; # CYRILLIC CAPITAL LETTER MONOCULAR O +A66A; C; A66B; # CYRILLIC CAPITAL LETTER BINOCULAR O +A66C; C; A66D; # CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O +A680; C; A681; # CYRILLIC CAPITAL LETTER DWE +A682; C; A683; # CYRILLIC CAPITAL LETTER DZWE +A684; C; A685; # CYRILLIC CAPITAL LETTER ZHWE +A686; C; A687; # CYRILLIC CAPITAL LETTER CCHE +A688; C; A689; # CYRILLIC CAPITAL LETTER DZZE +A68A; C; A68B; # CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK +A68C; C; A68D; # CYRILLIC CAPITAL LETTER TWE +A68E; C; A68F; # CYRILLIC CAPITAL LETTER TSWE +A690; C; A691; # CYRILLIC CAPITAL LETTER TSSE +A692; C; A693; # CYRILLIC CAPITAL LETTER TCHE +A694; C; A695; # CYRILLIC CAPITAL LETTER HWE +A696; C; A697; # CYRILLIC CAPITAL LETTER SHWE +A698; C; A699; # CYRILLIC CAPITAL LETTER DOUBLE O +A69A; C; A69B; # CYRILLIC CAPITAL LETTER CROSSED O +A722; C; A723; # LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF +A724; C; A725; # LATIN CAPITAL LETTER EGYPTOLOGICAL AIN +A726; C; A727; # LATIN CAPITAL LETTER HENG +A728; C; A729; # LATIN CAPITAL LETTER TZ +A72A; C; A72B; # LATIN CAPITAL LETTER TRESILLO +A72C; C; A72D; # LATIN CAPITAL LETTER CUATRILLO +A72E; C; A72F; # LATIN CAPITAL LETTER CUATRILLO WITH COMMA +A732; C; A733; # LATIN CAPITAL LETTER AA +A734; C; A735; # LATIN CAPITAL LETTER AO +A736; C; A737; # LATIN CAPITAL LETTER AU +A738; C; A739; # LATIN CAPITAL LETTER AV +A73A; C; A73B; # LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR +A73C; C; A73D; # LATIN CAPITAL LETTER AY +A73E; C; A73F; # LATIN CAPITAL LETTER REVERSED C WITH DOT +A740; C; A741; # LATIN CAPITAL LETTER K WITH STROKE +A742; C; A743; # LATIN CAPITAL LETTER K WITH DIAGONAL STROKE +A744; C; A745; # LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE +A746; C; A747; # LATIN CAPITAL LETTER BROKEN L +A748; C; A749; # LATIN CAPITAL LETTER L WITH HIGH STROKE +A74A; C; A74B; # LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY +A74C; C; A74D; # LATIN CAPITAL LETTER O WITH LOOP +A74E; C; A74F; # LATIN CAPITAL LETTER OO +A750; C; A751; # LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER +A752; C; A753; # LATIN CAPITAL LETTER P WITH FLOURISH +A754; C; A755; # LATIN CAPITAL LETTER P WITH SQUIRREL TAIL +A756; C; A757; # LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER +A758; C; A759; # LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE +A75A; C; A75B; # LATIN CAPITAL LETTER R ROTUNDA +A75C; C; A75D; # LATIN CAPITAL LETTER RUM ROTUNDA +A75E; C; A75F; # LATIN CAPITAL LETTER V WITH DIAGONAL STROKE +A760; C; A761; # LATIN CAPITAL LETTER VY +A762; C; A763; # LATIN CAPITAL LETTER VISIGOTHIC Z +A764; C; A765; # LATIN CAPITAL LETTER THORN WITH STROKE +A766; C; A767; # LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER +A768; C; A769; # LATIN CAPITAL LETTER VEND +A76A; C; A76B; # LATIN CAPITAL LETTER ET +A76C; C; A76D; # LATIN CAPITAL LETTER IS +A76E; C; A76F; # LATIN CAPITAL LETTER CON +A779; C; A77A; # LATIN CAPITAL LETTER INSULAR D +A77B; C; A77C; # LATIN CAPITAL LETTER INSULAR F +A77D; C; 1D79; # LATIN CAPITAL LETTER INSULAR G +A77E; C; A77F; # LATIN CAPITAL LETTER TURNED INSULAR G +A780; C; A781; # LATIN CAPITAL LETTER TURNED L +A782; C; A783; # LATIN CAPITAL LETTER INSULAR R +A784; C; A785; # LATIN CAPITAL LETTER INSULAR S +A786; C; A787; # LATIN CAPITAL LETTER INSULAR T +A78B; C; A78C; # LATIN CAPITAL LETTER SALTILLO +A78D; C; 0265; # LATIN CAPITAL LETTER TURNED H +A790; C; A791; # LATIN CAPITAL LETTER N WITH DESCENDER +A792; C; A793; # LATIN CAPITAL LETTER C WITH BAR +A796; C; A797; # LATIN CAPITAL LETTER B WITH FLOURISH +A798; C; A799; # LATIN CAPITAL LETTER F WITH STROKE +A79A; C; A79B; # LATIN CAPITAL LETTER VOLAPUK AE +A79C; C; A79D; # LATIN CAPITAL LETTER VOLAPUK OE +A79E; C; A79F; # LATIN CAPITAL LETTER VOLAPUK UE +A7A0; C; A7A1; # LATIN CAPITAL LETTER G WITH OBLIQUE STROKE +A7A2; C; A7A3; # LATIN CAPITAL LETTER K WITH OBLIQUE STROKE +A7A4; C; A7A5; # LATIN CAPITAL LETTER N WITH OBLIQUE STROKE +A7A6; C; A7A7; # LATIN CAPITAL LETTER R WITH OBLIQUE STROKE +A7A8; C; A7A9; # LATIN CAPITAL LETTER S WITH OBLIQUE STROKE +A7AA; C; 0266; # LATIN CAPITAL LETTER H WITH HOOK +A7AB; C; 025C; # LATIN CAPITAL LETTER REVERSED OPEN E +A7AC; C; 0261; # LATIN CAPITAL LETTER SCRIPT G +A7AD; C; 026C; # LATIN CAPITAL LETTER L WITH BELT +A7AE; C; 026A; # LATIN CAPITAL LETTER SMALL CAPITAL I +A7B0; C; 029E; # LATIN CAPITAL LETTER TURNED K +A7B1; C; 0287; # LATIN CAPITAL LETTER TURNED T +A7B2; C; 029D; # LATIN CAPITAL LETTER J WITH CROSSED-TAIL +A7B3; C; AB53; # LATIN CAPITAL LETTER CHI +A7B4; C; A7B5; # LATIN CAPITAL LETTER BETA +A7B6; C; A7B7; # LATIN CAPITAL LETTER OMEGA +A7B8; C; A7B9; # LATIN CAPITAL LETTER U WITH STROKE +A7BA; C; A7BB; # LATIN CAPITAL LETTER GLOTTAL A +A7BC; C; A7BD; # LATIN CAPITAL LETTER GLOTTAL I +A7BE; C; A7BF; # LATIN CAPITAL LETTER GLOTTAL U +A7C0; C; A7C1; # LATIN CAPITAL LETTER OLD POLISH O +A7C2; C; A7C3; # LATIN CAPITAL LETTER ANGLICANA W +A7C4; C; A794; # LATIN CAPITAL LETTER C WITH PALATAL HOOK +A7C5; C; 0282; # LATIN CAPITAL LETTER S WITH HOOK +A7C6; C; 1D8E; # LATIN CAPITAL LETTER Z WITH PALATAL HOOK +A7C7; C; A7C8; # LATIN CAPITAL LETTER D WITH SHORT STROKE OVERLAY +A7C9; C; A7CA; # LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY +A7D0; C; A7D1; # LATIN CAPITAL LETTER CLOSED INSULAR G +A7D6; C; A7D7; # LATIN CAPITAL LETTER MIDDLE SCOTS S +A7D8; C; A7D9; # LATIN CAPITAL LETTER SIGMOID S +A7F5; C; A7F6; # LATIN CAPITAL LETTER REVERSED HALF H +AB70; C; 13A0; # CHEROKEE SMALL LETTER A +AB71; C; 13A1; # CHEROKEE SMALL LETTER E +AB72; C; 13A2; # CHEROKEE SMALL LETTER I +AB73; C; 13A3; # CHEROKEE SMALL LETTER O +AB74; C; 13A4; # CHEROKEE SMALL LETTER U +AB75; C; 13A5; # CHEROKEE SMALL LETTER V +AB76; C; 13A6; # CHEROKEE SMALL LETTER GA +AB77; C; 13A7; # CHEROKEE SMALL LETTER KA +AB78; C; 13A8; # CHEROKEE SMALL LETTER GE +AB79; C; 13A9; # CHEROKEE SMALL LETTER GI +AB7A; C; 13AA; # CHEROKEE SMALL LETTER GO +AB7B; C; 13AB; # CHEROKEE SMALL LETTER GU +AB7C; C; 13AC; # CHEROKEE SMALL LETTER GV +AB7D; C; 13AD; # CHEROKEE SMALL LETTER HA +AB7E; C; 13AE; # CHEROKEE SMALL LETTER HE +AB7F; C; 13AF; # CHEROKEE SMALL LETTER HI +AB80; C; 13B0; # CHEROKEE SMALL LETTER HO +AB81; C; 13B1; # CHEROKEE SMALL LETTER HU +AB82; C; 13B2; # CHEROKEE SMALL LETTER HV +AB83; C; 13B3; # CHEROKEE SMALL LETTER LA +AB84; C; 13B4; # CHEROKEE SMALL LETTER LE +AB85; C; 13B5; # CHEROKEE SMALL LETTER LI +AB86; C; 13B6; # CHEROKEE SMALL LETTER LO +AB87; C; 13B7; # CHEROKEE SMALL LETTER LU +AB88; C; 13B8; # CHEROKEE SMALL LETTER LV +AB89; C; 13B9; # CHEROKEE SMALL LETTER MA +AB8A; C; 13BA; # CHEROKEE SMALL LETTER ME +AB8B; C; 13BB; # CHEROKEE SMALL LETTER MI +AB8C; C; 13BC; # CHEROKEE SMALL LETTER MO +AB8D; C; 13BD; # CHEROKEE SMALL LETTER MU +AB8E; C; 13BE; # CHEROKEE SMALL LETTER NA +AB8F; C; 13BF; # CHEROKEE SMALL LETTER HNA +AB90; C; 13C0; # CHEROKEE SMALL LETTER NAH +AB91; C; 13C1; # CHEROKEE SMALL LETTER NE +AB92; C; 13C2; # CHEROKEE SMALL LETTER NI +AB93; C; 13C3; # CHEROKEE SMALL LETTER NO +AB94; C; 13C4; # CHEROKEE SMALL LETTER NU +AB95; C; 13C5; # CHEROKEE SMALL LETTER NV +AB96; C; 13C6; # CHEROKEE SMALL LETTER QUA +AB97; C; 13C7; # CHEROKEE SMALL LETTER QUE +AB98; C; 13C8; # CHEROKEE SMALL LETTER QUI +AB99; C; 13C9; # CHEROKEE SMALL LETTER QUO +AB9A; C; 13CA; # CHEROKEE SMALL LETTER QUU +AB9B; C; 13CB; # CHEROKEE SMALL LETTER QUV +AB9C; C; 13CC; # CHEROKEE SMALL LETTER SA +AB9D; C; 13CD; # CHEROKEE SMALL LETTER S +AB9E; C; 13CE; # CHEROKEE SMALL LETTER SE +AB9F; C; 13CF; # CHEROKEE SMALL LETTER SI +ABA0; C; 13D0; # CHEROKEE SMALL LETTER SO +ABA1; C; 13D1; # CHEROKEE SMALL LETTER SU +ABA2; C; 13D2; # CHEROKEE SMALL LETTER SV +ABA3; C; 13D3; # CHEROKEE SMALL LETTER DA +ABA4; C; 13D4; # CHEROKEE SMALL LETTER TA +ABA5; C; 13D5; # CHEROKEE SMALL LETTER DE +ABA6; C; 13D6; # CHEROKEE SMALL LETTER TE +ABA7; C; 13D7; # CHEROKEE SMALL LETTER DI +ABA8; C; 13D8; # CHEROKEE SMALL LETTER TI +ABA9; C; 13D9; # CHEROKEE SMALL LETTER DO +ABAA; C; 13DA; # CHEROKEE SMALL LETTER DU +ABAB; C; 13DB; # CHEROKEE SMALL LETTER DV +ABAC; C; 13DC; # CHEROKEE SMALL LETTER DLA +ABAD; C; 13DD; # CHEROKEE SMALL LETTER TLA +ABAE; C; 13DE; # CHEROKEE SMALL LETTER TLE +ABAF; C; 13DF; # CHEROKEE SMALL LETTER TLI +ABB0; C; 13E0; # CHEROKEE SMALL LETTER TLO +ABB1; C; 13E1; # CHEROKEE SMALL LETTER TLU +ABB2; C; 13E2; # CHEROKEE SMALL LETTER TLV +ABB3; C; 13E3; # CHEROKEE SMALL LETTER TSA +ABB4; C; 13E4; # CHEROKEE SMALL LETTER TSE +ABB5; C; 13E5; # CHEROKEE SMALL LETTER TSI +ABB6; C; 13E6; # CHEROKEE SMALL LETTER TSO +ABB7; C; 13E7; # CHEROKEE SMALL LETTER TSU +ABB8; C; 13E8; # CHEROKEE SMALL LETTER TSV +ABB9; C; 13E9; # CHEROKEE SMALL LETTER WA +ABBA; C; 13EA; # CHEROKEE SMALL LETTER WE +ABBB; C; 13EB; # CHEROKEE SMALL LETTER WI +ABBC; C; 13EC; # CHEROKEE SMALL LETTER WO +ABBD; C; 13ED; # CHEROKEE SMALL LETTER WU +ABBE; C; 13EE; # CHEROKEE SMALL LETTER WV +ABBF; C; 13EF; # CHEROKEE SMALL LETTER YA +FB00; F; 0066 0066; # LATIN SMALL LIGATURE FF +FB01; F; 0066 0069; # LATIN SMALL LIGATURE FI +FB02; F; 0066 006C; # LATIN SMALL LIGATURE FL +FB03; F; 0066 0066 0069; # LATIN SMALL LIGATURE FFI +FB04; F; 0066 0066 006C; # LATIN SMALL LIGATURE FFL +FB05; F; 0073 0074; # LATIN SMALL LIGATURE LONG S T +FB06; F; 0073 0074; # LATIN SMALL LIGATURE ST +FB13; F; 0574 0576; # ARMENIAN SMALL LIGATURE MEN NOW +FB14; F; 0574 0565; # ARMENIAN SMALL LIGATURE MEN ECH +FB15; F; 0574 056B; # ARMENIAN SMALL LIGATURE MEN INI +FB16; F; 057E 0576; # ARMENIAN SMALL LIGATURE VEW NOW +FB17; F; 0574 056D; # ARMENIAN SMALL LIGATURE MEN XEH +FF21; C; FF41; # FULLWIDTH LATIN CAPITAL LETTER A +FF22; C; FF42; # FULLWIDTH LATIN CAPITAL LETTER B +FF23; C; FF43; # FULLWIDTH LATIN CAPITAL LETTER C +FF24; C; FF44; # FULLWIDTH LATIN CAPITAL LETTER D +FF25; C; FF45; # FULLWIDTH LATIN CAPITAL LETTER E +FF26; C; FF46; # FULLWIDTH LATIN CAPITAL LETTER F +FF27; C; FF47; # FULLWIDTH LATIN CAPITAL LETTER G +FF28; C; FF48; # FULLWIDTH LATIN CAPITAL LETTER H +FF29; C; FF49; # FULLWIDTH LATIN CAPITAL LETTER I +FF2A; C; FF4A; # FULLWIDTH LATIN CAPITAL LETTER J +FF2B; C; FF4B; # FULLWIDTH LATIN CAPITAL LETTER K +FF2C; C; FF4C; # FULLWIDTH LATIN CAPITAL LETTER L +FF2D; C; FF4D; # FULLWIDTH LATIN CAPITAL LETTER M +FF2E; C; FF4E; # FULLWIDTH LATIN CAPITAL LETTER N +FF2F; C; FF4F; # FULLWIDTH LATIN CAPITAL LETTER O +FF30; C; FF50; # FULLWIDTH LATIN CAPITAL LETTER P +FF31; C; FF51; # FULLWIDTH LATIN CAPITAL LETTER Q +FF32; C; FF52; # FULLWIDTH LATIN CAPITAL LETTER R +FF33; C; FF53; # FULLWIDTH LATIN CAPITAL LETTER S +FF34; C; FF54; # FULLWIDTH LATIN CAPITAL LETTER T +FF35; C; FF55; # FULLWIDTH LATIN CAPITAL LETTER U +FF36; C; FF56; # FULLWIDTH LATIN CAPITAL LETTER V +FF37; C; FF57; # FULLWIDTH LATIN CAPITAL LETTER W +FF38; C; FF58; # FULLWIDTH LATIN CAPITAL LETTER X +FF39; C; FF59; # FULLWIDTH LATIN CAPITAL LETTER Y +FF3A; C; FF5A; # FULLWIDTH LATIN CAPITAL LETTER Z +10400; C; 10428; # DESERET CAPITAL LETTER LONG I +10401; C; 10429; # DESERET CAPITAL LETTER LONG E +10402; C; 1042A; # DESERET CAPITAL LETTER LONG A +10403; C; 1042B; # DESERET CAPITAL LETTER LONG AH +10404; C; 1042C; # DESERET CAPITAL LETTER LONG O +10405; C; 1042D; # DESERET CAPITAL LETTER LONG OO +10406; C; 1042E; # DESERET CAPITAL LETTER SHORT I +10407; C; 1042F; # DESERET CAPITAL LETTER SHORT E +10408; C; 10430; # DESERET CAPITAL LETTER SHORT A +10409; C; 10431; # DESERET CAPITAL LETTER SHORT AH +1040A; C; 10432; # DESERET CAPITAL LETTER SHORT O +1040B; C; 10433; # DESERET CAPITAL LETTER SHORT OO +1040C; C; 10434; # DESERET CAPITAL LETTER AY +1040D; C; 10435; # DESERET CAPITAL LETTER OW +1040E; C; 10436; # DESERET CAPITAL LETTER WU +1040F; C; 10437; # DESERET CAPITAL LETTER YEE +10410; C; 10438; # DESERET CAPITAL LETTER H +10411; C; 10439; # DESERET CAPITAL LETTER PEE +10412; C; 1043A; # DESERET CAPITAL LETTER BEE +10413; C; 1043B; # DESERET CAPITAL LETTER TEE +10414; C; 1043C; # DESERET CAPITAL LETTER DEE +10415; C; 1043D; # DESERET CAPITAL LETTER CHEE +10416; C; 1043E; # DESERET CAPITAL LETTER JEE +10417; C; 1043F; # DESERET CAPITAL LETTER KAY +10418; C; 10440; # DESERET CAPITAL LETTER GAY +10419; C; 10441; # DESERET CAPITAL LETTER EF +1041A; C; 10442; # DESERET CAPITAL LETTER VEE +1041B; C; 10443; # DESERET CAPITAL LETTER ETH +1041C; C; 10444; # DESERET CAPITAL LETTER THEE +1041D; C; 10445; # DESERET CAPITAL LETTER ES +1041E; C; 10446; # DESERET CAPITAL LETTER ZEE +1041F; C; 10447; # DESERET CAPITAL LETTER ESH +10420; C; 10448; # DESERET CAPITAL LETTER ZHEE +10421; C; 10449; # DESERET CAPITAL LETTER ER +10422; C; 1044A; # DESERET CAPITAL LETTER EL +10423; C; 1044B; # DESERET CAPITAL LETTER EM +10424; C; 1044C; # DESERET CAPITAL LETTER EN +10425; C; 1044D; # DESERET CAPITAL LETTER ENG +10426; C; 1044E; # DESERET CAPITAL LETTER OI +10427; C; 1044F; # DESERET CAPITAL LETTER EW +104B0; C; 104D8; # OSAGE CAPITAL LETTER A +104B1; C; 104D9; # OSAGE CAPITAL LETTER AI +104B2; C; 104DA; # OSAGE CAPITAL LETTER AIN +104B3; C; 104DB; # OSAGE CAPITAL LETTER AH +104B4; C; 104DC; # OSAGE CAPITAL LETTER BRA +104B5; C; 104DD; # OSAGE CAPITAL LETTER CHA +104B6; C; 104DE; # OSAGE CAPITAL LETTER EHCHA +104B7; C; 104DF; # OSAGE CAPITAL LETTER E +104B8; C; 104E0; # OSAGE CAPITAL LETTER EIN +104B9; C; 104E1; # OSAGE CAPITAL LETTER HA +104BA; C; 104E2; # OSAGE CAPITAL LETTER HYA +104BB; C; 104E3; # OSAGE CAPITAL LETTER I +104BC; C; 104E4; # OSAGE CAPITAL LETTER KA +104BD; C; 104E5; # OSAGE CAPITAL LETTER EHKA +104BE; C; 104E6; # OSAGE CAPITAL LETTER KYA +104BF; C; 104E7; # OSAGE CAPITAL LETTER LA +104C0; C; 104E8; # OSAGE CAPITAL LETTER MA +104C1; C; 104E9; # OSAGE CAPITAL LETTER NA +104C2; C; 104EA; # OSAGE CAPITAL LETTER O +104C3; C; 104EB; # OSAGE CAPITAL LETTER OIN +104C4; C; 104EC; # OSAGE CAPITAL LETTER PA +104C5; C; 104ED; # OSAGE CAPITAL LETTER EHPA +104C6; C; 104EE; # OSAGE CAPITAL LETTER SA +104C7; C; 104EF; # OSAGE CAPITAL LETTER SHA +104C8; C; 104F0; # OSAGE CAPITAL LETTER TA +104C9; C; 104F1; # OSAGE CAPITAL LETTER EHTA +104CA; C; 104F2; # OSAGE CAPITAL LETTER TSA +104CB; C; 104F3; # OSAGE CAPITAL LETTER EHTSA +104CC; C; 104F4; # OSAGE CAPITAL LETTER TSHA +104CD; C; 104F5; # OSAGE CAPITAL LETTER DHA +104CE; C; 104F6; # OSAGE CAPITAL LETTER U +104CF; C; 104F7; # OSAGE CAPITAL LETTER WA +104D0; C; 104F8; # OSAGE CAPITAL LETTER KHA +104D1; C; 104F9; # OSAGE CAPITAL LETTER GHA +104D2; C; 104FA; # OSAGE CAPITAL LETTER ZA +104D3; C; 104FB; # OSAGE CAPITAL LETTER ZHA +10570; C; 10597; # VITHKUQI CAPITAL LETTER A +10571; C; 10598; # VITHKUQI CAPITAL LETTER BBE +10572; C; 10599; # VITHKUQI CAPITAL LETTER BE +10573; C; 1059A; # VITHKUQI CAPITAL LETTER CE +10574; C; 1059B; # VITHKUQI CAPITAL LETTER CHE +10575; C; 1059C; # VITHKUQI CAPITAL LETTER DE +10576; C; 1059D; # VITHKUQI CAPITAL LETTER DHE +10577; C; 1059E; # VITHKUQI CAPITAL LETTER EI +10578; C; 1059F; # VITHKUQI CAPITAL LETTER E +10579; C; 105A0; # VITHKUQI CAPITAL LETTER FE +1057A; C; 105A1; # VITHKUQI CAPITAL LETTER GA +1057C; C; 105A3; # VITHKUQI CAPITAL LETTER HA +1057D; C; 105A4; # VITHKUQI CAPITAL LETTER HHA +1057E; C; 105A5; # VITHKUQI CAPITAL LETTER I +1057F; C; 105A6; # VITHKUQI CAPITAL LETTER IJE +10580; C; 105A7; # VITHKUQI CAPITAL LETTER JE +10581; C; 105A8; # VITHKUQI CAPITAL LETTER KA +10582; C; 105A9; # VITHKUQI CAPITAL LETTER LA +10583; C; 105AA; # VITHKUQI CAPITAL LETTER LLA +10584; C; 105AB; # VITHKUQI CAPITAL LETTER ME +10585; C; 105AC; # VITHKUQI CAPITAL LETTER NE +10586; C; 105AD; # VITHKUQI CAPITAL LETTER NJE +10587; C; 105AE; # VITHKUQI CAPITAL LETTER O +10588; C; 105AF; # VITHKUQI CAPITAL LETTER PE +10589; C; 105B0; # VITHKUQI CAPITAL LETTER QA +1058A; C; 105B1; # VITHKUQI CAPITAL LETTER RE +1058C; C; 105B3; # VITHKUQI CAPITAL LETTER SE +1058D; C; 105B4; # VITHKUQI CAPITAL LETTER SHE +1058E; C; 105B5; # VITHKUQI CAPITAL LETTER TE +1058F; C; 105B6; # VITHKUQI CAPITAL LETTER THE +10590; C; 105B7; # VITHKUQI CAPITAL LETTER U +10591; C; 105B8; # VITHKUQI CAPITAL LETTER VE +10592; C; 105B9; # VITHKUQI CAPITAL LETTER XE +10594; C; 105BB; # VITHKUQI CAPITAL LETTER Y +10595; C; 105BC; # VITHKUQI CAPITAL LETTER ZE +10C80; C; 10CC0; # OLD HUNGARIAN CAPITAL LETTER A +10C81; C; 10CC1; # OLD HUNGARIAN CAPITAL LETTER AA +10C82; C; 10CC2; # OLD HUNGARIAN CAPITAL LETTER EB +10C83; C; 10CC3; # OLD HUNGARIAN CAPITAL LETTER AMB +10C84; C; 10CC4; # OLD HUNGARIAN CAPITAL LETTER EC +10C85; C; 10CC5; # OLD HUNGARIAN CAPITAL LETTER ENC +10C86; C; 10CC6; # OLD HUNGARIAN CAPITAL LETTER ECS +10C87; C; 10CC7; # OLD HUNGARIAN CAPITAL LETTER ED +10C88; C; 10CC8; # OLD HUNGARIAN CAPITAL LETTER AND +10C89; C; 10CC9; # OLD HUNGARIAN CAPITAL LETTER E +10C8A; C; 10CCA; # OLD HUNGARIAN CAPITAL LETTER CLOSE E +10C8B; C; 10CCB; # OLD HUNGARIAN CAPITAL LETTER EE +10C8C; C; 10CCC; # OLD HUNGARIAN CAPITAL LETTER EF +10C8D; C; 10CCD; # OLD HUNGARIAN CAPITAL LETTER EG +10C8E; C; 10CCE; # OLD HUNGARIAN CAPITAL LETTER EGY +10C8F; C; 10CCF; # OLD HUNGARIAN CAPITAL LETTER EH +10C90; C; 10CD0; # OLD HUNGARIAN CAPITAL LETTER I +10C91; C; 10CD1; # OLD HUNGARIAN CAPITAL LETTER II +10C92; C; 10CD2; # OLD HUNGARIAN CAPITAL LETTER EJ +10C93; C; 10CD3; # OLD HUNGARIAN CAPITAL LETTER EK +10C94; C; 10CD4; # OLD HUNGARIAN CAPITAL LETTER AK +10C95; C; 10CD5; # OLD HUNGARIAN CAPITAL LETTER UNK +10C96; C; 10CD6; # OLD HUNGARIAN CAPITAL LETTER EL +10C97; C; 10CD7; # OLD HUNGARIAN CAPITAL LETTER ELY +10C98; C; 10CD8; # OLD HUNGARIAN CAPITAL LETTER EM +10C99; C; 10CD9; # OLD HUNGARIAN CAPITAL LETTER EN +10C9A; C; 10CDA; # OLD HUNGARIAN CAPITAL LETTER ENY +10C9B; C; 10CDB; # OLD HUNGARIAN CAPITAL LETTER O +10C9C; C; 10CDC; # OLD HUNGARIAN CAPITAL LETTER OO +10C9D; C; 10CDD; # OLD HUNGARIAN CAPITAL LETTER NIKOLSBURG OE +10C9E; C; 10CDE; # OLD HUNGARIAN CAPITAL LETTER RUDIMENTA OE +10C9F; C; 10CDF; # OLD HUNGARIAN CAPITAL LETTER OEE +10CA0; C; 10CE0; # OLD HUNGARIAN CAPITAL LETTER EP +10CA1; C; 10CE1; # OLD HUNGARIAN CAPITAL LETTER EMP +10CA2; C; 10CE2; # OLD HUNGARIAN CAPITAL LETTER ER +10CA3; C; 10CE3; # OLD HUNGARIAN CAPITAL LETTER SHORT ER +10CA4; C; 10CE4; # OLD HUNGARIAN CAPITAL LETTER ES +10CA5; C; 10CE5; # OLD HUNGARIAN CAPITAL LETTER ESZ +10CA6; C; 10CE6; # OLD HUNGARIAN CAPITAL LETTER ET +10CA7; C; 10CE7; # OLD HUNGARIAN CAPITAL LETTER ENT +10CA8; C; 10CE8; # OLD HUNGARIAN CAPITAL LETTER ETY +10CA9; C; 10CE9; # OLD HUNGARIAN CAPITAL LETTER ECH +10CAA; C; 10CEA; # OLD HUNGARIAN CAPITAL LETTER U +10CAB; C; 10CEB; # OLD HUNGARIAN CAPITAL LETTER UU +10CAC; C; 10CEC; # OLD HUNGARIAN CAPITAL LETTER NIKOLSBURG UE +10CAD; C; 10CED; # OLD HUNGARIAN CAPITAL LETTER RUDIMENTA UE +10CAE; C; 10CEE; # OLD HUNGARIAN CAPITAL LETTER EV +10CAF; C; 10CEF; # OLD HUNGARIAN CAPITAL LETTER EZ +10CB0; C; 10CF0; # OLD HUNGARIAN CAPITAL LETTER EZS +10CB1; C; 10CF1; # OLD HUNGARIAN CAPITAL LETTER ENT-SHAPED SIGN +10CB2; C; 10CF2; # OLD HUNGARIAN CAPITAL LETTER US +118A0; C; 118C0; # WARANG CITI CAPITAL LETTER NGAA +118A1; C; 118C1; # WARANG CITI CAPITAL LETTER A +118A2; C; 118C2; # WARANG CITI CAPITAL LETTER WI +118A3; C; 118C3; # WARANG CITI CAPITAL LETTER YU +118A4; C; 118C4; # WARANG CITI CAPITAL LETTER YA +118A5; C; 118C5; # WARANG CITI CAPITAL LETTER YO +118A6; C; 118C6; # WARANG CITI CAPITAL LETTER II +118A7; C; 118C7; # WARANG CITI CAPITAL LETTER UU +118A8; C; 118C8; # WARANG CITI CAPITAL LETTER E +118A9; C; 118C9; # WARANG CITI CAPITAL LETTER O +118AA; C; 118CA; # WARANG CITI CAPITAL LETTER ANG +118AB; C; 118CB; # WARANG CITI CAPITAL LETTER GA +118AC; C; 118CC; # WARANG CITI CAPITAL LETTER KO +118AD; C; 118CD; # WARANG CITI CAPITAL LETTER ENY +118AE; C; 118CE; # WARANG CITI CAPITAL LETTER YUJ +118AF; C; 118CF; # WARANG CITI CAPITAL LETTER UC +118B0; C; 118D0; # WARANG CITI CAPITAL LETTER ENN +118B1; C; 118D1; # WARANG CITI CAPITAL LETTER ODD +118B2; C; 118D2; # WARANG CITI CAPITAL LETTER TTE +118B3; C; 118D3; # WARANG CITI CAPITAL LETTER NUNG +118B4; C; 118D4; # WARANG CITI CAPITAL LETTER DA +118B5; C; 118D5; # WARANG CITI CAPITAL LETTER AT +118B6; C; 118D6; # WARANG CITI CAPITAL LETTER AM +118B7; C; 118D7; # WARANG CITI CAPITAL LETTER BU +118B8; C; 118D8; # WARANG CITI CAPITAL LETTER PU +118B9; C; 118D9; # WARANG CITI CAPITAL LETTER HIYO +118BA; C; 118DA; # WARANG CITI CAPITAL LETTER HOLO +118BB; C; 118DB; # WARANG CITI CAPITAL LETTER HORR +118BC; C; 118DC; # WARANG CITI CAPITAL LETTER HAR +118BD; C; 118DD; # WARANG CITI CAPITAL LETTER SSUU +118BE; C; 118DE; # WARANG CITI CAPITAL LETTER SII +118BF; C; 118DF; # WARANG CITI CAPITAL LETTER VIYO +16E40; C; 16E60; # MEDEFAIDRIN CAPITAL LETTER M +16E41; C; 16E61; # MEDEFAIDRIN CAPITAL LETTER S +16E42; C; 16E62; # MEDEFAIDRIN CAPITAL LETTER V +16E43; C; 16E63; # MEDEFAIDRIN CAPITAL LETTER W +16E44; C; 16E64; # MEDEFAIDRIN CAPITAL LETTER ATIU +16E45; C; 16E65; # MEDEFAIDRIN CAPITAL LETTER Z +16E46; C; 16E66; # MEDEFAIDRIN CAPITAL LETTER KP +16E47; C; 16E67; # MEDEFAIDRIN CAPITAL LETTER P +16E48; C; 16E68; # MEDEFAIDRIN CAPITAL LETTER T +16E49; C; 16E69; # MEDEFAIDRIN CAPITAL LETTER G +16E4A; C; 16E6A; # MEDEFAIDRIN CAPITAL LETTER F +16E4B; C; 16E6B; # MEDEFAIDRIN CAPITAL LETTER I +16E4C; C; 16E6C; # MEDEFAIDRIN CAPITAL LETTER K +16E4D; C; 16E6D; # MEDEFAIDRIN CAPITAL LETTER A +16E4E; C; 16E6E; # MEDEFAIDRIN CAPITAL LETTER J +16E4F; C; 16E6F; # MEDEFAIDRIN CAPITAL LETTER E +16E50; C; 16E70; # MEDEFAIDRIN CAPITAL LETTER B +16E51; C; 16E71; # MEDEFAIDRIN CAPITAL LETTER C +16E52; C; 16E72; # MEDEFAIDRIN CAPITAL LETTER U +16E53; C; 16E73; # MEDEFAIDRIN CAPITAL LETTER YU +16E54; C; 16E74; # MEDEFAIDRIN CAPITAL LETTER L +16E55; C; 16E75; # MEDEFAIDRIN CAPITAL LETTER Q +16E56; C; 16E76; # MEDEFAIDRIN CAPITAL LETTER HP +16E57; C; 16E77; # MEDEFAIDRIN CAPITAL LETTER NY +16E58; C; 16E78; # MEDEFAIDRIN CAPITAL LETTER X +16E59; C; 16E79; # MEDEFAIDRIN CAPITAL LETTER D +16E5A; C; 16E7A; # MEDEFAIDRIN CAPITAL LETTER OE +16E5B; C; 16E7B; # MEDEFAIDRIN CAPITAL LETTER N +16E5C; C; 16E7C; # MEDEFAIDRIN CAPITAL LETTER R +16E5D; C; 16E7D; # MEDEFAIDRIN CAPITAL LETTER O +16E5E; C; 16E7E; # MEDEFAIDRIN CAPITAL LETTER AI +16E5F; C; 16E7F; # MEDEFAIDRIN CAPITAL LETTER Y +1E900; C; 1E922; # ADLAM CAPITAL LETTER ALIF +1E901; C; 1E923; # ADLAM CAPITAL LETTER DAALI +1E902; C; 1E924; # ADLAM CAPITAL LETTER LAAM +1E903; C; 1E925; # ADLAM CAPITAL LETTER MIIM +1E904; C; 1E926; # ADLAM CAPITAL LETTER BA +1E905; C; 1E927; # ADLAM CAPITAL LETTER SINNYIIYHE +1E906; C; 1E928; # ADLAM CAPITAL LETTER PE +1E907; C; 1E929; # ADLAM CAPITAL LETTER BHE +1E908; C; 1E92A; # ADLAM CAPITAL LETTER RA +1E909; C; 1E92B; # ADLAM CAPITAL LETTER E +1E90A; C; 1E92C; # ADLAM CAPITAL LETTER FA +1E90B; C; 1E92D; # ADLAM CAPITAL LETTER I +1E90C; C; 1E92E; # ADLAM CAPITAL LETTER O +1E90D; C; 1E92F; # ADLAM CAPITAL LETTER DHA +1E90E; C; 1E930; # ADLAM CAPITAL LETTER YHE +1E90F; C; 1E931; # ADLAM CAPITAL LETTER WAW +1E910; C; 1E932; # ADLAM CAPITAL LETTER NUN +1E911; C; 1E933; # ADLAM CAPITAL LETTER KAF +1E912; C; 1E934; # ADLAM CAPITAL LETTER YA +1E913; C; 1E935; # ADLAM CAPITAL LETTER U +1E914; C; 1E936; # ADLAM CAPITAL LETTER JIIM +1E915; C; 1E937; # ADLAM CAPITAL LETTER CHI +1E916; C; 1E938; # ADLAM CAPITAL LETTER HA +1E917; C; 1E939; # ADLAM CAPITAL LETTER QAAF +1E918; C; 1E93A; # ADLAM CAPITAL LETTER GA +1E919; C; 1E93B; # ADLAM CAPITAL LETTER NYA +1E91A; C; 1E93C; # ADLAM CAPITAL LETTER TU +1E91B; C; 1E93D; # ADLAM CAPITAL LETTER NHA +1E91C; C; 1E93E; # ADLAM CAPITAL LETTER VA +1E91D; C; 1E93F; # ADLAM CAPITAL LETTER KHA +1E91E; C; 1E940; # ADLAM CAPITAL LETTER GBE +1E91F; C; 1E941; # ADLAM CAPITAL LETTER ZAL +1E920; C; 1E942; # ADLAM CAPITAL LETTER KPO +1E921; C; 1E943; # ADLAM CAPITAL LETTER SHA +# +# EOF diff --git a/validation-test/stdlib/UnicodeScalarProperties.swift b/validation-test/stdlib/UnicodeScalarProperties.swift index 92fab7d4c5449..d64ec02dd46e7 100644 --- a/validation-test/stdlib/UnicodeScalarProperties.swift +++ b/validation-test/stdlib/UnicodeScalarProperties.swift @@ -4,6 +4,9 @@ // REQUIRES: optimized_stdlib // REQUIRES: objc_interop +@_spi(_Unicode) +import Swift + import StdlibUnittest import StdlibUnicodeUnittest @@ -193,4 +196,24 @@ if #available(SwiftStdlib 5.6, *) { } } +//===----------------------------------------------------------------------===// +// Case Folded +//===----------------------------------------------------------------------===// + +if #available(SwiftStdlib 5.7, *) { + UnicodeScalarPropertiesTest.test("Scalar Case Folding") { + for i in 0x0 ... 0x10FFFF { + guard let scalar = Unicode.Scalar(i) else { + continue + } + + if let mapping = caseFolding[scalar] { + expectEqual(scalar.properties._caseFolded, mapping) + } else { + expectEqual(scalar.properties._caseFolded, String(scalar)) + } + } + } +} + runAllTests()