summaryrefslogtreecommitdiff
path: root/vendor/symfony/polyfill-mbstring
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/symfony/polyfill-mbstring')
-rw-r--r--vendor/symfony/polyfill-mbstring/LICENSE19
-rw-r--r--vendor/symfony/polyfill-mbstring/Mbstring.php996
-rw-r--r--vendor/symfony/polyfill-mbstring/README.md13
-rw-r--r--vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php119
-rw-r--r--vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php1397
-rw-r--r--vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php5
-rw-r--r--vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php1489
-rw-r--r--vendor/symfony/polyfill-mbstring/bootstrap.php159
-rw-r--r--vendor/symfony/polyfill-mbstring/bootstrap80.php155
-rw-r--r--vendor/symfony/polyfill-mbstring/composer.json38
10 files changed, 4390 insertions, 0 deletions
diff --git a/vendor/symfony/polyfill-mbstring/LICENSE b/vendor/symfony/polyfill-mbstring/LICENSE
new file mode 100644
index 0000000..6e3afce
--- /dev/null
+++ b/vendor/symfony/polyfill-mbstring/LICENSE
@@ -0,0 +1,19 @@
1Copyright (c) 2015-present Fabien Potencier
2
3Permission is hereby granted, free of charge, to any person obtaining a copy
4of this software and associated documentation files (the "Software"), to deal
5in the Software without restriction, including without limitation the rights
6to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7copies of the Software, and to permit persons to whom the Software is furnished
8to do so, subject to the following conditions:
9
10The above copyright notice and this permission notice shall be included in all
11copies or substantial portions of the Software.
12
13THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19THE SOFTWARE.
diff --git a/vendor/symfony/polyfill-mbstring/Mbstring.php b/vendor/symfony/polyfill-mbstring/Mbstring.php
new file mode 100644
index 0000000..1ad33a8
--- /dev/null
+++ b/vendor/symfony/polyfill-mbstring/Mbstring.php
@@ -0,0 +1,996 @@
1<?php
2
3/*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12namespace Symfony\Polyfill\Mbstring;
13
14/**
15 * Partial mbstring implementation in PHP, iconv based, UTF-8 centric.
16 *
17 * Implemented:
18 * - mb_chr - Returns a specific character from its Unicode code point
19 * - mb_convert_encoding - Convert character encoding
20 * - mb_convert_variables - Convert character code in variable(s)
21 * - mb_decode_mimeheader - Decode string in MIME header field
22 * - mb_encode_mimeheader - Encode string for MIME header XXX NATIVE IMPLEMENTATION IS REALLY BUGGED
23 * - mb_decode_numericentity - Decode HTML numeric string reference to character
24 * - mb_encode_numericentity - Encode character to HTML numeric string reference
25 * - mb_convert_case - Perform case folding on a string
26 * - mb_detect_encoding - Detect character encoding
27 * - mb_get_info - Get internal settings of mbstring
28 * - mb_http_input - Detect HTTP input character encoding
29 * - mb_http_output - Set/Get HTTP output character encoding
30 * - mb_internal_encoding - Set/Get internal character encoding
31 * - mb_list_encodings - Returns an array of all supported encodings
32 * - mb_ord - Returns the Unicode code point of a character
33 * - mb_output_handler - Callback function converts character encoding in output buffer
34 * - mb_scrub - Replaces ill-formed byte sequences with substitute characters
35 * - mb_strlen - Get string length
36 * - mb_strpos - Find position of first occurrence of string in a string
37 * - mb_strrpos - Find position of last occurrence of a string in a string
38 * - mb_str_split - Convert a string to an array
39 * - mb_strtolower - Make a string lowercase
40 * - mb_strtoupper - Make a string uppercase
41 * - mb_substitute_character - Set/Get substitution character
42 * - mb_substr - Get part of string
43 * - mb_stripos - Finds position of first occurrence of a string within another, case insensitive
44 * - mb_stristr - Finds first occurrence of a string within another, case insensitive
45 * - mb_strrchr - Finds the last occurrence of a character in a string within another
46 * - mb_strrichr - Finds the last occurrence of a character in a string within another, case insensitive
47 * - mb_strripos - Finds position of last occurrence of a string within another, case insensitive
48 * - mb_strstr - Finds first occurrence of a string within another
49 * - mb_strwidth - Return width of string
50 * - mb_substr_count - Count the number of substring occurrences
51 * - mb_ucfirst - Make a string's first character uppercase
52 * - mb_lcfirst - Make a string's first character lowercase
53 *
54 * Not implemented:
55 * - mb_convert_kana - Convert "kana" one from another ("zen-kaku", "han-kaku" and more)
56 * - mb_ereg_* - Regular expression with multibyte support
57 * - mb_parse_str - Parse GET/POST/COOKIE data and set global variable
58 * - mb_preferred_mime_name - Get MIME charset string
59 * - mb_regex_encoding - Returns current encoding for multibyte regex as string
60 * - mb_regex_set_options - Set/Get the default options for mbregex functions
61 * - mb_send_mail - Send encoded mail
62 * - mb_split - Split multibyte string using regular expression
63 * - mb_strcut - Get part of string
64 * - mb_strimwidth - Get truncated string with specified width
65 *
66 * @author Nicolas Grekas <p@tchwork.com>
67 *
68 * @internal
69 */
70final class Mbstring
71{
72 public const MB_CASE_FOLD = \PHP_INT_MAX;
73
74 private const SIMPLE_CASE_FOLD = [
75 ['µ', 'ſ', "\xCD\x85", 'ς', "\xCF\x90", "\xCF\x91", "\xCF\x95", "\xCF\x96", "\xCF\xB0", "\xCF\xB1", "\xCF\xB5", "\xE1\xBA\x9B", "\xE1\xBE\xBE"],
76 ['μ', 's', 'ι', 'σ', 'β', 'θ', 'φ', 'π', 'κ', 'ρ', 'ε', "\xE1\xB9\xA1", 'ι'],
77 ];
78
79 private static $encodingList = ['ASCII', 'UTF-8'];
80 private static $language = 'neutral';
81 private static $internalEncoding = 'UTF-8';
82
83 public static function mb_convert_encoding($s, $toEncoding, $fromEncoding = null)
84 {
85 if (\is_array($s)) {
86 if (PHP_VERSION_ID < 70200) {
87 trigger_error('mb_convert_encoding() expects parameter 1 to be string, array given', \E_USER_WARNING);
88
89 return null;
90 }
91
92 $r = [];
93 foreach ($s as $str) {
94 $r[] = self::mb_convert_encoding($str, $toEncoding, $fromEncoding);
95 }
96
97 return $r;
98 }
99
100 if (\is_array($fromEncoding) || (null !== $fromEncoding && false !== strpos($fromEncoding, ','))) {
101 $fromEncoding = self::mb_detect_encoding($s, $fromEncoding);
102 } else {
103 $fromEncoding = self::getEncoding($fromEncoding);
104 }
105
106 $toEncoding = self::getEncoding($toEncoding);
107
108 if ('BASE64' === $fromEncoding) {
109 $s = base64_decode($s);
110 $fromEncoding = $toEncoding;
111 }
112
113 if ('BASE64' === $toEncoding) {
114 return base64_encode($s);
115 }
116
117 if ('HTML-ENTITIES' === $toEncoding || 'HTML' === $toEncoding) {
118 if ('HTML-ENTITIES' === $fromEncoding || 'HTML' === $fromEncoding) {
119 $fromEncoding = 'Windows-1252';
120 }
121 if ('UTF-8' !== $fromEncoding) {
122 $s = iconv($fromEncoding, 'UTF-8//IGNORE', $s);
123 }
124
125 return preg_replace_callback('/[\x80-\xFF]+/', [__CLASS__, 'html_encoding_callback'], $s);
126 }
127
128 if ('HTML-ENTITIES' === $fromEncoding) {
129 $s = html_entity_decode($s, \ENT_COMPAT, 'UTF-8');
130 $fromEncoding = 'UTF-8';
131 }
132
133 return iconv($fromEncoding, $toEncoding.'//IGNORE', $s);
134 }
135
136 public static function mb_convert_variables($toEncoding, $fromEncoding, &...$vars)
137 {
138 $ok = true;
139 array_walk_recursive($vars, function (&$v) use (&$ok, $toEncoding, $fromEncoding) {
140 if (false === $v = self::mb_convert_encoding($v, $toEncoding, $fromEncoding)) {
141 $ok = false;
142 }
143 });
144
145 return $ok ? $fromEncoding : false;
146 }
147
148 public static function mb_decode_mimeheader($s)
149 {
150 return iconv_mime_decode($s, 2, self::$internalEncoding);
151 }
152
153 public static function mb_encode_mimeheader($s, $charset = null, $transferEncoding = null, $linefeed = null, $indent = null)
154 {
155 trigger_error('mb_encode_mimeheader() is bugged. Please use iconv_mime_encode() instead', \E_USER_WARNING);
156 }
157
158 public static function mb_decode_numericentity($s, $convmap, $encoding = null)
159 {
160 if (null !== $s && !\is_scalar($s) && !(\is_object($s) && method_exists($s, '__toString'))) {
161 trigger_error('mb_decode_numericentity() expects parameter 1 to be string, '.\gettype($s).' given', \E_USER_WARNING);
162
163 return null;
164 }
165
166 if (!\is_array($convmap) || (80000 > \PHP_VERSION_ID && !$convmap)) {
167 return false;
168 }
169
170 if (null !== $encoding && !\is_scalar($encoding)) {
171 trigger_error('mb_decode_numericentity() expects parameter 3 to be string, '.\gettype($s).' given', \E_USER_WARNING);
172
173 return ''; // Instead of null (cf. mb_encode_numericentity).
174 }
175
176 $s = (string) $s;
177 if ('' === $s) {
178 return '';
179 }
180
181 $encoding = self::getEncoding($encoding);
182
183 if ('UTF-8' === $encoding) {
184 $encoding = null;
185 if (!preg_match('//u', $s)) {
186 $s = @iconv('UTF-8', 'UTF-8//IGNORE', $s);
187 }
188 } else {
189 $s = iconv($encoding, 'UTF-8//IGNORE', $s);
190 }
191
192 $cnt = floor(\count($convmap) / 4) * 4;
193
194 for ($i = 0; $i < $cnt; $i += 4) {
195 // collector_decode_htmlnumericentity ignores $convmap[$i + 3]
196 $convmap[$i] += $convmap[$i + 2];
197 $convmap[$i + 1] += $convmap[$i + 2];
198 }
199
200 $s = preg_replace_callback('/&#(?:0*([0-9]+)|x0*([0-9a-fA-F]+))(?!&);?/', function (array $m) use ($cnt, $convmap) {
201 $c = isset($m[2]) ? (int) hexdec($m[2]) : $m[1];
202 for ($i = 0; $i < $cnt; $i += 4) {
203 if ($c >= $convmap[$i] && $c <= $convmap[$i + 1]) {
204 return self::mb_chr($c - $convmap[$i + 2]);
205 }
206 }
207
208 return $m[0];
209 }, $s);
210
211 if (null === $encoding) {
212 return $s;
213 }
214
215 return iconv('UTF-8', $encoding.'//IGNORE', $s);
216 }
217
218 public static function mb_encode_numericentity($s, $convmap, $encoding = null, $is_hex = false)
219 {
220 if (null !== $s && !\is_scalar($s) && !(\is_object($s) && method_exists($s, '__toString'))) {
221 trigger_error('mb_encode_numericentity() expects parameter 1 to be string, '.\gettype($s).' given', \E_USER_WARNING);
222
223 return null;
224 }
225
226 if (!\is_array($convmap) || (80000 > \PHP_VERSION_ID && !$convmap)) {
227 return false;
228 }
229
230 if (null !== $encoding && !\is_scalar($encoding)) {
231 trigger_error('mb_encode_numericentity() expects parameter 3 to be string, '.\gettype($s).' given', \E_USER_WARNING);
232
233 return null; // Instead of '' (cf. mb_decode_numericentity).
234 }
235
236 if (null !== $is_hex && !\is_scalar($is_hex)) {
237 trigger_error('mb_encode_numericentity() expects parameter 4 to be boolean, '.\gettype($s).' given', \E_USER_WARNING);
238
239 return null;
240 }
241
242 $s = (string) $s;
243 if ('' === $s) {
244 return '';
245 }
246
247 $encoding = self::getEncoding($encoding);
248
249 if ('UTF-8' === $encoding) {
250 $encoding = null;
251 if (!preg_match('//u', $s)) {
252 $s = @iconv('UTF-8', 'UTF-8//IGNORE', $s);
253 }
254 } else {
255 $s = iconv($encoding, 'UTF-8//IGNORE', $s);
256 }
257
258 static $ulenMask = ["\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4];
259
260 $cnt = floor(\count($convmap) / 4) * 4;
261 $i = 0;
262 $len = \strlen($s);
263 $result = '';
264
265 while ($i < $len) {
266 $ulen = $s[$i] < "\x80" ? 1 : $ulenMask[$s[$i] & "\xF0"];
267 $uchr = substr($s, $i, $ulen);
268 $i += $ulen;
269 $c = self::mb_ord($uchr);
270
271 for ($j = 0; $j < $cnt; $j += 4) {
272 if ($c >= $convmap[$j] && $c <= $convmap[$j + 1]) {
273 $cOffset = ($c + $convmap[$j + 2]) & $convmap[$j + 3];
274 $result .= $is_hex ? sprintf('&#x%X;', $cOffset) : '&#'.$cOffset.';';
275 continue 2;
276 }
277 }
278 $result .= $uchr;
279 }
280
281 if (null === $encoding) {
282 return $result;
283 }
284
285 return iconv('UTF-8', $encoding.'//IGNORE', $result);
286 }
287
288 public static function mb_convert_case($s, $mode, $encoding = null)
289 {
290 $s = (string) $s;
291 if ('' === $s) {
292 return '';
293 }
294
295 $encoding = self::getEncoding($encoding);
296
297 if ('UTF-8' === $encoding) {
298 $encoding = null;
299 if (!preg_match('//u', $s)) {
300 $s = @iconv('UTF-8', 'UTF-8//IGNORE', $s);
301 }
302 } else {
303 $s = iconv($encoding, 'UTF-8//IGNORE', $s);
304 }
305
306 if (\MB_CASE_TITLE == $mode) {
307 static $titleRegexp = null;
308 if (null === $titleRegexp) {
309 $titleRegexp = self::getData('titleCaseRegexp');
310 }
311 $s = preg_replace_callback($titleRegexp, [__CLASS__, 'title_case'], $s);
312 } else {
313 if (\MB_CASE_UPPER == $mode) {
314 static $upper = null;
315 if (null === $upper) {
316 $upper = self::getData('upperCase');
317 }
318 $map = $upper;
319 } else {
320 if (self::MB_CASE_FOLD === $mode) {
321 static $caseFolding = null;
322 if (null === $caseFolding) {
323 $caseFolding = self::getData('caseFolding');
324 }
325 $s = strtr($s, $caseFolding);
326 }
327
328 static $lower = null;
329 if (null === $lower) {
330 $lower = self::getData('lowerCase');
331 }
332 $map = $lower;
333 }
334
335 static $ulenMask = ["\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4];
336
337 $i = 0;
338 $len = \strlen($s);
339
340 while ($i < $len) {
341 $ulen = $s[$i] < "\x80" ? 1 : $ulenMask[$s[$i] & "\xF0"];
342 $uchr = substr($s, $i, $ulen);
343 $i += $ulen;
344
345 if (isset($map[$uchr])) {
346 $uchr = $map[$uchr];
347 $nlen = \strlen($uchr);
348
349 if ($nlen == $ulen) {
350 $nlen = $i;
351 do {
352 $s[--$nlen] = $uchr[--$ulen];
353 } while ($ulen);
354 } else {
355 $s = substr_replace($s, $uchr, $i - $ulen, $ulen);
356 $len += $nlen - $ulen;
357 $i += $nlen - $ulen;
358 }
359 }
360 }
361 }
362
363 if (null === $encoding) {
364 return $s;
365 }
366
367 return iconv('UTF-8', $encoding.'//IGNORE', $s);
368 }
369
370 public static function mb_internal_encoding($encoding = null)
371 {
372 if (null === $encoding) {
373 return self::$internalEncoding;
374 }
375
376 $normalizedEncoding = self::getEncoding($encoding);
377
378 if ('UTF-8' === $normalizedEncoding || false !== @iconv($normalizedEncoding, $normalizedEncoding, ' ')) {
379 self::$internalEncoding = $normalizedEncoding;
380
381 return true;
382 }
383
384 if (80000 > \PHP_VERSION_ID) {
385 return false;
386 }
387
388 throw new \ValueError(sprintf('Argument #1 ($encoding) must be a valid encoding, "%s" given', $encoding));
389 }
390
391 public static function mb_language($lang = null)
392 {
393 if (null === $lang) {
394 return self::$language;
395 }
396
397 switch ($normalizedLang = strtolower($lang)) {
398 case 'uni':
399 case 'neutral':
400 self::$language = $normalizedLang;
401
402 return true;
403 }
404
405 if (80000 > \PHP_VERSION_ID) {
406 return false;
407 }
408
409 throw new \ValueError(sprintf('Argument #1 ($language) must be a valid language, "%s" given', $lang));
410 }
411
412 public static function mb_list_encodings()
413 {
414 return ['UTF-8'];
415 }
416
417 public static function mb_encoding_aliases($encoding)
418 {
419 switch (strtoupper($encoding)) {
420 case 'UTF8':
421 case 'UTF-8':
422 return ['utf8'];
423 }
424
425 return false;
426 }
427
428 public static function mb_check_encoding($var = null, $encoding = null)
429 {
430 if (\PHP_VERSION_ID < 70200 && \is_array($var)) {
431 trigger_error('mb_check_encoding() expects parameter 1 to be string, array given', \E_USER_WARNING);
432
433 return null;
434 }
435
436 if (null === $encoding) {
437 if (null === $var) {
438 return false;
439 }
440 $encoding = self::$internalEncoding;
441 }
442
443 if (!\is_array($var)) {
444 return self::mb_detect_encoding($var, [$encoding]) || false !== @iconv($encoding, $encoding, $var);
445 }
446
447 foreach ($var as $key => $value) {
448 if (!self::mb_check_encoding($key, $encoding)) {
449 return false;
450 }
451 if (!self::mb_check_encoding($value, $encoding)) {
452 return false;
453 }
454 }
455
456 return true;
457 }
458
459 public static function mb_detect_encoding($str, $encodingList = null, $strict = false)
460 {
461 if (null === $encodingList) {
462 $encodingList = self::$encodingList;
463 } else {
464 if (!\is_array($encodingList)) {
465 $encodingList = array_map('trim', explode(',', $encodingList));
466 }
467 $encodingList = array_map('strtoupper', $encodingList);
468 }
469
470 foreach ($encodingList as $enc) {
471 switch ($enc) {
472 case 'ASCII':
473 if (!preg_match('/[\x80-\xFF]/', $str)) {
474 return $enc;
475 }
476 break;
477
478 case 'UTF8':
479 case 'UTF-8':
480 if (preg_match('//u', $str)) {
481 return 'UTF-8';
482 }
483 break;
484
485 default:
486 if (0 === strncmp($enc, 'ISO-8859-', 9)) {
487 return $enc;
488 }
489 }
490 }
491
492 return false;
493 }
494
495 public static function mb_detect_order($encodingList = null)
496 {
497 if (null === $encodingList) {
498 return self::$encodingList;
499 }
500
501 if (!\is_array($encodingList)) {
502 $encodingList = array_map('trim', explode(',', $encodingList));
503 }
504 $encodingList = array_map('strtoupper', $encodingList);
505
506 foreach ($encodingList as $enc) {
507 switch ($enc) {
508 default:
509 if (strncmp($enc, 'ISO-8859-', 9)) {
510 return false;
511 }
512 // no break
513 case 'ASCII':
514 case 'UTF8':
515 case 'UTF-8':
516 }
517 }
518
519 self::$encodingList = $encodingList;
520
521 return true;
522 }
523
524 public static function mb_strlen($s, $encoding = null)
525 {
526 $encoding = self::getEncoding($encoding);
527 if ('CP850' === $encoding || 'ASCII' === $encoding) {
528 return \strlen($s);
529 }
530
531 return @iconv_strlen($s, $encoding);
532 }
533
534 public static function mb_strpos($haystack, $needle, $offset = 0, $encoding = null)
535 {
536 $encoding = self::getEncoding($encoding);
537 if ('CP850' === $encoding || 'ASCII' === $encoding) {
538 return strpos($haystack, $needle, $offset);
539 }
540
541 $needle = (string) $needle;
542 if ('' === $needle) {
543 if (80000 > \PHP_VERSION_ID) {
544 trigger_error(__METHOD__.': Empty delimiter', \E_USER_WARNING);
545
546 return false;
547 }
548
549 return 0;
550 }
551
552 return iconv_strpos($haystack, $needle, $offset, $encoding);
553 }
554
555 public static function mb_strrpos($haystack, $needle, $offset = 0, $encoding = null)
556 {
557 $encoding = self::getEncoding($encoding);
558 if ('CP850' === $encoding || 'ASCII' === $encoding) {
559 return strrpos($haystack, $needle, $offset);
560 }
561
562 if ($offset != (int) $offset) {
563 $offset = 0;
564 } elseif ($offset = (int) $offset) {
565 if ($offset < 0) {
566 if (0 > $offset += self::mb_strlen($needle)) {
567 $haystack = self::mb_substr($haystack, 0, $offset, $encoding);
568 }
569 $offset = 0;
570 } else {
571 $haystack = self::mb_substr($haystack, $offset, 2147483647, $encoding);
572 }
573 }
574
575 $pos = '' !== $needle || 80000 > \PHP_VERSION_ID
576 ? iconv_strrpos($haystack, $needle, $encoding)
577 : self::mb_strlen($haystack, $encoding);
578
579 return false !== $pos ? $offset + $pos : false;
580 }
581
582 public static function mb_str_split($string, $split_length = 1, $encoding = null)
583 {
584 if (null !== $string && !\is_scalar($string) && !(\is_object($string) && method_exists($string, '__toString'))) {
585 trigger_error('mb_str_split() expects parameter 1 to be string, '.\gettype($string).' given', \E_USER_WARNING);
586
587 return null;
588 }
589
590 if (1 > $split_length = (int) $split_length) {
591 if (80000 > \PHP_VERSION_ID) {
592 trigger_error('The length of each segment must be greater than zero', \E_USER_WARNING);
593
594 return false;
595 }
596
597 throw new \ValueError('Argument #2 ($length) must be greater than 0');
598 }
599
600 if (null === $encoding) {
601 $encoding = mb_internal_encoding();
602 }
603
604 if ('UTF-8' === $encoding = self::getEncoding($encoding)) {
605 $rx = '/(';
606 while (65535 < $split_length) {
607 $rx .= '.{65535}';
608 $split_length -= 65535;
609 }
610 $rx .= '.{'.$split_length.'})/us';
611
612 return preg_split($rx, $string, -1, \PREG_SPLIT_DELIM_CAPTURE | \PREG_SPLIT_NO_EMPTY);
613 }
614
615 $result = [];
616 $length = mb_strlen($string, $encoding);
617
618 for ($i = 0; $i < $length; $i += $split_length) {
619 $result[] = mb_substr($string, $i, $split_length, $encoding);
620 }
621
622 return $result;
623 }
624
625 public static function mb_strtolower($s, $encoding = null)
626 {
627 return self::mb_convert_case($s, \MB_CASE_LOWER, $encoding);
628 }
629
630 public static function mb_strtoupper($s, $encoding = null)
631 {
632 return self::mb_convert_case($s, \MB_CASE_UPPER, $encoding);
633 }
634
635 public static function mb_substitute_character($c = null)
636 {
637 if (null === $c) {
638 return 'none';
639 }
640 if (0 === strcasecmp($c, 'none')) {
641 return true;
642 }
643 if (80000 > \PHP_VERSION_ID) {
644 return false;
645 }
646 if (\is_int($c) || 'long' === $c || 'entity' === $c) {
647 return false;
648 }
649
650 throw new \ValueError('Argument #1 ($substitute_character) must be "none", "long", "entity" or a valid codepoint');
651 }
652
653 public static function mb_substr($s, $start, $length = null, $encoding = null)
654 {
655 $encoding = self::getEncoding($encoding);
656 if ('CP850' === $encoding || 'ASCII' === $encoding) {
657 return (string) substr($s, $start, null === $length ? 2147483647 : $length);
658 }
659
660 if ($start < 0) {
661 $start = iconv_strlen($s, $encoding) + $start;
662 if ($start < 0) {
663 $start = 0;
664 }
665 }
666
667 if (null === $length) {
668 $length = 2147483647;
669 } elseif ($length < 0) {
670 $length = iconv_strlen($s, $encoding) + $length - $start;
671 if ($length < 0) {
672 return '';
673 }
674 }
675
676 return (string) iconv_substr($s, $start, $length, $encoding);
677 }
678
679 public static function mb_stripos($haystack, $needle, $offset = 0, $encoding = null)
680 {
681 [$haystack, $needle] = str_replace(self::SIMPLE_CASE_FOLD[0], self::SIMPLE_CASE_FOLD[1], [
682 self::mb_convert_case($haystack, \MB_CASE_LOWER, $encoding),
683 self::mb_convert_case($needle, \MB_CASE_LOWER, $encoding),
684 ]);
685
686 return self::mb_strpos($haystack, $needle, $offset, $encoding);
687 }
688
689 public static function mb_stristr($haystack, $needle, $part = false, $encoding = null)
690 {
691 $pos = self::mb_stripos($haystack, $needle, 0, $encoding);
692
693 return self::getSubpart($pos, $part, $haystack, $encoding);
694 }
695
696 public static function mb_strrchr($haystack, $needle, $part = false, $encoding = null)
697 {
698 $encoding = self::getEncoding($encoding);
699 if ('CP850' === $encoding || 'ASCII' === $encoding) {
700 $pos = strrpos($haystack, $needle);
701 } else {
702 $needle = self::mb_substr($needle, 0, 1, $encoding);
703 $pos = iconv_strrpos($haystack, $needle, $encoding);
704 }
705
706 return self::getSubpart($pos, $part, $haystack, $encoding);
707 }
708
709 public static function mb_strrichr($haystack, $needle, $part = false, $encoding = null)
710 {
711 $needle = self::mb_substr($needle, 0, 1, $encoding);
712 $pos = self::mb_strripos($haystack, $needle, $encoding);
713
714 return self::getSubpart($pos, $part, $haystack, $encoding);
715 }
716
717 public static function mb_strripos($haystack, $needle, $offset = 0, $encoding = null)
718 {
719 $haystack = self::mb_convert_case($haystack, \MB_CASE_LOWER, $encoding);
720 $needle = self::mb_convert_case($needle, \MB_CASE_LOWER, $encoding);
721
722 $haystack = str_replace(self::SIMPLE_CASE_FOLD[0], self::SIMPLE_CASE_FOLD[1], $haystack);
723 $needle = str_replace(self::SIMPLE_CASE_FOLD[0], self::SIMPLE_CASE_FOLD[1], $needle);
724
725 return self::mb_strrpos($haystack, $needle, $offset, $encoding);
726 }
727
728 public static function mb_strstr($haystack, $needle, $part = false, $encoding = null)
729 {
730 $pos = strpos($haystack, $needle);
731 if (false === $pos) {
732 return false;
733 }
734 if ($part) {
735 return substr($haystack, 0, $pos);
736 }
737
738 return substr($haystack, $pos);
739 }
740
741 public static function mb_get_info($type = 'all')
742 {
743 $info = [
744 'internal_encoding' => self::$internalEncoding,
745 'http_output' => 'pass',
746 'http_output_conv_mimetypes' => '^(text/|application/xhtml\+xml)',
747 'func_overload' => 0,
748 'func_overload_list' => 'no overload',
749 'mail_charset' => 'UTF-8',
750 'mail_header_encoding' => 'BASE64',
751 'mail_body_encoding' => 'BASE64',
752 'illegal_chars' => 0,
753 'encoding_translation' => 'Off',
754 'language' => self::$language,
755 'detect_order' => self::$encodingList,
756 'substitute_character' => 'none',
757 'strict_detection' => 'Off',
758 ];
759
760 if ('all' === $type) {
761 return $info;
762 }
763 if (isset($info[$type])) {
764 return $info[$type];
765 }
766
767 return false;
768 }
769
770 public static function mb_http_input($type = '')
771 {
772 return false;
773 }
774
775 public static function mb_http_output($encoding = null)
776 {
777 return null !== $encoding ? 'pass' === $encoding : 'pass';
778 }
779
780 public static function mb_strwidth($s, $encoding = null)
781 {
782 $encoding = self::getEncoding($encoding);
783
784 if ('UTF-8' !== $encoding) {
785 $s = iconv($encoding, 'UTF-8//IGNORE', $s);
786 }
787
788 $s = preg_replace('/[\x{1100}-\x{115F}\x{2329}\x{232A}\x{2E80}-\x{303E}\x{3040}-\x{A4CF}\x{AC00}-\x{D7A3}\x{F900}-\x{FAFF}\x{FE10}-\x{FE19}\x{FE30}-\x{FE6F}\x{FF00}-\x{FF60}\x{FFE0}-\x{FFE6}\x{20000}-\x{2FFFD}\x{30000}-\x{3FFFD}]/u', '', $s, -1, $wide);
789
790 return ($wide << 1) + iconv_strlen($s, 'UTF-8');
791 }
792
793 public static function mb_substr_count($haystack, $needle, $encoding = null)
794 {
795 return substr_count($haystack, $needle);
796 }
797
798 public static function mb_output_handler($contents, $status)
799 {
800 return $contents;
801 }
802
803 public static function mb_chr($code, $encoding = null)
804 {
805 if (0x80 > $code %= 0x200000) {
806 $s = \chr($code);
807 } elseif (0x800 > $code) {
808 $s = \chr(0xC0 | $code >> 6).\chr(0x80 | $code & 0x3F);
809 } elseif (0x10000 > $code) {
810 $s = \chr(0xE0 | $code >> 12).\chr(0x80 | $code >> 6 & 0x3F).\chr(0x80 | $code & 0x3F);
811 } else {
812 $s = \chr(0xF0 | $code >> 18).\chr(0x80 | $code >> 12 & 0x3F).\chr(0x80 | $code >> 6 & 0x3F).\chr(0x80 | $code & 0x3F);
813 }
814
815 if ('UTF-8' !== $encoding = self::getEncoding($encoding)) {
816 $s = mb_convert_encoding($s, $encoding, 'UTF-8');
817 }
818
819 return $s;
820 }
821
822 public static function mb_ord($s, $encoding = null)
823 {
824 if ('UTF-8' !== $encoding = self::getEncoding($encoding)) {
825 $s = mb_convert_encoding($s, 'UTF-8', $encoding);
826 }
827
828 if (1 === \strlen($s)) {
829 return \ord($s);
830 }
831
832 $code = ($s = unpack('C*', substr($s, 0, 4))) ? $s[1] : 0;
833 if (0xF0 <= $code) {
834 return (($code - 0xF0) << 18) + (($s[2] - 0x80) << 12) + (($s[3] - 0x80) << 6) + $s[4] - 0x80;
835 }
836 if (0xE0 <= $code) {
837 return (($code - 0xE0) << 12) + (($s[2] - 0x80) << 6) + $s[3] - 0x80;
838 }
839 if (0xC0 <= $code) {
840 return (($code - 0xC0) << 6) + $s[2] - 0x80;
841 }
842
843 return $code;
844 }
845
846 public static function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = \STR_PAD_RIGHT, ?string $encoding = null): string
847 {
848 if (!\in_array($pad_type, [\STR_PAD_RIGHT, \STR_PAD_LEFT, \STR_PAD_BOTH], true)) {
849 throw new \ValueError('mb_str_pad(): Argument #4 ($pad_type) must be STR_PAD_LEFT, STR_PAD_RIGHT, or STR_PAD_BOTH');
850 }
851
852 if (null === $encoding) {
853 $encoding = self::mb_internal_encoding();
854 } else {
855 self::assertEncoding($encoding, 'mb_str_pad(): Argument #5 ($encoding) must be a valid encoding, "%s" given');
856 }
857
858 if (self::mb_strlen($pad_string, $encoding) <= 0) {
859 throw new \ValueError('mb_str_pad(): Argument #3 ($pad_string) must be a non-empty string');
860 }
861
862 $paddingRequired = $length - self::mb_strlen($string, $encoding);
863
864 if ($paddingRequired < 1) {
865 return $string;
866 }
867
868 switch ($pad_type) {
869 case \STR_PAD_LEFT:
870 return self::mb_substr(str_repeat($pad_string, $paddingRequired), 0, $paddingRequired, $encoding).$string;
871 case \STR_PAD_RIGHT:
872 return $string.self::mb_substr(str_repeat($pad_string, $paddingRequired), 0, $paddingRequired, $encoding);
873 default:
874 $leftPaddingLength = floor($paddingRequired / 2);
875 $rightPaddingLength = $paddingRequired - $leftPaddingLength;
876
877 return self::mb_substr(str_repeat($pad_string, $leftPaddingLength), 0, $leftPaddingLength, $encoding).$string.self::mb_substr(str_repeat($pad_string, $rightPaddingLength), 0, $rightPaddingLength, $encoding);
878 }
879 }
880
881 public static function mb_ucfirst(string $string, ?string $encoding = null): string
882 {
883 if (null === $encoding) {
884 $encoding = self::mb_internal_encoding();
885 } else {
886 self::assertEncoding($encoding, 'mb_ucfirst(): Argument #2 ($encoding) must be a valid encoding, "%s" given');
887 }
888
889 $firstChar = mb_substr($string, 0, 1, $encoding);
890 $firstChar = mb_convert_case($firstChar, \MB_CASE_TITLE, $encoding);
891
892 return $firstChar.mb_substr($string, 1, null, $encoding);
893 }
894
895 public static function mb_lcfirst(string $string, ?string $encoding = null): string
896 {
897 if (null === $encoding) {
898 $encoding = self::mb_internal_encoding();
899 } else {
900 self::assertEncoding($encoding, 'mb_lcfirst(): Argument #2 ($encoding) must be a valid encoding, "%s" given');
901 }
902
903 $firstChar = mb_substr($string, 0, 1, $encoding);
904 $firstChar = mb_convert_case($firstChar, \MB_CASE_LOWER, $encoding);
905
906 return $firstChar.mb_substr($string, 1, null, $encoding);
907 }
908
909 private static function getSubpart($pos, $part, $haystack, $encoding)
910 {
911 if (false === $pos) {
912 return false;
913 }
914 if ($part) {
915 return self::mb_substr($haystack, 0, $pos, $encoding);
916 }
917
918 return self::mb_substr($haystack, $pos, null, $encoding);
919 }
920
921 private static function html_encoding_callback(array $m)
922 {
923 $i = 1;
924 $entities = '';
925 $m = unpack('C*', htmlentities($m[0], \ENT_COMPAT, 'UTF-8'));
926
927 while (isset($m[$i])) {
928 if (0x80 > $m[$i]) {
929 $entities .= \chr($m[$i++]);
930 continue;
931 }
932 if (0xF0 <= $m[$i]) {
933 $c = (($m[$i++] - 0xF0) << 18) + (($m[$i++] - 0x80) << 12) + (($m[$i++] - 0x80) << 6) + $m[$i++] - 0x80;
934 } elseif (0xE0 <= $m[$i]) {
935 $c = (($m[$i++] - 0xE0) << 12) + (($m[$i++] - 0x80) << 6) + $m[$i++] - 0x80;
936 } else {
937 $c = (($m[$i++] - 0xC0) << 6) + $m[$i++] - 0x80;
938 }
939
940 $entities .= '&#'.$c.';';
941 }
942
943 return $entities;
944 }
945
946 private static function title_case(array $s)
947 {
948 return self::mb_convert_case($s[1], \MB_CASE_UPPER, 'UTF-8').self::mb_convert_case($s[2], \MB_CASE_LOWER, 'UTF-8');
949 }
950
951 private static function getData($file)
952 {
953 if (file_exists($file = __DIR__.'/Resources/unidata/'.$file.'.php')) {
954 return require $file;
955 }
956
957 return false;
958 }
959
960 private static function getEncoding($encoding)
961 {
962 if (null === $encoding) {
963 return self::$internalEncoding;
964 }
965
966 if ('UTF-8' === $encoding) {
967 return 'UTF-8';
968 }
969
970 $encoding = strtoupper($encoding);
971
972 if ('8BIT' === $encoding || 'BINARY' === $encoding) {
973 return 'CP850';
974 }
975
976 if ('UTF8' === $encoding) {
977 return 'UTF-8';
978 }
979
980 return $encoding;
981 }
982
983 private static function assertEncoding(string $encoding, string $errorFormat): void
984 {
985 try {
986 $validEncoding = @self::mb_check_encoding('', $encoding);
987 } catch (\ValueError $e) {
988 throw new \ValueError(\sprintf($errorFormat, $encoding));
989 }
990
991 // BC for PHP 7.3 and lower
992 if (!$validEncoding) {
993 throw new \ValueError(\sprintf($errorFormat, $encoding));
994 }
995 }
996}
diff --git a/vendor/symfony/polyfill-mbstring/README.md b/vendor/symfony/polyfill-mbstring/README.md
new file mode 100644
index 0000000..478b40d
--- /dev/null
+++ b/vendor/symfony/polyfill-mbstring/README.md
@@ -0,0 +1,13 @@
1Symfony Polyfill / Mbstring
2===========================
3
4This component provides a partial, native PHP implementation for the
5[Mbstring](https://php.net/mbstring) extension.
6
7More information can be found in the
8[main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md).
9
10License
11=======
12
13This library is released under the [MIT license](LICENSE).
diff --git a/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php b/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php
new file mode 100644
index 0000000..512bba0
--- /dev/null
+++ b/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php
@@ -0,0 +1,119 @@
1<?php
2
3return [
4 'İ' => 'i̇',
5 'µ' => 'μ',
6 'ſ' => 's',
7 'ͅ' => 'ι',
8 'ς' => 'σ',
9 'ϐ' => 'β',
10 'ϑ' => 'θ',
11 'ϕ' => 'φ',
12 'ϖ' => 'π',
13 'ϰ' => 'κ',
14 'ϱ' => 'ρ',
15 'ϵ' => 'ε',
16 'ẛ' => 'ṡ',
17 'ι' => 'ι',
18 'ß' => 'ss',
19 'ʼn' => 'ʼn',
20 'ǰ' => 'ǰ',
21 'ΐ' => 'ΐ',
22 'ΰ' => 'ΰ',
23 'և' => 'եւ',
24 'ẖ' => 'ẖ',
25 'ẗ' => 'ẗ',
26 'ẘ' => 'ẘ',
27 'ẙ' => 'ẙ',
28 'ẚ' => 'aʾ',
29 'ẞ' => 'ss',
30 'ὐ' => 'ὐ',
31 'ὒ' => 'ὒ',
32 'ὔ' => 'ὔ',
33 'ὖ' => 'ὖ',
34 'ᾀ' => 'ἀι',
35 'ᾁ' => 'ἁι',
36 'ᾂ' => 'ἂι',
37 'ᾃ' => 'ἃι',
38 'ᾄ' => 'ἄι',
39 'ᾅ' => 'ἅι',
40 'ᾆ' => 'ἆι',
41 'ᾇ' => 'ἇι',
42 'ᾈ' => 'ἀι',
43 'ᾉ' => 'ἁι',
44 'ᾊ' => 'ἂι',
45 'ᾋ' => 'ἃι',
46 'ᾌ' => 'ἄι',
47 'ᾍ' => 'ἅι',
48 'ᾎ' => 'ἆι',
49 'ᾏ' => 'ἇι',
50 'ᾐ' => 'ἠι',
51 'ᾑ' => 'ἡι',
52 'ᾒ' => 'ἢι',
53 'ᾓ' => 'ἣι',
54 'ᾔ' => 'ἤι',
55 'ᾕ' => 'ἥι',
56 'ᾖ' => 'ἦι',
57 'ᾗ' => 'ἧι',
58 'ᾘ' => 'ἠι',
59 'ᾙ' => 'ἡι',
60 'ᾚ' => 'ἢι',
61 'ᾛ' => 'ἣι',
62 'ᾜ' => 'ἤι',
63 'ᾝ' => 'ἥι',
64 'ᾞ' => 'ἦι',
65 'ᾟ' => 'ἧι',
66 'ᾠ' => 'ὠι',
67 'ᾡ' => 'ὡι',
68 'ᾢ' => 'ὢι',
69 'ᾣ' => 'ὣι',
70 'ᾤ' => 'ὤι',
71 'ᾥ' => 'ὥι',
72 'ᾦ' => 'ὦι',
73 'ᾧ' => 'ὧι',
74 'ᾨ' => 'ὠι',
75 'ᾩ' => 'ὡι',
76 'ᾪ' => 'ὢι',
77 'ᾫ' => 'ὣι',
78 'ᾬ' => 'ὤι',
79 'ᾭ' => 'ὥι',
80 'ᾮ' => 'ὦι',
81 'ᾯ' => 'ὧι',
82 'ᾲ' => 'ὰι',
83 'ᾳ' => 'αι',
84 'ᾴ' => 'άι',
85 'ᾶ' => 'ᾶ',
86 'ᾷ' => 'ᾶι',
87 'ᾼ' => 'αι',
88 'ῂ' => 'ὴι',
89 'ῃ' => 'ηι',
90 'ῄ' => 'ήι',
91 'ῆ' => 'ῆ',
92 'ῇ' => 'ῆι',
93 'ῌ' => 'ηι',
94 'ῒ' => 'ῒ',
95 'ῖ' => 'ῖ',
96 'ῗ' => 'ῗ',
97 'ῢ' => 'ῢ',
98 'ῤ' => 'ῤ',
99 'ῦ' => 'ῦ',
100 'ῧ' => 'ῧ',
101 'ῲ' => 'ὼι',
102 'ῳ' => 'ωι',
103 'ῴ' => 'ώι',
104 'ῶ' => 'ῶ',
105 'ῷ' => 'ῶι',
106 'ῼ' => 'ωι',
107 'ff' => 'ff',
108 'fi' => 'fi',
109 'fl' => 'fl',
110 'ffi' => 'ffi',
111 'ffl' => 'ffl',
112 'ſt' => 'st',
113 'st' => 'st',
114 'ﬓ' => 'մն',
115 'ﬔ' => 'մե',
116 'ﬕ' => 'մի',
117 'ﬖ' => 'վն',
118 'ﬗ' => 'մխ',
119];
diff --git a/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php b/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php
new file mode 100644
index 0000000..fac60b0
--- /dev/null
+++ b/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php
@@ -0,0 +1,1397 @@
1<?php
2
3return array (
4 'A' => 'a',
5 'B' => 'b',
6 'C' => 'c',
7 'D' => 'd',
8 'E' => 'e',
9 'F' => 'f',
10 'G' => 'g',
11 'H' => 'h',
12 'I' => 'i',
13 'J' => 'j',
14 'K' => 'k',
15 'L' => 'l',
16 'M' => 'm',
17 'N' => 'n',
18 'O' => 'o',
19 'P' => 'p',
20 'Q' => 'q',
21 'R' => 'r',
22 'S' => 's',
23 'T' => 't',
24 'U' => 'u',
25 'V' => 'v',
26 'W' => 'w',
27 'X' => 'x',
28 'Y' => 'y',
29 'Z' => 'z',
30 'À' => 'à',
31 'Á' => 'á',
32 'Â' => 'â',
33 'Ã' => 'ã',
34 'Ä' => 'ä',
35 'Å' => 'å',
36 'Æ' => 'æ',
37 'Ç' => 'ç',
38 'È' => 'è',
39 'É' => 'é',
40 'Ê' => 'ê',
41 'Ë' => 'ë',
42 'Ì' => 'ì',
43 'Í' => 'í',
44 'Î' => 'î',
45 'Ï' => 'ï',
46 'Ð' => 'ð',
47 'Ñ' => 'ñ',
48 'Ò' => 'ò',
49 'Ó' => 'ó',
50 'Ô' => 'ô',
51 'Õ' => 'õ',
52 'Ö' => 'ö',
53 'Ø' => 'ø',
54 'Ù' => 'ù',
55 'Ú' => 'ú',
56 'Û' => 'û',
57 'Ü' => 'ü',
58 'Ý' => 'ý',
59 'Þ' => 'þ',
60 'Ā' => 'ā',
61 'Ă' => 'ă',
62 'Ą' => 'ą',
63 'Ć' => 'ć',
64 'Ĉ' => 'ĉ',
65 'Ċ' => 'ċ',
66 'Č' => 'č',
67 'Ď' => 'ď',
68 'Đ' => 'đ',
69 'Ē' => 'ē',
70 'Ĕ' => 'ĕ',
71 'Ė' => 'ė',
72 'Ę' => 'ę',
73 'Ě' => 'ě',
74 'Ĝ' => 'ĝ',
75 'Ğ' => 'ğ',
76 'Ġ' => 'ġ',
77 'Ģ' => 'ģ',
78 'Ĥ' => 'ĥ',
79 'Ħ' => 'ħ',
80 'Ĩ' => 'ĩ',
81 'Ī' => 'ī',
82 'Ĭ' => 'ĭ',
83 'Į' => 'į',
84 'İ' => 'i̇',
85 'IJ' => 'ij',
86 'Ĵ' => 'ĵ',
87 'Ķ' => 'ķ',
88 'Ĺ' => 'ĺ',
89 'Ļ' => 'ļ',
90 'Ľ' => 'ľ',
91 'Ŀ' => 'ŀ',
92 'Ł' => 'ł',
93 'Ń' => 'ń',
94 'Ņ' => 'ņ',
95 'Ň' => 'ň',
96 'Ŋ' => 'ŋ',
97 'Ō' => 'ō',
98 'Ŏ' => 'ŏ',
99 'Ő' => 'ő',
100 'Œ' => 'œ',
101 'Ŕ' => 'ŕ',
102 'Ŗ' => 'ŗ',
103 'Ř' => 'ř',
104 'Ś' => 'ś',
105 'Ŝ' => 'ŝ',
106 'Ş' => 'ş',
107 'Š' => 'š',
108 'Ţ' => 'ţ',
109 'Ť' => 'ť',
110 'Ŧ' => 'ŧ',
111 'Ũ' => 'ũ',
112 'Ū' => 'ū',
113 'Ŭ' => 'ŭ',
114 'Ů' => 'ů',
115 'Ű' => 'ű',
116 'Ų' => 'ų',
117 'Ŵ' => 'ŵ',
118 'Ŷ' => 'ŷ',
119 'Ÿ' => 'ÿ',
120 'Ź' => 'ź',
121 'Ż' => 'ż',
122 'Ž' => 'ž',
123 'Ɓ' => 'ɓ',
124 'Ƃ' => 'ƃ',
125 'Ƅ' => 'ƅ',
126 'Ɔ' => 'ɔ',
127 'Ƈ' => 'ƈ',
128 'Ɖ' => 'ɖ',
129 'Ɗ' => 'ɗ',
130 'Ƌ' => 'ƌ',
131 'Ǝ' => 'ǝ',
132 'Ə' => 'ə',
133 'Ɛ' => 'ɛ',
134 'Ƒ' => 'ƒ',
135 'Ɠ' => 'ɠ',
136 'Ɣ' => 'ɣ',
137 'Ɩ' => 'ɩ',
138 'Ɨ' => 'ɨ',
139 'Ƙ' => 'ƙ',
140 'Ɯ' => 'ɯ',
141 'Ɲ' => 'ɲ',
142 'Ɵ' => 'ɵ',
143 'Ơ' => 'ơ',
144 'Ƣ' => 'ƣ',
145 'Ƥ' => 'ƥ',
146 'Ʀ' => 'ʀ',
147 'Ƨ' => 'ƨ',
148 'Ʃ' => 'ʃ',
149 'Ƭ' => 'ƭ',
150 'Ʈ' => 'ʈ',
151 'Ư' => 'ư',
152 'Ʊ' => 'ʊ',
153 'Ʋ' => 'ʋ',
154 'Ƴ' => 'ƴ',
155 'Ƶ' => 'ƶ',
156 'Ʒ' => 'ʒ',
157 'Ƹ' => 'ƹ',
158 'Ƽ' => 'ƽ',
159 'DŽ' => 'dž',
160 'Dž' => 'dž',
161 'LJ' => 'lj',
162 'Lj' => 'lj',
163 'NJ' => 'nj',
164 'Nj' => 'nj',
165 'Ǎ' => 'ǎ',
166 'Ǐ' => 'ǐ',
167 'Ǒ' => 'ǒ',
168 'Ǔ' => 'ǔ',
169 'Ǖ' => 'ǖ',
170 'Ǘ' => 'ǘ',
171 'Ǚ' => 'ǚ',
172 'Ǜ' => 'ǜ',
173 'Ǟ' => 'ǟ',
174 'Ǡ' => 'ǡ',
175 'Ǣ' => 'ǣ',
176 'Ǥ' => 'ǥ',
177 'Ǧ' => 'ǧ',
178 'Ǩ' => 'ǩ',
179 'Ǫ' => 'ǫ',
180 'Ǭ' => 'ǭ',
181 'Ǯ' => 'ǯ',
182 'DZ' => 'dz',
183 'Dz' => 'dz',
184 'Ǵ' => 'ǵ',
185 'Ƕ' => 'ƕ',
186 'Ƿ' => 'ƿ',
187 'Ǹ' => 'ǹ',
188 'Ǻ' => 'ǻ',
189 'Ǽ' => 'ǽ',
190 'Ǿ' => 'ǿ',
191 'Ȁ' => 'ȁ',
192 'Ȃ' => 'ȃ',
193 'Ȅ' => 'ȅ',
194 'Ȇ' => 'ȇ',
195 'Ȉ' => 'ȉ',
196 'Ȋ' => 'ȋ',
197 'Ȍ' => 'ȍ',
198 'Ȏ' => 'ȏ',
199 'Ȑ' => 'ȑ',
200 'Ȓ' => 'ȓ',
201 'Ȕ' => 'ȕ',
202 'Ȗ' => 'ȗ',
203 'Ș' => 'ș',
204 'Ț' => 'ț',
205 'Ȝ' => 'ȝ',
206 'Ȟ' => 'ȟ',
207 'Ƞ' => 'ƞ',
208 'Ȣ' => 'ȣ',
209 'Ȥ' => 'ȥ',
210 'Ȧ' => 'ȧ',
211 'Ȩ' => 'ȩ',
212 'Ȫ' => 'ȫ',
213 'Ȭ' => 'ȭ',
214 'Ȯ' => 'ȯ',
215 'Ȱ' => 'ȱ',
216 'Ȳ' => 'ȳ',
217 'Ⱥ' => 'ⱥ',
218 'Ȼ' => 'ȼ',
219 'Ƚ' => 'ƚ',
220 'Ⱦ' => 'ⱦ',
221 'Ɂ' => 'ɂ',
222 'Ƀ' => 'ƀ',
223 'Ʉ' => 'ʉ',
224 'Ʌ' => 'ʌ',
225 'Ɇ' => 'ɇ',
226 'Ɉ' => 'ɉ',
227 'Ɋ' => 'ɋ',
228 'Ɍ' => 'ɍ',
229 'Ɏ' => 'ɏ',
230 'Ͱ' => 'ͱ',
231 'Ͳ' => 'ͳ',
232 'Ͷ' => 'ͷ',
233 'Ϳ' => 'ϳ',
234 'Ά' => 'ά',
235 'Έ' => 'έ',
236 'Ή' => 'ή',
237 'Ί' => 'ί',
238 'Ό' => 'ό',
239 'Ύ' => 'ύ',
240 'Ώ' => 'ώ',
241 'Α' => 'α',
242 'Β' => 'β',
243 'Γ' => 'γ',
244 'Δ' => 'δ',
245 'Ε' => 'ε',
246 'Ζ' => 'ζ',
247 'Η' => 'η',
248 'Θ' => 'θ',
249 'Ι' => 'ι',
250 'Κ' => 'κ',
251 'Λ' => 'λ',
252 'Μ' => 'μ',
253 'Ν' => 'ν',
254 'Ξ' => 'ξ',
255 'Ο' => 'ο',
256 'Π' => 'π',
257 'Ρ' => 'ρ',
258 'Σ' => 'σ',
259 'Τ' => 'τ',
260 'Υ' => 'υ',
261 'Φ' => 'φ',
262 'Χ' => 'χ',
263 'Ψ' => 'ψ',
264 'Ω' => 'ω',
265 'Ϊ' => 'ϊ',
266 'Ϋ' => 'ϋ',
267 'Ϗ' => 'ϗ',
268 'Ϙ' => 'ϙ',
269 'Ϛ' => 'ϛ',
270 'Ϝ' => 'ϝ',
271 'Ϟ' => 'ϟ',
272 'Ϡ' => 'ϡ',
273 'Ϣ' => 'ϣ',
274 'Ϥ' => 'ϥ',
275 'Ϧ' => 'ϧ',
276 'Ϩ' => 'ϩ',
277 'Ϫ' => 'ϫ',
278 'Ϭ' => 'ϭ',
279 'Ϯ' => 'ϯ',
280 'ϴ' => 'θ',
281 'Ϸ' => 'ϸ',
282 'Ϲ' => 'ϲ',
283 'Ϻ' => 'ϻ',
284 'Ͻ' => 'ͻ',
285 'Ͼ' => 'ͼ',
286 'Ͽ' => 'ͽ',
287 'Ѐ' => 'ѐ',
288 'Ё' => 'ё',
289 'Ђ' => 'ђ',
290 'Ѓ' => 'ѓ',
291 'Є' => 'є',
292 'Ѕ' => 'ѕ',
293 'І' => 'і',
294 'Ї' => 'ї',
295 'Ј' => 'ј',
296 'Љ' => 'љ',
297 'Њ' => 'њ',
298 'Ћ' => 'ћ',
299 'Ќ' => 'ќ',
300 'Ѝ' => 'ѝ',
301 'Ў' => 'ў',
302 'Џ' => 'џ',
303 'А' => 'а',
304 'Б' => 'б',
305 'В' => 'в',
306 'Г' => 'г',
307 'Д' => 'д',
308 'Е' => 'е',
309 'Ж' => 'ж',
310 'З' => 'з',
311 'И' => 'и',
312 'Й' => 'й',
313 'К' => 'к',
314 'Л' => 'л',
315 'М' => 'м',
316 'Н' => 'н',
317 'О' => 'о',
318 'П' => 'п',
319 'Р' => 'р',
320 'С' => 'с',
321 'Т' => 'т',
322 'У' => 'у',
323 'Ф' => 'ф',
324 'Х' => 'х',
325 'Ц' => 'ц',
326 'Ч' => 'ч',
327 'Ш' => 'ш',
328 'Щ' => 'щ',
329 'Ъ' => 'ъ',
330 'Ы' => 'ы',
331 'Ь' => 'ь',
332 'Э' => 'э',
333 'Ю' => 'ю',
334 'Я' => 'я',
335 'Ѡ' => 'ѡ',
336 'Ѣ' => 'ѣ',
337 'Ѥ' => 'ѥ',
338 'Ѧ' => 'ѧ',
339 'Ѩ' => 'ѩ',
340 'Ѫ' => 'ѫ',
341 'Ѭ' => 'ѭ',
342 'Ѯ' => 'ѯ',
343 'Ѱ' => 'ѱ',
344 'Ѳ' => 'ѳ',
345 'Ѵ' => 'ѵ',
346 'Ѷ' => 'ѷ',
347 'Ѹ' => 'ѹ',
348 'Ѻ' => 'ѻ',
349 'Ѽ' => 'ѽ',
350 'Ѿ' => 'ѿ',
351 'Ҁ' => 'ҁ',
352 'Ҋ' => 'ҋ',
353 'Ҍ' => 'ҍ',
354 'Ҏ' => 'ҏ',
355 'Ґ' => 'ґ',
356 'Ғ' => 'ғ',
357 'Ҕ' => 'ҕ',
358 'Җ' => 'җ',
359 'Ҙ' => 'ҙ',
360 'Қ' => 'қ',
361 'Ҝ' => 'ҝ',
362 'Ҟ' => 'ҟ',
363 'Ҡ' => 'ҡ',
364 'Ң' => 'ң',
365 'Ҥ' => 'ҥ',
366 'Ҧ' => 'ҧ',
367 'Ҩ' => 'ҩ',
368 'Ҫ' => 'ҫ',
369 'Ҭ' => 'ҭ',
370 'Ү' => 'ү',
371 'Ұ' => 'ұ',
372 'Ҳ' => 'ҳ',
373 'Ҵ' => 'ҵ',
374 'Ҷ' => 'ҷ',
375 'Ҹ' => 'ҹ',
376 'Һ' => 'һ',
377 'Ҽ' => 'ҽ',
378 'Ҿ' => 'ҿ',
379 'Ӏ' => 'ӏ',
380 'Ӂ' => 'ӂ',
381 'Ӄ' => 'ӄ',
382 'Ӆ' => 'ӆ',
383 'Ӈ' => 'ӈ',
384 'Ӊ' => 'ӊ',
385 'Ӌ' => 'ӌ',
386 'Ӎ' => 'ӎ',
387 'Ӑ' => 'ӑ',
388 'Ӓ' => 'ӓ',
389 'Ӕ' => 'ӕ',
390 'Ӗ' => 'ӗ',
391 'Ә' => 'ә',
392 'Ӛ' => 'ӛ',
393 'Ӝ' => 'ӝ',
394 'Ӟ' => 'ӟ',
395 'Ӡ' => 'ӡ',
396 'Ӣ' => 'ӣ',
397 'Ӥ' => 'ӥ',
398 'Ӧ' => 'ӧ',
399 'Ө' => 'ө',
400 'Ӫ' => 'ӫ',
401 'Ӭ' => 'ӭ',
402 'Ӯ' => 'ӯ',
403 'Ӱ' => 'ӱ',
404 'Ӳ' => 'ӳ',
405 'Ӵ' => 'ӵ',
406 'Ӷ' => 'ӷ',
407 'Ӹ' => 'ӹ',
408 'Ӻ' => 'ӻ',
409 'Ӽ' => 'ӽ',
410 'Ӿ' => 'ӿ',
411 'Ԁ' => 'ԁ',
412 'Ԃ' => 'ԃ',
413 'Ԅ' => 'ԅ',
414 'Ԇ' => 'ԇ',
415 'Ԉ' => 'ԉ',
416 'Ԋ' => 'ԋ',
417 'Ԍ' => 'ԍ',
418 'Ԏ' => 'ԏ',
419 'Ԑ' => 'ԑ',
420 'Ԓ' => 'ԓ',
421 'Ԕ' => 'ԕ',
422 'Ԗ' => 'ԗ',
423 'Ԙ' => 'ԙ',
424 'Ԛ' => 'ԛ',
425 'Ԝ' => 'ԝ',
426 'Ԟ' => 'ԟ',
427 'Ԡ' => 'ԡ',
428 'Ԣ' => 'ԣ',
429 'Ԥ' => 'ԥ',
430 'Ԧ' => 'ԧ',
431 'Ԩ' => 'ԩ',
432 'Ԫ' => 'ԫ',
433 'Ԭ' => 'ԭ',
434 'Ԯ' => 'ԯ',
435 'Ա' => 'ա',
436 'Բ' => 'բ',
437 'Գ' => 'գ',
438 'Դ' => 'դ',
439 'Ե' => 'ե',
440 'Զ' => 'զ',
441 'Է' => 'է',
442 'Ը' => 'ը',
443 'Թ' => 'թ',
444 'Ժ' => 'ժ',
445 'Ի' => 'ի',
446 'Լ' => 'լ',
447 'Խ' => 'խ',
448 'Ծ' => 'ծ',
449 'Կ' => 'կ',
450 'Հ' => 'հ',
451 'Ձ' => 'ձ',
452 'Ղ' => 'ղ',
453 'Ճ' => 'ճ',
454 'Մ' => 'մ',
455 'Յ' => 'յ',
456 'Ն' => 'ն',
457 'Շ' => 'շ',
458 'Ո' => 'ո',
459 'Չ' => 'չ',
460 'Պ' => 'պ',
461 'Ջ' => 'ջ',
462 'Ռ' => 'ռ',
463 'Ս' => 'ս',
464 'Վ' => 'վ',
465 'Տ' => 'տ',
466 'Ր' => 'ր',
467 'Ց' => 'ց',
468 'Ւ' => 'ւ',
469 'Փ' => 'փ',
470 'Ք' => 'ք',
471 'Օ' => 'օ',
472 'Ֆ' => 'ֆ',
473 'Ⴀ' => 'ⴀ',
474 'Ⴁ' => 'ⴁ',
475 'Ⴂ' => 'ⴂ',
476 'Ⴃ' => 'ⴃ',
477 'Ⴄ' => 'ⴄ',
478 'Ⴅ' => 'ⴅ',
479 'Ⴆ' => 'ⴆ',
480 'Ⴇ' => 'ⴇ',
481 'Ⴈ' => 'ⴈ',
482 'Ⴉ' => 'ⴉ',
483 'Ⴊ' => 'ⴊ',
484 'Ⴋ' => 'ⴋ',
485 'Ⴌ' => 'ⴌ',
486 'Ⴍ' => 'ⴍ',
487 'Ⴎ' => 'ⴎ',
488 'Ⴏ' => 'ⴏ',
489 'Ⴐ' => 'ⴐ',
490 'Ⴑ' => 'ⴑ',
491 'Ⴒ' => 'ⴒ',
492 'Ⴓ' => 'ⴓ',
493 'Ⴔ' => 'ⴔ',
494 'Ⴕ' => 'ⴕ',
495 'Ⴖ' => 'ⴖ',
496 'Ⴗ' => 'ⴗ',
497 'Ⴘ' => 'ⴘ',
498 'Ⴙ' => 'ⴙ',
499 'Ⴚ' => 'ⴚ',
500 'Ⴛ' => 'ⴛ',
501 'Ⴜ' => 'ⴜ',
502 'Ⴝ' => 'ⴝ',
503 'Ⴞ' => 'ⴞ',
504 'Ⴟ' => 'ⴟ',
505 'Ⴠ' => 'ⴠ',
506 'Ⴡ' => 'ⴡ',
507 'Ⴢ' => 'ⴢ',
508 'Ⴣ' => 'ⴣ',
509 'Ⴤ' => 'ⴤ',
510 'Ⴥ' => 'ⴥ',
511 'Ⴧ' => 'ⴧ',
512 'Ⴭ' => 'ⴭ',
513 'Ꭰ' => 'ꭰ',
514 'Ꭱ' => 'ꭱ',
515 'Ꭲ' => 'ꭲ',
516 'Ꭳ' => 'ꭳ',
517 'Ꭴ' => 'ꭴ',
518 'Ꭵ' => 'ꭵ',
519 'Ꭶ' => 'ꭶ',
520 'Ꭷ' => 'ꭷ',
521 'Ꭸ' => 'ꭸ',
522 'Ꭹ' => 'ꭹ',
523 'Ꭺ' => 'ꭺ',
524 'Ꭻ' => 'ꭻ',
525 'Ꭼ' => 'ꭼ',
526 'Ꭽ' => 'ꭽ',
527 'Ꭾ' => 'ꭾ',
528 'Ꭿ' => 'ꭿ',
529 'Ꮀ' => 'ꮀ',
530 'Ꮁ' => 'ꮁ',
531 'Ꮂ' => 'ꮂ',
532 'Ꮃ' => 'ꮃ',
533 'Ꮄ' => 'ꮄ',
534 'Ꮅ' => 'ꮅ',
535 'Ꮆ' => 'ꮆ',
536 'Ꮇ' => 'ꮇ',
537 'Ꮈ' => 'ꮈ',
538 'Ꮉ' => 'ꮉ',
539 'Ꮊ' => 'ꮊ',
540 'Ꮋ' => 'ꮋ',
541 'Ꮌ' => 'ꮌ',
542 'Ꮍ' => 'ꮍ',
543 'Ꮎ' => 'ꮎ',
544 'Ꮏ' => 'ꮏ',
545 'Ꮐ' => 'ꮐ',
546 'Ꮑ' => 'ꮑ',
547 'Ꮒ' => 'ꮒ',
548 'Ꮓ' => 'ꮓ',
549 'Ꮔ' => 'ꮔ',
550 'Ꮕ' => 'ꮕ',
551 'Ꮖ' => 'ꮖ',
552 'Ꮗ' => 'ꮗ',
553 'Ꮘ' => 'ꮘ',
554 'Ꮙ' => 'ꮙ',
555 'Ꮚ' => 'ꮚ',
556 'Ꮛ' => 'ꮛ',
557 'Ꮜ' => 'ꮜ',
558 'Ꮝ' => 'ꮝ',
559 'Ꮞ' => 'ꮞ',
560 'Ꮟ' => 'ꮟ',
561 'Ꮠ' => 'ꮠ',
562 'Ꮡ' => 'ꮡ',
563 'Ꮢ' => 'ꮢ',
564 'Ꮣ' => 'ꮣ',
565 'Ꮤ' => 'ꮤ',
566 'Ꮥ' => 'ꮥ',
567 'Ꮦ' => 'ꮦ',
568 'Ꮧ' => 'ꮧ',
569 'Ꮨ' => 'ꮨ',
570 'Ꮩ' => 'ꮩ',
571 'Ꮪ' => 'ꮪ',
572 'Ꮫ' => 'ꮫ',
573 'Ꮬ' => 'ꮬ',
574 'Ꮭ' => 'ꮭ',
575 'Ꮮ' => 'ꮮ',
576 'Ꮯ' => 'ꮯ',
577 'Ꮰ' => 'ꮰ',
578 'Ꮱ' => 'ꮱ',
579 'Ꮲ' => 'ꮲ',
580 'Ꮳ' => 'ꮳ',
581 'Ꮴ' => 'ꮴ',
582 'Ꮵ' => 'ꮵ',
583 'Ꮶ' => 'ꮶ',
584 'Ꮷ' => 'ꮷ',
585 'Ꮸ' => 'ꮸ',
586 'Ꮹ' => 'ꮹ',
587 'Ꮺ' => 'ꮺ',
588 'Ꮻ' => 'ꮻ',
589 'Ꮼ' => 'ꮼ',
590 'Ꮽ' => 'ꮽ',
591 'Ꮾ' => 'ꮾ',
592 'Ꮿ' => 'ꮿ',
593 'Ᏸ' => 'ᏸ',
594 'Ᏹ' => 'ᏹ',
595 'Ᏺ' => 'ᏺ',
596 'Ᏻ' => 'ᏻ',
597 'Ᏼ' => 'ᏼ',
598 'Ᏽ' => 'ᏽ',
599 'Ა' => 'ა',
600 'Ბ' => 'ბ',
601 'Გ' => 'გ',
602 'Დ' => 'დ',
603 'Ე' => 'ე',
604 'Ვ' => 'ვ',
605 'Ზ' => 'ზ',
606 'Თ' => 'თ',
607 'Ი' => 'ი',
608 'Კ' => 'კ',
609 'Ლ' => 'ლ',
610 'Მ' => 'მ',
611 'Ნ' => 'ნ',
612 'Ო' => 'ო',
613 'Პ' => 'პ',
614 'Ჟ' => 'ჟ',
615 'Რ' => 'რ',
616 'Ს' => 'ს',
617 'Ტ' => 'ტ',
618 'Უ' => 'უ',
619 'Ფ' => 'ფ',
620 'Ქ' => 'ქ',
621 'Ღ' => 'ღ',
622 'Ყ' => 'ყ',
623 'Შ' => 'შ',
624 'Ჩ' => 'ჩ',
625 'Ც' => 'ც',
626 'Ძ' => 'ძ',
627 'Წ' => 'წ',
628 'Ჭ' => 'ჭ',
629 'Ხ' => 'ხ',
630 'Ჯ' => 'ჯ',
631 'Ჰ' => 'ჰ',
632 'Ჱ' => 'ჱ',
633 'Ჲ' => 'ჲ',
634 'Ჳ' => 'ჳ',
635 'Ჴ' => 'ჴ',
636 'Ჵ' => 'ჵ',
637 'Ჶ' => 'ჶ',
638 'Ჷ' => 'ჷ',
639 'Ჸ' => 'ჸ',
640 'Ჹ' => 'ჹ',
641 'Ჺ' => 'ჺ',
642 'Ჽ' => 'ჽ',
643 'Ჾ' => 'ჾ',
644 'Ჿ' => 'ჿ',
645 'Ḁ' => 'ḁ',
646 'Ḃ' => 'ḃ',
647 'Ḅ' => 'ḅ',
648 'Ḇ' => 'ḇ',
649 'Ḉ' => 'ḉ',
650 'Ḋ' => 'ḋ',
651 'Ḍ' => 'ḍ',
652 'Ḏ' => 'ḏ',
653 'Ḑ' => 'ḑ',
654 'Ḓ' => 'ḓ',
655 'Ḕ' => 'ḕ',
656 'Ḗ' => 'ḗ',
657 'Ḙ' => 'ḙ',
658 'Ḛ' => 'ḛ',
659 'Ḝ' => 'ḝ',
660 'Ḟ' => 'ḟ',
661 'Ḡ' => 'ḡ',
662 'Ḣ' => 'ḣ',
663 'Ḥ' => 'ḥ',
664 'Ḧ' => 'ḧ',
665 'Ḩ' => 'ḩ',
666 'Ḫ' => 'ḫ',
667 'Ḭ' => 'ḭ',
668 'Ḯ' => 'ḯ',
669 'Ḱ' => 'ḱ',
670 'Ḳ' => 'ḳ',
671 'Ḵ' => 'ḵ',
672 'Ḷ' => 'ḷ',
673 'Ḹ' => 'ḹ',
674 'Ḻ' => 'ḻ',
675 'Ḽ' => 'ḽ',
676 'Ḿ' => 'ḿ',
677 'Ṁ' => 'ṁ',
678 'Ṃ' => 'ṃ',
679 'Ṅ' => 'ṅ',
680 'Ṇ' => 'ṇ',
681 'Ṉ' => 'ṉ',
682 'Ṋ' => 'ṋ',
683 'Ṍ' => 'ṍ',
684 'Ṏ' => 'ṏ',
685 'Ṑ' => 'ṑ',
686 'Ṓ' => 'ṓ',
687 'Ṕ' => 'ṕ',
688 'Ṗ' => 'ṗ',
689 'Ṙ' => 'ṙ',
690 'Ṛ' => 'ṛ',
691 'Ṝ' => 'ṝ',
692 'Ṟ' => 'ṟ',
693 'Ṡ' => 'ṡ',
694 'Ṣ' => 'ṣ',
695 'Ṥ' => 'ṥ',
696 'Ṧ' => 'ṧ',
697 'Ṩ' => 'ṩ',
698 'Ṫ' => 'ṫ',
699 'Ṭ' => 'ṭ',
700 'Ṯ' => 'ṯ',
701 'Ṱ' => 'ṱ',
702 'Ṳ' => 'ṳ',
703 'Ṵ' => 'ṵ',
704 'Ṷ' => 'ṷ',
705 'Ṹ' => 'ṹ',
706 'Ṻ' => 'ṻ',
707 'Ṽ' => 'ṽ',
708 'Ṿ' => 'ṿ',
709 'Ẁ' => 'ẁ',
710 'Ẃ' => 'ẃ',
711 'Ẅ' => 'ẅ',
712 'Ẇ' => 'ẇ',
713 'Ẉ' => 'ẉ',
714 'Ẋ' => 'ẋ',
715 'Ẍ' => 'ẍ',
716 'Ẏ' => 'ẏ',
717 'Ẑ' => 'ẑ',
718 'Ẓ' => 'ẓ',
719 'Ẕ' => 'ẕ',
720 'ẞ' => 'ß',
721 'Ạ' => 'ạ',
722 'Ả' => 'ả',
723 'Ấ' => 'ấ',
724 'Ầ' => 'ầ',
725 'Ẩ' => 'ẩ',
726 'Ẫ' => 'ẫ',
727 'Ậ' => 'ậ',
728 'Ắ' => 'ắ',
729 'Ằ' => 'ằ',
730 'Ẳ' => 'ẳ',
731 'Ẵ' => 'ẵ',
732 'Ặ' => 'ặ',
733 'Ẹ' => 'ẹ',
734 'Ẻ' => 'ẻ',
735 'Ẽ' => 'ẽ',
736 'Ế' => 'ế',
737 'Ề' => 'ề',
738 'Ể' => 'ể',
739 'Ễ' => 'ễ',
740 'Ệ' => 'ệ',
741 'Ỉ' => 'ỉ',
742 'Ị' => 'ị',
743 'Ọ' => 'ọ',
744 'Ỏ' => 'ỏ',
745 'Ố' => 'ố',
746 'Ồ' => 'ồ',
747 'Ổ' => 'ổ',
748 'Ỗ' => 'ỗ',
749 'Ộ' => 'ộ',
750 'Ớ' => 'ớ',
751 'Ờ' => 'ờ',
752 'Ở' => 'ở',
753 'Ỡ' => 'ỡ',
754 'Ợ' => 'ợ',
755 'Ụ' => 'ụ',
756 'Ủ' => 'ủ',
757 'Ứ' => 'ứ',
758 'Ừ' => 'ừ',
759 'Ử' => 'ử',
760 'Ữ' => 'ữ',
761 'Ự' => 'ự',
762 'Ỳ' => 'ỳ',
763 'Ỵ' => 'ỵ',
764 'Ỷ' => 'ỷ',
765 'Ỹ' => 'ỹ',
766 'Ỻ' => 'ỻ',
767 'Ỽ' => 'ỽ',
768 'Ỿ' => 'ỿ',
769 'Ἀ' => 'ἀ',
770 'Ἁ' => 'ἁ',
771 'Ἂ' => 'ἂ',
772 'Ἃ' => 'ἃ',
773 'Ἄ' => 'ἄ',
774 'Ἅ' => 'ἅ',
775 'Ἆ' => 'ἆ',
776 'Ἇ' => 'ἇ',
777 'Ἐ' => 'ἐ',
778 'Ἑ' => 'ἑ',
779 'Ἒ' => 'ἒ',
780 'Ἓ' => 'ἓ',
781 'Ἔ' => 'ἔ',
782 'Ἕ' => 'ἕ',
783 'Ἠ' => 'ἠ',
784 'Ἡ' => 'ἡ',
785 'Ἢ' => 'ἢ',
786 'Ἣ' => 'ἣ',
787 'Ἤ' => 'ἤ',
788 'Ἥ' => 'ἥ',
789 'Ἦ' => 'ἦ',
790 'Ἧ' => 'ἧ',
791 'Ἰ' => 'ἰ',
792 'Ἱ' => 'ἱ',
793 'Ἲ' => 'ἲ',
794 'Ἳ' => 'ἳ',
795 'Ἴ' => 'ἴ',
796 'Ἵ' => 'ἵ',
797 'Ἶ' => 'ἶ',
798 'Ἷ' => 'ἷ',
799 'Ὀ' => 'ὀ',
800 'Ὁ' => 'ὁ',
801 'Ὂ' => 'ὂ',
802 'Ὃ' => 'ὃ',
803 'Ὄ' => 'ὄ',
804 'Ὅ' => 'ὅ',
805 'Ὑ' => 'ὑ',
806 'Ὓ' => 'ὓ',
807 'Ὕ' => 'ὕ',
808 'Ὗ' => 'ὗ',
809 'Ὠ' => 'ὠ',
810 'Ὡ' => 'ὡ',
811 'Ὢ' => 'ὢ',
812 'Ὣ' => 'ὣ',
813 'Ὤ' => 'ὤ',
814 'Ὥ' => 'ὥ',
815 'Ὦ' => 'ὦ',
816 'Ὧ' => 'ὧ',
817 'ᾈ' => 'ᾀ',
818 'ᾉ' => 'ᾁ',
819 'ᾊ' => 'ᾂ',
820 'ᾋ' => 'ᾃ',
821 'ᾌ' => 'ᾄ',
822 'ᾍ' => 'ᾅ',
823 'ᾎ' => 'ᾆ',
824 'ᾏ' => 'ᾇ',
825 'ᾘ' => 'ᾐ',
826 'ᾙ' => 'ᾑ',
827 'ᾚ' => 'ᾒ',
828 'ᾛ' => 'ᾓ',
829 'ᾜ' => 'ᾔ',
830 'ᾝ' => 'ᾕ',
831 'ᾞ' => 'ᾖ',
832 'ᾟ' => 'ᾗ',
833 'ᾨ' => 'ᾠ',
834 'ᾩ' => 'ᾡ',
835 'ᾪ' => 'ᾢ',
836 'ᾫ' => 'ᾣ',
837 'ᾬ' => 'ᾤ',
838 'ᾭ' => 'ᾥ',
839 'ᾮ' => 'ᾦ',
840 'ᾯ' => 'ᾧ',
841 'Ᾰ' => 'ᾰ',
842 'Ᾱ' => 'ᾱ',
843 'Ὰ' => 'ὰ',
844 'Ά' => 'ά',
845 'ᾼ' => 'ᾳ',
846 'Ὲ' => 'ὲ',
847 'Έ' => 'έ',
848 'Ὴ' => 'ὴ',
849 'Ή' => 'ή',
850 'ῌ' => 'ῃ',
851 'Ῐ' => 'ῐ',
852 'Ῑ' => 'ῑ',
853 'Ὶ' => 'ὶ',
854 'Ί' => 'ί',
855 'Ῠ' => 'ῠ',
856 'Ῡ' => 'ῡ',
857 'Ὺ' => 'ὺ',
858 'Ύ' => 'ύ',
859 'Ῥ' => 'ῥ',
860 'Ὸ' => 'ὸ',
861 'Ό' => 'ό',
862 'Ὼ' => 'ὼ',
863 'Ώ' => 'ώ',
864 'ῼ' => 'ῳ',
865 'Ω' => 'ω',
866 'K' => 'k',
867 'Å' => 'å',
868 'Ⅎ' => 'ⅎ',
869 'Ⅰ' => 'ⅰ',
870 'Ⅱ' => 'ⅱ',
871 'Ⅲ' => 'ⅲ',
872 'Ⅳ' => 'ⅳ',
873 'Ⅴ' => 'ⅴ',
874 'Ⅵ' => 'ⅵ',
875 'Ⅶ' => 'ⅶ',
876 'Ⅷ' => 'ⅷ',
877 'Ⅸ' => 'ⅸ',
878 'Ⅹ' => 'ⅹ',
879 'Ⅺ' => 'ⅺ',
880 'Ⅻ' => 'ⅻ',
881 'Ⅼ' => 'ⅼ',
882 'Ⅽ' => 'ⅽ',
883 'Ⅾ' => 'ⅾ',
884 'Ⅿ' => 'ⅿ',
885 'Ↄ' => 'ↄ',
886 'Ⓐ' => 'ⓐ',
887 'Ⓑ' => 'ⓑ',
888 'Ⓒ' => 'ⓒ',
889 'Ⓓ' => 'ⓓ',
890 'Ⓔ' => 'ⓔ',
891 'Ⓕ' => 'ⓕ',
892 'Ⓖ' => 'ⓖ',
893 'Ⓗ' => 'ⓗ',
894 'Ⓘ' => 'ⓘ',
895 'Ⓙ' => 'ⓙ',
896 'Ⓚ' => 'ⓚ',
897 'Ⓛ' => 'ⓛ',
898 'Ⓜ' => 'ⓜ',
899 'Ⓝ' => 'ⓝ',
900 'Ⓞ' => 'ⓞ',
901 'Ⓟ' => 'ⓟ',
902 'Ⓠ' => 'ⓠ',
903 'Ⓡ' => 'ⓡ',
904 'Ⓢ' => 'ⓢ',
905 'Ⓣ' => 'ⓣ',
906 'Ⓤ' => 'ⓤ',
907 'Ⓥ' => 'ⓥ',
908 'Ⓦ' => 'ⓦ',
909 'Ⓧ' => 'ⓧ',
910 'Ⓨ' => 'ⓨ',
911 'Ⓩ' => 'ⓩ',
912 'Ⰰ' => 'ⰰ',
913 'Ⰱ' => 'ⰱ',
914 'Ⰲ' => 'ⰲ',
915 'Ⰳ' => 'ⰳ',
916 'Ⰴ' => 'ⰴ',
917 'Ⰵ' => 'ⰵ',
918 'Ⰶ' => 'ⰶ',
919 'Ⰷ' => 'ⰷ',
920 'Ⰸ' => 'ⰸ',
921 'Ⰹ' => 'ⰹ',
922 'Ⰺ' => 'ⰺ',
923 'Ⰻ' => 'ⰻ',
924 'Ⰼ' => 'ⰼ',
925 'Ⰽ' => 'ⰽ',
926 'Ⰾ' => 'ⰾ',
927 'Ⰿ' => 'ⰿ',
928 'Ⱀ' => 'ⱀ',
929 'Ⱁ' => 'ⱁ',
930 'Ⱂ' => 'ⱂ',
931 'Ⱃ' => 'ⱃ',
932 'Ⱄ' => 'ⱄ',
933 'Ⱅ' => 'ⱅ',
934 'Ⱆ' => 'ⱆ',
935 'Ⱇ' => 'ⱇ',
936 'Ⱈ' => 'ⱈ',
937 'Ⱉ' => 'ⱉ',
938 'Ⱊ' => 'ⱊ',
939 'Ⱋ' => 'ⱋ',
940 'Ⱌ' => 'ⱌ',
941 'Ⱍ' => 'ⱍ',
942 'Ⱎ' => 'ⱎ',
943 'Ⱏ' => 'ⱏ',
944 'Ⱐ' => 'ⱐ',
945 'Ⱑ' => 'ⱑ',
946 'Ⱒ' => 'ⱒ',
947 'Ⱓ' => 'ⱓ',
948 'Ⱔ' => 'ⱔ',
949 'Ⱕ' => 'ⱕ',
950 'Ⱖ' => 'ⱖ',
951 'Ⱗ' => 'ⱗ',
952 'Ⱘ' => 'ⱘ',
953 'Ⱙ' => 'ⱙ',
954 'Ⱚ' => 'ⱚ',
955 'Ⱛ' => 'ⱛ',
956 'Ⱜ' => 'ⱜ',
957 'Ⱝ' => 'ⱝ',
958 'Ⱞ' => 'ⱞ',
959 'Ⱡ' => 'ⱡ',
960 'Ɫ' => 'ɫ',
961 'Ᵽ' => 'ᵽ',
962 'Ɽ' => 'ɽ',
963 'Ⱨ' => 'ⱨ',
964 'Ⱪ' => 'ⱪ',
965 'Ⱬ' => 'ⱬ',
966 'Ɑ' => 'ɑ',
967 'Ɱ' => 'ɱ',
968 'Ɐ' => 'ɐ',
969 'Ɒ' => 'ɒ',
970 'Ⱳ' => 'ⱳ',
971 'Ⱶ' => 'ⱶ',
972 'Ȿ' => 'ȿ',
973 'Ɀ' => 'ɀ',
974 'Ⲁ' => 'ⲁ',
975 'Ⲃ' => 'ⲃ',
976 'Ⲅ' => 'ⲅ',
977 'Ⲇ' => 'ⲇ',
978 'Ⲉ' => 'ⲉ',
979 'Ⲋ' => 'ⲋ',
980 'Ⲍ' => 'ⲍ',
981 'Ⲏ' => 'ⲏ',
982 'Ⲑ' => 'ⲑ',
983 'Ⲓ' => 'ⲓ',
984 'Ⲕ' => 'ⲕ',
985 'Ⲗ' => 'ⲗ',
986 'Ⲙ' => 'ⲙ',
987 'Ⲛ' => 'ⲛ',
988 'Ⲝ' => 'ⲝ',
989 'Ⲟ' => 'ⲟ',
990 'Ⲡ' => 'ⲡ',
991 'Ⲣ' => 'ⲣ',
992 'Ⲥ' => 'ⲥ',
993 'Ⲧ' => 'ⲧ',
994 'Ⲩ' => 'ⲩ',
995 'Ⲫ' => 'ⲫ',
996 'Ⲭ' => 'ⲭ',
997 'Ⲯ' => 'ⲯ',
998 'Ⲱ' => 'ⲱ',
999 'Ⲳ' => 'ⲳ',
1000 'Ⲵ' => 'ⲵ',
1001 'Ⲷ' => 'ⲷ',
1002 'Ⲹ' => 'ⲹ',
1003 'Ⲻ' => 'ⲻ',
1004 'Ⲽ' => 'ⲽ',
1005 'Ⲿ' => 'ⲿ',
1006 'Ⳁ' => 'ⳁ',
1007 'Ⳃ' => 'ⳃ',
1008 'Ⳅ' => 'ⳅ',
1009 'Ⳇ' => 'ⳇ',
1010 'Ⳉ' => 'ⳉ',
1011 'Ⳋ' => 'ⳋ',
1012 'Ⳍ' => 'ⳍ',
1013 'Ⳏ' => 'ⳏ',
1014 'Ⳑ' => 'ⳑ',
1015 'Ⳓ' => 'ⳓ',
1016 'Ⳕ' => 'ⳕ',
1017 'Ⳗ' => 'ⳗ',
1018 'Ⳙ' => 'ⳙ',
1019 'Ⳛ' => 'ⳛ',
1020 'Ⳝ' => 'ⳝ',
1021 'Ⳟ' => 'ⳟ',
1022 'Ⳡ' => 'ⳡ',
1023 'Ⳣ' => 'ⳣ',
1024 'Ⳬ' => 'ⳬ',
1025 'Ⳮ' => 'ⳮ',
1026 'Ⳳ' => 'ⳳ',
1027 'Ꙁ' => 'ꙁ',
1028 'Ꙃ' => 'ꙃ',
1029 'Ꙅ' => 'ꙅ',
1030 'Ꙇ' => 'ꙇ',
1031 'Ꙉ' => 'ꙉ',
1032 'Ꙋ' => 'ꙋ',
1033 'Ꙍ' => 'ꙍ',
1034 'Ꙏ' => 'ꙏ',
1035 'Ꙑ' => 'ꙑ',
1036 'Ꙓ' => 'ꙓ',
1037 'Ꙕ' => 'ꙕ',
1038 'Ꙗ' => 'ꙗ',
1039 'Ꙙ' => 'ꙙ',
1040 'Ꙛ' => 'ꙛ',
1041 'Ꙝ' => 'ꙝ',
1042 'Ꙟ' => 'ꙟ',
1043 'Ꙡ' => 'ꙡ',
1044 'Ꙣ' => 'ꙣ',
1045 'Ꙥ' => 'ꙥ',
1046 'Ꙧ' => 'ꙧ',
1047 'Ꙩ' => 'ꙩ',
1048 'Ꙫ' => 'ꙫ',
1049 'Ꙭ' => 'ꙭ',
1050 'Ꚁ' => 'ꚁ',
1051 'Ꚃ' => 'ꚃ',
1052 'Ꚅ' => 'ꚅ',
1053 'Ꚇ' => 'ꚇ',
1054 'Ꚉ' => 'ꚉ',
1055 'Ꚋ' => 'ꚋ',
1056 'Ꚍ' => 'ꚍ',
1057 'Ꚏ' => 'ꚏ',
1058 'Ꚑ' => 'ꚑ',
1059 'Ꚓ' => 'ꚓ',
1060 'Ꚕ' => 'ꚕ',
1061 'Ꚗ' => 'ꚗ',
1062 'Ꚙ' => 'ꚙ',
1063 'Ꚛ' => 'ꚛ',
1064 'Ꜣ' => 'ꜣ',
1065 'Ꜥ' => 'ꜥ',
1066 'Ꜧ' => 'ꜧ',
1067 'Ꜩ' => 'ꜩ',
1068 'Ꜫ' => 'ꜫ',
1069 'Ꜭ' => 'ꜭ',
1070 'Ꜯ' => 'ꜯ',
1071 'Ꜳ' => 'ꜳ',
1072 'Ꜵ' => 'ꜵ',
1073 'Ꜷ' => 'ꜷ',
1074 'Ꜹ' => 'ꜹ',
1075 'Ꜻ' => 'ꜻ',
1076 'Ꜽ' => 'ꜽ',
1077 'Ꜿ' => 'ꜿ',
1078 'Ꝁ' => 'ꝁ',
1079 'Ꝃ' => 'ꝃ',
1080 'Ꝅ' => 'ꝅ',
1081 'Ꝇ' => 'ꝇ',
1082 'Ꝉ' => 'ꝉ',
1083 'Ꝋ' => 'ꝋ',
1084 'Ꝍ' => 'ꝍ',
1085 'Ꝏ' => 'ꝏ',
1086 'Ꝑ' => 'ꝑ',
1087 'Ꝓ' => 'ꝓ',
1088 'Ꝕ' => 'ꝕ',
1089 'Ꝗ' => 'ꝗ',
1090 'Ꝙ' => 'ꝙ',
1091 'Ꝛ' => 'ꝛ',
1092 'Ꝝ' => 'ꝝ',
1093 'Ꝟ' => 'ꝟ',
1094 'Ꝡ' => 'ꝡ',
1095 'Ꝣ' => 'ꝣ',
1096 'Ꝥ' => 'ꝥ',
1097 'Ꝧ' => 'ꝧ',
1098 'Ꝩ' => 'ꝩ',
1099 'Ꝫ' => 'ꝫ',
1100 'Ꝭ' => 'ꝭ',
1101 'Ꝯ' => 'ꝯ',
1102 'Ꝺ' => 'ꝺ',
1103 'Ꝼ' => 'ꝼ',
1104 'Ᵹ' => 'ᵹ',
1105 'Ꝿ' => 'ꝿ',
1106 'Ꞁ' => 'ꞁ',
1107 'Ꞃ' => 'ꞃ',
1108 'Ꞅ' => 'ꞅ',
1109 'Ꞇ' => 'ꞇ',
1110 'Ꞌ' => 'ꞌ',
1111 'Ɥ' => 'ɥ',
1112 'Ꞑ' => 'ꞑ',
1113 'Ꞓ' => 'ꞓ',
1114 'Ꞗ' => 'ꞗ',
1115 'Ꞙ' => 'ꞙ',
1116 'Ꞛ' => 'ꞛ',
1117 'Ꞝ' => 'ꞝ',
1118 'Ꞟ' => 'ꞟ',
1119 'Ꞡ' => 'ꞡ',
1120 'Ꞣ' => 'ꞣ',
1121 'Ꞥ' => 'ꞥ',
1122 'Ꞧ' => 'ꞧ',
1123 'Ꞩ' => 'ꞩ',
1124 'Ɦ' => 'ɦ',
1125 'Ɜ' => 'ɜ',
1126 'Ɡ' => 'ɡ',
1127 'Ɬ' => 'ɬ',
1128 'Ɪ' => 'ɪ',
1129 'Ʞ' => 'ʞ',
1130 'Ʇ' => 'ʇ',
1131 'Ʝ' => 'ʝ',
1132 'Ꭓ' => 'ꭓ',
1133 'Ꞵ' => 'ꞵ',
1134 'Ꞷ' => 'ꞷ',
1135 'Ꞹ' => 'ꞹ',
1136 'Ꞻ' => 'ꞻ',
1137 'Ꞽ' => 'ꞽ',
1138 'Ꞿ' => 'ꞿ',
1139 'Ꟃ' => 'ꟃ',
1140 'Ꞔ' => 'ꞔ',
1141 'Ʂ' => 'ʂ',
1142 'Ᶎ' => 'ᶎ',
1143 'Ꟈ' => 'ꟈ',
1144 'Ꟊ' => 'ꟊ',
1145 'Ꟶ' => 'ꟶ',
1146 'A' => 'a',
1147 'B' => 'b',
1148 'C' => 'c',
1149 'D' => 'd',
1150 'E' => 'e',
1151 'F' => 'f',
1152 'G' => 'g',
1153 'H' => 'h',
1154 'I' => 'i',
1155 'J' => 'j',
1156 'K' => 'k',
1157 'L' => 'l',
1158 'M' => 'm',
1159 'N' => 'n',
1160 'O' => 'o',
1161 'P' => 'p',
1162 'Q' => 'q',
1163 'R' => 'r',
1164 'S' => 's',
1165 'T' => 't',
1166 'U' => 'u',
1167 'V' => 'v',
1168 'W' => 'w',
1169 'X' => 'x',
1170 'Y' => 'y',
1171 'Z' => 'z',
1172 '𐐀' => '𐐨',
1173 '𐐁' => '𐐩',
1174 '𐐂' => '𐐪',
1175 '𐐃' => '𐐫',
1176 '𐐄' => '𐐬',
1177 '𐐅' => '𐐭',
1178 '𐐆' => '𐐮',
1179 '𐐇' => '𐐯',
1180 '𐐈' => '𐐰',
1181 '𐐉' => '𐐱',
1182 '𐐊' => '𐐲',
1183 '𐐋' => '𐐳',
1184 '𐐌' => '𐐴',
1185 '𐐍' => '𐐵',
1186 '𐐎' => '𐐶',
1187 '𐐏' => '𐐷',
1188 '𐐐' => '𐐸',
1189 '𐐑' => '𐐹',
1190 '𐐒' => '𐐺',
1191 '𐐓' => '𐐻',
1192 '𐐔' => '𐐼',
1193 '𐐕' => '𐐽',
1194 '𐐖' => '𐐾',
1195 '𐐗' => '𐐿',
1196 '𐐘' => '𐑀',
1197 '𐐙' => '𐑁',
1198 '𐐚' => '𐑂',
1199 '𐐛' => '𐑃',
1200 '𐐜' => '𐑄',
1201 '𐐝' => '𐑅',
1202 '𐐞' => '𐑆',
1203 '𐐟' => '𐑇',
1204 '𐐠' => '𐑈',
1205 '𐐡' => '𐑉',
1206 '𐐢' => '𐑊',
1207 '𐐣' => '𐑋',
1208 '𐐤' => '𐑌',
1209 '𐐥' => '𐑍',
1210 '𐐦' => '𐑎',
1211 '𐐧' => '𐑏',
1212 '𐒰' => '𐓘',
1213 '𐒱' => '𐓙',
1214 '𐒲' => '𐓚',
1215 '𐒳' => '𐓛',
1216 '𐒴' => '𐓜',
1217 '𐒵' => '𐓝',
1218 '𐒶' => '𐓞',
1219 '𐒷' => '𐓟',
1220 '𐒸' => '𐓠',
1221 '𐒹' => '𐓡',
1222 '𐒺' => '𐓢',
1223 '𐒻' => '𐓣',
1224 '𐒼' => '𐓤',
1225 '𐒽' => '𐓥',
1226 '𐒾' => '𐓦',
1227 '𐒿' => '𐓧',
1228 '𐓀' => '𐓨',
1229 '𐓁' => '𐓩',
1230 '𐓂' => '𐓪',
1231 '𐓃' => '𐓫',
1232 '𐓄' => '𐓬',
1233 '𐓅' => '𐓭',
1234 '𐓆' => '𐓮',
1235 '𐓇' => '𐓯',
1236 '𐓈' => '𐓰',
1237 '𐓉' => '𐓱',
1238 '𐓊' => '𐓲',
1239 '𐓋' => '𐓳',
1240 '𐓌' => '𐓴',
1241 '𐓍' => '𐓵',
1242 '𐓎' => '𐓶',
1243 '𐓏' => '𐓷',
1244 '𐓐' => '𐓸',
1245 '𐓑' => '𐓹',
1246 '𐓒' => '𐓺',
1247 '𐓓' => '𐓻',
1248 '𐲀' => '𐳀',
1249 '𐲁' => '𐳁',
1250 '𐲂' => '𐳂',
1251 '𐲃' => '𐳃',
1252 '𐲄' => '𐳄',
1253 '𐲅' => '𐳅',
1254 '𐲆' => '𐳆',
1255 '𐲇' => '𐳇',
1256 '𐲈' => '𐳈',
1257 '𐲉' => '𐳉',
1258 '𐲊' => '𐳊',
1259 '𐲋' => '𐳋',
1260 '𐲌' => '𐳌',
1261 '𐲍' => '𐳍',
1262 '𐲎' => '𐳎',
1263 '𐲏' => '𐳏',
1264 '𐲐' => '𐳐',
1265 '𐲑' => '𐳑',
1266 '𐲒' => '𐳒',
1267 '𐲓' => '𐳓',
1268 '𐲔' => '𐳔',
1269 '𐲕' => '𐳕',
1270 '𐲖' => '𐳖',
1271 '𐲗' => '𐳗',
1272 '𐲘' => '𐳘',
1273 '𐲙' => '𐳙',
1274 '𐲚' => '𐳚',
1275 '𐲛' => '𐳛',
1276 '𐲜' => '𐳜',
1277 '𐲝' => '𐳝',
1278 '𐲞' => '𐳞',
1279 '𐲟' => '𐳟',
1280 '𐲠' => '𐳠',
1281 '𐲡' => '𐳡',
1282 '𐲢' => '𐳢',
1283 '𐲣' => '𐳣',
1284 '𐲤' => '𐳤',
1285 '𐲥' => '𐳥',
1286 '𐲦' => '𐳦',
1287 '𐲧' => '𐳧',
1288 '𐲨' => '𐳨',
1289 '𐲩' => '𐳩',
1290 '𐲪' => '𐳪',
1291 '𐲫' => '𐳫',
1292 '𐲬' => '𐳬',
1293 '𐲭' => '𐳭',
1294 '𐲮' => '𐳮',
1295 '𐲯' => '𐳯',
1296 '𐲰' => '𐳰',
1297 '𐲱' => '𐳱',
1298 '𐲲' => '𐳲',
1299 '𑢠' => '𑣀',
1300 '𑢡' => '𑣁',
1301 '𑢢' => '𑣂',
1302 '𑢣' => '𑣃',
1303 '𑢤' => '𑣄',
1304 '𑢥' => '𑣅',
1305 '𑢦' => '𑣆',
1306 '𑢧' => '𑣇',
1307 '𑢨' => '𑣈',
1308 '𑢩' => '𑣉',
1309 '𑢪' => '𑣊',
1310 '𑢫' => '𑣋',
1311 '𑢬' => '𑣌',
1312 '𑢭' => '𑣍',
1313 '𑢮' => '𑣎',
1314 '𑢯' => '𑣏',
1315 '𑢰' => '𑣐',
1316 '𑢱' => '𑣑',
1317 '𑢲' => '𑣒',
1318 '𑢳' => '𑣓',
1319 '𑢴' => '𑣔',
1320 '𑢵' => '𑣕',
1321 '𑢶' => '𑣖',
1322 '𑢷' => '𑣗',
1323 '𑢸' => '𑣘',
1324 '𑢹' => '𑣙',
1325 '𑢺' => '𑣚',
1326 '𑢻' => '𑣛',
1327 '𑢼' => '𑣜',
1328 '𑢽' => '𑣝',
1329 '𑢾' => '𑣞',
1330 '𑢿' => '𑣟',
1331 '𖹀' => '𖹠',
1332 '𖹁' => '𖹡',
1333 '𖹂' => '𖹢',
1334 '𖹃' => '𖹣',
1335 '𖹄' => '𖹤',
1336 '𖹅' => '𖹥',
1337 '𖹆' => '𖹦',
1338 '𖹇' => '𖹧',
1339 '𖹈' => '𖹨',
1340 '𖹉' => '𖹩',
1341 '𖹊' => '𖹪',
1342 '𖹋' => '𖹫',
1343 '𖹌' => '𖹬',
1344 '𖹍' => '𖹭',
1345 '𖹎' => '𖹮',
1346 '𖹏' => '𖹯',
1347 '𖹐' => '𖹰',
1348 '𖹑' => '𖹱',
1349 '𖹒' => '𖹲',
1350 '𖹓' => '𖹳',
1351 '𖹔' => '𖹴',
1352 '𖹕' => '𖹵',
1353 '𖹖' => '𖹶',
1354 '𖹗' => '𖹷',
1355 '𖹘' => '𖹸',
1356 '𖹙' => '𖹹',
1357 '𖹚' => '𖹺',
1358 '𖹛' => '𖹻',
1359 '𖹜' => '𖹼',
1360 '𖹝' => '𖹽',
1361 '𖹞' => '𖹾',
1362 '𖹟' => '𖹿',
1363 '𞤀' => '𞤢',
1364 '𞤁' => '𞤣',
1365 '𞤂' => '𞤤',
1366 '𞤃' => '𞤥',
1367 '𞤄' => '𞤦',
1368 '𞤅' => '𞤧',
1369 '𞤆' => '𞤨',
1370 '𞤇' => '𞤩',
1371 '𞤈' => '𞤪',
1372 '𞤉' => '𞤫',
1373 '𞤊' => '𞤬',
1374 '𞤋' => '𞤭',
1375 '𞤌' => '𞤮',
1376 '𞤍' => '𞤯',
1377 '𞤎' => '𞤰',
1378 '𞤏' => '𞤱',
1379 '𞤐' => '𞤲',
1380 '𞤑' => '𞤳',
1381 '𞤒' => '𞤴',
1382 '𞤓' => '𞤵',
1383 '𞤔' => '𞤶',
1384 '𞤕' => '𞤷',
1385 '𞤖' => '𞤸',
1386 '𞤗' => '𞤹',
1387 '𞤘' => '𞤺',
1388 '𞤙' => '𞤻',
1389 '𞤚' => '𞤼',
1390 '𞤛' => '𞤽',
1391 '𞤜' => '𞤾',
1392 '𞤝' => '𞤿',
1393 '𞤞' => '𞥀',
1394 '𞤟' => '𞥁',
1395 '𞤠' => '𞥂',
1396 '𞤡' => '𞥃',
1397);
diff --git a/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php b/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php
new file mode 100644
index 0000000..2a8f6e7
--- /dev/null
+++ b/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php
@@ -0,0 +1,5 @@
1<?php
2
3// from Case_Ignorable in https://unicode.org/Public/UNIDATA/DerivedCoreProperties.txt
4
5return '/(?<![\x{0027}\x{002E}\x{003A}\x{005E}\x{0060}\x{00A8}\x{00AD}\x{00AF}\x{00B4}\x{00B7}\x{00B8}\x{02B0}-\x{02C1}\x{02C2}-\x{02C5}\x{02C6}-\x{02D1}\x{02D2}-\x{02DF}\x{02E0}-\x{02E4}\x{02E5}-\x{02EB}\x{02EC}\x{02ED}\x{02EE}\x{02EF}-\x{02FF}\x{0300}-\x{036F}\x{0374}\x{0375}\x{037A}\x{0384}-\x{0385}\x{0387}\x{0483}-\x{0487}\x{0488}-\x{0489}\x{0559}\x{0591}-\x{05BD}\x{05BF}\x{05C1}-\x{05C2}\x{05C4}-\x{05C5}\x{05C7}\x{05F4}\x{0600}-\x{0605}\x{0610}-\x{061A}\x{061C}\x{0640}\x{064B}-\x{065F}\x{0670}\x{06D6}-\x{06DC}\x{06DD}\x{06DF}-\x{06E4}\x{06E5}-\x{06E6}\x{06E7}-\x{06E8}\x{06EA}-\x{06ED}\x{070F}\x{0711}\x{0730}-\x{074A}\x{07A6}-\x{07B0}\x{07EB}-\x{07F3}\x{07F4}-\x{07F5}\x{07FA}\x{07FD}\x{0816}-\x{0819}\x{081A}\x{081B}-\x{0823}\x{0824}\x{0825}-\x{0827}\x{0828}\x{0829}-\x{082D}\x{0859}-\x{085B}\x{08D3}-\x{08E1}\x{08E2}\x{08E3}-\x{0902}\x{093A}\x{093C}\x{0941}-\x{0948}\x{094D}\x{0951}-\x{0957}\x{0962}-\x{0963}\x{0971}\x{0981}\x{09BC}\x{09C1}-\x{09C4}\x{09CD}\x{09E2}-\x{09E3}\x{09FE}\x{0A01}-\x{0A02}\x{0A3C}\x{0A41}-\x{0A42}\x{0A47}-\x{0A48}\x{0A4B}-\x{0A4D}\x{0A51}\x{0A70}-\x{0A71}\x{0A75}\x{0A81}-\x{0A82}\x{0ABC}\x{0AC1}-\x{0AC5}\x{0AC7}-\x{0AC8}\x{0ACD}\x{0AE2}-\x{0AE3}\x{0AFA}-\x{0AFF}\x{0B01}\x{0B3C}\x{0B3F}\x{0B41}-\x{0B44}\x{0B4D}\x{0B56}\x{0B62}-\x{0B63}\x{0B82}\x{0BC0}\x{0BCD}\x{0C00}\x{0C04}\x{0C3E}-\x{0C40}\x{0C46}-\x{0C48}\x{0C4A}-\x{0C4D}\x{0C55}-\x{0C56}\x{0C62}-\x{0C63}\x{0C81}\x{0CBC}\x{0CBF}\x{0CC6}\x{0CCC}-\x{0CCD}\x{0CE2}-\x{0CE3}\x{0D00}-\x{0D01}\x{0D3B}-\x{0D3C}\x{0D41}-\x{0D44}\x{0D4D}\x{0D62}-\x{0D63}\x{0DCA}\x{0DD2}-\x{0DD4}\x{0DD6}\x{0E31}\x{0E34}-\x{0E3A}\x{0E46}\x{0E47}-\x{0E4E}\x{0EB1}\x{0EB4}-\x{0EB9}\x{0EBB}-\x{0EBC}\x{0EC6}\x{0EC8}-\x{0ECD}\x{0F18}-\x{0F19}\x{0F35}\x{0F37}\x{0F39}\x{0F71}-\x{0F7E}\x{0F80}-\x{0F84}\x{0F86}-\x{0F87}\x{0F8D}-\x{0F97}\x{0F99}-\x{0FBC}\x{0FC6}\x{102D}-\x{1030}\x{1032}-\x{1037}\x{1039}-\x{103A}\x{103D}-\x{103E}\x{1058}-\x{1059}\x{105E}-\x{1060}\x{1071}-\x{1074}\x{1082}\x{1085}-\x{1086}\x{108D}\x{109D}\x{10FC}\x{135D}-\x{135F}\x{1712}-\x{1714}\x{1732}-\x{1734}\x{1752}-\x{1753}\x{1772}-\x{1773}\x{17B4}-\x{17B5}\x{17B7}-\x{17BD}\x{17C6}\x{17C9}-\x{17D3}\x{17D7}\x{17DD}\x{180B}-\x{180D}\x{180E}\x{1843}\x{1885}-\x{1886}\x{18A9}\x{1920}-\x{1922}\x{1927}-\x{1928}\x{1932}\x{1939}-\x{193B}\x{1A17}-\x{1A18}\x{1A1B}\x{1A56}\x{1A58}-\x{1A5E}\x{1A60}\x{1A62}\x{1A65}-\x{1A6C}\x{1A73}-\x{1A7C}\x{1A7F}\x{1AA7}\x{1AB0}-\x{1ABD}\x{1ABE}\x{1B00}-\x{1B03}\x{1B34}\x{1B36}-\x{1B3A}\x{1B3C}\x{1B42}\x{1B6B}-\x{1B73}\x{1B80}-\x{1B81}\x{1BA2}-\x{1BA5}\x{1BA8}-\x{1BA9}\x{1BAB}-\x{1BAD}\x{1BE6}\x{1BE8}-\x{1BE9}\x{1BED}\x{1BEF}-\x{1BF1}\x{1C2C}-\x{1C33}\x{1C36}-\x{1C37}\x{1C78}-\x{1C7D}\x{1CD0}-\x{1CD2}\x{1CD4}-\x{1CE0}\x{1CE2}-\x{1CE8}\x{1CED}\x{1CF4}\x{1CF8}-\x{1CF9}\x{1D2C}-\x{1D6A}\x{1D78}\x{1D9B}-\x{1DBF}\x{1DC0}-\x{1DF9}\x{1DFB}-\x{1DFF}\x{1FBD}\x{1FBF}-\x{1FC1}\x{1FCD}-\x{1FCF}\x{1FDD}-\x{1FDF}\x{1FED}-\x{1FEF}\x{1FFD}-\x{1FFE}\x{200B}-\x{200F}\x{2018}\x{2019}\x{2024}\x{2027}\x{202A}-\x{202E}\x{2060}-\x{2064}\x{2066}-\x{206F}\x{2071}\x{207F}\x{2090}-\x{209C}\x{20D0}-\x{20DC}\x{20DD}-\x{20E0}\x{20E1}\x{20E2}-\x{20E4}\x{20E5}-\x{20F0}\x{2C7C}-\x{2C7D}\x{2CEF}-\x{2CF1}\x{2D6F}\x{2D7F}\x{2DE0}-\x{2DFF}\x{2E2F}\x{3005}\x{302A}-\x{302D}\x{3031}-\x{3035}\x{303B}\x{3099}-\x{309A}\x{309B}-\x{309C}\x{309D}-\x{309E}\x{30FC}-\x{30FE}\x{A015}\x{A4F8}-\x{A4FD}\x{A60C}\x{A66F}\x{A670}-\x{A672}\x{A674}-\x{A67D}\x{A67F}\x{A69C}-\x{A69D}\x{A69E}-\x{A69F}\x{A6F0}-\x{A6F1}\x{A700}-\x{A716}\x{A717}-\x{A71F}\x{A720}-\x{A721}\x{A770}\x{A788}\x{A789}-\x{A78A}\x{A7F8}-\x{A7F9}\x{A802}\x{A806}\x{A80B}\x{A825}-\x{A826}\x{A8C4}-\x{A8C5}\x{A8E0}-\x{A8F1}\x{A8FF}\x{A926}-\x{A92D}\x{A947}-\x{A951}\x{A980}-\x{A982}\x{A9B3}\x{A9B6}-\x{A9B9}\x{A9BC}\x{A9CF}\x{A9E5}\x{A9E6}\x{AA29}-\x{AA2E}\x{AA31}-\x{AA32}\x{AA35}-\x{AA36}\x{AA43}\x{AA4C}\x{AA70}\x{AA7C}\x{AAB0}\x{AAB2}-\x{AAB4}\x{AAB7}-\x{AAB8}\x{AABE}-\x{AABF}\x{AAC1}\x{AADD}\x{AAEC}-\x{AAED}\x{AAF3}-\x{AAF4}\x{AAF6}\x{AB5B}\x{AB5C}-\x{AB5F}\x{ABE5}\x{ABE8}\x{ABED}\x{FB1E}\x{FBB2}-\x{FBC1}\x{FE00}-\x{FE0F}\x{FE13}\x{FE20}-\x{FE2F}\x{FE52}\x{FE55}\x{FEFF}\x{FF07}\x{FF0E}\x{FF1A}\x{FF3E}\x{FF40}\x{FF70}\x{FF9E}-\x{FF9F}\x{FFE3}\x{FFF9}-\x{FFFB}\x{101FD}\x{102E0}\x{10376}-\x{1037A}\x{10A01}-\x{10A03}\x{10A05}-\x{10A06}\x{10A0C}-\x{10A0F}\x{10A38}-\x{10A3A}\x{10A3F}\x{10AE5}-\x{10AE6}\x{10D24}-\x{10D27}\x{10F46}-\x{10F50}\x{11001}\x{11038}-\x{11046}\x{1107F}-\x{11081}\x{110B3}-\x{110B6}\x{110B9}-\x{110BA}\x{110BD}\x{110CD}\x{11100}-\x{11102}\x{11127}-\x{1112B}\x{1112D}-\x{11134}\x{11173}\x{11180}-\x{11181}\x{111B6}-\x{111BE}\x{111C9}-\x{111CC}\x{1122F}-\x{11231}\x{11234}\x{11236}-\x{11237}\x{1123E}\x{112DF}\x{112E3}-\x{112EA}\x{11300}-\x{11301}\x{1133B}-\x{1133C}\x{11340}\x{11366}-\x{1136C}\x{11370}-\x{11374}\x{11438}-\x{1143F}\x{11442}-\x{11444}\x{11446}\x{1145E}\x{114B3}-\x{114B8}\x{114BA}\x{114BF}-\x{114C0}\x{114C2}-\x{114C3}\x{115B2}-\x{115B5}\x{115BC}-\x{115BD}\x{115BF}-\x{115C0}\x{115DC}-\x{115DD}\x{11633}-\x{1163A}\x{1163D}\x{1163F}-\x{11640}\x{116AB}\x{116AD}\x{116B0}-\x{116B5}\x{116B7}\x{1171D}-\x{1171F}\x{11722}-\x{11725}\x{11727}-\x{1172B}\x{1182F}-\x{11837}\x{11839}-\x{1183A}\x{11A01}-\x{11A0A}\x{11A33}-\x{11A38}\x{11A3B}-\x{11A3E}\x{11A47}\x{11A51}-\x{11A56}\x{11A59}-\x{11A5B}\x{11A8A}-\x{11A96}\x{11A98}-\x{11A99}\x{11C30}-\x{11C36}\x{11C38}-\x{11C3D}\x{11C3F}\x{11C92}-\x{11CA7}\x{11CAA}-\x{11CB0}\x{11CB2}-\x{11CB3}\x{11CB5}-\x{11CB6}\x{11D31}-\x{11D36}\x{11D3A}\x{11D3C}-\x{11D3D}\x{11D3F}-\x{11D45}\x{11D47}\x{11D90}-\x{11D91}\x{11D95}\x{11D97}\x{11EF3}-\x{11EF4}\x{16AF0}-\x{16AF4}\x{16B30}-\x{16B36}\x{16B40}-\x{16B43}\x{16F8F}-\x{16F92}\x{16F93}-\x{16F9F}\x{16FE0}-\x{16FE1}\x{1BC9D}-\x{1BC9E}\x{1BCA0}-\x{1BCA3}\x{1D167}-\x{1D169}\x{1D173}-\x{1D17A}\x{1D17B}-\x{1D182}\x{1D185}-\x{1D18B}\x{1D1AA}-\x{1D1AD}\x{1D242}-\x{1D244}\x{1DA00}-\x{1DA36}\x{1DA3B}-\x{1DA6C}\x{1DA75}\x{1DA84}\x{1DA9B}-\x{1DA9F}\x{1DAA1}-\x{1DAAF}\x{1E000}-\x{1E006}\x{1E008}-\x{1E018}\x{1E01B}-\x{1E021}\x{1E023}-\x{1E024}\x{1E026}-\x{1E02A}\x{1E8D0}-\x{1E8D6}\x{1E944}-\x{1E94A}\x{1F3FB}-\x{1F3FF}\x{E0001}\x{E0020}-\x{E007F}\x{E0100}-\x{E01EF}])(\pL)(\pL*+)/u';
diff --git a/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php b/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php
new file mode 100644
index 0000000..56b9cb8
--- /dev/null
+++ b/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php
@@ -0,0 +1,1489 @@
1<?php
2
3return array (
4 'a' => 'A',
5 'b' => 'B',
6 'c' => 'C',
7 'd' => 'D',
8 'e' => 'E',
9 'f' => 'F',
10 'g' => 'G',
11 'h' => 'H',
12 'i' => 'I',
13 'j' => 'J',
14 'k' => 'K',
15 'l' => 'L',
16 'm' => 'M',
17 'n' => 'N',
18 'o' => 'O',
19 'p' => 'P',
20 'q' => 'Q',
21 'r' => 'R',
22 's' => 'S',
23 't' => 'T',
24 'u' => 'U',
25 'v' => 'V',
26 'w' => 'W',
27 'x' => 'X',
28 'y' => 'Y',
29 'z' => 'Z',
30 'µ' => 'Μ',
31 'à' => 'À',
32 'á' => 'Á',
33 'â' => 'Â',
34 'ã' => 'Ã',
35 'ä' => 'Ä',
36 'å' => 'Å',
37 'æ' => 'Æ',
38 'ç' => 'Ç',
39 'è' => 'È',
40 'é' => 'É',
41 'ê' => 'Ê',
42 'ë' => 'Ë',
43 'ì' => 'Ì',
44 'í' => 'Í',
45 'î' => 'Î',
46 'ï' => 'Ï',
47 'ð' => 'Ð',
48 'ñ' => 'Ñ',
49 'ò' => 'Ò',
50 'ó' => 'Ó',
51 'ô' => 'Ô',
52 'õ' => 'Õ',
53 'ö' => 'Ö',
54 'ø' => 'Ø',
55 'ù' => 'Ù',
56 'ú' => 'Ú',
57 'û' => 'Û',
58 'ü' => 'Ü',
59 'ý' => 'Ý',
60 'þ' => 'Þ',
61 'ÿ' => 'Ÿ',
62 'ā' => 'Ā',
63 'ă' => 'Ă',
64 'ą' => 'Ą',
65 'ć' => 'Ć',
66 'ĉ' => 'Ĉ',
67 'ċ' => 'Ċ',
68 'č' => 'Č',
69 'ď' => 'Ď',
70 'đ' => 'Đ',
71 'ē' => 'Ē',
72 'ĕ' => 'Ĕ',
73 'ė' => 'Ė',
74 'ę' => 'Ę',
75 'ě' => 'Ě',
76 'ĝ' => 'Ĝ',
77 'ğ' => 'Ğ',
78 'ġ' => 'Ġ',
79 'ģ' => 'Ģ',
80 'ĥ' => 'Ĥ',
81 'ħ' => 'Ħ',
82 'ĩ' => 'Ĩ',
83 'ī' => 'Ī',
84 'ĭ' => 'Ĭ',
85 'į' => 'Į',
86 'ı' => 'I',
87 'ij' => 'IJ',
88 'ĵ' => 'Ĵ',
89 'ķ' => 'Ķ',
90 'ĺ' => 'Ĺ',
91 'ļ' => 'Ļ',
92 'ľ' => 'Ľ',
93 'ŀ' => 'Ŀ',
94 'ł' => 'Ł',
95 'ń' => 'Ń',
96 'ņ' => 'Ņ',
97 'ň' => 'Ň',
98 'ŋ' => 'Ŋ',
99 'ō' => 'Ō',
100 'ŏ' => 'Ŏ',
101 'ő' => 'Ő',
102 'œ' => 'Œ',
103 'ŕ' => 'Ŕ',
104 'ŗ' => 'Ŗ',
105 'ř' => 'Ř',
106 'ś' => 'Ś',
107 'ŝ' => 'Ŝ',
108 'ş' => 'Ş',
109 'š' => 'Š',
110 'ţ' => 'Ţ',
111 'ť' => 'Ť',
112 'ŧ' => 'Ŧ',
113 'ũ' => 'Ũ',
114 'ū' => 'Ū',
115 'ŭ' => 'Ŭ',
116 'ů' => 'Ů',
117 'ű' => 'Ű',
118 'ų' => 'Ų',
119 'ŵ' => 'Ŵ',
120 'ŷ' => 'Ŷ',
121 'ź' => 'Ź',
122 'ż' => 'Ż',
123 'ž' => 'Ž',
124 'ſ' => 'S',
125 'ƀ' => 'Ƀ',
126 'ƃ' => 'Ƃ',
127 'ƅ' => 'Ƅ',
128 'ƈ' => 'Ƈ',
129 'ƌ' => 'Ƌ',
130 'ƒ' => 'Ƒ',
131 'ƕ' => 'Ƕ',
132 'ƙ' => 'Ƙ',
133 'ƚ' => 'Ƚ',
134 'ƞ' => 'Ƞ',
135 'ơ' => 'Ơ',
136 'ƣ' => 'Ƣ',
137 'ƥ' => 'Ƥ',
138 'ƨ' => 'Ƨ',
139 'ƭ' => 'Ƭ',
140 'ư' => 'Ư',
141 'ƴ' => 'Ƴ',
142 'ƶ' => 'Ƶ',
143 'ƹ' => 'Ƹ',
144 'ƽ' => 'Ƽ',
145 'ƿ' => 'Ƿ',
146 'Dž' => 'DŽ',
147 'dž' => 'DŽ',
148 'Lj' => 'LJ',
149 'lj' => 'LJ',
150 'Nj' => 'NJ',
151 'nj' => 'NJ',
152 'ǎ' => 'Ǎ',
153 'ǐ' => 'Ǐ',
154 'ǒ' => 'Ǒ',
155 'ǔ' => 'Ǔ',
156 'ǖ' => 'Ǖ',
157 'ǘ' => 'Ǘ',
158 'ǚ' => 'Ǚ',
159 'ǜ' => 'Ǜ',
160 'ǝ' => 'Ǝ',
161 'ǟ' => 'Ǟ',
162 'ǡ' => 'Ǡ',
163 'ǣ' => 'Ǣ',
164 'ǥ' => 'Ǥ',
165 'ǧ' => 'Ǧ',
166 'ǩ' => 'Ǩ',
167 'ǫ' => 'Ǫ',
168 'ǭ' => 'Ǭ',
169 'ǯ' => 'Ǯ',
170 'Dz' => 'DZ',
171 'dz' => 'DZ',
172 'ǵ' => 'Ǵ',
173 'ǹ' => 'Ǹ',
174 'ǻ' => 'Ǻ',
175 'ǽ' => 'Ǽ',
176 'ǿ' => 'Ǿ',
177 'ȁ' => 'Ȁ',
178 'ȃ' => 'Ȃ',
179 'ȅ' => 'Ȅ',
180 'ȇ' => 'Ȇ',
181 'ȉ' => 'Ȉ',
182 'ȋ' => 'Ȋ',
183 'ȍ' => 'Ȍ',
184 'ȏ' => 'Ȏ',
185 'ȑ' => 'Ȑ',
186 'ȓ' => 'Ȓ',
187 'ȕ' => 'Ȕ',
188 'ȗ' => 'Ȗ',
189 'ș' => 'Ș',
190 'ț' => 'Ț',
191 'ȝ' => 'Ȝ',
192 'ȟ' => 'Ȟ',
193 'ȣ' => 'Ȣ',
194 'ȥ' => 'Ȥ',
195 'ȧ' => 'Ȧ',
196 'ȩ' => 'Ȩ',
197 'ȫ' => 'Ȫ',
198 'ȭ' => 'Ȭ',
199 'ȯ' => 'Ȯ',
200 'ȱ' => 'Ȱ',
201 'ȳ' => 'Ȳ',
202 'ȼ' => 'Ȼ',
203 'ȿ' => 'Ȿ',
204 'ɀ' => 'Ɀ',
205 'ɂ' => 'Ɂ',
206 'ɇ' => 'Ɇ',
207 'ɉ' => 'Ɉ',
208 'ɋ' => 'Ɋ',
209 'ɍ' => 'Ɍ',
210 'ɏ' => 'Ɏ',
211 'ɐ' => 'Ɐ',
212 'ɑ' => 'Ɑ',
213 'ɒ' => 'Ɒ',
214 'ɓ' => 'Ɓ',
215 'ɔ' => 'Ɔ',
216 'ɖ' => 'Ɖ',
217 'ɗ' => 'Ɗ',
218 'ə' => 'Ə',
219 'ɛ' => 'Ɛ',
220 'ɜ' => 'Ɜ',
221 'ɠ' => 'Ɠ',
222 'ɡ' => 'Ɡ',
223 'ɣ' => 'Ɣ',
224 'ɥ' => 'Ɥ',
225 'ɦ' => 'Ɦ',
226 'ɨ' => 'Ɨ',
227 'ɩ' => 'Ɩ',
228 'ɪ' => 'Ɪ',
229 'ɫ' => 'Ɫ',
230 'ɬ' => 'Ɬ',
231 'ɯ' => 'Ɯ',
232 'ɱ' => 'Ɱ',
233 'ɲ' => 'Ɲ',
234 'ɵ' => 'Ɵ',
235 'ɽ' => 'Ɽ',
236 'ʀ' => 'Ʀ',
237 'ʂ' => 'Ʂ',
238 'ʃ' => 'Ʃ',
239 'ʇ' => 'Ʇ',
240 'ʈ' => 'Ʈ',
241 'ʉ' => 'Ʉ',
242 'ʊ' => 'Ʊ',
243 'ʋ' => 'Ʋ',
244 'ʌ' => 'Ʌ',
245 'ʒ' => 'Ʒ',
246 'ʝ' => 'Ʝ',
247 'ʞ' => 'Ʞ',
248 'ͅ' => 'Ι',
249 'ͱ' => 'Ͱ',
250 'ͳ' => 'Ͳ',
251 'ͷ' => 'Ͷ',
252 'ͻ' => 'Ͻ',
253 'ͼ' => 'Ͼ',
254 'ͽ' => 'Ͽ',
255 'ά' => 'Ά',
256 'έ' => 'Έ',
257 'ή' => 'Ή',
258 'ί' => 'Ί',
259 'α' => 'Α',
260 'β' => 'Β',
261 'γ' => 'Γ',
262 'δ' => 'Δ',
263 'ε' => 'Ε',
264 'ζ' => 'Ζ',
265 'η' => 'Η',
266 'θ' => 'Θ',
267 'ι' => 'Ι',
268 'κ' => 'Κ',
269 'λ' => 'Λ',
270 'μ' => 'Μ',
271 'ν' => 'Ν',
272 'ξ' => 'Ξ',
273 'ο' => 'Ο',
274 'π' => 'Π',
275 'ρ' => 'Ρ',
276 'ς' => 'Σ',
277 'σ' => 'Σ',
278 'τ' => 'Τ',
279 'υ' => 'Υ',
280 'φ' => 'Φ',
281 'χ' => 'Χ',
282 'ψ' => 'Ψ',
283 'ω' => 'Ω',
284 'ϊ' => 'Ϊ',
285 'ϋ' => 'Ϋ',
286 'ό' => 'Ό',
287 'ύ' => 'Ύ',
288 'ώ' => 'Ώ',
289 'ϐ' => 'Β',
290 'ϑ' => 'Θ',
291 'ϕ' => 'Φ',
292 'ϖ' => 'Π',
293 'ϗ' => 'Ϗ',
294 'ϙ' => 'Ϙ',
295 'ϛ' => 'Ϛ',
296 'ϝ' => 'Ϝ',
297 'ϟ' => 'Ϟ',
298 'ϡ' => 'Ϡ',
299 'ϣ' => 'Ϣ',
300 'ϥ' => 'Ϥ',
301 'ϧ' => 'Ϧ',
302 'ϩ' => 'Ϩ',
303 'ϫ' => 'Ϫ',
304 'ϭ' => 'Ϭ',
305 'ϯ' => 'Ϯ',
306 'ϰ' => 'Κ',
307 'ϱ' => 'Ρ',
308 'ϲ' => 'Ϲ',
309 'ϳ' => 'Ϳ',
310 'ϵ' => 'Ε',
311 'ϸ' => 'Ϸ',
312 'ϻ' => 'Ϻ',
313 'а' => 'А',
314 'б' => 'Б',
315 'в' => 'В',
316 'г' => 'Г',
317 'д' => 'Д',
318 'е' => 'Е',
319 'ж' => 'Ж',
320 'з' => 'З',
321 'и' => 'И',
322 'й' => 'Й',
323 'к' => 'К',
324 'л' => 'Л',
325 'м' => 'М',
326 'н' => 'Н',
327 'о' => 'О',
328 'п' => 'П',
329 'р' => 'Р',
330 'с' => 'С',
331 'т' => 'Т',
332 'у' => 'У',
333 'ф' => 'Ф',
334 'х' => 'Х',
335 'ц' => 'Ц',
336 'ч' => 'Ч',
337 'ш' => 'Ш',
338 'щ' => 'Щ',
339 'ъ' => 'Ъ',
340 'ы' => 'Ы',
341 'ь' => 'Ь',
342 'э' => 'Э',
343 'ю' => 'Ю',
344 'я' => 'Я',
345 'ѐ' => 'Ѐ',
346 'ё' => 'Ё',
347 'ђ' => 'Ђ',
348 'ѓ' => 'Ѓ',
349 'є' => 'Є',
350 'ѕ' => 'Ѕ',
351 'і' => 'І',
352 'ї' => 'Ї',
353 'ј' => 'Ј',
354 'љ' => 'Љ',
355 'њ' => 'Њ',
356 'ћ' => 'Ћ',
357 'ќ' => 'Ќ',
358 'ѝ' => 'Ѝ',
359 'ў' => 'Ў',
360 'џ' => 'Џ',
361 'ѡ' => 'Ѡ',
362 'ѣ' => 'Ѣ',
363 'ѥ' => 'Ѥ',
364 'ѧ' => 'Ѧ',
365 'ѩ' => 'Ѩ',
366 'ѫ' => 'Ѫ',
367 'ѭ' => 'Ѭ',
368 'ѯ' => 'Ѯ',
369 'ѱ' => 'Ѱ',
370 'ѳ' => 'Ѳ',
371 'ѵ' => 'Ѵ',
372 'ѷ' => 'Ѷ',
373 'ѹ' => 'Ѹ',
374 'ѻ' => 'Ѻ',
375 'ѽ' => 'Ѽ',
376 'ѿ' => 'Ѿ',
377 'ҁ' => 'Ҁ',
378 'ҋ' => 'Ҋ',
379 'ҍ' => 'Ҍ',
380 'ҏ' => 'Ҏ',
381 'ґ' => 'Ґ',
382 'ғ' => 'Ғ',
383 'ҕ' => 'Ҕ',
384 'җ' => 'Җ',
385 'ҙ' => 'Ҙ',
386 'қ' => 'Қ',
387 'ҝ' => 'Ҝ',
388 'ҟ' => 'Ҟ',
389 'ҡ' => 'Ҡ',
390 'ң' => 'Ң',
391 'ҥ' => 'Ҥ',
392 'ҧ' => 'Ҧ',
393 'ҩ' => 'Ҩ',
394 'ҫ' => 'Ҫ',
395 'ҭ' => 'Ҭ',
396 'ү' => 'Ү',
397 'ұ' => 'Ұ',
398 'ҳ' => 'Ҳ',
399 'ҵ' => 'Ҵ',
400 'ҷ' => 'Ҷ',
401 'ҹ' => 'Ҹ',
402 'һ' => 'Һ',
403 'ҽ' => 'Ҽ',
404 'ҿ' => 'Ҿ',
405 'ӂ' => 'Ӂ',
406 'ӄ' => 'Ӄ',
407 'ӆ' => 'Ӆ',
408 'ӈ' => 'Ӈ',
409 'ӊ' => 'Ӊ',
410 'ӌ' => 'Ӌ',
411 'ӎ' => 'Ӎ',
412 'ӏ' => 'Ӏ',
413 'ӑ' => 'Ӑ',
414 'ӓ' => 'Ӓ',
415 'ӕ' => 'Ӕ',
416 'ӗ' => 'Ӗ',
417 'ә' => 'Ә',
418 'ӛ' => 'Ӛ',
419 'ӝ' => 'Ӝ',
420 'ӟ' => 'Ӟ',
421 'ӡ' => 'Ӡ',
422 'ӣ' => 'Ӣ',
423 'ӥ' => 'Ӥ',
424 'ӧ' => 'Ӧ',
425 'ө' => 'Ө',
426 'ӫ' => 'Ӫ',
427 'ӭ' => 'Ӭ',
428 'ӯ' => 'Ӯ',
429 'ӱ' => 'Ӱ',
430 'ӳ' => 'Ӳ',
431 'ӵ' => 'Ӵ',
432 'ӷ' => 'Ӷ',
433 'ӹ' => 'Ӹ',
434 'ӻ' => 'Ӻ',
435 'ӽ' => 'Ӽ',
436 'ӿ' => 'Ӿ',
437 'ԁ' => 'Ԁ',
438 'ԃ' => 'Ԃ',
439 'ԅ' => 'Ԅ',
440 'ԇ' => 'Ԇ',
441 'ԉ' => 'Ԉ',
442 'ԋ' => 'Ԋ',
443 'ԍ' => 'Ԍ',
444 'ԏ' => 'Ԏ',
445 'ԑ' => 'Ԑ',
446 'ԓ' => 'Ԓ',
447 'ԕ' => 'Ԕ',
448 'ԗ' => 'Ԗ',
449 'ԙ' => 'Ԙ',
450 'ԛ' => 'Ԛ',
451 'ԝ' => 'Ԝ',
452 'ԟ' => 'Ԟ',
453 'ԡ' => 'Ԡ',
454 'ԣ' => 'Ԣ',
455 'ԥ' => 'Ԥ',
456 'ԧ' => 'Ԧ',
457 'ԩ' => 'Ԩ',
458 'ԫ' => 'Ԫ',
459 'ԭ' => 'Ԭ',
460 'ԯ' => 'Ԯ',
461 'ա' => 'Ա',
462 'բ' => 'Բ',
463 'գ' => 'Գ',
464 'դ' => 'Դ',
465 'ե' => 'Ե',
466 'զ' => 'Զ',
467 'է' => 'Է',
468 'ը' => 'Ը',
469 'թ' => 'Թ',
470 'ժ' => 'Ժ',
471 'ի' => 'Ի',
472 'լ' => 'Լ',
473 'խ' => 'Խ',
474 'ծ' => 'Ծ',
475 'կ' => 'Կ',
476 'հ' => 'Հ',
477 'ձ' => 'Ձ',
478 'ղ' => 'Ղ',
479 'ճ' => 'Ճ',
480 'մ' => 'Մ',
481 'յ' => 'Յ',
482 'ն' => 'Ն',
483 'շ' => 'Շ',
484 'ո' => 'Ո',
485 'չ' => 'Չ',
486 'պ' => 'Պ',
487 'ջ' => 'Ջ',
488 'ռ' => 'Ռ',
489 'ս' => 'Ս',
490 'վ' => 'Վ',
491 'տ' => 'Տ',
492 'ր' => 'Ր',
493 'ց' => 'Ց',
494 'ւ' => 'Ւ',
495 'փ' => 'Փ',
496 'ք' => 'Ք',
497 'օ' => 'Օ',
498 'ֆ' => 'Ֆ',
499 'ა' => 'Ა',
500 'ბ' => 'Ბ',
501 'გ' => 'Გ',
502 'დ' => 'Დ',
503 'ე' => 'Ე',
504 'ვ' => 'Ვ',
505 'ზ' => 'Ზ',
506 'თ' => 'Თ',
507 'ი' => 'Ი',
508 'კ' => 'Კ',
509 'ლ' => 'Ლ',
510 'მ' => 'Მ',
511 'ნ' => 'Ნ',
512 'ო' => 'Ო',
513 'პ' => 'Პ',
514 'ჟ' => 'Ჟ',
515 'რ' => 'Რ',
516 'ს' => 'Ს',
517 'ტ' => 'Ტ',
518 'უ' => 'Უ',
519 'ფ' => 'Ფ',
520 'ქ' => 'Ქ',
521 'ღ' => 'Ღ',
522 'ყ' => 'Ყ',
523 'შ' => 'Შ',
524 'ჩ' => 'Ჩ',
525 'ც' => 'Ც',
526 'ძ' => 'Ძ',
527 'წ' => 'Წ',
528 'ჭ' => 'Ჭ',
529 'ხ' => 'Ხ',
530 'ჯ' => 'Ჯ',
531 'ჰ' => 'Ჰ',
532 'ჱ' => 'Ჱ',
533 'ჲ' => 'Ჲ',
534 'ჳ' => 'Ჳ',
535 'ჴ' => 'Ჴ',
536 'ჵ' => 'Ჵ',
537 'ჶ' => 'Ჶ',
538 'ჷ' => 'Ჷ',
539 'ჸ' => 'Ჸ',
540 'ჹ' => 'Ჹ',
541 'ჺ' => 'Ჺ',
542 'ჽ' => 'Ჽ',
543 'ჾ' => 'Ჾ',
544 'ჿ' => 'Ჿ',
545 'ᏸ' => 'Ᏸ',
546 'ᏹ' => 'Ᏹ',
547 'ᏺ' => 'Ᏺ',
548 'ᏻ' => 'Ᏻ',
549 'ᏼ' => 'Ᏼ',
550 'ᏽ' => 'Ᏽ',
551 'ᲀ' => 'В',
552 'ᲁ' => 'Д',
553 'ᲂ' => 'О',
554 'ᲃ' => 'С',
555 'ᲄ' => 'Т',
556 'ᲅ' => 'Т',
557 'ᲆ' => 'Ъ',
558 'ᲇ' => 'Ѣ',
559 'ᲈ' => 'Ꙋ',
560 'ᵹ' => 'Ᵹ',
561 'ᵽ' => 'Ᵽ',
562 'ᶎ' => 'Ᶎ',
563 'ḁ' => 'Ḁ',
564 'ḃ' => 'Ḃ',
565 'ḅ' => 'Ḅ',
566 'ḇ' => 'Ḇ',
567 'ḉ' => 'Ḉ',
568 'ḋ' => 'Ḋ',
569 'ḍ' => 'Ḍ',
570 'ḏ' => 'Ḏ',
571 'ḑ' => 'Ḑ',
572 'ḓ' => 'Ḓ',
573 'ḕ' => 'Ḕ',
574 'ḗ' => 'Ḗ',
575 'ḙ' => 'Ḙ',
576 'ḛ' => 'Ḛ',
577 'ḝ' => 'Ḝ',
578 'ḟ' => 'Ḟ',
579 'ḡ' => 'Ḡ',
580 'ḣ' => 'Ḣ',
581 'ḥ' => 'Ḥ',
582 'ḧ' => 'Ḧ',
583 'ḩ' => 'Ḩ',
584 'ḫ' => 'Ḫ',
585 'ḭ' => 'Ḭ',
586 'ḯ' => 'Ḯ',
587 'ḱ' => 'Ḱ',
588 'ḳ' => 'Ḳ',
589 'ḵ' => 'Ḵ',
590 'ḷ' => 'Ḷ',
591 'ḹ' => 'Ḹ',
592 'ḻ' => 'Ḻ',
593 'ḽ' => 'Ḽ',
594 'ḿ' => 'Ḿ',
595 'ṁ' => 'Ṁ',
596 'ṃ' => 'Ṃ',
597 'ṅ' => 'Ṅ',
598 'ṇ' => 'Ṇ',
599 'ṉ' => 'Ṉ',
600 'ṋ' => 'Ṋ',
601 'ṍ' => 'Ṍ',
602 'ṏ' => 'Ṏ',
603 'ṑ' => 'Ṑ',
604 'ṓ' => 'Ṓ',
605 'ṕ' => 'Ṕ',
606 'ṗ' => 'Ṗ',
607 'ṙ' => 'Ṙ',
608 'ṛ' => 'Ṛ',
609 'ṝ' => 'Ṝ',
610 'ṟ' => 'Ṟ',
611 'ṡ' => 'Ṡ',
612 'ṣ' => 'Ṣ',
613 'ṥ' => 'Ṥ',
614 'ṧ' => 'Ṧ',
615 'ṩ' => 'Ṩ',
616 'ṫ' => 'Ṫ',
617 'ṭ' => 'Ṭ',
618 'ṯ' => 'Ṯ',
619 'ṱ' => 'Ṱ',
620 'ṳ' => 'Ṳ',
621 'ṵ' => 'Ṵ',
622 'ṷ' => 'Ṷ',
623 'ṹ' => 'Ṹ',
624 'ṻ' => 'Ṻ',
625 'ṽ' => 'Ṽ',
626 'ṿ' => 'Ṿ',
627 'ẁ' => 'Ẁ',
628 'ẃ' => 'Ẃ',
629 'ẅ' => 'Ẅ',
630 'ẇ' => 'Ẇ',
631 'ẉ' => 'Ẉ',
632 'ẋ' => 'Ẋ',
633 'ẍ' => 'Ẍ',
634 'ẏ' => 'Ẏ',
635 'ẑ' => 'Ẑ',
636 'ẓ' => 'Ẓ',
637 'ẕ' => 'Ẕ',
638 'ẛ' => 'Ṡ',
639 'ạ' => 'Ạ',
640 'ả' => 'Ả',
641 'ấ' => 'Ấ',
642 'ầ' => 'Ầ',
643 'ẩ' => 'Ẩ',
644 'ẫ' => 'Ẫ',
645 'ậ' => 'Ậ',
646 'ắ' => 'Ắ',
647 'ằ' => 'Ằ',
648 'ẳ' => 'Ẳ',
649 'ẵ' => 'Ẵ',
650 'ặ' => 'Ặ',
651 'ẹ' => 'Ẹ',
652 'ẻ' => 'Ẻ',
653 'ẽ' => 'Ẽ',
654 'ế' => 'Ế',
655 'ề' => 'Ề',
656 'ể' => 'Ể',
657 'ễ' => 'Ễ',
658 'ệ' => 'Ệ',
659 'ỉ' => 'Ỉ',
660 'ị' => 'Ị',
661 'ọ' => 'Ọ',
662 'ỏ' => 'Ỏ',
663 'ố' => 'Ố',
664 'ồ' => 'Ồ',
665 'ổ' => 'Ổ',
666 'ỗ' => 'Ỗ',
667 'ộ' => 'Ộ',
668 'ớ' => 'Ớ',
669 'ờ' => 'Ờ',
670 'ở' => 'Ở',
671 'ỡ' => 'Ỡ',
672 'ợ' => 'Ợ',
673 'ụ' => 'Ụ',
674 'ủ' => 'Ủ',
675 'ứ' => 'Ứ',
676 'ừ' => 'Ừ',
677 'ử' => 'Ử',
678 'ữ' => 'Ữ',
679 'ự' => 'Ự',
680 'ỳ' => 'Ỳ',
681 'ỵ' => 'Ỵ',
682 'ỷ' => 'Ỷ',
683 'ỹ' => 'Ỹ',
684 'ỻ' => 'Ỻ',
685 'ỽ' => 'Ỽ',
686 'ỿ' => 'Ỿ',
687 'ἀ' => 'Ἀ',
688 'ἁ' => 'Ἁ',
689 'ἂ' => 'Ἂ',
690 'ἃ' => 'Ἃ',
691 'ἄ' => 'Ἄ',
692 'ἅ' => 'Ἅ',
693 'ἆ' => 'Ἆ',
694 'ἇ' => 'Ἇ',
695 'ἐ' => 'Ἐ',
696 'ἑ' => 'Ἑ',
697 'ἒ' => 'Ἒ',
698 'ἓ' => 'Ἓ',
699 'ἔ' => 'Ἔ',
700 'ἕ' => 'Ἕ',
701 'ἠ' => 'Ἠ',
702 'ἡ' => 'Ἡ',
703 'ἢ' => 'Ἢ',
704 'ἣ' => 'Ἣ',
705 'ἤ' => 'Ἤ',
706 'ἥ' => 'Ἥ',
707 'ἦ' => 'Ἦ',
708 'ἧ' => 'Ἧ',
709 'ἰ' => 'Ἰ',
710 'ἱ' => 'Ἱ',
711 'ἲ' => 'Ἲ',
712 'ἳ' => 'Ἳ',
713 'ἴ' => 'Ἴ',
714 'ἵ' => 'Ἵ',
715 'ἶ' => 'Ἶ',
716 'ἷ' => 'Ἷ',
717 'ὀ' => 'Ὀ',
718 'ὁ' => 'Ὁ',
719 'ὂ' => 'Ὂ',
720 'ὃ' => 'Ὃ',
721 'ὄ' => 'Ὄ',
722 'ὅ' => 'Ὅ',
723 'ὑ' => 'Ὑ',
724 'ὓ' => 'Ὓ',
725 'ὕ' => 'Ὕ',
726 'ὗ' => 'Ὗ',
727 'ὠ' => 'Ὠ',
728 'ὡ' => 'Ὡ',
729 'ὢ' => 'Ὢ',
730 'ὣ' => 'Ὣ',
731 'ὤ' => 'Ὤ',
732 'ὥ' => 'Ὥ',
733 'ὦ' => 'Ὦ',
734 'ὧ' => 'Ὧ',
735 'ὰ' => 'Ὰ',
736 'ά' => 'Ά',
737 'ὲ' => 'Ὲ',
738 'έ' => 'Έ',
739 'ὴ' => 'Ὴ',
740 'ή' => 'Ή',
741 'ὶ' => 'Ὶ',
742 'ί' => 'Ί',
743 'ὸ' => 'Ὸ',
744 'ό' => 'Ό',
745 'ὺ' => 'Ὺ',
746 'ύ' => 'Ύ',
747 'ὼ' => 'Ὼ',
748 'ώ' => 'Ώ',
749 'ᾀ' => 'ἈΙ',
750 'ᾁ' => 'ἉΙ',
751 'ᾂ' => 'ἊΙ',
752 'ᾃ' => 'ἋΙ',
753 'ᾄ' => 'ἌΙ',
754 'ᾅ' => 'ἍΙ',
755 'ᾆ' => 'ἎΙ',
756 'ᾇ' => 'ἏΙ',
757 'ᾐ' => 'ἨΙ',
758 'ᾑ' => 'ἩΙ',
759 'ᾒ' => 'ἪΙ',
760 'ᾓ' => 'ἫΙ',
761 'ᾔ' => 'ἬΙ',
762 'ᾕ' => 'ἭΙ',
763 'ᾖ' => 'ἮΙ',
764 'ᾗ' => 'ἯΙ',
765 'ᾠ' => 'ὨΙ',
766 'ᾡ' => 'ὩΙ',
767 'ᾢ' => 'ὪΙ',
768 'ᾣ' => 'ὫΙ',
769 'ᾤ' => 'ὬΙ',
770 'ᾥ' => 'ὭΙ',
771 'ᾦ' => 'ὮΙ',
772 'ᾧ' => 'ὯΙ',
773 'ᾰ' => 'Ᾰ',
774 'ᾱ' => 'Ᾱ',
775 'ᾳ' => 'ΑΙ',
776 'ι' => 'Ι',
777 'ῃ' => 'ΗΙ',
778 'ῐ' => 'Ῐ',
779 'ῑ' => 'Ῑ',
780 'ῠ' => 'Ῠ',
781 'ῡ' => 'Ῡ',
782 'ῥ' => 'Ῥ',
783 'ῳ' => 'ΩΙ',
784 'ⅎ' => 'Ⅎ',
785 'ⅰ' => 'Ⅰ',
786 'ⅱ' => 'Ⅱ',
787 'ⅲ' => 'Ⅲ',
788 'ⅳ' => 'Ⅳ',
789 'ⅴ' => 'Ⅴ',
790 'ⅵ' => 'Ⅵ',
791 'ⅶ' => 'Ⅶ',
792 'ⅷ' => 'Ⅷ',
793 'ⅸ' => 'Ⅸ',
794 'ⅹ' => 'Ⅹ',
795 'ⅺ' => 'Ⅺ',
796 'ⅻ' => 'Ⅻ',
797 'ⅼ' => 'Ⅼ',
798 'ⅽ' => 'Ⅽ',
799 'ⅾ' => 'Ⅾ',
800 'ⅿ' => 'Ⅿ',
801 'ↄ' => 'Ↄ',
802 'ⓐ' => 'Ⓐ',
803 'ⓑ' => 'Ⓑ',
804 'ⓒ' => 'Ⓒ',
805 'ⓓ' => 'Ⓓ',
806 'ⓔ' => 'Ⓔ',
807 'ⓕ' => 'Ⓕ',
808 'ⓖ' => 'Ⓖ',
809 'ⓗ' => 'Ⓗ',
810 'ⓘ' => 'Ⓘ',
811 'ⓙ' => 'Ⓙ',
812 'ⓚ' => 'Ⓚ',
813 'ⓛ' => 'Ⓛ',
814 'ⓜ' => 'Ⓜ',
815 'ⓝ' => 'Ⓝ',
816 'ⓞ' => 'Ⓞ',
817 'ⓟ' => 'Ⓟ',
818 'ⓠ' => 'Ⓠ',
819 'ⓡ' => 'Ⓡ',
820 'ⓢ' => 'Ⓢ',
821 'ⓣ' => 'Ⓣ',
822 'ⓤ' => 'Ⓤ',
823 'ⓥ' => 'Ⓥ',
824 'ⓦ' => 'Ⓦ',
825 'ⓧ' => 'Ⓧ',
826 'ⓨ' => 'Ⓨ',
827 'ⓩ' => 'Ⓩ',
828 'ⰰ' => 'Ⰰ',
829 'ⰱ' => 'Ⰱ',
830 'ⰲ' => 'Ⰲ',
831 'ⰳ' => 'Ⰳ',
832 'ⰴ' => 'Ⰴ',
833 'ⰵ' => 'Ⰵ',
834 'ⰶ' => 'Ⰶ',
835 'ⰷ' => 'Ⰷ',
836 'ⰸ' => 'Ⰸ',
837 'ⰹ' => 'Ⰹ',
838 'ⰺ' => 'Ⰺ',
839 'ⰻ' => 'Ⰻ',
840 'ⰼ' => 'Ⰼ',
841 'ⰽ' => 'Ⰽ',
842 'ⰾ' => 'Ⰾ',
843 'ⰿ' => 'Ⰿ',
844 'ⱀ' => 'Ⱀ',
845 'ⱁ' => 'Ⱁ',
846 'ⱂ' => 'Ⱂ',
847 'ⱃ' => 'Ⱃ',
848 'ⱄ' => 'Ⱄ',
849 'ⱅ' => 'Ⱅ',
850 'ⱆ' => 'Ⱆ',
851 'ⱇ' => 'Ⱇ',
852 'ⱈ' => 'Ⱈ',
853 'ⱉ' => 'Ⱉ',
854 'ⱊ' => 'Ⱊ',
855 'ⱋ' => 'Ⱋ',
856 'ⱌ' => 'Ⱌ',
857 'ⱍ' => 'Ⱍ',
858 'ⱎ' => 'Ⱎ',
859 'ⱏ' => 'Ⱏ',
860 'ⱐ' => 'Ⱐ',
861 'ⱑ' => 'Ⱑ',
862 'ⱒ' => 'Ⱒ',
863 'ⱓ' => 'Ⱓ',
864 'ⱔ' => 'Ⱔ',
865 'ⱕ' => 'Ⱕ',
866 'ⱖ' => 'Ⱖ',
867 'ⱗ' => 'Ⱗ',
868 'ⱘ' => 'Ⱘ',
869 'ⱙ' => 'Ⱙ',
870 'ⱚ' => 'Ⱚ',
871 'ⱛ' => 'Ⱛ',
872 'ⱜ' => 'Ⱜ',
873 'ⱝ' => 'Ⱝ',
874 'ⱞ' => 'Ⱞ',
875 'ⱡ' => 'Ⱡ',
876 'ⱥ' => 'Ⱥ',
877 'ⱦ' => 'Ⱦ',
878 'ⱨ' => 'Ⱨ',
879 'ⱪ' => 'Ⱪ',
880 'ⱬ' => 'Ⱬ',
881 'ⱳ' => 'Ⱳ',
882 'ⱶ' => 'Ⱶ',
883 'ⲁ' => 'Ⲁ',
884 'ⲃ' => 'Ⲃ',
885 'ⲅ' => 'Ⲅ',
886 'ⲇ' => 'Ⲇ',
887 'ⲉ' => 'Ⲉ',
888 'ⲋ' => 'Ⲋ',
889 'ⲍ' => 'Ⲍ',
890 'ⲏ' => 'Ⲏ',
891 'ⲑ' => 'Ⲑ',
892 'ⲓ' => 'Ⲓ',
893 'ⲕ' => 'Ⲕ',
894 'ⲗ' => 'Ⲗ',
895 'ⲙ' => 'Ⲙ',
896 'ⲛ' => 'Ⲛ',
897 'ⲝ' => 'Ⲝ',
898 'ⲟ' => 'Ⲟ',
899 'ⲡ' => 'Ⲡ',
900 'ⲣ' => 'Ⲣ',
901 'ⲥ' => 'Ⲥ',
902 'ⲧ' => 'Ⲧ',
903 'ⲩ' => 'Ⲩ',
904 'ⲫ' => 'Ⲫ',
905 'ⲭ' => 'Ⲭ',
906 'ⲯ' => 'Ⲯ',
907 'ⲱ' => 'Ⲱ',
908 'ⲳ' => 'Ⲳ',
909 'ⲵ' => 'Ⲵ',
910 'ⲷ' => 'Ⲷ',
911 'ⲹ' => 'Ⲹ',
912 'ⲻ' => 'Ⲻ',
913 'ⲽ' => 'Ⲽ',
914 'ⲿ' => 'Ⲿ',
915 'ⳁ' => 'Ⳁ',
916 'ⳃ' => 'Ⳃ',
917 'ⳅ' => 'Ⳅ',
918 'ⳇ' => 'Ⳇ',
919 'ⳉ' => 'Ⳉ',
920 'ⳋ' => 'Ⳋ',
921 'ⳍ' => 'Ⳍ',
922 'ⳏ' => 'Ⳏ',
923 'ⳑ' => 'Ⳑ',
924 'ⳓ' => 'Ⳓ',
925 'ⳕ' => 'Ⳕ',
926 'ⳗ' => 'Ⳗ',
927 'ⳙ' => 'Ⳙ',
928 'ⳛ' => 'Ⳛ',
929 'ⳝ' => 'Ⳝ',
930 'ⳟ' => 'Ⳟ',
931 'ⳡ' => 'Ⳡ',
932 'ⳣ' => 'Ⳣ',
933 'ⳬ' => 'Ⳬ',
934 'ⳮ' => 'Ⳮ',
935 'ⳳ' => 'Ⳳ',
936 'ⴀ' => 'Ⴀ',
937 'ⴁ' => 'Ⴁ',
938 'ⴂ' => 'Ⴂ',
939 'ⴃ' => 'Ⴃ',
940 'ⴄ' => 'Ⴄ',
941 'ⴅ' => 'Ⴅ',
942 'ⴆ' => 'Ⴆ',
943 'ⴇ' => 'Ⴇ',
944 'ⴈ' => 'Ⴈ',
945 'ⴉ' => 'Ⴉ',
946 'ⴊ' => 'Ⴊ',
947 'ⴋ' => 'Ⴋ',
948 'ⴌ' => 'Ⴌ',
949 'ⴍ' => 'Ⴍ',
950 'ⴎ' => 'Ⴎ',
951 'ⴏ' => 'Ⴏ',
952 'ⴐ' => 'Ⴐ',
953 'ⴑ' => 'Ⴑ',
954 'ⴒ' => 'Ⴒ',
955 'ⴓ' => 'Ⴓ',
956 'ⴔ' => 'Ⴔ',
957 'ⴕ' => 'Ⴕ',
958 'ⴖ' => 'Ⴖ',
959 'ⴗ' => 'Ⴗ',
960 'ⴘ' => 'Ⴘ',
961 'ⴙ' => 'Ⴙ',
962 'ⴚ' => 'Ⴚ',
963 'ⴛ' => 'Ⴛ',
964 'ⴜ' => 'Ⴜ',
965 'ⴝ' => 'Ⴝ',
966 'ⴞ' => 'Ⴞ',
967 'ⴟ' => 'Ⴟ',
968 'ⴠ' => 'Ⴠ',
969 'ⴡ' => 'Ⴡ',
970 'ⴢ' => 'Ⴢ',
971 'ⴣ' => 'Ⴣ',
972 'ⴤ' => 'Ⴤ',
973 'ⴥ' => 'Ⴥ',
974 'ⴧ' => 'Ⴧ',
975 'ⴭ' => 'Ⴭ',
976 'ꙁ' => 'Ꙁ',
977 'ꙃ' => 'Ꙃ',
978 'ꙅ' => 'Ꙅ',
979 'ꙇ' => 'Ꙇ',
980 'ꙉ' => 'Ꙉ',
981 'ꙋ' => 'Ꙋ',
982 'ꙍ' => 'Ꙍ',
983 'ꙏ' => 'Ꙏ',
984 'ꙑ' => 'Ꙑ',
985 'ꙓ' => 'Ꙓ',
986 'ꙕ' => 'Ꙕ',
987 'ꙗ' => 'Ꙗ',
988 'ꙙ' => 'Ꙙ',
989 'ꙛ' => 'Ꙛ',
990 'ꙝ' => 'Ꙝ',
991 'ꙟ' => 'Ꙟ',
992 'ꙡ' => 'Ꙡ',
993 'ꙣ' => 'Ꙣ',
994 'ꙥ' => 'Ꙥ',
995 'ꙧ' => 'Ꙧ',
996 'ꙩ' => 'Ꙩ',
997 'ꙫ' => 'Ꙫ',
998 'ꙭ' => 'Ꙭ',
999 'ꚁ' => 'Ꚁ',
1000 'ꚃ' => 'Ꚃ',
1001 'ꚅ' => 'Ꚅ',
1002 'ꚇ' => 'Ꚇ',
1003 'ꚉ' => 'Ꚉ',
1004 'ꚋ' => 'Ꚋ',
1005 'ꚍ' => 'Ꚍ',
1006 'ꚏ' => 'Ꚏ',
1007 'ꚑ' => 'Ꚑ',
1008 'ꚓ' => 'Ꚓ',
1009 'ꚕ' => 'Ꚕ',
1010 'ꚗ' => 'Ꚗ',
1011 'ꚙ' => 'Ꚙ',
1012 'ꚛ' => 'Ꚛ',
1013 'ꜣ' => 'Ꜣ',
1014 'ꜥ' => 'Ꜥ',
1015 'ꜧ' => 'Ꜧ',
1016 'ꜩ' => 'Ꜩ',
1017 'ꜫ' => 'Ꜫ',
1018 'ꜭ' => 'Ꜭ',
1019 'ꜯ' => 'Ꜯ',
1020 'ꜳ' => 'Ꜳ',
1021 'ꜵ' => 'Ꜵ',
1022 'ꜷ' => 'Ꜷ',
1023 'ꜹ' => 'Ꜹ',
1024 'ꜻ' => 'Ꜻ',
1025 'ꜽ' => 'Ꜽ',
1026 'ꜿ' => 'Ꜿ',
1027 'ꝁ' => 'Ꝁ',
1028 'ꝃ' => 'Ꝃ',
1029 'ꝅ' => 'Ꝅ',
1030 'ꝇ' => 'Ꝇ',
1031 'ꝉ' => 'Ꝉ',
1032 'ꝋ' => 'Ꝋ',
1033 'ꝍ' => 'Ꝍ',
1034 'ꝏ' => 'Ꝏ',
1035 'ꝑ' => 'Ꝑ',
1036 'ꝓ' => 'Ꝓ',
1037 'ꝕ' => 'Ꝕ',
1038 'ꝗ' => 'Ꝗ',
1039 'ꝙ' => 'Ꝙ',
1040 'ꝛ' => 'Ꝛ',
1041 'ꝝ' => 'Ꝝ',
1042 'ꝟ' => 'Ꝟ',
1043 'ꝡ' => 'Ꝡ',
1044 'ꝣ' => 'Ꝣ',
1045 'ꝥ' => 'Ꝥ',
1046 'ꝧ' => 'Ꝧ',
1047 'ꝩ' => 'Ꝩ',
1048 'ꝫ' => 'Ꝫ',
1049 'ꝭ' => 'Ꝭ',
1050 'ꝯ' => 'Ꝯ',
1051 'ꝺ' => 'Ꝺ',
1052 'ꝼ' => 'Ꝼ',
1053 'ꝿ' => 'Ꝿ',
1054 'ꞁ' => 'Ꞁ',
1055 'ꞃ' => 'Ꞃ',
1056 'ꞅ' => 'Ꞅ',
1057 'ꞇ' => 'Ꞇ',
1058 'ꞌ' => 'Ꞌ',
1059 'ꞑ' => 'Ꞑ',
1060 'ꞓ' => 'Ꞓ',
1061 'ꞔ' => 'Ꞔ',
1062 'ꞗ' => 'Ꞗ',
1063 'ꞙ' => 'Ꞙ',
1064 'ꞛ' => 'Ꞛ',
1065 'ꞝ' => 'Ꞝ',
1066 'ꞟ' => 'Ꞟ',
1067 'ꞡ' => 'Ꞡ',
1068 'ꞣ' => 'Ꞣ',
1069 'ꞥ' => 'Ꞥ',
1070 'ꞧ' => 'Ꞧ',
1071 'ꞩ' => 'Ꞩ',
1072 'ꞵ' => 'Ꞵ',
1073 'ꞷ' => 'Ꞷ',
1074 'ꞹ' => 'Ꞹ',
1075 'ꞻ' => 'Ꞻ',
1076 'ꞽ' => 'Ꞽ',
1077 'ꞿ' => 'Ꞿ',
1078 'ꟃ' => 'Ꟃ',
1079 'ꟈ' => 'Ꟈ',
1080 'ꟊ' => 'Ꟊ',
1081 'ꟶ' => 'Ꟶ',
1082 'ꭓ' => 'Ꭓ',
1083 'ꭰ' => 'Ꭰ',
1084 'ꭱ' => 'Ꭱ',
1085 'ꭲ' => 'Ꭲ',
1086 'ꭳ' => 'Ꭳ',
1087 'ꭴ' => 'Ꭴ',
1088 'ꭵ' => 'Ꭵ',
1089 'ꭶ' => 'Ꭶ',
1090 'ꭷ' => 'Ꭷ',
1091 'ꭸ' => 'Ꭸ',
1092 'ꭹ' => 'Ꭹ',
1093 'ꭺ' => 'Ꭺ',
1094 'ꭻ' => 'Ꭻ',
1095 'ꭼ' => 'Ꭼ',
1096 'ꭽ' => 'Ꭽ',
1097 'ꭾ' => 'Ꭾ',
1098 'ꭿ' => 'Ꭿ',
1099 'ꮀ' => 'Ꮀ',
1100 'ꮁ' => 'Ꮁ',
1101 'ꮂ' => 'Ꮂ',
1102 'ꮃ' => 'Ꮃ',
1103 'ꮄ' => 'Ꮄ',
1104 'ꮅ' => 'Ꮅ',
1105 'ꮆ' => 'Ꮆ',
1106 'ꮇ' => 'Ꮇ',
1107 'ꮈ' => 'Ꮈ',
1108 'ꮉ' => 'Ꮉ',
1109 'ꮊ' => 'Ꮊ',
1110 'ꮋ' => 'Ꮋ',
1111 'ꮌ' => 'Ꮌ',
1112 'ꮍ' => 'Ꮍ',
1113 'ꮎ' => 'Ꮎ',
1114 'ꮏ' => 'Ꮏ',
1115 'ꮐ' => 'Ꮐ',
1116 'ꮑ' => 'Ꮑ',
1117 'ꮒ' => 'Ꮒ',
1118 'ꮓ' => 'Ꮓ',
1119 'ꮔ' => 'Ꮔ',
1120 'ꮕ' => 'Ꮕ',
1121 'ꮖ' => 'Ꮖ',
1122 'ꮗ' => 'Ꮗ',
1123 'ꮘ' => 'Ꮘ',
1124 'ꮙ' => 'Ꮙ',
1125 'ꮚ' => 'Ꮚ',
1126 'ꮛ' => 'Ꮛ',
1127 'ꮜ' => 'Ꮜ',
1128 'ꮝ' => 'Ꮝ',
1129 'ꮞ' => 'Ꮞ',
1130 'ꮟ' => 'Ꮟ',
1131 'ꮠ' => 'Ꮠ',
1132 'ꮡ' => 'Ꮡ',
1133 'ꮢ' => 'Ꮢ',
1134 'ꮣ' => 'Ꮣ',
1135 'ꮤ' => 'Ꮤ',
1136 'ꮥ' => 'Ꮥ',
1137 'ꮦ' => 'Ꮦ',
1138 'ꮧ' => 'Ꮧ',
1139 'ꮨ' => 'Ꮨ',
1140 'ꮩ' => 'Ꮩ',
1141 'ꮪ' => 'Ꮪ',
1142 'ꮫ' => 'Ꮫ',
1143 'ꮬ' => 'Ꮬ',
1144 'ꮭ' => 'Ꮭ',
1145 'ꮮ' => 'Ꮮ',
1146 'ꮯ' => 'Ꮯ',
1147 'ꮰ' => 'Ꮰ',
1148 'ꮱ' => 'Ꮱ',
1149 'ꮲ' => 'Ꮲ',
1150 'ꮳ' => 'Ꮳ',
1151 'ꮴ' => 'Ꮴ',
1152 'ꮵ' => 'Ꮵ',
1153 'ꮶ' => 'Ꮶ',
1154 'ꮷ' => 'Ꮷ',
1155 'ꮸ' => 'Ꮸ',
1156 'ꮹ' => 'Ꮹ',
1157 'ꮺ' => 'Ꮺ',
1158 'ꮻ' => 'Ꮻ',
1159 'ꮼ' => 'Ꮼ',
1160 'ꮽ' => 'Ꮽ',
1161 'ꮾ' => 'Ꮾ',
1162 'ꮿ' => 'Ꮿ',
1163 'a' => 'A',
1164 'b' => 'B',
1165 'c' => 'C',
1166 'd' => 'D',
1167 'e' => 'E',
1168 'f' => 'F',
1169 'g' => 'G',
1170 'h' => 'H',
1171 'i' => 'I',
1172 'j' => 'J',
1173 'k' => 'K',
1174 'l' => 'L',
1175 'm' => 'M',
1176 'n' => 'N',
1177 'o' => 'O',
1178 'p' => 'P',
1179 'q' => 'Q',
1180 'r' => 'R',
1181 's' => 'S',
1182 't' => 'T',
1183 'u' => 'U',
1184 'v' => 'V',
1185 'w' => 'W',
1186 'x' => 'X',
1187 'y' => 'Y',
1188 'z' => 'Z',
1189 '𐐨' => '𐐀',
1190 '𐐩' => '𐐁',
1191 '𐐪' => '𐐂',
1192 '𐐫' => '𐐃',
1193 '𐐬' => '𐐄',
1194 '𐐭' => '𐐅',
1195 '𐐮' => '𐐆',
1196 '𐐯' => '𐐇',
1197 '𐐰' => '𐐈',
1198 '𐐱' => '𐐉',
1199 '𐐲' => '𐐊',
1200 '𐐳' => '𐐋',
1201 '𐐴' => '𐐌',
1202 '𐐵' => '𐐍',
1203 '𐐶' => '𐐎',
1204 '𐐷' => '𐐏',
1205 '𐐸' => '𐐐',
1206 '𐐹' => '𐐑',
1207 '𐐺' => '𐐒',
1208 '𐐻' => '𐐓',
1209 '𐐼' => '𐐔',
1210 '𐐽' => '𐐕',
1211 '𐐾' => '𐐖',
1212 '𐐿' => '𐐗',
1213 '𐑀' => '𐐘',
1214 '𐑁' => '𐐙',
1215 '𐑂' => '𐐚',
1216 '𐑃' => '𐐛',
1217 '𐑄' => '𐐜',
1218 '𐑅' => '𐐝',
1219 '𐑆' => '𐐞',
1220 '𐑇' => '𐐟',
1221 '𐑈' => '𐐠',
1222 '𐑉' => '𐐡',
1223 '𐑊' => '𐐢',
1224 '𐑋' => '𐐣',
1225 '𐑌' => '𐐤',
1226 '𐑍' => '𐐥',
1227 '𐑎' => '𐐦',
1228 '𐑏' => '𐐧',
1229 '𐓘' => '𐒰',
1230 '𐓙' => '𐒱',
1231 '𐓚' => '𐒲',
1232 '𐓛' => '𐒳',
1233 '𐓜' => '𐒴',
1234 '𐓝' => '𐒵',
1235 '𐓞' => '𐒶',
1236 '𐓟' => '𐒷',
1237 '𐓠' => '𐒸',
1238 '𐓡' => '𐒹',
1239 '𐓢' => '𐒺',
1240 '𐓣' => '𐒻',
1241 '𐓤' => '𐒼',
1242 '𐓥' => '𐒽',
1243 '𐓦' => '𐒾',
1244 '𐓧' => '𐒿',
1245 '𐓨' => '𐓀',
1246 '𐓩' => '𐓁',
1247 '𐓪' => '𐓂',
1248 '𐓫' => '𐓃',
1249 '𐓬' => '𐓄',
1250 '𐓭' => '𐓅',
1251 '𐓮' => '𐓆',
1252 '𐓯' => '𐓇',
1253 '𐓰' => '𐓈',
1254 '𐓱' => '𐓉',
1255 '𐓲' => '𐓊',
1256 '𐓳' => '𐓋',
1257 '𐓴' => '𐓌',
1258 '𐓵' => '𐓍',
1259 '𐓶' => '𐓎',
1260 '𐓷' => '𐓏',
1261 '𐓸' => '𐓐',
1262 '𐓹' => '𐓑',
1263 '𐓺' => '𐓒',
1264 '𐓻' => '𐓓',
1265 '𐳀' => '𐲀',
1266 '𐳁' => '𐲁',
1267 '𐳂' => '𐲂',
1268 '𐳃' => '𐲃',
1269 '𐳄' => '𐲄',
1270 '𐳅' => '𐲅',
1271 '𐳆' => '𐲆',
1272 '𐳇' => '𐲇',
1273 '𐳈' => '𐲈',
1274 '𐳉' => '𐲉',
1275 '𐳊' => '𐲊',
1276 '𐳋' => '𐲋',
1277 '𐳌' => '𐲌',
1278 '𐳍' => '𐲍',
1279 '𐳎' => '𐲎',
1280 '𐳏' => '𐲏',
1281 '𐳐' => '𐲐',
1282 '𐳑' => '𐲑',
1283 '𐳒' => '𐲒',
1284 '𐳓' => '𐲓',
1285 '𐳔' => '𐲔',
1286 '𐳕' => '𐲕',
1287 '𐳖' => '𐲖',
1288 '𐳗' => '𐲗',
1289 '𐳘' => '𐲘',
1290 '𐳙' => '𐲙',
1291 '𐳚' => '𐲚',
1292 '𐳛' => '𐲛',
1293 '𐳜' => '𐲜',
1294 '𐳝' => '𐲝',
1295 '𐳞' => '𐲞',
1296 '𐳟' => '𐲟',
1297 '𐳠' => '𐲠',
1298 '𐳡' => '𐲡',
1299 '𐳢' => '𐲢',
1300 '𐳣' => '𐲣',
1301 '𐳤' => '𐲤',
1302 '𐳥' => '𐲥',
1303 '𐳦' => '𐲦',
1304 '𐳧' => '𐲧',
1305 '𐳨' => '𐲨',
1306 '𐳩' => '𐲩',
1307 '𐳪' => '𐲪',
1308 '𐳫' => '𐲫',
1309 '𐳬' => '𐲬',
1310 '𐳭' => '𐲭',
1311 '𐳮' => '𐲮',
1312 '𐳯' => '𐲯',
1313 '𐳰' => '𐲰',
1314 '𐳱' => '𐲱',
1315 '𐳲' => '𐲲',
1316 '𑣀' => '𑢠',
1317 '𑣁' => '𑢡',
1318 '𑣂' => '𑢢',
1319 '𑣃' => '𑢣',
1320 '𑣄' => '𑢤',
1321 '𑣅' => '𑢥',
1322 '𑣆' => '𑢦',
1323 '𑣇' => '𑢧',
1324 '𑣈' => '𑢨',
1325 '𑣉' => '𑢩',
1326 '𑣊' => '𑢪',
1327 '𑣋' => '𑢫',
1328 '𑣌' => '𑢬',
1329 '𑣍' => '𑢭',
1330 '𑣎' => '𑢮',
1331 '𑣏' => '𑢯',
1332 '𑣐' => '𑢰',
1333 '𑣑' => '𑢱',
1334 '𑣒' => '𑢲',
1335 '𑣓' => '𑢳',
1336 '𑣔' => '𑢴',
1337 '𑣕' => '𑢵',
1338 '𑣖' => '𑢶',
1339 '𑣗' => '𑢷',
1340 '𑣘' => '𑢸',
1341 '𑣙' => '𑢹',
1342 '𑣚' => '𑢺',
1343 '𑣛' => '𑢻',
1344 '𑣜' => '𑢼',
1345 '𑣝' => '𑢽',
1346 '𑣞' => '𑢾',
1347 '𑣟' => '𑢿',
1348 '𖹠' => '𖹀',
1349 '𖹡' => '𖹁',
1350 '𖹢' => '𖹂',
1351 '𖹣' => '𖹃',
1352 '𖹤' => '𖹄',
1353 '𖹥' => '𖹅',
1354 '𖹦' => '𖹆',
1355 '𖹧' => '𖹇',
1356 '𖹨' => '𖹈',
1357 '𖹩' => '𖹉',
1358 '𖹪' => '𖹊',
1359 '𖹫' => '𖹋',
1360 '𖹬' => '𖹌',
1361 '𖹭' => '𖹍',
1362 '𖹮' => '𖹎',
1363 '𖹯' => '𖹏',
1364 '𖹰' => '𖹐',
1365 '𖹱' => '𖹑',
1366 '𖹲' => '𖹒',
1367 '𖹳' => '𖹓',
1368 '𖹴' => '𖹔',
1369 '𖹵' => '𖹕',
1370 '𖹶' => '𖹖',
1371 '𖹷' => '𖹗',
1372 '𖹸' => '𖹘',
1373 '𖹹' => '𖹙',
1374 '𖹺' => '𖹚',
1375 '𖹻' => '𖹛',
1376 '𖹼' => '𖹜',
1377 '𖹽' => '𖹝',
1378 '𖹾' => '𖹞',
1379 '𖹿' => '𖹟',
1380 '𞤢' => '𞤀',
1381 '𞤣' => '𞤁',
1382 '𞤤' => '𞤂',
1383 '𞤥' => '𞤃',
1384 '𞤦' => '𞤄',
1385 '𞤧' => '𞤅',
1386 '𞤨' => '𞤆',
1387 '𞤩' => '𞤇',
1388 '𞤪' => '𞤈',
1389 '𞤫' => '𞤉',
1390 '𞤬' => '𞤊',
1391 '𞤭' => '𞤋',
1392 '𞤮' => '𞤌',
1393 '𞤯' => '𞤍',
1394 '𞤰' => '𞤎',
1395 '𞤱' => '𞤏',
1396 '𞤲' => '𞤐',
1397 '𞤳' => '𞤑',
1398 '𞤴' => '𞤒',
1399 '𞤵' => '𞤓',
1400 '𞤶' => '𞤔',
1401 '𞤷' => '𞤕',
1402 '𞤸' => '𞤖',
1403 '𞤹' => '𞤗',
1404 '𞤺' => '𞤘',
1405 '𞤻' => '𞤙',
1406 '𞤼' => '𞤚',
1407 '𞤽' => '𞤛',
1408 '𞤾' => '𞤜',
1409 '𞤿' => '𞤝',
1410 '𞥀' => '𞤞',
1411 '𞥁' => '𞤟',
1412 '𞥂' => '𞤠',
1413 '𞥃' => '𞤡',
1414 'ß' => 'SS',
1415 'ff' => 'FF',
1416 'fi' => 'FI',
1417 'fl' => 'FL',
1418 'ffi' => 'FFI',
1419 'ffl' => 'FFL',
1420 'ſt' => 'ST',
1421 'st' => 'ST',
1422 'և' => 'ԵՒ',
1423 'ﬓ' => 'ՄՆ',
1424 'ﬔ' => 'ՄԵ',
1425 'ﬕ' => 'ՄԻ',
1426 'ﬖ' => 'ՎՆ',
1427 'ﬗ' => 'ՄԽ',
1428 'ʼn' => 'ʼN',
1429 'ΐ' => 'Ϊ́',
1430 'ΰ' => 'Ϋ́',
1431 'ǰ' => 'J̌',
1432 'ẖ' => 'H̱',
1433 'ẗ' => 'T̈',
1434 'ẘ' => 'W̊',
1435 'ẙ' => 'Y̊',
1436 'ẚ' => 'Aʾ',
1437 'ὐ' => 'Υ̓',
1438 'ὒ' => 'Υ̓̀',
1439 'ὔ' => 'Υ̓́',
1440 'ὖ' => 'Υ̓͂',
1441 'ᾶ' => 'Α͂',
1442 'ῆ' => 'Η͂',
1443 'ῒ' => 'Ϊ̀',
1444 'ΐ' => 'Ϊ́',
1445 'ῖ' => 'Ι͂',
1446 'ῗ' => 'Ϊ͂',
1447 'ῢ' => 'Ϋ̀',
1448 'ΰ' => 'Ϋ́',
1449 'ῤ' => 'Ρ̓',
1450 'ῦ' => 'Υ͂',
1451 'ῧ' => 'Ϋ͂',
1452 'ῶ' => 'Ω͂',
1453 'ᾈ' => 'ἈΙ',
1454 'ᾉ' => 'ἉΙ',
1455 'ᾊ' => 'ἊΙ',
1456 'ᾋ' => 'ἋΙ',
1457 'ᾌ' => 'ἌΙ',
1458 'ᾍ' => 'ἍΙ',
1459 'ᾎ' => 'ἎΙ',
1460 'ᾏ' => 'ἏΙ',
1461 'ᾘ' => 'ἨΙ',
1462 'ᾙ' => 'ἩΙ',
1463 'ᾚ' => 'ἪΙ',
1464 'ᾛ' => 'ἫΙ',
1465 'ᾜ' => 'ἬΙ',
1466 'ᾝ' => 'ἭΙ',
1467 'ᾞ' => 'ἮΙ',
1468 'ᾟ' => 'ἯΙ',
1469 'ᾨ' => 'ὨΙ',
1470 'ᾩ' => 'ὩΙ',
1471 'ᾪ' => 'ὪΙ',
1472 'ᾫ' => 'ὫΙ',
1473 'ᾬ' => 'ὬΙ',
1474 'ᾭ' => 'ὭΙ',
1475 'ᾮ' => 'ὮΙ',
1476 'ᾯ' => 'ὯΙ',
1477 'ᾼ' => 'ΑΙ',
1478 'ῌ' => 'ΗΙ',
1479 'ῼ' => 'ΩΙ',
1480 'ᾲ' => 'ᾺΙ',
1481 'ᾴ' => 'ΆΙ',
1482 'ῂ' => 'ῊΙ',
1483 'ῄ' => 'ΉΙ',
1484 'ῲ' => 'ῺΙ',
1485 'ῴ' => 'ΏΙ',
1486 'ᾷ' => 'Α͂Ι',
1487 'ῇ' => 'Η͂Ι',
1488 'ῷ' => 'Ω͂Ι',
1489);
diff --git a/vendor/symfony/polyfill-mbstring/bootstrap.php b/vendor/symfony/polyfill-mbstring/bootstrap.php
new file mode 100644
index 0000000..6e4b5fc
--- /dev/null
+++ b/vendor/symfony/polyfill-mbstring/bootstrap.php
@@ -0,0 +1,159 @@
1<?php
2
3/*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12use Symfony\Polyfill\Mbstring as p;
13
14if (\PHP_VERSION_ID >= 80000) {
15 return require __DIR__.'/bootstrap80.php';
16}
17
18if (!function_exists('mb_convert_encoding')) {
19 function mb_convert_encoding($string, $to_encoding, $from_encoding = null) { return p\Mbstring::mb_convert_encoding($string, $to_encoding, $from_encoding); }
20}
21if (!function_exists('mb_decode_mimeheader')) {
22 function mb_decode_mimeheader($string) { return p\Mbstring::mb_decode_mimeheader($string); }
23}
24if (!function_exists('mb_encode_mimeheader')) {
25 function mb_encode_mimeheader($string, $charset = null, $transfer_encoding = null, $newline = "\r\n", $indent = 0) { return p\Mbstring::mb_encode_mimeheader($string, $charset, $transfer_encoding, $newline, $indent); }
26}
27if (!function_exists('mb_decode_numericentity')) {
28 function mb_decode_numericentity($string, $map, $encoding = null) { return p\Mbstring::mb_decode_numericentity($string, $map, $encoding); }
29}
30if (!function_exists('mb_encode_numericentity')) {
31 function mb_encode_numericentity($string, $map, $encoding = null, $hex = false) { return p\Mbstring::mb_encode_numericentity($string, $map, $encoding, $hex); }
32}
33if (!function_exists('mb_convert_case')) {
34 function mb_convert_case($string, $mode, $encoding = null) { return p\Mbstring::mb_convert_case($string, $mode, $encoding); }
35}
36if (!function_exists('mb_internal_encoding')) {
37 function mb_internal_encoding($encoding = null) { return p\Mbstring::mb_internal_encoding($encoding); }
38}
39if (!function_exists('mb_language')) {
40 function mb_language($language = null) { return p\Mbstring::mb_language($language); }
41}
42if (!function_exists('mb_list_encodings')) {
43 function mb_list_encodings() { return p\Mbstring::mb_list_encodings(); }
44}
45if (!function_exists('mb_encoding_aliases')) {
46 function mb_encoding_aliases($encoding) { return p\Mbstring::mb_encoding_aliases($encoding); }
47}
48if (!function_exists('mb_check_encoding')) {
49 function mb_check_encoding($value = null, $encoding = null) { return p\Mbstring::mb_check_encoding($value, $encoding); }
50}
51if (!function_exists('mb_detect_encoding')) {
52 function mb_detect_encoding($string, $encodings = null, $strict = false) { return p\Mbstring::mb_detect_encoding($string, $encodings, $strict); }
53}
54if (!function_exists('mb_detect_order')) {
55 function mb_detect_order($encoding = null) { return p\Mbstring::mb_detect_order($encoding); }
56}
57if (!function_exists('mb_parse_str')) {
58 function mb_parse_str($string, &$result = []) { parse_str($string, $result); return (bool) $result; }
59}
60if (!function_exists('mb_strlen')) {
61 function mb_strlen($string, $encoding = null) { return p\Mbstring::mb_strlen($string, $encoding); }
62}
63if (!function_exists('mb_strpos')) {
64 function mb_strpos($haystack, $needle, $offset = 0, $encoding = null) { return p\Mbstring::mb_strpos($haystack, $needle, $offset, $encoding); }
65}
66if (!function_exists('mb_strtolower')) {
67 function mb_strtolower($string, $encoding = null) { return p\Mbstring::mb_strtolower($string, $encoding); }
68}
69if (!function_exists('mb_strtoupper')) {
70 function mb_strtoupper($string, $encoding = null) { return p\Mbstring::mb_strtoupper($string, $encoding); }
71}
72if (!function_exists('mb_substitute_character')) {
73 function mb_substitute_character($substitute_character = null) { return p\Mbstring::mb_substitute_character($substitute_character); }
74}
75if (!function_exists('mb_substr')) {
76 function mb_substr($string, $start, $length = 2147483647, $encoding = null) { return p\Mbstring::mb_substr($string, $start, $length, $encoding); }
77}
78if (!function_exists('mb_stripos')) {
79 function mb_stripos($haystack, $needle, $offset = 0, $encoding = null) { return p\Mbstring::mb_stripos($haystack, $needle, $offset, $encoding); }
80}
81if (!function_exists('mb_stristr')) {
82 function mb_stristr($haystack, $needle, $before_needle = false, $encoding = null) { return p\Mbstring::mb_stristr($haystack, $needle, $before_needle, $encoding); }
83}
84if (!function_exists('mb_strrchr')) {
85 function mb_strrchr($haystack, $needle, $before_needle = false, $encoding = null) { return p\Mbstring::mb_strrchr($haystack, $needle, $before_needle, $encoding); }
86}
87if (!function_exists('mb_strrichr')) {
88 function mb_strrichr($haystack, $needle, $before_needle = false, $encoding = null) { return p\Mbstring::mb_strrichr($haystack, $needle, $before_needle, $encoding); }
89}
90if (!function_exists('mb_strripos')) {
91 function mb_strripos($haystack, $needle, $offset = 0, $encoding = null) { return p\Mbstring::mb_strripos($haystack, $needle, $offset, $encoding); }
92}
93if (!function_exists('mb_strrpos')) {
94 function mb_strrpos($haystack, $needle, $offset = 0, $encoding = null) { return p\Mbstring::mb_strrpos($haystack, $needle, $offset, $encoding); }
95}
96if (!function_exists('mb_strstr')) {
97 function mb_strstr($haystack, $needle, $before_needle = false, $encoding = null) { return p\Mbstring::mb_strstr($haystack, $needle, $before_needle, $encoding); }
98}
99if (!function_exists('mb_get_info')) {
100 function mb_get_info($type = 'all') { return p\Mbstring::mb_get_info($type); }
101}
102if (!function_exists('mb_http_output')) {
103 function mb_http_output($encoding = null) { return p\Mbstring::mb_http_output($encoding); }
104}
105if (!function_exists('mb_strwidth')) {
106 function mb_strwidth($string, $encoding = null) { return p\Mbstring::mb_strwidth($string, $encoding); }
107}
108if (!function_exists('mb_substr_count')) {
109 function mb_substr_count($haystack, $needle, $encoding = null) { return p\Mbstring::mb_substr_count($haystack, $needle, $encoding); }
110}
111if (!function_exists('mb_output_handler')) {
112 function mb_output_handler($string, $status) { return p\Mbstring::mb_output_handler($string, $status); }
113}
114if (!function_exists('mb_http_input')) {
115 function mb_http_input($type = null) { return p\Mbstring::mb_http_input($type); }
116}
117
118if (!function_exists('mb_convert_variables')) {
119 function mb_convert_variables($to_encoding, $from_encoding, &...$vars) { return p\Mbstring::mb_convert_variables($to_encoding, $from_encoding, ...$vars); }
120}
121
122if (!function_exists('mb_ord')) {
123 function mb_ord($string, $encoding = null) { return p\Mbstring::mb_ord($string, $encoding); }
124}
125if (!function_exists('mb_chr')) {
126 function mb_chr($codepoint, $encoding = null) { return p\Mbstring::mb_chr($codepoint, $encoding); }
127}
128if (!function_exists('mb_scrub')) {
129 function mb_scrub($string, $encoding = null) { $encoding = null === $encoding ? mb_internal_encoding() : $encoding; return mb_convert_encoding($string, $encoding, $encoding); }
130}
131if (!function_exists('mb_str_split')) {
132 function mb_str_split($string, $length = 1, $encoding = null) { return p\Mbstring::mb_str_split($string, $length, $encoding); }
133}
134
135if (!function_exists('mb_str_pad')) {
136 function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = STR_PAD_RIGHT, ?string $encoding = null): string { return p\Mbstring::mb_str_pad($string, $length, $pad_string, $pad_type, $encoding); }
137}
138
139if (!function_exists('mb_ucfirst')) {
140 function mb_ucfirst(string $string, ?string $encoding = null): string { return p\Mbstring::mb_ucfirst($string, $encoding); }
141}
142
143if (!function_exists('mb_lcfirst')) {
144 function mb_lcfirst(string $string, ?string $encoding = null): string { return p\Mbstring::mb_lcfirst($string, $encoding); }
145}
146
147if (extension_loaded('mbstring')) {
148 return;
149}
150
151if (!defined('MB_CASE_UPPER')) {
152 define('MB_CASE_UPPER', 0);
153}
154if (!defined('MB_CASE_LOWER')) {
155 define('MB_CASE_LOWER', 1);
156}
157if (!defined('MB_CASE_TITLE')) {
158 define('MB_CASE_TITLE', 2);
159}
diff --git a/vendor/symfony/polyfill-mbstring/bootstrap80.php b/vendor/symfony/polyfill-mbstring/bootstrap80.php
new file mode 100644
index 0000000..ec2ae42
--- /dev/null
+++ b/vendor/symfony/polyfill-mbstring/bootstrap80.php
@@ -0,0 +1,155 @@
1<?php
2
3/*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12use Symfony\Polyfill\Mbstring as p;
13
14if (!function_exists('mb_convert_encoding')) {
15 function mb_convert_encoding(array|string|null $string, ?string $to_encoding, array|string|null $from_encoding = null): array|string|false { return p\Mbstring::mb_convert_encoding($string ?? '', (string) $to_encoding, $from_encoding); }
16}
17if (!function_exists('mb_decode_mimeheader')) {
18 function mb_decode_mimeheader(?string $string): string { return p\Mbstring::mb_decode_mimeheader((string) $string); }
19}
20if (!function_exists('mb_encode_mimeheader')) {
21 function mb_encode_mimeheader(?string $string, ?string $charset = null, ?string $transfer_encoding = null, ?string $newline = "\r\n", ?int $indent = 0): string { return p\Mbstring::mb_encode_mimeheader((string) $string, $charset, $transfer_encoding, (string) $newline, (int) $indent); }
22}
23if (!function_exists('mb_decode_numericentity')) {
24 function mb_decode_numericentity(?string $string, array $map, ?string $encoding = null): string { return p\Mbstring::mb_decode_numericentity((string) $string, $map, $encoding); }
25}
26if (!function_exists('mb_encode_numericentity')) {
27 function mb_encode_numericentity(?string $string, array $map, ?string $encoding = null, ?bool $hex = false): string { return p\Mbstring::mb_encode_numericentity((string) $string, $map, $encoding, (bool) $hex); }
28}
29if (!function_exists('mb_convert_case')) {
30 function mb_convert_case(?string $string, ?int $mode, ?string $encoding = null): string { return p\Mbstring::mb_convert_case((string) $string, (int) $mode, $encoding); }
31}
32if (!function_exists('mb_internal_encoding')) {
33 function mb_internal_encoding(?string $encoding = null): string|bool { return p\Mbstring::mb_internal_encoding($encoding); }
34}
35if (!function_exists('mb_language')) {
36 function mb_language(?string $language = null): string|bool { return p\Mbstring::mb_language($language); }
37}
38if (!function_exists('mb_list_encodings')) {
39 function mb_list_encodings(): array { return p\Mbstring::mb_list_encodings(); }
40}
41if (!function_exists('mb_encoding_aliases')) {
42 function mb_encoding_aliases(?string $encoding): array { return p\Mbstring::mb_encoding_aliases((string) $encoding); }
43}
44if (!function_exists('mb_check_encoding')) {
45 function mb_check_encoding(array|string|null $value = null, ?string $encoding = null): bool { return p\Mbstring::mb_check_encoding($value, $encoding); }
46}
47if (!function_exists('mb_detect_encoding')) {
48 function mb_detect_encoding(?string $string, array|string|null $encodings = null, ?bool $strict = false): string|false { return p\Mbstring::mb_detect_encoding((string) $string, $encodings, (bool) $strict); }
49}
50if (!function_exists('mb_detect_order')) {
51 function mb_detect_order(array|string|null $encoding = null): array|bool { return p\Mbstring::mb_detect_order($encoding); }
52}
53if (!function_exists('mb_parse_str')) {
54 function mb_parse_str(?string $string, &$result = []): bool { parse_str((string) $string, $result); return (bool) $result; }
55}
56if (!function_exists('mb_strlen')) {
57 function mb_strlen(?string $string, ?string $encoding = null): int { return p\Mbstring::mb_strlen((string) $string, $encoding); }
58}
59if (!function_exists('mb_strpos')) {
60 function mb_strpos(?string $haystack, ?string $needle, ?int $offset = 0, ?string $encoding = null): int|false { return p\Mbstring::mb_strpos((string) $haystack, (string) $needle, (int) $offset, $encoding); }
61}
62if (!function_exists('mb_strtolower')) {
63 function mb_strtolower(?string $string, ?string $encoding = null): string { return p\Mbstring::mb_strtolower((string) $string, $encoding); }
64}
65if (!function_exists('mb_strtoupper')) {
66 function mb_strtoupper(?string $string, ?string $encoding = null): string { return p\Mbstring::mb_strtoupper((string) $string, $encoding); }
67}
68if (!function_exists('mb_substitute_character')) {
69 function mb_substitute_character(string|int|null $substitute_character = null): string|int|bool { return p\Mbstring::mb_substitute_character($substitute_character); }
70}
71if (!function_exists('mb_substr')) {
72 function mb_substr(?string $string, ?int $start, ?int $length = null, ?string $encoding = null): string { return p\Mbstring::mb_substr((string) $string, (int) $start, $length, $encoding); }
73}
74if (!function_exists('mb_stripos')) {
75 function mb_stripos(?string $haystack, ?string $needle, ?int $offset = 0, ?string $encoding = null): int|false { return p\Mbstring::mb_stripos((string) $haystack, (string) $needle, (int) $offset, $encoding); }
76}
77if (!function_exists('mb_stristr')) {
78 function mb_stristr(?string $haystack, ?string $needle, ?bool $before_needle = false, ?string $encoding = null): string|false { return p\Mbstring::mb_stristr((string) $haystack, (string) $needle, (bool) $before_needle, $encoding); }
79}
80if (!function_exists('mb_strrchr')) {
81 function mb_strrchr(?string $haystack, ?string $needle, ?bool $before_needle = false, ?string $encoding = null): string|false { return p\Mbstring::mb_strrchr((string) $haystack, (string) $needle, (bool) $before_needle, $encoding); }
82}
83if (!function_exists('mb_strrichr')) {
84 function mb_strrichr(?string $haystack, ?string $needle, ?bool $before_needle = false, ?string $encoding = null): string|false { return p\Mbstring::mb_strrichr((string) $haystack, (string) $needle, (bool) $before_needle, $encoding); }
85}
86if (!function_exists('mb_strripos')) {
87 function mb_strripos(?string $haystack, ?string $needle, ?int $offset = 0, ?string $encoding = null): int|false { return p\Mbstring::mb_strripos((string) $haystack, (string) $needle, (int) $offset, $encoding); }
88}
89if (!function_exists('mb_strrpos')) {
90 function mb_strrpos(?string $haystack, ?string $needle, ?int $offset = 0, ?string $encoding = null): int|false { return p\Mbstring::mb_strrpos((string) $haystack, (string) $needle, (int) $offset, $encoding); }
91}
92if (!function_exists('mb_strstr')) {
93 function mb_strstr(?string $haystack, ?string $needle, ?bool $before_needle = false, ?string $encoding = null): string|false { return p\Mbstring::mb_strstr((string) $haystack, (string) $needle, (bool) $before_needle, $encoding); }
94}
95if (!function_exists('mb_get_info')) {
96 function mb_get_info(?string $type = 'all'): array|string|int|false { return p\Mbstring::mb_get_info((string) $type); }
97}
98if (!function_exists('mb_http_output')) {
99 function mb_http_output(?string $encoding = null): string|bool { return p\Mbstring::mb_http_output($encoding); }
100}
101if (!function_exists('mb_strwidth')) {
102 function mb_strwidth(?string $string, ?string $encoding = null): int { return p\Mbstring::mb_strwidth((string) $string, $encoding); }
103}
104if (!function_exists('mb_substr_count')) {
105 function mb_substr_count(?string $haystack, ?string $needle, ?string $encoding = null): int { return p\Mbstring::mb_substr_count((string) $haystack, (string) $needle, $encoding); }
106}
107if (!function_exists('mb_output_handler')) {
108 function mb_output_handler(?string $string, ?int $status): string { return p\Mbstring::mb_output_handler((string) $string, (int) $status); }
109}
110if (!function_exists('mb_http_input')) {
111 function mb_http_input(?string $type = null): array|string|false { return p\Mbstring::mb_http_input($type); }
112}
113
114if (!function_exists('mb_convert_variables')) {
115 function mb_convert_variables(?string $to_encoding, array|string|null $from_encoding, mixed &$var, mixed &...$vars): string|false { return p\Mbstring::mb_convert_variables((string) $to_encoding, $from_encoding ?? '', $var, ...$vars); }
116}
117
118if (!function_exists('mb_ord')) {
119 function mb_ord(?string $string, ?string $encoding = null): int|false { return p\Mbstring::mb_ord((string) $string, $encoding); }
120}
121if (!function_exists('mb_chr')) {
122 function mb_chr(?int $codepoint, ?string $encoding = null): string|false { return p\Mbstring::mb_chr((int) $codepoint, $encoding); }
123}
124if (!function_exists('mb_scrub')) {
125 function mb_scrub(?string $string, ?string $encoding = null): string { $encoding ??= mb_internal_encoding(); return mb_convert_encoding((string) $string, $encoding, $encoding); }
126}
127if (!function_exists('mb_str_split')) {
128 function mb_str_split(?string $string, ?int $length = 1, ?string $encoding = null): array { return p\Mbstring::mb_str_split((string) $string, (int) $length, $encoding); }
129}
130
131if (!function_exists('mb_str_pad')) {
132 function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = STR_PAD_RIGHT, ?string $encoding = null): string { return p\Mbstring::mb_str_pad($string, $length, $pad_string, $pad_type, $encoding); }
133}
134
135if (!function_exists('mb_ucfirst')) {
136 function mb_ucfirst($string, ?string $encoding = null): string { return p\Mbstring::mb_ucfirst($string, $encoding); }
137}
138
139if (!function_exists('mb_lcfirst')) {
140 function mb_lcfirst($string, ?string $encoding = null): string { return p\Mbstring::mb_lcfirst($string, $encoding); }
141}
142
143if (extension_loaded('mbstring')) {
144 return;
145}
146
147if (!defined('MB_CASE_UPPER')) {
148 define('MB_CASE_UPPER', 0);
149}
150if (!defined('MB_CASE_LOWER')) {
151 define('MB_CASE_LOWER', 1);
152}
153if (!defined('MB_CASE_TITLE')) {
154 define('MB_CASE_TITLE', 2);
155}
diff --git a/vendor/symfony/polyfill-mbstring/composer.json b/vendor/symfony/polyfill-mbstring/composer.json
new file mode 100644
index 0000000..bd99d4b
--- /dev/null
+++ b/vendor/symfony/polyfill-mbstring/composer.json
@@ -0,0 +1,38 @@
1{
2 "name": "symfony/polyfill-mbstring",
3 "type": "library",
4 "description": "Symfony polyfill for the Mbstring extension",
5 "keywords": ["polyfill", "shim", "compatibility", "portable", "mbstring"],
6 "homepage": "https://symfony.com",
7 "license": "MIT",
8 "authors": [
9 {
10 "name": "Nicolas Grekas",
11 "email": "p@tchwork.com"
12 },
13 {
14 "name": "Symfony Community",
15 "homepage": "https://symfony.com/contributors"
16 }
17 ],
18 "require": {
19 "php": ">=7.1"
20 },
21 "provide": {
22 "ext-mbstring": "*"
23 },
24 "autoload": {
25 "psr-4": { "Symfony\\Polyfill\\Mbstring\\": "" },
26 "files": [ "bootstrap.php" ]
27 },
28 "suggest": {
29 "ext-mbstring": "For best performance"
30 },
31 "minimum-stability": "dev",
32 "extra": {
33 "thanks": {
34 "name": "symfony/polyfill",
35 "url": "https://github.com/symfony/polyfill"
36 }
37 }
38}