2 * Copyright (C) 2012 Apple Inc. All rights reserved.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 // DO NOT EDIT! - this file autogenerated by YarrCanonicalizeUCS2.js
29 #include "YarrCanonicalizeUCS2.h"
31 namespace JSC
{ namespace Yarr
{
35 const uint16_t ucs2CharacterSet0
[] = { 0x01c4u
, 0x01c5u
, 0x01c6u
, 0 };
36 const uint16_t ucs2CharacterSet1
[] = { 0x01c7u
, 0x01c8u
, 0x01c9u
, 0 };
37 const uint16_t ucs2CharacterSet2
[] = { 0x01cau
, 0x01cbu
, 0x01ccu
, 0 };
38 const uint16_t ucs2CharacterSet3
[] = { 0x01f1u
, 0x01f2u
, 0x01f3u
, 0 };
39 const uint16_t ucs2CharacterSet4
[] = { 0x0392u
, 0x03b2u
, 0x03d0u
, 0 };
40 const uint16_t ucs2CharacterSet5
[] = { 0x0395u
, 0x03b5u
, 0x03f5u
, 0 };
41 const uint16_t ucs2CharacterSet6
[] = { 0x0398u
, 0x03b8u
, 0x03d1u
, 0 };
42 const uint16_t ucs2CharacterSet7
[] = { 0x0345u
, 0x0399u
, 0x03b9u
, 0x1fbeu
, 0 };
43 const uint16_t ucs2CharacterSet8
[] = { 0x039au
, 0x03bau
, 0x03f0u
, 0 };
44 const uint16_t ucs2CharacterSet9
[] = { 0x00b5u
, 0x039cu
, 0x03bcu
, 0 };
45 const uint16_t ucs2CharacterSet10
[] = { 0x03a0u
, 0x03c0u
, 0x03d6u
, 0 };
46 const uint16_t ucs2CharacterSet11
[] = { 0x03a1u
, 0x03c1u
, 0x03f1u
, 0 };
47 const uint16_t ucs2CharacterSet12
[] = { 0x03a3u
, 0x03c2u
, 0x03c3u
, 0 };
48 const uint16_t ucs2CharacterSet13
[] = { 0x03a6u
, 0x03c6u
, 0x03d5u
, 0 };
49 const uint16_t ucs2CharacterSet14
[] = { 0x1e60u
, 0x1e61u
, 0x1e9bu
, 0 };
51 static const size_t UCS2_CANONICALIZATION_SETS
= 15;
52 const uint16_t* characterSetInfo
[UCS2_CANONICALIZATION_SETS
] = {
70 const size_t UCS2_CANONICALIZATION_RANGES
= 364;
71 const UCS2CanonicalizationRange rangeInfo
[UCS2_CANONICALIZATION_RANGES
] = {
72 { 0x0000u
, 0x0040u
, 0x0000u
, CanonicalizeUnique
},
73 { 0x0041u
, 0x005au
, 0x0020u
, CanonicalizeRangeLo
},
74 { 0x005bu
, 0x0060u
, 0x0000u
, CanonicalizeUnique
},
75 { 0x0061u
, 0x007au
, 0x0020u
, CanonicalizeRangeHi
},
76 { 0x007bu
, 0x00b4u
, 0x0000u
, CanonicalizeUnique
},
77 { 0x00b5u
, 0x00b5u
, 0x0009u
, CanonicalizeSet
},
78 { 0x00b6u
, 0x00bfu
, 0x0000u
, CanonicalizeUnique
},
79 { 0x00c0u
, 0x00d6u
, 0x0020u
, CanonicalizeRangeLo
},
80 { 0x00d7u
, 0x00d7u
, 0x0000u
, CanonicalizeUnique
},
81 { 0x00d8u
, 0x00deu
, 0x0020u
, CanonicalizeRangeLo
},
82 { 0x00dfu
, 0x00dfu
, 0x0000u
, CanonicalizeUnique
},
83 { 0x00e0u
, 0x00f6u
, 0x0020u
, CanonicalizeRangeHi
},
84 { 0x00f7u
, 0x00f7u
, 0x0000u
, CanonicalizeUnique
},
85 { 0x00f8u
, 0x00feu
, 0x0020u
, CanonicalizeRangeHi
},
86 { 0x00ffu
, 0x00ffu
, 0x0079u
, CanonicalizeRangeLo
},
87 { 0x0100u
, 0x012fu
, 0x0000u
, CanonicalizeAlternatingAligned
},
88 { 0x0130u
, 0x0131u
, 0x0000u
, CanonicalizeUnique
},
89 { 0x0132u
, 0x0137u
, 0x0000u
, CanonicalizeAlternatingAligned
},
90 { 0x0138u
, 0x0138u
, 0x0000u
, CanonicalizeUnique
},
91 { 0x0139u
, 0x0148u
, 0x0000u
, CanonicalizeAlternatingUnaligned
},
92 { 0x0149u
, 0x0149u
, 0x0000u
, CanonicalizeUnique
},
93 { 0x014au
, 0x0177u
, 0x0000u
, CanonicalizeAlternatingAligned
},
94 { 0x0178u
, 0x0178u
, 0x0079u
, CanonicalizeRangeHi
},
95 { 0x0179u
, 0x017eu
, 0x0000u
, CanonicalizeAlternatingUnaligned
},
96 { 0x017fu
, 0x017fu
, 0x0000u
, CanonicalizeUnique
},
97 { 0x0180u
, 0x0180u
, 0x00c3u
, CanonicalizeRangeLo
},
98 { 0x0181u
, 0x0181u
, 0x00d2u
, CanonicalizeRangeLo
},
99 { 0x0182u
, 0x0185u
, 0x0000u
, CanonicalizeAlternatingAligned
},
100 { 0x0186u
, 0x0186u
, 0x00ceu
, CanonicalizeRangeLo
},
101 { 0x0187u
, 0x0188u
, 0x0000u
, CanonicalizeAlternatingUnaligned
},
102 { 0x0189u
, 0x018au
, 0x00cdu
, CanonicalizeRangeLo
},
103 { 0x018bu
, 0x018cu
, 0x0000u
, CanonicalizeAlternatingUnaligned
},
104 { 0x018du
, 0x018du
, 0x0000u
, CanonicalizeUnique
},
105 { 0x018eu
, 0x018eu
, 0x004fu
, CanonicalizeRangeLo
},
106 { 0x018fu
, 0x018fu
, 0x00cau
, CanonicalizeRangeLo
},
107 { 0x0190u
, 0x0190u
, 0x00cbu
, CanonicalizeRangeLo
},
108 { 0x0191u
, 0x0192u
, 0x0000u
, CanonicalizeAlternatingUnaligned
},
109 { 0x0193u
, 0x0193u
, 0x00cdu
, CanonicalizeRangeLo
},
110 { 0x0194u
, 0x0194u
, 0x00cfu
, CanonicalizeRangeLo
},
111 { 0x0195u
, 0x0195u
, 0x0061u
, CanonicalizeRangeLo
},
112 { 0x0196u
, 0x0196u
, 0x00d3u
, CanonicalizeRangeLo
},
113 { 0x0197u
, 0x0197u
, 0x00d1u
, CanonicalizeRangeLo
},
114 { 0x0198u
, 0x0199u
, 0x0000u
, CanonicalizeAlternatingAligned
},
115 { 0x019au
, 0x019au
, 0x00a3u
, CanonicalizeRangeLo
},
116 { 0x019bu
, 0x019bu
, 0x0000u
, CanonicalizeUnique
},
117 { 0x019cu
, 0x019cu
, 0x00d3u
, CanonicalizeRangeLo
},
118 { 0x019du
, 0x019du
, 0x00d5u
, CanonicalizeRangeLo
},
119 { 0x019eu
, 0x019eu
, 0x0082u
, CanonicalizeRangeLo
},
120 { 0x019fu
, 0x019fu
, 0x00d6u
, CanonicalizeRangeLo
},
121 { 0x01a0u
, 0x01a5u
, 0x0000u
, CanonicalizeAlternatingAligned
},
122 { 0x01a6u
, 0x01a6u
, 0x00dau
, CanonicalizeRangeLo
},
123 { 0x01a7u
, 0x01a8u
, 0x0000u
, CanonicalizeAlternatingUnaligned
},
124 { 0x01a9u
, 0x01a9u
, 0x00dau
, CanonicalizeRangeLo
},
125 { 0x01aau
, 0x01abu
, 0x0000u
, CanonicalizeUnique
},
126 { 0x01acu
, 0x01adu
, 0x0000u
, CanonicalizeAlternatingAligned
},
127 { 0x01aeu
, 0x01aeu
, 0x00dau
, CanonicalizeRangeLo
},
128 { 0x01afu
, 0x01b0u
, 0x0000u
, CanonicalizeAlternatingUnaligned
},
129 { 0x01b1u
, 0x01b2u
, 0x00d9u
, CanonicalizeRangeLo
},
130 { 0x01b3u
, 0x01b6u
, 0x0000u
, CanonicalizeAlternatingUnaligned
},
131 { 0x01b7u
, 0x01b7u
, 0x00dbu
, CanonicalizeRangeLo
},
132 { 0x01b8u
, 0x01b9u
, 0x0000u
, CanonicalizeAlternatingAligned
},
133 { 0x01bau
, 0x01bbu
, 0x0000u
, CanonicalizeUnique
},
134 { 0x01bcu
, 0x01bdu
, 0x0000u
, CanonicalizeAlternatingAligned
},
135 { 0x01beu
, 0x01beu
, 0x0000u
, CanonicalizeUnique
},
136 { 0x01bfu
, 0x01bfu
, 0x0038u
, CanonicalizeRangeLo
},
137 { 0x01c0u
, 0x01c3u
, 0x0000u
, CanonicalizeUnique
},
138 { 0x01c4u
, 0x01c6u
, 0x0000u
, CanonicalizeSet
},
139 { 0x01c7u
, 0x01c9u
, 0x0001u
, CanonicalizeSet
},
140 { 0x01cau
, 0x01ccu
, 0x0002u
, CanonicalizeSet
},
141 { 0x01cdu
, 0x01dcu
, 0x0000u
, CanonicalizeAlternatingUnaligned
},
142 { 0x01ddu
, 0x01ddu
, 0x004fu
, CanonicalizeRangeHi
},
143 { 0x01deu
, 0x01efu
, 0x0000u
, CanonicalizeAlternatingAligned
},
144 { 0x01f0u
, 0x01f0u
, 0x0000u
, CanonicalizeUnique
},
145 { 0x01f1u
, 0x01f3u
, 0x0003u
, CanonicalizeSet
},
146 { 0x01f4u
, 0x01f5u
, 0x0000u
, CanonicalizeAlternatingAligned
},
147 { 0x01f6u
, 0x01f6u
, 0x0061u
, CanonicalizeRangeHi
},
148 { 0x01f7u
, 0x01f7u
, 0x0038u
, CanonicalizeRangeHi
},
149 { 0x01f8u
, 0x021fu
, 0x0000u
, CanonicalizeAlternatingAligned
},
150 { 0x0220u
, 0x0220u
, 0x0082u
, CanonicalizeRangeHi
},
151 { 0x0221u
, 0x0221u
, 0x0000u
, CanonicalizeUnique
},
152 { 0x0222u
, 0x0233u
, 0x0000u
, CanonicalizeAlternatingAligned
},
153 { 0x0234u
, 0x0239u
, 0x0000u
, CanonicalizeUnique
},
154 { 0x023au
, 0x023au
, 0x2a2bu
, CanonicalizeRangeLo
},
155 { 0x023bu
, 0x023cu
, 0x0000u
, CanonicalizeAlternatingUnaligned
},
156 { 0x023du
, 0x023du
, 0x00a3u
, CanonicalizeRangeHi
},
157 { 0x023eu
, 0x023eu
, 0x2a28u
, CanonicalizeRangeLo
},
158 { 0x023fu
, 0x0240u
, 0x2a3fu
, CanonicalizeRangeLo
},
159 { 0x0241u
, 0x0242u
, 0x0000u
, CanonicalizeAlternatingUnaligned
},
160 { 0x0243u
, 0x0243u
, 0x00c3u
, CanonicalizeRangeHi
},
161 { 0x0244u
, 0x0244u
, 0x0045u
, CanonicalizeRangeLo
},
162 { 0x0245u
, 0x0245u
, 0x0047u
, CanonicalizeRangeLo
},
163 { 0x0246u
, 0x024fu
, 0x0000u
, CanonicalizeAlternatingAligned
},
164 { 0x0250u
, 0x0250u
, 0x2a1fu
, CanonicalizeRangeLo
},
165 { 0x0251u
, 0x0251u
, 0x2a1cu
, CanonicalizeRangeLo
},
166 { 0x0252u
, 0x0252u
, 0x2a1eu
, CanonicalizeRangeLo
},
167 { 0x0253u
, 0x0253u
, 0x00d2u
, CanonicalizeRangeHi
},
168 { 0x0254u
, 0x0254u
, 0x00ceu
, CanonicalizeRangeHi
},
169 { 0x0255u
, 0x0255u
, 0x0000u
, CanonicalizeUnique
},
170 { 0x0256u
, 0x0257u
, 0x00cdu
, CanonicalizeRangeHi
},
171 { 0x0258u
, 0x0258u
, 0x0000u
, CanonicalizeUnique
},
172 { 0x0259u
, 0x0259u
, 0x00cau
, CanonicalizeRangeHi
},
173 { 0x025au
, 0x025au
, 0x0000u
, CanonicalizeUnique
},
174 { 0x025bu
, 0x025bu
, 0x00cbu
, CanonicalizeRangeHi
},
175 { 0x025cu
, 0x025fu
, 0x0000u
, CanonicalizeUnique
},
176 { 0x0260u
, 0x0260u
, 0x00cdu
, CanonicalizeRangeHi
},
177 { 0x0261u
, 0x0262u
, 0x0000u
, CanonicalizeUnique
},
178 { 0x0263u
, 0x0263u
, 0x00cfu
, CanonicalizeRangeHi
},
179 { 0x0264u
, 0x0264u
, 0x0000u
, CanonicalizeUnique
},
180 { 0x0265u
, 0x0265u
, 0xa528u
, CanonicalizeRangeLo
},
181 { 0x0266u
, 0x0267u
, 0x0000u
, CanonicalizeUnique
},
182 { 0x0268u
, 0x0268u
, 0x00d1u
, CanonicalizeRangeHi
},
183 { 0x0269u
, 0x0269u
, 0x00d3u
, CanonicalizeRangeHi
},
184 { 0x026au
, 0x026au
, 0x0000u
, CanonicalizeUnique
},
185 { 0x026bu
, 0x026bu
, 0x29f7u
, CanonicalizeRangeLo
},
186 { 0x026cu
, 0x026eu
, 0x0000u
, CanonicalizeUnique
},
187 { 0x026fu
, 0x026fu
, 0x00d3u
, CanonicalizeRangeHi
},
188 { 0x0270u
, 0x0270u
, 0x0000u
, CanonicalizeUnique
},
189 { 0x0271u
, 0x0271u
, 0x29fdu
, CanonicalizeRangeLo
},
190 { 0x0272u
, 0x0272u
, 0x00d5u
, CanonicalizeRangeHi
},
191 { 0x0273u
, 0x0274u
, 0x0000u
, CanonicalizeUnique
},
192 { 0x0275u
, 0x0275u
, 0x00d6u
, CanonicalizeRangeHi
},
193 { 0x0276u
, 0x027cu
, 0x0000u
, CanonicalizeUnique
},
194 { 0x027du
, 0x027du
, 0x29e7u
, CanonicalizeRangeLo
},
195 { 0x027eu
, 0x027fu
, 0x0000u
, CanonicalizeUnique
},
196 { 0x0280u
, 0x0280u
, 0x00dau
, CanonicalizeRangeHi
},
197 { 0x0281u
, 0x0282u
, 0x0000u
, CanonicalizeUnique
},
198 { 0x0283u
, 0x0283u
, 0x00dau
, CanonicalizeRangeHi
},
199 { 0x0284u
, 0x0287u
, 0x0000u
, CanonicalizeUnique
},
200 { 0x0288u
, 0x0288u
, 0x00dau
, CanonicalizeRangeHi
},
201 { 0x0289u
, 0x0289u
, 0x0045u
, CanonicalizeRangeHi
},
202 { 0x028au
, 0x028bu
, 0x00d9u
, CanonicalizeRangeHi
},
203 { 0x028cu
, 0x028cu
, 0x0047u
, CanonicalizeRangeHi
},
204 { 0x028du
, 0x0291u
, 0x0000u
, CanonicalizeUnique
},
205 { 0x0292u
, 0x0292u
, 0x00dbu
, CanonicalizeRangeHi
},
206 { 0x0293u
, 0x0344u
, 0x0000u
, CanonicalizeUnique
},
207 { 0x0345u
, 0x0345u
, 0x0007u
, CanonicalizeSet
},
208 { 0x0346u
, 0x036fu
, 0x0000u
, CanonicalizeUnique
},
209 { 0x0370u
, 0x0373u
, 0x0000u
, CanonicalizeAlternatingAligned
},
210 { 0x0374u
, 0x0375u
, 0x0000u
, CanonicalizeUnique
},
211 { 0x0376u
, 0x0377u
, 0x0000u
, CanonicalizeAlternatingAligned
},
212 { 0x0378u
, 0x037au
, 0x0000u
, CanonicalizeUnique
},
213 { 0x037bu
, 0x037du
, 0x0082u
, CanonicalizeRangeLo
},
214 { 0x037eu
, 0x0385u
, 0x0000u
, CanonicalizeUnique
},
215 { 0x0386u
, 0x0386u
, 0x0026u
, CanonicalizeRangeLo
},
216 { 0x0387u
, 0x0387u
, 0x0000u
, CanonicalizeUnique
},
217 { 0x0388u
, 0x038au
, 0x0025u
, CanonicalizeRangeLo
},
218 { 0x038bu
, 0x038bu
, 0x0000u
, CanonicalizeUnique
},
219 { 0x038cu
, 0x038cu
, 0x0040u
, CanonicalizeRangeLo
},
220 { 0x038du
, 0x038du
, 0x0000u
, CanonicalizeUnique
},
221 { 0x038eu
, 0x038fu
, 0x003fu
, CanonicalizeRangeLo
},
222 { 0x0390u
, 0x0390u
, 0x0000u
, CanonicalizeUnique
},
223 { 0x0391u
, 0x0391u
, 0x0020u
, CanonicalizeRangeLo
},
224 { 0x0392u
, 0x0392u
, 0x0004u
, CanonicalizeSet
},
225 { 0x0393u
, 0x0394u
, 0x0020u
, CanonicalizeRangeLo
},
226 { 0x0395u
, 0x0395u
, 0x0005u
, CanonicalizeSet
},
227 { 0x0396u
, 0x0397u
, 0x0020u
, CanonicalizeRangeLo
},
228 { 0x0398u
, 0x0398u
, 0x0006u
, CanonicalizeSet
},
229 { 0x0399u
, 0x0399u
, 0x0007u
, CanonicalizeSet
},
230 { 0x039au
, 0x039au
, 0x0008u
, CanonicalizeSet
},
231 { 0x039bu
, 0x039bu
, 0x0020u
, CanonicalizeRangeLo
},
232 { 0x039cu
, 0x039cu
, 0x0009u
, CanonicalizeSet
},
233 { 0x039du
, 0x039fu
, 0x0020u
, CanonicalizeRangeLo
},
234 { 0x03a0u
, 0x03a0u
, 0x000au
, CanonicalizeSet
},
235 { 0x03a1u
, 0x03a1u
, 0x000bu
, CanonicalizeSet
},
236 { 0x03a2u
, 0x03a2u
, 0x0000u
, CanonicalizeUnique
},
237 { 0x03a3u
, 0x03a3u
, 0x000cu
, CanonicalizeSet
},
238 { 0x03a4u
, 0x03a5u
, 0x0020u
, CanonicalizeRangeLo
},
239 { 0x03a6u
, 0x03a6u
, 0x000du
, CanonicalizeSet
},
240 { 0x03a7u
, 0x03abu
, 0x0020u
, CanonicalizeRangeLo
},
241 { 0x03acu
, 0x03acu
, 0x0026u
, CanonicalizeRangeHi
},
242 { 0x03adu
, 0x03afu
, 0x0025u
, CanonicalizeRangeHi
},
243 { 0x03b0u
, 0x03b0u
, 0x0000u
, CanonicalizeUnique
},
244 { 0x03b1u
, 0x03b1u
, 0x0020u
, CanonicalizeRangeHi
},
245 { 0x03b2u
, 0x03b2u
, 0x0004u
, CanonicalizeSet
},
246 { 0x03b3u
, 0x03b4u
, 0x0020u
, CanonicalizeRangeHi
},
247 { 0x03b5u
, 0x03b5u
, 0x0005u
, CanonicalizeSet
},
248 { 0x03b6u
, 0x03b7u
, 0x0020u
, CanonicalizeRangeHi
},
249 { 0x03b8u
, 0x03b8u
, 0x0006u
, CanonicalizeSet
},
250 { 0x03b9u
, 0x03b9u
, 0x0007u
, CanonicalizeSet
},
251 { 0x03bau
, 0x03bau
, 0x0008u
, CanonicalizeSet
},
252 { 0x03bbu
, 0x03bbu
, 0x0020u
, CanonicalizeRangeHi
},
253 { 0x03bcu
, 0x03bcu
, 0x0009u
, CanonicalizeSet
},
254 { 0x03bdu
, 0x03bfu
, 0x0020u
, CanonicalizeRangeHi
},
255 { 0x03c0u
, 0x03c0u
, 0x000au
, CanonicalizeSet
},
256 { 0x03c1u
, 0x03c1u
, 0x000bu
, CanonicalizeSet
},
257 { 0x03c2u
, 0x03c3u
, 0x000cu
, CanonicalizeSet
},
258 { 0x03c4u
, 0x03c5u
, 0x0020u
, CanonicalizeRangeHi
},
259 { 0x03c6u
, 0x03c6u
, 0x000du
, CanonicalizeSet
},
260 { 0x03c7u
, 0x03cbu
, 0x0020u
, CanonicalizeRangeHi
},
261 { 0x03ccu
, 0x03ccu
, 0x0040u
, CanonicalizeRangeHi
},
262 { 0x03cdu
, 0x03ceu
, 0x003fu
, CanonicalizeRangeHi
},
263 { 0x03cfu
, 0x03cfu
, 0x0008u
, CanonicalizeRangeLo
},
264 { 0x03d0u
, 0x03d0u
, 0x0004u
, CanonicalizeSet
},
265 { 0x03d1u
, 0x03d1u
, 0x0006u
, CanonicalizeSet
},
266 { 0x03d2u
, 0x03d4u
, 0x0000u
, CanonicalizeUnique
},
267 { 0x03d5u
, 0x03d5u
, 0x000du
, CanonicalizeSet
},
268 { 0x03d6u
, 0x03d6u
, 0x000au
, CanonicalizeSet
},
269 { 0x03d7u
, 0x03d7u
, 0x0008u
, CanonicalizeRangeHi
},
270 { 0x03d8u
, 0x03efu
, 0x0000u
, CanonicalizeAlternatingAligned
},
271 { 0x03f0u
, 0x03f0u
, 0x0008u
, CanonicalizeSet
},
272 { 0x03f1u
, 0x03f1u
, 0x000bu
, CanonicalizeSet
},
273 { 0x03f2u
, 0x03f2u
, 0x0007u
, CanonicalizeRangeLo
},
274 { 0x03f3u
, 0x03f4u
, 0x0000u
, CanonicalizeUnique
},
275 { 0x03f5u
, 0x03f5u
, 0x0005u
, CanonicalizeSet
},
276 { 0x03f6u
, 0x03f6u
, 0x0000u
, CanonicalizeUnique
},
277 { 0x03f7u
, 0x03f8u
, 0x0000u
, CanonicalizeAlternatingUnaligned
},
278 { 0x03f9u
, 0x03f9u
, 0x0007u
, CanonicalizeRangeHi
},
279 { 0x03fau
, 0x03fbu
, 0x0000u
, CanonicalizeAlternatingAligned
},
280 { 0x03fcu
, 0x03fcu
, 0x0000u
, CanonicalizeUnique
},
281 { 0x03fdu
, 0x03ffu
, 0x0082u
, CanonicalizeRangeHi
},
282 { 0x0400u
, 0x040fu
, 0x0050u
, CanonicalizeRangeLo
},
283 { 0x0410u
, 0x042fu
, 0x0020u
, CanonicalizeRangeLo
},
284 { 0x0430u
, 0x044fu
, 0x0020u
, CanonicalizeRangeHi
},
285 { 0x0450u
, 0x045fu
, 0x0050u
, CanonicalizeRangeHi
},
286 { 0x0460u
, 0x0481u
, 0x0000u
, CanonicalizeAlternatingAligned
},
287 { 0x0482u
, 0x0489u
, 0x0000u
, CanonicalizeUnique
},
288 { 0x048au
, 0x04bfu
, 0x0000u
, CanonicalizeAlternatingAligned
},
289 { 0x04c0u
, 0x04c0u
, 0x000fu
, CanonicalizeRangeLo
},
290 { 0x04c1u
, 0x04ceu
, 0x0000u
, CanonicalizeAlternatingUnaligned
},
291 { 0x04cfu
, 0x04cfu
, 0x000fu
, CanonicalizeRangeHi
},
292 { 0x04d0u
, 0x0527u
, 0x0000u
, CanonicalizeAlternatingAligned
},
293 { 0x0528u
, 0x0530u
, 0x0000u
, CanonicalizeUnique
},
294 { 0x0531u
, 0x0556u
, 0x0030u
, CanonicalizeRangeLo
},
295 { 0x0557u
, 0x0560u
, 0x0000u
, CanonicalizeUnique
},
296 { 0x0561u
, 0x0586u
, 0x0030u
, CanonicalizeRangeHi
},
297 { 0x0587u
, 0x109fu
, 0x0000u
, CanonicalizeUnique
},
298 { 0x10a0u
, 0x10c5u
, 0x1c60u
, CanonicalizeRangeLo
},
299 { 0x10c6u
, 0x1d78u
, 0x0000u
, CanonicalizeUnique
},
300 { 0x1d79u
, 0x1d79u
, 0x8a04u
, CanonicalizeRangeLo
},
301 { 0x1d7au
, 0x1d7cu
, 0x0000u
, CanonicalizeUnique
},
302 { 0x1d7du
, 0x1d7du
, 0x0ee6u
, CanonicalizeRangeLo
},
303 { 0x1d7eu
, 0x1dffu
, 0x0000u
, CanonicalizeUnique
},
304 { 0x1e00u
, 0x1e5fu
, 0x0000u
, CanonicalizeAlternatingAligned
},
305 { 0x1e60u
, 0x1e61u
, 0x000eu
, CanonicalizeSet
},
306 { 0x1e62u
, 0x1e95u
, 0x0000u
, CanonicalizeAlternatingAligned
},
307 { 0x1e96u
, 0x1e9au
, 0x0000u
, CanonicalizeUnique
},
308 { 0x1e9bu
, 0x1e9bu
, 0x000eu
, CanonicalizeSet
},
309 { 0x1e9cu
, 0x1e9fu
, 0x0000u
, CanonicalizeUnique
},
310 { 0x1ea0u
, 0x1effu
, 0x0000u
, CanonicalizeAlternatingAligned
},
311 { 0x1f00u
, 0x1f07u
, 0x0008u
, CanonicalizeRangeLo
},
312 { 0x1f08u
, 0x1f0fu
, 0x0008u
, CanonicalizeRangeHi
},
313 { 0x1f10u
, 0x1f15u
, 0x0008u
, CanonicalizeRangeLo
},
314 { 0x1f16u
, 0x1f17u
, 0x0000u
, CanonicalizeUnique
},
315 { 0x1f18u
, 0x1f1du
, 0x0008u
, CanonicalizeRangeHi
},
316 { 0x1f1eu
, 0x1f1fu
, 0x0000u
, CanonicalizeUnique
},
317 { 0x1f20u
, 0x1f27u
, 0x0008u
, CanonicalizeRangeLo
},
318 { 0x1f28u
, 0x1f2fu
, 0x0008u
, CanonicalizeRangeHi
},
319 { 0x1f30u
, 0x1f37u
, 0x0008u
, CanonicalizeRangeLo
},
320 { 0x1f38u
, 0x1f3fu
, 0x0008u
, CanonicalizeRangeHi
},
321 { 0x1f40u
, 0x1f45u
, 0x0008u
, CanonicalizeRangeLo
},
322 { 0x1f46u
, 0x1f47u
, 0x0000u
, CanonicalizeUnique
},
323 { 0x1f48u
, 0x1f4du
, 0x0008u
, CanonicalizeRangeHi
},
324 { 0x1f4eu
, 0x1f50u
, 0x0000u
, CanonicalizeUnique
},
325 { 0x1f51u
, 0x1f51u
, 0x0008u
, CanonicalizeRangeLo
},
326 { 0x1f52u
, 0x1f52u
, 0x0000u
, CanonicalizeUnique
},
327 { 0x1f53u
, 0x1f53u
, 0x0008u
, CanonicalizeRangeLo
},
328 { 0x1f54u
, 0x1f54u
, 0x0000u
, CanonicalizeUnique
},
329 { 0x1f55u
, 0x1f55u
, 0x0008u
, CanonicalizeRangeLo
},
330 { 0x1f56u
, 0x1f56u
, 0x0000u
, CanonicalizeUnique
},
331 { 0x1f57u
, 0x1f57u
, 0x0008u
, CanonicalizeRangeLo
},
332 { 0x1f58u
, 0x1f58u
, 0x0000u
, CanonicalizeUnique
},
333 { 0x1f59u
, 0x1f59u
, 0x0008u
, CanonicalizeRangeHi
},
334 { 0x1f5au
, 0x1f5au
, 0x0000u
, CanonicalizeUnique
},
335 { 0x1f5bu
, 0x1f5bu
, 0x0008u
, CanonicalizeRangeHi
},
336 { 0x1f5cu
, 0x1f5cu
, 0x0000u
, CanonicalizeUnique
},
337 { 0x1f5du
, 0x1f5du
, 0x0008u
, CanonicalizeRangeHi
},
338 { 0x1f5eu
, 0x1f5eu
, 0x0000u
, CanonicalizeUnique
},
339 { 0x1f5fu
, 0x1f5fu
, 0x0008u
, CanonicalizeRangeHi
},
340 { 0x1f60u
, 0x1f67u
, 0x0008u
, CanonicalizeRangeLo
},
341 { 0x1f68u
, 0x1f6fu
, 0x0008u
, CanonicalizeRangeHi
},
342 { 0x1f70u
, 0x1f71u
, 0x004au
, CanonicalizeRangeLo
},
343 { 0x1f72u
, 0x1f75u
, 0x0056u
, CanonicalizeRangeLo
},
344 { 0x1f76u
, 0x1f77u
, 0x0064u
, CanonicalizeRangeLo
},
345 { 0x1f78u
, 0x1f79u
, 0x0080u
, CanonicalizeRangeLo
},
346 { 0x1f7au
, 0x1f7bu
, 0x0070u
, CanonicalizeRangeLo
},
347 { 0x1f7cu
, 0x1f7du
, 0x007eu
, CanonicalizeRangeLo
},
348 { 0x1f7eu
, 0x1fafu
, 0x0000u
, CanonicalizeUnique
},
349 { 0x1fb0u
, 0x1fb1u
, 0x0008u
, CanonicalizeRangeLo
},
350 { 0x1fb2u
, 0x1fb7u
, 0x0000u
, CanonicalizeUnique
},
351 { 0x1fb8u
, 0x1fb9u
, 0x0008u
, CanonicalizeRangeHi
},
352 { 0x1fbau
, 0x1fbbu
, 0x004au
, CanonicalizeRangeHi
},
353 { 0x1fbcu
, 0x1fbdu
, 0x0000u
, CanonicalizeUnique
},
354 { 0x1fbeu
, 0x1fbeu
, 0x0007u
, CanonicalizeSet
},
355 { 0x1fbfu
, 0x1fc7u
, 0x0000u
, CanonicalizeUnique
},
356 { 0x1fc8u
, 0x1fcbu
, 0x0056u
, CanonicalizeRangeHi
},
357 { 0x1fccu
, 0x1fcfu
, 0x0000u
, CanonicalizeUnique
},
358 { 0x1fd0u
, 0x1fd1u
, 0x0008u
, CanonicalizeRangeLo
},
359 { 0x1fd2u
, 0x1fd7u
, 0x0000u
, CanonicalizeUnique
},
360 { 0x1fd8u
, 0x1fd9u
, 0x0008u
, CanonicalizeRangeHi
},
361 { 0x1fdau
, 0x1fdbu
, 0x0064u
, CanonicalizeRangeHi
},
362 { 0x1fdcu
, 0x1fdfu
, 0x0000u
, CanonicalizeUnique
},
363 { 0x1fe0u
, 0x1fe1u
, 0x0008u
, CanonicalizeRangeLo
},
364 { 0x1fe2u
, 0x1fe4u
, 0x0000u
, CanonicalizeUnique
},
365 { 0x1fe5u
, 0x1fe5u
, 0x0007u
, CanonicalizeRangeLo
},
366 { 0x1fe6u
, 0x1fe7u
, 0x0000u
, CanonicalizeUnique
},
367 { 0x1fe8u
, 0x1fe9u
, 0x0008u
, CanonicalizeRangeHi
},
368 { 0x1feau
, 0x1febu
, 0x0070u
, CanonicalizeRangeHi
},
369 { 0x1fecu
, 0x1fecu
, 0x0007u
, CanonicalizeRangeHi
},
370 { 0x1fedu
, 0x1ff7u
, 0x0000u
, CanonicalizeUnique
},
371 { 0x1ff8u
, 0x1ff9u
, 0x0080u
, CanonicalizeRangeHi
},
372 { 0x1ffau
, 0x1ffbu
, 0x007eu
, CanonicalizeRangeHi
},
373 { 0x1ffcu
, 0x2131u
, 0x0000u
, CanonicalizeUnique
},
374 { 0x2132u
, 0x2132u
, 0x001cu
, CanonicalizeRangeLo
},
375 { 0x2133u
, 0x214du
, 0x0000u
, CanonicalizeUnique
},
376 { 0x214eu
, 0x214eu
, 0x001cu
, CanonicalizeRangeHi
},
377 { 0x214fu
, 0x215fu
, 0x0000u
, CanonicalizeUnique
},
378 { 0x2160u
, 0x216fu
, 0x0010u
, CanonicalizeRangeLo
},
379 { 0x2170u
, 0x217fu
, 0x0010u
, CanonicalizeRangeHi
},
380 { 0x2180u
, 0x2182u
, 0x0000u
, CanonicalizeUnique
},
381 { 0x2183u
, 0x2184u
, 0x0000u
, CanonicalizeAlternatingUnaligned
},
382 { 0x2185u
, 0x24b5u
, 0x0000u
, CanonicalizeUnique
},
383 { 0x24b6u
, 0x24cfu
, 0x001au
, CanonicalizeRangeLo
},
384 { 0x24d0u
, 0x24e9u
, 0x001au
, CanonicalizeRangeHi
},
385 { 0x24eau
, 0x2bffu
, 0x0000u
, CanonicalizeUnique
},
386 { 0x2c00u
, 0x2c2eu
, 0x0030u
, CanonicalizeRangeLo
},
387 { 0x2c2fu
, 0x2c2fu
, 0x0000u
, CanonicalizeUnique
},
388 { 0x2c30u
, 0x2c5eu
, 0x0030u
, CanonicalizeRangeHi
},
389 { 0x2c5fu
, 0x2c5fu
, 0x0000u
, CanonicalizeUnique
},
390 { 0x2c60u
, 0x2c61u
, 0x0000u
, CanonicalizeAlternatingAligned
},
391 { 0x2c62u
, 0x2c62u
, 0x29f7u
, CanonicalizeRangeHi
},
392 { 0x2c63u
, 0x2c63u
, 0x0ee6u
, CanonicalizeRangeHi
},
393 { 0x2c64u
, 0x2c64u
, 0x29e7u
, CanonicalizeRangeHi
},
394 { 0x2c65u
, 0x2c65u
, 0x2a2bu
, CanonicalizeRangeHi
},
395 { 0x2c66u
, 0x2c66u
, 0x2a28u
, CanonicalizeRangeHi
},
396 { 0x2c67u
, 0x2c6cu
, 0x0000u
, CanonicalizeAlternatingUnaligned
},
397 { 0x2c6du
, 0x2c6du
, 0x2a1cu
, CanonicalizeRangeHi
},
398 { 0x2c6eu
, 0x2c6eu
, 0x29fdu
, CanonicalizeRangeHi
},
399 { 0x2c6fu
, 0x2c6fu
, 0x2a1fu
, CanonicalizeRangeHi
},
400 { 0x2c70u
, 0x2c70u
, 0x2a1eu
, CanonicalizeRangeHi
},
401 { 0x2c71u
, 0x2c71u
, 0x0000u
, CanonicalizeUnique
},
402 { 0x2c72u
, 0x2c73u
, 0x0000u
, CanonicalizeAlternatingAligned
},
403 { 0x2c74u
, 0x2c74u
, 0x0000u
, CanonicalizeUnique
},
404 { 0x2c75u
, 0x2c76u
, 0x0000u
, CanonicalizeAlternatingUnaligned
},
405 { 0x2c77u
, 0x2c7du
, 0x0000u
, CanonicalizeUnique
},
406 { 0x2c7eu
, 0x2c7fu
, 0x2a3fu
, CanonicalizeRangeHi
},
407 { 0x2c80u
, 0x2ce3u
, 0x0000u
, CanonicalizeAlternatingAligned
},
408 { 0x2ce4u
, 0x2ceau
, 0x0000u
, CanonicalizeUnique
},
409 { 0x2cebu
, 0x2ceeu
, 0x0000u
, CanonicalizeAlternatingUnaligned
},
410 { 0x2cefu
, 0x2cffu
, 0x0000u
, CanonicalizeUnique
},
411 { 0x2d00u
, 0x2d25u
, 0x1c60u
, CanonicalizeRangeHi
},
412 { 0x2d26u
, 0xa63fu
, 0x0000u
, CanonicalizeUnique
},
413 { 0xa640u
, 0xa66du
, 0x0000u
, CanonicalizeAlternatingAligned
},
414 { 0xa66eu
, 0xa67fu
, 0x0000u
, CanonicalizeUnique
},
415 { 0xa680u
, 0xa697u
, 0x0000u
, CanonicalizeAlternatingAligned
},
416 { 0xa698u
, 0xa721u
, 0x0000u
, CanonicalizeUnique
},
417 { 0xa722u
, 0xa72fu
, 0x0000u
, CanonicalizeAlternatingAligned
},
418 { 0xa730u
, 0xa731u
, 0x0000u
, CanonicalizeUnique
},
419 { 0xa732u
, 0xa76fu
, 0x0000u
, CanonicalizeAlternatingAligned
},
420 { 0xa770u
, 0xa778u
, 0x0000u
, CanonicalizeUnique
},
421 { 0xa779u
, 0xa77cu
, 0x0000u
, CanonicalizeAlternatingUnaligned
},
422 { 0xa77du
, 0xa77du
, 0x8a04u
, CanonicalizeRangeHi
},
423 { 0xa77eu
, 0xa787u
, 0x0000u
, CanonicalizeAlternatingAligned
},
424 { 0xa788u
, 0xa78au
, 0x0000u
, CanonicalizeUnique
},
425 { 0xa78bu
, 0xa78cu
, 0x0000u
, CanonicalizeAlternatingUnaligned
},
426 { 0xa78du
, 0xa78du
, 0xa528u
, CanonicalizeRangeHi
},
427 { 0xa78eu
, 0xa78fu
, 0x0000u
, CanonicalizeUnique
},
428 { 0xa790u
, 0xa791u
, 0x0000u
, CanonicalizeAlternatingAligned
},
429 { 0xa792u
, 0xa79fu
, 0x0000u
, CanonicalizeUnique
},
430 { 0xa7a0u
, 0xa7a9u
, 0x0000u
, CanonicalizeAlternatingAligned
},
431 { 0xa7aau
, 0xff20u
, 0x0000u
, CanonicalizeUnique
},
432 { 0xff21u
, 0xff3au
, 0x0020u
, CanonicalizeRangeLo
},
433 { 0xff3bu
, 0xff40u
, 0x0000u
, CanonicalizeUnique
},
434 { 0xff41u
, 0xff5au
, 0x0020u
, CanonicalizeRangeHi
},
435 { 0xff5bu
, 0xffffu
, 0x0000u
, CanonicalizeUnique
},
438 const size_t LATIN_CANONICALIZATION_RANGES
= 20;
439 LatinCanonicalizationRange latinRangeInfo
[LATIN_CANONICALIZATION_RANGES
] = {
440 { 0x0000u
, 0x0040u
, 0x0000u
, CanonicalizeLatinSelf
},
441 { 0x0041u
, 0x005au
, 0x0000u
, CanonicalizeLatinMask0x20
},
442 { 0x005bu
, 0x0060u
, 0x0000u
, CanonicalizeLatinSelf
},
443 { 0x0061u
, 0x007au
, 0x0000u
, CanonicalizeLatinMask0x20
},
444 { 0x007bu
, 0x00bfu
, 0x0000u
, CanonicalizeLatinSelf
},
445 { 0x00c0u
, 0x00d6u
, 0x0000u
, CanonicalizeLatinMask0x20
},
446 { 0x00d7u
, 0x00d7u
, 0x0000u
, CanonicalizeLatinSelf
},
447 { 0x00d8u
, 0x00deu
, 0x0000u
, CanonicalizeLatinMask0x20
},
448 { 0x00dfu
, 0x00dfu
, 0x0000u
, CanonicalizeLatinSelf
},
449 { 0x00e0u
, 0x00f6u
, 0x0000u
, CanonicalizeLatinMask0x20
},
450 { 0x00f7u
, 0x00f7u
, 0x0000u
, CanonicalizeLatinSelf
},
451 { 0x00f8u
, 0x00feu
, 0x0000u
, CanonicalizeLatinMask0x20
},
452 { 0x00ffu
, 0x00ffu
, 0x0000u
, CanonicalizeLatinSelf
},
453 { 0x0100u
, 0x0177u
, 0x0000u
, CanonicalizeLatinInvalid
},
454 { 0x0178u
, 0x0178u
, 0x00ffu
, CanonicalizeLatinOther
},
455 { 0x0179u
, 0x039bu
, 0x0000u
, CanonicalizeLatinInvalid
},
456 { 0x039cu
, 0x039cu
, 0x00b5u
, CanonicalizeLatinOther
},
457 { 0x039du
, 0x03bbu
, 0x0000u
, CanonicalizeLatinInvalid
},
458 { 0x03bcu
, 0x03bcu
, 0x00b5u
, CanonicalizeLatinOther
},
459 { 0x03bdu
, 0xffffu
, 0x0000u
, CanonicalizeLatinInvalid
},